Projects

BigDL: Distributed Deep Learning on Apache Spark

BigDL is a distributed deep learning library for Apache Spark; with BigDL, users can write their deep learning applications as standard Spark programs, which can directly run on top of existing Spark or Hadoop clusters.

I’m one of the main authors of BigDL with #2 ranked contributions.

Baogang Steel Defect Detection

Baogang is one of the largest steel production company. This project successfully delieved an end-to-end steel defect detection solution for Baogang.



Fantuan

Fantuan is a social networking mobile application that facilitates offline group dinner in London. I’m working on it with a team for its first version release, developed with Ionic, AngularJS, Node.js and Gulp.



DeepStock

This my master project. DeepStock is a framework that uses financial reports to predict the movement of stock prices with deep learning techniques. Information retrieval and natrual language processing techniques are used in the text processing steps. Deep learning models used include Stacked Denoising Autoencoders (SDA), Deep Belief Network (DBN) and Recurrent Neural Networks-Restricted Boltzmann Machine (RNNRBM). The first two are the classic deep learning models and the last one has the potential ability to handle the temporal effects of sequential data. Through the analysis on experiment results, the proposed models exhibit the importance of predicting stock price trend with containing textual information. The comparison between the performance results of the three deep learning models with SVM and Random Forest shows that deep learning models have a potential applicability in the context of stock trend prediction, especially for DBN and RNNRBM.

The dissertation was given a high distinction mark, 76 (70 is a first class mark in UK, as A+ in US), which is a top ranked dissertation among the students in MSc Computer Science at the University of Oxford. The marker said “it is a really impressive dissertation“ in the feedback. The dissertation can be accessed here.

Music Composer

It is a extracurricular project bulit during the peroid of my postgraduate study for covering my living cost. It is a professional composition software which allows music composer to compose music with this program. The user can compose the music by selecting the a certain kind of note on a corresponding position. It can parse and then visualize the music sequence for each MidiEvent. The user can select the track and channel they want to edit. It support 128 kinds of instruments in 16 categories. The program is built with Java and JavaFX. Java MIDI library are used to process the music notes.

LeafDiag

This my undergraduate final year project. LeafDiag is an Android mobile application which can automatically identify the plants diseases based on its leaf appearance with some computer vision and machine learning techniques. The target group of the user is those who request a free and quick diagnosis on common leaf disease at any time of the day. EM and Otsu algorithms were used for segmentation. Color histogram and Tamura’s texture feature were extracted. ANN, SVM and Random Forest learning models were built respectively. Experiments and evaluations on different segmentations, feature extractions and classification methods were done to find the most effective approach. The higest average accuracy is 96.4%. Another desktop version was also developed. The application was mainly built with Java and Matlab. It was rewarded as a first class project. The source code can be access here. The report can be accessed here.






HMTC Compiler

HMTC is a compiler course project. We are required to design, implement and extend a complete complier for a small language, MiniTriangle, using functional programming language, Haskell with Monad. We extended MiniTriangle with various new constructs and then extended the compiler accordingly. The compiler is called HMTC (for Haskell MiniTriangle Compiler). The compiler is a complete compiler including type checking and code generation. The source code can be accessed here. The reports can be accessed here (Part-I) and here (Part-II).

Castle

It is a small project in Graphics course. The program shows a 3D view of a Castle, robotics, threes, lights and so on. It was built with C++ and OpenGL. It is a practical of computer graphics including camera viewing, projection, lighting models, texture Mapping. The code can be accessed here.

BidApp

BidApp is a group project. I play a role of technical lead and main programmer. BidApp is a system providing users with a website, accessible via web browsers on mobile devices, which aimed to improve the process of online auctioning. The user can set and bid an auction in this platform. The fucntions are shown in the following flow-chart. The project was developed with J2EE, JS, CSS, JQuery. Some advanced alogrithms are designed and implemented such as proxy bidding, item recommendation, and P2P Network Reputation Management. The project and report was given a first-class mark 74, and I got a highest individual mark 84 (70 is a first class mark in UK, as A+ in US). The source code can be accessed from here and the report can be accessed from here.

Sample page:




The functions and page flow:



Battle City Tank War Game

This is a C++ programming course project. We required to implement a game with different levels of intelligence. With hard work through most Easter holiday, the game ‘Battle City’ was finished, which is a modificated version of my favorite video game in my childhood. User can choose servral levels with different map. There are many game props in the game, such as time frozen, short invincible state, bomb and so on. The enemy tank has different four levels of intelligence. They can search the shortest path to the player. They have different lookings, speed, health and base damage. The game was developed with C++ by hand without using any other game library. The marker said that it is a successfully reproduce of the classic tank war game. It was given a top ranked mark 82. And the game was requested shown in the Hall of Fame as an excellent example. The source code can be accessed here.



Map System

It is a Graphical User Interface course project. It allows the user to add favorite locations to the map with a very user-friendly interface. The application support most GUI functions. It was developed with Java Swing and a model-view-controller (MVC) framework. Javadocking library was used to make the panels dockable. It was given a top ranked mark 82.
The source code can be accessed here. The design comments can be accessed here. The used case description, user trials and unit test can be accessed here.



HTTP Server

This is an application programming course project. It is a small web server application lik Apache that can process requests via HTTP protocal. The clients can send http request to the server, and the server can process the request and send response back to the clients. It can process HTTP GET, HEAD, POST and execute PHP files. A file logger updates log when request handler notifies. Some design pattern suchsingleton and Observation are used. The code can be get from here.