sustech-isus / suscape-devkit

Other
4 stars 1 forks source link

ImportError: cannot import name 'Dataset' from 'suscape.dataset' #1

Open ClaudiaCumberbatch opened 10 months ago

ClaudiaCumberbatch commented 10 months ago

In tests/demo.ipynb, the first line of code is

from suscape.dataset import Dataset

However, after using pip install suscape-devkit to download the package, I run this import command, yet get error msg

Traceback (most recent call last):
  File "my_dir/test.py", line 1, in <module>
    from suscape.dataset import Dataset
ImportError: cannot import name 'Dataset' from 'suscape.dataset' (my_env_dir/lib/python3.10/site-packages/suscape/dataset/__init__.py)

SuscapeDataset can be import successfully, but

AttributeError: 'SuscapeDataset' object has no attribute 'render'
naurril commented 10 months ago

hi, we removed suscape.dataset.Dataset export because it depends on some visualization libs which are not necessary if the user just needs to read the dataset. we planned to separate the visualization part from the io operations but have not finished it yet. If you need to use it you can add a line in src/suscape/dataset/__init__.py

from .suscape_dataset import SuscapeDataset
from .dataset import Dataset  # add this line

and then resintall

pip uninstall suscape-devkit
pip install -e .

and install missing libs such as mayavi if needed

ClaudiaCumberbatch commented 10 months ago

hi, thanks for your reply, but I met another problem.

I wrote a test python file by myself, which is

# test.py
from suscape.dataset import Dataset
dataset = Dataset("../camera")
# print(len(dataset.get_scene_names()), 'scenes')
# 可见光相机数据读取及可视化
dataset.render(scene_name="scene-000040",
                   file_prefixname="1630376256.000",
                   render_type="",
                   sensor_name="camera_front",
                   save=True,
                   with_radar=True
                   )

After I run this script, I got

Traceback (most recent call last):
  File "my_dir/test/test.py", line 5, in <module>
    dataset.render(scene_name="scene-000040",
  File "my_dir/suscape-devkit/src/suscape/dataset/dataset.py", line 268, in render
    img = self.draw_box_in_image(scene_name,file_prefixname,sensor_name)
  File "my_dir/suscape-devkit/src/suscape/dataset/dataset.py", line 107, in draw_box_in_image
    calib = Calibration(sensor_calib_path)
  File "my_dir/suscape-devkit/src/suscape/utils/calibration.py", line 21, in __init__
    self.sensor_list = get_name_list(calib_path)
  File "my_dir/suscape-devkit/src/suscape/utils/common_utils.py", line 98, in get_name_list
    assert os.path.exists(whole_path), 'THE PATH DOES NOT EXIST.PLEASE CHECK!'
AssertionError: THE PATH DOES NOT EXIST.PLEASE CHECK!

I tried to print this whole_path, and I got ../camera/scene-000040/calib. Would you plz tell me what is this calibe file?

This is my file structure.

.
├── camera
│   ├── scene-000040
│   │   └── camera
│   │       ├── front
│   │       │   ├── 1630376256.000.jpg
│   │       │   ├── 1630376256.500.jpg
...
│   │       ├── front_left
│   │       │   ├── 1630376256.000.jpg
│   │       │   ├── 1630376256.500.jpg
...
│   │       ├── front_right
│   │       │   ├── 1630376256.000.jpg
│   │       │   ├── 1630376256.500.jpg
...
│   │       ├── rear
│   │       │   ├── 1630376256.000.jpg
│   │       │   ├── 1630376256.500.jpg
...
│   │       ├── rear_left
│   │       │   ├── 1630376256.000.jpg
│   │       │   ├── 1630376256.500.jpg
...
│   │       └── rear_right
│   │           ├── 1630376256.000.jpg
│   │           ├── 1630376256.500.jpg
...
│   └── scene-000080
│       └── camera
│           ├── front
│           │   ├── 1630379684.000.jpg
│           │   ├── 1630379684.500.jpg
...
│           ├── front_left
│           │   ├── 1630379684.000.jpg
│           │   ├── 1630379684.500.jpg
...
│           ├── front_right
│           │   ├── 1630379684.000.jpg
│           │   ├── 1630379684.500.jpg
...
│           ├── rear
│           │   ├── 1630379684.000.jpg
│           │   ├── 1630379684.500.jpg
...
│           ├── rear_left
│           │   ├── 1630379684.000.jpg
│           │   ├── 1630379684.500.jpg
...
│           └── rear_right
│               ├── 1630379684.000.jpg
│               ├── 1630379684.500.jpg
...
├── label
│   ├── scene-000040
│   │   └── label
│   │       ├── 1630376256.000.json
│   │       ├── 1630376256.500.json
...
│   └── scene-000080
│       └── label
│           ├── 1630379684.000.json
│           ├── 1630379684.500.json
...
├── suscape-devkit
│   ├── LICENSE
│   ├── pyproject.toml
│   ├── README.md
│   ├── src
│   │   ├── suscape
│   │   │   ├── data
│   │   │   │   ├── box.py
│   │   │   │   ├── ego_pose.py
│   │   │   │   ├── __init__.py
│   │   │   │   ├── lidar_pointcloud.py
│   │   │   │   ├── __pycache__
│   │   │   │   │   ├── box.cpython-310.pyc
│   │   │   │   │   ├── ego_pose.cpython-310.pyc
│   │   │   │   │   ├── __init__.cpython-310.pyc
│   │   │   │   │   ├── lidar_pointcloud.cpython-310.pyc
│   │   │   │   │   └── radar.cpython-310.pyc
│   │   │   │   └── radar.py
│   │   │   ├── dataset
│   │   │   │   ├── bin_pcd_reader.py
│   │   │   │   ├── dataset.py
│   │   │   │   ├── __init__.py
│   │   │   │   ├── __pycache__
│   │   │   │   │   ├── bin_pcd_reader.cpython-310.pyc
│   │   │   │   │   ├── dataset.cpython-310.pyc
│   │   │   │   │   ├── __init__.cpython-310.pyc
│   │   │   │   │   └── suscape_dataset.cpython-310.pyc
│   │   │   │   └── suscape_dataset.py
│   │   │   ├── eval
│   │   │   │   ├── detection_2d
│   │   │   │   │   ├── det_eval_2d_util.py
│   │   │   │   │   ├── evaluate_2d.py
│   │   │   │   │   └── __init__.py
│   │   │   │   ├── detection_3d
│   │   │   │   │   ├── accumulate.py
│   │   │   │   │   ├── evaluate_3d.py
│   │   │   │   │   ├── evaluate.py
│   │   │   │   │   ├── get_iou.py
│   │   │   │   │   ├── __init__.py
│   │   │   │   │   └── utils.py
│   │   │   │   ├── __init__.py
│   │   │   │   └── segmentation
│   │   │   │       ├── eval_seg.py
│   │   │   │       ├── __init__.py
│   │   │   │       └── seg_utils.py
│   │   │   ├── tools
│   │   │   │   ├── gen_semantic_png.py
│   │   │   │   ├── __init__.py
│   │   │   │   └── sus3d_to_kitti
│   │   │   │       ├── __init__.py
│   │   │   │       ├── kitti_package
│   │   │   │       │   ├── __init__.py
│   │   │   │       │   ├── kitti_calibration.py
│   │   │   │       │   └── kitti_util.py
│   │   │   │       └── sus2kitti.py
│   │   │   └── utils
│   │   │       ├── calibration.py
│   │   │       ├── common_utils.py
│   │   │       ├── draw_gt.py
│   │   │       ├── __init__.py
│   │   │       ├── obj_color.py
│   │   │       ├── parse_pcd.py
│   │   │       └── __pycache__
│   │   │           ├── calibration.cpython-310.pyc
│   │   │           ├── common_utils.cpython-310.pyc
│   │   │           ├── draw_gt.cpython-310.pyc
│   │   │           ├── __init__.cpython-310.pyc
│   │   │           ├── obj_color.cpython-310.pyc
│   │   │           └── parse_pcd.cpython-310.pyc
│   │   └── suscape_devkit.egg-info
│   │       ├── dependency_links.txt
│   │       ├── PKG-INFO
│   │       ├── SOURCES.txt
│   │       └── top_level.txt
│   └── tests
│       ├── demo.ipynb
│       ├── metric_test
│       │   └── 3d
│       │       └── res.json
│       └── test_eval3d.py
├── test
│   └── test.py