跟踪算法性能测试之二:常用评价标准实现

这一篇均是在上一篇的基础上实现的,在上一篇写了如何批量测试VOT数据集及保存跟踪结果。并进行了简单的CLE绘制,这一篇总结一下常用的跟踪评价标准及其实现。

在此之前,已经得到了每一个视频序列的groundtruth和跟踪的结果,保存的格式如下:(groundtruth和跟踪结果都是以这个格式保存在txt之中的)

1. 中心位置误差(CLE)

这个上一篇已经讲过了,这里再重复一下它的概念,因为下面还有几个评价标准是以此为基础的。

CLE计算的是跟踪框中心位置的欧式距离,假设某一帧,groundtruth标注的中心位置为(x_1,y_1),跟踪结果的中心位置为(x_2,y_2),这个位置需要通过简单的转换得来:
\begin{eqnarray} X=x+width/2 \\ Y=y+height/2 \end{eqnarray}
中心位置的误差则为:
CLE=\sqrt{(x_1-x_2)^2+(y_1-y_2)^2}

2. 区域重叠度。

在真正的跟踪过程中,因为有尺度变化存在,单纯的CLE并不能全面衡量跟踪算法的性能,所以区域重叠度可以作为一个重要的辅助标准。

所谓区域重叠度就是标注的跟踪框和跟踪的跟踪框之间的重叠程度,显而易见需要寻找一种相对的衡量标准,如果用重叠面积这种绝对的衡量标准是不合适的。

这里,用的是交并比(Intersection-over-Union,IOU),这个标准在目标检测中也用的比较多。

如图,交并比即交集的面积比上并集的面积。

IOU=\frac{Rect1\cap Rect2}{Rect1\cup Rect2}

这样的话,就是一个相对值,比较能客观的展示两个矩形的重叠成都。

实现起来也不算难,我也是参考了别人的一些思路,有很多种方法,但是我觉得这种方法是比较简单而且易于理解的。

首先来分析两个矩形相交的情况。

大概是这些情况,总结交集的状态可以发现这么一个规律:

  1. 交集的上边(上面的一条边,下面的以此类推) 是两个矩形上边靠下的那个。
  2. 交集的左边是两个矩形左边靠右的那个。
  3. 交集的右边是两个矩形右边靠左的那个。
  4. 交集的右边是两个矩形右边靠左的那个。

这个规律是可以通过左边之间的转换来表现。

那么要是不相交呢?如果不相交的话,那么依照上面的规律得到的就不是矩形,上边跑到了下边的下面或者左边跑到了右边的右边。

这样的话思路就很清晰了,代码如下:
我也不是故意要写中文注释,虚拟机的中文输入法好像崩掉了!!

#calculate IOU,rect1 and rect2 are rectangles(x,y,width,height)
def calculateIOU(rect1,rect2):
    #calculate the area
    area1=rect1[2]*rect1[3]  
    area2=rect2[2]*rect2[3]
    #calculate the sum area
    area=area1+area2
    
    #calculate the edge line of every rect
    top1=rect1[1]
    left1=rect1[0]
    bottom1=rect1[1]+rect1[3]
    right1=rect1[0]+rect1[2]

    top2=rect2[1]
    left2=rect2[0]
    bottom2=rect2[1]+rect2[3]
    right2=rect2[0]+rect2[2]

    #calculate the intersect rectangle
    top=max(top1,top2)
    left=max(left1,left2)
    bottom=min(bottom1,bottom2)
    right=min(right1,right2)
    
    #if no intersect
    if top>=bottom or right<=left:
        return 0
    else:
        intersectArea=(bottom-top)*(right-left)
        return intersectArea/(area-intersectArea)

计算完了再画图就比较简单了,一帧一帧计算然后放入列表之中,再使用plt.plot()来画图就可以了,看一套效果还不错的图:(其实在数据集上整体的效果是非常一般的,数据集上的整体ACU(这个参数我现在还不知道什么东西,应该是平均准确率的意思吧!)才0.5左右)


未完待续!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,743评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,296评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,285评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,485评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,581评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,821评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,960评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,719评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,186评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,516评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,650评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,936评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,757评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,991评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,370评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,527评论 2 349

推荐阅读更多精彩内容