def main(_): from shapenet.core import to_cat_id from shapenet.core.renderings.renderings_manager import get_base_manager from shapenet.core.frustrum_voxels import create_frustrum_voxels from shapenet.core.frustrum_voxels import create_temp_frustrum_voxels from shapenet.core.voxels.config import get_config if FLAGS.src_voxel_dim is None: FLAGS.src_voxel_dim = FLAGS.voxel_dim voxel_config = get_config( FLAGS.src_voxel_dim, alt=False).filled(FLAGS.fill_alg) manager = get_base_manager( dim=FLAGS.dim, turntable=FLAGS.turntable, n_views=FLAGS.n_views) cats = FLAGS.cat if cats is None: from shapenet.r2n2 import get_cat_ids cats = get_cat_ids() for cat in cats: cat_id = to_cat_id(cat) args = manager, voxel_config, FLAGS.voxel_dim, cat_id if FLAGS.temp_only: create_temp_frustrum_voxels(*args, compression=FLAGS.compression) else: create_frustrum_voxels(*args, compression=FLAGS.compression)
def main(_): from shapenet.core.voxels.config import get_config from shapenet.core import to_cat_id from shapenet.r2n2 import get_cat_ids config = get_config(FLAGS.voxel_dim, alt=FLAGS.alt) fill = FLAGS.fill if fill is not None: config = config.filled(fill) if FLAGS.cat is None: cat_ids = get_cat_ids() else: cat_ids = [to_cat_id(c) for c in FLAGS.cat] if FLAGS.fill is not None: config = config.filled(FLAGS.fill) for cat_id in cat_ids: config.create_voxel_data(cat_id)
def main(_): from progress.bar import IncrementalBar import numpy as np from shapenet.core import to_cat_id from shapenet.core.renderings.renderings_manager import get_base_manager from shapenet.core.frustrum_voxels import get_frustrum_voxels_data from shapenet.core.frustrum_voxels import GROUP_KEY from shapenet.core.voxels.config import get_config from util3d.voxel import rle voxel_config = get_config(FLAGS.src_voxel_dim, alt=False).filled('orthographic') manager = get_base_manager(dim=FLAGS.dim, turntable=FLAGS.turntable, n_views=FLAGS.n_views) cats = FLAGS.cat if cats is None: from shapenet.r2n2 import get_cat_ids cats = get_cat_ids() expected_length = FLAGS.voxel_dim**3 for ci, cat in enumerate(cats): # if ci >= 3: # continue cat_id = to_cat_id(cat) print('Checking cat %s: %d / %d' % (cat_id, ci + 1, len(cats))) with get_frustrum_voxels_data(manager.root_dir, voxel_config, FLAGS.voxel_dim, cat_id) as root: data = root[GROUP_KEY] ne, nr = data.shape[:2] bar = IncrementalBar(max=ne) for i in range(ne): bar.next() di = np.array(data[i]) for j in range(nr): actual_length = rle.length(di[j]) # actual_length = len(rle.rle_to_dense(di[j])) if actual_length != expected_length: raise ValueError( 'Incorrect length at %s, %d, %d\n' 'Expected %d, got %d' % (cat_id, i, j, expected_length, actual_length)) bar.finish()
def main(_): from shapenet.core.renderings.renderings_manager import get_base_manager from shapenet.core import cat_desc_to_id from shapenet.core import cat_id_to_desc cat = FLAGS.cat if cat is None or len(cat) == 0: from shapenet.r2n2 import get_cat_ids cat_ids = get_cat_ids() else: cat_ids = [cat_desc_to_id(c) for c in FLAGS.cat] print('Required renderings:') for cat_id in cat_ids: manager = get_base_manager( dim=FLAGS.dim, turntable=FLAGS.turntable, n_views=FLAGS.n_views, ) n = len(tuple(manager.needs_rendering_keys(cat_ids=[cat_id]))) n_total = len(tuple(manager.view_manager.keys(cat_ids=[cat_id]))) cat = cat_id_to_desc(cat_id) print('%s: %s\n %d / %d' % (cat_id, cat, n, n_total))
def main(_): from shapenet.core.renderings.archive_manager import get_archive_manager from shapenet.core.renderings.renderings_manager import get_base_manager rend_manager = get_base_manager( dim=FLAGS.dim, turntable=FLAGS.turntable, n_views=FLAGS.n_renderings) if FLAGS.cat is None: from shapenet.r2n2 import get_cat_ids cats = get_cat_ids() else: cats = FLAGS.cat format = FLAGS.format mode = 'r' if FLAGS.check else 'a' for cat in cats: archive_manager = get_archive_manager( rend_manager, cat, base_only=not FLAGS.full, format=format, mode=mode) with archive_manager.archive: if FLAGS.check: archive_manager.check() else: archive_manager.add()
#!/usr/bin/python from __future__ import absolute_import from __future__ import division from __future__ import print_function import numpy as np from shapenet.r2n2 import get_cat_ids from shapenet.r2n2.hdf5 import Hdf5Manager, meta_index az_index = meta_index('azimuth') el_index = meta_index('elevation') az = [] el = [] for cat_id in get_cat_ids(): with Hdf5Manager(cat_id) as manager: g = manager.meta_group az.append(np.array(g[..., az_index])) el.append(np.array(g[..., el_index])) az = np.concatenate(az, axis=0).flatten() el = np.concatenate(el, axis=0).flatten() def vis(az, el): import matplotlib.pyplot as plt _, (ax0, ax1) = plt.subplots(1, 2) ax0.hist(az, bins=36) ax1.hist(el, bins=36) plt.show()
#!/usr/bin/python from __future__ import absolute_import from __future__ import division from __future__ import print_function from shapenet.r2n2 import get_cat_ids from shapenet.core.voxels.datasets import get_manager, convert from shapenet.core.voxels import get_config cat_ids = get_cat_ids() voxel_dims = (32, 64, 128, 256) n_configs = 2 n = len(cat_ids) * len(voxel_dims) * n_configs i = 1 for voxel_dim in voxel_dims: for config in ( get_config(voxel_dim).filled('orthographic'), get_config(voxel_dim, alt=True), ): for cat_id in cat_ids: dst = get_manager(config, cat_id, key='brle', compression='lzf', pad=True) src_kwargs = dict(key='file') print('Converting %d / %d' % (i, n)) convert(dst, overwrite=False, delete_src=False, **src_kwargs) i += 1