Movement tracking – First version

In the beginning I tried to generalize motion tracking system. Previously I tried to detect a colored object and rotate the camera accordingly. The fundamental concept of operation is to detect movement by detecting changes between two consecutive frames. The camera rotates according to the movement and tries to keep the moving object in frame.


It uses OpenCV with Python bindings to run the computer vision routines. The whole computer vision subsystem contains image processing followed by contour detection. The camera rotation platform uses a stepper motor that is controlled by a Atmel ATmega8L micro-controller which is connected to the computer with a Bluetooth Serial modem.

The custom PCB that contains the ATmega8L and the Motor driver that driver the motor…

Camera mounted on the rotor

There is a lot of room for improvement. I will continue to work on this.

This was my B. Tech Final Year Project.

All codes are on including the AVR Studio Project files required to compile and program the micro-controller that is responsible for interfacing the camera rotation with the computer. The complete report is also here.

Project Log Entry 2

For my final year project, I initially planned to use Kalman filtering for motion detection, but as I couldn’t make the Kalman Filtering work on time, I settled with a color based tracking system. Simply converting the whole camera image to HSV color-space and setting a rang for a particular color, I tracked the colored blobs. Next I will be using Kalman filtering.

The computer vision library used was OpenCV, running with Python bindings. The system is communicating with the computer via Bluetooth and there is a webcam fitted on the rotation mechanism that I built from old printer parts.

Here is a video of it in action,