A Survey of Shape Feature Extraction Techniques中文翻译
Yang, Mingqiang, Kidiyo Kpalma, and Joseph Ronsin. "A survey of shape feature extraction techniques." (2008): 43-90.
转载请注明 黄世宇:http://www.cnblogs.com/huangshiyu13/p/6432647.html。
1.介绍
"一张图片需要很多文字进行描述",这个谚语来自孔子-一个中国大约2500年前的哲学家。现在,这些文字的本质被广泛地理解。一张图片可以被后来的观察者迅速地和一个故事或者一些想法联系起来。
视觉信息在我们的社会中扮演着重要的角色,它会在我们生活中变得越来越重要,这也会促进对这些信息进行处理的需求。图片和照片被用在很多应用当中,比如建筑结构,工程设计,时尚,杂志,广告,娱乐等等。因此我们有机会使用大量的图片。但是,如果我们不能很好地利用,那么里面的知识将会一无是处。面对日益增长的图片,如何去检索我们感兴趣的图片变成一个棘手的问题:这就是检索系统的必要性。正如我们所知,图片的视觉特征提供了描述其内容的功能。基于内容的图像检索(CBIR)对于图片检索提供了一个有前途的方向。CBIR在最近几年已经变成了一个热门领域。它是一个从图片中自动提出特征并进行检索的过程。
这篇论文主要关注当今的一些基于形状的特征提取方法。有效的形状特征提取必须具有以下必要性质:
- 具有可鉴别性:人们认为相似的形状需要有相似的特征,而不同的形状需要有不同的特征。
- 平移,旋转和缩放不变形:平移,旋转和缩放不变形不能影响特征的提取。
- 仿射不变性:仿射变换是一种不同坐标系下的线性变换,它保证两条直线的相交和平行不变。仿射变换可以由平移,翻转,旋转,剪切等变换组合而成。形状特征应该对这种变换尽量保持不变。
- 抗噪:特征必须对噪声鲁棒,也就是说噪声在一定范围内变化不会对特征造成太大影响。
- 遮挡不变性:当形状的一部分被遮挡后,特征应当尽量不变化。
- 统计独立性:两个特征必须具有统计独立。这样可以使得表达更简洁。
- 可靠性:只要处理的模式一样,那么特征就应该保持一样。
通常,形状描述子是一堆数字,这些数字被用来表示一个给定的形状特征。一个形状描述子需要符合人们的直觉(或者满足特定任务的要求)。好的检索准确率需要一个能够很好描述形状相似性的形状描述子。通常,这些描述子是向量的形式。形状描述子需要满足如下要求:
- 描述子要能够完整地呈现原始内容。
- 描述子需要被容易地表述和储存。描述子的长度不能太长。
- 描述子之间的距离计算需要很容易,否则执行时间会很长。
形状特征提取和表示在如下应用中扮演着重要的角色:
- 形状检索:在数据库中寻找类似的形状。形状是否相似由特征的距离的远近决定。
- 形状识别和分类:决定和一个给定的形状的相似性或者对形状进行分类。
- 形状对齐或者匹配:把一个形状转换成另一个形状。
- 形状近似和简化:用更少的元素(点,线段,三角形等等)重建形状,使其和原始形状相似。
过去有很多形状表示和相似度量的技术被发展出来。最近几年也有一些新的技术被提出来。下面列举了3个主要的分类方法:
- 基于轮廓的方法和基于区域的方法。这是最普遍的一类方法,它被MPEG-7所提出。它是基于形状的边缘点和内部点。在每种类别下,不同的方法被分为结构化方法和全局方法。这种子类是基于形状的表示是由全局还是局部(元胞)。
- 空间域和变换域。空间域的方法是基于形状的点,而特征域的方法是基于特征(向量)的。
- 信息保留(IP)和非信息保留(NIP)。IP允许从描述子进行精确地重建,而NIP只能部分模糊地重建。对于物体识别而言,IP不是必须的。
不像传统的分类,基于形状的特征提取和表示的方法通过它们的处理过程进行分类:形状表示的一维函数,多边形近似,空间相互特征,矩方法,尺度空间方法,形状转换域。figure 1展示了形状特征提取方法的多层分类。
虽然不是展示并不完全,在接下来的章节,我们会对这些方法进行描述和归类。
2.形状参数
基本而言,基于形状的图像检索包含了通过特征度量其相似性的任务。一些简单的几何特征能被用来描述形状。通常,简单的几何特征只能区分差异比较大的形状。因此,它们通常被用来过滤错误或者和其他形状描述子结合来区分形状。它们不适合单独用来作为形状描述子。一个形状能够从多方面进行描述。这些形状参数有重心,最小惯性轴,数字弯曲能量,偏心率,圆度比,椭圆方差,矩形,凸性,固性,欧拉数,剖面图,开孔面积比。它们会在这章中被介绍。
2.1 重心
重心也被叫做质心。它的位置和它的形状有关。在形状识别领域,我们定义个一个通用的函数f(x,y):
D是二值形状域。它的质心(gx,gy)是:
N是形状上点的数量,
一个轮廓是一个闭合的曲线,那在笛卡尔坐标系下的离散参数方程是:
一个轮廓可以能被任何N个节点表示且
那么质心就是:
质心的位置在轮廓上不同数量的点下是固定的。
所以用公式4,无论轮廓怎样归一化,我们都能够得到真实的质心。
2.2 最小惯性轴
最小惯性轴对于形状来说是唯一的。它是一条特殊的直线,能够保存形状的方向。最小惯性轴(ALI)被定义为一条直线,形状的轮廓上的点到这条直线的距离平方和最小。
ALI是穿过质心的,所以用表示ALI。让阿尔法代表ALI和x的夹角,那么有:
2.3 平均弯曲能量
平均弯曲能量BE被定义为:
K(s)是曲率函数,s是弧长参数,N是轮廓上节点数量。可以证明圆具有最小的平均弯曲能量。
2.4 偏心率
偏心率衡量形状的纵横比。它是主轴和短轴的比率。它可由主轴法和最小包围矩形法计算。
2.4.1 主轴法
主轴法是寻找两条线段,这两条线段经过质心并且正交。我们考虑轮廓的协方差矩阵C:
两个主轴的长度就是C矩阵的特征值,所以有:
所以偏心率为:
2.4.2 最小包围矩形法
最小包围矩形法也叫做最小包围盒。它是包围这个形状的最小矩形。对于任意的形状,偏心率是最小包围矩阵长度和宽度的比值。延伸率(Elo)是基于偏心率的另外一个概念。
延伸率的范围是[0,1]。对称的图形例如元和正方形的延伸率为0,而高纵横比的图形有接近于1的延伸率。
2.5 圆度比
圆度比表示了一个形状和圆的相似度。这里有三种定义:
(1)圆度比是这个形状和圆的面积比,这个圆和原始形状有一样的周长。
(2)圆度比是这个形状和其周长平方的比:
(3)圆度比也叫做圆方差,定义为:
最紧凑的形状就是圆。参考Fig 4。
2.6 椭圆方差
椭圆方差是一种映射错误率,这种错误率反映了一个和形状和其拥有相同协方差矩阵的椭圆的匹配程度:。它几乎有效的应用了逆方法。
我们假设:
和Eq.11比较,直观上可以看出,Eva表示的形状比Cva更精确。
2.7 直角化
直角化方法表示如何直交化一个形状,即形状和最小的包围矩形的匹配程度:
其中As是形状的面积,AR是最小包围矩阵的面积。
2.8 凸性
凸性被定义为凸包OComvehull和原始轮廓O的周长比值:
凸面指上面任意两点都在凸包内部。一个形状的凸包是包含这个形状的最小凸面。Fig 6表示了一个形状的凸包。
2.9 固性
固性描述了图形的凹凸程度,它被定义为:
其中,As是图形的面积,H是凸包的面积。凸面的固性等于1。
2,10 欧拉数
欧拉数描述了形状相邻部分数量S和形状孔数量N的关系。欧拉数被定义为:
举个例子:
它们的欧拉数分别等于 1 , -1 和 0。
2.11 剖面
剖面是一个形状在笛卡尔坐标系的x轴和y轴上的投影。我们有2个一维函数:
2.12 开孔面积比
开孔面积比HAR被定义为:
其中,As是形状的面积,Ah是形状上所有开孔的面积。开孔面积比是区分有大开孔形状和小开孔形状的有效方法。
3.形状的一维函数表示
从形状的边缘坐标得到的一维函数也被叫做形状签名。形状签名通常包含形状的感知特征。通常被使用的形状签名有:复坐标,质心距离函数,切线角(旋转角),曲率函数,面积函数,三角面积表示和弦长函数。
形状签名能够单独的描述一个形状。它也被用来作为其他特征提取算法的预处理,比如,傅里叶描述子,小波描述子。在这章中,我们会详细介绍形状签名。
3.1 复坐标
一个复坐标函数可以从边缘坐标轻松得到:
3.2 质心距离函数
质心距离函数表示了边缘点和质心的距离:
因为和质心相减,所复坐标和质心距离函数都具有平移不变性。
3.3 切线角
在某个点P(x(n),y(n))的切线角函数被定义为在边缘上的tan方向:
因为每个轮廓都是一个数值曲线,那么w是一个足够小的计算thetal(n)的窗口。
切线角函数存在两个问题。一个是噪声敏感。为了减少噪声的影响,一个轮廓需要被一个合适的低通滤波器进行处理。另外一个问题是不连续,因为它的值范围只有2Pi,通常来说为[-Pi,Pi]或者[0,2Pi]。因此,thetal通常会包含2Pi的不连续。为了克服不连续的问题,对于一个任意的起始点,累积角度函数fai被定义为点Pn和起始点的区别:
为了和人类认为圆是“无形状”的直觉一致,假设:
一个被称为累积角偏差函数的周期函数被定义为:
其中,N是边缘上所有点的个数。
3.4 轮廓曲率
曲率对于人类来说是一种用来比较两个形状边缘相似性的非常重要的方法。它含有重要的性质,而且被验证对于形状识别非常有用。为了使用曲率作为形状表示,我们引用曲率函数K(n):
因此,我们能够通过形状的参数表示计算它的曲率。如果n是归一化的弧长参数s,Eq14能够写成:
从Eq15可以看出,曲率函数是参数函数的导数计算得来的,所以具有旋转和平移不变性。 但是,它却和缩放相关,即和缩放成正比。一个可能实现缩放独立的方法是对绝对曲率进行归一化:
其中,N是归一化轮廓上点的数量。
当曲线的大小是区分不同形状的特征时,那么曲率就不应该被归一化。另一方面,如果缩放对形状分析无用,那么就应该进行归一化。
一个近似的基于向心法的弧长参数可以通过如下得来:
从任意一个点开始,并且沿着轮廓的顺时针方向,我们可以计算通过Eq 15计算每个插值点的曲率。凸面和凹面会分别造成负面和正面的影响(相反的情况在逆时针时也是被证明过的)。 Fig 9是曲率函数的一个例子。可以清楚地看出,作为一个描述子,曲率函数能够区分不同的形状。
3.5 面积函数
当随着边缘上点的变化,两个边缘点和重心构成的面积也会变化。这种形式可以作为形状的表示。Figure 10给出了一个例子。 让S(n)作为点Pn,Pn+1和重心G构成的面积。
面积函数是在仿射变换下是线性的。然而,线性性只有当形状上采样相同的点下才成立。
3.6 三角面积表示
三角面积表示(TAR)签名从边缘上点组成的三角形的面积计算而来:
当轮廓被顺时针遍历时,正值,负值和零分别代表凸,凹和直线。Figure 11展示了这三种情况和一个铁锤形状的TAR签名。
通过增加三角形的步长,也就是选取更远的点,Eq16可以表示轮廓上更长远的变化。不同步长的TAR被视作不同空间尺度的函数。所有的TAR组成了多空间尺度的TAR。
在[21]中,作者展示了多空间尺度的TAR和仿射变换不变形的相关性和对非刚体变换的鲁棒性。
3.7 弦长函数
弦长函数是从图形的边缘而来,且不需要参考点。对于每一个边缘点P,它的弦长函数是它和边缘上另外一个点P'的距离,线段PP'和P点处的切线垂直。弦长函数对于旋转具有不变性,且能克服参考点的偏差问题(比如说质心经常被边缘上的噪声或者异常所影响)。然而,它对噪声敏感,所以即使在光滑的形状上也会出现剧烈变化。
3.8 讨论
一个由一维函数表示的形状描述子由形状的轮廓得来。为了保持平移不变形,它们常常被相关的值所定义。为了获得缩放不变形,归一化常常被使用。为了补偿方向变化,移位匹配需要被用于找到两个形状的最佳匹配。对于遮挡,切线角,轮廓曲率和三角面积表示具有很好的不变形。此外,形状描述子很容易被计算。
形状描述子对于噪声敏感,边缘上细微的改变能够对于匹配过程造成巨大的影响。因此,直接用形状描述子来描述形状不是很好。为了增强鲁棒性更多的处理显得十分必要。举例来说,一个形状描述子可以通过量化签名到一个签名直方图中进行简化,从而使其具有旋转不变形。
4.多边形近似
多边形近似能够忽略边缘上的微小变化,并且能捕捉到形状的整体信息。这样能简化像素级别的轮廓。通常有两种实现方式:合并或者分割。
4.1 合并的方法
合并的方法通过不断添加新的点,使得新的点不会和直线偏离太远。
4.1.1 距离阈值法
首先从轮廓上选取一个点。对于每个新选取的点,令直线穿过起始点和选取的点。然后,计算相应点的平方误差。如果平方误差超过阈值,我们就选取上一个点,并且从这个最新的点作为下一次的起始点。
在实际操作中,最常用的误差检测是基于距离的。定义为:
4.1.2 隧道法
如果我们有密集的边缘而不是单个像素点的那种形状,我们可以用近似的方法,叫做隧道法。想象一下我们要把一个长竿放入一个弯曲的隧道,而且要尽量地少用。我们可以从任意一个点开始,使竿子的长度尽量长。最终,我们直到不能更长了,然后我们就用另外一个竿子,以此推类,直至结束。
距离阈值法和隧道法都能有效地进行多边形近似。然而,它们最大的劣势是起始点的选择会很大程度影响近似结果。
4.1.3 多边形演化法
基本的多边形演化的思想非常简单:在演化的每一步,两个连续的线段被一条由它们边缘点相连的线段代替。这种演化的关键点在于替代顺序。可以通过度量标准K进行替代选择:
演化算法假设被线段包围的节点的K值高,而反之K值低。Figure 13是一个例子:
4.2 分割法
4.3 讨论
5.空间关系特征
5.1 自适应网格分辨率
5.2 包围盒
5.3 凸包
5.4 链码
5.4.1 基础链码
5.4.2 顶点链码(VCC)
5.4.3 链码直方图
5.5 光滑曲线分解
5.6 基于最小惯性轴的符号表示
5.7 光束角统计
5.8 形状矩阵
5.8.1 方块模型形状矩阵
5.8.2 极点模型形状矩阵
5.9 形状上下文
5.10 弦分布
5.11 震动图
6. 矩
6.1 边矩
6.2 区域矩
6.2.1 非变矩(IM)
6.2.2 代数矩不变性
6.2.3 Zernike矩(ZM)
6.2.4 放射切比雪夫矩(RCM)
6.3 讨论
7. 缩放空间方法
7.1 曲率缩放空间
7.2 交叉点地图
7.3 讨论
8.形状转换域
8.1 傅里叶描述子
8.1.1 一维傅里叶描述子
8.1.2 基于区域的傅里叶形状描述子
8.2 小波变换
8.3 角径向变换
8.4 形状签名谐波嵌入
8.5 R变换
8.6 Shapelets描述子
8.7 讨论
9. 总结表
为了更方便地比较这篇文章的各个形状特征提取的方法,我们把它们的性质总结在了Table 1中。
坦白来说,直接说一个方法好或者不好是不可靠地。因为不同方法在不同的条件有着不同的性能。举个例子来说,面积函数法在轮廓采样相同时具仿射不变性。但是当不具备这一条件时,不具有仿射不变性。另外,有些方法对某些形状有着很好的性质,但却对其他形状表现不好。举个例子来说,shapelets表示法对于点状物体很有用,但是对于狭长的物体表现不好。所以这张表里面的评判只能作为参考。这些评价标准是对各个方法的主要内容的总结。
10.讨论
在这篇文章中,我们对基于形状的特征提取和表示做了研究和方法比较。大约有40种关于提取形状特征的技术被简单地阐述和比较。区别于传统的分类方法,基于形状
的特征提取和表示方法通过它们的处理方法进行分类。这些处理方法包括形状签名,多边形近似法,空间关联特征,矩方法,缩放空间法以及形状转换域。我们提供了一个表格用来整体比较各个方法的性能。
通过人类的感觉来提取形状特征并不容易。由于人类的视觉以及感知系统极为复杂,期望通过简单的方法在计算机视觉上获得极佳的性能并不现实。另外,选择合适的特征用于形状识别系统时必须要考虑到哪种特征更适合这个任务。可以说,没有一个放之四海皆准的通用特征。
11.参考文献
A Survey of Shape Feature Extraction Techniques中文翻译的更多相关文章
- Software: MPEG-7 Feature Extraction Library
Software MPEG-7 Feature Extraction Library : This library is adapted from MPEG-7 XM Reference Softwa ...
- ufldl学习笔记和编程作业:Feature Extraction Using Convolution,Pooling(卷积和汇集特征提取)
ufldl学习笔记与编程作业:Feature Extraction Using Convolution,Pooling(卷积和池化抽取特征) ufldl出了新教程,感觉比之前的好,从基础讲起.系统清晰 ...
- scikit-learn:4.2. Feature extraction(特征提取,不是特征选择)
http://scikit-learn.org/stable/modules/feature_extraction.html 带病在网吧里. ..... 写.求支持. .. 1.首先澄清两个概念:特征 ...
- Feature extraction - sklearn文本特征提取
http://blog.csdn.net/pipisorry/article/details/41957763 文本特征提取 词袋(Bag of Words)表征 文本分析是机器学习算法的主要应用领域 ...
- Feature Engineering versus Feature Extraction: Game On!
Feature Engineering versus Feature Extraction: Game On! "Feature engineering" is a fancy t ...
- 《Deep Feature Extraction and Classification of Hyperspectral Images Based on Convolutional Neural Networks》论文笔记
论文题目<Deep Feature Extraction and Classification of Hyperspectral Images Based on Convolutional Ne ...
- python wsgi PEP333 中文翻译
PEP 333 中文翻译 首先说明一下,本人不是专门翻译的,英文水平也不敢拿来献丑.只是这是两年前用python的时候为了自己学习方便而翻译的,记录着笔记自己看看而已.最近翻出来看看觉得还是放出来吧. ...
- Android Studio 2.0 正式版公布啦 (首次中文翻译)
Android Studio 2.0 公布了,添加了一些新特性: 1. 更加完好的 Instant Run 2. 更快的 Android Emulator 3.GPU Debugger Preview ...
- 《Entity Framework 6 Recipes》中文翻译系列 目录篇 -持续更新
为了方便大家的阅读和学习,也是响应网友的建议,在这里为这个系列做一个目录.在目录开始这前,我先来回答之前遇到的几个问题. 1.为什么要学习EF? 这个问题很简单,项目需要.这不像学校,没人强迫你学习! ...
随机推荐
- css3的cursor
1.cursor属性参考表 还有zoom-in/zoom-out 还有grab/grabbing 2.css (1)前面的基本上就 .xx { cursor: pointer; } (2)后面两个有兼 ...
- HTC VIVE SDK 中的例子 hellovr_opengl 程序流程分析
最近Vive的VR头盔设备很火,恰逢项目需求,所以对 SDK 中的例子 hellovr_opengl 做了比较细致的代码分析,先将流程图绘制如下,便于大家理解. 在ViVe头盔中实现立体效果的技术核心 ...
- sublime 插件cssrem安装及配置
CSSREM CSSREM 是一个CSS的 px 值转 rem 值的Sublime Text3自动完成插件.先来看看插件的效果: 一个CSS的px值转rem值的Sublime Text 3自动完成插件 ...
- Hive中日期函数总结
--Hive中日期函数总结: --1.时间戳函数 --日期转时间戳:从1970-01-01 00:00:00 UTC到指定时间的秒数 select unix_timestamp(); --获得当前时区 ...
- Druid对比Vertica
怎么比较Druid和Vertica? Vertica 类似与之前介绍的ParAccel/Redshift(Druid-vs-Redshift). 不是实时注入数据: 提供SQL的全部语法支持 另外一个 ...
- Redis使用记录
登陆:cd /usr/local/bin 启动客户端:./redis-cli 查看所有key:keys * 查看key类型:type keyname 查看list长度:LLEN KEY_NAME 清空 ...
- swift算法手记-10
http://blog.csdn.net/myhaspl private func findnode(val:Int)->Bool{//http://blog.csdn.net/myhaspl ...
- PHP-Header缓存策略
Expires.Cache-Control.Last-Modified.ETag 是RFC 2616(HTTP/1.1)协议中和网页缓存相关的几个字段.前两个用来控制缓存的失效日期,后两个用来验证网页 ...
- 软件质量特征 ISO9126
ISO/IEC9126软件质量模型是一种评价软件质量的通用模型,包括3个层次: 1.质量特性 2.质量子特性 3.度量指标 其中各六个质量特性与二十七个质量子特性的关系如下表: 1.功能性 是指当软件 ...
- linq-to-sql实现left join,group by,count
linq-to-sql实现left join,group by,count 用linq-to-sql实现下面的sql语句: SELECT p.ParentId, COUNT(c.ChildId) FR ...