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
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}
\
image0.jpg (image/jpeg)
JPEG_20191031_152058.jpg
(image/jpeg)
image0.jpg (image/jpeg)\
Document generated by Confluence on Dec 10, 2021 04:01