티스토리 친구하기

본문 바로가기

논문 Review

Free LSD: Prior-Free Visual Landing Site Detection for Autonomous Planes

728x90

  오늘 제가 리뷰할 논문은 Free LSD: Priro-Free Visual Landing Site Detection for Autonomous Planes 입니다. 본 논문은 2018년에 "IEEE Robotics And Automation Letters (RA-L)"에 게재된 카메라 이미지를 이용해 Fixed-wing UAV의 Landing 장소를 찾는 논문입니다. Canny Edge Detection, Distance Map 등 다양한 Image processing 알고리즘과 Random Forest라는 Machine learning 알고리즘을 이용하여 Landing 장소의 Segmentation 및 Classification을 하고 있습니다.

 

 

Introduction

  Small-scale의 autonomous planes은 commercial, industrial 등에서 더 많이 사용될 것으로 기대되고 있습니다. 하지만 주어진 미션을 수행하고 적절한 Landing site를 detection 하거나, 또는 실제로 landing procedure를 수행할 때에는 여전히 경험이 있는 safety pilot이 필요합니다. 적절한 landing site를 찾기위한 현존하는 Landing Site Detection(LSD) system은 offline-computed data, 또는 environment에 대한 prior knowledge가 필요합니다. 본 논문에서는 autonomous fixed-wing UAVs의 real-time landing site detection system과 path computation algorithm을 제안합니다. 논문에서 제시하는 contributions 는 다음과 같습니다.

 

- A real-time visual landing site detection.

- Detecting landing site based on their texture and geometric shape without using any prior knowledge about the environment.

- Consider terrain roughness and slop.

 

Framework

  저자들은 prior-free LSD system을 위해 아래와 같은 framework가 제안했습니다. 센서는 Camera, IMU, Pressure, Magnetometer, 그리고 GPS가 사용되었습니다. 먼저 카메라로 연직 아래방향을 촬영합니다. 촬영된 image를 altitude 기반으로 Canny Edge Detector를 이용해서 Edge를 구하고, Edge가 없는 지역을 landing 할 수 있는 지역으로 Segmentation 합니다. 그 후, Binary Random Forest 알고리즘을 사용하여 grass와 non-grass 지역을 classification 합니다. 그러는 동안 카메라로 촬영한 image에서 coarse한 특징점들의 위치가 얼마나 변했는지를 기반으로 Coarse Depth Measurements(대략적인 깊이정보 측정)를 합니다. Classification 결과와 Coarse Depth Measurements를 기반으로 region의 grade(순위)를 계산하여 가장 landing 좋은 region을 선택합니다.

  landing할 Region을 선택하였으니, 이제는 선택한 region안에서 어느 위치에 landing 할지를 찾아야 합니다. Depth 정보를 기반으로 Roughness(거칠기)와 Slop가 가장 작은 지역, 그리고 Hazard map을 기반으로 UAV의 위치와 landing 지역 사이에 나무, 집 등의 obstacle의 유무를 고려하여 최종 landing site를 찾습니다.

 

 

Landing Site Detection

1. Region Segmentation

  Landing 할 수 있는 지역은 평평한 지역일 것입니다. 평평한 지역은 집, 숲 등 landing이 어려운 지역보다 상대적으로 적은 Edge가 검출될 것으로 예상할 수 있습니다. 본 논문에서는 Fig.3(b)와 같이 Canny Edge Detection을 이용하여 촬영한 image의 Edge를 추출하였습니다. 그리고 Distance transformation을 기반으로 최종적으로 평평한 지역들을 Segmentation 했습니다.

 

2. Region Classification (Grass or non-Grass)

   본 논문에서는 grass region을 landing 가능한 지역으로 고려했습니다. 그래서 Random Forest Machine learning 알고리즘을 이용하여 grass와 non-grass 지역을 classification 하였습니다. Random Forest는 아래의 그림과 같은 Decision Tree를 여러개 사용해서 스무고개처럼 classes를 classification 하는 알고리즘입니다(Random Forest에 대해서는 추후에 따로 포스팅하겠습니다).

  Random Forest의 각각의 Decision Tree에서 두 가지의 경우를 선택하기 위해서는 기준이 필요합니다. 본 논문에서는 그 기준을 아래와 같이 12가지의 Color information과 6가지의 texture information을 이용했습니다. Gabor filter를 image에서 texture을 추출하는 가장 잘 알려진 image processing 알고리즘 중의 하나입니다. 

  Random Forest에서 활용할 Metric으로 아래의 특징들을 사용하기 위해서, 사람 눈으로 grass로 판명한 image들의 RGB, HSV의 mean, standard deviation을 모두 구합니다. Texture에 대해서도 똑같은 작업을 합니다. 그리고 18가지의 특징중에서 grass와 non-grass 지역을 가장 장 classification 하는 기준을 찾아서 Random Forest의 Decision Tree의 기준점으로 사용합니다. 그렇게 parameter가 학습된 Random Forest 알고리즘으로 image에서 segmentation된 각각의 region들을 grass 또는 non-grass region으로 classification 합니다.

 

 

