BirdNET-Pi - Intro
BirdNET Pi
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.
BirdNET-Pi - Config Files
Config files for deploying BirdNET-Pi in field
/etc/wpa-supplicant-wlan0.conf
Rename original file
Install this first - autoAP
GNU nano 5.4 wpa_supplicant.conf *
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
ap_scan=1
network={
ssid="BirdNET" # This is a guest network on my home router
psk="secretpwd"
key_mgmt=WPA-PSK
id_str="Home"
priority=20
}
network={
ssid="WildBirds" # This is the AP that the Pi will set up
psk="reallysecretpwd"
key_mgmt=WPA-PSK
mode=2
id_str="BirdNet"
priority=10
}
/etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
BirdNET-Pi - Detections
Detections
How is a “detection” defined by BirdNET?
The system records for 15 secs, then slices that 15 sec recording into five intervals of three seconds each. Each three second interval gets analyzed which results in a species name and a confidence value for that species for each interval. Exceeding a default threshold of 0.7 for the confidence value qualifies as a “detection”. The detection with the highest confidence value is recorded.
BirdNET-Pi - Power Management
Power Management
Getting a BirdNet-Pi up and running is a pretty good accomplishment in itself. However, depending upon what your interests are, there may still be some limitations to overcome. Really good bird habitat tends not to be associated with good WiFi, or electricity for that matter.
How do you deploy a Birdnet-Pi off down in the creek bottom where all the cool birds are - or the pasture to see how grazing practices are influencing bird populations?
BirdNET-Pi - RTC Hats
RTC Hats for RPI
The first issue one encounters when trying to deploy BirdNET-Pi in the field is that of power management. This is followed closely by “How do I get the Pi to turn itself off? As it turns out, it’s pretty easy to get the Pi to turn itself off, simply adding a line to rc.local will do the trick.
How do I get the Pi to turn itself back on?
BirdNET-Pi - Installation
BirdNET-Pi-Installation
Pre-install suggestions
If you are going to use your system on a wireless network, have your credentials available before you start the installation - the install asks for them, so you can access the Pi headlessly without jumping through hoops later to configure it.
I also set up a guest network on my router specifically for the Pi. This helps when testing the Access Point because I can disable that network without affecting the rest of the network - other than having to reboot the router occasionally.
BirdNET-Pi - Hardware
BirdNET-Pi - Hardware considerations
RTC
Raspberry Pis don’t have a real time clock(RTC) so they lose date and time if not connected to network on power loss. You can set this manually or there are add on components that provide a RTC.
Microphones etc
TRRS omni directional is ideal for a sampling application like I was doing, but a shotgun mic worked and had better detections - just not all directions.
BirdNET-Pi - Odds and Ends
Odds and Ends
Useful applications
A network scanner for your wireless device can be helpful - I use Fing. Fing allows me to figure
out what IP/network a device is on as well as what servers are running on a device. The more devices you manage, the more useful this sort of thing becomes.
Fing
PuTTY - an SSH client. I do most of my Pi configuration through PuTTY
BirdNET-Pi - Operation
BirdNET-Pi-Operation
Once the Pi reboots from setup, and gets everything up and running (it takes a couple of minutes sometimes), you should be good to go. If you entered credentials for your wireless network you should be able to access BirdNET through any browser on the network by accessing birdnetpi1.local unless you changed that during setup. When using Putty to access the system, you’ll have to know the ip of the Pi - this is where Fing comes in handy.
Anthropocene noise
Anthropogenic Noise on the Range
Painted Bunting interrupted by aircraft noise.
Anthropogenic Noise interrupts Painted Bunting
The above image is a spectrogram of a Painted Bunting (the evenly spaced vertical squiggles) that was interrupted by engine noise from an aircraft overhead. The ripples are the aircraft - the frequencies get higher as the aircraft approaches. When the frequencies get up into the range of the bunting call he stops calling, until they subside as the aircraft gets further away.