batch render multiple meshes
(
dataset_name: str, # 'sketchfab-small', 'tex-models', 'shapenet', 'sketchfab-small-debug'
config_dict: T.Dict[str, T.Any],
)
| 1671 | |
| 1672 | |
| 1673 | def batch_render_mesh( |
| 1674 | dataset_name: str, # 'sketchfab-small', 'tex-models', 'shapenet', 'sketchfab-small-debug' |
| 1675 | config_dict: T.Dict[str, T.Any], |
| 1676 | ): |
| 1677 | """ |
| 1678 | batch render multiple meshes |
| 1679 | """ |
| 1680 | mesh_filename_dict: T.Dict[str, T.Any] = dataset_helper.get_dataset_mesh_filename_config() |
| 1681 | |
| 1682 | # download dataset |
| 1683 | dataset_filename_dict = mesh_filename_dict[dataset_name] |
| 1684 | filename_dict = dataset_helper.gather_and_clean_dataset( |
| 1685 | dataset_name=dataset_name, |
| 1686 | dataset_root_dir=dataset_filename_dict['dataset_root_dir'], |
| 1687 | cleaned_root_dir=dataset_filename_dict.get('cleaned_root_dir', None), |
| 1688 | clean_mesh=dataset_filename_dict.get('clean_mesh', False), |
| 1689 | train_mesh_filenames=dataset_filename_dict['train'], |
| 1690 | test_mesh_filenames=dataset_filename_dict.get('test', None), |
| 1691 | rank=0, |
| 1692 | world_size=1, |
| 1693 | printout=True, |
| 1694 | ) |
| 1695 | mesh_filenames = filename_dict['test_mesh_filenames'] |
| 1696 | |
| 1697 | print('mesh filenames:') |
| 1698 | for name in mesh_filenames: |
| 1699 | print(f' {name}') |
| 1700 | assert os.path.exists(name) |
| 1701 | |
| 1702 | output_dir_root = config_dict.get('output_dir', 'batch_output') |
| 1703 | metric_dicts = [] |
| 1704 | for i, mesh_filename in enumerate(mesh_filenames): |
| 1705 | config_dict['mesh_filename'] = mesh_filename |
| 1706 | dir_name = mesh_filename.replace('/', '_') |
| 1707 | config_dict['output_dir'] = os.path.join( |
| 1708 | output_dir_root, |
| 1709 | dir_name, |
| 1710 | ) |
| 1711 | print(f"Rendering {config_dict['mesh_filename']}") |
| 1712 | print(f" output_dir: {config_dict['output_dir']}") |
| 1713 | stime = timer() |
| 1714 | metric_dict = render_mesh(**config_dict) |
| 1715 | print(f"Finished {config_dict['mesh_filename']}") |
| 1716 | print(f" total used: {(timer() - stime) / 60.:.3f} mins") |
| 1717 | |
| 1718 | metric_dicts.append(metric_dict) |
| 1719 | |
| 1720 | if len(metric_dicts) == 0: |
| 1721 | return |
| 1722 | |
| 1723 | # compile general statistics |
| 1724 | # metric_dict: |
| 1725 | # rgb_err_dicts: |
| 1726 | # model_name: |
| 1727 | # metric_name: |
| 1728 | # list of vals |
| 1729 | # depth_err_dicts: |
| 1730 | # normal_err_dicts: |
no test coverage detected