How to build a cat detector with a Raspberry Pi and a Pi Noir camera using Deep Learning - Part I
Having a garden in a neighbourhood with tons of cats has the disadvantage that these cats will leave too much fertilizer between my vegetables. Being a garden and Raspberry Pi enthusiast, I have already built an automated irrigation system for my pumpkins, the spices, tomatoes and potatoes. Fortunately, I still had one valve unconnected, which I use now to deter cats.
Summary
In short, the cats are recorded with a Raspberry Pi Pi Noir (night vision) camera, using the software motion. Motion will record every movement it detects in its field of view. In a first step, I sorted these images in two groups:
- images containing cats
- images without cats
I then copy these images to a Windows computer with a decent graphics card, where I train a deep learning network to distinguish images of cats from images without cats.
The neural network tree is copied to the raspberry pi. When then motion records a movement, it calls a python script that checks with the neural network tree if the image contains a cat or not. In case a cat is present, it opens the valve and the cat is wet. And will hopefully never again enter my garden...
Detailed guide, part I: Setting up the cat camera
First you need a raspberry pi, best a raspberry pi 3. Install the latest raspbian stretch image: https://www.raspberrypi.org/downloads/raspbian/
Start up the raspberry pi and set up the wlan to be able to connect to your wireless lan. With:
sudo raspi-config
open up the configuration, and enable the camera. I run the raspberry pi directly outside in my garden, so it is completely headless. So also enable ssh. If you prefer a graphical desktop, enable the vnc, see for example here:
https://www.raspberrypi.org/magpi/vnc-raspberry-pi/
Check with:
ifconfig wlan0
what the IP of your raspberry pi is, and connect then from your laptop / windows machine with vnc or ssh to the raspberry pi.
Then connect your pi noir camera with a infrared LED (e.g. from here: https://www.play-zone.ch/de/hdtv-pi-noir-ir-camera-inkl-led-module.html). I also added a infrared LED so that it also finds cats during the night.
Check with:
raspistill -o image.jpg
if everything is connected correctly. If there is no error, it will write a file called image.jpg
We will need to install some libraries, but first start with updating and upgrading the raspberry pi from a terminal:
sudo apt update
sudo apt upgrade
sudo apt-get install libmariadbclient18 libpq5 libavcodec57 libavformat57 libavutil55 libswscale4
Then download and install the motion software:
wget https://github.com/Motion-Project/motion/releases/download/release-4.0.1/pi_stretch_motion_4.0.1-1_armhf.deb
sudo dpkg -i pi_stretch_motion_4.0.1-1_armhf.deb
Then configure motion:
sudo nano /etc/motion/motion.conf
Change:
daemon on
then:
stream_localhost off
Set the framerate, width and height of the image
stream_maxrate 20
framerate 20
width 640
height 480
First we will do a quick sanity check if everything is setup correctly. In order to start motion, you will have to edit:
sudo nano /etc/default/motion
and change:
start_motion_daemon=yes
If you use the raspberry pi camera (pi noir), you will have to edit:
sudo nano /etc/modules
and add:
bcm2835-v4l2
This will load a driver which is needed that the raspberry pi camera appears as a video device (under /dev/video0)
Let's now do a sanity check, and start the motion service:
sudo service motion start
Connect with a webbrowser to
<rpi-ipAddress>:8081
and check if you see the stream!
In my case, this is:
http://192.168.178.48:8081/
And I see a liveview of my garden:
If nothing appears, you can check the status of the motion service:
sudo service motion status
if it does not say active ( running) in green, then something went wrong. Maybe restarting the raspberry pi helps?
Here is part II:
https://steemit.com/raspberrypi/@mragic/how-to-build-a-cat-detector-with-a-raspberry-pi-and-a-pi-noir-camera-using-deep-learning-part-ii
I think the command should be sudo raspi-config as shown in https://www.raspberrypi.org/documentation/configuration/raspi-config.md
Thanks a lot, I changed it!
Congratulations @mragic! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
You made your First Comment
You got a First Vote
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP