객체 감지 공모전: YOLO 모델과 실전에서의 시행착오
한국교통안전공단이 제공한 자율주행 공개데이터셋을 활용하여, 카메라와 라이다 기반의 자율주행 인공지능 알고리즘 개발 공모전에 참가했습니다.
이번 객체 감지 공모전에 도전하면서 정말 많은 것을 배웠습니다. 대규모 데이터 처리부터 필요한 서버 자원 확보까지, 모든 과정이 새로운 도전이었습니다.
우선 대용량 서버를 확보한 후, 본격적으로 객체 감지 모델을 탐색했습니다. 잘 알려진 YOLO 모델 중 YOLO v5와 YOLO v8을 선택하여 실험을 진행했습니다. 이어서 팀장님이 YOLO v10 모델로 실험을 하셨고, 최종적으로 이 세 가지 모델을 활용해 보고서를 작성하여 제출했습니다.
서버확보
프로젝트의 첫 과제는 서버 확보였습니다. 다행히 학교 교수님의 도움으로 필요한 서버를 구할 수 있었고, 이를 통해 본격적인 프로젝트를 시작할 수 있었습니다. 그러나 서버 세팅 후 Jupyter Notebook을 실행하려 했을 때 예상치 못한 문제가 발생했습니다. 결국 리눅스 환경에서 직접 명령어를 사용해 작업을 진행하게 되었습니다.
YOLO v5
YOLO v5 모델을 사용했을 때, 모델 구현 과정에서 큰 문제는 없었지만, 기대했던 만큼의 정확도가 나오지 않았습니다. 처음 테스트를 진행했을 때 정확도는 고작 10%였죠. 이에 따라 하이퍼 파라미터 튜닝을 시도했습니다.
하이퍼 파라미터 튜닝
- 학습률(Learning rate): 모델이 데이터를 학습하는 속도를 조절하여 최적의 값을 찾으려고 했습니다.
- 배치 크기(Batch size): 한 번에 처리하는 데이터의 양을 조절해보며 성능 차이를 확인했습니다.
- 에포크(Epochs): 데이터셋 전체를 몇 번 학습시킬지 조절해 성능을 높여보려고 했습니다.
그러나 이러한 노력에도 불구하고, 정확도는 30%를 넘지 않았고, 결국 YOLO v5 모델은 폐기하게 되었습니다.
YOLO v8
다음으로 YOLO v8 모델에 도전했습니다. 이 모델로도 비슷한 방식으로 객체 감지를 시도했지만, 이번에는 서버가 대용량 데이터를 처리하지 못하는 문제가 발생했습니다. 서버 자원 부족으로 작업이 자주 중단되었죠.
이 문제를 해결하기 위해 데이터 샘플링을 적용했습니다.
전체 데이터에서 모델 학습에 필요한 양만큼만 추출한 것입니다. 이로 인해 서버 부담을 줄일 수 있었고, 결과적으로 정확도가 84%까지 향상되었습니다. 시간 제약으로 하이퍼파라미터 튜닝은 충분히 하지 못했지만, 이 성과로 프로젝트를 마무리할 수 있었습니다.
YOLO v8 이후, 팀장님이 프로젝트를 이어받아 YOLO v10 모델로 추가 실험을 진행했습니다. 그 결과 모델의 정확도가 90%까지 향상되었고, 팀의 성과도 한층 더 발전했습니다.
마치며
비록 수상은 하지 못했지만, 이번 공모전은 저에게 귀중한 도전과 배움의 기회를 제공했습니다. 문제 해결 과정을 통해 제 기술적 역량이 크게 성장했고, 앞으로도 이러한 도전을 계속하며 더욱 발전해 나가고 싶습니다.
이 블로그 글을 통해 여러분도 도전에 대한 의욕을 얻고, 기술적 문제를 어떻게 해결해 나가는지에 대한 영감을 얻으셨으면 좋겠습니다!