YOLO 이미지 라벨링을 위한 labelImg 사용법

Kimsoohyun·2022년 4월 15일
3

Yolo Labeling

목록 보기
1/1
post-thumbnail

본 게시물은 작성자의 Local 환경에서 진행한 내용을 바탕으로 작성됩니다.
Windows 10, 64Bit, labelImg Binary v1.8.1 기준

YOLO를 통해 custom image를 학습시키는 경우 데이터셋이 필요하다.
자신이 원하는 데이터셋이 존재하지 않을 경우 직접 데이터셋을 만들어줘야 하는데, Image에서 Bounding Box를 지정하여 라벨링을 수행하고 Bounding Box 정보들을 좌표파일로 생성해야 한다.
이미지 라벨링 툴 labelImg를 이용해서 이미지 라벨링을 수행할 수 있다.

설치 및 실행

https://github.com/tzutalin/labelImg
위 링크에 접속하면 다음과 같은 화면을 볼 수 있을 것이다.
그 중에서 Releases를 클릭해주자.
여러가지 버전이 표시될텐데, Windows 환경이므로 Windows_v1.8.1.zip을 다운로드 해준 뒤, 압축을 해제한다.

windows_v1.8.1이라는 디렉토리가 생성될텐데, 해당 폴더를 C 드라이브나 D 드라이브 바로 아래에 위치시켜주자.
이는 경로상에 한글이 있으면 실행이 되지 않는 오류를 방지하기 위함이다.

여기까지 완료했다면 labelImg.exe 파일을 실행시켜보자.

아마도 다음과 같은 창이 노출될텐데, 추가 정보 클릭 후 실행하면 된다.
정상적으로 실행된다면 다음과 같은 화면을 볼 수 있을텐데, 프로그램을 실행하는 동안에 검은색의 콘솔창을 종료할 경우 프로그램도 함께 종료되기 때문에 주의해야 한다.

사용방법

라벨링을 진행하기 전에 몇 가지 해야할 일들이 있다.
라벨링하고자 하는 class를 정의해주는 것과, YOLOv5의 경우 xml이 아닌 txt 파일 형식이 필요한데, labelImg의 기본값이 xml이기 때문에 이를 변경해주고 작업해야 한다.

Class 정의

labelImg를 위치한 디렉토리 아래에 Data 디렉토리로 들어가면 predefined_classes.txt 라는 파일이 있다. 해당 파일을 편집기를 통해 열어주자.

텍스트 파일을 열어보면 다음과 같이 class들이 정의 되어있는데 이를 내가 원하는 class들로 변경해주면 된다. 임의로 의류에 대한 정보들을 class로 정의해주었다.
저장될 때 txt 파일에 있는 순서대로 class 번호가 저장되므로, 해당 파일 수정 시 순서에 유의해야 한다.

저장 방식 변경

앞서 언급했던 것처럼 라벨링을 진행할 때 저장되는 파일의 형식을 변경해줘야 한다. PascalVOC를 눌러 YOLO로 변경해주자. labelImg를 실행할 때마다 변경해주어야 한다.

이미지 불러오기

이제 Open Dir을 통해 이미지가 저장된 폴더를 선택해주자.

해당 디렉토리에 있는 이미지들이 불러와진 것을 볼 수 있다.

단축키

이제 라벨링 작업을 진행하면 되는데 라벨링 작업을 진행할 때 유용한 단축키들을 몇 가지 살펴보자.
내가 주로 사용한 키는 다음과 같다.

  • W : 이미지 범위 선택
  • A : 이전 이미지
  • D : 다음 이미지
  • Ctrl + S : 저장

라벨링

이제 라벨링을 진행해보자. W를 누른 후 시작점부터 끝점까지 드래그하여 Bounding Box의 영역을 설정해주자.

드래그를 종료하면 다음과 같이 class를 선택하는 창이 나오는데, 해당하는 class를 선택해주면 된다. 상단의 검색 기능을 포함하고 있으므로 영역을 지정 후 해당하는 class의 첫 글자를 입력하여 빠르게 class를 찾을 수 있다.

정상적으로 진행되었다면 이미지에 Box 영역이 표시되고 우측에 해당하는 label이 보일 것이다. 라벨링을 완료했다면 Ctrl+S를 통해 저장해주면 된다.

라벨링된 파일을 살펴보면 다음과 같이 class 번호와 좌표가 저장된 것을 확인할 수 있다.

이제 열심히 라벨링을 진행하면 된다🤣

profile
어제보다 나은

0개의 댓글