자율주행 레이싱 게임 해보기!

자율주행 레이싱 게임 해보기!

본 과정은 "자율주행 하드웨어"를 갖고 진행하는 과정으로 설계되었는데, 하드웨어 사용에 어려움이 있거나, 하드웨어가 없는분들을 위한 무료 컨텐츠입니다. 하드웨어 사용 시, 피지컬 AI를 배울 수 있으니, 하드웨어에도 많은 관심 부탁드려요!





레이싱 기반 자율주행!


안녕하세요, 이번에 특집으로 원클릭에이아이에서 자율주행 게임을 만들어 왔습니다. (박수!) 이 게임은 간단히, wasd 키만으로 차량을 주행할 수 있습니다. 그리고 옆에 "차량 캘리브레이션"에서 모터 속도를 조절해서 차량 속도를 조절할 수 있습니다. 여기서 상위 10등안에 들면 소정의 상품을 드릴 수도 있으니, 많은 참여 부탁드립니다. 그럼 레이싱 게임은 레이싱 게임인데, 어떻게 자율주행을 할 수 있는지 알아보겠습니다!




직접 주행 데이터를 취득해보자!


여기서는 행동모사 자율주행으로 진행될 예정입니다. 행동모사라는 뜻은 여러분의 행동을 데이터로 만들어서 이를 기반으로 지도학습을 하는 것을 말합니다. 그러면 학습된 AI 모델은 여러분의 행동을 따라 움직이게 됩니다.


아래서 영상을 보면 더 자세히 알 수 있습니다.

"이미지 저장" 버튼을 누르면 이미지 저장이 활성화 되는데, 이 상태에서 주행을 하면 키보드 입력값에 따라 이미지 데이터가 취득되게 됩니다.

그러면 아래 여러분이 취득한 이미지가, '직진', '좌회전', '우회전', '정지' 클래스로 나뉘어서 저장이 되게 됩니다.


간단하죠? 단순히, 데이터 수집 버튼을 활성화 하고 주행을 하면 여러분의 주행 데이터가 취득됩니다.







모델을 위한 준비, 데이터 클렌징


주행데이터가 취득되면 이제 바로 학습을 하면 되겠죠?

아닙니다. 그 전에 더 중요한 과정이 하나 남아있습니다. 바로바로! 데이터 클렌징입니다.

데이터 클렌징이란, 취득된 데이터가 학습에 적합하도록 정리하는 과정을 말합니다.


따라서, 취득된 데이터중에 이상한 데이터가 있다면 삭제를 해주세요. 이런 이상한 데이터들이 모여 이상한 주행이 탄생하게 됩니다.

반대로, 올바른 데이터만 모여있다면, 적은 데이터로도 올바른 자율주행을 할 수 있게 됩니다. 실제로 AI 개발을 하면서 가장 (귀찮지만) 많은 시간을 쏟는 부분이 바로 여기 데이터 클렌징 입니다. AI는 많은 데이터가 있으면 더 좋은 모델을 만들 수 있는데, 또한, 이상한 데이터를 지움으로써 더 좋은 모델을 만들 수 있기도 합니다. 따라서 여러분도, 데이터가 많은데 결과가 이상하다면, 데이터를 꼭 한 번 다시 봐주세요.









나만의 AI 모델 학습


데이터 클렌징까지 모두 끝냈다! 그렇다면, 이제는 모델 학습을 진행하면 됩니다. 데이터 수집을 통해 이미지 데이터가 10장 이상 있다면, 아래 주황색, "학습 시작" 버튼을 누르게 되면 이미지를 통해 학습을 시작할 수 있습니다.


학습에 소요되는 시간은 이미지 데이터 수, 컴퓨터 사양에 따라 달라지는데 약 2분정도 소요되니, 충분한 시간을 갖고 대기해주세요.


학습이 완료되면, 여러분의 취득한 데이터로 행동모사 자율주행 AI 모델이 완성된 겁니다!

모델의 검증용 loss, 학습용 loss도 아래에서 확인 할 수 있습니다. AI를 배웠다면 이 뜻이 무엇인지 다들 아시겠죠? 학습이 부족하거나, 혹은 너무 많은 학습을 통해 과적합이 됐다면, 적당히 epoch 수를 조절해주세요.










자, 이제 시작이야. 자율주행을 해봐!


이제 다시 게임으로 돌아가서, 모델 학습이 완료됐다면, "모델 예측" 버튼이 활성화 됩니다. 이걸 클릭해주세요.

그럼 "자율주행 모드"로 진입하게 되고 차량이 알아서 도로를 따라 주행하게 됩니다.


아래 영상에서도 마치 제가 주행하는 것 같지만, AI 모델이 주행하는겁니다.

올바른 데이터, 올바른 학습량을 통해 올바르게 학습됐다면, 끝까지 주행을 할 수 있는 것을 확인 할 수 있습니다.


여러분도 한 번 직접 데이터를 취득해서 여러분만의 자율주행 모델을 만들어 보세요!








Test your limit...


아마 데이터가 적더라도 올바르게 학습했다면, 저속에서는 완주가 가능합니다.

하지만 속도가 빨라지면 어떨까요?


여러분의 모델이 잘 갈 수 있을까요?

완주가 가능한 최대속도는 몇인가요?!!


여러분이 직접 학습해보고 확인해보세요!