IT/디버깅

한진정보통신 인턴 과제 - 특정 라벨에 대한 yolo8 모델 정확도 문제 해결 과정 정리

happy_life 2024. 6. 4. 09:54

한진정보통신(주)에서 인턴으로 근무하며 공항 마약류 객체 탐지 모델을 학습하는 프로젝트를 진행했습니다. 데이터를 전처리하고 yolo8로 학습을 시켰으나, 특정 라벨에 대한 정확도가 0%인 문제가 발생하였습니다. 이를 해결하던 과정을 정리하려 합니다.

 

 

라벨의 예측 정확도가 0%

 

 

위의 문제를 해결하기 위해  2가지의 해결 방안이 있었습니다.

1. 직접 데이터셋을 추가해 진행하는 방안

2. 알약 데이터로 가중치를 만들어 파인튜닝하는 방안

 

 

 

두번째 방안을 선택한 이유

첫번째 방안은 인턴 기간의 제약 및 약국과의 미팅 시간 문제가 있었습니다. 약국과 연락을 하고 약속을 잡는 시간,  실제로 약국에 가서 마약류 사진을 찍는 시간, 라벨링을 하는 시간 등 최소한 한달이상이 걸리는 문제였습니다. 인턴 기간은 한달이 남지 않았으므로, 기간 내에 문제를 해결하기 위해 두번째 방안을 선택하였습니다.

 

 

두번째 방안

1. 공공데이터 포털의 데이터 사용하기

식품의약품안전처 데이터

 

 

식품의약처의 데이터를 바탕으로, 파인튜닝을 하였습니다. 하지만 아래의 결과에서 보듯, 오히려 정확도가 떨어지는 문제가 발생하였습니다.

 

오히려 정확도가 더 떨어지는 문제

 

 

2. 깃허브 알약 2만개 가중치 사용

이에 깃허브에 있는 알약 2만개 가중치를 사용하게 되었습니다. 현재는 그 링크가 사라졌습니다.! (미리 기록해둘걸..)  이 가중치를 바탕으로 파인 튜닝한 결과 아래와 같이 개선할 수 있었습니다.

가중치 적용 전/ 가중치 적용 후

 

 

결론

1. map50에서는 99.5%의 정확도, map50-95에서는 87.6%의 정확도로 성능향상을 얻을 수 있었습니다. 

 

2. 전반적으로 map50-95에서도 다른 라벨들에 대한 정확도가 상승하였습니다.

 

한계점

1. 깃허브 알약 2만개 데이터 가중치의 신뢰성 문제가 있습니다. 결과적으로 성능 개선을 이루었지만, 신뢰할 수 있는 데이터였는지에 대해 고려하지 않았습니다.

 

2. map50-95의 경우 대부분의 라벨에 정확도가 상승하였지만, 소폭 정확도가 하락한 라벨도 있었습니다.

 

 

위와 같은 한계점을 고려했을 때, 더 신뢰성있는 알약 데이터 가중치를 바탕으로 파인튜닝을 하고, 실제 병원과의 소통을 통해 시간이 걸리더라도, 최대한 많은 데이터를 확보해 학습시키는 것이 좋을 것같습니다. 인턴기간 제약의 문제로 다른 방안을 선택하였지만, 시간이 있었다면 두 방법을 모두 적용하여 더 나은 성능 개선을 했을 수 있었을 거라 생각이 듭니다.