CS297 Proposal

Detecting Cars in a Parking Lot Using Deep Learning

Samuel Ordonia (samuel.ordonia@sjsu.edu)

Advisor: Dr. Chris Pollett

Description:

Currently, drivers search for empty parking spaces in a parking lot by driving along different sections until one is found. The search is marginally improved with sensor indicators for empty vs occupied parking spaces, but this solution is expensive in upfront sunk cost and in routine maintenance. Sensors are also prone to false negatives and false positives.

I propose to use a convolutional neural net (CNN) to detect where cars are in an image frame of a parking lot. A CNN is often applied to computer vision problems because of its effectiveness at image recognition. CNNs also resemble how the biological visual cortex works because of the way the mathematical convolution and pooling operations work.

For the deep learning framework, I will use Pytorch because it is designed for research and frequent updates to the neural net architecture. For any image processing, I will use open CV.

Schedule:

Week 1: 9/2-9/8Proposal Draft & Review
Week 2: 9/9-9/15Finalize Proposal & Start Pytorch Toy Project
Week 3: 9/16-9/22[Deliverable 1] Pytorch Binary Classifie
Week 4: 9/23-9/29Read & Summarize Paper: YOLO V3
Week 5: 9/30-10/6Set up Open CV environment
Week 6: 10/7-10/13[Deliverable 2] Image Processing and Deep Learning Environment
Week 7: 10/14-10/20Read & Summarize Paper: COCO
Week 8: 10/21-10/27Find tool for Image Annotation
Week 9: 10/28-11/3[Deliverable 3] Custom Data Annotation for Images
Week 10: 11/4-11/10 + Read & Summarize Paper: Fast R-CNN
Week 11: 11/11-11/17[Deliverable 4] CNN Testing
Week 12: 11/18-11/24CNN Training Setup
Week 13: 11/25-12/1CNN Training Setup (cont)
Week 14: 12/2-12/8[Deliverable 5] Training Setup Complete
Week 15: 12/9-12/15[Deliverable 6] Summarize Learnings

Deliverables:

The full project will be done when CS298 is completed. The following will be done by the end of CS297:

  1. Explore Deep Learning Framework Enrichment. Build out Pytorch MNIST Example. Modify it to be a binary classifier for digits 0-4 and 5-9.
  2. Build Computer Vision Development Environment. It should include Pytorch for Deep Learning and open CV for image processing, ideally in a Docker container to avoid global environment mishaps. Add some basic image processing functionality that will complement data collection and any pre/post processing possibly required.
  3. Obtain training data. A neural network is only as good as its training data. Get data on various parking lots. This may or may not involve annotation of where the cars are. This deliverable may have to be one occurring throughout the semester, since gathering data takes a long time. Find an easy-to-use tool to annotate training data.
  4. Test out a specific, existing CNN approach to image detection on some parking lot images. I am thinking of using a recently published approach, "You Only Look Once," or YOLO. It uses a combination of CNN and k-nearest neighbor (KNN) to locate and classify images.
  5. Set up training for YOLO and feed it parking lot data. Set up to train on GPU. If time allots, look into parallel GPU training.
  6. Summarize learnings in 297. This will start midway when I have tested out an existing CNN approach (i.e., YOLO) and highlighted existing successes and limitations.

References:

[J. Redmon 2018] "YOLOv3: An Incremental Improvement." Redmon et al. arXiv. 2018.

[J. Redmon 2016] "YOLO9000: Better, Faster, Stronger." Redmon et al. arXiv. 2016.

[R. Yusnita 2012] "Intelligent Parking Space Detection System Based on Image Processing." R. Yusnita et al. International Journal of Innovation, Management and Technology. 2012.

[LeCun 1998] "Object Recognition with Gradient-Based Learning." LeCun et al. AT&T Shannon Lab. 1998.

[D. Bullock 1993] "A NEURAL NETWORK FOR IMAGE-BASED VEHICLE DETECTION." D. Bullock et al. Pergamon Press Ltd. 1993.