Drone Autonomous Landing using Sparse Semantic Segmentation

Marcus Jenkins avatar

This project was conducted for the Home Office while I was a Police Digital Researcher. The goal was to implement autonomous landing for police drones in GPS-denied situations where the battery level was critical, while safely avoiding humans and damage to personal property.

I began by exploring light-weight, traditional computer vision approaches, including a Naive Bayesian multivariate Gaussian method for terrain classification based on HSV and RGB colour distributions, and noise modelling using grayscale intensity variance. We also used Canny edge detection and dilation to provide safe buffers around people and obstacles. The colours in the figure illustrates the score of potential landing zones, favouring grass over other terrain types.

However, I found that this performed poorly, and was prone to misclassifications, such as the misclassification of sky as water. Instead, we opted for a deep-learning approach, starting with UNetFormer.

I deployed this to a Jetson Nano using onnxruntime in C++, however, it had a latency of approximately 2 seconds, making it ineffective for real-time obstacle avoidance.

Therefore, I optimised the approach by focusing solely on avoiding humans and obstacles, disregarding the risk of damage or loss to the drone. I also opted for a coarser segmentation to reduce the latency of real-time inference. As a result, I proposed YOLO-ERF Grid and Grid UNetFormer. YOLO-ERF Grid adapts the neck and output head of YOLO-ERF to produce a grid-like segmentation, and Grid UNetFormer reduces the number of layers to improve performance and also outputs a grid-like segmentation. I found Grid UNetFormer to perform best. The following figure shows an example of the segmentation, where green denotes areas to avoid. This enabled a reduction in latency from 2 seconds to 0.9 seconds, while maintaining high accuracy.

Deployment

For real-time testing, I deployed Grid UNetFormer to a Jetson Nano, using onnxruntime in C++ for efficiency. To mount the Jetson, I 3D modelled and printed a case with mounts. The model is shown in the following figure, demonstrating how it attaches to the drone.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *