설명
자신이 갖고 있는 원본 사진에 변형을 주어 학습할 데이터를 증가 시킨다.
Keras preprocessing 중 ' ImageDataGenerator ' 기술을 사용한다. Keras Doc 에서는 모델 훈련 중간에 이미지 변형 작업을 하지만,
이런 방법을 사용하면 이미지 데이터 세트를 따로 만들 수 있어, 사용하는 언어, 작성된 학습 스크립트, 딥러닝 프레임워크에 독립적이다.
한 Label(Class)당 원본 이미지가 부족할 때 이 스크립트를 사용하면 도움이 된다.
오류 처리와 좀 더 편하게 쓰기 위해 계속 수정 하고 있다 ~
테스트 환경 (2017.5.26 수정)
Python 3.5, Python 2.7
Windows 7, Ubuntu16 환경에서 테스트 완료 !
멀티 코어 활용
Python 의 프로세스 풀을 사용하여 코어 갯수만큼 프로세스가 생성된다.
스크립트에는 시스템의 코어 갯수를 자동으로 입력 시키지만 원한다면 갯수를 지정할 수 있다.
코어가 많을 수록 작업 시간은 대폭 단축된다.
< 4개의 프로세스가 동시 작업>
사용법
전체 스크립트 상단에 자신의 환경에 맞게 설정할 수 있는 부분이 있다
상단 변수들을 자신에 맞게 수정 후 사용하면 된다
만약, output 폴더에 미리 만들어진 폴더(input 폴더 하위에 같은 이름의 폴더)가 있다면
데이터의 중복이나 덮어쓰기가 되므로 오류 처리 없이 종료 된다,
INPUT_DIR = 원본 이미지 세트의 폴더 경로. * 주의할 점 : 경로 끝에 '/'가 꼭 들어가야 한다 !!! 안그러면 오류 !
OUTPUT_DIR = 생성된 폴더와 사진이 저장될 경로. * 주의할 점 : 경로 끝에 '/'가 꼭 들어가야 한다 !!! 안그러면 오류 !
IMAGE_FORMAT = 새로운 이미지 포맷.
FILE_NAME = 새로운 이미지 파일 앞에 이름을 추가할 수 있음
IMAGE_SIZE = 새로운 이미지 크기
END_POINT = 한개의 원본 이미지당 새로 생성할 이미지 갯수.
ex) ' END_POINT = 100 ' 원본 이미지가 10개일때 새로 생성될 이미지는 1000개
P_NUM = 만들어질 프로세스의 갯수. 코어 갯수와 동일하다. 4 Core 2 Thread의 CPU라면 8개의 프로세스가 생성 !
전체 스크립트 (2017.5.26 수정)
https://github.com/pipy201/study/tree/master/ImageGenerator
간단하지만 스크립트 만들기 위해 진짜 생각 많이 했다... :(
멀티 코어 활용 때문에 더 많은 고민이 필요했다...
'archive.tar' 카테고리의 다른 글
[Ubuntu]우분투 무한 로그인 해결 여러 방법들 (1) | 2017.05.18 |
---|---|
[TensorFlow] Inception v3 모델 를 이용하여 Android 에서 이미지 분류 해보기 (0) | 2017.05.15 |
[Keras] Image Data Generator 사용 후 추론 성능 차이 (0) | 2017.04.14 |
[TensorFlow] 모델 체크포인트 변환 .ckpt to .pb (inception-resnet-v2) (9) | 2017.03.21 |
[TensorFlow] Inception - Resnet V2 를 사용한 image retraining (10) | 2017.03.17 |