AR的要点之一便是精确跟踪

From: https://zhuanlan.zhihu.com/p/26848831?refer=dlclass

Boundary Detection Benchmark: Algorithm Ranking


边缘检测在计算机视觉领域的很多应用中都有非常重要的作用。图像边缘检测能够大幅减少数据量,在保留重要的结构属性的同时,剔除弱相关信息。

在深度学习出现之前,传统的Sobel滤波器,Canny检测器具有广泛的应用,但是这些检测器只考虑到局部的急剧变化,特别是颜色、亮度等的急剧变化,通过这些特征来找边缘。

但这些特征很难模拟较为复杂的场景,如伯克利的分割数据集(Berkeley segmentation Dataset),仅通过亮度、颜色变化并不足以把边缘检测做好。

2013年,开始有人使用数据驱动的方法来学习怎样联合颜色、亮度、梯度这些特征来做边缘检测。当然,还有些流行的方法,比如Pb, gPb,StrucutredEdge。

为了更好地评测边缘检测算法,伯克利研究组建立了一个国际公认的评测集,叫做Berkeley Segmentation Benchmark

从图中的结果可以看出,即使可以学习颜色、亮度、梯度等low-level特征,但是在特殊场景下,仅凭这样的特征很难做到鲁棒的检测。

比如上图的动物图像,我们需要用一些high-level 比如 object-level的信息才能够把中间的细节纹理去掉,使其更加符合人的认知过程(举个形象的例子,就好像画家在画这个物体的时候,更倾向于只画外面这些轮廓,而把里面的细节给忽略掉)。

上图展示了过去45年间特别有代表性的工作在 Berkekey Segmentation Benchmark 上的PR(Precision-Recall)曲线。右上角绿色点是人类表现的均值,F-Measure值在0.8左右。

传统的基于特征的方法,最好的结果只有0.7,这很大程度上是因为传统的人工设计的特征并没有包含高层的物体级别信息,导致有很多的误检。因而研究者们尝试用卷积神经网络CNN,探索是否可以通过内嵌很多高层的、多尺度的信息来解决这一问题。

近几年,有很多基于CNN的方法的工作。这里从2014 ACCV N4_Fields开始说起。

N4-Fields:

如何从一张图片里面找边缘?我们会想到计算局部梯度的大小、纹理变化等这些直观的方法。其实N4-Fields这个方法也很直观,图像有很多的patch,用卷积神经网络(CNN)算出每个patch的特征,然后在字典里面进行检索,查找与其相似的边缘,把这些相似的边缘信息集成起来,就成了最终的结果,可以看到,由于特征更加强大了,结果有了较好的提升。

DeepEdge

发表在CVPR 2015的DeepEdge对上述工作进行了扩展,首先使用Canny edge得到候选轮廓点,然后对这些点建立不同尺度的patch,将这些 patch 输入两路的CNN,一路用作分类,一路用作回归。最后得到每个候选轮廓点的概率。

DeepContour:

这是CVPR2015中的另一个工作,该工作还是基于patch的。首先在图像中寻找patch,然后对patch 做多类形状分类,来判断这个边缘是属于哪一类的边缘,最后把不同类别的边缘融合起来得到最终的结果。

HFL

ICCV 2015的工作High-for-Low (HFL)也用CNN对可能的候选轮廓点进行判断。由于使用了经过高层语义信息训练得到的VGG Net,在一定程度上用到了高层语义信息,因此取得了不错的结果。

由上图结果可以看出,这些工作虽然取得了一些进展,但是离人类的表现还有很大的差距。 这些方法的缺点在于都是基于局部策略所做的结果,每次只看一个区域,即只针对一个patch,并没有很充分的利用高层级的信息。

Holistically-Nested Edge Detection:(重点!)

Holistically-Nested Edge Detection 是屠卓文教授课题组在ICCV 2015 的工作。该工作最大的亮点在于,一改之前边缘检测方法基于局部策略的方式,而是采用全局的图像到图像的处理方式。即不再针对一个个patch进行操作,而是对整幅图像进行操作,为高层级信息的获取提供了便利。

与此同时,该方法使用了multi-scale 和multi-level, 通过groundtruth的映射在卷积层侧边插入一个side output layer,在side output layer上进行deep supervision,将最终的结果和不同的层连接起来。

如图所示,加上deep supervision后,该方法可以在不同尺度得到对应抽象程度的边缘。

可以看到该方法在伯克利分割Benchmark上的结果较之前有了很大的提升。

RCF:

接下来,介绍的是程明明副教授课题组CVPR2017的工作。其实想法很简单,一句话就能概括,由于不同卷积层之间的信息是可以互补的,传统方法的问题在于信息利用不充分,相当于只使用了Pooling前最后一个卷积层的信息,如果我们使用所有卷积层的信息是不是能够更好的利用卷积特征,进而得到更好的结果?

使用所有卷积层的信息,而不是池化之前的最后一层,这样一个非常简单的改变,使得检测结果有了很大的改善。这种方法也有望迁移到其他领域。

实验结果表明,虽然卷积神经网络自带多尺度特征,但显式地使用多尺度融合对边缘检测结果的提升依然有效。

这是部分示例结果:

