서론
YOLO 이미지 라벨링이란 무엇인가?
YOLO는 실시간 객체 탐지를 위한 최신 알고리즘이다. YOLO는 You Only Look Once의 줄임말로, 이것은 우리가 한 번만 봐도 이미지를 분석할 수 있다는 효율성을 뜻한다. 그렇다면 이미지 라벨링은 무엇일까? 이는 YOLO 알고리즘의 핵심 과정 중 하나로, 특정 이미지에 대한 정보를 정확하게 태깅하는 작업을 의미한다.
왜 labelImg를 사용하는가?
YOLO를 이용한 이미지 학습에서 핵심은 ‘데이터셋’이다. 그런데 원하는 데이터셋이 없는 경우, 우리는 직접 데이터셋을 생성해야 한다. 이 과정에서 필요한 도구가 바로 labelImg이다.
labelImg는 이미지에 Bounding Box를 지정하여 라벨링하는 과정을 간편하게 만들어준다. 이를 통해 YOLO를 이용한 사용자 지정 이미지 학습 과정을 원활하게 진행할 수 있는 것이다.
labelImg 설치 가이드
- labelImg의 GitHub 페이지 https://github.com/tzutalin/labelImg 에 접속한다.
- 웹페이지 상단의 ‘Releases’를 클릭한다.
- Windows 환경에서는 ‘Windows_v1.8.1.zip’ 파일을 선택하여 다운로드한다.
- 다운로드한 파일을 압축 해제하고, 생성된
windows_v1.8.1
디렉토리를 C 혹은 D 드라이브 바로 아래에 위치시킨다.
여기까지 완료했다면 labelImg.exe
파일을 실행시켜보자.
labelImg.exe
파일을 실행한다. 창이 두 개 뜨면 ‘추가 정보’ 클릭 후 ‘실행’을 선택한다.
정상적으로 실행된다면 다음과 같은 화면을 볼 수 있을텐데, 프로그램을 실행하는 동안에 검은색의 콘솔창을 종료할 경우 프로그램도 함께 종료되기 때문에 주의해야 한다.
사용방법
라벨링을 진행하기 전에 먼저 해야 할 일이 있다. 라벨링하고자 하는 class를 정의하고, YOLOv5의 경우 xml이 아닌 txt 파일 형식이 필요하므로, labelImg의 기본값인 xml을 변경해야 한다.
class 정의
- labelImg가 위치한 디렉토리 아래에 있는 ‘data’ 디렉토리로 들어간다.
- ‘predefined_classes.txt’ 파일을 열어서 class를 원하는 대로 변경한다.
- txt 파일에 있는 순서대로 class 번호가 저장되므로, 해당 파일 수정 시 순서에 유의한다.
저장 방식 변경
앞서 언급했던 것처럼 라벨링을 진행할 때 저장되는 파일의 형식을 변경해줘야 한다. labelImg 메뉴에서 PascalVOC
클릭하여 YOLO
변경한다.
labelImg를 실행할 때마다 이 설정을 변경해야 한다.
이미지 불러오기
이제 Open Dir
을 통해 이미지가 저장된 폴더를 선택해주자.
단축키
이제 라벨링 작업을 진행하면 되는데 라벨링 작업을 진행할 때 유용한 단축키들을 몇 가지 살펴보자.
단축키 사용
- W : 이미지 범위 선택
- A : 이전 이미지
- D : 다음 이미지
- Ctrl + S : 저장
라벨링
W를 누른 후 시작점부터 끝점까지 드래그하여 Bounding Box의 영역을 설정하자. 드래그를 마치면, 해당하는 class를 선택하는 창이 나온다. 상단의 검색 기능을 이용해 원하는 class를 빠르게 찾을 수 있다.
드래그를 종료하면 다음과 같이 class를 선택하는 창이 나오는데, 해당하는 class를 선택해주면 된다. 상단의 검색 기능을 포함하고 있으므로 영역을 지정 후 해당하는 class의 첫 글자를 입력하여 빠르게 class를 찾을 수 있다.
라벨링된 파일을 살펴보면 다음과 같이 class 번호와 좌표가 저장된 것을 확인할 수 있다.
번외
라벨 저장 위치 설정 방법
라벨링 작업을 시작하기 전에, ‘Open Dir’ 버튼을 클릭하여 파일 위치를 선택합니다. 만약 .txt파일을 다른 위치에 저장하고자 하는 경우, ‘Change Save Dir’를 클릭하여 원하는 경로로 변경하면 됩니다.
이미지 파일과 동일한 경로에 .txt파일을 저장하고자 하는 경우, ‘Change Save Dir’에서 이미지 경로와 동일하게 설정해야 합니다.
이제 열심히 라벨링을 진행하면 된다.