Git Product home page Git Product logo

self-mono-sf's People

Contributors

francescodisalvo05 avatar hurjunhwa avatar sroth-visinf 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

self-mono-sf's Issues

Disparity and flow results not so good on custom data

I have trained the model on my custom data with 5000 stereo pairs and 20 epochs.I got the following results
Input image
000000_10
Output disparity: gray and colored respectively as shown:
000000_10b
000000_disp
Flow:
000000_flow
What can be the reason for this?
Could this also happen if the correct focal length is higher by 20 units as compared to that given for training?
Any suggestion is appreciated!
Thanks!

why self-supervised ?

Initially ,thank you so much for your code, for your answers and help .
could you please explain why do you call this method self-supervised ? could you please point out the specific point that let you call it self-supervised?
Thank you again ..

Question about Compatibility for Pytorch >= 1.6.0

Hi @hurjunhwa,

I am just wondering have you tested the compatibility of correlation package with Pytorch >=1.6.0? For Pytorch >=1.6.0, the cuda version supported is 10.1 & 10.2, not 10.0. If I used torch == 1.6.0+cu101 & cuda 10.1. It gives follows error in runtime:

File "/disk_ssd/self-mono-sf/models/correlation_package/correlation.py", line 4, in
import correlation_cuda
ImportError: libcudart.so.10.0: cannot open shared object file: No such file or directory

For this error, I am not sure why in correlation_cuda will try to find libcudart.so.10.0 instead of libcudart.so.10.1

If using torch == 1.6.0+cu101 & cuda10.0, it gives this error in runtime:

File "/disk_ssd/self-mono-sf/models/correlation_package/correlation.py", line 4, in
import correlation_cuda
ImportError: /home/hashswan/.conda/envs/self-mono/lib/python3.7/site-packages/correlation_cuda-0.0.0-py3.7-linux-x86_64.egg/correlation_cuda.cpython-37m-x86_64-linux-gnu.so: undefined symbol: _ZN6caffe26detail37_typeMetaDataInstance_preallocated_32E

For this error, it resulted from incompatibility of pytorch version and cuda version

In both cases, package installation is successful without any warnings.

I am looking forward to your reply. Thank you very much!

Best,

Visualization of scene flow and speed estimation

Hello great work @hurjunhwa and team !
I was able to run the test code and got the disparity and optical flow images for kitti dataset.I wanted to visualize the scene flow.How do I do that using the disparity and flow?
Also how to save the 3d motion vector for every test image?
I want to predict the speed of the objects using the 3d motion vector given by the scene flow.To do so,
I just need to take the difference of the two 3d positions in two consecutive frames and divide it by the time interval right?
Does the predicted motion vector require any further scaling?
Any suggestion is greatly appreciated!
Thank you.

Memory Problem

Hello,

I have encountered a memory problem during training. Could you specify your hardware specifications for training?

Thank you

The training losses in your code and in the paper.

Hi ,
First I'd like to thank you for this great project !
I wanna ask about the relation between the loss values (D1-all D2-all F1-all SF1-all) you have mentioned in Table 4 in the paper which reports the " Monocular scene flow evaluation on KITTI Scene Flow Training" , and the losses that your code produces ( image reconstruction loss, point reconstruction loss, 3D smoothness loss, scene flow loss, disparity loss and total loss) . I just wanna get the same losses as you reported in your paper. could you explain how to get these loss values using your code please ?
Thanks in advance

Training/testing on any dataset

Hi, this is a really interesting project! Will there be code for running this network on any dataset for testing and training? If not, how would you recommend approaching this?

Cheers

Runs on 3090

Hi,I want to run this code on 3090,but the 3090 needs to install CUDA11.0.When I run ./train_monosf_selfsup_kitti_raw.sh,error:ImportError: libcudart.so.10.0:cannot oprn shared object file:No such file or directory.
So, I would like to ask how to solve it? I learned what changes to make to the code.Looking forward to your answer.

requirement.txt for packages

Hello,

I am trying to run train_monosf_selfsup_kitti_raw.sh file but I have encountered an error.

No module named 'colorama'

In the closed issues, I have seen that tqdm version causes a problem that's why I don't want to install needed packages without knowing which version you used. Could you provide a requirements.txt?

