Justin Liang

I'm currently working at Uber ATG Toronto as a research engineer. I completed a MSc in Computer Science (Machine Learning Group) at the University of Toronto in May 2018. Here, I was supervised by Raquel Urtasun. Prior to that I completed my BASc in Mechanical Engineering (Mechatronics Program) at the University of British Columbia (2011-2016). My research interests lie on the intersection of Computer Vision and Machine Learning. My CV is available here.

My e-mail is justin dot j dot w dot liang at gmail dot com.


End-to-End Deep Structured Models for Drawing Crosswalks [PDF]

Justin Liang, Raquel Urtasun. (ECCV 2018)

TorontoCity: Seeing the World with a Million Eyes [PDF]

Shenlong Wang, Min Bai, Gellert Mattyus, Hang Chu, Wenjie Luo, Bin Yang, Justin Liang, Joel Cheverie, Sanja Fidler, Raquel Urtasun. (ICCV 2017, Spotlight)


CSC2541: Topics in Machine Learning - Sport Analytics (Winter 2017)[PDF]

Gave a lecture on two activity recognition papers: End-to-end Learning of Action Detection from Frame Glimpses in Videos and Detecting Events and Key Actors in Multi-Person Videos.


Canny Edge Detector [TUTORIAL] [CODE]

Implemented a Canny edge detection algorithm using MATLAB. It uses non maximum suppression to thin edges and hysteresis thresholding to determine the real edges.

Texture Synthesis [TUTORIAL coming soon] [CODE]

Read Efros and Leung's paper on texture synthesis and implemented the algorithm in MATLAB. The algorithm grows a texture outward using a random seed from a sample texture image.

Color Extraction by HSV [TUTORIAL] [CODE]

Implemented a color extraction algorithm on MATLAB by applying HSV masks.

Template Matching [TUTORIAL coming soon] [CODE]

Implemented a simple template matching algorithm in MATLAB and Python to find the faces of my university crew by performing normalized cross correlation with a generic face template.


Unsupervised Learning of Basketball Offensive Plays

Implemented a combination of a CNN and LSTM to generate offensive basketball plays given the basketball and defensive basketball player trajectories.

Detection and Tracking of Basketball Players

Performed detection and tracking of basketball players using Faster-RCNN and Deep SORT.

Egg Yolk Consistency Measurement Device

Designed and developed a device that measures the yolk consistancy of an egg by oscillating it on a spring. I'm a bit lazy right now so please refer to my partner in crime who has written a nice webpage about this here.

Elevator Simulation [CODE]

Simulated an elevator system using principles of concurrent systems such as data pools, pipelines and semaphores in C++.

Trajectory Generation and Control for a Linear Motor Driven XY Table

Designed an integrator plus lead/lag controller and a pole placement controller to draw on a XY table. Developed functions to perform interpolations to draw a custom toolpath.

Motor Control Using a MSP430

Designed a proportional controller and used it to control a DC motor with a MSP430 microcontroller. This was done by taking in encoder data and adjusting the timer to produce the correct PWM duty cycle.

TM4C123 Embedded Systems Programming [CODE]

Completed embedded systems course from UT Austin. Learned how to use interrupts, timers, ADC, DAC and UART on the Texas Instrument TM4C123. Implemented a traffic light controller using a state machine.

Steam Web Browser Automation Script [PDF] [CODE]

This Python script is used to automate repetitive tasks by parsing and interacting with Steam e-mails and webpages saving users hundreds of hours a month of work.

8 Bit CPU

Built a simple CPU in VHDL consisting of an ALU and a register file on the Altera Cyclone II FPGA.