def print_instances_class_histogram()

in meshrcnn/utils/vis.py [0:0]


def print_instances_class_histogram(num_instances, class_names, results):
    """
    Args:
        num_instances (list): list of dataset dicts.
        class_names (list): list of class_names
    """
    num_classes = len(class_names)
    N_COLS = 5
    data = list(
        itertools.chain(
            *[
                [
                    class_names[i],
                    int(v),
                    results["box_ap@0.5 - %s" % (class_names[i])],
                    results["mask_ap@0.5 - %s" % (class_names[i])],
                    results["mesh_ap@0.5 - %s" % (class_names[i])],
                ]
                for i, v in enumerate(num_instances)
            ]
        )
    )
    total_num_instances = sum(data[1::5])
    data.extend([None] * (N_COLS - (len(data) % N_COLS)))
    data.extend(
        [
            "total",
            total_num_instances,
            results["box_ap@0.5"],
            results["mask_ap@0.5"],
            results["mesh_ap@0.5"],
        ]
    )
    data = itertools.zip_longest(*[data[i::N_COLS] for i in range(N_COLS)])
    table = tabulate(
        data,
        headers=["category", "#instances", "boxAP", "maskAP", "meshAP"] * (N_COLS // 2),
        tablefmt="pipe",
        numalign="left",
        stralign="center",
    )
    print(
        "Distribution of testing instances among all {} categories:\n".format(num_classes)
        + colored(table, "cyan")
    )