该方法操作简单,且不明显增加计算时间,虽然代码量少,但在BSDS500数据集上的结果甚至超过人类标注者的平均表现水平,而且在Titan X上能够达到实时检测速度(30fps)。

这部分代码是开源的,可通过访问如下网址获得:

https://github.com/yun-liu/rcf

文中提到所有文章的下载链接为:

http://pan.baidu.com/s/1jHLdyIU

[Object Tracking] Deep Boundary detection Tech的更多相关文章

  1. [Object Tracking] Contour Detection through Tensorflow running on smartphone

    From: 手机端运行卷积神经网络的一次实践 -- 基于 TensorFlow 和 OpenCV 实现文档检测功能 貌似不错的东西:移动端视觉识别模型:MobileNets Holistically- ...

  2. [Object Tracking] Contour Detection through OpenCV

    利用OpenCV检测图像中的长方形画布或纸张并提取图像内容 - 阅读笔记 相对来说,如下链接是此文的高阶方案版本,做对比是极好的. [Object Tracking] Contour Detectio ...

  3. Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记

    Deep Reinforcement Learning for Visual Object Tracking in Videos 论文笔记 arXiv 摘要:本文提出了一种 DRL 算法进行单目标跟踪 ...

  4. [Object Tracking] Overview of algorithms for Object Tracking

    From: https://www.zhihu.com/question/26493945 可以载入史册的知乎贴 目标跟踪之NIUBILITY的相关滤波 - 专注于分享目标跟踪中非常高效快速的相关滤波 ...

  5. 论文笔记之:Fully-Convolutional Siamese Networks for Object Tracking

    gansh Fully-Convolutional Siamese Network for Object Tracking 摘要:任意目标的跟踪问题通常是根据一个物体的外观来构建表观模型.虽然也取得了 ...

  6. [Object Tracking] Overview of Object Tracking

    From: 目标跟踪方法的发展概述 From: 目标跟踪领域进展报告 通用目标的跟踪 经典目标跟踪方法 2010 年以前,目标跟踪领域大部分采用一些经典的跟踪方法,比如 Meanshift.Parti ...

  7. Motion-Based Multiple Object Tracking

    kalman filter tracking... %% Motion-Based Multiple Object Tracking % This example shows how to perfo ...

  8. 泡泡一分钟: Deep-LK for Efficient Adaptive Object Tracking

    Deep-LK for Efficient Adaptive Object Tracking "链接:https://pan.baidu.com/s/1Hn-CVgiR7WV0jvaYBv5 ...

  9. Multiple Object Tracking using K-Shortest Paths Optimization简要

    参考文献:Multiple Object Tracking using K-Shortest Paths Optimization 核心步骤: 两步:一.detection 二.link detect ...

随机推荐

  1. JS 显示周 几和 月 日

    function getMyDay(date){ var week; ; var day = date.getDate(); ) week="周日" ) week="周一 ...

  2. Shell中的>/dev/null 2>&1 与 2>&1 >/dev/null 与&>/dev/null 的区别

    默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入).标准输出(输出到屏幕).标准错误(也是输出到屏幕),它们分别对应的文件描述符是0,1,2 .那么我们来看看下面的几种重定向方法的区别: & ...

  3. 简单的三道shell例题

    problem: 1. 输入一个ip列表文件,文件每行为以tab键分隔的两列,分别为一个ip段的起始ip和结束ip,ip均为点分形式.要求将该文件中各ip段包含的每一个有效ip以非点分形式输出到一个文 ...

  4. PHP 计算两个时间戳之间相差的时间

    //功能:计算两个时间戳之间相差的日时分秒 //$begin_time 开始时间戳 //$end_time 结束时间戳 function timediff($begin_time,$end_time) ...

  5. how to generate an analog output from a in-built pwm of Atmega 32AVR microcontrloller?

    how to generate an analog output from a in-built pwm of Atmega 32AVR microcontrloller? you need a re ...

  6. AngularJS中介者模式实例

    在任何应用程序中,中介者模式随处可见. → 有一个事件源,触发事件,传递参数→ 中介者记下这个事件,向外界广播,并带上参赛→ 有一个地方侦听中介者事件,一旦事件源触发事件,就从中介者手里获取事件相关参 ...

  7. AngularJS中使用Karma单元测试初体验

    ■ 搭建karma测试环境 → 创建app和test文件夹→npm install karma --save-dev→npm install karma-jasmine --save-dev→npm ...

  8. 《A.I.爱》王力宏与人工智能谈恋爱 邀李开复来客串

    2017年9月19日下午,王力宏首张数字专辑<A.I.爱>亚洲发布会在北京举行,力宏在新歌MV中化身技术男,网红机器人Sophia扮新娘!和Robo Alpha机器人天团大跳舞蹈,与超跑酷 ...

  9. MDX Cookbook 05 - 条件过滤 FILTER-COUNT 与 SUM-IIF 实现

    下面的这个查询返回每个财月的 Customer Count 和 基于上个月比较的 Growth in Customer Base 的记录,Slicer 是 Mountain bikes. SELECT ...

  10. PL/SQL学习笔记之存储过程

    一:PL/SQL的两种子程序 子程序:子程序是执行一个特定功能.任务的程序模块.PL/SQL中有两种子程序:函数  和  过程. 函数:主要用于计算并返回一个值. 过程:没有直接返回值,主要用于执行操 ...