Approach

1. Region Manager

<Tracking>

  카메라로 촬영한 image에서 coarse한 특징점들의 위치가 얼마나 변했는지를 기반으로 Coarse Depth Measurements(대략적인 깊이정보 측정)를 합니다. 이를 기반으로 ROI(Region of Interest)의 4개의 corner와 rectangle의 centroid를 2D에서 3D로 projection 할 수 있습니다. 그리고 현재의 frame에서 ROI의 centroid가 이전 frame의 ROI 안에 존재하면, ROI tracking을 위해 re-detection 합니다. 이렇게 3D로 projection한 ROI information은 추후에 3D dense reconstruction을 통해 roughness와 slop를 계산하는데 사용됩니다. 

 

<Grade>

  가장 landing하기 적합한 ROI를 선택하기 위해서 ROI들의 grade(순위)를 계산합니다. UAV가 비행을 하면서 많은 frame에서 obsevation된다면 상대적으로 넓은 ROI라고 할 수 있고, 적은 frame에서 관찰된다면 상대적으로 좁은 ROI라고 할 수 있습니다. 넓은 지역이 좁은 지역보다 더 안전하기 때문에 본 논문에서는 넓은 지역이 더 높은 grade의 가지도록 Metric을 만들었습니다. ROI가 grass로 classified된 image의 수(Nobs)를 ROI가 observation된 image의 수(Ngrass)로 나누어 확률로 표현하고, 가장 큰 순서로 grade를 정합니다. 최소한의 영역(Amin)과 최소한의 observation된 수(Nobs,min)보다 작은 지역은 grade를 계산하는 과정에서 제외합니다.

 

2. Hazard and Decision Layers

<2.5D grid-based elevation map>

  3D point cloud를 그대로 이용하기 위해서는 high-memory load가 요구됩니다. 본 논문에서는 memory load를 줄이기 위해 2.5D grid-based elevation map을 사용합니다. 2.5D grid-map은 높이에 따라 grid가 기울어져 있는 grid map을 말하는데 elevation에 따라 다른색으로 표현하였습니다.

 

<Slop>

  3D reconstruction을 통해 Grade가 가장 높은 지역의 3D point cloud information을 얻은 후 2.5D grid-based elevation map을 만들었습니다. 그리고 ROI에 위치하고 있는 점들의 분포를 PCA로 분석하여 Slop가 어떠한지 계산하였습니다. PCA는 Principal component analysis의 약자로 서로 연관성 있는 point들을 직교하는 주성분들로 표현하는 방법입니다. 오른쪽 아래와 같이 파란색으로 분포된 point들은 2개의 주성분으로 표현할 수 있습니다. 만약 ROI에서 파란색 point들 처럼 point가 분포되어 있다면 가장 큰 주성분을 기준으로 slop를 측정할 수 있습니다.

 

<Roughness>

   ROI가 landing이 가능한 지역이지만, ROI 내에서도 roughness가 낮은 지역으로 landing하는 것이 더 안전한 방법입니다. Roughness는 1개의 pixel과 인접한 8개의 pixel의 elevation의 차이로 추론합니다. 만약 차이가 상대적으로 크면 roughness가 큰 것, 상대적으로 작으면 roughness가 작은것으로 판단할 수 있습니다.

 

 

Results

<Region Classification>

  현재 Deep learning은 성능이 좋아서 Machine learning 알고리즘 중에서 가장 많이 사용되고 있는 방법중에 하나입니다. 본 논문에서는 grass와 non-grass의 classification 문제를 해결하는 방법으로 Artificial Neural Network(ANN)과 Randon Forest(RF)를 비교해보았습니다. 그래프 결과를 보면 성능면에서는 ANN이 RF보다 더 좋은 것을 확인할 수 있습니다. 다만, 속도 측면에서는 RF가 더 빠른것을 확인할 수 있습니다. 본 논문에서는 real-time 문제를 중요하게 생각하고 있기 때문에 비록 성능은 약간 떨어지지만(사실은 차이가 작음) 속도가 빠른 RF를 사용하였습니다.

 

