펭귄 분류기를 만들어 봤어요.
입문
이 보도는 SRA Advent Calendar 2018의 22일째 보도이다.
저는 산업 제2사업부의 히로시마입니다.SRA의 본사 부근에서 머신러닝 회의를 열다.
펭귄 분류기
CNN에 펭귄 이미지를 배워 펭귄의 종류를 추정하는 분류기를 만들었다.
그럼에도 펭귄은 6속 18종일이 있기 때문에 대표적인 이, 이미지 수집이 쉬운 다음 6종의 펭귄만 집중되어 있다.
그래서 정확히 펭귄 6가지 분류기다.
이 보도는 펭귄 분류기를 만드는 과정의 전반부, 데이터 준비를 총괄했다.
큰 흐름
이런 절차에 따라 분류기를 만들었다.
1. 이미지 수집
2. 물체 검측을 통해 수집된 이미지를 바늘귀 이미지로 분할
3. 바늘 모양 표시
4. 이미지 크기 조정
5. CNN에게 배우게 하기
본 보도는 4 까지 진행되었다.
이미지 수집
이것은 다른 일이니 이쪽을 보세요.
Bing 이미지 검색 API v7에서 이미지 수집
하고 있는 일은 다음과 같다.
이런 절차에 따라 분류기를 만들었다.
1. 이미지 수집
2. 물체 검측을 통해 수집된 이미지를 바늘귀 이미지로 분할
3. 바늘 모양 표시
4. 이미지 크기 조정
5. CNN에게 배우게 하기
본 보도는 4 까지 진행되었다.
이미지 수집
이것은 다른 일이니 이쪽을 보세요.
Bing 이미지 검색 API v7에서 이미지 수집
하고 있는 일은 다음과 같다.
물체 검측을 통해 수집된 이미지를 바늘귀 이미지로 분할하다
대량의 펭귄 이미지를 수집했지만 이미지에는 펭귄 외에도 사진이 많아서 펭귄 단체를 최대한 잘라내고 싶어요.
예를 들어 고양이 이미지라면 OpenCV로 고양이 얼굴삼을 검출할 수 있지만 펭귄은 검출되지 않았다.그럼요.
따라서 YOLOv2 알고리즘YAD2K:Yet Another Darknet 2 Keras의 물체 검출을 사용하여 검출된 이미지를 잘라냅니다.
YAD2K의 모형을 만들기 전에 이 글을 참고할 수 있도록 허락해 주십시오.
YOLOv2(Keras/TensorFlow)를 통한 딥러닝 이미지의 물체 검출
모델 모델_data/yolo.h5까지 제작하면 YAD2K의 test_yolo.py 코드를 살짝 만들어서 그림을 재단했습니다.
잘라낼 때 사용하는 코드는 여기 입니다.
사용법은$ python3 cut_yolo.py model_data/yolo.h5 -t ターゲット画像の入ったディレクトリ -o 切り抜き画像出力ディレクトリ | tee -a ログファイル名
이 잘라내기 작업은 특정 파일에서 오류가 발생하고 손실되는 경우가 있습니다.따라서 파일 이름으로 재단 대상의 이미지를 정렬하고 하나하나 작업을 진행하며 처리가 끝난 이미지 파일 이름을 로그 파일에 토출합니다.
떨어지면 로그에서 로그에서 로그에서 로그아웃된 파일의 목록을 만들어서 -skp 옵션으로 건너뛰겠습니다.$ grep filename adelie.log | sed 's/filename=//g' > adelie_end.txt
$ python3 cut_yolo.py model_data/yolo.h5 -t ../bing/test/images2/adelie_penguin_20180127023044/ -o ../images/penguins/YOLO/public/adelie_penguin -skp adelie_end.txt| tee -a adelie.log
똑똑한 방법은 아니지만 그곳은 예처리이기 때문에 운용 중에 덮어씌운다.
표시 바늘 이미지
잘라낸 그림을 보니 혼란스러웠다.
$ python3 cut_yolo.py model_data/yolo.h5 -t ターゲット画像の入ったディレクトリ -o 切り抜き画像出力ディレクトリ | tee -a ログファイル名
$ grep filename adelie.log | sed 's/filename=//g' > adelie_end.txt
$ python3 cut_yolo.py model_data/yolo.h5 -t ../bing/test/images2/adelie_penguin_20180127023044/ -o ../images/penguins/YOLO/public/adelie_penguin -skp adelie_end.txt| tee -a adelie.log
잘라낸 그림을 보니 혼란스러웠다.
솔직히 이 꼬리표 치는 일은 매우 힘들다.키워드마다 1300장에서 2000장 정도의 이미지를 잘라냈기 때문에 9000장 정도의 이미지만 분리했다.계획
이미지 크기 조정
자르는 이미지의 크기와 모양이 각각 다르기 때문에 128x128로 다시 크기를 조정합니다.
종횡 비율을 바꾸고 싶지 않기 때문에 정사각형이 부족한 부분을 검은색으로 채우고 사이즈를 다시 조정합니다.
사이즈 조정에 사용되는 코드도 대체적으로 여기 이다.$ python3 resize.py リサイズ対象ディレクトリ
resize라는 디렉터리에서 대상 디렉터리 이름으로 내보냅니다.
준비된 이미지 개수
지금까지의 고생(주로 펭귄 수동 분류)을 통해 얻은 이미지의 장수는 다음과 같다.
유형
빙이 획득한 장수.
최종 장수
천사펭귄
782
562
펭귄 왕
859
1123
아델리 펭귄
833
854
의사 일정 펭귄
806
769
펭귄
868
854
와트비 펭귄
929
830
천사가 특히 적은 것은 새끼새가 많기 때문이다.새끼는 귀엽지만 부모님과는 너무 달라요.
나는 펭귄 한 마리당 500장의 이미지로 분류기를 만들기로 했다.
분류기 설치는 뒷편에서 계속될 것이다.
참고 자료
$ python3 resize.py リサイズ対象ディレクトリ
지금까지의 고생(주로 펭귄 수동 분류)을 통해 얻은 이미지의 장수는 다음과 같다.
유형
빙이 획득한 장수.
최종 장수
천사펭귄
782
562
펭귄 왕
859
1123
아델리 펭귄
833
854
의사 일정 펭귄
806
769
펭귄
868
854
와트비 펭귄
929
830
천사가 특히 적은 것은 새끼새가 많기 때문이다.새끼는 귀엽지만 부모님과는 너무 달라요.
나는 펭귄 한 마리당 500장의 이미지로 분류기를 만들기로 했다.
분류기 설치는 뒷편에서 계속될 것이다.
참고 자료
독단엔펠러와 아드리속은 모두 있지만 통심분 펭귄속은 하나도 없어 편파적이다. ↩
https://github.com/opencv/opencv/blob/master/data/haarcascades/haarcascade_frontalcatface.xml ↩
Reference
이 문제에 관하여(펭귄 분류기를 만들어 봤어요.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hirosemi/items/f4ca703948ff014f2dd5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)