GithubHelp home page GithubHelp logo

hkust-aerial-robotics / stereo-rcnn Goto Github PK

View Code? Open in Web Editor NEW
683.0 27.0 178.0 8.66 MB

Code for 'Stereo R-CNN based 3D Object Detection for Autonomous Driving' (CVPR 2019)

License: MIT License

Python 90.93% Shell 0.56% Cuda 6.65% C 1.72% C++ 0.13%

stereo-rcnn's People

Contributors

peiliangli 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stereo-rcnn's Issues

What shall I need to pay attention to when I train my own stereo data

Hi,Li
I here trying to train my own data.Different from kitti's dataset,images I collect are grey scale and 752x480.
For the label part,BBox can be easily labeled,but what about the rest of them,like alpha,dimensions,etc.Are these essential to the training part?'cause orientation is so hard to label.Data I collect already have calib,velodyne and left-right image(grey scale).
Looking forward to your reply,much obliged.

About the Vt constraint in box estimator

Hello. Thanks for the code.
I have a question about the Vt (top edge of left 2D box) constraint.
It seems that this implementation hardcodes the vertex that should project to the top edge of left 2D box.
Maybe it's based on the assumption that the camera is able to see the top plane of 3D box ?
However, when the top plane of 3D box is invisible, this specific vertex seems depends on the observation angle and viewpoint as well.

THCudaCheck FAIL

I run the project in pytorch 1.0 version, and then the result have been print. But there is a problem in the terminal:
THCudaCheck FAIL file=/opt/conda/conda-bld/pytorch_1544174967633/work/aten/src/THC/THCGeneral.cpp line=405 error=11 : invalid argument
I did not find the answer, so I hope that I can get some help at here. Thank you.

ImportError: DLL load failed:

hello, when I run the python demo.py ,it occur the error:
Traceback (most recent call last):
File "demo.py", line 29, in
from model.roi_layers import nms
File "E:\Stereo-RCNN-1.0\lib\model\roi_layers_init_.py", line 3, in
from .nms import nms
File "E:\Stereo-RCNN-1.0\lib\model\roi_layers\nms.py", line 3, in
from model import _C
ImportError: DLL load failed: 找不到指定的程序。

And my gcc version is 5.1,but run the python setup.py build develop,it occur the warning:
running build
running build_py
running build_ext
E:\Anaconda3\envs\env_stereo\lib\site-packages\torch\utils\cpp_extension.py:191: UserWarning:

                           !! WARNING !!

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Your compiler (cl 12.00.8168) may be ABI-incompatible with PyTorch!
Please use a compiler that is ABI-compatible with GCC 4.9 and above.
See https://gcc.gnu.org/onlinedocs/libstdc++/manual/abi.html.

See https://gist.github.com/goldsborough/d466f43e8ffc948ff92de7486c5216d6
for instructions on how to install GCC 4.9 or higher.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                          !! WARNING !!

warnings.warn(ABI_INCOMPATIBILITY_WARNING.format(compiler))
running develop
running egg_info
writing faster_rcnn.egg-info\PKG-INFO
writing dependency_links to faster_rcnn.egg-info\dependency_links.txt
writing top-level names to faster_rcnn.egg-info\top_level.txt
reading manifest file 'faster_rcnn.egg-info\SOURCES.txt'
writing manifest file 'faster_rcnn.egg-info\SOURCES.txt'
running build_ext
copying build\lib.win-amd64-3.6\model_C.cp36-win_amd64.pyd -> model
Creating e:\anaconda3\envs\env_stereo\lib\site-packages\faster-rcnn.egg-link (link to .)
faster-rcnn 0.1 is already the active version in easy-install.pth

Installed e:\stereo-rcnn-1.0\lib
Processing dependencies for faster-rcnn==0.1
Finished processing dependencies for faster-rcnn==0.1

how to solve it ,thank you

undefined symbol

Sorry to disturb. I met the error when I ran the command: $ python demo.py
And the error shows like this:
Traceback (most recent call last):
File "demo.py", line 29, in
from model.roi_layers import nms
File "/Stereo-RCNN/lib/model/roi_layers/init.py", line 3, in
from .nms import nms
File "/Stereo-RCNN/lib/model/roi_layers/nms.py", line 3, in
from model import _C
ImportError: /Stereo-RCNN/lib/model/_C.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN6caffe26detail37_typeMetaDataInstance_preallocated_30E

