이 글은 어떤 정보를 전달하기 위한 목적의 글이 아닙니다.
저의 개인적인 후기입니다.
대회 평가 방식 |
(평가)주행 경로 / 이벤트 발생 구역
주행 경로 및 각 식별 구역, maicon 본선 안내 사진
이번 대회는 4가지 부분으로 평가됐다.
1) 발표 평가
최대 20점
2) 자율 주행
최대 40점
80초 기준 1초당 1점 추가 점수, 최대 15점
80초 이후에 들어오면 25점 기본 점수
79초 26점, 65초 이하 40점 만점
3) 아군/적군 식별
최대 20점
각 구역(A,B,C,D) 당 군인 수를 정확하게 식별 시 5점, 실패 시 0점
4) 전차 파괴
최대 20점
구역에 적군 전차가 있을 시 IR 센서로 파괴시 10점
아군 전차 파괴시 -10점
대회 1일차 |
눈오는 풍경과 테스트 경기장
눈이 정말 많이 내렸다..
화성에 있는 YBM연수원에서 본선이 진행됐다.
도착해서 10시 20분 쯤부터 개회식, 본선 안내를 진행했다.
12시부터 점심 식사가 시작됐고 바로 본선이 진행됐다.
우리는 데이터 수집을 가장 먼저 진행했다.
왜냐하면 제한된 시간 내 우리 팀이 생각한 데이터 수는 최소 1000장 넘어서 2000장까지도 생각했다. 게다가 전 글에 얘기했지만 우리팀의 SOTA 모델은 RTDETR이어서 Yolo 보다 더 많은 데이터를 필요로 했던 것 같다.
일단 로봇, Jetson Nano에서 각 모델들이 추론이 되는지 테스트 했다. RTDETR의 1장 추론 속도는 2초였다.
사실 돌아가기만 하면 됐다. 왜냐하면 양자화를 할 계획이었기 때문이다. 그리고 바로 데이터 수집을 진행했다.
발표자료에서 꺼내옴.. 발표자료 ppt로 가져왔어야 했는데 pdf로만 가져와서 어쩔수가 없네요 ㅠ
데이터 수집을 하면서 카메라 왜곡에 대해 논의했다. 이대로 모델 학습을 할 것인가, 왜곡 보정을 하고 할 것인가다. 우리 팀은 왜곡 보정을 했을 때 뒤에 잘 보이지 않는 객체도 잘 보일 수 있는 효과가 있을거라 결론하고 왜곡보정을 진행했다. 탕비실에서 체커보드를 프린트해서 카메라 왜곡 보정을 진행했다. OpenCV의 calibration이라는 것을 통해 수집 데이터 이미지를 후처리하고 라벨링을 했다.
라벨링의 경우는 polygon 으로 했는데 팀장님이 이유를 잘 설명해주고 실제로 bbox로 했을 때랑 성능 차이가 있어서 polygon으로 진행했다. roboflow에 좋은 기능을 활용했더니 라벨링은 순조로웠다.
테스트 경기장을 이용하면서 가끔 주행도 진행했다. 근데 준비한 주행 코드가 잘 작동되지 않았다. BEV, Color Filter 등 다양한 환경적인 요소가 원인인 것 같았다. 이때 굉장히 당황했다. 사실 모델은 주행이 되야 사용할 수 있기 때문에 주행이 가장 중요했다.
정전
근데 갑자기 건물 전체가 정전이 된 것이다. 몇시인지 기억은 안 남.. 밤이었는데 흠
우리팀이 테스트 경기장 쓰는 시간이었는데 정전 때문에 아무것도 못 했다. 그래도 못 쓴 시간동안 연장해줬다. 그리고 우리팀은 이 시간에도 라벨링도 하고 카메라 해상도 변경으로 인해 체커보드로 왜곡처리도 다시 하고 알뜰하게 사용한 것 같다.
그리고 어느정도의 모델을 완성하기 위해 주행을 담당한 팀원에게 휴식을 주고 그 동안 데이터 수집을 지속했다.
근데 새벽 4시 5시 됐을까. 사람들이 많이 빠진 것이다. 즉 테스트 경기장을 독점할 수 있었다. 그래서 휴식 중인 주행담당 팀원을 꺠우고 주행을 완성시키기 시작했다. (미안해요 현호님.. 이때가 기회였어요 ㅠㅠ ) 1일차 일 때 이렇게 없으면 2일차 새벽엔 무조건 모든 팀이 있을거라 생각하고 1일차 새벽에 주행을 완성했다. (진짜 우리 팀 잠도 안 자고 2일 다 밤새면서 하느라 고생했어요..)
주행은 Bird Eye View, Sliding Window, Stanley Algorithm 을 이용해 진행했다. 초록색 트리거에 인덱싱해서 몇번에 어떤 주행할지 변하게 된다. 초록색 트리거는 Color Filter를 통해 검출했다. (아마 다음에 maicon 홈페이지에 발표자료 올라올거에요.)
모델의 경우 Yolo11m 을 보험으로 지속해서 데이터셋이 업그레이드 될 때마다 학습시켜놨다. 왜냐하면 RTDETR의 양자화에서 문제가 생겼기 때문이다. Jetson Nano 에서의 TensorRT 버전은 8.2.1 이다. 무조건 맞는 버전에서 모델을 export 해야했다. 그러면 에러를 뱉어낸다..(아 정말 왜그래)
https://github.com/NVIDIA/TensorRT/tree/release/8.2
그리고 TensorRT로 양자화 하려면 GPU, cuda 가 있어야 했다. 일단 노트북은 안되고 데스크탑에서 하려니까 버전이 안 맞아서 안 된다. TensorRT 8.2.1이 또 pip에 없어서 직접 빌드해야 한다. 뭐 onnx 버전도 tensorRT랑 버전이 맞아야하고 numpy 뭐 뭐뭐 다 맞아야된다 뭐 linux 환경에서 해야한다. 어쩌고 저쩌고 결국 안 되서 정말 아쉽지만 포기했다.
이게 됐으면 다른 팀에 비해 모델에서의 차이를 더 낼 수 있었다고 생각한다. 만약 평가 때 객체검출에 모든 팀이 잘 했다고 해도 발표 점수에서 Transfomer 모델을 사용한 점, TensorRT로 양자화를 통해 추론 속도를 높일 수 있었다는점이 다른 팀과의 차이로 사용할 수 있었지만 매우 아쉬웠다.. (아직도 아쉬움)
대회 2일차 |
2일차 아침엔 그래도 주행이 어느정도 되는 시점부터 모델을 전차에 얹어 주행과 추론을 함께 진행하게 테스트를 진행하고 데이터 수집을 계속 계속 수집하고 라벨링도 진행헀다. (영주님, 희원님 최고)
나도 이때부터 굉장히 피곤하고 눈에서 벌레가 기어다니는 듯한 자글자글함 이글이글함이 느껴져서 탕비실에서 좀 자기도 했고 점심 안 먹고 숙소에서 1시간 가량 자고 오후 1시쯤 다시 대회장으로 복귀했다.
2일차가 기억이 잘 안 나는데 일단 주행의 완성도를 계속 높히려 했고 모델도 Yolov11 의 다양한 버전을 학습시키고 비교했던 것 같다.
근데 다른 팀이 너무 잘 하는 것이다 속도가 굉장히 빠른 팀이 있었다. 게다가 모델도 준수한.. 이 대회가 주행 부분에서 가산점을 받을 수 있었다. 그러니까 기준 시간보다 1초씩 빨리 들어오면 각 1점이고 최대 15점을 받을 수 있는 것이다. 근데 이 기준 시간이 대회 평가 당일 오전 8시에 공개된다.
객체 탐지의 경우 평가를 할 떄까진 점수를 확보하지 못 하지만 주행 속도로 받는 가산점은 테스트 주행으로 어느정도 확보를 예상할 수 있다고 판단해서 데이터 수집을 중단하고 주행 속도를 올려 확실한 점수를 받자고 결론났다.
일단 완성된 주행 코드는 fix하고 거기에 모델 추론 시간, 추론할 frame 수를 줄이기로 하고 추론 후 잠깐 프레임 밀림 현상을 막기위한 정차 시간을 줄이기도 했다. 그렇게 해도 1분 5초였다. 다른 팀은 50초 정도로 들어오다보니까 만약 기준 시간이 65초일 때 우리팀은 15점을 놓친다.
그래서 주행에 관련된 소스를 수정하고 주행 Mark2 버전을 개발하게 됐다.
그리고 우리 팀은 Yolov11m 을 사용하기로 해서 최종 모델을 학습하고 Mark2 버전도 새벽동안 하는 동안 난 잠깐 탕비실에서 쉬었다. 근데 갔다오니 최송 모델이 로봇에서 load가 되지 않는 것이다. 아뿔사 뭐지 다른 모델들은 다 되는데 왜 이거만 안 되지?? 이러면서 팀원 전부 패닉(?)에 빠졌다. 결국 어쩔 수 없이 보험으로 해둔 11n버전을 사용하기로 했다.
발표자료 한 부분
새벽 1시 정도부터 발표자료를 만들기 시작했다. 아마도 (https://maicon.kr/) 홈페이지에 올라올거다.
미리 준비한 레이아웃을 바탕으로 저 간결하게 짜기로 하고 디자인도 고민했다.
난 여러 디자인을 고민했는데 진짜 답이 없었다. 그래서 작년 팀을 참고를 많이 했다. (이미 답지가 있는데 왜 안 쓰지? 라는 생각으로..ㅎㅎ)
그래도 우리팀이 한 내용이 전부 들어가긴 힘들어서 최대한 이미지를 많이 활용했다. 말로 설명하면 되니까. 이미지는 말로 표현을 못하기 때문이다.
평가 |
발표 평가를 먼저 하게 됐다.
우리팀은 7번째로 진행했고 무난하게 발표를 하게 됐다. 애초에 발표 시간이 많이 없어서 뭐 말 할게 없다.
주행 평가는 총 2번 할 수 있다.
우리 팀은 기준 시간에 따라 Mark2 주행 코드를 사용할지 말지 정했다. 왜냐하면 mark2는 안정감이 부족했기 때문이다. 결국 기준 시간은 80초라 공지됐다. 우리 팀 Mark1은 65초에 들어오는 정도다. 그래서 가산점을 어느정도 받을 수 있을 것 같아 2회 다 Mark1으로 진행했다.
모델의 경우 yolov11n conf-0.6? 이었나 설정하고 평가를 진행했다.
결과는 C구역에서 적군 수 식별에 실패하고 전부 성공해 75점을 받았다.
이때 우리팀은 정말 안도했다. 생각보다 모델이 잘 해줬기 떄문이다.
1회 주행 영상을 봤을 때 C구역에서 가려진 객체를 탐지 못 했는데 이떄 Conf 값을 내려서 테스트 했더니 잘 잡은 것이다. 그러니까 만점을 받을 수 있었다는 것.
그래서 2회 때 Conf 값을 0.3? 4로 낮춰서 주행을 했는데 아쉽게도 똑같이 75점으로 마무리 했다.
주행 리더보드는 1등으로 마무리했다. 2등도 같은 75점인데 우리가 2초정도 빨리 들어와서 1위를 유지했다.
최종 평가 발표는 점심 식사 후 오후 2시 시상식과 함께 진행된다.
12시에 점심 식사를 하면서 수고했다고 다들 이야기 나눴다.
1시에 레크레이션과 같은 행사를 진행했는데 눈치게임에서 1등하고 다른 게임에서 1등한 3명 총 4명이 단상 위에 올라가서 가위바위보를 했는데 내가 2등해서 에어팟4를 받게 됐다. ㅋㅋㅋ 이런거 처음 받아본다.
결국 오후 2시가 됐고 시상식과 함께 최종 순위 발표가 진행됐다.
6위부터 공개가 됐던 것 같다. 5위까지 공개되고 3위인가 4위 후보부터 1위 후보 팀장은 단상 위로 올라가서 대기를 하며 수상을 진행했다. 4위, 3위 공개가 되고 갑자기 1위를 공개한단다. 그래서 엄청 조마조마 하고 있다가 최우수상 팀은 AI Force 팀입니다~ 라고 했나 그래서 와~ 하고 소리 지르면서 팀원 전부 단상위로 가서 시상하고 내려왔다가 다시 올라가서 수상 소감도 하고 인터뷰도 하고 대회가 끝났다.
수상 중
간단 소감.
먼저 이번 대회를 함께 해준 우리 팀원들에게 정말 고생했고 고맙고 좋은 경험이었다고 전하고 싶다.
또 응원해준 우리 사무실 깐부들에게 고맙다는 말 전하고 싶고 대회 참여를 도와주신 우리 팀 팀장님, 주임원사님, 계운과 간부님께 감사 인사를 드립니다. 마지막으로 수상할 수 있게 많은 관심을 가져주신 공본 간부님들 정말 감사드립니다.
작년 대회에서 공군이 휩쓸었다보니 어느정도 부담이 있었던건 사실이다.
그래서 약간의 부담과 함께 더 책임감을 갖고 대회를 진행할 수 있었고 진심으로 바랬더니 잘 된 것 같다.
다시 한번 함께 해준 팀에게 고맙고 다음에 또 만납시다.
끝.
https://kookbang.dema.mil.kr/newsWeb/20241202/3/ATCE_CTGR_0010050000/view.do
인터뷰 - 브라더빈 님
https://blog.naver.com/h0bin2/223682714542
함께 보면 좋을 콘텐츠 |
||||||||||||||||
💛2천만원 상당 리워드&인턴십 기회 활동 모음! | ||||||||||||||||
└삼성전자 면접관, 현대자동차 인사담당자 등 원하는 멘토를 선택해 답변을 받을 수 있습니다 😎
해당 게시글은 링커리어 회원님들이 남겨주신 소중한 후기입니다. 해당 게시글에 포함된 내용에 대한 악의적인 비방 및 비하, 욕설이 담긴 댓글을 남길 시 무통보 활동정지 및 탈퇴 처리됩니다.
본 사이트의 합격후기 및 자료들을 무단 복제, 배포하는 경우에는 저작권법 제 97조의 저작재산권침해죄에 해당하며, 저작권법에 의거 법적조치에 처해질 수 있습니다.
작성자 링커리어
신고글 [대한민국 국방부] 국방 AI 경진대회 최우수상 수상 후기
- 욕설/비하 발언
- 음란성
- 홍보성 콘텐츠 및 도배글
- 개인정보 노출
- 특정인 비방
- 기타
허위 신고의 경우 서비스 이용제한과 같은
불이익을 받으실 수 있습니다.