Skip to content

[Bug] nuscenes create_dataset FileNotFoundError  #3068

Open
@1ofoo

Description

@1ofoo

Prerequisite

Task

I'm using the official example scripts/configs for the officially supported tasks/models/datasets.

Branch

main branch https://github.com/open-mmlab/mmdetection3d

Environment

sys.platform: linux
Python: 3.11.11 (main, Dec 4 2024, 08:55:08) [GCC 9.4.0]
CUDA available: True
MUSA available: False
numpy_random_seed: 2147483648
GPU 0: NVIDIA A100 80GB PCIe
CUDA_HOME: /usr/local/cuda
NVCC: Cuda compilation tools, release 11.8, V11.8.89
GCC: x86_64-linux-gnu-gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
PyTorch: 2.1.2+cu121
PyTorch compiling details: PyTorch built with:

  • GCC 9.3
  • C++ Version: 201703
  • Intel(R) oneAPI Math Kernel Library Version 2022.2-Product Build 20220804 for Intel(R) 64 architecture applications
  • Intel(R) MKL-DNN v3.1.1 (Git Hash 64f6bcbcbab628e96f33a62c3e975f8535a7bde4)
  • OpenMP 201511 (a.k.a. OpenMP 4.5)
  • LAPACK is enabled (usually provided by MKL)
  • NNPACK is enabled
  • CPU capability usage: AVX2
  • CUDA Runtime 12.1
  • NVCC architecture flags: -gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86;-gencode;arch=compute_90,code=sm_90
  • CuDNN 8.9.2
  • Magma 2.6.1
  • Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=12.1, CUDNN_VERSION=8.9.2, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -D_GLIBCXX_USE_CXX11_ABI=0 -fabi-version=11 -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -DNDEBUG -DUSE_KINETO -DLIBKINETO_NOROCTRACER -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -O2 -fPIC -Wall -Wextra -Werror=return-type -Werror=non-virtual-dtor -Werror=bool-operation -Wnarrowing -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-strict-overflow -Wno-strict-aliasing -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=old-style-cast -Wno-invalid-partial-specialization -Wno-unused-private-field -Wno-aligned-allocation-unavailable -Wno-missing-braces -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Werror=cast-function-type -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_DISABLE_GPU_ASSERTS=ON, TORCH_VERSION=2.1.2, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=ON, USE_MPI=OFF, USE_NCCL=1, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF,

TorchVision: 0.16.2+cu121
OpenCV: 4.10.0
MMEngine: 0.10.5
MMDetection: 3.3.0
MMDetection3D: 1.4.0+58c86eb
spconv2.0: False

Reproduces the problem - code sample

When I run the following command to execute create_data for NuScenes, an error occurs:
python tools/create_data.py nuscenes --root-path=./path/to/nuscenes --out-dir=./path/to/infos --extra-tag=nuscenes

Reproduces the problem - command or script

Ditto

Reproduces the problem - error message

path/to/infos/nuscenes_infos_train.pkl will be modified.
Warning, you may overwriting the original data path/to/infos/nuscenes_infos_train.pkl.
Reading from input file: path/to/infos/nuscenes_infos_train.pkl.
Traceback (most recent call last):
File "/work/mmdetection3d/tools/create_data.py", line 345, in
nuscenes_data_prep(
File "/work/mmdetection3d/tools/create_data.py", line 86, in nuscenes_data_prep
update_pkl_infos('nuscenes', out_dir=out_dir, pkl_path=info_train_path)
File "/work/mmdetection3d/tools/dataset_converters/update_infos_to_v2.py", line 1148, in update_pkl_infos
update_nuscenes_infos(pkl_path=pkl_path, out_dir=out_dir)
File "/work/mmdetection3d/tools/dataset_converters/update_infos_to_v2.py", line 263, in update_nuscenes_infos
data_list = mmengine.load(pkl_path)
^^^^^^^^^^^^^^^^^^^^^^^
File "/work/.venv/lib/python3.11/site-packages/mmengine/fileio/io.py", line 855, in load
with BytesIO(file_backend.get(file)) as f:
^^^^^^^^^^^^^^^^^^^^^^
File "/work/.venv/lib/python3.11/site-packages/mmengine/fileio/backends/local_backend.py", line 33, in get
with open(filepath, 'rb') as f:
^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'path/to/infos/nuscenes_infos_train.pkl'

Additional information

Cause: In the following code, the program attempts to load the .pkl files from directly under args.out_dir, but these .pkl files are actually generated under args.root_path. As a result, an error occurs because the .pkl files cannot be found.

info_path = osp.join(root_path,
'{}_infos_train.pkl'.format(info_prefix))
mmengine.dump(data, info_path)
data['infos'] = val_nusc_infos
info_val_path = osp.join(root_path,
'{}_infos_val.pkl'.format(info_prefix))
mmengine.dump(data, info_val_path)

Solution: Pass args.out_dir as an argument to def create_nuscenes_infos to ensure consistency in the save location.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions