Reference from
Arbelaez, P., Maire, M., Fowlkes, C., & Malik, J. (2011). Contour detection and hierarchical image segmentation. IEEE transactions on pattern analysis and machine intelligence, 33(5), 898-916.
原文链接 https://ieeexplore.ieee.org/abstract/document/5557884

本文研究了计算机视觉中的两个基本问题:轮廓检测和图像分割。 我们为这两项任务提供了最先进的算法。 我们的轮廓检测器将多个局部线索组合成基于谱聚类的全局化框架。 我们的分割算法包括用于将任何轮廓检测器的输出转换为分层区域树的通用机器。 以这种方式,我们将图像分割的问题减少到轮廓检测的问题。 广泛的实验评估表明,我们的轮廓检测和分割方法都明显优于竞争算法。 可以通过用户指定的注释以交互方式细化自动生成的分层分段。 多个图像分辨率的计算提供了将我们的系统耦合到识别应用程序的手段。

3. Contour Detection

作为轮廓检测的起点,我们考虑Martin等人的工作[2],定义函数Pb(x,y,θ)Pb(x,y,θ)Pb(x,y,θ),该函数通过测量局部图像亮度,颜色和纹理通道的差异来预测每个图像像素(x.y)(x.y)(x.y)上具有方向θθθ的边界boundary的后验概率。 在本节中,我们将回顾这些线索,介绍我们自己的PbPbPb检测器的多尺度版本,并描述我们在这种多尺度局部检测器上运行的新的全局化方法。

3.1 Brightness, Color, and Texture Gradients

PbPbPb轮廓检测器的基本构建块是从强度图像 intensity imageIII计算定向梯度信号 oriented gradient signalG(x,y,θ)G(x,y,θ)G(x,y,θ) 。 该计算通过在位置(x.y)(x.y)(x.y)放置圆盘,以角度θθθ沿直径分割成两个半圆盘(Fig.4.) 来进行。 对于每个半圆盘,我们对其覆盖的像素的强度值进行直方图。 位置(x.y)(x.y)(x.y)处的梯度幅度GGG由两个半盘直方图ggg和hhh之间的χ2\chi^2χ2距离来定义的:

然后,我们应用二阶最小二乘平滑滤波(Savitzky-Golay滤波)[63]来增强局部最大值并在与θθθ正交的方向上平滑多个检测峰值。 这相当于将圆柱抛物线(其轴沿θθθ方向定向)拟合到围绕每个像素的局部2D窗口,并将该像素处的响应替换为拟合估计的响应。


图4.直方图的定向梯度(Oriented gradient of historgram)。 给定一张强度图像,考虑一个圆盘以每个像素为中心,并在角度θθθ沿直径分开。 我们计算每个半圆盘中强度值的直方图,并输出两个直方图之间的χ2\chi^2χ2距离作为梯度幅度。
(b)中所示的蓝色和红色分布是左边图像中蓝色和红色区域中的像素亮度值的直方图。
©显示了在对原始直方图差分输出difference output应用二阶Savitzky-Golay平滑滤波器之后,在方向θ=π/4θ=\pi/4θ=π/4处半径为5个像素的圆盘的示例结果。
请注意,为了便于说明,(a)显示了较大的光盘(半径为50像素)。

图4显示了一个例子。 该计算的动机是轮廓对应于图像不连续性,直方图提供了用于对图像区域region的内容进行建模的鲁棒机制。 强方向梯度响应(oriented gradient response)意味着像素可能位于两个不同区域之间的边界上。

PbPbPb检测器将从一个输入图像的变换中获得的方向梯度信号组合成四个单独的特征信道并独立地处理每个信道。 前三个对应于CIE Lab颜色空间的通道,我们将其称为亮度,颜色a和颜色b通道。 对于灰度图像,亮度通道是图像本身,不使用颜色通道。

第四个通道是纹理通道,它为每个像素分配一个纹理基元id。 这些分配由另一个过滤阶段计算得到的,该过滤阶段在方向梯度直方图计算之前发生。 此阶段将输入图像转换为灰度形式,并将该图像与图5中所示的17个高斯导数和中心环绕滤波器(center surround filter)的集合进行卷积。每个像素与(17维)响应向量相关联,每个滤波器包含一个条目。 然后使用K均值对这些向量进行聚类。 聚类中心定义特定图像的纹理基元集,而且每个像素被分配到最近聚类中心中从[1,K]的整数id。 实验表明选择K = 64个纹理基元就足够了。


图5.用于创建纹理基元的过滤器。 我们使用八个定向的偶数和奇数对称高斯导数滤波器和一个中心环绕(高斯差分)滤波器。

我们接下来形成一个图像,其中每个像素[1,K][1,K][1,K]中具有整数值,由其纹理基元id确定。 在图6中可以看到一个例子(左列,从顶部开始的第四个面板)。 在此图像上,我们以与亮度和颜色通道相同的方式计算定向半圆片中直方图的差异。


图6.多尺度PbPbPb。 左列,从上到下:Lab颜色空间的亮度,颜色a和b通道,以及使用图像特定纹理计算的纹理基元通道,在这之后是输入图像。 行:跟着每个通道,我们显示在θ=0θ = 0θ=0 和 θ=π/2θ = \pi/2θ=π/2(水平和垂直)直方图的方向梯度(如图4所示),以及在 [0,π)[0,\pi)[0,π) 中八个方向上的最大响应(右列)。 除了原始图像,我们还在所有四个通道和三个尺度上显示定向梯度的组合。 右下方的面板(红色边框)显示了多尺度轮廓检测器的最终输出mPbmPbmPb。

因此,获得任意输入 III 的 G(x,y,θ)G(x,y,θ)G(x,y,θ) 是我们的局部线索所依赖的核心操作。 在附录中,我们提供了一种新的近似方案,用于降低该计算的复杂性。

3.2 Multiscale Cue Combination

如上所述,我们现在介绍我们自己的PbPbPb检测器的多尺度扩展。 请注意,Ren [28]和我们自己[3]的在同时期,他们引入了一种不同的,更复杂的,同样表现的多尺度扩展,并且还提出了Martin等人[2]在他们原始的多尺度实验中没有看到性能改进的可能的原因,包括他们使用较小的图像和他们的尺度选择。

为了检测精细和粗糙结构,我们考虑三个尺度的梯度:[σ/2,σ,2σ][\sigma/2,\sigma,2\sigma][σ/2,σ,2σ] 用于每个亮度,颜色和纹理通道。 图6展示了为每个信道获得的定向梯度的示例。 对于亮度通道,我们使用 σ=5σ = 5σ=5 像素,而对于颜色和纹理,我们使用 σ=10σ = 10σ=10 像素。 然后,我们将这些局部线索线性组合成一个单一的多尺度定向信号:

其中sss 表示尺度索引,iii表示特征通道索引(亮度,颜色a,颜色b和纹理),并且 Gi,σ(i,s)(x,y,θ)G_{i,\sigma(i,s)}(x,y,\theta)Gi,σ(i,s)​(x,y,θ) 测量在通道iii中 以 (x,y)(x,y)(x,y) 为中心 半径为σ(i,s)\sigma(i,s)σ(i,s) 并以角度θθθ沿直径切割成两个半圆盘之间的直方图差异。参数 αi,s\alpha_{i,s}αi,s​ 对每个梯度信号的相对贡献进行加权。 在我们的实验中,我们在区间 [0,π][0,\pi][0,π] 中将空间定位等分8份 取样θθθ。 将方向orientation上的最大响应作为每个像素的边界强度的度量:

一个可选的非极大值抑制(nonmaximum suppression)步骤[22]产生细化的实值轮廓。

