분류 전체보기

💻 프로젝트/🧸 TOY-PROJECTS

[DeepLook] 5. 백엔드 연결

이전까지는 프론트 쪽 작업만 맡아서 하고, 백엔드는 node js로 한번 맛본 상태였는데, 갑작스레 웹과 백을 연결해야 하는 태스크가 주어졌다. 시간이 없고, 모델이 규모가 있는 모델은 아니어서 flask를 사용하기로 결정했다. 더 자세한 코드를 보고 싶으면 깃허브를 참고하길 바란다. (좀 난잡할 수 있음 주의) 백엔드 모델과 연결 시 거친 단계는 다음과 같다: pickle 파일을 만들어 모든 연예인의 얼굴 임베딩을 저장한다. client 측에서 post 요청을 보냈을 때 이미지 데이터를 받아 임베딩을 추출한다. 추출한 임베딩과 가장 유사한 임베딩을 pickle 파일로부터 로딩한다. 추출된 얼굴 임베딩과 사전 학습된 임베딩 간의 유사도를 계산한다. 가장 유사한 유명인의 이니셜과 유사도를 JSON 형식으로..

💻 프로젝트/🧸 TOY-PROJECTS

[DeepLook] 4. 모델 선정 및 학습

사진 전처리 이후, 모델을 선정하고 학습시키는 과정을 거쳤다. 모델의 후보는 ResNet, EfficientNet, Arcface가 있었는데, 가장 얼굴 유사도 부분에서 큰 성능을 보이는 Arcface 모델을 선정했다. 더 자세한 과정은 코랩을 통해 확인할 수 있다. 1. CSV 파일 생성 우선 전처리된 사진들의 이름(이름_순번 형태)과 해당 인물들이 label 된 csv 파일을 생성했다. 2. Train, Test dataset 분리 항목별로 70%는 train, 30%는 test의 데이터셋으로 분리했다. # 이니셜을 하나의 배열로 모으기 class_name_list = [] tmp=df.copy() for initial in tmp['class']: if initial not in class_name..

💻 프로젝트/🧸 TOY-PROJECTS

[DeepLook] 3. 전처리 (haar-cascade 알고리즘)

지난번에 크롤링한 이미지들을 기반으로 전처리 작업을 진행했다. 모델에 학습시키기 위해서는 인물의 사진 중 얼굴만 crop 된 상태를 학습시켜야 했는데, 이 부분에 대해 찾아보니 haar cascade classifier 라는 알고리즘이 있었다. 1. Haar Cascade Classifier 알고리즘이란? 간단하게 요약하자면, haar cascade classifier 알고리즘은 검출할 대상이 되는 물체가 있는 이미지 (Positive Image)와 없는 이미지(Negative Image)를 최대한 많이 활용해서 다단계 함수를 훈련시키는 기계학습 방식이다. 해당 알고리즘은 유사 하르 특징 (haar-like features)과 캐스케이드 분류기 (cascade classifier)를 사용한다. 1. 유사..

💻 프로젝트/🧸 TOY-PROJECTS

[DeepLook] 2. AI 작업 설계 과정 / 크롤링

1. 설계 과정 우선 모든 닮은꼴로 나오는 인물을 모든 연예인으로 하기에는 너무 광범위하다고 생각되어, 당시 유행한 드라마인 '더 글로리'의 등장인물로만 설정하기로 했다. 생각해 본 작업 순서는 아래와 같다: 더글로리 등장인물의 사진 크롤링 사진 전처리 작업 및 data augmentation 모델 선정 모델 학습 테스트 및 웹 연결 2. 크롤링 물론 많은 라이브러리와 공개된 오픈소스들이 있었지만, 크롤러도 직접 구현해 보고 싶었다. (많은 리소스가 드는 것은 아니니까..) 현재 우리가 필요한 것은 등장인물들의 이미지이기 때문에, 구글 이미지 사이트 (https://www.google.co.kr/imghp?hl=ko)을 기준으로 크롤링하기로 결정했다. 우선 최종적으로 구현한 코드는 다음과 같다: from..

장영준
'분류 전체보기' 카테고리의 글 목록 (7 Page)