watonomous.github.io

  1. Software Division
  2. Software Division Home
  3. Perception Group

[ Software Division : 2D Object Detection and Classification ]

Created by [ Rowan Dempster], last modified by [ Anita Hu] on Sep 28, 2020

The main purpose of the object classification team is to detect and classify traffic signs, traffic lights, pedestrians and cyclists in order for the vehicle to maneuver safely while following traffic rules. The main method currently used for classification is through training a neural network using Tensorflow. 

Due to the lack of real training data, synthetic images are generated using the cut paste method for traffic sign detection training (http://openaccess.thecvf.com/content_ICCV_2017/papers/Dwibedi_Cut_Paste_and_ICCV_2017_paper.pdf). OpenCV, an image processing library, was used to interpret traffic light state. 

We use the YOLOv3 model trained on COCO dataset to detect stop sign, person and bike. We have an algorithm that matches person and bike bounding boxes to get cyclist bounding boxes. 

Here is a list of open source datasets that we've looked at: Open Source Datasets

To run the models in the perception pipeline, we use OpenVINO. All the models need to be converted to the OpenVINO format to work with our inference code. https://docs.openvinotoolkit.org/2019_R1.1/_docs_MO_DG_prepare_model_convert_model_Converting_Model.html

Current code on Gitlab:

Perception models: https://git.uwaterloo.ca/WATonomous/perception-models
Code for data preprocessing, synthetic data, converting YOLO model to OpenVINO: https://git.uwaterloo.ca/WATonomous/perception-ml

Traffic light node: https://git.uwaterloo.ca/WATonomous/perception-year-2/tree/develop/traffic_light_detection
Traffic sign node: https://git.uwaterloo.ca/WATonomous/perception-year-2/tree/develop/traffic_sign_detection
Pedestrian and cyclist detection node: https://git.uwaterloo.ca/WATonomous/perception-year-2/tree/develop/obstacle_detection
Inference node for SSD models: https://git.uwaterloo.ca/WATonomous/perception-year-2/tree/develop/ssd_inferencing
Inference node for YOLO models: https://git.uwaterloo.ca/WATonomous/perception-year-2/tree/develop/yolo_inferencing

Neural network introduction: https://www.youtube.com/watch?v=aircAruvnKk

Read about the training process: https://becominghuman.ai/tensorflow-object-detection-api-tutorial-training-and-evaluating-custom-object-detector-ed2594afcf73

OpenCV introduction (with some tutorials to play around with): https://www.opencv-srf.com/p/introduction.html

[{.confluence-embedded-image height=”250”}]{.confluence-embedded-file-wrapper .confluence-embedded-manual-size}[{.confluence-embedded-image height=”250”}]{.confluence-embedded-file-wrapper .confluence-embedded-manual-size}

\

Attachments:

image0.jpg (image/jpeg)
JPEG_20191031_152058.jpg (image/jpeg)
image0.jpg (image/jpeg)\

Document generated by Confluence on Dec 10, 2021 04:01

Atlassian