The Python version of MTCNN running on Raspberry Pi 3 with Love.
Also a motion detection trigger will help to improve the quality.
Installation of dependencies:
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install -y gfortran cython
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler git
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install -y python-dev libgflags-dev libgoogle-glog-dev liblmdb-dev libatlas-base-dev python-skimage
sudo pip install pyzmq jsonschema pillow numpy scipy ipython jupyter pyyaml- Raspbian
- Caffe && PyCaffe: https://github.com/BVLC/caffe, My Blog
Install caffe:
git clone https://github.com/BVLC/caffe
cd caffe
cp Makefile.config.example Makefile.config
sudo nano Makefile.configModify next lines, instead of these
#CPU_ONLY := 1 /usr/lib/python2.7/dist-packages/numpy/core/include INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
with:
CPU_ONLY := 1 /usr/local/lib/python2.7/dist-packages/numpy/core/include INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/ LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/arm-linux-gnueabihf/hdf5/serial/
make all make test make runtest make pycaffe ./scripts/download_model_binary.py models/bvlc_googlenet sudo nano ~/.bashrc export PYTHONPATH=/home/pi/deepdream/caffe/python:$PYTHONPATH // Add at the end of file
Protobuf installation:
cd ~/caffe cd python python setup.py build python setup.py google_test sudo python setup.py install
-
OpenCV && CV2: My Blog
If you have good luck,sudo apt-get install opencv python-opencvwill have it done. or search installation guide from google. -
WebCam(D-Link DCS-932L)
I have it on hand, so have to write a IPCamera class for it.
You can simply use a Camera Model of PI (OV5647), it need Camera White Balance and parameter finetune. (PR Welcome)
if you use PiNor Cam module or other nonUSB cam, you may need do following changes:
sudo modprobe bcm2835-v4l2
code:
ret, frame = ipCam.read()
_, cnts, _ = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
Edit mtcnn/_init_paths.py, change caffe_path to your own.