미래형자동차 자율주행 SW경진대회 후기를 써보려고 한다.
아마 최초의 후기가 되지 않을까 싶다.
자율주행에 관심 있는 학생들이라면 한번은 들어보게 될 대회이라 후기를 남겨두면 좋을 거 같았다.
아주 처음 참여하는 사람들에게 조금이나마 감 잡는데, 도움이 되면 좋겠다
일단 나는 .. 운이 좋게도 1위를 했다.
산언통상자원부에서 주관하는 대회라 열심히 할 가치가 충분히 있는 대회라고 생각한다.
누구든 올바른 방향으로 열심히 하면 좋은 성적을 거둘 수 있는 대회인 거 같다.

1. 지원 과정
어느 날 메일 한 통이 날라왔는데, 메일 받고 지원해봤다.

다들 대회 한 번은 나가보는 느낌이라 나도 궁금해서 이번 기회에 참가해봤다.
지원하니까 내부 심사를 통해 합격하였고, 우리 학교 3인 1팀이 구성되었다.
다들 지원하는 것인 줄 알았는데 어쩌다... 학교 대표팀이 되어버렸다. 교육 2022.12.26에 받고 그 이후부터 준비하니, 1달 반정도 준비할 시간이 주어진다.
2. 교육워크샵
나는 성균관대학교 지하철타고 가서 수업을 들었고 기숙사도 배정받았다.
카메라, 라이다 등 자율주행 기술 관련 교육을 받았다.
내용은 자체는 괜찮으나 워크샵 오기 전에 미리 영상으로 받았던 내용과 겹쳤던 것이 아쉬웠다.
심화 내용일줄 알고 갔는데. . 물론 도움은 됐다!

사실 교육보다도 중요한 것은 어디서 주행하는 것인지 확인하기와 (연습 주행 날까지 올 수 없기 때문에 사진을 찍어뒀다)
교육자 분들에게 궁금한 거 물어보고 오기였다. 특히 이때는 1회였기 때문에 규칙도 계속 바뀌는 느낌이었어서 물어볼 게 많았다.
주행장 보고 한숨이 나왔다.
멋있긴 하지만 저 통유리... 저 통유리가 주행날에 많은 팀들을 슬프게 할 거 같은 예감이 들었고 우리 팀도 당하면 어떡하지란 생각이 들었다. 실내에서 한다고 해서 변인이 없을줄 알았는데 날마다 날씨에 따라 조도가 달라질 거란 것을 고려해야 한다는 점이다.
그리고 기숙사 생각보다 좋았다.

3. 1차 연습주행
우리 학교에는 주행장을 깔만한 장소가 없었다. 그래서 마음껏 연습할 수 없고 펼칠 공간이 있더라도 성균관대학교 환경이랑 같지 않기 때문에 실제 주행을 해볼 수 있는 연습주행 날이 중요하다.
아래 사진은 우리 학교에서 연습하려고 찍은 건데 보면 아래 다 펼쳐지지도 않고 조명도 너무 어둡다. 잔 주름도 너무 많아서 힘들었다.

그때까지 한 달 넘는 시간이 주어지기 때문에 시간이 충분하지 않냐고 할 수 있겠지만, 일단 겨울방학이라 우리 팀 모두 계절학기를 3주 넘게 들었고 나는 아침 9시부터 오후 4시까지 계절학기를 들었어야 했다... (대회 신청 전에 계절학기를 신청했다 ㅜ) 그리고 하고 있던 프로젝트랑 따로 듣는 수업이 밀려있어서, 무책임하게 대회를 신청한 것 같아 당시 너무 힘들었다 ; ; ;
그렇게 되어 우리 팀은 계절학기 끝나고 총 2주 정도 밀도 있게 준비했다.
문제는 사람도 3명 밖에 없고 자동차 조립하는 것부터 꽤나 문제가 많이 발생했어서 1차 연습 주행 날까지 자동차가 앞으로 움직이는 것만 가능했다. 차선 인식해서 가는 것이 아니라 그냥 앞으로 갈 수만 있는...
연습주행 날 그래도 가는 것이 좋을 거 같아 갔는데 3팀 정도가 한 바퀴를 도는 모습을 보니까 조급해졌다.
우리 팀은 한 바퀴는 무슨 코너도 못 돌던 상태였어서 기숙사에서 계속 코드를 짰던 기억이 난다.

우리는 제어 담당 2명 그리고 카메라 영상 처리 담당 1명 (나)로 팀을 구성했고 각자 짜둔 코드만 있고 통신으로 연결은 아예 하지 못한 상태였다.
그렇게 쓴 맛만 보고 돌아왔다 ^__^..
4. 2차 연습주행
2차 연습주행 때까지 어느정도 만들어서 가져가지 못하면 망하는 게 무조건이라 생각했다.
물론 2차 연습주행하기 전날의 진행도는 한 바퀴는 어느 코너는 돌고 어떤 코너는 인식도 못하는 상황이었다.
그러고 ... 2차 연습주행을 갔다.
전날 밤새서 나는 영상처리 코드 2개를 짜갔고 조정할 파라미터를 리스트 업 해서 가져갔다.
2차 연습주행 날에 그 자리에서 수정하면서 처음으로 한 바퀴를 돌았던 거 같다. 물론 엄청 느리게 말이다.
큰일났다고 생각이 들어서 이 날에는 손 봐야 할 것이 너무 많은 거 같아, 연습주행을 하면서 카메라를 통해 들어오는 모든 프레임을 뽑았다. 우리 연습 주행이 완전 아침과 저녁까지 모두 있었어서 실제 주행날 조도는 무조건 그 사잇값이었다.
덕분에 우리는 실제 주행날에 조도에 스트레스 받을 필요가 없었다. 사실 애초에 환경에 대한 스트레스 안 받으려고 조도에 robust하도록 하려고 노력했다.
이후에 카메라로 들어오는 프레임들에 내가 한 영상처리를 적용해서 30000만 개가 넘는 프레임들에 내 영상처리 알고리즘을 적용했을 때, 영상처리가 제대로 되지 않는 것이 있는지 프레임 단위별로 검증하였다.
모든 프레임에서 차선 값을 정확히 리턴할 수 있도록 해내면 실제 상황에서도 문제 없을 거란 확신이 있었다.
그리고 쉽게 생각했던 미션 주행에 엄청난 스트레스를 받았다.. 신호등 앞에서 멈추고, 빨간불에서 초록불이 되면 지나가야한다.
신호등이 비싸서 학교에서 안 사줬는데 연습 주행 와야만 신호등을 만날 수 있었기 때문에 ㅜ 이것도 잔뜩 프레임에 담아갔다.
참고로 아주 쉬운 알고리즘으로 넘어가려고 했는데, 색으로 구분하려고 하거나 hough circle 등 간단한 알고리즘을 테스트해보면 정말 성능이 별로다. 신호등 빛이 생각보다 묻히고 픽셀 단위로 임계값을 설정하려고 하면 조금만 환경이 바뀌어도 이상한 것들이 잔뜩 탐지된다.


5. 대회날 당일
대회날 직전 날에 고속 주행 2바퀴를 돌 수 있었다. 빠르지도 느리지도 않은 속도였다. 2분 20초 정도 걸렸다.
10바퀴 돌리면 2번 정도 이탈이 생겼었다.

