Laiqingsi / CLOCs_LQS

An implementation of CLOCs: Camera-LiDAR Object Candidates Fusion for 3D Object Detection.
43 stars 5 forks source link

About running errors in code #4

Closed 1553545365 closed 2 years ago

1553545365 commented 2 years ago

非常感谢你更新了readme,我也已经再次尝试运行你的出色工作。但是还是有一些问题导致无法运行: 1、在CLOCs_LQS/generate_data.py中,是否需要做如下修改,否则报错 if name == "main": args, cfg = parse_args() _2d_path = args.d2path _3d_path = args.d3path d2method=args.d2method d3method=args.d3method input_data = args.inputpath train_ind_path = args.train_indexpath val_ind_path = args.val_indexpath

train_dataset = clocs_data(_2d_path, _3d_path,train_ind_path, input_data, d2method , d3method)
train_dataset.generate_input()

2、是否需要用安装后的OpenPCDet工程中替换如下几个文件,否则报错: /CLOCs_LQS/pcdet/ops/roipoint_pool3d/roipoint_pool3d_cuda.cpython-37m-x86_64-linux-gnu.so…… /CLOCs_LQS/tool/pcdet/ops/roipoint_pool3d/roipoint_pool3d_cuda.cpython-37m-x86_64-linux-gnu.so……

3、我完成以上修改后,运行generate_data.py出现了以下的报错,我要如何继续修改呢: home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/decorators.py:110: NumbaDeprecationWarning: Eager compilation of device functions is deprecated (this occurs when a signature is provided) warn(NumbaDeprecationWarning(msg)) Traceback (most recent call last): File "generate_data.py", line 62, in train_dataset = clocs_data(_2d_path, _3d_path,train_ind_path, input_data, d2method , d3method) File "/home/wenhao/桌面/LQS/CLOCs_LQS/tool/dataset.py", line 28, in init IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices

……………………………………………………………………………………………………………………………………………………………………………………………………

Thank you very much for updating readme, and I've tried to run your great work again. However, there are still some problems that make it impossible to run: 1、In CLOCs_LQS/generate_data.py , should I need to make the following modifications, otherwise an error will be reported? if name == "main": args, cfg = parse_args() _2d_path = args.d2path _3d_path = args.d3path d2method=args.d2method d3method=args.d3method input_data = args.inputpath train_ind_path = args.train_indexpath val_ind_path = args.val_indexpath

train_dataset = clocs_data(_2d_path, _3d_path,train_ind_path, input_data, d2method , d3method)
train_dataset.generate_input()

2、Should I need to replace the following files with the installed OpenPCDet project, otherwise an error will occur: /CLOCs_LQS/pcdet/ops/roipoint_pool3d/roipoint_pool3d_cuda.cpython-37m-x86_64-linux-gnu.so…… /CLOCs_LQS/tool/pcdet/ops/roipoint_pool3d/roipoint_pool3d_cuda.cpython-37m-x86_64-linux-gnu.so……

3、After I have made the above changes, run generate_data.py The following error occurred. How do I proceed with the modification? home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/decorators.py:110: NumbaDeprecationWarning: Eager compilation of device functions is deprecated (this occurs when a signature is provided) warn(NumbaDeprecationWarning(msg)) Traceback (most recent call last): File "generate_data.py", line 62, in train_dataset = clocs_data(_2d_path, _3d_path,train_ind_path, input_data, d2method , d3method) File "/home/wenhao/桌面/LQS/CLOCs_LQS/tool/dataset.py", line 28, in init IndexError: only integers, slices (:), ellipsis (...), numpy.newaxis (None) and integer or boolean arrays are valid indices

Laiqingsi commented 2 years ago

Thanks for your suggestion. The first suggestion is correct, that is a bug. I will fix it soon. About the second point, I suppose it is the compilation problem. (I am not sure) But if you can run it successfully without errors, maybe your solution is right. To be honest, I just upload my OpenPCdet folder for convenience, but it is not a good solution. Thanks for your suggestion. About your third point, I suspect it is the data format problem. You can check if you load the correct file kitti_infos_trainval.pkl. This file is generated by OpenPCdet. Or maybe the format of this file has changed, I finished this project one year ago and I am not sure about the format now. Anyway, the purpose of the error line is trying to record the relation between image id and image index, if the format has changed, you can fix it according the purpose.

1553545365 commented 2 years ago

