Jordan Yap - Projects

As you can see below, I like working with images :)


"Horizontally Scaleable Chat Server"

working title

A chat server where users are randomly paired to other users. All users are able to talk to each other regardless of which server they connect to. Scaling is done simply by running more instances of the chat server and using nginx to distribute load amongst them.

 

Technologies used:

Redis, Nginx, Flask, Gunicorn, Gevent, jQuery, Socket.io, Python, HTML, CSS

NDID

Near Duplicate Image Detection

The project was to check if there exists a duplicate image irrespective to cropping, scaling, compression artefacts and lighting differences. The final product was an x64 DLL that output probabilities of how similar each image in the set was to a given query image.
Work is used in a US patent.

 

Technologies used:

C++, Python, Matlab

SDR

Using Software Defined Radio to Track Airplanes Over Vancouver

Using a toy example as motivation, I tracked planes using the Mode S signal emitted on 1090MHz to obtain their location and altitude. These were then plotted to find the worst places in Vancouver to live that had the most noise from airplanes. You can read about my findings on my blog here.

 

Technologies used:

NooElec SDR USB Stick, CartoDB (For plotting)

Photometric Stereo

Photometric Stereo

Given an image of a sphere captured under 3 different lighting conditions it is possible to reconstruct the surface normals of any other object placed where the sphere was and create a 3d reconstruction.

 

Technologies used:

Matlab

Metta Messages

Metta Messages

An app made for a someone who had too many quotes laying around. I wanted to do a flat UI so this was the perfect kind of app to test it out on, I really liked the way it ended up looking. If you have an Android phone you can download it here.

 

Technologies used:

Java, Android SDK, Photoshop

Quantization

Image Dither + Quantization

This project was to experiment with various colour quantization methods, colour lookup tables, dithering and create a program that allowed the user to apply various related effects to an image.

 

Technologies used:

Java, Swing (For GUI), OpenCV

SoundOutPhonics

SoundOutPhonics

IOS app that used text to speech to help kids learn to spell and sound out the words of common objects

 

Technologies used:

Objective C, Cocos2D, SQLite

Quantization

Facerank

Project that detected how frontal a persons face was in an image. Implemented into an android app that could take pictures in burst mode and order them according to how frontal a persons face is.

 

Technologies used:

Matlab, Java, Android SDK, OpenCV

mazesolver

Maze Solver

This was an ambitious project for me at the time and also my first look at the world of computer vision. The idea was simple, you point your phone at a maze and it will automatically detect the maze, capture a picture and draw the shortest path from one end of the maze to the other. Most of the details and problems I ran into along the way are on my blog.

 

Technologies used:

Java, Android SDK, OpenCV

Dodgeem

DodgeEm

This was my first real dive into the world of Android. A basic game where you dodge balls flying at you by tilting the phone. If you have an Android phone you can download it here.

 

Technologies used:

Java, Android SDK, NoSQL DB, Photoshop