Projects

PyTorch YOLOv3
PyTorch YOLOv3 Real-time object detection with YOLOv3

This package implements a multithreaded, real-time object detection pipeline in Python that runs YOLOv3 on a webcam stream, video file, or image, performs non-maximum suppression to eliminate duplicate detections, and displays the result. It includes a generalized Darknet parser and can run arbitrary Darknet architectures, or even a different object detector altogether.

 

SVM vehicle detector
SVM vehicle detector HOG-based linear SVM for vehicle detection

This is an end-to-end pipeline that uses scikit-learn to train a linear SVM (support vector machine) on HOG (histogram of oriented gradients) features extracted from images and perform inference on a video. The SVM was trained on vehicles with the aim of detecting vehicles in a dashcam video.

 

Image segmentation for color blindness tests
Image segmentation for color blindness tests Image segmentation via K-means clustering

This Python program, which makes use of scikit-learn, utilizes K-means clustering to group the pixels of an image into two or more distinct groups (clusters) based on their colors. It’s used here to distinguish the number in Ishihara color blindness tests from the backgrounds.

 

BFS path planning
BFS path planning Breadth-first search path planning algorithm

This is a simple Python program that generates a randomized grid with obstacles and designates a start square and a destination square. It then utilizes a breadth-first search approach (grassfire algorithm) to find the shortest path between the two squares, and animates the process with matplotlib.

 

Simulated n-DOF robot arm
Simulated n-DOF robot arm Inverse kinematics of a robot arm

This is a Python program that defines a 2D robot arm with an arbitrary number of revolute joints placed at arbitrary distances from one another and solves, via the Jacobian inverse method, the inverse kinematics of the system that enable the robot arm’s end effector to reach a target position. An interactive matplotlib plot is used to animate and demonstrate the result, with the arm tracking a user-defined or moving target.