Semantic Segmentation
Introduction
In this project, you'll label the pixels of a road in images using a Fully Convolutional Network (FCN). SOlution develop by Juan Luis Vivas Occhipinti
Setup
Frameworks and Packages
Make sure you have the following is installed:
Dataset
Download the Kitti Road dataset from here. Extract the dataset in the data
folder. This will create the folder data_road
with all the training a test images.
Start
Implement
Implement the code in the main.py
module indicated by the "TODO" comments.
The comments indicated with "OPTIONAL" tag are not required to complete.
Run
Run the following command to run the project:
python main.py
Note If running this in Jupyter Notebook system messages, such as those regarding test status, may appear in the terminal rather than the notebook.
Submission
- Ensure you've passed all the unit tests.
- Ensure you pass all points on the rubric.
- Submit the following in a zip file.
helper.py
main.py
project_tests.py
- Newest inference images from
runs
folder (all images from the most recent run)
Project Rubrics
Build the Neural Network
Criteria | Meets Specifications |
---|---|
Does the project load the pretrained vgg model? | The function "load_vgg" is implemented correctly. |
Does the project learn the correct features from the images? | The function "layers" is implemented correctly. |
Does the project optimize the neural network? | The function "optimized" is implemented correctly. |
Does the project train the neural network? | The function "train_nn" is implemented correctly.The loss of the network should be printed while the network is training. |
Neural Training
Criteria | Meets Specifications |
---|---|
Does the project train the model correctly? | On average, the model decreases loss over time. |
Does the project use reasonable hyperparameters? | The number of epochs is 50 and the size is set to 5 |
Does the project correctly label the road? | The project labels most pixels of roads close to the best solution. The model doesn't have to predict correctly all the images, just most of them. A solution that is close to best would label at least 80% of the road and label no more than 20% of non-road pixels as road. |
Examples of the road detected by the Neural Network