Thanks for your suggestion. The first suggestion is correct, that is a bug. I will fix it soon. About the second point, I suppose it is the compilation problem. (I am not sure) But if you can run it successfully without errors, maybe your solution is right. To be honest, I just upload my OpenPCdet folder for convenience, but it is not a good solution. Thanks for your suggestion. About your third point, I suspect it is the data format problem. You can check if you load the correct file kitti_infos_trainval.pkl. This file is generated by OpenPCdet. Or maybe the format of this file has changed, I finished this project one year ago and I am not sure about the format now. Anyway, the purpose of the error line is trying to record the relation between image id and image index, if the format has changed, you can fix it according the purpose.

I found four item in kitti_infos_trainval.pkl ,they are point_cloud, image, calib and annos, there is no image_idx. Should I change image_idx to calib or others?

Laiqingsi commented 2 years ago

I found four item in kitti_infos_trainval.pkl ,they are point_cloud, image, calib and annos, there is no image_idx. Should I change image_idx to calib or others?

Does image term contain image_idx? Original code is as below: self.id2ind[self.anno[i]['image']['image_idx']]

1553545365 commented 2 years ago

I found four item in kitti_infos_trainval.pkl ,they are point_cloud, image, calib and annos, there is no image_idx. Should I change image_idx to calib or others?

Does image term contain image_idx? Original code is as below: self.id2ind[self.anno[i]['image']['image_idx']]

I change the coda as follow, I can run generate_data.py now: self.id2ind[int(self.anno[i]['image']['image_idx'])]=i

What's the impact?

Laiqingsi commented 2 years ago

I think it has no influence in results. It was caused by the problem of data type. Your change is correct.

1553545365 commented 2 years ago

I think it has no influence in results. It was caused by the problem of data type. Your change is correct.

There are still something wrong……please help

/LQS/CLOCs_LQS$ python train.py

warn(NumbaDeprecationWarning(msg)) /home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/decorators.py:110: NumbaDeprecationWarning: Eager compilation of device functions is deprecated (this occurs when a signature is provided) warn(NumbaDeprecationWarning(msg)) 0%| | 0/7481 [00:00<?, ?it/s]/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/core/typed_passes.py:332: NumbaPerformanceWarning: The keyword argument 'parallel=True' was specified but no transformation for parallel execution was possible.

To find out why, try turning on parallel diagnostics, see https://numba.pydata.org/numba-doc/latest/user/parallel.html#diagnostics for help.

File "tool/dataset.py", line 185: @numba.jit(nopython=True,parallel=True) def build_stage2_training(boxes, query_boxes, criterion, scores_3d, scores_2d, dis_to_lidar_3d,overlaps,tensor_index): ^

state.func_ir.loc)) 0%| | 1/7481 [00:00<1:13:45, 1.69it/s]/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/core/typed_passes.py:332: NumbaPerformanceWarning: The keyword argument 'parallel=True' was specified but no transformation for parallel execution was possible.

To find out why, try turning on parallel diagnostics, see https://numba.pydata.org/numba-doc/latest/user/parallel.html#diagnostics for help.

File "tool/pcdet/datasets/kitti/kitti_object_eval_python/eval.py", line 122: @numba.jit(nopython=True, parallel=True) def d3_box_overlap_kernel(boxes, qboxes, rinc, criterion=-1): ^

state.func_ir.loc)) 0%| | 2/7481 [00:00<51:49, 2.41it/s]/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: Grid size (1) < 2 * SM count (72) will likely result in GPU under utilization due to low occupancy. warn(NumbaPerformanceWarning(msg)) 3%|█████▊ | 240/7481 [00:05<02:48, 43.07it/s]/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/core/typed_passes.py:332: NumbaPerformanceWarning: The keyword argument 'parallel=True' was specified but no transformation for parallel execution was possible.

To find out why, try turning on parallel diagnostics, see https://numba.pydata.org/numba-doc/latest/user/parallel.html#diagnostics for help.

File "tool/dataset.py", line 185: @numba.jit(nopython=True,parallel=True) def build_stage2_training(boxes, query_boxes, criterion, scores_3d, scores_2d, dis_to_lidar_3d,overlaps,tensor_index): ^

state.func_ir.loc)) /home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/core/typed_passes.py:332: NumbaPerformanceWarning: The keyword argument 'parallel=True' was specified but no transformation for parallel execution was possible.

To find out why, try turning on parallel diagnostics, see https://numba.pydata.org/numba-doc/latest/user/parallel.html#diagnostics for help.

File "tool/pcdet/datasets/kitti/kitti_object_eval_python/eval.py", line 122: @numba.jit(nopython=True, parallel=True) def d3_box_overlap_kernel(boxes, qboxes, rinc, criterion=-1): ^

state.func_ir.loc)) 3%|█████▉ | 245/7481 [00:06<07:47, 15.48it/s]/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/compiler.py:865: NumbaPerformanceWarning: Grid size (1) < 2 SM count (72) will likely result in GPU under utilization due to low occupancy. warn(NumbaPerformanceWarning(msg)) 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 7481/7481 [05:29<00:00, 22.67it/s] 2022-03-14 15:48:17,430 INFO Loading KITTI dataset 2022-03-14 15:48:17,430 INFO Total samples for KITTI dataset: 0 13%|████████████████████████▎ | 495/3712 [00:03<00:22, 145.27it/s]epoch: 0 step: 500 and the cls_loss is : 0.21670599365234375 27%|████████████████████████████████████████████████▋ | 994/3712 [00:06<00:17, 151.59it/s]epoch: 0 step: 1000 and the cls_loss is : 0.15623704528808594 40%|████████████████████████████████████████████████████████████████████████▌ | 1488/3712 [00:10<00:15, 139.57it/s]epoch: 0 step: 1500 and the cls_loss is : 0.1517438507080078 54%|█████████████████████████████████████████████████████████████████████████████████████████████████▍ | 1997/3712 [00:14<00:12, 139.87it/s]epoch: 0 step: 2000 and the cls_loss is : 0.1314781494140625 67%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 2485/3712 [00:18<00:08, 141.68it/s]epoch: 0 step: 2500 and the cls_loss is : 0.12917701721191407 80%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 2986/3712 [00:22<00:05, 131.95it/s]epoch: 0 step: 3000 and the cls_loss is : 0.12945106506347656 94%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 3496/3712 [00:26<00:01, 135.89it/s]epoch: 0 step: 3500 and the cls_loss is : 0.1350100555419922 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3712/3712 [00:27<00:00, 132.74it/s] 2022-03-14 15:48:48,734 INFO ################################# 2022-03-14 15:48:48,735 INFO # EVAL0 2022-03-14 15:48:48,735 INFO ################################# 2022-03-14 15:48:48,736 INFO Generate output labels... 0%| | 0/3769 [00:00<?, ?it/s]/home/wenhao/桌面/LQS/CLOCs_LQS/tool/pcdet/models/model_utils/model_nms_utils.py:23: UserWarning: This overload of nonzero is deprecated: nonzero() Consider using one of the following signatures instead: nonzero(, bool as_tuple) (Triggered internally at /opt/conda/conda-bld/pytorch_1603729006826/work/torch/csrc/utils/python_arg_parser.cpp:882.) original_idxs = scores_mask.nonzero().view(-1) 100%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3769/3769 [01:35<00:00, 39.41it/s] 2022-03-14 15:50:24,384 INFO Generate output done Traceback (most recent call last): File "train.py", line 191, in eval(fusion_layer, val_data, logf, log_path, epoch, cfg, eval_set, logger) File "train.py", line 125, in eval eval_metric=cfg.MODEL.POST_PROCESSING.EVAL_METRIC File "/home/wenhao/桌面/LQS/CLOCs_LQS/pcdet/datasets/kitti/kitti_dataset.py", line 323, in evaluation if 'annos' not in self.kitti_infos[0].keys(): IndexError: list index out of range

1553545365 commented 2 years ago

I think it has no influence in results. It was caused by the problem of data type. Your change is correct.

I think it has no influence in results. It was caused by the problem of data type. Your change is correct.

