The team has developed a custom image scanning algorithm that will be used to find the lost hiker.
The image scanning algorithm is a piece of software that scans that images taken from our UAV to identify likely targets that may be the lost hiker. It then crops out the targets of the image so they can be sent to the ground station for confirmation. Sending the targets instead of the whole image greatly reduces the amount of data that needs to be sent, which is important given our 3G connection won’t be able to send that much data.
We were originally planning on using the image scanning algorithm developed by the CanberraUAV team (see post here), however there was not a lot of support available for this, and we experienced the following issues:
- would not detect targets in some of our test images,
- the module was written as a compiled package to speed it up, however this is quite advanced and make it hard for us to customise, and
- it is very tricky to get this code implemented on our Raspberry Pi on-board computer platform.
SimpleCV is an open source computer vision framework developed for use with Python. It was very easy to set-up and get started, and there were some easy examples for us to follow to get it working.
Our algorithm works as follows:
- processes the image to highlight where areas of different colour stands out
- uses the findBlobs() method to find all blobs in the image,
- scores these blobs based on their colour difference, dimensions, and how spread out they are,
- selects blobs above a certain score and extracts that blob into a separate image.
There is still some work to go to improve our algorithm, but we are happy with the setup and think we have a good platform going forward.