Computer Vision

병변 검출 AI 경진대회(후기)

마르코_산티아고 2021. 12. 7. 20:00

이번에 파이널 프로젝트로 총 3명 팀으로 데이콘의 병변 검출 AI 경진대회에 참여하였다.

대회 배경은, 소장 캡슐 내시경 영상에서 병변을 AI로 검출할 수 있었으면 좋겠다~ 라는 것이라고 한다.

결론적으로 말하면 입상할 수 있을만한 순위에는 들지 못했다. 

하지만 나름 의미있는 점수는 낸 것 같아 후기를 짧게 쓴다. (아쉽게도 대회 규정상 코드나 데이터는 공유할 수 없고 사용한 모델의 generic한 사용법에 관한 것에 대해서만 써 본다.)

 

1. 대회 기간

일단 이번 대회가 11월 15일부터 12월 6일부터가 개최 기간이였으나, 우리 팀은 다른 대회에 참가신청 했다 까이고, 참가 팀 부족으로 개최가 연기되는 등의 시련을 겪다 11월 26일 쯤부터 참가가 결정되어, 짧은 기간 동안 참가하게 되었다.

 

2. 사용 모델

이번에 우리 팀이 사용한 모델은 yolov5였다.

일단 사용하기 쉽고, 기간이 짧아서 다른 모델을 사용하기에는 학습 시간 등이 마땅치 않았기 때문이다.

결정적으로 우리 팀이 가진 리소스가 없다 보니 colab pro에 의존하면서 참가할 수 있는 건 yolov5가 그나마 가장 나은 선택이였다.

 

3. 모델링 결과

리더보드상 public score는 0.66637이였고 private score는 0.7178이였으며, 일단 리더보드상 순위는 45위로 마감하게 되었다.

public score의 경우 마의 벽이 0.7이라 느껴졌었는데 private는 대체로 다들 public보다 점수가 좀 더 높아져 1등이 0.84357점으로 마감되었다.

 

4. 이미지 전처리 맟 Augmentation

크게 세 가지의 전처리 및 Augmentation을 하였다.

1. 이미지 테두리 삭제(정확하게는 (0, 0, 0)으로 까만색으로 만듦)

2. 이미지 선명하게 만들기

3. train data의 7% 수량의 까만색 배경 이미지 추가

4.컷아웃

5.리사이즈

 

기본적으로 데이터에 bounding box 데이터가 제공되기 때문에 리사이즈 말고는 전처리는 따로 할 필요가 없었던 것 같기는 하다.

컷아웃은 yolov5의 data augmentation 기법으로 유명한 방법이라 valid 데이터를 제외한 전체 train 데이터셋에 대해 만들어 넣었고, 대회에서 제공된 사이즈 자체가 576*576 또는 320*320이였기 때문에, yolov5에서 기본적으로 pretrained 된 데이터 사이즈인 640*640로 만들어 넣는 정도의 가공을 하였다.

 

5. 아쉬운 점

일단 코드 공유 자체를 못하게 한 대회 규정이 가장 아쉽고...(개인 창작물인데 왜? 데이터를 공유하겠다는 것도 아니고.)

리소스를 가지지 못한 상황에서 급하게 참가 결정된 대회라 아쉬움이 가장 큰 것 같다.

이번 교육에서 주로 배우고 있는 강사님이 얼마전에 머신러닝/딥러닝용 서버를 사면서, 서버를 왜 구매할 수 밖에 없게 되는지 몇 번이고 얘기 했었는데, 그걸 이번에 아주 크게 공감하게 되는 계기가 되었다.

사실 지금까지는 코랩으로 돌려도 크게 아쉬움을 못 느낄 정도의 학습 밖에 한 적이 없었는데, 컴퓨터 비젼을 하려면 일단 개인 서버를 사든지 아니면 클라우드 사용이 필수겠더라. 코랩으론 학습속도가 감당이 안 되더라. 그래서 내가 요즘 서버 구매에 꽂혔다...

사실 이번에 yolov5를 처음 사용한 것 치고는 그럭저럭 성과는 나왔기 때문에, 다음에는 서버를 사서 다른 대회를 도전해 보려고 한다.

2022년엔 서버를 꼭 사고 말테다........