UAV Challenge

The NUAST ICT and Computer Science enrichment programme offers the very best projects to deepen your knowledge, skills and experience.  NUAST and INNOVATE are offering the chance for students in both Computer Science and Engineering to develop an Unmanned Aerial Vehicle capable of identifying a ground target.


As part of the Institute for Aerospace Technology’s INNOVATE project, NUAST project teams are being tasked with the design and build of fully autonomous UAVs (Unmanned Aerial Vehicles, also known as Unmanned Aerial Systems).  One of the most demanding aspects of this process centred around image recognition…

Students will work on the project to ensure that the UAVs are able to find their target (a letter placed on the ground). In fact, most of the work is hidden inside a small SD card located on a small onboard computer system.

In order to be able to run image recognition software, we needed a processing unit that would be powerful, light and open source in order to run an image processing algorithm on-board the UAV. Since putting a laptop in a UAV is not possible due to weight restrictions we decided to choose the next best thing. We used a Raspberry Pi – a small, light and open source computer that is usually used for the teaching of basic computer science.

For the image recognition part, we will use the open source OpenCV libraries – more precisely the Haar Feature-based Cascade Classifier for Object Detection. A classifier uses an object’s characteristics to identify which class (or group) it belongs to. A cascade classifier uses different levels of classifiers. If the lower level classifier fails to find the object but is not sure that the object doesn’t exist, the next level classifier is called which has a set of different rules. This process continues until the program is sure that either the object is found by one classifier or a classifier is sure that it is not there, making the overall process faster and more exact. The work with a cascade classifier includes two major stages: training and detection. In the training stage, the algorithm is provided with a large number of positive and negative image samples. A positive image is when the target object appears on the picture and the classifier uses this image as future reference when comparing with other images. A negative image is when the target object is missing and the classifier takes these images into consideration in order to avoid finding the object without the object being there. Although we used a quite powerful (high specification) computer for the training, this process needed at least 4 hours to complete.

Students will use the software of a face recognition program that was made specifically to run on a Raspberry Pi and after changing some parameters, some code and with a lot of testing we managed to be able to train the classifier with any letter of our choice.

For information check out Innovate's blog.