Thank you

'TqdmToLogger' object has no attribute '_logging_on_close'

Hello, Sorry to interrupt you. I am interested in your work. But I meet a problem when I run 'train_monosf_selfsup_kitti_raw.sh'.

Traceback (most recent call last):
File "../main.py", line 90, in
main()
File "../main.py", line 87, in main
validation_augmentation=validation_augmentation)
File "/data/self-mono-sf-master/core/runtime.py", line 455, in exec_runtime
total_progress = create_progressbar(**progressbar_args)
File "/data/self-mono-sf-master/core/runtime.py", line 92, in create_progressbar
return tools.tqdm_with_logging(**tqdm_args)
File "/data/self-mono-sf-master/core/tools.py", line 398, in tqdm_with_logging
logging_on_update=logging_on_update)
File "/data/self-mono-sf-master/core/tools.py", line 344, in init
postfix=postfix)
File "/data/my_anaconda3/envs/self_mono/lib/python3.7/site-packages/tqdm/std.py", line 1109, in init
self.refresh(lock_args=self.lock_args)
File "/data/my_anaconda3/envs/self_mono/lib/python3.7/site-packages/tqdm/std.py", line 1361, in refresh
self.display()
File "/data/my_anaconda3/envs/self_mono/lib/python3.7/site-packages/tqdm/std.py", line 1509, in display
self.sp(self.str() if msg is None else msg)
File "/data/my_anaconda3/envs/self_mono/lib/python3.7/site-packages/tqdm/std.py", line 1165, in str
return self.format_meter(**self.format_dict)
TypeError: format_meter() got an unexpected keyword argument 'nrows'
Exception ignored in: <function tqdm.del at 0x7f2c0ed42f80>
Traceback (most recent call last):
File "/data/my_anaconda3/envs/self_mono/lib/python3.7/site-packages/tqdm/std.py", line 1162, in del
self.close()
File "/data/self-mono-sf-master/core/tools.py", line 374, in close
if self._logging_on_close and not self._closed:
AttributeError: 'TqdmToLogger' object has no attribute '_logging_on_close'

The link to Eigen Split Projected Depth is lost

Hi,

Thanks for sharing the great work. I found the link to the Eigen Split Projected Depth for the monocular depth evaluation on the Eigen Split in the readme is not valid. Could you check it out and share a valid link to the depth data? Thanks!

Question about projectSceneFlow2Flow function

Hi, I am very interested in your work!

I reimplemented your code on nuscenes and I noticed the line 134 in the function projectSceneFlow2Flow that the pixelgrid is not normalized. It makes the obtained flow to be big (absolute value), which results in a bad visualization. I really want to know whether it should be normalized.

Looking forward to your reply. Thank you!

sf=0.0000 during scene flow test

Hi,
after executing the evaluation script ./eval_monosf_finetune_kitti_test.sh, the tqdm output keep printingsf=0.0000.
image

But the depth evaluation works well. Any suggestions?

.sh scripts problem

Hi @hurjunhwa those configs seem not be used in main.py

--training_dataset_root=$KITTI_RAW_HOME \
--training_dataset_flip_augmentations=True \
--training_dataset_preprocessing_crop=True \
--training_dataset_num_examples=-1 \

Code related clarifications

Hello @hurjunhwa and team!
I am using this code to train on my own dataset.In regard to this I had a few questions as follows:
I wanted to know how did you get the scaling of 0.54 in the following code:

depth = k_value.unsqueeze(1).unsqueeze(1).unsqueeze(1) * 0.54 / (disp + (1.0 - mask))

Also in the below mentioned line of code dividing the disp by 256 is only specific to kitti dataset right?:
disp_np = io.imread(disp_file).astype(np.uint16) / 256.0

Regarding the flow,I am not sure exactly what these numbers in the following line mean,are they to be changes while using a different dataset?
flow_u = np.clip((u * 64 + 2 ** 15), 0.0, 65535.0).astype(np.uint16)

And I was able to visualize the sceneflow but I am not sure how to validate it,because I do not have the ground truth flow nor the disparity.Can you please help me out in this case?
It was earlier mentioned that this line of code gives the scene flow:
out_sceneflow = interpolate2d_as(output_dict['flow_f_pp'][0], input_l1, mode="bilinear")

