megvii-research / PETR

[ECCV2022] PETR: Position Embedding Transformation for Multi-View 3D Object Detection & [ICCV2023] PETRv2: A Unified Framework for 3D Perception from Multi-Camera Images
Other
857 stars 133 forks source link

TypeError: 'MultiPolygon' object is not iterable #56

Open BestBUCKY opened 2 years ago

BestBUCKY commented 2 years ago

when i create Seg data,this issuse arised, what should i do?

Loading NuScenes tables for version v1.0-trainval... 23 category, 8 attribute, 4 visibility, 64386 instance, 12 sensor, 10200 calibrated_sensor, 2631083 ego_pose, 68 log, 850 scene, 34149 sample, 2631083 sample_data, 1166187 sample_annotation, 4 map, Done loading in 78.575 seconds.

Reverse indexing ... Done reverse indexing in 4.9 seconds.

total scene num: 850 exist scene num: 850 train scene: 700, val scene: 150 [ ] 0/34149, elapsed: 0s, ETA:/home/djy/anaconda3/envs/petr/lib/python3.8/site-packages/shapely-2.0a1-py3.8-linux-x86_64.egg/shapely/set_operations.py:132: RuntimeWarning: invalid value encountered in intersection return lib.intersection(a, b, **kwargs) Traceback (most recent call last): File "build-dataset.py", line 7, in create_nuscenes_infos( '../data/Dataset/nuScenes/','HDmaps-nocovers') File "/media/djy/H/PETR/tools/data_converter/nuscenes_converter_seg.py", line 99, in create_nuscenes_infos train_nusc_infos, val_nusc_infos = _fill_trainval_infos( File "/media/djy/H/PETR/tools/data_converter/nuscenes_converter_seg.py", line 259, in _fill_trainval_infos info['maps'] = obtain_map_info(nusc, nusc_maps, sample, l2e_r_mat, l2e_t, File "/media/djy/H/PETR/tools/data_converter/nuscenes_converter_seg.py", line 747, in obtain_map_info erode=nusc_map.get_map_mask(patch_box, patch_angle, ['drivable_area'], canvas_size=canvas_size) File "/media/djy/H/PETR/tools/data_converter/map_api.py", line 428, in get_map_mask return self.explorer.get_map_mask(patch_box, patch_angle, layer_names=layer_names, canvas_size=canvas_size) File "/media/djy/H/PETR/tools/data_converter/map_api.py", line 906, in get_map_mask map_mask = self.map_geom_to_mask(map_geom, local_box, canvas_size) File "/media/djy/H/PETR/tools/data_converter/map_api.py", line 855, in map_geom_to_mask layer_mask = self._layer_geom_to_mask(layer_name, layer_geom, local_box, canvas_size) File "/media/djy/H/PETR/tools/data_converter/map_api.py", line 2077, in _layer_geom_to_mask return self._polygon_geom_to_mask(layer_geom, local_box, layer_name, canvas_size) File "/media/djy/H/PETR/tools/data_converter/map_api.py", line 2173, in _polygon_geom_to_mask map_mask = self.mask_for_polygons(new_polygon, map_mask) File "/media/djy/H/PETR/tools/data_converter/map_api.py", line 2097, in mask_for_polygons exteriors = [int_coords(poly.exterior.coords) for poly in polygons] TypeError: 'MultiPolygon' object is not iterable

wwf1995 commented 1 year ago

I have the same problem, do you have a solution yet?

Isaac-xie commented 1 year ago

I have the same problem, do you have a solution yet?

xiaocongcsu commented 1 year ago

I reinstall python 3.6.8 fix this issue.

AcNoggano commented 1 year ago

This may be a problem with the shapely package, which needs to be installed < 2.0. image https://shapely.readthedocs.io/en/stable/migration.html?highlight=MultiPolygon#multi-part-geometries-will-no-longer-be-sequences-length-iterable-indexable