Skip to content

Franzmgarcia03/Semantic-segmentation-with-Convolutional-Neural-Networks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 

Repository files navigation

Semantic segmentation with Convolutional Neural Networks

Autonomous cars require strong perception systems. One of the methods to have this strong perception is the semantic segmentation of the elements in the road, using convolutional neural networks. In this project, use is made of the ERFNet architecture for the convolutional neural network and the database BDD100K to produce a semantic segmentation in real time for the following labels:

  1. Pedestrians
  2. Road Curb
  3. White lane
  4. Double yellow lane
  5. Yellow lane
  6. Small vehicles
  7. Medium vehicles
  8. Big vehicles
  9. Drivable lane
  10. Alternative lane

The algorithms developed for the lanes and obstacles detection were implemented using Python 2.7. This implementation add a weight matrix to keep a balance in between the classes at the training process. Also, now it's possible to start the training since the last epoch who has been trained.

When the training process ends the following files are generated:

  • automatedlog.txt: This file keep the values corresponding to the learning rate and the precision values in each epoch

  • best.txt: have the number of the epoch with the best learning rate

  • Results in each epoch: For each epoch there are generated 2 text files who indicates the learning rate for each class in training and validation

  • Best model of the network: save the model of the network who produces the best results and their parameters

Here are some of the examples of the images for the training set, after setting the required labels:

Test1

Test1_predict

Test2

Test2_predict

Finally, the best results were the following:

Classes IOU%
Pedestrians 76.60
Road Curb 44.31
White Lane 32.53
Double yellow lane 63.38
Yellow lane 60.61
Small vehicles 37.70
Medium vehicles 74.38
Big vehicles 93.49
Drivable lane 88.24
Alternative lane 76.27

The IOU value, is a relation in between True Positives, False Positives and Falses Negatives, described by the next equation:

Equation

where:

  • TP: True positives
  • FP: False positives
  • FN: False negatives

The real-time testing was implemented using the framework ROS, in the Kinetic version, and rosbag files. The semantic segmentation in real-time looks as the following:

Test1

Test2

Test3

Test4

Test5

Test6

Test7

Test8

Test9

Test10

Test11

Test12

Releases

No releases published

Packages

No packages published

Languages