目标跟踪的评测标准(ACC,Prec)

 

ACC

class Accuracy():
	def __call__(self, pos_score, neg_score):		
		pos_correct = (pos_score[:,1] > pos_score[:,0]).sum().float()
		neg_correct = (neg_score[:,1] < neg_score[:,0]).sum().float()		
		pos_acc = pos_correct / (pos_score.size(0) + 1e-8)
		neg_acc = neg_correct / (neg_score.size(0) + 1e-8)
		tot_acc = (pos_correct+neg_correct) / (pos_score.size(0)+neg_score.size(0))
		return tot_acc.data[0], pos_acc.data[0], neg_acc.data[0]

(TP+TN)/N。简单来说就是识别正确的数量占总数量的比例。因为实际中一般不会用到TN所以这个一般不用。

用到的tot_acc表示正样本检测为正样本+负样本检测为负样本的量,也就是TP+TN,  # mdnet中,第一列负得分,第二列正得分,

基本解释:TP,TN,FP,FN.

TP:就是我们熟知的正样本识别成正样本。(这个肯定不会有人不懂)
TN:就是网络正确识别出了负样本。
FP:就是网络错误的识别成了正样本。(言外之意就是人家本来是负样本,你却认成了正样本)
FN:就是网络错误的识别成了负样本。(本来是正样本,你却认成了负样本)

那么目标检测中的这些量是什么含义呢?

首先TN是没有含义的,因为目标检测中不会识别出这个来。(不懂的好好理解一下)
TP就不讲了。
FN,在目标检测中就是你没有检测出来的。比如图中有5个标注为汽车的ground truth, 那么你检测到的汽车有两个, 那么对于这张图, 汽车类的 FN 就是 3.
FP在目标检测中就是检测错误的数量,比如图中有3个人的ground truth, 你检测到的也是三个框, 但是其中只有一个框检测吻合到你的ground truth,另外两个检测成人了, TP = 1, FP = 2。若是你还是不懂,简单点:检测大于阈值的叫做TP(TruePositive),低于阈值的也就是错误的叫做FP (FalsePositive)

引用“目标检测中的一些评价标准(ACC,Precision,recall,AP,MAP,F1Score,ROC,AUC)_justsolow的博客-CSDN博客

Prec

class Precision():
	def __call__(self, pos_score, neg_score):
		scores = torch.cat((pos_score[:,1], neg_score[:,1]), 0)
		topk = torch.topk(scores, pos_score.size(0))[1]
		prec = (topk < pos_score.size(0)).float().sum() / (pos_score.size(0)+1e-8)
		return prec.data[0]

TP/(TP+FP)。查准率,实际的正样本数量占网络认为是正样本的数量的比例。查准率这个名字起的很好,就是看你网络的准确率。在目标检测中TP+FP就是你所有检测出来的bbox。

 

要纠结最后到底使用哪一个,这个要看你怎么取样本以及对样本的处理。

在meta-tracker中使用了错误传回样本(正样本作为负样本传递过来,负样本作为正样本传递过来,这样能提高网络的判别能力)

这时判断的标准为acc

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值