In this project, you'll label the pixels of a road in images using a Fully Convolutional Network (FCN).
Make sure you have the following is installed:
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.
- The main implementation is in the
main.py
. - You can find the files regarding the saved model, and optimised model here. If you want to reuse it, download them in a folder called
model
in git folder. - I generated as well the 8bit version of the network. The file is called
eightbit_graph.pb
shared in google drive folder. You can run theOnlyInference.py
to use this 8bit graph and the result of this model is saved in here. Some of the images are done poorly using the 8bit model but a lot of them are almost the same. The.pb
file is hugely smaller. - I have tried to optimise using the tensorflow optimiser. The output was not that much different from the input in terms of size.
- I had a difficult time before get everything working. The main was the model was not getting trained. The main problem was I was choosing ig learning rate. That was causing the network stop training at first early stages.
- In order to have a network, compatible to different shapes, I used
tf.slice
andtf.shape
operations. - I trained the network first with 100 Epochs but from the output of the tensorboard I found that 30 Epochs is enough. More the that, the totla loss starts to increase sometimes and only the mean of IoU was getting better.
The output of the main network can be founded here