고속 주행에서 주로 문제는 아마
1. 횡단보도 부분 -> 차선과 같은 색상인 흰색 부분이 많아서 차선 검출에 노이즈가 생기는 구간.
2. S자 구간 -> 속도를 내는데 좌 우 바꾸다가 이탈이 자꾸 생긴다. 또한 카메라에 차선이 안잡히는 구간이 생긴다.
3. 카메라에 차선이 없어지는 경우 -> 어떻게 처리할지 1
4. 오른쪽 차선이 왼쪽 차선으로 인식하게 되는 문제 -> 어떻게 처리할지 2
미션 주행에서 문제는
1. 신호등 앞에서 멈추기 -> 미션주행 잘하는 팀들도 많이 지나쳤다. 움직이면서 신호등 앞에 딱 멈추기 어렵다
2. 신호등 초록불 탐지하기 -> 빨간불에서 초록불 탐지하는 거 쉽지 않다. 연습주행 때 잘되더라도 실제에서 안될 수 있다.
3. 주차 -> 주차는 연습주행 때 다들 잘 하다가 실제 주행에서 망하는 팀이 많다. 차를 들고 다니다 센서에 문제 생기거나 의문의 문제가 은근 많이 생긴다.
내가 영상처리 담당했을 때 겪었던 힘든 부분이지만 다른 팀들도 똑같이 고전하는 느낌을 받았다. 실제로 위에 적힌 부분들을 해결한 팀들이 우수한 성적을 얻었다.
우리팀은 고속 주행은 목표했던 1분 40초대로 이탈없이 들어왔다. (참고로 이번 2회 대회에서는 1분 20초대까지 단축시켰다)
우리는 직전날에 2바퀴를 완주한 처지라 더 욕심내지 않고 목표한대로 속도를 설정했는데, 하루 정도 더 있었으면 욕심은 낼 수 있었을 거 같다.
우리팀은 미션 주행은 대회 당일 날까지 수정했다. 미션 주행은 미션만 통과하면 된다는 마인드로 임했다. 미션주행이 순위를 가르는 포인트라고 생각하는데, 첨에 나도 완벽한 알고리즘을 추구하다가 비교적 허술하더라도 무조건 미션 통과 성공률이 높은 방법을 사용하는 것이 우선이라 생각했다. 생각하지 못한 이탈 감점이 있었고(아직도 의문) 주차도 문제가 생겼다(문제 생겼지만 다행히 감점은 없는). 결국엔 미션 3개 모두 한 팀은 우리 팀 밖에 없었다. 이번에 진행한 2회 경진대회에서 상위 팀들도 신호등 미션에서 생각지 못한 오작동을 겪은 모습을 확인했다.
++ 유튜브에서 1회차 대회 고속주행 보면 제대로 주행 못하는 팀들이 꽤 많은데, 연습주행 때는 잘 달리던 차가 많았다. 실제 주행날에는 환경이 바뀌어서 그거에 대한 대처를 못하거나 파라미터를 바꾸다 문제가 생겼을거라 예상한다. 2회차에는 넓은 강당에서 진행하던데, 2회 대회와 달리 우리는 통유리이고 협소한 공간에 기둥들이 있어서 오작동하는 경우가 종종 발생했다. 경진대회 준비하는 사람들은 실제 주행 환경에서 발생할 변인을 대비하면 좋을 거 같다. 2회 대회도 문제 없어보이는 대강당일지라도 실제 대회날에는 조명이 달라지는 등의 문제로 어디서 문제가 생길지 모른다.
6. 수상
결국엔 1위로 산업통상자원부 장관상을 수상했다.

저 무거운 차를 들고 대회 기간 동안 퇴근 시간에 1호선 탔는데 엄청난 민폐남이 되어버렸다. 사람 많을 땐 내려서 택시 탔다..
다른 학교들은 학교 차 태워주고 편하게 다니던데... 교수님들이 직접와서 지도해주시고 신경 많이 써주는 거 같아서 부러웠다. 우리는 연습주행 때부터 이 무거운 것을 들고 지하철을 타고 다니고 우린 편한 게 하나도 없었다 ... 조금 학교에 서운하긴 했는데 그래도 준비물 사주고 대회 참여하게 해준 학교에 감사하기로 했다. 이번 대회는 부산에서 했던데 다들 어떻게 다녔는지 ㅜ
2회차 되니까 1위한테 상금도 많이 주고 해외로 가는 기회도 주는 거 같더라. 다만 참여 인원을 7명으로 늘린 거 같던데 그러면 역할 분담이 중요할 거 같다. 나는 영상처리를 혼자 맡아서 내가 못하면 끝이란 생각에 했는데, 오히려 7명이면 서로 미루다 팀원의 존재가 독이 될 수 있을 거 같다.
병행하는 것이 너무 많았어서 대회 날까지 울렁이는 하루하루를 보냈지만 대상 하나로 모든 기억이 미화됐다...
잠도 못자고 너무 힘들었어서 당분간 대회 나갈일은 없을 거 같다 =))))))
우리 팀을 통해 전날까지 잘 안되더라도 끝까지 잡고 해봤으면 좋겠다. 우리 팀은 정말 직전 날까지 가망이 없었던 팀이었는데, 마지막 순간에 많은 것을 깨달았다. 절대 처음부터 탄탄하게 진행한 것이 아니다. 자율주행 대회 참여하는, 지금 이 글을 보는 분들은 모두 끝까지 포기하지 않았으면 좋겠다.
'진로 관련 후기' 카테고리의 다른 글
데브코스 자율주행 4기 지원 그리고 후기 (0) | 2023.09.13 |
---|---|
한국과학기술연구원 KIST 인공지능연구단 학부생 인턴 후기 (0) | 2023.09.12 |
Lgenius 합격자가 쓴 후기 그리고 준비 방법 | Lgenius Camp (4) | 2023.09.09 |