이 프로젝트는 클래식 기타동아리 폴리포니 졸업생 환송회 행사에서 전달 할 졸업생들의 사진을 분류하는 분류기입니다
Makefile
을 사용하여 전체 실행 or 개별 실행이 가능하다.
Makefile
내 환경변수의 값들을 입력하고 실행한다.
make all
사진 분류는 총 두 가지 과정
으로 진행된다
- 네이버 카페 메뉴 카테고리에 있는 모든 게시글의 사진을 크롤링
- 여러 장의 사진 중에서 찾으려는 사람을 필터링
크롤링을 하기 위해서는 유효한 네이버 계정이 필요하다
유효한 네이버 계정이란 폴리포니 카페 에 가입되어 있는 계정이어야 한다.
파라미터 명 | 설명 | 필수 파라미터 여부 |
---|---|---|
--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
1번 과정
에서 크롤링한 사진들을 Amazon Rekognition을 사용하여 특정 인물을 필터링한다.
source_image_path
은 필터링할 인물의 사진이다.
target_directory_path
는 1번 과정
에서 크롤링한 사진들을 모아놓은 디렉토리 위치이다. 별도로 지정할 수 있으며 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
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 \