YOLOv4-tiny 모델과 경진대회
학과 경진 대회에 참여하면서 yolo 모델을 사용해봤다. yolo는 이미지나 영상 속에서 객체를 탐지하는 모델 중 하나다. 객체 인식 모델은 매우 많지만 yolo는 속도가 빠르고, 비교적 성능이 좋아 많이 쓰인다고 한다.
<YOLO 원리>
기본 원리는 ReSNET과 유사하다. 라벨링 된 이미지를 통해 모델을 학습시킨 후, 입력 받은 이미지나 영상 속에 같은 객체가 있는지 확인하는 방식이다. 입력 받은 이미지를 확인하고 Grid cells로 나눈뒤, cell마다 하나의 객체를 예측한다. 그리고 인식 된 객체 중 가장 확률이 높은 객체를 바운더리 박스로 나타낸다. 이 과정에서 크게 두가지 알고리즘이 쓰인다.
1. IoU(Intersection of Union): 예측한 바운더리 박스와 실제 정답의 바운더리 박스의 합집합 분에 교집합으로, 예측한 바운더리 박스가 얼마나 정확한지 판단한다.
2. NMS(Non-maximum Suppression): 한 객체에 대해 가장 신뢰도가 높은 하나의 bounding box만 남기는 후처리 과정
시간 부족으로 논문을 읽지는 못하고 대충 개념만 이해한 상태로 발표를 진행했다. 방학 중에 논문을 한 편이라도 읽어봐야 겠다.
<경진대회를 진행하며>
경진 대회를 준비하면서 어려운 점이 많았다. 아이디어도 잘 나오지 않았고, 시간은 없고, 구현하기도 어려웠다. 나는 자세를 인식하는 프로그램을 만들었는데, 만들면서도 계속 '내가 너무 일차원적인 프로그램을 만드는 것 같다'는 생각이 들었다. 딥러닝 모델이면 더 높은 수준의 인공지능을 만들어야 했다. 하지만 내가 만든건 그냥 고등학생이 진로 체험에서 만든 것 같았다... 교수님 말씀대로 자세 인식에서 끝나지 않고, 자세 개선을 도와주는 프로그램을 만들었어야 했는데... 그렇다고 해서 지금 당장 만들라고 해도 쉽지는 않을 것 같다^^ 아이디어가 있을때 할 수 있도록 기초 공부를 열심히 해서 실력을 키워야겠다.
또 인상적이었던 점은 1등 팀의 모델이었다. 첫번째로 직접 구현한 것이 아닌 ChatGPT API를 사용하셨는데 너무... 충격적이었다. 이제 정말 프로그래밍 실력보다 아이디어가 중요한 시대가 왔다는게 느껴졌다. 두번째로는 이미 비슷한 프로그램이 있다는 것이었다. 기존의 프로그램을 사용자가 더 편리하게 개선하여 너무 좋은 아이디어와 높은 완성도를 보여주셨다. 나는 일부로 이미 있는 거에 대해 생각하지 않고 항상 새로운 프로그램에 대해 생각했는데, 요즘에는 대부분의 프로그램이 이미 있다. 내가 생각한 것을 인터넷에 검색하면 이미 유료 서비스로 제공하고 있다. 새로운 것 뿐만 아니라 기존의 프로그램을 개선하는 것도 정말 좋은 방법이라는 생각이 들었다.
이번 경진대회에서는 인공지능 뿐만 아니라 데이터 사이언스, 의료 인공지능 분야의 발표도 들을 수 있어서 좋았다. 아쉬움이 많지만 이번 경험을 통해 많이 배우고 공부해 다음 기회를 노려야겠다!