300x250

졸업 논문 작성을 위해 AirSim 관련 논문들을 몇 가지 찾아보았다.

그중 첫번째로 AirSim을 활용하여 CNN 기반으로 자율주행 기술을 시뮬레이션 하는 내용의 논문을 리뷰해보고자 한다.

 

논문 url (dbpia)

http://www.dbpia.co.kr/journal/articleDetail?nodeId=NODE10448063 

 

AirSim을 활용한 CNN 기반 자율주행 기술

논문, 학술저널 검색 플랫폼 서비스

www.dbpia.co.kr

 

 

목차

     

     

     

     

    0. Abstract, Conclusion

     

     

     

     

    1) Abstract

     

    이 논문은 AirSim을 활용한 CNN 기반의 자율주행 기술을 제안한다.

    CNN 모델을 training하기 위한 데이터는 차량 front view 이미지, segmentation 이미지, 차량 status 정보이다.

    특히, segmentation 이미지는 차량 주위 환경이 바뀌더라도 조향(steering)을 안정적으로 할 수 있게 해준다.

    AirSim을 통해 CNN 기반 자율주행이 조도가 바뀌거나 길의 굴곡이 변하더라도 안정적인 운행을 한다는 것을 보인다.

     

     

     

     

    2) Conclusion

     

    Unreal 환경의 2차선 도로에서 17Hz로 수집된 차량 전방 이미지, 차량 상태 및 Segmentation 이미지를 학습 데이터로 사용하여 CNN 기반의 자율주행 기술을 구현하였다.

    AirSim을 이용한 도로 환경 시뮬레이션 결과 차량의 주행환경이 변해도 Segmentation 이미지를 활용한 자율주행 기법이 안정적인 주행을 제공함을 확인하였다.

     

     

     

     

     

    1. Introduction

     

    실 도로에서 자율주행을 테스트하기 이전에 시뮬레이터를 사용하여 딥러닝 자율주행 기술 성능을 검증하는 연구 사례들이 늘고 있다.

     

    예를 들면,

    차량의 전방 이미지 및 조향을 학습하여 미래 시점에서의 조향을 예측 및 제어하는 연구,

    차선이 없는 산악 지형에서도 차량 전방 이미지와 조향을 학습하여 조향을 스스로 제어하고, 조향에 따라 가속도도 제어하는 CNN 기반 End to End 학습도 제안되고 있다. (논문 → 'Autonomous Driving using End-to-end Deep Learning: an AirSim tutorial')

    하지만 가속도 정보를 별도로 학습하지 않아 시뮬레이터로 테스트 시 적합한 가속도 제어가 되지 않아서  도로를 이탈하는 상황이 자주 발생한다. 또한 도로가 어두워진 경우 도로를 제대로 인식하지 못하는 현상을 보인다.

     

    이를 해결하기 위해 본 논문에서는 가속도 정보 및 이미지 Segmentation 정보를 함께 고려하여 CNN 기반 자율주행 기술을 제안한다.

    조향 뿐 아니라 조향별 가속도도 학습시키고, Segmented 영상도 학습시켜 도로 인식률을 높인다.

     

     

     

     

     

    2. 본론

     

     

     

     

    1) AirSim

     

    AirSim은 마이크로소프트에서 오픈소스로 개발한 언리얼 엔진 기반 드론 및 자동차 시뮬레이터이다.

     

    AirSim의 활용 방안은 다음과 같다.

    • 딥러닝, 컴퓨티비전, 강화학습 알고리즘을 이용한 자율주행 시뮬레이션을 할 수 있다.
    • 실시간 차량의 상태(조향, 속도, 가속도, 브레이크 등)와 주변 환경에 대한 정보, 그리고 주변 환경에 대한 Segmentation 이미지 및 Depth 이미지를 생성할 수 있다.

     

     

     

     

    2) 시스템 구성

     

    언리얼 에디터를 이용하여 Deep Learning 과정을 진행하였다.

     

    차량 주행 학습 시 키보드를 이용해 차량을 제어하고, 파이썬 API로 차량의 상태 및 영상 데이터를 저장하고, 모델에 대한 입력으로 활용하기 위한 환경을 구축하였다.

     

    AirSim으로 구성한 도로 환경

     

     

     

    3) 데이터 설명 및 전처리

     

    딥러닝 학습 데이터들은 다음과 같다.

     

    • 차량 전방 방향 74 × 255 RGB 채널 이미지
    • 차량 전방 방향 74 × 255 Segmentation 이미지
    • 차량의 상태 데이터 수집 (20분간 주행하여 수집)
      • 조향 : 왼쪽 -0.5, 직진 0, 오른쪽 0.5
      • 가속도 : 가속 1, 감속 -1, 유지 0
      • 브레이크 밟을 경우 1, 브레이크 밟지 않을 경우 0
      • 속도 단위 : m/s

     

     

     

     

    3. 구현

     

     

     

     

    1) 딥러닝 모델 구조

     

    딥러닝 모델은 다음과 같은 구조를 갖는다.

     

    딥러닝 모델 구조

     

    입력 데이터는 전방 이미지, Segmentation 이미지이고,

    CNN의 마지막 레이어에서 추출된 feature map을 flatten하여 1차원 데이터로 변환한다. 이를 Concatenation을 이용하여 차량의 상태와 두 CNN의 출력 값을 합한다.

    최종 출력은 차량의 가속도와 조향 정보로 얻어내고, AirSim에서 주행중인 차량에 적용되어 시뮬레이션이 진행된다.

     

     

     

     

    2) 모델 학습

     

    학습을 위한 Hyperparameter는 다음과 같다.

    • Optimizer : Adam(learning rate = 0.0001, epsilon=0.00000001)
    • Loss에 대한 metric : Mean Squared Error
    • Batch Size : 32
    • Epoch = 1000
    • Early_stopping (loss 변화가 없을 경우 학습 중단)

     

    학습 데이터와 validation 데이터와 테스트 데이터의 비율은 7 : 2 : 1로 나누었다.

     

     

     

     

    3) 성능 평가

     

    Loss Plot

     

    위 graph에서 보이는 바와 같이 차량의 전방 이미지와 차량의 상태만을 학습한 모델(이하 모델 1)과 전방 이미지, Segmentation 이미지, 차량의 상태를 학습한 모델(이하 모델 2)의 성능 차이는 크게 나지 않았다.

    최종 loss 값도 각각 0.02701, 0.02623으로 큰 차이가 나지 않았다.

     

    다음으로 두 모델의 주행 성능을 평가하기 위해 AirSim에서 주행 영상과 차량의 상태를 모델에 입력하여 조향과 가속도를 예측하고, AirSim에 값을 전달하여 실시간으로 제어하는 시스템을 구성하였다.

    밝은 환경, 어두운 환경 각각에서 트랙을 한 바퀴 주행하는 동안 차선 이탈 시간을 비교하한 결과는 다음과 같다.

     

    주행 성능 평가

     

    위 결과를 해석해보자면, 밝은 환경에서 모델 1의 경로 이탈 시간이 더 짧지만, 주행시간은 모델 2가 더 짧으므로 Segmentation 이미지를 활용한 모델 2가 더 효율적인 경로로 주행했다고 볼 수 있다.

     

    어두운 환경에서는 모델 1의 경우 거의 시작과 동시에 차선을 이탈하여 주행이 불가능하였고, 모델 2의 경우 주행을 무사히 완주하였음을 확인할 수 있다.

     

     

     

     

     

    4. References

     

     

    Scene Understanding in Deep Learning-Based End-to-End Controllers for Autonomous Vehicles

    Deep learning techniques have been widely used in autonomous driving community for the purpose of environment perception. Recently, it starts being adopted for learning end-to-end controllers for complex driving scenarios. However, the complexity and nonli

    ieeexplore.ieee.org

     

     

    Agile Autonomous Driving using End-to-End Deep Imitation Learning

    We present an end-to-end imitation learning system for agile, off-road autonomous driving using only low-cost sensors. By imitating a model predictive controller equipped with advanced sensors, we train a deep neural network control policy to map raw, high

    arxiv.org

     

    위 논문은 ROS 환경에서 Gazebo라는 시뮬레이터를 활용한 Imitation Learning을 전문적으로 다룬 내용이다.

     

     

    End-to-End Deep Learning for Autonomous Driving in AirSim | Luffca

    AirSim is an open source simulator for drones and cars. In this article, we will introduce the tutorial "Autonomous Driving using End-to-End Deep Learning: an AirSim tutorial" using AirSim.

    www.luffca.com

     

    위 사이트는 AirSim Tutorial이다.

    728x90
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기