[IN-ISP] Automated Annotation

junhjun·2023년 5월 23일
0

IN-ISP Project

목록 보기
12/16

이전에 Language SAM의 포트홀 탐지 성능이 매우 우수했던 것을 활용하여, Language SAM 포스팅
Automated Annotation을 시도해보았다.

즉, 탐지된 포트홀의 Bounding Box 정보를 자동으로 추출해, 이를 레이블로 사용하는 것이다.


과정은 다음과 같다.

(1) Language SAM을 이용해 포트홀을 탐지하고 Bounding Box 정보를 csv 파일로 저장한다.
(2) csv 파일을 xml 형식으로 바꾼다.
(3) 이미지와 xml 파일을 함께 Roboflow에 업로드한다.

이를 통해 라벨링 데이터셋을 구축할 수 있다.


(1) 포트홀 탐지 정보 추출

Language SAM을 이용한 포트홀 탐지 시, Bounding Box 좌표 값을 얻을 수 있다.

파일명, 탐지된 포트홀 개수, Bounding Box 좌표, 이미지 사이즈(width, height)를 추출하도록 했다.

Language SAM 탐지 결과 Bounding Box 정보는 [X1, Y1, X2, Y2]로, 두 점의 좌표 값을 나타낸다.
따라서, 간단한 연산을 통해 [X, Y, Width, Height]으로 매핑했다.

300장의 이미지에서 포트홀 탐지 및 정보 추출을 한 결과, 다음과 같은 데이터프레임을 얻었다.

이를 csv 형식으로 저장했다.



(2) CSV 파일을 XML 파일로 변환

Roboflow 사용 시, 이미지 파일과 레이블 정보를 함께 업로드 하면 자동으로 Annotation이 적용된다.

하지만, 레이블 정보는 특정 format으로만 인식이 되었고, 그 중 xml 파일이 가능하다는 것을 알고 있었다. Annotated Dataset 포스팅

따라서, 위 csv 파일을 읽어 각 이미지의 짝이 되는 레이블 xml 파일을 생성하도록 구현했다.


다음은 'pothole_000' 이미지와 그에 해당하는 레이블 정보이다.



(3) Roboflow 데이터셋 업로드

위 데이터셋을 Roboflow에 업로드 하면, Annotation 된 데이터셋이 구축된다.

Annotation 된 것을 확인할 수 있다.



이미지 데이터셋을 입력으로 받으면 Automated Annotation 할 수 있는 파이프라인을 구현했다.

이제 해야될 것은 다음과 같다.

(1) 직접 수집한 포트홀 이미지 300장 Automated Annotaion -> 데이터셋 구축

(2) Stable Diffusion 이용한 포트홀 이미지 8장씩 증강 (총 2700장) -> Automated Annotation -> 데이터셋 구축

(3) 각 데이터셋으로 YOLOv8 학습 -> 평가지표 이용한 성능 비교


여기까지 완료하고, 이를 중간성과 발표에 사용할 예정이다.

0개의 댓글