Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to Obtain the 'good_objs' List or Filtering Code for Objaverse Dataset #165

Open
joeybchen opened this issue Oct 16, 2024 · 1 comment

Comments

@joeybchen
Copy link

Hi,

First of all, thank you for your incredible work on this project! I am working on training the LRM model, but I am having some trouble with the dataset filtering process mentioned in the code.

In src.data.objaverse, you define the ObjaverseData class, which uses a JSON file (valid_paths.json) containing a list of 'good_objs':

class ObjaverseData(Dataset):
    def __init__(self,
        root_dir='objaverse/',
        meta_fname='valid_paths.json',
        input_image_dir='rendering_random_32views',
        target_image_dir='rendering_random_32views',
        input_view_num=6,
        target_view_num=4,
        total_view_n=32,
        fov=50,
        camera_rotation=True,
        validation=False,
    ):
        self.root_dir = Path(root_dir)
        self.input_image_dir = input_image_dir
        self.target_image_dir = target_image_dir

        self.input_view_num = input_view_num
        self.target_view_num = target_view_num
        self.total_view_n = total_view_n
        self.fov = fov
        self.camera_rotation = camera_rotation

        with open(os.path.join(root_dir, meta_fname)) as f:
            filtered_dict = json.load(f)
        paths = filtered_dict['good_objs']
        self.paths = paths
        
        self.depth_scale = 6.0
            
        total_objects = len(self.paths)
        print('============= length of dataset %d =============' % len(self.paths))

Would it be possible for you to either:

  • Share the valid_paths.json file (or just the 'good_objs' list)?
  • Or, provide the code you used to generate this list based on the filtering criteria mentioned in the paper?

I am aware of the filtering goals described in the paper (sec 3.2), which include:
"""
The filtering goal is to remove objects that satisfy any of the following criteria: (i) objects without texture maps, (ii) objects with rendered images occupying less than 10% of the view from any angle, (iii) including multiple separate objects, (iv) objects with no caption information provided by the Cap3D dataset, and (v) low-quality objects.
"""
However, I am unsure how to translate these criteria into the correct filtering logic for generating the 'good_objs' list. Any guidance or clarification would be greatly appreciated!

Thank you so much for your help!

@mohamed2020m
Copy link

mohamed2020m commented Nov 16, 2024

Hi there! did you find anything?
How about the rendering_random_32views too?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants