Drone_Study/What_is

Tensorflow with Airsim __ Tensorflow를 활용한 Airsim

lucete_woo 2018. 3. 6. 15:44

Tensorflow with Airsim __ Tensorflow를 활용한 Airsim



나는 Airsim 시뮬레이터를 공부하며,  어떻게 딥러닝에 효과적으로 사용이 되는 지에 대해 이해하기 힘든 점이 많았다. 

하지만, Dronecode Project의 일원인 Simon Levy가 업로드한 영상을 보며, 많은 부분에 대해 이해할 수 있었다.




Simon Levy는 깃허브를 통해 많은 사람들이 사용할 수 있도록 소스를 제공하고 있다.


영상에서 사용하고 있는 파일은 collision_testing, collision_training, image_collection 세가지이다.




"""""""""


참고 : 이 코드들을 실행시키기 위해서는 사전에 Unreal Engine관련 프로그램들이 설치되어 있어야 한다.

해당 자료들은 깃허브Airsim을 잘 참고하면 설치가 가능하다


"""""""""


Airsim에서 작동하는 Tensorflow의 구조에 대해 자세히 알기 위해서는 많은 공부가 필요하겠지만, 

아래의 자료를 보면 동작 흐름에 대해서는 간략히 이해할 수 있을 것이라 생각이 된다.



python파일 중 제일 먼저 "image_collection.py"를 사용하게된다.

이 파일은 Airsim에서 차량이 건물 혹은 물체에 일부러 부딪히는 장면을 연출하여, 부딪히는 과정에 대한 정보를 수집 하는 것을 담당한다.


image_collection.py의 코드를 살펴보면, 배열을 사용하여 unreal의 오른쪽 아래에 촬영되는 영상에 대해 사진 데이터를 수집한다. 

해당 파일에서는 10장을 수집하도록 되어있는데, 꾸준히 촬영을 하다가 충돌event가 발생하게 되면 해당 event에 대한 정보들을 print하고, vehicle은 움직임을 멈추게 된다. 

이 때 event image는 같은 tensorflow폴더 안의 "carpix"라는 폴더에 저장된다.(처음엔 없다가 첫 동작 후 폴더가 생성된다.)




다음은 collicion_traing.py라는 폴더인데 이 부분이 실제로 tensorflow를 이용해 학습을 하는 과정이다. carpix내의 이미지들을 활용하여 상황들에 대한 학습을 하도록 한다.(이 과정은 tensorflow에 대해 이해를 해야 코드를 이해하기에 수월하다)




마지막으로 collision_testing.py라는 파일을 이용하여, 학습한 내용에 대해 동작하는 차량의 모습을 볼 수 있는데, 해당 영상을 참고하면, 처음의 image_collection과 같이 vehicle이 동작을 하다가, 벽에 가까이 다가가면 부딪히기 전에, 약간의 방향전환과 움직임을 멈추기 위한, 브레이크가 작동하는 것을 확인할 수 있다. 





해당 영상에서는 차량으로 코드를 구성하였지만, Airsim이 계속된 연구로 여러 vehicle들을 지원할 준비를 하고있는 것으로 보아, 추후에는 드론 및 항공체 같은 vehicle들도 학습을 가능하게 할 수 있을 것 같다는 생각이 된다.

 





출처 : 유튜브, 깃허브