与使用逻辑回归分类器组合线索的[2]和[28]相比,我们使用训练图像和BSDS中相应的ground truth的F-度量(F-measure)按照梯度上升来学习权重 αi,s\alpha_{i,s}αi,s​。

3.3 Globalization

谱聚类是我们全局化机制的核心。 将本节中描述的算法与其他方法[45],[47]区分开来的关键因素是“软”方式,其中我们使用从谱划分中获得的特征向量。

作为谱聚类阶段的输入,我们构建稀疏对称亲和度矩阵WWW通过使用intervening contour(介入轮廓)线索[49],[64],[65],mPbmPbmPb沿连接两个像素的线的最大值。 我们将固定半径rrr内的所有像素iii和jjj 和亲和度连接起来:

其中ij‾\overline{ij}ij​是连接iii和jjj的线段,ρ\rhoρ是常数。 我们设r=5r = 5r=5 像素,ρ=0.1ρ = 0.1ρ=0.1。

为了引入全局信息,我们定义 Dii=∑iWijD_{ii} = \sum_i {W_{ij}}Dii​=∑i​Wij​ 并求解 (D−W)v=λDv(D-W) \mathbf v = \lambda D \mathbf v(D−W)v=λDv (2) 系统的广义特征向量 {v0,v1,v2,...,vn\mathbf v_0,\mathbf v_1,\mathbf v_2,...,\mathbf v_nv0​,v1​,v2​,...,vn​} , 其对应的n+1n + 1n+1个最小特征值 0=λ0≤λ1≤⋯≤λn0 = λ_0≤λ_1≤⋯≤λ_n0=λ0​≤λ1​≤⋯≤λn​。 图7显示了具有四个特征向量的示例。 在实践中,我们使用 n=16n = 16n=16。


图7.谱PbPbPb。 (a)图像。 (b)稀疏的非最大抑制多尺度Pb信号定义了连接固定半径内的像素的稀疏亲和度矩阵。 像素iii和jjj具有低亲和力,因为强边界将它们分开,而iii和kkk具有高亲和力。 (c)由谱聚类产生的前四个广义特征向量。 (d)通过在特征向量上运行K均值聚类来对图像进行划分会错误地破坏平滑区域。 (e)相反,我们计算特征向量的梯度,将它们转换回轮廓信号。

此时,标准的归一化切割方法将每个像素与由nnn个本征向量的条目形成的长度nnn描述符相关联,并使用诸如K均值的聚类算法来创建图像的硬分区。 不幸的是,这会导致不正确的分割,因为特征向量平滑变化的大均匀区域被打破。 图7示出了横跨天空区域的特征向量的这种逐渐变化导致不正确分区的示例。

为了克服这个困难,我们观察到特征向量本身带有轮廓信息。 将每个特征向量vk\mathbf v_kvk​作为图像处理,我们在多个方向θθθ将其与高斯方向导数滤波器 (Guassian directional derivative filter)卷积,获得定向信号 oriented signal {▽θvk(x,y)\bigtriangledown_\theta \mathbf v_k (x,y)▽θ​vk​(x,y)} 。 以这种方式获取衍生物会忽略先前导致错误的平滑变化。 然后组合来自不同特征向量的信息以提供我们的边界检测器的“谱”分量:

通过 1/λk1/\sqrt{\lambda_k}1/λk​​ 加权的动机是广义特征值问题作为质量弹簧系统的物理解释[66]。图7和8给出了特征向量,它们的方向导数和得到的sPbsPbsPb信号的例子。


图8.特征向量携带轮廓信息。 (a)原始图像和谱PbPbPb在方向上的最大响应,sPb(x,y)=max⁡θsPb(x,y) = \max_\thetasPb(x,y)=maxθ​{sPb(x,y,θ)sPb(x,y,\theta)sPb(x,y,θ)}。 (b)用于创建sPbsPbsPb的前四个广义特征向量v1,...,v4\mathbf v_1,...,\mathbf v_4v1​,...,v4​。 (c)对于每个特征向量,在方向上的最大梯度响应,max⁡θ\max_\thetamaxθ​{▽θvk(x,y)\bigtriangledown_\theta \mathbf v_k (x,y)▽θ​vk​(x,y)}。

