How to use the Annotation Tool, LabelImg for YOLO

1 minute read

YOLO의 tensorflow 버전인 darkflow를 위한 Annotation Tool, LabelImg를 이용하여 전처리 작업을 하는 내용을 기록하겠습니다.

기존에는 YOLOmark를 사용해보려했지만, darkflow에 바로 적용하기에는 annotation 형식이 달라 불가능하고 text 파일을 모두 xml형식으로 변경해줘야한다는 것을 그나마 일찍이…? 알아서 바로 노선 변경했습니다.
LabelImg에도 windows 버전을 지원하고있기 때문에 저의 개발환경에서도 충분히 가능하더라구요!

LabelImg git repository 링크 : https://github.com/tzutalin/labelImg

LabelImg for windows10에서 요구하는 패키지는 아래와 같습니다.

  • Python
  • PyQt5
  • lxml

python과 pyqt는 아나콘다 기본패키지로 함께 설치가 되어서 설치과정을 생략하고, lxml 설치는 아래 명령어를 콘다 cmd에 입력해주시면됩니다.

conda install lxml

LabelImg를 로컬에 다운로드해주세요.

저는 가상환경 안에 설치하였습니다.

가장 먼저 할 일은 data폴더 내의 predefined_classes.txt 파일에 자신의 클래스 목록을 지정하는 것입니다.
기존의 레이블명은 모두 없애고 새로 작성했습니다.


해당 텍스트파일을 수정하셨다면 labelImg.py가 있는 경로로 이동하여 labelImg.py를 실행시켜주세요.

아마 python labelImg.py 명령어를 입력하게되면 ModuleNotFoundError : No module named ‘libs.resources’라는 오류를 만나실 수 있습니다.

LabelImg에서는 저 명령어를 먼저 입력해주라고 하는데 간과하고 실행시켜버려서 그렇습니다.. ㅎㅎ
Readme를 잘 읽는 습관..!

저의 경우에는 pyqt5이므로 pyrcc5~명령어를 입력한 뒤 labelImg 파이선파일을 실행시켰습니다!

그러면 이렇게 GUI환경으로 윈도우가 팝업될겁니다.

데이터셋을 불러오기 위해 Open Dir버튼을 눌러 어노테이션 작업을 할 이미지들이 있는 폴더를 실행시켜주세요.

단축키 w를 이용하거나 Create RectBox버튼을 통해 bounding box를 지정할 수 있습니다. 그 작업의 결과물로는 해당 이미지에 대한 레이블 정보 및 중앙 x, 중앙 y, width, height 정보가 적힌 xml 파일이 생성됩니다.

열심히 Annotation 작업을 마무리해주시면됩니다..!ㅎㅎ

YoloMark 보다 훨씬 간단하지요?

저는 무려 약 7000장의 데이터를 전처리해줘야 한답니다..ㅠ
데이터사이언스나 AI 쪽은 전처리 싸움이라는 말 정말 와닿구요.. 자동으로 ROI를 따주는 툴을 개발하고 싶어집니다..!

이후 학습을 진행하는 내용은 여기에 링크를 걸어두었습니다.

(전처리 다했다!!!!!!!!!!!!!)

개인이 공부하고 포스팅하는 블로그입니다. 작성한 글 중 오류나 틀린 부분이 있을 경우 과감한 지적 환영합니다!