Ttoro_Tech

[AIVLE_3기]_16주차_Dacon_도배 하자 유형 분류 AI 경진대회 본문

Data Projects

[AIVLE_3기]_16주차_Dacon_도배 하자 유형 분류 AI 경진대회

Lee_Ttoro 2023. 5. 24. 19:15

https://dacon.io/competitions/official/236082/overview/description

 

도배 하자 유형 분류 AI 경진대회 - DACON

분석시각화 대회 코드 공유 게시물은 내용 확인 후 좋아요(투표) 가능합니다.

dacon.io

AIVLE 세번째 공모전 참여

최대 인원이 5명으로, 기존 4인과 한 분을 더 모집하여 이미지 분류 문제에 참가함

목표

이미지 데이터를 기반으로 도배의 하자 유형을 정확하게 분류해 낼 수 있는 AI 모델을 개발하자

지도 학습 + 컴퓨터비전

Classification :  가장 쉽게 접근할 수 있는 문제 정의로 이미지 전체를 보고 분류함

Segmentation : Object Detection 문제로 벽지의 하자는 이미지 전체를 보는 것이 아니라, 문제인 부분만 학습하여, 문제 부분을 탐지하는 문제

 

'23.05.22. 최종 F1-Score 0.604151907

문제 접근 방법

Classification CNN

  • 처음 문제를 해결하기 위해, 먼저 가장 쉽게 접근할 수 있는 classification 문제로 접근하였다.
  • 다양한 pre-trained 된 CNN 모델을 사용하였고(EifficientNet, ResNet, VGG 등), 이미지 불균형으로 인한 과대적합을 방지하기 위해 Augmentation 작업을 진행하였다.

훼손이 가장 많음
평균적인 이미지 크기는 약 640 * 620

  • 하지만 수직, 수평 변환 및 약간의 줌을 주는 정도로 이미지 증강을 처리했기 때문에, 최소 약 28%의 score와 강제로 이미지 수를 모두 일정하게 맞췄을 때 Score는 약 50%의 score로 더 이상 성능의 향상이 보이지 않았다.
  • 또한 하자 중 틈이나, 벽지 내에서 색 때문에 잘 보이지 않는 특징을 눈에 띄게 하기 위해 Sobel filter 역시 적용하였으나, 이미지 내에서 하자 부분을 학습하기 보단 이미지 내에 다른 부분의 특징을 학습하는 것을 확인할 수 있었다.
  • 따라서 이를 해결하기 위해 다음 문제로 새로 정의하였다.

Segmentation CNN

  • 해당 이미지는 벽지 하자 이미지로, 이미지 내에 하자가 하나 또는 하나 이상의 유사한 하자가 존재하는 이미지이다.
  • 하지만 대회에서는 detection boxing 데이터를 제공하지 않았기 때문에, 약 3,000 장의 이미지를 폴더별 label을 보면서 5명이 직접 라벨링 작업을 시작했다.
  • 팀원들끼리 각자 라벨을 맡아 약 600장을 직접 눈으로 보면서, 라벨링 작업을 시작했으나 많은 어려움이 있었다.
  • 라벨링된 폴더 내 이미지가 유사한 특징을 보여야 하는데 그렇지 않은 데이터도 존재하였고, 심지어 가장 데이터가 많은 훼손에서는 팀원들과 상의를 해도 분류하기 어려운 이미지들이 다수 존재하였다.
  • 또한 하나의 이미지 내에서도 하나 이상의 특징이 들어나, 이것은 하나의 라벨로 보기 어려운 이미지도 많이 있었다.
  • 우리는 이와 같은 데이터를 학습하기 보다는 빼는 방향으로 진행하였으나, 실제 회사에서 상용화하기 위해서는 도메인에서 장기간 일해오신 분과의 협업을 통해 해결해야할 문제이다.
  • 우리는 정확도는 조금 포기해야 하지만, 빠르게 결과를 확인할 수 있는 Yolo모델을 채택하였고, yolo_v5s, v5m, v5l, v8s, v8m, v8l 등 다양한 크기의 모델을 사용하여 학습시켰다.

ex) yolo_v5 학습 결과
yolo_v5 실험 결과

  • 어느 정도 벽지의 하자를 잘 탐지하는 것을 확인할 수 있다.
  • 하지만 다음과 같은 문제도 발생하였다.

두 가지의 증상이 존재할 때 무엇이 진짜인지 판별하기가 애매함

  • 해당 문제를 해결하기 위해 라벨링 작업을 검수하였으나, 실제로 겹치는 부분도 많이 존재하였고 작업자가 아닌 이상 판별하기 애매한 부분이 많이 존재하였다.
  • 라벨링 작업에 많은 시간이 소모되어 대회 기간내에 성능 향상을 하지는 못했지만, 초기 약 28%의 Score에서 약 60%까지 올린 것은 충분히 가치있는 결과였다.
  • 추후 더 정확한 프로젝트를 진행하기 위해 속도는 느리지만 정확도가 좋은 2-Stage 방식 모델을 선정하거나, 최근 많이 사용되는 Multi-Modal 모델을 활용하여 벽지 이미지를 설명하는 데이터와 이미지를 함께 학습하여 분류하는 것도 좋은 방향일 것으로 예상된다.
  • 또한 양질의 라벨링 데이터가 존재한다면 지금보다 더 좋은 데이터셋을 구성하여 분류에 높은 정확도를 기대할 수 있을 것 같다.

마무리

  • 이번 프로젝트를 통해 실제 벽지 이미지 데이터를 보고, 다양한 하자에 대해 공부할 수 있었고 해당 증상이 어떤 증상인지를 분류하는 방법에 대해 고민해볼 수 있었다.
  • 짧은 시간내에 라벨링하는 작업이 많은 시간이 소모되어 모델을 학습하는 시간이 많이 부족하였다.
  • 단순한 이미지 분류 모델을 사용하는 것은 실제 하자 이미지 데이터를 분류하는데 많은 한계가 있는 것을 확인할 수 있었다.
  • 데이터를 더 많이 수집하여 학습한 후 모델을 일반화 하는 작업을 수행한다면 더 높은 정확도를 기대해볼 수 있을 것 같다.
  • Multi Modal 모델에 대해 공부하여 해당 Task를 다시 시도해보면 좋을 것 같다.