Python/이미지 처리

[Python] labelImg를 활용한 이미지 라벨링

seo0seok 2023. 7. 10. 15:40

 

1. labelImg란

  - labelImg는 이미지 주석 도구로, 개발자들이 객체 감지 모델을 학습하기 위해 이미지에

    주석을 달 수 있도록 도와준느 프로그램이다. 이 프로그램은 영상 및 이미지 처리 작업에

    많이 사용되며, 객체 감지 모델을 구축하는 데 필수적인 작업 중 하나이다. 

 

 

2. labelImg 설치

https://github.com/tzutalin/labelImg

  - 먼저 github에 들어가 Releases -> Binary v1.8.1을 클릭한다. 

 

  - windows_v 1.8.1.zip 파일을 다운로드 받는다.

 

  - zip 파일을 풀면 data, labelImg 두 파일이 생성된다.

  - data 안에는 txt 파일이 들어있는데 이 곳은 라벨링할 클래스명을 적어주면된다.

   (ex. monkey)

  - labelImg를 클릭하여 실행한다.

 

3. labelImg 사용법

  - 프로그램 실행 시 첫 화면이다.

  - 빨간 네모칸 안에 형식을 바꿀수 있는데 우리는 이미지를 라벨링해 YOLO에서 사용할

    것이기 때문에 클릭하여 YOLO로 바꾸어 준다.

  - PascalVOC로 라벨링 시 XML 파일로 생성 / YOLO로 라벨링시 txt 파일이 생성된다.

  - 실수로 안바꾸면 재작업을 해야하니 꼭 바꿔주자.

 

   - 형식이 YOLO로 바뀐 모습이다.

 

  - Open Dir 버튼을 클릭해 이미지 파일이 저장되어 있는 폴더를 지정해준다.

 

  - Change Save Dir 버튼을 클릭해 라벨링 된 txt파일 저장할 폴더를 지정해준다.

 

  - 경로 설정을 완료하면 이미지 폴더에 있는 이미지가 보인다.

 

<단축키>

  - 라벨링하면서 쓰는 단축키 4가지이다. 이 4가지만 알고 있어도 충분하다.

 

  w 클릭 후 마우스 드래그 : 라벨링 범위 지정

  a 버튼 : 이전 이미지로 이동

  d 버튼 : 다음 이미지로 이동

  ctrl + s : 저장하기

 

  - 라벨링 범위를 지정한 모습이다.

  - 여기서 Save 버튼을 클릭하거나, ctrl + s를 클릭해 저장해준다.

  - 간혹 저장 시 에러가 나는 이미지들이 있는데 그런 이미지들은 그냥 포기하고 넘어가준다.

 

  - 라벨링이 완료된 후 생성된 txt 파일이다.

  - 맨 앞 숫자 0은 각 클래스를 숫자로 지정해준다.

  - 그 뒤로 나오는 숫자 4개는 객체의 경계 상자 정보이다.

  - 일반적으로 (x_min, y_min, x_max, y_max) 형식으로 표현되며, 이는 경계 상자가 왼쪽 위

    모서리의 (x_min, y_min) 좌표와 오른쪽 아래 모서리의 (x_max, y_max) 좌표로 정의된다. 

 

 

지금까지 labelImg 프로그램으로 이미지 라벨링 하는법을 알아보았다.

이렇게 작업한 이미지와 라벨링한 txt을 YOLOv7을 활용해 이미지 분석이 가능하다.