Welcome!

My name is Shuja Khalid and I am currently pursuing a Masters of Science in Applied Computing (MScAC) at the University of Toronto where my focus is Machine Learning and Computer Vision. I received my undergraduate degree in Mechanical Engineering with a minor in Robotics and Mechatronics from the University of Toronto. Over the years I have worked on a variety of different projects such as mobile/web applications, front-end design, image processing algorithms, computer vision algorithms, machine learning algorithms etc. The purpose of this site is to provide some context for these projects and to capture some of my lessons learned.

Portfolio

Lane Detection Algorithm

Traffic Sign Classification using Tensorflow (Deep Learning)

Advanced Lane Detection using CV

Behaviour Cloning using Keras (Deep Learning)

Player Availability Rating (PAR) - A Tool for Quantifying Skater Performance for NHL General Managers

Trip Story!

Amazon Web Services (EC2) - Web Application

Amazon Web Services (Lambda) - Web Application

Behaviour Cloning

Background

This project was just amazing! For anyone who is interested in autonomous vehicles, there is no better project to understand how Deep Learning is used to tackle autonomous driving. This proect uses a simulator and requires the user to produce training data by driving around the track. A CNN is then trained using this data. The results are astounding and are shown below:

Code

Lessons Learned

Data augmentation and pre-processing is EXTREMELY important. An understanding of what types of data actually effect driving performance is also key. Simply doing 10 laps around the track is insufficient. Infact, the car might not even be able to make it past the first turn in autonomous mode if data is acquired this way. Such data needs to be supplemented with extensive turn data and correction data to train the model to get out of situations where it is about to wear off the driveable portion of the track.

Advanced Lane Detection Algorithm

Background

The aim of this project was to use advanced lane detection techniques to mark the driveable region around a car. Once a methodology was successfully adopted to identify lanes in a given image, the algorithm was extended to a video. The videos below illustrate the strength of this technique:

Code

Lessons Learned

This project took some of the under-developed concepts from the earlier lane detection project and provided alternatives to them. In a lot of cases, only considering a portion of the image isnt suitable and can lead to bad lane detections based on the conditions. However, this project used techniques to extract the maximum amount of information from an image to create a suitable binary map to apply thresholding techniques on. This approach is a lot more robust than its earlier iteration and sets up a foundation that can easily be built upon.

Traffic Sign Classification

Background

The motivation behind the project was to create a CNN that can classify German traffic signs with a classification accuracy of atleast 93%. The CNN uses components of the LeNet architecture.

Code

Results

The adapted LeNet architecture results in a test classification accuracy of ~95%

Lessons Learned

The influence of data augmentation cnan once again not be ignored. In computer Vision tasks this is an absolute must. Traffic signs can be flipped, rotated to produce additional data which can be used for balancing non-uniform data. Doing so has proven to increase accuracy on test data even further ~99%

Lane Detection Algorithm

Background

The aim of this project was to identify traffic lanes in an image. Once a methodology was successfully adopted to identify lanes in a given image, the algorithm was extended to a video. This project was part of the Udacity self-driving car nanodegree program and was the first time that I incorporated both thresholding techniques and the opencv package to build a lane detection algorithm. The videos below illustrate the strength of this technique:

Code

Lessons Learned

Lane detection is an extremely challenging topic and succeptible to error. In my opinion, the most important characteristic is thresholding. When considering only a portion of the image, environmental factors such as lack of natural light can be extremely challenging. Fine-tuning the parameters to work for each video was very time consuming. Developing a more robust model that can easily adapt to such factors would be the natural next step.

Player Availability Rating (PAR) - A Tool for Quantifying Skater Performance for NHL General Managers

Background

I am an avid sports fan and love hockey. While working on a university project, I decided to incorporate my two passions, computer science and hockey! I hope you enjoy this website and the tools it has to offer. I am dedicated to this website and will continue to improve my models/algorithms and add more features to it. This is an exciting new age in sports and I am hoping to contribute in any way I can.

Take me there!

Lessons Learned

This project was one of the most interesting projects that I have worked on. Not only did I learn about web-scraping and fine-tuning different regression based models, I realized that there are a no. of gaps that exist in the sports world today with regards to statistics. A tool to assess the availability of players is of paramount importance but do current statistics really consider the effect of physical attributes to project player performance? How can one quantify the performance of a player if there isn't significant data available? The PAR (Player Availability Rating) attempts to solve theis exact issue. An in depth analysis of the methods used to produce this rating are presented in the following paper:

Paper

Amazon Web Services (EC2) - Load Balancer

Background

The purpose of the project is to create a scalable cloud-based web application that can automatically scale itself to adjust to fluctuating user demand. Although Amazon already provides such services, this application provides insight about the level of detail that is required to construct and maintain truly scalable applications. The application should also have the ability to apply transformations to user defined images using the Python based tool ImageMagick.

Code

Final Report

Application Architecture

Lessons Learned

Lots of lessons learned about working with EC2 servers none more important then 'stopping' your server before you go to bed. That is how I lost ~$70 worth of AWS credits :(.

Amazon Web Services (Lambda) - Web Application

Background

As part of the curriculum for ECE1779 (Introduction to Cloud Computing), students were tasked with creating a web-application using AWS Lambda. The project that I worked on is called Majority Rules! and is something that I had been thinking of incorporating for quite some time. The application is a social networking web-applicaiton that aims to decrease the divide that exists among individuals by generating constructive discussion. Users are then given the option to voice their approval or disapproval on issues. The results of the tallies is important as they give the world a sense of how the majority of the public feels about issues that have global consequences.

Code

Final Report

Application Architecture

Application Snapshot

Take me there!

Lessons Learned

Incorporating the web-application using AWS Lambda was a painless task. I would highly recommend it to anyone who wishes to launch their own web-application. Operating costs are also minimal.

Trip Story!

Background

The aim of the project- ‘Trip Story’ is to create a Rebus Story (picture story) App that allows children to form their personalized stories by answering a series of questions. These questions are designed to be engaging and test the user’s (children age: 4+) creativity. The App provides a platform for the child to create their own stories with assistance from the parent. Upon making the correct selection, the story would continue and finally the story formed will be portrayed in the form of a Rebus story. The ‘Rebus story’ concept aims to promote early literacy by motivating children to participate in storytelling while also improving cognitive skills.

Code

Final Report

Application Architecture

Application Snapshot

Lessons Learned

During the development of the code it became apparent that the use of Realm and online storage was essential for the purposes of this app because of the length of the story (15 frames) to extend it beyond the existing theme (Underwater Adventure). After some deliberation we decided to further learn about the aforementioned tools for this project. In hindsight, this type of application could have also be developed using a cross platform software, such as Phone Gap. Animation could have been incorporated using JavaScript, activity pages replaced with HTML pages and the data would still be stored in Realm and Firebase.

About Me

I am currently pursuing a Masters in Applied Computing at the University of Toronto with a focus on Cloud Computing, Computer Vision and Machine Learning technologies

I am also working on a website dedicated to using machine learning and computer vision tools to quantify player performance:

http://gmaiplaybook.com

Feedback is welcome!

FACEBOOK COMMENTS WILL BE SHOWN ONLY WHEN YOUR SITE IS ONLINE