def load_boxes_and_labels()

in lib/datasets/ava.py [0:0]


def load_boxes_and_labels(filenames, is_train, detect_thresh, full_eval):
    """Loading boxes and labels from csv files."""
    ret = {}
    count = 0
    unique_box_count = 0
    for filename in filenames:
        with open(filename, 'r') as f:
            for line in f:
                row = line.strip().split(',')
                assert len(row) == 7 or len(row) == 8
                video_name, frame_sec = row[0], int(row[1])

                # We "define" the subset of AVA validation set to be the
                # frames where frame_sec % 4 == 0.
                if (not is_train and not full_eval and frame_sec % 4 != 0):
                    continue

                box_key = ','.join(row[2:6])
                box = map(float, row[2:6])
                label = -1 if row[6] == '' else int(row[6])

                if len(row) == 8:
                    # When we use predicted boxes to train/eval, we have scores.
                    score = float(row[7])
                    if score < detect_thresh:
                        continue

                if video_name not in ret:
                    ret[video_name] = {}
                    for sec in AVA_VALID_FRAMES:
                        ret[video_name][sec] = {}

                if box_key not in ret[video_name][frame_sec]:
                    ret[video_name][frame_sec][box_key] = [box, []]
                    unique_box_count += 1

                ret[video_name][frame_sec][box_key][1].append(label)
                if label != -1:
                    count += 1

    for video_name in ret.keys():
        for frame_sec in ret[video_name].keys():
            ret[video_name][frame_sec] = ret[video_name][frame_sec].values()

    logger.info('Finished loading annotations from')
    for filename in filenames:
        logger.info("  %s" % filename)
    logger.info("Number of unique boxes: %d" % unique_box_count)
    logger.info("Number of annotations: %d" % count)
    return ret