Skip to content

Latest commit

 

History

History
126 lines (89 loc) · 4.63 KB

README.md

File metadata and controls

126 lines (89 loc) · 4.63 KB

🎓졸환회 사진 분류기

이 프로젝트는 클래식 기타동아리 폴리포니 졸업생 환송회 행사에서 전달 할 졸업생들의 사진을 분류하는 분류기입니다

실행 방법

Makefile을 사용하여 전체 실행 or 개별 실행이 가능하다.
Makefile내 환경변수의 값들을 입력하고 실행한다.

make all

세부 과정

사진 분류는 총 두 가지 과정으로 진행된다

  1. 네이버 카페 메뉴 카테고리에 있는 모든 게시글의 사진을 크롤링
  2. 여러 장의 사진 중에서 찾으려는 사람을 필터링

1. 크롤링


크롤링을 하기 위해서는 유효한 네이버 계정이 필요하다

유효한 네이버 계정이란 폴리포니 카페 에 가입되어 있는 계정이어야 한다.

파라미터 명 설명 필수 파라미터 여부
--menu_id 네이버 카페 메뉴 고유 번호 O
--naver_id 유효한 네이버 아이디 O
--naver_pw 유효한 네이버 비밀번호 O
--debug True일경우, 크롤링 창 실행 X(기본값 False)

실행 예시

python crawling.py \
--menu_id=네이버 메뉴 아이디 \ 
--naver_id=네이버 아이디 \
--naver_pw=네이버 비밀번호  \
--debug=True 

결과물

실행 된 결과물은 output 디렉토리에 게시물 별로 저장된다 output 하위 디렉토리의 명명 규칙은 게시물 명.게시물 고유 번호로 저장된다

게시물 제목이 중복일 경우 덮어씌워지는 이슈를 막기 위함

예시

├── output
│   ├── 23년 PP인의밤.2019
│   ├── 23년 졸환회.2020
│   └── 23년도 하계수련회 콩쿨.2069

2. 필터링

1번 과정에서 크롤링한 사진들을 Amazon Rekognition을 사용하여 특정 인물을 필터링한다.

source_image_path은 필터링할 인물의 사진이다.

target_directory_path1번 과정에서 크롤링한 사진들을 모아놓은 디렉토리 위치이다. 별도로 지정할 수 있으며 default값은 output이다.

AWS Access Key와 관련된 정보는 해당 링크 를 참조

파라미터 명 설명 필수 파라미터 여부
--aws_access_key_id AWS Access Key O
--aws_secret_access_key AWS Secret Access Key O
--source_image_path 기준 이미지 경로 O
--target_directory_path 필터링 대상 이미지 디렉토리 경로(default output) X

실행 예시

python compare_face.py \
--aws_access_key_id=ACCESS KEY ID \
--aws_secret_access_key=SECRET ACCESS KEY \
--target_directory_path=output 
--source_image_path=source.jpg

결과물

실행 된 결과물은 inference 디렉토리 하위에 negative, positive로 나뉘어 저장된다.

negative는 특정 인물이 포함되지 않은 이미지를 분류한 것이고 positive는 특정 인물이 포함됐다고 판단한 이미지들이다.

예시

├── inference
│   ├── negative
│   └── positive

3. 업로드

2번 과정에서 필터링한 이미지들 중 타겟과 일치한 사진들(positive)만 압축하여 드라이브에 업로드한다.

업로드를 위해서 json 확장자를 가진 service account를 발급받아야한다.
또한 GOOGLE_APPLICATION_CREDENTIALS 환경변수 선언이 필요하다.

GOOGLE_APPLICATION_CREDENTIALS=service_account.json
파라미터 명 설명 필수 파라미터 여부
--target_dir 업로드할 output 디렉토리 경로(default inference/positive) X
--google_drive_dir_id 드라이브에 업로드할 디렉토리 경로 O

실행 예시

python upload_drive.py \
--target_dir=inference/positive \ 
--google_drive_dir_id=1rv9aH7DE1QA18PaatrDa \