The above error appears when I run directly python train.py --generate 1 And if I run generate_data.py first, then run python train.py --generate 0, The following error will appead, and I find that dir of ./data/clocs_data/input_data/second_cascade is as same as index/train like 000000 000003 000007 and without 000001 000002 and so on: (openpcdet) wenhao@wenhao-OMEN:~/桌面/LQS/CLOCs_LQS$ python train.py /home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/decorators.py:110: NumbaDeprecationWarning: Eager compilation of device functions is deprecated (this occurs when a signature is provided) warn(NumbaDeprecationWarning(msg)) /home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/decorators.py:110: NumbaDeprecationWarning: Eager compilation of device functions is deprecated (this occurs when a signature is provided) warn(NumbaDeprecationWarning(msg)) /home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/decorators.py:110: NumbaDeprecationWarning: Eager compilation of device functions is deprecated (this occurs when a signature is provided) warn(NumbaDeprecationWarning(msg)) /home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/decorators.py:110: NumbaDeprecationWarning: Eager compilation of device functions is deprecated (this occurs when a signature is provided) warn(NumbaDeprecationWarning(msg)) /home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/decorators.py:110: NumbaDeprecationWarning: Eager compilation of device functions is deprecated (this occurs when a signature is provided) warn(NumbaDeprecationWarning(msg)) /home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/decorators.py:110: NumbaDeprecationWarning: Eager compilation of device functions is deprecated (this occurs when a signature is provided) warn(NumbaDeprecationWarning(msg)) /home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/decorators.py:110: NumbaDeprecationWarning: Eager compilation of device functions is deprecated (this occurs when a signature is provided) warn(NumbaDeprecationWarning(msg)) /home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/decorators.py:110: NumbaDeprecationWarning: Eager compilation of device functions is deprecated (this occurs when a signature is provided) warn(NumbaDeprecationWarning(msg)) /home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/decorators.py:110: NumbaDeprecationWarning: Eager compilation of device functions is deprecated (this occurs when a signature is provided) warn(NumbaDeprecationWarning(msg)) /home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/numba/cuda/decorators.py:110: NumbaDeprecationWarning: Eager compilation of device functions is deprecated (this occurs when a signature is provided) warn(NumbaDeprecationWarning(msg)) 2022-03-14 16:06:12,197 INFO Loading KITTI dataset 2022-03-14 16:06:12,197 INFO Total samples for KITTI dataset: 0 13%|████████████████████████▏ | 494/3712 [00:03<00:27, 117.44it/s]epoch: 0 step: 500 and the cls_loss is : 0.8063049926757813 27%|████████████████████████████████████████████████▋ | 994/3712 [00:07<00:19, 141.26it/s]epoch: 0 step: 1000 and the cls_loss is : 0.13642181396484376 40%|████████████████████████████████████████████████████████████████████████▋ | 1490/3712 [00:11<00:18, 119.86it/s]epoch: 0 step: 1500 and the cls_loss is : 0.10597075653076173 54%|████████████████████████████████████████████████████████████████████████████████████████████████▉ | 1989/3712 [00:14<00:12, 138.33it/s]epoch: 0 step: 2000 and the cls_loss is : 0.13252720642089844 67%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 2488/3712 [00:18<00:08, 140.05it/s]epoch: 0 step: 2500 and the cls_loss is : 0.1375087432861328 81%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 2998/3712 [00:22<00:05, 141.65it/s]epoch: 0 step: 3000 and the cls_loss is : 0.11559945678710938 94%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 3494/3712 [00:26<00:01, 136.63it/s]epoch: 0 step: 3500 and the cls_loss is : 0.11047825622558594 100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 3712/3712 [00:27<00:00, 133.39it/s] 2022-03-14 16:06:42,915 INFO ################################# 2022-03-14 16:06:42,916 INFO # EVAL0 2022-03-14 16:06:42,916 INFO ################################# 2022-03-14 16:06:42,916 INFO Generate output labels... 0%| | 0/3769 [00:00<?, ?it/s] Traceback (most recent call last): File "train.py", line 191, in <module> eval(fusion_layer, val_data, logf, log_path, epoch, cfg, eval_set, logger) File "train.py", line 101, in eval for fusion_input,tensor_index,path in tqdm(val_data): File "/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/tqdm/std.py", line 1180, in __iter__ for obj in iterable: File "/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 435, in __next__ data = self._next_data() File "/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 1085, in _next_data return self._process_data(data) File "/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/torch/utils/data/dataloader.py", line 1111, in _process_data data.reraise() File "/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/torch/_utils.py", line 428, in reraise raise self.exc_type(msg) FileNotFoundError: Caught FileNotFoundError in DataLoader worker process 0. Original Traceback (most recent call last): File "/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/torch/utils/data/_utils/worker.py", line 198, in _worker_loop data = fetcher.fetch(index) File "/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/torch/utils/data/_utils/fetch.py", line 44, in <listcomp> data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/wenhao/桌面/LQS/CLOCs_LQS/tool/dataset.py", line 161, in __getitem__ all_data = torch.load(self.input_data+'/'+idx+'.pt') File "/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/torch/serialization.py", line 581, in load with _open_file_like(f, 'rb') as opened_file: File "/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/torch/serialization.py", line 230, in _open_file_like return _open_file(name_or_buffer, mode) File "/home/wenhao/anaconda3/envs/openpcdet/lib/python3.7/site-packages/torch/serialization.py", line 211, in __init__ super(_open_file, self).__init__(open(name, mode)) FileNotFoundError: [Errno 2] No such file or directory: './data/clocs_data/input_data/second_cascade/000001.pt'