nv-tlabs / ATISS

Code for "ATISS: Autoregressive Transformers for Indoor Scene Synthesis", NeurIPS 2021
Other
258 stars 55 forks source link

Dataset filtering: Only bedroom works #29

Closed kkkkkkkkkkkkkkkin closed 1 year ago

kkkkkkkkkkkkkkkin commented 1 year ago

The error I got:

Traceback (most recent call last):
  File "./scripts/preprocess_data.py", line 272, in <module>
    main(sys.argv[1:])
  File "./scripts/preprocess_data.py", line 153, in main
    dataset = ThreedFront.from_dataset_directory(
  File "c:\users\mibig\desktop\atiss\scene_synthesis\datasets\threed_front.py", line 189, in from_dataset_directory
    return cls([s for s in map(filter_fn, scenes) if s], bounds)
  File "c:\users\mibig\desktop\atiss\scene_synthesis\datasets\threed_front.py", line 34, in __init__
    super().__init__(scenes)
  File "c:\users\mibig\desktop\atiss\scene_synthesis\datasets\common.py", line 52, in __init__
    assert len(scenes) > 0
AssertionError

I have ran the preprocess_data.py script according to GitHub instructions.

When I ran every filtering aside from bedroom, printing scenes out in threed_front.py and common.py returns an empty list [].

For the bedroom filtering, the console is able to print out a list of objects. For example: (From threed_front.py) [<scene_synthesis.datasets.threed_front_scene.Room object at 0x000001667FE651C0>, <scene_synthesis.datasets.threed_front_scene.Room object at 0x000001667FE96C10>] (From common.py) [<scene_synthesis.datasets.threed_front_scene.Room object at 0x000001667FE651C0>, <scene_synthesis.datasets.threed_front_scene.Room object at 0x000001667FE96C10>]

Does anyone have any idea on what causes this, or could fixed this problem? Thank you.

BoMicha commented 1 year ago

Hi @kkkkkkkkkkkkkkkin

I ran into the same problem. In my case I had to add the --annotation_file with the correct path to the config file. The default config file is set to the bedroom config file, which explains why it only fails for other room types.

The command in my case looks something like this: python preprocess_data.py ../../datasets/3D_FRONT_processed/livingrooms/ ../../datasets/3D-FRONT/ ../../datasets/3D-FUTURE-model/ ../../datasets/3D-FUTURE-model/model_info.json ../demo/floor_plan_texture_images/ --dataset_filtering threed_front_livingroom --annotation_file ../config/livingroom_threed_front_splits.csv --room_side 6.2

Hope this helps.

ch3cook-fdu commented 1 year ago

I'm curious about the dataset pre-processing outputs. Is a total output of 4041 bedrooms and 813 livingrooms normal?

lemon-prog123 commented 1 year ago

Hi @kkkkkkkkkkkkkkkin

I ran into the same problem. In my case I had to add the --annotation_file with the correct path to the config file. The default config file is set to the bedroom config file, which explains why it only fails for other room types.

The command in my case looks something like this: python preprocess_data.py ../../datasets/3D_FRONT_processed/livingrooms/ ../../datasets/3D-FRONT/ ../../datasets/3D-FUTURE-model/ ../../datasets/3D-FUTURE-model/model_info.json ../demo/floor_plan_texture_images/ --dataset_filtering threed_front_livingroom --annotation_file ../config/livingroom_threed_front_splits.csv --room_side 6.2

Hope this helps.

Good!