1. Install webcam software
Install guvcview webcam viewer to test if your webcam is working.
sudo apt-get update
sudo apt-get install guvcview
Start guvcview to check if your webcam is working fine. If not, change resolution thru GUI (320×240 should be fine). If you still got problem, it could be a permission/rights issue. Just type :
sudo usermod -a -G video pi
sudo modprobe uvcvideo
Don’t be surprised : your RPI is not a very powerful machine. You’ll be able to display pictures at 10 fps max.
2. Install CMake
CMake is mandatory to compile.
sudo apt-get update
sudo apt-get install cmake
3. Install OpenCV Lib for face recognition
OpenCV is a wonderful library to do computer vision. Please take time to read information on the official website or on tutorials pages.
Today (April, 2013), only OpenCV 2.3 is available for RPI. Unfortunatly, face reco API is only available on version 2.4. Thus, we will need to install OpenCV in two steps.
3.1 Install OpenCV 2.3
Install both dev lib and python lib. My soft is C-written. Anyway, Python is still usefull for small scripts. I recommend to install it.
sudo apt-get update
sudo apt-get install libopencv-dev
sudo apt-get install python-opencv
To test if OpenCv library is well installed, write this test software. It just displays a picture using imread and imshow functions. You will need to provide a sample .jpg file.
To compile using OpenCv lib, create a CMakeLists.txt file with
cmake_minimum_required(VERSION 2.8)
project( displayimage )
find_package( OpenCV REQUIRED )
add_executable( displayimage display_image.cpp )
target_link_libraries( displayimage ${OpenCV_LIBS} )
Then compile and execute
cmake .
make
./displayimage
If it works, congratulations, OpenCV 2.3 is installed.
3.2 install face recognition API
The face recognition API is called libfacerec-0.04. All information and doc can be found on this excellent website.
Download the zip file here. https://github.com/bytefish/libfacerec/zipball/v0.04
I unzip it on my mac and transfer the whole directory on my rpi.
Go on the directory and just compile it using
cmake .
make
Now, if you want to compile your previous sample with this libfacerec-004 api, you will need to modify your CMakeLists.txt file. It just link with the libface lib. Note : Replace /home/pi/pierre/ path by the path where you copied the libface directory.
cmake_minimum_required(VERSION 2.8)
project( reco)
find_package( OpenCV REQUIRED )
add_executable( displayimage display_image.cpp )
link_directories( /home/pi/pierre/libfacerec-0.04 )
target_link_libraries( displayimage /home/pi/pierre/libfacerec-0.04/libopencv_facerec.a ${OpenCV_LIBS} )
4. Fix Timeout Problem
After few seconds/minutes using your webcam, you should have a “select timeout error” message. This is linked to some limitation of the Pi. Mr Gomoto gives here a way to avoid this issue. Thanks to him ! Do a simple bash file timeout.sh with this code.
#/bin/bash
sudo rmmod uvcvideo
sudo modprobe uvcvideo nodrop=1 timeout=5000 quirks=0x80
5. Do a backup
If everything is ok, it’s worth to do a backup. Follow Step 2.5 instructions.
At this stage, do a short prayer for Dennis Ritchie. And read its book (Kernighan/Ritchie C Handbook) you will need it for step 4.
