From 83aa7657bfb5fde7008640d447ca312c327cfaf8 Mon Sep 17 00:00:00 2001 From: Marvin Teichmann Date: Fri, 20 Jan 2017 17:30:34 +0000 Subject: [PATCH] Update README.md --- README.md | 43 +++++++++++++++++-------------------------- 1 file changed, 17 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 4f8bac0..0e65fd2 100644 --- a/README.md +++ b/README.md @@ -2,18 +2,11 @@ KittiSeg trains an FCN based model for Segmentation of Roads on the Kitti road detection dataset. The model achieved [first place](http://www.cvlibs.net/datasets/kitti/eval_road_detail.php?result=ca96b8137feb7a636f3d774c408b1243d8a6e0df) on the Benchmark at submission time and is descripted in our paper: [MultiNet](https://arxiv.org/abs/1612.07695). -![](https://i.imgur.com/Usi1XhE.png) - - - - - - - The model is optimized to perform well even with very few data samples avaible. The implementation is trained on just *250* images and receives a state-of-the art MaxF1 score of over *96%*. It's inference time is less then *95ms*. +![](https://i.imgur.com/Usi1XhE.png) The code contains for `train`, `evaluate` and `visualize` semantic segmentation in tensorflow. It is build to be compatible with the [TensorVision](http://tensorvision.readthedocs.io/en/master/user/tutorial.html#workflow) backend which allows to organize experiments in a very clean way. @@ -44,9 +37,9 @@ I strongly recommand to exececute step 4. instead of downloading the data yourse ### Getting started -Run: `python evaluate.py` to evaluate a trained model. This will also download the Kitti Data and model weights, if nessasary. +Run: `python evaluate.py` to evaluate a trained model. -Run: `python train.py` to train a new model on the Kitti Data. This will also download the Kitti Data if nessasary. +Run: `python train.py` to train a new model on the Kitti Data. ### Modifying Model & Train on your own data @@ -76,9 +69,7 @@ Those modules operate independently. This allows easy experiments with different By default, the data is stored in the folder `KittiSeg/DATA` and the output of runs in `KittiSeg/RUNS`. This behaviour can be changed by adjusting the environoment Variabels: `$TV_DIR_DATA` and `$TV_DIR_RUNS`. For organizing your experiments you can use: -`python train.py --project batch_size_bench --name size_5` - -This will store the run in the subfolder: `$TV_DIR_RUNS/batch_size_bench/size_5_%DATE` +`python train.py --project batch_size_bench --name size_5`. This will store the run in the subfolder: `$TV_DIR_RUNS/batch_size_bench/size_5_%DATE` This is useful if you want to run different series of experiments. @@ -90,31 +81,31 @@ KittiSeg is build on top of the TensorVision [TensorVision](https://github.com/T To utilize the entire TensorVision functionality install it using -`$ cd KittiSeg/submodules/TensorVision` +`$ cd KittiSeg/submodules/TensorVision`
`$ python setup install` Now you can use the TensorVision command line tools, which includes: -`tv-train --hypes hypes/KittiSeg.json` trains a json model. -`tv-continue --logdir PATH/TO/RUNDIR` continues interrupted training -`tv-analyze --logdir PATH/TO/RUNDIR` evaluated trained model +`tv-train --hypes hypes/KittiSeg.json` trains a json model.
+`tv-continue --logdir PATH/TO/RUNDIR` continues interrupted training
+`tv-analyze --logdir PATH/TO/RUNDIR` evaluated trained model
## Useful Flags & Variabels Here are some Flags which will be useful when working with KittiSeg and TensorVision. All flags are avaible across all scripts. -`--hypes` : specify which hype-file to use -`--logdir` : specify which logdir to use -`--gpus` : specify on which GPUs to run the code -`--name` : assign a name to the run -`--project` : assign a project to the run -`--nosave` : debug run, logdir will be set to `debug` +`--hypes` : specify which hype-file to use
+`--logdir` : specify which logdir to use
+`--gpus` : specify on which GPUs to run the code
+`--name` : assign a name to the run
+`--project` : assign a project to the run
+`--nosave` : debug run, logdir will be set to `debug`
In addition the following TensorVision environoment Variables will be useful: -`$TV_DIR_DATA`: specify meta directory for data -`$TV_DIR_RUNS`: specify meta directiry for output -`$TV_USE_GPUS`: specify default GPU behavour. +`$TV_DIR_DATA`: specify meta directory for data
+`$TV_DIR_RUNS`: specify meta directiry for output
+`$TV_USE_GPUS`: specify default GPU behavour.
On a cluster it is useful to set `$TV_USE_GPUS=force`. This will make the flag `--gpus` manditory and ensure, that run will be executed on the right gpu.