In this project, we extend direct sparse odometry(DSO) with a self-supervised depth estimation module named packnet-sfm.
Sequence on KITTI | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
ORBSLAM | 77.95 | X | 41.0 | 1.0118 | 0.930 | 40.35 | 52.22 | 16.54 | 51.62 | 58.17 | 18.47 |
DSO | 188 | 9.17 | 114 | 17.7 | 0.82 | 72.6 | 42.2 | 48.4 | 177 | 28.1 | 24.0 |
DVSO | 0.71 | 1.18 | 0.84 | 0.79 | 0.35 | 0.58 | 0.71 | 0.73 | 1.03 | 0.83 | 0.84 |
My | 15.13 | 5.901 | 12.53 | 1.516 | 0.100 | 20.3 | 1.547 | 8.369 | 10.53 | 14.00 | 4.10 |
D3VO | 1.07 | 0.8 | 0.67 | 1.0 | 0.78 | 0.62 |
Models | Train | Abs Rel | Sq Rel | RMSE | RMSE(log) | Acc.1 | Acc.2 | Acc.3 |
---|---|---|---|---|---|---|---|---|
monodepth2[1] | mono | 0.115 | 0.903 | 4.863 | 0.193 | 0.877 | 0.959 | 0.981 |
packnet-sfm[2] | mono | 0.111 | 0.785 | 4.601 | 0.189 | 0.878 | 0.960 | 0.982 |
packnet-semantic[3]* | mono | 0.100 | 0.761 | 4.270 | 0.175 | 0.902 | 0.965 | 0.982 |
DVSO[4] | stereo | 0.092 | 0.547 | 3.390 | 0.177 | 0.898 | 0.962 | 0.982 |
our | mono | 0.113 | 0.818 | 4.621 | 0.190 | 0.875 | 0.958 | 0.982 |
D3VO[5] | mono | 0.099 | 0.763 | 4.485 | 0.185 | 0.885 | 0.958 | 0.979 |
- libtorch(
c++11
) - OpenCV3+
- CUDA(10.1)
- Protobuf >= 3.8.x
TensorRT is one the applicable inference framework which reduces the consumed inference time and computation overhead greatly. Although converting model into torchscript is also a good choice to save time, the builtin optimization principles of tensorrt are still much effcient than torchscript. I also trying to optimize this depth estimaition module with TensorRT.
-
prepare all required libs mentioned before, and download this projet.
git clone https://github.com/TengFeiHan0/deepDSO.git
-
go to monodepth2.cpp and download the required torchscript model(
packnet.pt
) and another required lib (libtorch
) from its offical website -
Build
cd deepDSO mkdir build cd build cmake .. make -j4