Search
5️⃣

Smart inspections with vision

Date
2023/07/01 → 2023/08/22
Category
Computer Vision
Object Detection
Stack
Python
OpenCV
소속
CJ TES
CJ TES Future Technology Challenge 2023

상황

학습 데이터셋은 검출하고자 하는 물체만 있는 사진
평가 데이터셋은 카트에 물품들을 Object detection
크기는 (3023 x 4032) 또는 (3023 x 3023)
100개의 class가 있었고 class당 1 ≤ instance ≤ 10로 생성됨
해당 물체는 다양한 각도에서 촬영되었음
일부 화각에 숨겨진 물체가 있음 (객체 이미지가 34\frac{3}{4} 정도가 나오지 않았다거나 등)

환경세팅

CPU: 13700K, Ram: 32GB, GPU: RTX-4070TI
Ubuntu 20.04
Python 3.10, PyTorch-2.0, Albumentations
Annotation tools: CVAT

해결방법

공통적으로 검증 데이터셋을 학습에 추가적으로 하기 위해 Mask를 라벨링함
1.
학습 데이터셋을 추가적인 처리 없이 그 자체로 가지고 학습
2.
학습 데이터셋을 Grid Plane에 scalable한 형태로 배치하여 학습
a.
카트에는 물체가 차곡차곡 쌓여있기 때문에 Grid Plane처럼 배치하면 같은 방식으로 검출 할 수 있지 않을까 고민
3.
cut-and-paste 방법을 적용
a.
학습 데이터셋 물체 크기를 Scalable 하게 조정하여 창고에서 배치한 형태인 검증 데이터셋 형태처럼 Synthetic data를 생성함

직면한 문제

대회기간 시 문제를 파악하고 일부 반영한 것들
방안 1.
방안 2.
방안 3.
1.
물체 랜덤 배치시 IoU가 겹쳐서 BoundingBox가 중복되어 라벨링 됨
a.
랜덤배치 전 임의로 도출된 x, y 픽셀 좌표에서 boundingbox로 IoU 0.5 이상일 때만 배치 결정
2.
Synthetic data에는 검증시 맞춰야하는 객체들로만 이뤄져 있었음 그러나 검증데이터셋 다수에는 Class 목록에 있지 않은 Unknown 오브젝트도 존재함
a.
i.
Unknown비율이란 Known object(검증시 맞춰야 하는 객체)가 아닌 검증데이터에서 방해하는 객체로 Known과 Unknown가 전체 배치되었을 때 차지하는 비율을 의미함
ii.
Unknown 0.7이라면 전체 50개를 배치했을 때 15개만 모델이 맞춰야 하는 객체임
3.
카트 이미지를 넣지 않았을 때와 카트 이미지를 넣었을 때

고찰

대회기간에 파악은 했으나 해결하지 못한 내용들
1.
검증 데이터셋에 빛 번짐, 초점 흔들림등의 현상이 존재함. 초점 흔들림은 Blur로 반영했으나 빛 번짐은 Synthetic data에 반영하지 않았던 점이 아쉬움
2.
cut-and-paste로 물체를 RandomScale을 적용하여 하게 될 때 학습 데이터의 이미지 크기 자체가 일부 고정적이지 않아 너무 작거나 너무 크게 크기가 결정되는 점이 있었음

결론

방안 3. cut-and-paste 방법을 사용
Yolov8-X 모델을 Epoch 20만큼 학습
공모전 지원 부문 최종 4등/19 IoU 0.72, Acc 0.264