<Semi-Dynthetic Dataset>

  Semi-Dynthetic Dataset은 Fixed-wing 드론에 설치된 카메라로 촬영한 이미지를 rendering한 dataset입니다. 그림에서 왼쪽 Frame은 촬영된 Frame의 수를 나타내고, rendered image위의 주황색은 fixed-wing 드론의 궤적을 나타냅니다. 빨간색, 검은색, 그리고 파란색 region들은 Segmentation 및 Classificiation된 region들을 의미합니다. 아래의 그래프는 왼쪽부터 순서대로 region이 observation된 frame의 수, grade를 설정하기 위한 Classification score, 예상되는 region의 넓이,  그리고 마지막은 Classification score의 y축을 확률로 나타낸 것입니다. 결과를 종합해보면 가장 넓은 지역은 빨간색 region이 가장 grade가 가장 높은 region인 것으로 판단할 수 있습니다. 

  그림 (a-h)는 Slop와 Roughness를 기반으로 landing spot을 찾는 과정을 나타냅니다. (a)Bundle Ajustment방법을 이용하여 부분적으로 촬영한 3D point cloud data를 이어붙이고, (b)Dense reconstruction을 합니다. (c) Memory load를 줄이기 위해 2.5D elevation map을 만들고 (d) Slop와 (e) Roughness를 계산합니다. (f) Roughness를 기준에 따라 분류하고 (g-h) Distance map을 만들어서 Slop 및 Roughness를 고려하여 landing 가능한 지역내에서 가장 가까운 지점을 landing spot으로 설정합니다.

 

<Experiments with Real-World Datasets>

  다음 Dataset은 Snowy scenery in Switzerland이고 onboard camera로 촬영되었습니다. Segmentation 및 Classification을 해서 두 개의 region을 선택하였고, 그래프에 나타낸 결과들을 바탕으로 빨간색 region이 landing 가능한 region으로 선정됩니다. 2.5D elevation map을 기반으로 Slop와 Roughness를 계산하여 가장 안전한 지역을 계산하고, Distance map을 그려서 안전한 지역에서 가장 가까운 spot으로 향하는 path를 generation합니다.

 

   다음은 Semi-automated flight 실험결과를 나타냅니다. Manually take off and landing을 하였고, waypoint를 following하도록 제어되었습니다. Fixed-wing 드론의 경우, 맞파람을 불때 landing을 위한 이동거리를 줄일 수 있습니다. 본 논문에서는 dynamics를 기반으로 wind을 측정하였고, UAV의 altitude와 terrain elevation 사이의 거리는 touch down 하기 35m 전에서 약 2m로 예측하였습니다.

 

 

Conclusion

  본 논문은 texture와 geometric shape을 기반으로 landing site를 detection 하는 방법을 소개하고 있습니다. Image processing 기법을 기반으로 region을 Segmentation 하였고, Random Forest 알고리즘을 이용해서 grass와 non-grass를 Classification 하였습니다. ROI의 크기를 기반으로 Landing 가능한 region들의 grade를 선정하였습니다. 선정된 region 내에서 slop 및 roughness를 계산하였고, 이를 기반으로 distance map을 만들었습니다. Distance map에서 Fixed-wing 드론과 가장 가까운 지점을 landing spot으로 설정하여 landing spot으로 선정하였고 wind를 예측하여 touch down 지점으로 이동하는 거리를 최소화 하려고 하였습니다.

 

Reference

  논문을 이해하기 위해 많은 사람들의 도움을 받았습니다. 아래는 제가 블로그를 작성하면서 참조했던 논문과 블로그, 유튜브 및 위키피디아 주소입니다. 자신의 지식을 기꺼이 나누어주시는 고마운 분들 덕분에 보다 쉽게 공부할 수 있었습니다. 블로그를 읽으시면서 부족했던 부분은 아래의 Reference를 참고하시면 큰 도움을 받을 수 있을 거라고 생각합니다. 혹시 포스팅을 하면서 궁금하신 점이나 코멘트 또는 틀린 부분을 지적해주시면 감사히 수정하도록 하겠습니다. 감사합니다.

 

1. Paper URL

https://ieeexplore.ieee.org/abstract/document/8302974

 

2. Reference

Random Forest:

https://www.youtube.com/watch?v=lIT5-piVtRw&t=1895s

Principal Component Analysis(PCA):

https://www.youtube.com/watch?v=FhQm2Tc8Kic&t=11s

https://ko.wikipedia.org/wiki/%EC%A3%BC%EC%84%B1%EB%B6%84_%EB%B6%84%EC%84%9D

2.5D grid-based elevation map:

https://www.emerald.com/insight/content/doi/10.1108/01439911111122815/full/html

Bundle Adjustment(BA):

https://komputervision.wordpress.com/2014/05/23/bundle-adjustment/

Precision and Recall:

https://darkpgmr.tistory.com/162

 

 

반응형