Projects

Egocentric Video Processing

One of this course's project contains such subjects like Egocentric Video Summarization, Indexing into Egocentric Videos and Correcting for better video quality.

Tetris game with hand gesture recognition

This is the course project of my current EE686 course. We are a 3-man team aiming to implement this old game on the DSP board (DAVINCI TMS320DM6437) based on real-time image processing.

Players put hands on the screen with the projection of game UI, then move the tetris block around. This project involves hand segmentation (from images captured by camera), hand tracking, hand gesture recognition and Artificial Intelligence. Here is the simple flowcharts of the whole system and game engine. Kinect depth sensor may be used for better performance.

Final demo is here:

Coursework level experience

EE569 and undergraduate courses provided the skill sets on image processing.

C++ and Matlab programming, including but not limit to the implementations of: BM3D algorithm, image filtering and geometrical modification, texture classification via Laws' filter plus Mahalanobis distance classifier & SVM, structured edge utilization, Mean-shift plus Superpixel Segmentation, morphological processing and shape recognition, Optical Character Recognition for speed limit signs via decision tree, the snake algorithm and level-set algorithm.

Here is a simple demo of morphological processing (shrinking, thinning and skeletonizing) results of a horse image.

Here are Matlab results of SNAKE and level-set algorithms of a spine MRI image.

OpenCV coursework level experience

C++ programming and OpenCV utilization, including but not limit to SIFT & RANSAC image matching, Structure from Motion, K-means clustering, Bag of Features Object Recognition, machine learning, deep neural networks.

Here is an example of SFM reconstruction of 8 3D points from two images.

Here is an example of SIFT feature extraction and matching with RANSAC homography model.

OpenGL coursework level experience

Undergraduate course of 3D modeling with C and OpenGL libraries.

The final project is the implementation of beetle model. I designed a rhinoceros beetle with different shading sets and several simple moves. Here is an gif demo of my work.

Undergraduate 2-week project with 8051SCM

It was the first time coding in an embedded system. This is a 8-people teamwork on a robot. The objective is to implement the self-pathfinding function of the robot so that it can find the way out of a random maze through a distance sensor. This project involves assembling circuit boards, robot assembling, robot appearance design, control interfaces programming and pathfinding algorithm programming.

There were many teams, and it was a competition in terms of many aspects like appearance, time spend in the maze and production demo. I was in charge of the main coding and video demo production, and our team was in the top 5%.