본문 바로가기
AI/AI 부트캠프

[AI 부트캠프] DAY 121 - 파이널 프로젝트 12

by HOHHOH 2024. 1. 12.

[오늘의 일지]

프로젝트 - YOLO 모델을 위한 데이터셋 구성 완료

[상세 내용]

데이터셋을 위한 작업 목록

- 참고 코드를 기반으로 내 데이터에 적용시키기

- 완성된 데이터셋 확인 후 문제점 수정

- 모델에 돌려보기

 

참고 코드를 기반으로 내 데이터에 적용시키기

- 데이콘 대회에 올라온 코드를 기반으로 했지만 결과적으로는 데이터가 많이 달랐기 때문에 얻어야 하는 annotation을 기반으로 데이터셋을 완성시키려고 노력했습니다. 어제도 설명했듯이 YOLO의 annotation의 형태는 아래와 같았습니다.

# annotation 내용

<클래스> <x_중심> <y_중심> <너비> <높이>

 

완성된 데이터셋 확인 후 문제점 수정

- 완성된 데이터를 확인해 봤을 때는 뒤에 4개의 값은 무조건 0~1의 데이터를 가지고 있어야 한다는 것을 알게 되었습니다. 이유는 위에 4개의 값을 기존 이미지의 사이즈로 나눠주면서 그 비율만을 얻어서 학습에 사용되기 때문에 그런 거라고 생각이 들었습니다. 그런데 데이터를 확인하던 중에 1이 넘어가는 숫자를 확인했고 자세하게 살펴보니 기존 좌표값에 마이너스 값도 존재한다는 것을 알게 되었습니다. 그래서 min()과 max() 함수로 처리해서 0~1의 값만 나올 수 있도록 했습니다.

 

- 이상한 데이터 예시

# 이 데이터에는 특이하게도 마이너스값과 이미지 사이즈를 넘기는 값이 모두 존재했습니다.
[-70.92, 22.33, 573.33, 346.48]

 

- 처리 코드 

x_min, y_min = max(0, float(x)), max(0, float(y))
x, y = min(1, float(((x_min*2 + width) / 2) / image_width)), min(1,float(((y_min*2 + height) / 2) / image_height))
w, h = min(1, abs(width) / image_width), min(1, abs(height) / image_height)

 

모델에 돌려보기

- 완성된 데이터셋을 모델에 돌려보기 위해서 시도했는데 아쉽게도 로컬환경의 GPU가 연동이 안 되는 문제가 발생해서 직접 돌려보지는 못했습니다. GPU 문제는 내일 해결해서 일지에 정리해 보도록 하겠습니다. 아마도 난항이 될 거 같은 느낌이 듭니다.

 

[마무리]

 오늘은 YOLO 모델을 위한 데이터셋을 우리 프로젝트의 데이터에 맞게 수정해서 만들어 보는 과정을 진행해 보았습니다. 잘 완성이 되었는지는 아직 GPU 문제로 확인은 못했지만 내일 colab 환경에서라도 돌려보고 그 내용도 정리해 보도록 하겠습니다. 

반응형

댓글