Using machine learning/AI and a Raspberry Pi to monitor avian diversity.
Ornithologists have been using bird calls to identify the presence of species and to estimate populations of birds for a very long time. There are few drawbacks to that method however. Bird surveys, conducted to estimate bird abundance, tend to start really early in the morning. On top of that, trained ornithologists are rare “birds” - there’s seldom one around when you need them. Beyond their scarcity, comes the fact that the most experienced ornithologists tend to have poorer hearing, (we lose our ability to hear some frequencies with age) and, are also somewhat less inclined to traipse about the pasture when it is still too dark to see the green briers lurking, waiting to ambush them (wisdom comes with age).
“Why don’t you just record the calls?”
An astute observer might ask why we didn’t just record the calls. We did just that! We purchased some acoustic recording units (ARUs) and deployed them across two ranches. They worked great! They were set to record at different times of the day, which resulted in about 180 minutes of data - for each unit, across 29 sites, on 4 sampling periods. Which, of course, amounted to ~350 hours of recordings, a terabyte of data, and, after four years of sampling, emails from the IT department wanting to know why I was using up all the space on their network drives.
If that “astute observer” asks me “How are you going to analyze all of that data?”, I’m going to smack them.
All of this brings us to another issue. It seems that the only problem we solved by using ARUs is the business about “traipsing about”. The folks with enough experience to recognize the calls efficiently, still don’t have the best hearing, or the time to process the data.
While trying to sort this all out, I stumbled across a project called BirdNET-Pi. The “Pi” is what jumped out at me. There’s an unwritten rule somewhere on the interwebs that says that any project based on a Raspberry Pi must have “Pi” incorporated into its name in some fashion. Having built several Raspberry Pi based projects, I had an idea where BirdNET-Pi might lead.
BirdNET-Pi is a version of BirdNET that is capable of running on a Raspberry Pi. I was aware of BirdNET, as it was developed by the K. Lisa Yang Center for Conservation Bioacoustics, the same lab that got us into this mess by selling us the ARUs. BirdNET did a remarkable job of identifying bird calls (there’s a phone app as well), but didn’t really lend itself to large data sets at the time, so it wasn’t really a viable solution. (I’ve since got a version running locally - may be the subject of a later post.)
I surmised that a Raspberry Pi wouldn’t be generating terabytes of data so this project might help with that issue. As I dug deeper, I discovered that it gave me exactly what I was after - a list of birds that were detected.
Upon presenting BirdNET-Pi to my team, who thought it was a wonderful idea, mostly since they didn’t have to figure out how to make it work, I commenced gathering the parts to put a unit together. The components arrived promptly, (after a six week back order due to supply chain issues) and assembly began.
More on BirdNET and BirdNET-Pi
Below is a series of posts documenting the trials and tribulations of deploying a BirdNET-Pi in the field.