信号mPbmPbmPb和sPbsPbsPb传达不同的信息,因为前者在所有边缘处发射,而后者仅提取图像中最显着的曲线。 我们发现简单的线性组合足以从两种行为中受益。 然后,我们最终的全局边界概率(globalized probability of boundary)是局部信号和谱信号的加权和:

我们随后用sigmoid函数重新缩放gPbgPbgPb以匹配概率解释。 与mPbmPbmPb(10)一样,通过使用BSDS训练图像在F测量上的梯度上升(gradient ascent on the F-measure)来学习权重βi,sβ_{i,s}βi,s​和γ\gammaγ 。

3.4 Results

定性地说,多尺度线索与我们的全局化机制的结合解释为减少杂波边缘和输出中轮廓的完成,如图9所示。


图9.全局化的好处。 与局部探测器PbPbPb相比,我们的探测器gPbgPbgPb减少了杂波并完成了轮廓。 所示的阈值对应于图1中曲线上的F-测量值最大的点。

图10分解了多尺度和光谱信号对gPbgPbgPb性能的贡献。 这些精确-召回曲线表明,由于在sPbsPbsPb中使用全局信息导致了false positives的减少是集中在高阈值区域,而gPbgPbgPb在两个世界中都是最好的,依赖于高精度区域中的sPbsPbsPb和高召回区域中的mPbmPbmPb。


图10.全球化改善了轮廓检测。 从谱分割算法的特征向量导出的谱PbPbPb检测器(sPbsPbsPb)提高了用作输入的局部多尺度PbPbPb信号(mPbmPbmPb)的精度。 全局gPgPgP(gPbgPbgPb),两者的学术组合,可提供更好的性能。 还要注意,使用多刻度(mPbmPbmPb)优于单刻度PbPbPb。 结果显示在BSDS300上。

再看一下图1中BSDS300基准的轮廓检测器的比较,gPbgPbgPb相对于单一尺度PbPbPb的精度的平均改善在召回范围[0.1,0.9][0.1,0.9][0.1,0.9]中为10%。


图1. Berkeley分段数据集(BSDS300)基准测试中轮廓检测器的评估[2]。 领先的轮廓检测方法根据它们相对于human ground-truth 边界的最大F-度量(2⋅精确率⋅召回率精确率+召回率\frac{2\cdot精确率\cdot召回率}{精确率+召回率}精确率+召回率2⋅精确率⋅召回率​)进行排序。 Iso-F曲线以绿色显示。 我们的gPb检测器[3]的表现明显优于其他算法[2],[17],[18],[19],[20],[21],[22],[23],[24],[25] 几乎在整个运作体制中,[26],[27],[28]。三个人(human subjects)之间的平均一致性由绿点表示。

