Particle Filter for Tracking

I wrote a framework for Particle Filter-based tracking from color images. The framework utilizes importance sampling and dynamical system model for object tracking. It is capable of tracking in the presence of short-lived occlusion.

Particle Filter

Input Sequence
Input Sequence
space
Particle Filter-based tracking
Particle Filter-based tracking


More details at: http://seevisionc.blogspot.co.uk/2016/04/particle-filtering.html and at: http://seevisionc.blogspot.co.uk/2016/08/particles-explained-using-gifs.html

OpenCVRandomForest: Framework for Multi-variate Random Forest Regression in OpenCV

I wrote this framework as part of the application for my research. The code is written in C++ using OpenCV, enabling real-time execution. I have specifically made sure to utilize memory in an efficient way. The framework runs in real-time on mobile platforms running windows. It also contains a simple utility function used to explore the individual tree structures.

OpenCVRandomForest

space
Visualization of Tree structures
Visualization of Tree structures


Code available at: https://github.com/devkicks/OpenCVRandomForest

OpenCVKinect: Acquiring Kinect Data Streams in OpenCV

I have worked with Kinect Sensor for a number of projects. Some of these required me to collect big datasets. The existing methods that I found for acquring and storing data from Kinect Sensor were all either too complicated or required a lot of libraries. The biggest issue was that once I acquired data I had to save it before implementing any computer vision based algorithm as it was not directly accessible within commonly used computer vision libraries. I wrote a library using OpenCV (C++) that enabled acquisition of Kinect data streams directly into OpenCV cv::Mat format. This library has since been used by a number of researchers and students to acquire data and process it using OpenCV library in real-time.

OpenCVKinect

Color Image
Color Image
space
Depth Image
Depth Image


Code available at: https://github.com/devkicks/OpenCVKinect

OpenCVGMM: Gaussian Mixture Model in OpenCV

In my spare time I have also implemented Gaussian Mixture Model using Expectation Maximization in OpenCV C++. This is a straightforward implementation that I used in some clustering problems. The key attractive idea of GMM is its probabilistic approach, where a sample can coexist in multiple clusters with varying probabilities.

OpenCVGMM

GMM Clustering
GMM Clustering
space
GMM Clustering
GMM Clustering


Code available at: https://github.com/devkicks/OpenCVGMM

Kinect Depth Stream Pre-Processing for Hand Gesture Recognition

Previously I have worked to introduce a novel pre-processing methods for Kinect depth stream, particularly for use in Hand Gesture Recognition. During the course of this work, we developed a distance-invariant segmentation method for hand region extraction, utilizing OpenNI NITE hand tracker. The method utilized a projection based approach to reduce quantization errors occuring as a result of relatively low resolution of Kinect depth stream.

Original Data

space space space space space space

Pre-Processed Data

space space space space space space



Real-time Computer Vision

I have been involved in research, design and implementation of different real-time computer vision techniques across different platforms. The main focus of my research has been to introduce these techniques on resource constraint devices.

Smartphone based Guidance System for Visually Impaired

I have been involved in the research and implementation of a smartphone based guidance system for visually impaired. This system is able to detect the deviation of a visually impaired person in a straight path using vanishing point concept. The guidance decision is notified to the user using audio signals corresponding to one of the three guidance decisions.

Test Sequence Output



Real-time Traffic Flow Estimation

In this coursework project, I was involved in research and implementation of a lightweight traffic flow estimation algorithm, particularly focused on resource constraint devices. The project was implemented in OpenCV and tested on BeagleBoard-xM.

Traffic Flow Estimation