Giter VIP home page Giter VIP logo

dorn_radar's Introduction

Depth Estimation from Monocular Images and Sparse Radar using Deep Ordinal Regression Network

Official implementation of "Depth Estimation from Monocular Images and Sparse Radar using Deep Ordinal Regression Network" (https://arxiv.org/abs/2107.07596), an accepted paper of ICIP2021.

Dependency

Please check Dockerfile for environment settings and python packages

Usage

Generate interpolation dense lidar depthmap

Use gen_interpolation.py to generate sparse depth, dense depth and height-extended radar depth for training and evaluation. Generated depths will be saved in the same data_root directory of nuScenes sample, and please remember to modify the dir path in the .py. The number of CPU cores is set to 25 for faster data generating.

pypardiso is highly recommended, otherwise one could have similar result via spsolve in scipy but with much slower speed. Interpolation code is from https://gist.github.com/ialhashim/be6235489a9c43c6d240e8331836586a

Download pretrained resnet101 weights

Please download the pretrained ResNet101 weight file from http://sceneparsing.csail.mit.edu/model/pretrained_resnet/resnet101-imagenet.pth and modify the weight path in model/resnet.py.

Train baseline model and proposed model on nuScenes

After modifying some paths in train_nusc.py and trian_nusc_radar.py, directly call the .py files for training the baseline model and the proposed model on nuScenes.

Direct uasge

cd pretrained_weight and execute sh download_pretrained_weight.sh.

cd .. back to the root dir and execute python evaluate.py to validate the pretrained model on the val_list.

The train_scene and val_scene txt files in ./list/nusc/ are the train/val splits I used in the paper. The reason why I used my own splits instead of official train/val splits was just because I didn't realize there are official ones at the time I conducted the experiments.

Citation

If you find this work useful in your research, please consider citing:

@inproceedings{DORN_radar,
  author={Lo, Chen-Chou and Vandewalle, Patrick},
  booktitle={Proceedings of the IEEE International Conference on Image Processing}, 
  title={Depth Estimation From Monocular Images And Sparse Radar Using Deep Ordinal Regression Network}, 
  year={2021},
  pages={3343-3347},
  doi={10.1109/ICIP42928.2021.9506550}
}

dorn_radar's People

Contributors

lochenchou avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

dorn_radar's Issues

Reproduction failed:Not achieving the expected effect

Thank you for your wonderful paper and work!
I follow the readme you provided, But did not achieve the effect mentioned in the article. Using the pkl you provided dorn_ Radar. pth. tar .
The following is the result I reproduced, and the image on the right did not obtain the expected depth map.

Environment version:
OS: win11
Python Version:3.8
Package Version:torch2.1

test

gen_interpolation.py is not working facing problem

While generating
DORN_radar$ python gen_interpolation.py

Loading NuScenes tables for version v1.0-trainval...
23 category,
8 attribute,
4 visibility,
64386 instance,
12 sensor,
10200 calibrated_sensor,
2631083 ego_pose,
68 log,
850 scene,
34149 sample,
2631083 sample_data,
1166187 sample_annotation,
4 map,
Done loading in 45.745 seconds.

Reverse indexing ...
Done reverse indexing in 5.8 seconds.

readList from ./list/nusc/train_scene.txt
599
readList from ./list/nusc/val_scene.txt
85
684 scenes in trainval
27489
Number of processors: 12, and we are taking 8
What is the input: ab3f7db30f4d4ce8a2f35f11e9479156
What is the input: 2e1ba5575c244e559a8faf5828f0a287
What is the input: 3651b642eb864f79ab9aa117ce0b83dc
What is the input: 64d6db384e8549498fcdf5397c487892
What is the input: 2dca0a966b4f486db6434d97c2bbea4c
What is the input: 3a2f88b7829a4a15afe1c93be14b1bc8
What is the input: 2054e2dd6f5049ef9122e88a88ac4507
What is the input: 86bb5ecc7d654184847b73e8bbb7549c
What is the input: 3c047f65de564589a3a266ce1cd2652b
What is the input: fa2ed40768954c0394d4140b03ef8d83
What is the input: b70d0740f9f54289a6370781e2418293
What is the input: 3106213f7e9e4528a92daeda54d038d6
What is the input: cbbee23becc74dc0b87aaa7c0e89ea55
0%| | 0/27489 [00:00<?, ?it/s]What is the input: efa72fb91f584bb1a47f407c7e33e430

multiprocessing.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/miniconda/envs/DORM/lib/python3.8/multiprocessing/pool.py", line 125, in worker
result = (True, func(*args, **kwds))
File "gen_interpolation.py", line 275, in process_data
sparse_depth = loadSparseDepth(nusc, _sample)
File "gen_interpolation.py", line 172, in loadSparseDepth
points, coloring, im = nusc.explorer.map_pointcloud_to_image(pointsensor_token=lidar_token,camera_token=cam_token)
File "/home/miniconda/envs/DORM/lib/python3.8/site-packages/nuscenes/nuscenes.py", line 777, in map_pointcloud_to_image
pc = LidarPointCloud.from_file(pcl_path)
File "/home/miniconda/envs/DORM/lib/python3.8/site-packages/nuscenes/utils/data_classes.py", line 254, in from_file
scan = np.fromfile(file_name, dtype=np.float32)
FileNotFoundError: [Errno 2] No such file or directory: '/home/data/sets/nuscenes/samples/LIDAR_TOP/n008-2018-09-18-12-53-31-0400__LIDAR_TOP__1537289753949307.pcd.bin'
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "gen_interpolation.py", line 336, in
for _ in tqdm(pool.imap_unordered(process_data, range(len(camera_samples))), total=len(camera_samples)):
File "/home/miniconda/envs/DORM/lib/python3.8/site-packages/tqdm/std.py", line 1185, in iter
What is the input: c60463218ef84ccda3b3f13fad88d7b0
What is the input: a97333962d39467298b121e39881bbad
What is the input: 61145037fea949b1bd55698ce4a6a7c1
What is the input: 23b0a481f99c4f58afaa7c674026d178
What is the input: ce8e3c77160140b99671a356dfcd5945
What is the input: 8605a1199acd4075a161103bc5c29b30
What is the input: 95eae96557ea4dc989bb5ed7a747df8c
for obj in iterable:
File "/home/miniconda/envs/DORM/lib/python3.8/multiprocessing/pool.py", line 868, in next
raise value
FileNotFoundError: [Errno 2] No such file or directory: '/home/data/sets/nuscenes/samples/LIDAR_TOP/n008-2018-09-18-12-53-31-0400__LIDAR_TOP__1537289753949307.pcd.bin'
(DORM) home@home:~/DORN_radar$ python gen_interpolation.py

About creating the lists

Sir I have downloaded the nuscenes dataset but those have different sequence than you mentioned in the lists so I wanted to generate lists files for them how can i do it please suggest me the solution. thank you waiting for the response...

The error is this
FileNotFoundError: [Errno 2] No such file or directory: '/datasets/nuscenes/v1.0-trainval/samples/CAM_FRONT/n008-2018-09-18-12-53-31-0400__CAM_FRONT__1537289751512404.jpg'

but i have dataset of this
Screenshot from 2022-11-23 11-52-52

how to infer a image with pre-trained model?

thanks for your work, here is something confused for layman:
1.how to infer a image, where can we get infer.py or how to infer a image by using private image?
2.where can we get the pre-trained model and load it?
thanks!

Have question in training phase

Thank you in advanced , I have some questions in your paper
image
This is the structure proposed in your paper , but when you train this network , how could you make sure the radar info could have some compensate for the final depth map ?
that is to say , in your final stored checkpoint , even though we set zeros like array as one radar input , this module could generate one similar depth map only within the usage of image .

Or in another word, how could you make sure the ResNET has been trained enoughly ?

The problem of device

Hi, I am very interested in your work. In fact, I want to know the number and type of GPU.

issue with evaluate

Why do you use dense depth as the standard when training, and sparse depth as the standard when evaluating?
What is the difference between the two

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.