release commit
authorManu Mathew <a0393608@ti.com>
Tue, 28 Jan 2020 06:25:14 +0000 (11:55 +0530)
committerManu Mathew <a0393608@ti.com>
Tue, 28 Jan 2020 06:25:14 +0000 (11:55 +0530)
docs/Depth_Estimation.md
scripts/train_depth_main.py
setup.sh

index 12f7d05d1b9bce2ce80c1e79af994cd451678bcb..b38d4e77a3994facf393cdece1e4f2387db5beac 100644 (file)
@@ -1,2 +1,23 @@
-# Work in progress
+# Depth Estimation
 
+Depth Estimation predicts the depth (in the 3D space) associated with each pixel of the image. It is useful for tasks such as 3D Object detetion, surround view image stitching etc.
+
+We suggest you to first read the documentation on [Sematic Segmentation](./Semantic_Segmentation.md) and also try out some examples in [run_segmentation.sh](../run_segmentation.sh) before attempting Depth Estimation training.
+
+In these examples we demonstrate the use of KITTI dataset for depth estimation training. We also support Cityscapes dataset, but we do not have an example for it here.
+
+Commonly used Training/Validation commands are listed in the file [run_depth.sh](../run_depth.sh). Uncommend one line and run the file to start the run.
+
+Loss functions and many other parametes can be changed or configured in [scripts/train_depth_main.py](../scripts/train_depth_main.py). We have seen that a combination of SmoothL1, ErrorVariance and Overall Scale Difference produces good results.
+
+### Results
+
+##### KITTI Depth Dataset
+
+|Dataset    |Mode Architecture         |Backbone Model |Backbone Stride|Resolution |Complexity (GigaMACS)|ARD       |%ARD      |Model Configuration Name                  |
+|---------  |----------                |-----------    |-------------- |-----------|--------             |----------|----------|----------------------------------------  |
+|KITTI Depth|DeepLabV3Lite with DWASPP |MobileNetV2    |16             |768x384    |**3.44**             |0.0705    |**7.05**  |**deeplabv3lite_mobilenetv2_tv**          |
+|KITTI Depth|DeepLabV3Lite with DWASPP |ResNet50       |32             |768x384    |**28.52**            |0.0631    |**6.31**  |**fpn_pixel2pixel_aspp_resnet50**         |
+
+- ARD: Absolute Relative Difference<br>
+- %ARD: Percentage Absolute Relative Difference
\ No newline at end of file
index c9e7453efcb4ea57de0769b03650e23ccca493e0..f0f7e786a7a1957d6ea2bb4d78768727aa6415f6 100755 (executable)
@@ -70,11 +70,11 @@ args.model_name = 'deeplabv3lite_mobilenetv2_tv' #'deeplabv3lite_mobilenetv2_tv'
 
 args.dataset_name = 'kitti_depth' #'kitti_depth' #'kitti_depth' #'kitti_depth2'
 
-#args.save_path = './data/checkpoints'
-
 args.data_path = './data/datasets/kitti/kitti_depth/data'
 args.split_files = (args.data_path+'/train.txt', args.data_path+'/val.txt')
 
+#args.save_path = './data/checkpoints'
+
 args.pretrained = './data/modelzoo/semantic_segmentation/cityscapes/deeplabv3lite-mobilenetv2/cityscapes_segmentation_deeplabv3lite-mobilenetv2_2019-06-26-08-59-32.pth'
                                     # 'https://download.pytorch.org/models/mobilenet_v2-b0353104.pth'
                                     # './data/modelzoo/pretrained/pytorch/imagenet_classification/ericsun99/MobileNet-V2-Pytorch/mobilenetv2_Top1_71.806_Top2_90.410.pth.tar'
@@ -83,6 +83,9 @@ args.pretrained = './data/modelzoo/semantic_segmentation/cityscapes/deeplabv3lit
 args.model_config.input_channels = (3,)      # [3,3]
 args.model_config.output_type = ['depth']
 args.model_config.output_channels = [1]
+args.model_config.output_range = [(0,64)] # important note: set this output_range parameter in the inference script as well
+                                          # this is an important difference from the semantic segmentation script.
+
 args.losses = [['supervised_loss', 'scale_loss', 'supervised_error_var']] #[['supervised_loss', 'scale_loss']]
 args.loss_mult_factors = [[0.125, 0.125, 4.0]]
 
index ca51da535d1ad7747653ddfdf29334ca2b791d98..3e26b7c518015e95ce5002e8a5e7a7957a7c9f29 100755 (executable)
--- a/setup.sh
+++ b/setup.sh
@@ -1,5 +1,12 @@
 #!/bin/bash
 
+######################################################################
+version_match=`python -c 'import sys;r=0 if sys.version_info >= (3,7) and sys.version_info < (3,8) else 1;print(r)'`
+if [ $version_match -ne 0 ]; then
+echo 'python version must be 3.7'
+exit 1
+fi
+
 ######################################################################
 # Installing dependencies
 echo 'Installing python packages...'