1. 【Part2】 Contour Detection and Hierarchical Image Segmentation【轮廓检测图像分割】相关推荐

  1. 1. 【Part3】 Contour Detection and Hierarchical Image Segmentation【轮廓检测图像分割】

    Reference from Arbelaez, P., Maire, M., Fowlkes, C., & Malik, J. (2011). Contour detection and h ...

  2. 谣言检测相关论文阅读笔记:Towards Multi-Modal Sarcasm Detection via Hierarchical Congruity Modeling

    Towards Multi-Modal Sarcasm Detection via Hierarchical Congruity Modeling with Knowledge Enhancement ...

  3. Self-Supervised Difference Detection for Weakly-Supervised Semantic Segmentation

    Self-Supervised Difference Detection for Weakly-Supervised Semantic Segmentation 摘要 1. Introduction ...

  4. Tensorflow object detection API 搭建自己的目标检测模型并迁移到Android上

    参考链接:https://blog.csdn.net/dy_guox/article/details/79111949 之前参考上述一系列博客在Windows10下面成功运行了TensorFlow A ...

  5. 使用tensorflow object detection API 训练自己的目标检测模型 (三)

    在上一篇博客"使用tensorflow object detection API 训练自己的目标检测模型 (二)"中介绍了如何使用LabelImg标记数据集,生成.xml文件,经过 ...

  6. CVPR 2017:Interspeices Knowledge Transfer for Facial KeyPoint Detection(跨物种脸部关键点检测知识迁移)

    CVPR 2017: Interspeices Knowledge Transfer for Facial KeyPoint Detection(跨物种脸部关键点检测知识迁移) 一.介绍 本文主要涉及 ...

  7. PartNet: A Recursive Part Decomposition Network for Fine-grained and Hierarchical Shape Segmentation

    摘要 3D分割可被视为多类标签问题. 现有模型针对固定标签集进行训练,极大地限制了它们的灵活性和适应性.本文中,我们采用自上而下的递归分解,并基于递归神经网络开发了第一个用于3D形状的分层分割的深度学 ...

  8. 粗读UPI-Net: Semantic Contour Detection in Placental Ultrasound

    本文研究的目标为胎盘的语义轮廓检测,即不分割出整个胎盘,而是只标注出边缘位置. 本文的方法是在简单的多尺度特征融合的基础上增加了两个新的模块,一个关注全局信息,一个关注局部信息. 先来看看传统的多尺度 ...

  9. 使用tensorflow object detection API 训练自己的目标检测模型 (二)labelImg的安装配置过程

    上一篇博客介绍了goggle的tensorflow object detection API 的配置和使用, 这次介绍一下如何用这个API训练一个私人定制的目标检测模型. 第一步:准备自己的数据集.比 ...

最新文章

  1. 【版本更新】网易云信IM微信小程序上线啦!
  2. 消除python变量的值_SPSS变量值标签的批量设置、复制、显示及删除问题
  3. 20应用统计考研复试要点(part41)--概率论与数理统计
  4. 《程序员修炼之道》笔记(八)
  5. pymc3 贝叶斯线性回归_使用PyMC3进行贝叶斯媒体混合建模,带来乐趣和收益
  6. java cmd停服务_java代码启动cmd执行命令来开启服务出现无法连接的问题
  7. Log4j的应用实例
  8. 利用cors,实现js跨域访问Tomcat下资源
  9. 知荐 | 自动驾驶的“大脑”:决策规划篇
  10. gcc/g++超详细上手教程
  11. SQL Prompt 插件
  12. setValuesForKeysWithDictionary:的用途
  13. mysql 抓包工具_好用的MySQL抓包工具:sniffer-agent
  14. Mac安装 nginx (极简)
  15. 微信缓存怎么解决,看这儿
  16. UG NX二次开发(C#)-装配-替换组件
  17. 学习记录2——PMSM数学建模——坐标变换理论以及相应的Matlab模块搭建
  18. codeforces 418B. Cunning Gena (状态dp)
  19. 干货深挖!从写简历,到面试、谈薪酬的那些技巧和防坑指南
  20. 隔年增长的题_2019行测备考:数量关系_浅谈隔年增长率的解法

热门文章

  1. Floorplan基本概念合集
  2. ACC自适应巡航控制系统介绍
  3. 神气的Android Studio -Pligins什么都没有
  4. 阿龙的下拉菜单demo
  5. Environment.SpecialFolder的值的含义(本地打印)
  6. web期末大作业-前端网页--H5--海贼王动态网页源码-海贼王网页
  7. 一行Python能实现什么丧心病狂的功能?
  8. ubuntu14.04更换国内软件源的方法
  9. 6-2编写1-100所有整数出现多少次数字9
  10. 随心玩玩(三)Mirai框架QQ机器人