/

December 21, 2018

Bird colony population census

Bird colony population census

This post is the first of the “custom detector” series, which present you how to build a custom detector for a given application. We will dive in one of the problematic faced by conservation regarding bird population census.

Census for conservation

Assessing the population of birds is challenging since requiring to have an entire colony at a single place and the possibility to count each bird individually. Technology is making its way in the conservation sector and remotely piloted or autonomous aircrafts (RPA or UAV) better known as drones, are used to collect data for wildlife monitoring applications. For example, in the case of the seabird population, aerial imagery allows counting more effectively the number of individuals than walking on the beach and counting from the ground directly.

Researchers have set up a dataset allowing to test automatic counting of bird colony from aerial imagery (Hodgson et al 2018, ‘Drones count wildlife more accurately and precisely than humans’, Methods in Ecology and Evolution, https://besjournals.onlinelibrary.wiley.com/doi/pdf/10.1111/2041-210X.12974). The dataset contains several images at a different time of the day and with different configurations of the birds on the sand. Moreover, they provide an entire range of resolutions to assess the detection performances with respect to the altitude of the data acquisition.

Let's build the detector: Training areas and example annotations

Let’ start with the image “30-m-colony-1” taken at 30m altitude producing a resolution of a few cm. The dataset can be downloaded at https://datadryad.org/resource/doi:10.5061/dryad.rd736. After uploading the image on the platform, we can directly start to build the detector by going to the custom detector tab. There we start by creating a rectangular “training area” containing 8 birds with different orientations. We annotate entirely this training area by outlining these 9 birds using the drawing tool polygon .

Picterra platform

Then we draw a second “training area” around another set of birds with different orientations and close to some darker background elements. This zone is interesting since having again different orientations of birds and variations in the background. Let’s not forget to outline the 6 birds in order for the detector to learn to detect them.

Finally, we draw a third “training area” containing no bird. This area without any annotation in it serves as a counter-example to allow the detector to better discriminate the birds from the background. It will learn that not all gray objects are birds and that dark elements on sand are not a bird either.

From those 3 “training areas” fully annotated (notice that no birds were left un-annotated in these areas), we launched the training of the custom detector by pressing the “Detect” button. This process takes usually about 5min for training and detecting over this image.

Let's check our 1st output detections

The detections obtained are already promising with all the birds caught. The other main objects (gray square patches, seaweeds, wood pieces) are not detected.

When looking more closely, we noticed that small dark objects were picked up and detected as birds leading to an erroneous count of the bird population on the beach. Here are some close-ups of these elements:

In that case, we need to provide some more counter examples to the machine. Let’s provide some training areas containing these small objects and do not delineate them to be taken as counter example by the detector. However, do no forget to delineate the birds contained in the training zone, otherwise the detector would learn not to detect them:

Let’s retrain the model and detect with these 3 additional training areas (setting the total number of training areas to 6).

So, how many birds then?

The detections obtained after adding these additional training areas are very promising:

We obtained the detections of all the birds with a count of 649 with these additional training areas (setting the total number of training areas to 6 and the number of annotations to 17 birds). The groundtruth count is 636, representing an error of detection of 2% on the total population. Knowing that these where done in 15min with only 2 iterations, the trade-off between accuracy and complexity of training the detector can be well controlled. Someone requiring higher precision would do another iteration with for example an additional training area in the top-right corner where some birds are less well detected.

See you for our next post of the “Custom detector” series and have fun with the custom detector!

The Picterra team

Are you ready to try Picterra?

sign up to our newsletter