I ran this on Ubuntu 16.04, Python 3.6.8, CUDA 9.0, pytorch 1.1.0.
I have search a lot to try to solve this issue, but it didn't work.

How to get the label of image3(right image)

Dear Li:
Thanks a lot for sharing your code!
But I'm quite confused how do you get the GT label of the right image during RPN stage.
Looking forward to your reply.
Best wishes.

Question about kitti_eval

There is 7481 images(with labels) in KITTI dataset. I filtered them to just keep images with cars.
Then I split remaining images into training set and validation set with the same amount (3410).
I train stereo rcnn with train.txt and test it with val.txt. But there is only 3342 txts in dir 'result'

I think it is because the detector detects nothing in some images, right? So I create empty txts in dir 'result' for these images.

In my experiment, I want to compare my method with yours in 2D AP and disparity error. I get the box in left img and right img from the 3D box. But, I test 2D AP(IoU=0.7) on left img with kitti 2d object detection eval tool, and it is 86.61,80.39,68.10 which is lower than 98.73 88.48 71.26 in your paper.

And I find that the eval tools you use only evaluates samples whose result files exist at https://github.com/prclibo/kitti_eval.

Pedestrian detection

Hi,

I'm working on collecting and annotating data with a stereo camera for pedestrian detection and for accelerating the annotation process, I was thinking about using an already trained algorithm for generating annotation boxes proposals and as Stereo-RCNN is on top of the list for Kitti vehicle detection benchmark, wanted to ask if you already tested Stereo-RCNN for pedestrian detection and would it be much overhead/worth it to train it for pedestrian detection.

Best regards,
Amine

Support CUDA > 9.0...

With CUDA 9.2 installed, I am unable to build the stereo-rcnn project. Following the instructions on the wiki installs a version of PyTorch that is built for CUDA 8.0 (and complains about missing CUDA 8.0 libraries when building). Changing the cuda80 argument to cuda92 makes no difference, as there seems to be no CUDA 9.2 version of PyTorch 0.3.0 (there is for later versions, but the wiki suggests these aren't supported).

The only thing that ultimately worked was downgrading to CUDA 9.0 and using the cuda90 argument when installing PyTorch. While I could run make.sh by using the cuda90 PyTorch with CUDA 9.2, I couldn't actually run the demo without downgrading CUDA itself.

It seems this package needs to be updated to support newer versions of PyTorch and/or CUDA. As it stands, CUDA 9.0 is not officially supported on Ubuntu 18.04 (the current LTS), or by PyTorch 0.3.0. In the meantime, it would help to document the incompatibility with recent CUDA versions...

Doubt about training with dimension and orientation

Hi Peiliang,

recently I've studied your code about Stereo RCNN. It's a great pleasure to study such a good method in image-based object detection.
During studying the code, I'm not quite sure about some of them and hope you could explain them...

During training process, the outside (and inside) bounding box weights for dimension orientation was not implemented as other did. why's that?
image

Bad evaluation result on validation set [Solved]

I got this bad evaluation result on val set, as the following:

Thank you for participating in our evaluation!
Loading detections...
number of files for evaluation: 3446
  done.
save result//plot/car_detection.txt
car_detection AP: 18.119764 17.805336 17.665022
save result//plot/car_orientation.txt
car_orientation AP: 17.903425 17.490780 17.163260
save result//plot/car_detection_ground.txt
car_detection_ground AP: 11.219302 11.579988 9.090909
save result//plot/car_detection_3d.txt
car_detection_3d AP: 9.090909 9.090909 9.090909
Your evaluation results are available at:
result/

@PeiliangLi I use cuda8.0 and pytorch0.3.0 to run the model. The result .txt files are maintained below. trainlog.txt contains training log of the first 8 epochs. Is there any idea about this situation? Many thanks.
result.zip
trainlog.txt

How do we run test.sh on test dir?

I found the test dataset and training dataset are the same. So the first time I run the model and run the test.sh, I found the accuracy is about 90%. So I split training set to 2 parts (train and test) and want to run test.sh on the test dataset. But it will always showing it will get img from training dir.
Something like this

  File "test_net.py", line 69, in <module>
    imdb, roidb, ratio_list, ratio_index = combined_roidb('kitti_val', False)
  File "/home/yujiaq3/Stereo-RCNN/lib/roi_data_layer/roidb.py", line 123, in combined_roidb
    roidbs = [get_roidb(s) for s in imdb_names.split('+')]
  File "/home/yujiaq3/Stereo-RCNN/lib/roi_data_layer/roidb.py", line 115, in get_roidb
    print("get_roidb start",imdb_name, len(imdb.roidb), imdb.roidb)
  File "/home/yujiaq3/Stereo-RCNN/lib/datasets/imdb.py", line 77, in roidb
    self._roidb = self.roidb_handler()
  File "/home/yujiaq3/Stereo-RCNN/lib/datasets/kitti.py", line 134, in gt_roidb
    for index in self.image_index]
  File "/home/yujiaq3/Stereo-RCNN/lib/datasets/kitti.py", line 209, in _load_kitti_annotation
    objects_origin = kitti_utils.read_obj_data(filename, calib_it, im_left.shape)
  File "/home/yujiaq3/Stereo-RCNN/lib/model/utils/kitti_utils.py", line 173, in read_obj_data
    detection_data = open(LABEL_PATH, 'r')
IOError: [Errno 2] No such file or directory: './data/kitti/object/training/label_2/007000.txt'

And also I met this problem,

./data/kitti/object/training/calib/007000.txt
Traceback (most recent call last):
  File "test_net.py", line 296, in <module>
    calib, alpha, dim, box_left, box_right, cls_kpts[detect_idx])
  File "/home/yujiaq3/Stereo-RCNN/lib/model/utils/box_estimator.py", line 216, in solve_x_y_z_theta_from_kpt
    alpha = kpt2alpha(kpt_pos, kpt_type, box_left)
  File "/home/yujiaq3/Stereo-RCNN/lib/model/utils/box_estimator.py", line 159, in kpt2alpha
    alpha = -m.pi/2 - m.asin(clamp((kpt_pos-box[0])/box_width,-1,1))   # 0 -> -90, 1 -> -180
TypeError: sub() received an invalid combination of arguments - got (numpy.float32), but expected one of:
 * (Tensor other, Number alpha)
 * (Number other, Number alpha)

nvcc/cuda version prolems

  • Ubuntu 18.04
  • CUDA 10.0

At first, I used nvcc(version 10.0) and changed the CUDA_PATH in lib/make.sh to the cuda lib in anaconda(version 8.0) to run lib/make.sh, but I met undefined symbol: __cudaPopCallConfiguration problem. It seemed that I need to use nvcc 8.0 to compile the code.
Then, I installed CUDA 8.0 and use its nvcc 8.0 to compile the code again and it works.
So, I think in order to run the code, we need CUDA 8.0 toolkit not only in anaconda.

'module' object has no attribute 'nms_cuda'

Hi, I have run the sh make.sh, and the result is down here, it seems no problem.


running build_ext
skipping 'model/utils/bbox.c' Cython extension (up-to-date)
Compiling nms kernels by nvcc...
/unsullied/sharefs/lihuidong/isilon_home/workspace/stereo-RCNN/lib/model/nms
['/unsullied/sharefs/lihuidong/isilon_home/workspace/stereo-RCNN/lib/model/nms/src/nms_cuda_kernel.cu.o']
generating /tmp/tmpFagalR/_nms.c
setting the current directory to '/tmp/tmpFagalR'
running build_ext
building '_nms' extension
gcc -pthread -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -std=c99 -fPIC -I/home/lihuidong/anaconda3/envs/env_stereo/lib/python2.7/s
ite-packages/torch/utils/ffi/../../lib/include -I/home/lihuidong/anaconda3/envs/env_stereo/lib/python2.7/site-packages/torch/utils/ffi/..
/../lib/include/TH -I/home/lihuidong/anaconda3/envs/env_stereo/include/python2.7 -c _nms.c -o ./_nms.o
gcc -pthread -shared -L/home/lihuidong/anaconda3/envs/env_stereo/lib -Wl,-rpath=/home/lihuidong/anaconda3/envs/env_stereo/lib,--no-as-nee
ded -std=c99 ./_nms.o /unsullied/sharefs/lihuidong/isilon_home/workspace/stereo-RCNN/lib/model/nms/src/nms_cuda_kernel.cu.o -L/home/lihui
dong/anaconda3/envs/env_stereo/lib -lpython2.7 -o ./_nms.so
Compiling roi align kernels by nvcc...
/unsullied/sharefs/lihuidong/isilon_home/workspace/stereo-RCNN/lib/model/roi_align
generating /tmp/tmp8G3ipN/_roi_align.c
setting the current directory to '/tmp/tmp8G3ipN'
running build_ext
building '_roi_align' extension
gcc -pthread -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -std=c99 -fPIC -I/home/lihuidong/anaconda3/envs/env_stereo/lib/python2.7/s
ite-packages/torch/utils/ffi/../../lib/include -I/home/lihuidong/anaconda3/envs/env_stereo/lib/python2.7/site-packages/torch/utils/ffi/..
/../lib/include/TH -I/home/lihuidong/anaconda3/envs/env_stereo/include/python2.7 -c _roi_align.c -o ./_roi_align.o
gcc -pthread -shared -L/home/lihuidong/anaconda3/envs/env_stereo/lib -Wl,-rpath=/home/lihuidong/anaconda3/envs/env_stereo/lib,--no-as-nee
ded -std=c99 ./_roi_align.o /unsullied/sharefs/lihuidong/isilon_home/workspace/stereo-RCNN/lib/model/roi_align/src/roi_align_kernel.cu.o
-L/home/lihuidong/anaconda3/envs/env_stereo/lib -lpython2.7 -o ./_roi_align.so


But when I run bash train.sh, I got this issue and don't know how to solve it, can you help me to figure it out?


Traceback (most recent call last):
File "trainval_net.py", line 212, in
gt_boxes_merge, gt_dim_orien, gt_kpts, num_boxes)
File "/home/lihuidong/anaconda3/envs/env_stereo/lib/python2.7/site-packages/torch/nn/modules/module.py", line 325, in call
result = self.forward(*input, **kwargs)
File "/unsullied/sharefs/lihuidong/isilon_home/workspace/stereo-RCNN/lib/model/stereo_rcnn/stereo_rcnn.py", line 195, in forward
im_info, gt_boxes_left, gt_boxes_right, gt_boxes_merge, num_boxes)
File "/home/lihuidong/anaconda3/envs/env_stereo/lib/python2.7/site-packages/torch/nn/modules/module.py", line 325, in call
result = self.forward(*input, **kwargs)
File "/unsullied/sharefs/lihuidong/isilon_home/workspace/stereo-RCNN/lib/model/rpn/stereo_rpn.py", line 101, in forward
im_info, cfg_key, rpn_shapes))
File "/home/lihuidong/anaconda3/envs/env_stereo/lib/python2.7/site-packages/torch/nn/modules/module.py", line 325, in call
result = self.forward(*input, **kwargs)
File "/unsullied/sharefs/lihuidong/isilon_home/workspace/stereo-RCNN/lib/model/rpn/proposal_layer.py", line 122, in forward
keep_idx_i_left = nms(torch.cat((proposals_single_left, scores_single), 1), nms_thresh, force_cpu=not cfg.USE_GPU_NMS)
File "/unsullied/sharefs/lihuidong/isilon_home/workspace/stereo-RCNN/lib/model/nms/nms_wrapper.py", line 21, in nms
return nms_gpu(dets, thresh) if force_cpu == False else nms_cpu(dets, thresh)
File "/unsullied/sharefs/lihuidong/isilon_home/workspace/stereo-RCNN/lib/model/nms/nms_gpu.py", line 10, in nms_gpu
nms.nms_cuda(keep, dets, num_out, thresh)
AttributeError: 'module' object has no attribute 'nms_cuda'

How do you divide these cars in validation set to Easy/Moderate/Hard

Hello, I divide cars into different categories by a function written by myself.
However, the evaluation on your validation set seems quite different(3D iou > 0.7):
Easy: 0.667 Moderate: 0.357, Hard: 0.156

Here is my function for classifying cars into different difficulties:

    HEIGHT = (40, 25, 25)
    OCCLUSION = (0, 1, 2)
    TRUNCATION = (0.15, 0.3, 0.5)
    def _get_difficulty(self, obj):
        """This filters an object by difficulty.
        Args:
            obj: An instance of ground-truth Object Label
            difficulty: An int defining the KITTI difficulty rate
        Returns: True or False depending on whether the object
            matches the difficulty criteria.
        """
        difficulty = 0
        bbox = obj.boxes[0].box
        while not ((obj.occlusion <= self.OCCLUSION[difficulty]) and
         (obj.truncate <= self.TRUNCATION[difficulty]) and
         (bbox[3] - bbox[1]) >= self.HEIGHT[difficulty]):
            difficulty += 1
            if difficulty > 2:
                break
        return difficulty

Could you please tell me where is wrong?

Camera parameters

Hello, I want to apply this network to another binocular cameras. Is there any camera parameter file that I need to modify? Thank you.

about training

there have training and testing folders after released the compressed package of image_2.could you tell me the structure of dataset,I want to train this model

Segmentation fault

when I run the test_net.py for evaluation with sh test.sh, I got following information :

Loaded dataset `kitti_val` for training
Preparing training data...
cache file ./data/kitti/object/kitti_val_gt_roidb.pkl
kitti_val gt roidb loaded from ./data/kitti/object/kitti_val_gt_roidb.pkl
done
3769 roidb entries
load checkpoint models_stereo/stereo_rcnn_18_6477.pth
load model successfully!
Segmentation fault (core dumped)s, solve time 0.41s (Press Esc to exit!) 

It seems evaluation works well for a while, but after evalutating about 50 val samples, Segmentation fault is reported.
Btw I use cuda8.0 and pytorch 0.3.1, and the training process works just fine.
@PeiliangLi

Is that able to predict 3d bounding box direction?

As for vehicles or pedestrians there are some requirements to predict orientation of target. Is that possible?

BTW, in terms of mono version, what's the input? (if it is using a single mono image, does there any output sample of mono version predict?)

Can I adjust this code for normal object detection ?

Dear Li:
I just wanna detect normal objecst via 3D methods,but not cars,maybe tables or others. could you kindly give some advice?
Do you think if I should adjust your code , I feel so confused .
Looking for your early reply, thanks so much!

about dataset

The velodyne in the requested dataset is data_odometry_velodyne or data_object_velodyne

how to reproduce the result on kitti testset?

Hi, thank you for sharing your code and trained model.
I have run your trained model by test_net.sh without modifying any code about the basic config. I got some results based on 'kitti_val', and the results are:

number of files for evaluation: 3477
car_detection AP: 98.640228 88.898941 71.541313
car_orientation AP: 98.115181 87.832764 70.612312
car_detection_ground AP: 70.343857 49.159752 41.578720
car_detection_3d AP: 55.502235 36.828293 31.459877

When I was trying to change 'kitti_val' to 'kitti_test' in file test_net.py, linte 69, some error occurred:

Traceback (most recent call last):
  File "test_net.py", line 69, in <module>
    imdb, roidb, ratio_list, ratio_index = combined_roidb('kitti_test', False)
  File "/private/zhukaili/Stereo-RCNN/lib/roi_data_layer/roidb.py", line 115, in combined_roidb
    roidbs = [get_roidb(s) for s in imdb_names.split('+')]
  File "/private/zhukaili/Stereo-RCNN/lib/roi_data_layer/roidb.py", line 109, in get_roidb
    imdb = get_imdb(imdb_name)
  File "/private/zhukaili/Stereo-RCNN/lib/datasets/factory.py", line 29, in get_imdb
    return __sets[name]()
  File "/private/zhukaili/Stereo-RCNN/lib/datasets/factory.py", line 23, in <lambda>
    __sets[name] = (lambda split=split: kitti(split, data_path))
  File "/private/zhukaili/Stereo-RCNN/lib/datasets/kitti.py", line 50, in __init__
    self._image_index = self._load_image_set_index_new()
  File "/private/zhukaili/Stereo-RCNN/lib/datasets/kitti.py", line 116, in _load_image_set_index_new
    return image_index
UnboundLocalError: local variable 'image_index' referenced before assignment

It seemed that the function _load_image_set_index_new didn't do anything about the testset. So I am here for your help about how to reproduce the result on kitti testset?

Thanks.

type error in mono

when I run demo in mono version, the error is shown as following:

Traceback (most recent call last):
File "demo.py", line 261, in
calib, alpha, dim, box_left, cls_kpts[detect_idx])
File "/home/user/Cworkspace/Stereo-RCNN-mono/lib/model/utils/box_estimator.py", line 212, in solve_x_y_z_theta_from_kpt
alpha = kpt2alpha(kpt_pos, kpt_type, box_left)
File "/home/user/Cworkspace/Stereo-RCNN-mono/lib/model/utils/box_estimator.py", line 159, in kpt2alpha
alpha = -m.pi/2 - m.asin(clamp((kpt_pos-box[0])/box_width,-1,1)) # 0 -> -90, 1 -> -180
TypeError: sub() received an invalid combination of arguments - got (numpy.float32), but expected one of:

  • (Tensor other, float alpha)
  • (float other, float alpha)

It was running with python=2.7.6 and pytorch=0.3.0.

loss is negative

Why is the loss negative?
What do the plus or minus of the loss represent?
Thanks very much!

Raise TypeError, "dist must be a Distribution instance" TypeError: dist must be a Distribution instance

Hello! I followed your tutorial and encountered an error while executing sh make.sh. The details are as follows:

Raise TypeError, "dist must be a Distribution instance" TypeError: dist must be a Distribution instance

To check the cause of the error, it is suggested to change the version number of dependent package setuptools. The version Numbers I have tried so far are: 41.0.1, 36.4.0 and 20.7.0, but they are all unsuccessful.

I would like to ask what is the version number of setuptools you use? Or do you have any good Suggestions?

What's the difference between checkpoint 12_6477 and 20_6477?

I downloaded a checkpoint days ago from your readme called 12_6477,and get 98,89,80 2D AP from this checkpoint, which is not the same as the 2D AP in your paper. But now I notice that there is only a 20_6477 checkpoint, so what's the difference between these two checkpoints?

About the unstable performance

Hi,
Thanks for your kind share. When I try to run the train step several times to get several models, I found that the performance are unstable. Sometimes, the AP3D for hardset may degrade by 3%. I have got results (~51.1, ~34.5, ~30.1 for easy, moderate, hard). Could you please help me?
Thanks a lot!

IndexError: too many indices for array

Hi PeiLiang:
When I trained the model to 3682 iterations of the first epoch, I encountered the following problems:

IndexError: Traceback (most recent call last):
File "/home/zhaodan/Downloads/sofaware/pycharm-community-2018.3.1/venvpy2/local/lib/python2.7/site-packages/torch/utils/data/dataloader.py", line 42, in _worker_loop
samples = collate_fn([dataset[i] for i in batch_indices])
File "/home/zhaodan/Downloads/code/Stereo-RCNN-master1/lib/roi_data_layer/roibatchLoader.py", line 65, in getitem
blobs = get_minibatch(minibatch_db, self._num_classes)
File "/home/zhaodan/Downloads/code/Stereo-RCNN-master1/lib/roi_data_layer/minibatch.py", line 34, in get_minibatch
im_blob_left, im_blob_right, im_scales = _get_image_blob(roidb, random_scale_inds)
File "/home/zhaodan/Downloads/code/Stereo-RCNN-master1/lib/roi_data_layer/minibatch.py", line 114, in _get_image_blob
img_right = img_right[:,:,::-1]
IndexError: too many indices for array

Do you have such a problem?

My GPU is nvidia GTX 1081Ti , its memory size is 11G , does it enough?

Looking forward to your reply! Thanks!

building 'model._C' extensionerror: Microsoft Visual C++ 14.0 is required.

Dear Li:
Sorry to disturb, I'm new to python. And I met the error when I use the command "python setup.py build develop":

(env_stereo) C:\Users\jyy\Stereo-RCNN\lib>python setup.py build develop
running build
running build_py
running build_ext
C:\Users\jyy\Anaconda3\envs\env_stereo\lib\site-packages\torch\utils\cpp_extension.py:184: UserWarning: Error checking compiler version for cl: [WinError 2] 系统找不到指定的文件。
warnings.warn('Error checking compiler version for {}: {}'.format(compiler, error))
building 'model._C' extension
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/

(env_stereo) C:\Users\jyy\Stereo-RCNN\lib>

How can I slove this problem?
Looking forward to your reply ^-^
Thank you very much~

Does the code support multi GPUs for training?

Hi,
I modify CUDA_VISIBLE_DEVICES=0,1,2,3 in train.sh, but only GPU 0 works.
Does this code support multi GPUs?

And each iter takes about 1.97s with a single Titan Xp (cuda8.0) when training. It will take about 75 hours for 20epoch. Is it normal?

out of memory

Hi, Peiliang :
when I train the program something happened as below ,
could you kindly tell me what can I do ?
RuntimeError: cuda runtime error (2) : out of memory at /opt/conda/conda-bld/pytorch_1512378360668/work/torch/lib/THC/generic/THCStorage.cu:58

Another question : where is the light-weight version
It consumes ~11G GPU memery for training. If your GPU memery is not enough, please try our light-weight version in branch mono.

thanks so much! Hope to get your corresponding asap.

Can not reproduce the reported results

I have tried several times to reproduce the reported results in the Paper using the public code and config setting, but failed each time. I got results that were 7% worse than the reported number when I used train.txt for training and val.txt for validation.

Then I decided to run an interesting experiment that I used trainval.txt for training and val.txt for validation, I can reproduce the Paper number!

Followings are my trained models on train.val and trainlog.txt:

https://pan.baidu.com/s/1zhCt1P3KsVrCyBk8I8kkew
https://pan.baidu.com/s/1P7IXetc1otXtDf0HJQ_7Ug

If any question, please discuss freely.

ModuleNotFoundError: No module named 'datasets.factory'

Hello,
I am getting the following error when I run 'python demo.py':
Traceback (most recent call last):
File "demo.py", line 25, in
from roi_data_layer.roidb import combined_roidb
File "ptah_of_project/Stereo-RCNN/lib/roi_data_layer/roidb.py", line 9, in
from datasets.factory import get_imdb
ModuleNotFoundError: No module named 'datasets.factory'

And my environment of python is same to the source code.

Before I run "python demo.py", I have build successful by "python setup.py build develop",
I hope you can give me some suggestions to fix the problem. Thanks
!

NameError: free variable 'gfk' referenced before assignment

I train stereo rcnn with my customized train.txt and test with customized val.txt.

Everything seems ok and i can see the predicted 3D results and predicted txts in dir 'result'

But when testing 002160.png, error occurs:

Traceback (most recent call last):, solve time 0.23s (Press Esc to exit!)
File "test_net.py", line 294, in
calib, alpha, dim, box_left, box_right, cls_kpts[detect_idx])
File "/media/yazhou/data_drive2/zcx/Stereo-RCNN/lib/model/utils/box_estimator.py", line 381, in solve_x_y_z_theta_from_kpt
res = minimize(f_kpt, [init_x,init_y,init_z, init_theta], method ='Newton-CG', jac=j_kpt, options={'disp': False})
File "/usr/local/lib/python2.7/dist-packages/scipy/optimize/_minimize.py", line 447, in minimize
**options)
File "/usr/local/lib/python2.7/dist-packages/scipy/optimize/optimize.py", line 1538, in _minimize_newtoncg
return terminate(3, msg)
File "/usr/local/lib/python2.7/dist-packages/scipy/optimize/optimize.py", line 1458, in terminate
result = OptimizeResult(fun=fval, jac=gfk, nfev=fcalls[0],
NameError: free variable 'gfk' referenced before assignment in enclosing scope

And my scipy version is 0.19.0

a runtimeerror about cudnn when run demo

when I run demo, it show a error as following:
File "/home/****/.local/lib/python2.7/site-packages/torch/nn/functional.py", line 90, in conv2d
return f(input, weight, bias)
RuntimeError: CUDNN_STATUS_INTERNAL_ERROR

Can you give me some suggestion to fix it?

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.