현재 얼굴 피부 이미지에서 색소침착, 홍조, 주름, 여드름과 같은 피부 특징을 검출하는 프로젝트를 진행하고 있다.
Instance Segmentation 방법을 활용할 예정이므로 학습 데이터셋에 Annotation 작업이 필요하다.
Annotation Tool중에 하나인 Labelme에 대한 사용방법을 정리한다.
참고 사이트 : https://github.com/wkentaro/labelme
1. Labelme 설치
- Anaconda에서 Annotation을 위한 가상환경을 따로 만들자. 관리하기 편하니까.
: Install Anaconda
: 관리자 권한으로 anaconda prompt를 열자.
: 관리자 권한은 앱 아이콘을 오른쪽 마우스 클릭하면 '관리자 권한으로 실행'이라는 메뉴가 있다.
: conda create --name=labelme python=3.6
: conda activate labelme (가상환경을 나오고 싶으면 conda deactivate)
: pip install labelme
설치가 엄청 쉽다!
물론 이렇게 설치가 잘 되면 좋겠지만 windows 환경에서는 조금 까다로울수 있다.
Git을 설치하고 VS2015 빌드툴을 깔고 뭐 pycocotool을 업데이트하고 그럴수도 있는데
과정을 못남겨서 여기서는 생략(...)하기로 한다.
2. Labelme 실행
- anaconda prompt에서 lableme 치면 labelme 창이 뜨면서 실행된다. (참 쉽죠?)
3. Annotation을 수행할 이미지 혹은 이미지 폴더를 선택한다.
- 여기서는 labelme 예제 이미지를 이용했다.
- 왼쪽 메뉴에서 Create Polygons 선택
- 마우스 클릭을 통해 객체 분할
- 확대 및 축소를 이용하자.
- 처음 시작 지점으로 Polygon을 찍으면 class를 넣는 창이 뜬다.
- class 이름을 입력해주자.
4. File 탭에서 Save를 눌러 json파일로 저장하자.
5. coco 스타일로 변환하려면 labelme2coco.py를 통해 변환해야 한다.
(참고 사이트 : https://github.com/wkentaro/labelme/tree/master/examples/instance_segmentation)
- ./labelme2coco.py input_folder output_folder --labels labels.txt 이런 입력 파라미터 구조
- labels.txt는 따로 생성해서 label 이름을 다 넣어줘야 한다.
- __ignore__ 도 넣어주자 없으면 에러난다.
- 코드가 무사히 돌아가면 coco스타일의 annotations.json 파일이 생성된다.
- JPEGImages 및 Visualization 폴더도 생성되며 annotation 결과를 확인할 수 있다.
Tips
- File 탭에서 Save With Image Data는 체크 해제하자.
: 체크하게되면 이미지 파일 없이 json 파일로만 학습이 가능하겠지만, 확인도 해야되고 편의상 raw 데이터는 있는게 낫다.
: json 용량도 엄청 커진다.
- Group ID는 occulusion 등으로 동일 객체가 나눠진다거나 할때 동일 객체임을 표기하는 용도이다.
: 위의 오른쪽 물병을 들고 있는 손에서 손이 물병 때문에 분리되어져버림
: 그래서 따로 분리된 손가락과 사람이 같은 객체라고 같은 Group ID를 부여함
- labelme2coco.py 소스 코드를 살펴보니 __ignore__ 에 해당되는 영역은 무시되는듯하다.
: 위의 그림에서 옆구리와 팔 사이의 빈 공간을 __ignore__ 영역으로 해주면 될듯? (확인 필요)
'머신러닝 > Annotation' 카테고리의 다른 글
VGG Image Annotator (0) | 2020.08.31 |
---|