Software for a face tracking system using Arduino or Shrimping.it and a Linux host
Switch branches/tags
Nothing to show
Clone or download
jeremybennett * cam_servo.ino: New file.
	* CMakeLists.txt: New file.
	* ChangeLog: New file.
	* Eserial.h: New file.
	* .gitignore: Ignore editor backup files.
	* haarcascade_eye_tree_eyeglasses.xml: New file.
	* haarcascade_frontalface_alt.xml: New file.
	* lbpcascade_frontalface.xml: New file.
	* techbitarFaceDetection.cpp: New file.
Latest commit f109d4d Jul 5, 2013

README.md

Arduino/Shrimping.it Face Tracker for Linux Host

Based on the face tracking project on Instructables, but using a Linux host.

Prequisites

You'll need the Arduino IDE to program the Arduino and the OpenCV computer vision development package to do the face tracking. On Fedora/Red Hat/Centos systems these can be installed using:

sudo yum install Arduino
sudo yum install opencv-devel

On Ubuntu/Debian/Linux Mint systems these can be installed using:

sudo apt-get install Arduino
sudo apt-get install opencv-dev

Modifications to the standard version

The main host program now takes an argument to specify the device used for serial communication. Typically this might be /dev/ttyACM with Arduino Uno or /dev/ttyUSB with Shrimping.it. You can find out which by running

$ udevadm monitor --udev

Then remove and reinsert the USB to which the Arduino or Shrimping.it board is attached. The output will be something like this:

monitor will print the received events for: UDEV - the event which
udev sends out after rule processing

UDEV  [2066308.770931] remove   /devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0/ttyUSB0/tty/ttyUSB0 (tty)
UDEV  [2066308.771396] remove   /devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0/ttyUSB0 (usb-serial)
UDEV  [2066308.772100] remove   /devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0 (usb)
UDEV  [2066308.772851] remove   /devices/pci0000:00/0000:00:1d.2/usb4/4-1 (usb)
UDEV  [2066311.957084] add      /devices/pci0000:00/0000:00:1d.2/usb4/4-1 (usb)
UDEV  [2066311.958732] add      /devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0 (usb)
UDEV  [2066311.959361] add      /devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0/ttyUSB0 (usb-serial)
UDEV  [2066311.961690] add      /devices/pci0000:00/0000:00:1d.2/usb4/4-1/4-1:1.0/ttyUSB0/tty/ttyUSB0 (tty)

The last line shows that the device is connecting through /dev/ttyUSB0.

In addition the camera selected is specified as -1 (which should find any camera), and the code uses the Eserial.h header, rather thn the original Tserial.h header.

Building and running the system

The Arduino code is loaded into the Aduino IDE, and from their downloaded onto the Arduino or Shrimping.it board. Note. You should do this before running .techbitarFaceDetection, since both require use of the serial connection.

The face tracker is built using cmake:

cmake .
make

and then run on the Linux host, specifying the appropraite USB device

./techbitarFaceDetection /dev/ttyUSB0

Problems

See the Embecosm Blog Post by Adam, describing his experience building this system.