I turned my security cameras into an automatic bird identification system
jasontucker.blog
jasontucker.blog
I have a spare e-ink display and my next weekend project to follow onto this is to wire it up so it shows some faux "woodcut" images of birds detected, or something like that.
https://i.imgur.com/5XbM6bb.png
Also if anyone is interested, here is the server for the e-ink screen https://github.com/koryk/inky-impression-server
and here is a MCP for birdnet that I've been using for a bit https://github.com/koryk/birdnetpi-mcp-local-server
I’ve been unhappy with my little lcd board I’ve been using for the same here https://github.com/simonjgreen/OpenObservatory as the contrast is bad. I was considering using one of my trmnl displays, but it isn’t quite the right operating model for the frequency of updates I want.
Its very popular with friends and family, especially with older people that dont enjoy traditional tech.
Do you mean an RTSP audio only stream separate from the video+audio feed you might ingest to an NVR, or combined audio/video RTSP stream? Most manufacturers of security cameras with ordinary RTSP stream functions support provide both video and audio together. 'Frigate' for instance will auto detect audio stream on a reolink camera and it "just works" in the latest versions of Frigate.
Pigeons scram instantly. 7-bird takeout: https://pub-27e5170d67ab43d8a22019a94eac1572.r2.dev/events/2...
Ducks don't care: https://pub-27e5170d67ab43d8a22019a94eac1572.r2.dev/events/2...
Whatever these are, they just walk away: https://pub-27e5170d67ab43d8a22019a94eac1572.r2.dev/events/2...
Set up an amp and speakers that would pump out ultrasonic noise when it heard the barking, sending them running to the other side of their house.
I will borrow that.
But, then I noticed that it was missing birds that were at the back of the pool and I needed to use higher resolution and better models and cost went up 10x. Now, it's to high for my liking and I need to do more model testing to get it down to a few dollars a month that seems reasonable. I can also reduce frequency, I'm doing every 2 mins during daylight hours.
If you had, say, a camera on the inside of a birdhouse and the whole scene was either empty of taken up by a bird, then that would be easy for an on-device model.
Maybe it would be worth it to spend a few tokens on an implementation, just to try!
Personal best for a single session is 23 birds in my back garden over the course of a couple of coffees. I have though spent a fair bit of time making the garden as attractive to different types of bird as possible - mainly through having a variety of different shaped feeders with different feed in. I can recommend the NatureSpy camera feeder too [0] - though I have had to modify it a little to make the food hole smaller otherwise magpies empty the thing in a single day just chucking all the seed on the floor. Dickheads.
[0] https://naturespy.org/collections/wifi-solar-bird-feeder-nes...
Unless a species has a really, really unique call or song, I've made it my personal rule to get eyes on it and, if I'm still not convinced, to take a picture and cross reference with iNaturalist and what folks on there think of it.
I've learned to curse the species that differ from others by the sheen of the backs of the males' necks or the angle of a wingbar. Also, gulls that only differ by things like the color of their feet or beaks.
Given that it's colloquially “Shazam for birds” and Shazam is just amazingly resistant to noise, it's a bit disappointing :-)
Merlin is solving the more general problem so makes sense that it's much more finicky and less accurate.
YouTube Music and Google Search do OK with these types. Sometimes if I know a song well enough, I will open YT Music, activate the mic search, and sing a few bars, instead of typing the song title.
According to Gemini, SoundHound is also a good app for song-hummers to try.
Shazam primarily identifies on the geometry of spectogram peaks, FWIW (I wrote my master's thesis on the DSP of music recognition back in the day; it's possible that they are doing something more fancy now, of course, but I'm not sure if they would want to). I don't know exactly what Merlin is doing.
The journey to a magical, free bird sound ID app involves some obvious steps (the NSF gave them money), but the amount of timeline offramps is really high. The NSF didn't think this app was educational ("it's just telling them the answer, they don't even have to work for it!"), the funding ran out so they were thinking of charging money, eBird happened to have five years of bird sound recordings they could use, a computer vision guy on the team happened to learn that spectrograms are basically the same as pictures...
And the result is tremendously useful! They get great signal on where birds are, and they're making people so much more interested in birds and nature and science. And I think charging $1 for the app or, shudder, some sort of subscription model might've ruined the whole thing.
Ended up installing a better microphone attached to a RPi3A+ and using a RaspberyPi 4 which I already owned for hosting BirdNET-Go https://maciejb.me/posts/birdnet-go-setup/
Much better sound quality now!
I basically used this guide, but a different ESP32 device (so I had to change the pinout, but otherwise...). It's currently plugged into mains power, but in the future when I make additional, I'm aiming to make them solar + battery powered so I can stick them in more 'remote' areas.
Give it a go! The quality is astounding vs a security cam.
Even in EU, we barely give freedom of speech to enemies of the state. (See https://www.sueddeutsche.de/politik/eu-sanktionen-putin-prop... , no right to a trial before your rights of travel being revoked. Recently invoked in one case that made the legal civil liberty news.)
I'm not sure what exactly this refers to (because of the paywall), but revoking right of travel before trial is fairly common, it the US it would be classified as detained without bail. And happens when there is a reasonable concern for flight risk before trial as seen by the judge.
Case I used to make it portable and fit the display https://makerworld.com/en/models/1336154-portable-pi-sdr-cas...
I made a change to the markdown card sometime ago that uses only `U+2581` through `U+ 2587` instead to avoid that issue.
It's under a collapsed block here:
https://www.kyleniewiada.org/blog/2025/05/backyard-bird-trac...
I live in the east coast of Singapore near changi airport, and also run FlightTracker on another Rpi3 with a cheap RTL-SDR dongle with a 1090 mhz antenna to receive real-time aircraft broadcasts/squawks.
So essentially tracking 2 different types of 'birds'.
> No cloud services. No API calls.
> No subscription fees. No terms of service changes. No company shutting down the service in two years.
(i have a few https://www.birdweather.com/ devices strewn across North America and Europe because I am time poor and preferred a turnkey solution for those gifted to, but love the DIY efforts! no affiliation!)
[1] https://www.openhomefoundation.org/
[2] https://news.ycombinator.com/item?id=45582907 (citations)
Input is three RTSP streams from various Reolink PoE cameras around our house, and it is pretty cool to be able to find and listen to the birds/frogs that come.
Any advice on how to go about this.
My current plan is to put multiple cameras at the mouth of the chimney opening which is about 42"x42"(1mx1m).
Does this sound realistic to anyone with experience?
Here's one example: https://github.com/sammlapp/ovenbird-individual-recognition
My impression is that the hardest part is knowing whether or not you're actually doing a good job. For vocal learners (like the ovenbird example linked above), it seems to be pretty easy using embeddings from existing models (like perch or birdnet). For non-learning species (possibly including your swifts), you can use timbre clues to differentiate many individuals, but may not be able to really nail down individual identity.
Thank you for bring this up.
I like the idea of doing something with the timestamp of the recording, or highlighting new (or recently unheard) visitors.
https://alec.is/posts/building-a-solar-powered-bird-station/
I’m a pretty unhinged sorta engineer, so I actually recently created a 24/7 weather TV channel that combines real-time bird alerts, weather radar, timelapses and a sky cam feed (just a UniFi camera mounted on my home’s roof PV).
https://www.youtube.com/live/sAC3o6KW2N0
Watchable from every TV in the house and shows the birds photo and name when it hears one. Whole thing is a single cursed FFMPEG command.
I'm also working on a little project that is a walnut frame with a waveshare eink display and esp32 that polls for latest detection and display the picture.
GLM 5.3 helped to root my camera so I could get proper endpoints for PTZ and stream. Claude built the api and frontend, hosted on Home Assistant.
I like this project. I have been using security cams around my place to keep track of animals meandering across the property. It's the best use for an outdoor solar-powered webcam if you ask me. You can get a feel for which animal to expect based on time of day or other characteristics. You also recognize those who regularly visit. I have a one-eyed raccoon that has been showing up for almost two years now. It's a female and the last time she visited the monitored fountain she had 5 rambunctious raccoonlets.
Inspired by AvianVisitors [1] I made a similar project [2] with an android app for bird detection using Perch, and then displays the birds detected during the last 24 hours with nice art on a samsung frame tv in "art mode".
If you dont want to repurpose an old android device, my app also supports bird detections from birdnet-go and birdweather. It should be plug and play with this project.
Have a look at [1] https://theodore.net/projects/AvianVisitors/ [2] https://github.com/simenf/birdframe
Came to say birdnet is fantastic but, at least in Australia, it regularly identifies calls with low probability (which are often wrong / skewed for location, but sometimes correct). Meaning you still need some wits about you. That said, it can correctly identify multiple birds in a single chorus which is cool. Just need to keep an eye out for those false positives.
Security is all about trade offs and if the public perceives they are getting additional benefits from their devices then the trade off over surveillance becomes less so.
I’m actually surprised Flock hasn’t done it to their cameras already. “Stop cutting down our bird monitoring devices! We are doing good science!” If they integrated actual positive benefits to their actions then society pushes back less
Also has some other nice features, like I use it to ingest one RTSP stream and share that to multiple applications, and to push audio out to my Tapo camera
Core use-case : push a message every time my dog is eating my shoes.
I'd have to disable notifications for this in my neighbourhood to avoid alert fatigue.
I do need to tune the false positives though.
though i would be hopeful for bird audio, as differentiating their calls is something the birds themselves excel at, so it could very well be a great usecase for ai
while it's not perfect it's not really producing hallucinations of pterodactyls or anything like that
The future mostly sucks but some parts are pretty cool.
I really gotta set mine up!
I’m using a AudioMoth USB mic so I can capture extremely high sample rate and also ultrasonic for bat detections.
https://github.com/simonjgreen/OpenObservatory
Disclaimer: I’m also using this to see how far I can push supervised pure AI coding before it turns to mega slop, so know that before you dive in with the disparaging comments :D
(you either go the path of a burner or a birdie, I don't make the rules)
I see AI as a useful tool, but doing art with it is extremely bland compared to the real thing. I can't eben begin to describe what people who let the machine do the art miss out on.
would have been a great Mr. Robot episode