But I am unsure of what each value in this output sceneflow represent,Is it the normalized x,y and z coordinate of the motion vector?
Can you please help me understand this line of code which gives the output for the sceneflow?
Any help is greatly appreciated!
Thank you

tqdm version?

Which is your tqdm version, error occur!!!

Traceback (most recent call last):
  File "../main.py", line 90, in <module> 
    main()  
  File "../main.py", line 87, in main  
    validation_augmentation=validation_augmentation)  
  File "/home/administrator/SF/mono-sf/core/runtime.py", line 455, in exec_runtime  
    total_progress = create_progressbar(**progressbar_args)  
  File "/home/administrator/SF/mono-sf/core/runtime.py", line 92, in create_progressbar  
    return tools.tqdm_with_logging(**tqdm_args)  
  File "/home/administrator/SF/mono-sf/core/tools.py", line 406, in tqdm_with_logging  
    logging_on_update=logging_on_update)  
  File "/home/administrator/SF/mono-sf/core/tools.py", line 344, in __init__  
    postfix=postfix)  
  File "/home/administrator/virtualenv/py3.6_pytorch1.3/lib/python3.6/site-packages/tqdm/std.py", line 1050, in __init__  
    self.refresh(lock_args=self.lock_args)  
  File "/home/administrator/virtualenv/py3.6_pytorch1.3/lib/python3.6/site-packages/tqdm/std.py", line 1338, in refresh
    self.display()
  File "/home/administrator/virtualenv/py3.6_pytorch1.3/lib/python3.6/site-packages/tqdm/std.py", line 1471, in display
    self.sp(self.__repr__() if msg is None else msg)
  File "/home/administrator/virtualenv/py3.6_pytorch1.3/lib/python3.6/site-packages/tqdm/std.py", line 1089, in __repr__
    return self.format_meter(**self.format_dict)
TypeError: format_meter() got an unexpected keyword argument 'nrows'
Exception ignored in: <object repr() failed>
Traceback (most recent call last):
  File "/home/administrator/virtualenv/py3.6_pytorch1.3/lib/python3.6/site-packages/tqdm/std.py", line 1086, in __del__
    self.close()
  File "/home/administrator/SF/mono-sf/core/tools.py", line 374, in close
    if self._logging_on_close and not self._closed: 
AttributeError: 'TqdmToLogger' object has no attribute '_logging_on_close' 

What post processing for?

Hi!
Nice code, while would you like to elaborate more on this piece of code? What the post-processing for, data augmentation?

flow_f_pp.append(post_processing(output_dict['flow_f'][ii], flow_horizontal_flip(output_dict_flip['flow_f'][ii]))) #?
flow_b_pp.append(post_processing(output_dict['flow_b'][ii], flow_horizontal_flip(output_dict_flip['flow_b'][ii])))
disp_l1_pp.append(post_processing(output_dict['disp_l1'][ii], torch.flip(output_dict_flip['disp_l1'][ii], [3])))
disp_l2_pp.append(post_processing(output_dict['disp_l2'][ii], torch.flip(output_dict_flip['disp_l2'][ii], [3])))

About network architecture

I notice that for every layer except, the disparity is limited to 0-0.3 by “self.sigmoid(disp_l1) * 0.3”. Why is it designed this way?I know the ground truth of the disparity is limited to 0-1 by the function read_png_disp in common.py. I think it may not be appropriate for other datasets such as Flyingthings3D because normalization is difficult to conduct as disparity is not between 0 and 255. If not normalization, will the result be worse?

Proble while processing Visualization

@hurjunhwa
Hi ! Thanks for your great work for the visualization code of scene flow!
But it seems that I've got one problem with it.
image

As you may see in the picture, I didn't change any of the data except for the three directories:kitti_data_dir, result_dir, vis_dir
I want to know where the problem may occur.
Is it the path problem or is the installation version of open3d different?

Scaling in Augmentation

Thanks for making your code open,

Can you tell me how do you obtain [0.93, 1] scaling for size [256, 832] in your Augmentation? Is scaling dependent on the resized image?

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.