https://github.com/sbatururimi/semantic-segmentation
Label the pixels of a road in images using a Fully Convolutional Network (FCN).
https://github.com/sbatururimi/semantic-segmentation
deep-learning scene-understanding self-driving-car semantic-segmentation
Last synced: 7 months ago
JSON representation
Label the pixels of a road in images using a Fully Convolutional Network (FCN).
- Host: GitHub
- URL: https://github.com/sbatururimi/semantic-segmentation
- Owner: sbatururimi
- License: mit
- Created: 2018-08-22T03:57:39.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2022-12-08T02:22:58.000Z (almost 3 years ago)
- Last Synced: 2023-02-27T00:36:31.602Z (over 2 years ago)
- Topics: deep-learning, scene-understanding, self-driving-car, semantic-segmentation
- Language: Python
- Homepage:
- Size: 38.9 MB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 24
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Semantic Segmentation
### Introduction
In this project, I'll label the pixels of a road in images using a Fully Convolutional Network (FCN).### Setup
##### GPU
`main.py` will check to make sure to use a GPU - if you don't have a GPU on your system, you can use AWS or another cloud computing platform.
##### Frameworks and Packages
Make sure you have the following is installed:
- [Python 3](https://www.python.org/)
- [TensorFlow](https://www.tensorflow.org/)
- [NumPy](http://www.numpy.org/)
- [SciPy](https://www.scipy.org/)
##### Dataset
Download the [Kitti Road dataset](http://www.cvlibs.net/datasets/kitti/eval_road.php) from [here](http://www.cvlibs.net/download.php?file=data_road.zip). 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.
### Tips
- The link for the frozen `VGG16` model is hardcoded into `helper.py`. The model can be found [here](https://s3-us-west-1.amazonaws.com/udacity-selfdrivingcar/vgg.zip).
- The model is not vanilla `VGG16`, but a fully convolutional version, which already contains the 1x1 convolutions to replace the fully connected layers. Please see this [post](https://s3-us-west-1.amazonaws.com/udacity-selfdrivingcar/forum_archive/Semantic_Segmentation_advice.pdf) for more information. A summary of additional points, follow.
- The original FCN-8s was trained in stages. The authors later uploaded a version that was trained all at once to their GitHub repo. The version in the GitHub repo has one important difference: The outputs of pooling layers 3 and 4 are scaled before they are fed into the 1x1 convolutions. As a result, some students have found that the model learns much better with the scaling layers included. The model may not converge substantially faster, but may reach a higher IoU and accuracy.
- When adding l2-regularization, setting a regularizer in the arguments of the `tf.layers` is not enough. Regularization loss terms must be manually added to your loss function. otherwise regularization is not implemented.
## License
[](https://github.com/sbatururimi/Semantic-Segmentation/blob/master/LICENSE.md)