Project

Deep Learning
P3 Image Style Transfer Learning P7 Build YOLOv3 in tensorflow2.0
P9 BSPM Signal Matrix Completion(team project) P8 Breast Cancer Detection
P12 Security Check through Gait Analysis P14 Elephant Detection Based on YOLOv5
P16 LSTM AutoEncoder based Anomaly Detection Model P17 Transformer based Movie Genre Prediction
P19 Neural Network Quantization Experiments P20 SSD-ResNet50 Object Detection and Quantization
Machine learning
P4 Analysis Human Decision Making Process(team project)
P5 Computer Vision Implementation: Image Stitching
P10 Twitter Sentiment Analysis P11 Talent Football Player's Salary Analysis
P15 Anomaly Detection Model Deployment Using Docker and Flask
AI Agent
P2 Cleaning Robot from Genetic and Evolutionary System P1 Intelligent Game "Omega"
P6 Robotic Localization System P13 Flappy Bird AI player
P18 Turtlebot3 SLAM and Path Planning



Intelligent Game "Omega"

keywords: AI Player, Board Game, Alpha-Beta Search, Union-find Algorithm, Pygame
date: Sep.2018

Omega is an AI board game built on the Alpha-Beta Search framework. The game board comprises a fixed number of hexagonal grids, determined by the initial board size setting. In the accompanying figure, the board size is 5, meaning the distance from the center to any outer hexagon is 5. Each player is assigned either White or Black stones. Stones of the same color that are connected form a group. The score for each player is calculated by multiplying the number of stones in each group. For instance, the White player has three separate groups with 3, 7, and 5 stones respectively, resulting in a score of 3*7*5 = 105.

Each round consists of two turns: one for the player and one for the AI. During each turn, the player (or AI) first places their own stone and then places a stone for their opponent. The game ends when there is no longer enough space to complete a full round. The player with the higher score at the end wins.



Cleaning Robot from Genetic and Evolutionary System

keywords: Evolutionary Robotic System, Genetic Algorithm, Robotic ICC Kinematic System, Robot Controller
date: Feb.2019

This project is a software simulation of a cleaning robot. In the figure, the yellow areas represent dirty spots, while the pink areas denote obstacles. The robot is designed to automatically clean the room efficiently and avoid obstacles.

My robot operates using a Recurrent Neural Network (RNN) for control. Its controller is derived from an evolutionary system that runs for 400 generations. Each generation consists of 60 individuals, each with a lifespan of 30 seconds. The entire evolution process takes approximately 48 hours.

Unlike deep learning models, the evolutionary process can be viewed as reinforcement learning for the entire system. At the start of each generation, the system selects the top k individuals from the previous generation based on their performance, while the remaining individuals are eliminated. These k individuals reproduce by exchanging portions of their genomes to create new individuals. All the offspring then operate, and after their lifespan, the system records their performance and prepares for the next generation. After several hundred generations, this process should produce a qualified cleaning robot.



Reconstructing Image by Neural Style Transfer Learning based on Pre-trained VGG16 Neural Network

keywords: Deep Learning Implementation, Convolutional Neural Network, Computer Vision, Neural Style Transfer Learning, Gradient Descent, Tensorflow
date: May.2019

Deep Convolutional Neural Networks (such as the VGG series, AlexNet, ResNet, and Inception) have proven highly effective in tasks like image classification and recognition. Interestingly, they can also be leveraged for creative tasks like learning image styles. By feeding two images into the model—one as the "content image" and the other as the "style image"—the model blends features from both to generate a new image. For example, the "Candy Tiger" and "Starry Lion" shown in the figure are results of this process.

This project utilizes a pre-trained VGG16 model, which consists of five convolutional blocks. In each block, the output from the first layer is extracted as the style target, while the second convolutional layer's output from the fifth block is used as the content target. During training, the model follows two key steps: 1) it performs gradient descent to minimize the "content difference" (between the new image and the content image) and the "style difference" (between the new image and the style image); 2) it updates the image using the newly computed gradients. After several epochs (100 in this case), the model produces a stunning image that merges both the content and style in a unique way.



Analysis Human Decision Making Process through iEEG data

keywords: iEEG Signals Analysis, Butterworth Filter, XGBoosted Tress, drift diffusion model
date: Jul.2018

The project focuses on the two tasks of firstly localizing the brain regions in which memory and perception decisions are made, and secondly, providing evidence of the drift diffusion process in neural activity during an individuals decision making process.The data involved in this project was collected through experiments involving patients having brain activity read via an Intracranial Electroencephalograph (iEEG). Both traditional signal processing and machine learning tools were utilized in order to achieve the outlined goals. The relevant brain regions were localized through modeling of individual leads, whilst evidence of the drift diffusion process was collected by analyzing multiple machine learning model behaviours over the course of a decision.

Previous research suggests that the decision making process can be modelled as a continuous collection of information (evidence)over time. Such a process, that leads to a binary decision, can be described with the use of the Drift Diffusion Model (DDM) (Ratcliff, 1978). The idea behind this being that, if neuronal activity were to be captured, it would depict the accumulation of evidence over time until it reaches a(decision) threshold (Ratcliff, Smith, Brown, & McKoon, 2016).

About the preprocessing work, a technique called differencing to the raw signal data is applied. Then for all the 125 preprocessed input EEG signals, we manually extract 125*54 features and fit them to a classification tree model. Therefore, if the participant makes a positive decision, the model should output positive result according to the input features; in adverse, when volunteer giving a negative decision, the model should output negative result. As the end, we could not achieve a higher accuracy of 67%. Although it is not a very good result, considering that the project is about human's brain, there is still room left for improvement.



Computer Vision Implementation: Image Stitching

keywords: Image Stitching, SIFT Matching, Homgraphy Transformation Matrix, RanSac Algorithm, Computer Vision, Matlab
date: Jun.2018

A panorama application has been developed to stitch together pairs of images. To minimize perspective distortions, we selected several pairs of parallel images, including iconic landmarks like the Cathedral of Santa Maria del Fiore and the Forbidden City.

The process begins by extracting a set of SIFT descriptors from both images (e.g., 1000 descriptors). These descriptors from the first image are then matched to those from the second image based on their Euclidean distance. Using a threshold, the top 500 matches are selected out of the possible 1000x1000 combinations to serve as candidates for the next step, which involves the RANSAC algorithm. Next, RANSAC is applied over 1170 iterations to these 500 candidate matches to eliminate incorrect pairs. Once filtered, 5 correct pairs are used to compute the Homography Matrix, which determines how to map the coordinates of the matching points from image_1 to image_2, including any necessary rotations to align the matched SIFT keypoints.

The final step involves converting the coordinates of the matched pairs into a unified coordinate system and stitching the correctly matched pairs together using zero-padding. The result is a seamless combined image.