My parts of the term projects assigned in the scope of university courses. Please click to unfold the section of each project for details.
EEE Undergraduate Capstone Project
capstone.mp4
I was in a team of six people and my responsibility was to detect location and colors of the 3 balls by the images acquired by a top view camera. The objective is to hit the cue ball (red one in the examples here) to touch other two balls. The shooting angle calculation are also shown by two lines: one for cueing towards the second ball and one for hitting the third after reflection. The robot is mobile and freely moving, that communicates with Matlab host via bluetooth.
Relevant content is here. The code is not compiled, should be run in MATLAB 2016a or later.
Note I also made a GUI to select cue ball, to observe image-based calculations and to give hit command. The GUI related files are named as
ErasmusPlusOne
, but it will not work properly without other components of the project. If you would like try CV output only, runcapstone_cv_part
.
Figure: Input images from top view camera and resulting images of located balls with calculated hitting angles
EE584 Machine Vision
This is an implementation of ICCV 2015 paper completely coded by our group of two. The work consists of stereo-aided segmentation and Matlab GUI. The method takes input of a single stereo image, that is foreground-segmented by an arbitrary algorithm. Then, energy functions (depending on the parameters) strives to fit best segmentation to the second stereo image. The advantage of this method is that it has potential to improve input segmentation and to segment occluded objects in the first image.
Relevant content is here. The code is not compiled, should be run in MATLAB 2016a or later.
Figure: StereoSnakes Matlab GUI (please follow steps in the user manual section our report to familiarize with the parameters and interface)
EE634 Digital Image Processing
Figure: Watershed ridgelines on original images and segmentation results
This script is a part of a project to test and compare distinct segmetation algorithms on richly colored images. My objective was to implement watershed algorithm on the given images. I tackled with the oversegmentation problem which is typical to this method by filtering and merging similar blobs of segmentations.
Relevant content is here. The code is not compiled, should be run in MATLAB 2016a or later.
EE636 Digital Video Processing
ee636.mp4
This is an implementation of ECCV 2008 paper completely coded by me. The method, first, analyzes several frames of the video to understand the general movement flow of the crowd (offline). Then, the object in a user-selected window is tracked by combining offline analysis and online tracking by photometric features. Please see the documents to familiarize with parameters and for the detailed explanation of the algorithm.
Note Offline part is encapsulated in the
initialize.m
which analyzes video to get SFF and BFF information. Finally, runreal_time.m
to select an object to track by dragging the marker on the desired location and, then, by double-clicking it. Both scripts have several parameters adjusted to default values.
Relevant content is here. The code is not compiled, should be run in MATLAB 2016a or later.
CENG561 Artificial Intelligence
Warning This project has its own repository, please visit here.
CENG786 Robot Motion Planning & Control
output.mp4
Figure: Efficient paths of each robot between respective starting and target locations
This is an implementation of IJRR 2016 paper completely coded by me. Due to the fact that this is a term project, I partially realized the 2D map experiments of the work (there are also 3D experiments). Basically, this is a composed method exploring implicit paths in a multi-robot scene, each having a start and destination point. The main idea is discretizing the popular RRT algorithm to get most cost efficient motion planning.
The robots are holonomic and circular with 2DOF. Obstacles are convex or concave polyhedral 2D objects in a 10x10 meters map. The map obstacle geometries are embedded in the init_arena
script. Main function main_project_ceng786
may be called with two parameters namely case_number and number_of_vertices. First one determines which the type of the arena, start-target locations and the number of robots, while the latter is for PRM calculation of each agent.
Relevant content is here. The code is not compiled, should be run in MATLAB 2016a or later.
EEE Graduate Thesis Project
Electrical-Electronics Eng. MSc Thesis Project: Automated Image Processing for Scratch Detection on Specular Surfaces
Warning This project has its own repository, please visit here.