Skip to content

Control a pan-tilt-zoom camera to track a single subject using facial feature recognition and motion detection

Notifications You must be signed in to change notification settings

twincitychurchbcs/pycambot

 
 

Repository files navigation

pycambot

Overview

The goal of pycambot is to replace a human camera operator with an autonomous pan-tilt-zoom camera. The application it was designed for is live streaming of a human speaker, with the speaker moving against a static background, and no other subjects in motion.

The bot uses OpenCV native face detection to identify the subject. It will revert to a safe PTZ position if it loses the subject's face for a few seconds.

The only camera tested with pycambot so far is the PTZOptics 20xUSB. The solution was tested on a UDOO x86 SOC board, an Intel all-in-one board with the processing power to capture HD video via a USB 3.0 interface and run it through OpenCV libraries at a reasonable frame rate.

Setup

If you are new to OpenCV, save yourself some time and use Docker images for kickstarting your environment. I recommend running Docker on Ubuntu and using one of these images. But first read the excellent tutorial from whose steps the Docker image was constructed.

Solution elements:

  • Python 2.7
  • OpenCV 3.2
  • HD PTZ camera supporting VISCA over serial and USB 3.0 HD video transfer

About

Control a pan-tilt-zoom camera to track a single subject using facial feature recognition and motion detection

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%