def _get_multi_view_helper_mappings()

in train.py [0:0]


def _get_multi_view_helper_mappings(num_images, datadir):
    imgnames = range(num_images)
    extras = {}
    
    multi_view_mapping = os.path.join(datadir, "image_to_camera_id_and_timestep.json")
    if os.path.exists(multi_view_mapping):
        extras["is_multiview"] = True
        import json
        with open(multi_view_mapping, "r") as multi_view_mapping:
            multi_view_mapping = json.load(multi_view_mapping)
    else:
        extras["is_multiview"] = False
        multi_view_mapping = dict([ (name, [i, i]) for i, name in enumerate(imgnames) ])

    sorted_multi_view_mapping = {}
    raw_multi_view_list = []
    for key in sorted(multi_view_mapping.keys()):
        sorted_multi_view_mapping[key] = multi_view_mapping[key]
        raw_multi_view_list.append(multi_view_mapping[key])
    extras["raw_multi_view_mapping"] = sorted_multi_view_mapping

    # convert to consecutive numerical ids

    all_timesteps = sorted(
        list(set([timestep for view, timestep in raw_multi_view_list]))
    )
    timestep_to_timestepid = dict(
        [(timestep, i) for i, timestep in enumerate(all_timesteps)]
    )

    all_views = sorted(list(set([view for view, timestep in raw_multi_view_list])))
    view_to_viewid = dict([(view, i) for i, view in enumerate(all_views)])

    extras["raw_timesteps"] = all_timesteps
    extras["rawtimestep_to_timestepid"] = timestep_to_timestepid
    extras["raw_views"] = all_views
    extras["rawview_to_viewid"] = view_to_viewid
    extras["raw_multi_view_list"] = raw_multi_view_list
    extras["imageid_to_viewid"] = [
        view_to_viewid[view] for view, timestep in raw_multi_view_list
    ]
    extras["imageid_to_timestepid"] = [
        timestep_to_timestepid[timestep] for view, timestep in raw_multi_view_list
    ]

    return extras