-발표자 조민성
Virtual Environment
지난 드론 프로젝트때 airsim을 사용한 것처럼, 이번 역시 새로운 가상환경이 필요했다. 사실 airsim을 사용해본 결과, 단점들이 좀 많았다. 일단 Python API를 불러올 때, sync의 문제도 있었고, airsim을 도시에 접목시키려면 unreal engin marketplace에서 새로운 맵을 사거나 만들어야 하기도 했다. 이외에도 여러가지 버그나 이용에 있어서 문제가 상당수 있었기에 새로운 가상환경을 찾아봤다.
이번에 사용해볼 환경은 Carla라고 하는 오픈소스 시뮬레이터다. airsim과 같이 UE4기반이며, 조금이지만 약간 테스트를 해본 결과 airsim보다 전반적으로 전문적인 분위기가 느껴진다. airsim은 드론과 자동차 둘다 조작이 가능한 반면, Carla는 오로지 자동차에만 집중해 더 훌륭한 퍼포먼스를 보여준다.
airsim에 비해 설치도 쉽고, 여러모로 편리한 면이 많으나, document가 좀 부실한 단점이 있다. 특히 우리나라에서는 인지도가 없는 것인지, carla를 검색했을 때 한글 자료나 커뮤니티가 전혀 없다. 그래서 일단은 공식 문서와 유튜브를 통해 공부중이다. 다행스럽게도 python코드를 연동해 강화학습을 훈련시켰다는 글들은 종종 보이는데, 실제로 어떻게 했는지가 나와있지 않아서 이곳저곳 뒤지는 중...어느정도 진척이 되면 블로그에 올릴 생각이다.
Architecture
저번 글에서 잠깐만 훑고 지나갔지만, 역시나 이번에는 DQN을 이용해볼 생각이다. Environment perception은 Stereo R-CNN을 사용할까 하는데, 이는 아직 확신하지 못했다. 사실 굳이 Stereo R-CNN을 사용해야할지는 미지수로 보인다. 이번 목표를 실제 모델 제작으로 잡은 만큼, Lidar나 Radar를 훈련과정에서 사용하지 않을 계획이라 perception문제는 오로지 카메라를 통해서 해야한다. 다만 연산량이 높고 훈련도 어려운 Stereo R-CNN보다는, Line detection과 YOLO를 이용하는 것이 더 낫지 않을까 하는 생각이 드는 것이다. 현재는 일단 환경구축을 완성할 때까지는 시간이 있어서, 자료들을 더 살펴볼 계획이다.
이미지 부분은 아직 정해지지 않았지만, 강화학습은 어느정도 정해졌다. 문서들을 보면 주로 A3C나 DDPG, DQN 중 선택해서 쓰는 것으로 보이는데, 우리는 DQN을 사용할 것 같다. 다만 DQN의 경우 연속적인 스칼라값을 출력하지 못하다 보니, 차량의 방향이나 속도를 학습하는데 어려움을 겪을 것 같다. 그럼에도 DQN에 관한 자료가 많기도 하고, 상대적으로 훈련이 쉬운 알고리즘라, DQN으로 정했다(사실 훈련이 쉽다고는 했지만 DQN의 Action 가짓수가 늘어나면 뭐... 그냥 DDPG가 더 낫지...).
Reference
이것저것 찾아보고는 있지만, 사실 자율주행이라는 분야가 그리 쉽지는 않다보니 개인 프로젝트로 하는 사람들이 별로 없는 것 같다. 그래서 github을 찾아봐도 딱히 괜찮은 것들이 없다...
현재는 논문들을 찾아보는 중인데, self-driving과 line detection위주로 찾아보는 중. 아래 링크들은 현재까지 찾은 가장 괜찮은 자료들이다.
1. Self-driging with DQN : web.stanford.edu/~anayebi/projects/CS_239_Final_Project_Writeup.pdf
2. Line Detection : towardsdatascience.com/lane-detection-with-deep-learning-part-1-9e096f3320b7
3. CARLA Tutorial : www.youtube.com/watch?v=J1F32aVSYaU&list=PLQVvvaa0QuDeI12McNQdnTlWz9XlCa0uo
'4기(20200711) > 강화학습' 카테고리의 다른 글
DDPG 코드 리딩 (0) | 2020.08.07 |
---|---|
라즈베리파이를 이용한 Auto Driving (0) | 2020.07.24 |
강화학습과 RNN을 이용한 주식 프로그램 개요 (0) | 2020.07.17 |