Ask Your Question

Bird Species Recognition - which algorithm? sample code?

asked 2014-07-31 15:28:41 -0500

Hi. I'm a hobbyist maker / coder. I've got an idea for my next project, and stumbled on OpenCV and am hoping the community might be able to give me some advice. The project is to build a raspberry pi based device that would use a video camera to monitor my bird feeder. When certain species land on the feeder, the device would send a text to my phone. For example, if a morning dove landed on the feeder, it would send me a text, but if a cardinal landed, it would do nothing.

I've seen sample code that uses OpenCV to recognize still images of human faces. Would the same logic work for the scenario above? Which algorithms would be most appropriate?

edit retag flag offensive close merge delete



Might be cool to see this! A project created by our university!

StevenPuttemans gravatar imageStevenPuttemans ( 2014-08-01 08:57:52 -0500 )edit

2 answers

Sort by ยป oldest newest most voted

answered 2014-08-03 09:11:13 -0500

daytan46 gravatar image

updated 2014-08-03 09:12:57 -0500

Your application is quite specific, I would first code a prototype using Matlab or Python, in order to define an algorithm, and only after that, I would develop the algorithm to work with the Raspberry Pi.

As first draft, I would propose the following steps:

  • Database population (using pictures to which you manually associate name of the bird and so on). It could also integrate specific parts of the birds.
  • Image alignment (the camera is static, but the bird could be in different position)
  • Features definition (shape, colors, tail, beak, etc...)
  • Feature collection (one vector for each type of features for example)
  • Weight association (some features are more significant than others)
  • Definition of a function that estimates the similarity between the features just extracted and the ones in the DB (example: using cosine similarity function)
  • Classifier function (which decides the type of bird based on the distances calculated in the previous step)
edit flag offensive delete link more

answered 2014-08-01 08:00:24 -0500

thdrksdfthmn gravatar image

I would think of a kind of classifier based on features, you can classify each frame or each Xth frame for saying what kind of bird it is... You should need some databases of different birds... and also with something else. If it is a static camera, it is simpler, start classifying object (frame region) based on background subtraction. You can also do some kind of statistics based on previous classification for enforcing the "Species Recognition".

edit flag offensive delete link more

Question Tools



Asked: 2014-07-31 15:28:41 -0500

Seen: 1,722 times

Last updated: Aug 03 '14