Inspiration

Behind my house, there is a forrest, and I wake up to the calls of woodpeckers and bluejays. I set up a bird feeder behind my house so I could not just hear them, but see them. To capture some of that beauty and it share it with the world I wanted an automated system for taking bird photos.

At the same time, there has been a drastic decline in the bird population over the last few decades of nearly 30%. In order to better understand the impact of anthropogenic alterations to the environment, we need to track bird populations and their health. A bird camera would help with that too.

If you would consider purchasing a BirdCam (if I make more) to help collect more wildlife data, fill out this interest form.

What it does

It takes photos and tags them based on the wildlife present (currently includes birds and squirrels.)

How I built it

1) Scraped images from google images using UiPath. 2) Used those images and pytorch on a gcp virtual instance to train a model which can recognize animals in pictures. 3) Deployed the model to a raspberry pi with a camera. 4) Waited for birds.

Challenges I ran into

The biggest challenges I ran into were all related to deploying the model on the pi. I had to build pytorch, pytorch vision, and various dependencies to work given the pi's firmware. I had to debug lower model performance on the pi. I had to increase the speed of the model so it didn't take 3 whole seconds between photos. I had to debug an error where pytorch ✨magically✨ managed to sever my SSH connection every time I ran the program to capture images.

The raspberry pi was clearly not meant to run my 84 megabyte transfer learning model built on resnet34 πŸ€ͺ

Accomplishments that I'm proud of

Honestly, see the challenges section. I did not realize how hard this project would be, but I learned a lot about edge computing. I also now have a raspbian image with pytorch fully set up, so deploying this to any other pi is as easy as flashing an SD card! It'll also make future edge-computing projects waaaay easier. (Also also, I cannot wait for pretty bird pictures.)

What I learned

  • How to use UiPath and GCP
  • A metric crap-ton about edge-computing (esp. deploying AI models on the pi)

What's next for BirdCam

Firstly, I'll add some of the best pictures from the camera to the devpost. Then:

  • Solar Power
  • Nicer Camera
  • Rain-proofing
  • A model to find the nicest bird photos and to beautify bird photos
  • Try running the model on a GCP server and sending classification requests to the server
  • More cameras so I can take more bird photos :)
  • Building cameras for other people and providing data for projects like Feeder Watch (a project of Cornell University)

If you would consider purchasing a BirdCam (if I make more) to help collect more wildlife data, fill out this interest form.

Share this project:

Updates