Owen-Liuyuxuan / visualDet3D

Official Repo for Ground-aware Monocular 3D Object Detection for Autonomous Driving / YOLOStereo3D: A Step Back to 2D for Efficient Stereo 3D Detection
https://owen-liuyuxuan.github.io/papers_reading_sharing.github.io/3dDetection/GroundAwareConvultion/
Apache License 2.0
361 stars 76 forks source link

运行./launchers/det_precompute.sh config/Stereo3D.py train时报错 #77

Closed shuishui616 closed 1 year ago

shuishui616 commented 1 year ago

Precomputation for the training/validation split Traceback (most recent call last): File "scripts/imdb_precompute_3d.py", line 213, in Fire(main) File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/fire/core.py", line 141, in Fire component_trace = _Fire(component, args, parsed_flag_args, context, name) File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/fire/core.py", line 475, in _Fire component, remaining_args = _CallAndUpdateTrace( File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/fire/core.py", line 691, in _CallAndUpdateTrace component = fn(*varargs, **kwargs) File "scripts/imdb_precompute_3d.py", line 183, in main cfg = cfg_from_file(config) File "/home/ubuntu/WANG/visualDet3D/visualDet3D/utils/utils.py", line 146, in cfg_from_file cfg = getattr(importlib.import_module(temp_module_name), 'cfg') File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/importlib/init.py", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "", line 1014, in _gcd_import File "", line 991, in _find_and_load File "", line 975, in _find_and_load_unlocked File "", line 671, in _load_unlocked File "", line 843, in exec_module File "", line 219, in _call_with_frames_removed File "/tmp/tmp8gpg4pi5/tmp50fxx1ht.py", line 29, in FileNotFoundError: [Errno 2] No such file or directory: '/path/to/visualDet3D/workdirs' Exception ignored in: <function _TemporaryFileCloser.del at 0x7ff30cf534c0> Traceback (most recent call last): File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/tempfile.py", line 440, in del self.close() File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/tempfile.py", line 436, in close unlink(self.name) FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tmp8gpg4pi5/tmp50fxx1ht.py'

Owen-Liuyuxuan commented 1 year ago

This error usually occurs when the imported config file causes an error. This exception will cause the temp file to be cleaned up in advance.

To debug this problem, directly run

python3 config/Stereo3D.py

to identify the error caused by this config file.

shuishui616 commented 1 year ago

1、运行 python3 config/Stereo3D.py 报错, Traceback (most recent call last): File "config/Stereo3D.py", line 29, in os.mkdir(path.project_path) FileNotFoundError: [Errno 2] No such file or directory: '/path/to/visualDet3D/workdirs'

2、可能是我的路径没有改对。按照自己的理解,做成以下这样,麻烦您看下是否有误!谢谢~

这是README中的一段: important paths to modify in config :

  1. cfg.path.data_path: Path to KITTI training data. We expect calib, image_2, image_3, label_2 being the subfolder (directly unzipping the downloaded zips will be fine)
  2. cfg.path.test_path: Path to KITTI testing data. We expect calib, image_2 being the subfolder.
  3. cfg.path.visualDet3D_path: Path to the "visualDet3D" directorty of the current repo
  4. cfg.path.project_path: Path to the workdirs of the projects (will have temp_outputs, log, checkpoints)

首先,执行以下命令, cd config cp Stereo3D_example Stereo3D.py 在执行nano $CONFIG_FILE.py时,没有改动路径(完全按照文件上的路径)。路径代码如下:

path

path = edict() path.data_path = "/data/kitti_obj/training" # used in visualDet3D/data/.../dataset path.test_path = "/data/kitti_obj/testing" # used in visualDet3D/data/.../dataset path.visualDet3D_path = "/path/to/visualDet3D/visualDet3D" # The path should point to the inner subfolder path.project_path = "/path/to/visualDet3D/workdirs" # or other path for pickle files, checkpoints, tensorboard logging and output files. if not os.path.isdir(path.project_path): os.mkdir(path.project_path) path.project_path = os.path.join(path.project_path, 'Stereo3D') if not os.path.isdir(path.project_path): os.mkdir(path.project_path)

KITTI数据集放在visualDet3D/visualDet3D/data/kitti_obj/training和visualDet3D/visualDet3D/data/kitti_obj/testing下,在training和testing文件夹下,执行unzip指令后,又分别生成training和testing2个文件夹。界面如下: 0b81b1c32bd3741536bc9b1b58f267b4

然后,执行cd ..和./launcher/det_precompute.sh config/Stereo3D.py train命令后,报错。(报错和上面一样)

Owen-Liuyuxuan commented 1 year ago

与document里面描述的一致,你需要修改cfg里面的path。 修改为你数据以及本repo的绝对路径。

kitti数据不需要放在本repo里面,你只需要把repo放在能访问的路径上,然后 cfg.path.data_path / cfg.path.test_path 指向这数据的绝对路径就可以了。

实验数据文件夹的构建都是基于cfg里面的文件路径名字的,所以你需要把路径改为代码在你电脑上的实际存放路径。否则就会尝试在 /path/to/visualDet3D这样的位置存储数据(但是显然不存在没有这样的实际路径)

shuishui616 commented 1 year ago

谢谢解答!已经成功解决问题啦~ 现在出现了新的问题,麻烦您解答以下~ 1../disparity_precompute.sh config/$CONFIG_FILE.py $IsUsingPointCloud 这条指令,当输入./disparity_precompute.sh config/Stereo3D.py IsUsingPointCloud时,报错如下:(我不太理解$IsUsingPointCloud的含义) start reading training data 0it [00:00, ?it/s] Traceback (most recent call last): File "scripts/disparity_compute.py", line 149, in Fire(main) File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/fire/core.py", line 141, in Fire component_trace = _Fire(component, args, parsed_flag_args, context, name) File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/fire/core.py", line 475, in _Fire component, remaining_args = _CallAndUpdateTrace( File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/fire/core.py", line 691, in _CallAndUpdateTrace component = fn(*varargs, *kwargs) File "scripts/disparity_compute.py", line 144, in main compute_dispairity_for_split(cfg, train_names, data_root_dir, output_dict, 'training', time_display_inter, use_point_cloud) File "scripts/disparity_compute.py", line 81, in compute_dispairity_for_split calib, image, right_image, label, velo = data_frame.read_data() File "/home/ubuntu/WANG/visualDet3D/visualDet3D/data/kitti/kittidata.py", line 245, in read_data pc = read_pc_from_bin(self.velodyne_path) if self.output_dict["velodyne"] else None File "/home/ubuntu/WANG/visualDet3D/visualDet3D/data/kitti/utils.py", line 11, in read_pc_from_bin p = np.fromfile(bin_path, dtype=np.float32).reshape(-1, 4) FileNotFoundError: [Errno 2] No such file or directory: '../../WANG/object/training/velodyne/000000.bin' 2.运行./launchers/train.sh config/Stereo3D.py 0 Stereo3D时,报错如下:(我不太理解0的含义,这个指的什么呢?) Nnumber of GPUs being 1, will directly launch: python3 train --experiment_name=Stereo3D clean up the recorder directory of ../../WANG/visualDet3D/workdirs/Stereo3D/log/Stereo3Dconfig=config/Stereo3D.py 2023-01-23 15:04:55.724180: I tensorflow/core/platform/cpu_feature_guard.cc:193] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN) to use the following CPU instructions in performance-critical operations: AVX2 FMA To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags. 2023-01-23 15:04:56.244247: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/cv2/../../lib64: 2023-01-23 15:04:56.244297: W tensorflow/compiler/xla/stream_executor/platform/default/dso_loader.cc:64] Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7: cannot open shared object file: No such file or directory; LD_LIBRARY_PATH: /home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/cv2/../../lib64: 2023-01-23 15:04:56.244305: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Cannot dlopen some TensorRT libraries. If you would like to use Nvidia GPU with TensorRT, please make sure the missing libraries mentioned above are installed properly. -1 number of trained parameters of the model: 107577232 Found evaluate function evaluate_kittiobj Num training images: 7397 [ WARN:0@5.331] global loadsave.cpp:244 findDecoder imread('../../WANG/visualDet3D/workdirs/Stereo3D/output/training/disp/P2005108.png'): can't open/read file: check file path/integrity [ WARN:0@5.331] global loadsave.cpp:244 findDecoder imread('../../WANG/visualDet3D/workdirs/Stereo3D/output/training/disp/P2000540.png'): can't open/read file: check file path/integrity [ WARN:0@5.331] global loadsave.cpp:244 findDecoder imread('../../WANG/visualDet3D/workdirs/Stereo3D/output/training/disp/P2005733.png'): can't open/read file: check file path/integrity Traceback (most recent call last): File "scripts/train.py", line 199, in Fire(main) File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/fire/core.py", line 141, in Fire component_trace = _Fire(component, args, parsed_flag_args, context, name) File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/fire/core.py", line 475, in _Fire component, remaining_args = _CallAndUpdateTrace( File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/fire/core.py", line 691, in _CallAndUpdateTrace component = fn(varargs, **kwargs) File "scripts/train.py", line 149, in main for iter_num, data in enumerate(dataloader_train): File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 517, in next data = self._next_data() File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1199, in _next_data return self._process_data(data) File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 1225, in _process_data data.reraise() File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/torch/_utils.py", line 429, in reraise raise self.exc_type(msg) TypeError: Caught TypeError in DataLoader worker process 0. Original Traceback (most recent call last): File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/torch/utils/data/_utils/worker.py", line 202, in _worker_loop data = fetcher.fetch(index) File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in fetch data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/ubuntu/miniconda3/envs/yolo3d/lib/python3.8/site-packages/torch/utils/data/_utils/fetch.py", line 44, in data = [self.dataset[idx] for idx in possibly_batched_index] File "/home/ubuntu/WANG/visualDet3D/visualDet3D/data/kitti/dataset/stereo_dataset.py", line 121, in getitem disparity = disparity / 16.0 TypeError: unsupported operand type(s) for /: 'NoneType' and 'float'

shuishui616 commented 1 year ago

I have solved it successfully.Thank you!