示例#1
0
def db_eval(techniques,
            sequences,
            inputdir=cfg.PATH.SEGMENTATION_DIR,
            metrics=None):
    """ Perform per-frame sequence evaluation.

	Arguments:
		techniques (string,list): name(s) of the method to be evaluated.
		sequences  (string,list): name(s) of the sequence to be evaluated.
		inputdir  (string): path to the technique(s) folder.

	Returns:
		db_eval_dict[method][measure][sequence] (dict): evaluation results.

	"""

    if isinstance(techniques, str): techniques = [techniques]
    if isinstance(sequences, str): sequences = [sequences]

    ndict = lambda: defaultdict(ndict)
    db_eval_dict = ndict()

    # RAW, per-frame evaluation
    timer = Timer()
    log.info("Number of cores allocated: %d" % cfg.N_JOBS)
    for technique in techniques:
        log.info('Evaluating technique: "%s"' % technique)
        timer.tic()

        J,j_M,j_O,j_D,F,f_M,f_O,f_D,T,t_M = \
           zip(*Parallel(n_jobs=cfg.N_JOBS)(delayed(db_eval_sequence)(
         technique,sequence,inputdir,metrics) for sequence in sequences))
        log.info('Processing time: "%.3f"' % timer.toc())

        # STORE RAW EVALUATION
        for seq_id, sequence in enumerate(sequences):
            db_eval_dict[technique]['J'][sequence] = J[seq_id]
            db_eval_dict[technique]['F'][sequence] = F[seq_id]
            db_eval_dict[technique]['T'][sequence] = T[seq_id]

    return db_eval_dict
示例#2
0
文件: utils.py 项目: fperazzi/davis
def db_eval(techniques,sequences,inputdir=cfg.PATH.SEGMENTATION_DIR,metrics=None):

	""" Perform per-frame sequence evaluation.

	Arguments:
		techniques (string,list): name(s) of the method to be evaluated.
		sequences  (string,list): name(s) of the sequence to be evaluated.
		inputdir  (string): path to the technique(s) folder.

	Returns:
		db_eval_dict[method][measure][sequence] (dict): evaluation results.

	"""

	if isinstance(techniques,str): techniques = [techniques]
	if isinstance(sequences,str):  sequences  = [sequences]

	ndict        = lambda: defaultdict(ndict)
	db_eval_dict = ndict()

	# RAW, per-frame evaluation
	timer = Timer()
	log.info("Number of cores allocated: %d"%cfg.N_JOBS)
	for technique in techniques:
		log.info('Evaluating technique: "%s"'%technique)
		timer.tic()

		J,j_M,j_O,j_D,F,f_M,f_O,f_D,T,t_M = \
				 zip(*Parallel(n_jobs=cfg.N_JOBS)(delayed(db_eval_sequence)(
			technique,sequence,inputdir,metrics) for sequence in sequences))
		log.info('Processing time: "%.3f"'%timer.toc())

		# STORE RAW EVALUATION
		for seq_id,sequence in enumerate(sequences):
			db_eval_dict[technique]['J'][sequence] = J[seq_id]
			db_eval_dict[technique]['F'][sequence] = F[seq_id]
			db_eval_dict[technique]['T'][sequence] = T[seq_id]

	return db_eval_dict