专利名称:形状比较装置和方法
技术领域:
该发明涉及一种形状比较装置和形状比较方法,尤其涉及基于轮廓分解与对应的形状识别和比较的装置和方法。
背景技术:
在许多应用领域如娱乐、商业、艺术以及工程技术领域,图像的应用变得越来越重要,而且,图像的数目也日益增大,因此,图像识别和基于内容的图像检索在近年来已成为一个重要的研究领域。在图像识别和检索中,其根本问题就是图像比较技术。目前,人们通常采用三种特征对图像进行识别和检索,即形状、颜色和纹理。近来,一个关于图像检索认知方面的调查显示,人们更倾向于采用形状而不是颜色和纹理对图像进行检索。尽管目标对象的形状信息能够对图像检索和识别提供强有力的支持,然而,目前我们却无法理解人类是如何轻而易举的获取图像对象的内容并基于此进行识别的,所以,依据人类的认知方法进行自动化的检索和识别尚不可行。因此,如何充分有效的描述图像对象的形状特征仍是一个亟待解决的课题。
在许多视频信息处理系统中,如计算机视觉、模式识别及机器人系统,形状匹配都属于核心的问题。形状匹配的应用领域包括工业制品监测、指纹匹配、图像识别以及基于内容的图像检索等。为解决形状匹配中的难题,许多学者已经提出了一些不同的方法。
作为现有的一种形状特征,傅立叶描述子基于频域特征来表达形状轮廓,参见[非专利文档-1]。该方法对图像对象的轮廓作傅立叶变换,并利用变换系数来描述图像对象。然而,傅立叶描述子本身不具有仿射不变的特性。因此,常用的策略是通过抛弃变换结果中的相位信息来达到旋转和起点不变的目的,尺度不变形则通过对变换系数的幅值进行归一化来实现。在相似度计算时,一般通过欧式距离测度来实现。
最为另一种形状特征,Farzin Mokhtarian(参见[非专利文档-2])提出了曲率尺度空间法(Curvature Scale Space,简称CSS)来提取形状特征,该方法在不同的尺度下计算轮廓线的曲率,并根据这些曲率信息来构建形状特征,从而实现了仿射不变性和较好的抗噪性。然而,该方法仅以图像的轮廓作为处理对象,没有考虑轮廓所包含的内容,因此,得到的特征不全面,用这种特征来匹配图像,往往不能得到满意的效果。
在[专利文档-1]中,利用检测到的感兴趣片断的形状属性来表达图像的内容。该方法通过分析图像中的每个片段自动检出一个或者多个从认知上来说比较重要的单元,并利用傅立叶描述子来表达这些单元。通过重复上述过程,图像被转化成一个特性片断集合。基于这些片断的形状特征,该技术可以用于对图像进行存档和检索。
在[专利文档-2]中,为解决姿态旋转下的模式匹配问题,提出了基于顶点区域的匹配方法。首先,用多边形来近似对象模式的内外轮廓,并从中确定具有代表性的多边形顶点来描述模式的姿态旋转。匹配时,通过多边性的顶点而不是基于像素的方式来确定两个多边形的共同区域,从而,得到两个形状的相似度。
在[专利文档-3]中,提出了多尺度空间的方法来描述对象的形状。为了识别一个轮廓曲线,该方法采用一种循环的参数和变换过程来生成一组相互独立的傅立叶描述集,并基于这个描述集空间来表达目标对象的轮廓。据称,基于傅立叶描述集的这种方法能实现有效的识别和压缩。
上述的这些基于全局属性的方法往往不能有效地表达形状的感知特性。近年来,人们把更多的研究重心转移到了基于局部属性的方法,例如边缘、角点等。这些方法的基本思路为首先从目标对象中提取出从视觉上来说比较重要的部分,接下来,找出与两个目标对象对应的重要部分的对应关系,并基于此计算相似度。
参见[非专利文档-3],Milios和Petrakis根据轮廓上的折点将输入的轮廓形状分割为有序的凹/凸曲线段,并通过建立这些凹/凸曲线段的对应关系计算两个轮廓的相似度。相邻曲线段的合并操作在匹配过程中占有重要的地位,然而,在该方法中,合并操作只能在预先定义的规则下进行。除此之外,各曲线段的几何描述特征也并非十分有效。
H.Kauppinen,T.Seppanen,and M.Pietikainen,“An Experimental Comparison of Autoregressive and Fourier-basedDescriptors in 2-D Shape Classification,”IEEE Transaction onPattern Analysis and Machine Intelligence,vol.17,pp.201-207,1995. F.Mokhlarian,”Silhouette-Based IsolatedObject Recognition through Curvature Scale Space,”IEEETransaction on Pattern Analysis and Machine Intelligence,vol.17,pp.539-544,1995. E.Milios,E.Petrakis,“Shape RetrievalBased on Dynamic Programming,”IEEE Transaction on PatternAnalysis and Machine Intelligence,vol.9,pp.141-147,2000[专利文档-1]Patent NumberUS 6,801,661 B1[专利文档-2]Patent Number4,783,829[专利文档-3]Patent Number6,044,171发明内容该发明旨在提供一种形状比较装置,该装置能根据两个目标对象的轮廓信息来计算其相似度。利用该装置,可以实现基于形状特征的图像识别和检索功能。
为了实现本发明的目的,本发明的形状比较装置以图像对象或者图像对象的轮廓作为输入。在以图像对象作为输入的情况下,本装置首先从输入的图像对象中提取其轮廓。这样,输入被归一化为有序的边缘像素坐标序列。根据该发明,首先将轮廓近似为一个多边形,接下来,为每个多边形顶点赋予属性值,从而,将多边形转化为一个属性串。匹配时,利用串匹配技术来建立多边形间的对应关系,并由此计算它们的相似度。
根据本发明,所述的形状比较装置包括多边形近似单元,将图像对象轮廓近似为一个多边形,即将所述图像对象轮廓表达为有序的轮廓基元序列;属性生成单元,为轮廓基元以及轮廓基元组合计算属性值;比较单元,建立多边形的对应关系,并由此计算轮廓间的相似度。
根据本发明,一种形状比较方法,包括多边形近似步骤,将图像对象轮廓近似为一个多边形,即将所述图像对象轮廓表达为有序的轮廓基元序列;属性生成步骤,为轮廓基元以及轮廓基元组合计算属性值;比较步骤,建立多边形的对应关系,并由此计算轮廓间的相似度。
多边形近似单元用以将输入的图像对象的轮廓转化为多边形。一些现有的、优化的多边形近似方法都可以应用于该单元。然而,这些方法大都比较费时,尽管如此,由于噪声和图像扭曲所带来的分割不一致性问题依然没有得到彻底解决。由于分解-合并方法具有简单快速的特性,本发明采用了分解-合并方法对图像轮廓进行多边形近似。为了提高该方法的鲁棒性,采用轮廓中曲率值较高的点作为分解-合并方法的初始位置。
通过多边形近似操作,输入轮廓被简化为多边形,而这个多边形可以通过其有序顶点来完全表达。在多边形中,每一个顶点都对应着两个相交的直线段,本发明将一个顶点以及与其对应的两个边定义为一个轮廓基元。在这种方式下,无论一个轮廓基元还是几个相邻的轮廓基元的组合事实上都是折线段。属性生成单元的目的就是为各个轮廓基元以及相邻轮廓基元的组合定义属性值,换言之,就是用几何特征来描述折线段。本发明采用了两种属性旋转函数(Turning function),折线凹凸性。这两种特征都具有认知的意义,而且,可以快速的从折线段中提取。
经过多边形近似和属性生成,输入图像对象的轮廓自然而然的被转化成一个属性串,其中,每个元素均对应一个基元。在匹配单元中,采用属性串匹配技术(即动态规划技术)来建立折线段(即基元或者基元组合)的对应关系,并由此计算出轮廓间的相似度。为了解决多边形近似单元中轮廓分割的不一致性问题,比较单元中采用了合并操作,即允许一个轮廓基元同多个基元对应或者多个基元同多个基元对应。在以往的方法中,一般通过引入一种基于经验的合并代价值来近似计算合并串之间的距离,因此,距离计算的一致性难以保持。本发明中,实时计算折线段(轮廓基元或者轮廓基元组合)的属性值,因此,具有一致性的距离测度。用属性串来表达二维形状轮廓需要解决的另一个问题是如何确定属性串的起始位置,本发明中,采用了环形串匹配技术来应对这一问题。
图1表示基于轮廓分解与对应的形状比较装置的结构图。
图2为多边形近似单元的流程图。
图3A为高曲率点监测结果示例。
图3B为多边形近似结果示例。
图3C给出了组成图3B中所示多边形的所有轮廓基元。
图4展示了两个折线段的旋转函数以及它们之间的距离。
图5用一个样例来说明了一个轮廓基元被歧变成几个轮廓基元的情况。
图6解释了凹/凸度的计算方法。
图7A表示本发明的实施例中两个待比较的形状轮廓。
图7B表示本发明的实施例中两个轮廓的多边形近似结果。
图7C表示本发明的实施例中所涉及到的一个凹/凸度属性计算的例子。
图7D表示本发明的实施例中所涉及到的另一个凹/凸度属性计算的例子。
图7E给出了本发明的实施例中动态规划表的内容。
具体实施例方式
下面参照附图,对本发明的具体实施方式
进行说明。
图1为本发明的基于轮廓分解和对应的形状比较装置的结构示意图。该装置的输入为图像对象或者图像对象的轮廓,输出为它们的相似度。为了实现这一功能,该装置包含如下3个单元(1)、多边形近似单元,该单元将输入轮廓近似为一个多边形;(2)、属性生成单元,该单元为轮廓基元以及轮廓基元组合计算属性值;(3)、比较单元,该单元负责建立多边形的对应关系,并由此计算轮廓间的相似度。
根据本发明,该装置的输入只能为图像对象或者图像对象轮廓。这里,图像对象轮廓是指某个对象的轮廓像素的坐标值序列,并且,该坐标值序列为有序的,即轮廓像素的有序的坐标值序列。进一步,本发明的形状比较装置还包括图像对象轮廓提取单元,在输入为图像对象时,需要先提取出该图像对象轮廓,即提取该对象的轮廓像素的有序的坐标值序列。可以采用一些现有的方法来提取图像对象的轮廓,参见Lucianoda Fontoura Costa and Roberto Marcondes Cesar Jr.,Shape Analysisand ClassificationTheory and Practice,CRC Press LLC,page341-347。
1.多边形近似单元该单元的目的是用多边形来近似表达图像对象的轮廓,即将所述图像对象轮廓表达为有序的轮廓基元序列。可以采用一些现有的多边形近似方法来实现该功能。由于分解-合并方法具有简单和快速的特性,因此,本发明采用该方法来实现多边形近似的目的。参见L.F.Costa,R.M.Cesar,“Shape Analysis and ClassificationTheory and Practice,”CRC Press,pp.354-365。
分解-合并方法通过一个迭代过程来实现轮廓的多边形近似。首先,从轮廓上选取两个初始点将整个轮廓分解为两个曲线段,接下来,将这些曲线段反复分解为较小的曲线段,直到曲线段上的像素点到与该曲线对应的弦的距离小于给定的阈值为止。换言之,就是在可接受的误差范围内,用直线来近似曲线段。分解以后,用一个合并过程来解决分解中产生的错误,尤其是去除多余的顶点。
然而,该方法得到的近似结果同初始点密切相关,因此,需要谨慎选取初始点来尽量减少分解结果的不一致性。本发明中,采用轮廓曲线上具有较高曲率值的点作为分解-合并方法的初始点(也称初始位置),例如选取曲率值从大到小排在前面的前N个点(即曲率值最大的前N个点),或者选取所有曲率值大于某一阈值的点。
简单的说,多边形近似单元包含两个步骤(1)计算轮廓上各像素点的曲率值;(2)以具有较高曲率值的点为输入,执行分解-合并过程将输入轮廓近似为多边形。图2给出了该单元执行的操作的流程图。
1.1.曲率计算可以采用很多方法来计算曲线上某点的曲率值。在本发明的一个实施例中,采用了一种直观的方法直接计算曲率值。设Pi={(xi,yi),i=1,…,N}为图像对象轮廓的坐标序列,轮廓上某点pi的曲率值可以通过与其相邻的轮廓点来计算,如下1.计算切线方向令dyi=Σm=1M(yi+m-yi-m),]]>dxi=Σm=1M(xi+m-xi-m),]]>点pi的切线方向为θi=arctan(dyi/dxi)2.计算曲率令dθi=Σm=1M(θi+m-θi-m),]]>dli=Σm=-MM((yi+m-yi)2+(xi+m-xi))2,]]>点pi的曲率为ci=dθi/dli本发明中,可以将上述计算过程中参数M的值设置为7。
接下来,选取曲率值较大的点,并以其坐标值作为分解-合并过程的输入。可以采用一些简单的规则来选取曲率值较大的点。本发明中,选取所有曲率值大于阈值0.08的点作为初始点。图3A给出了一个高曲率点检测结果,该图中,用圆圈来标示得到的高曲率点。
上述所得的高曲率点需要排列为有序的形式,并且同轮廓像素点同方向,即如果图像对象的轮廓像素点为顺时针方向,那么这些点也应该按顺时针方向排列,否则,按逆时针方向排列。
1.2.分解-合并分解操作是一个迭代的过程,它以初始位置开始,重复检查曲线段上的像素点到与该曲线对应的弦的距离是否大于给定的阈值,如果是,则在最大距离处将该曲线段分解为两个较小的曲线段。
令pi,i=1,…,M表示前面得到的有序的高曲率点。在本发明的一个实施例中,采用两个堆栈来完成分解操作,如下所示
即,采用两个堆栈closed和opened,首先进行初始化,将第一个高曲率点推入堆栈closed,后M-1个有序的高曲率点推入堆栈open。然后循环执行下述操作设A、B分别为堆栈closed和open的最上的高曲率点,并将B从堆栈open中弹出,然后查找弧线 上到弦AB的垂直距离最大的点(将这个点以及对应的最大距离分别记为C和d(C,AB))。如果d(C,AB)的值小于阈值ε,则将B推入堆栈closed。否则将B和C都推入堆栈open。
如此重复进行,直到堆栈open为空。
上述操作中, 表示A和B两点间沿轮廓方向的轮廓曲线段,AB表示A和B两点间的直线段,即与 对应的弦,d(C,AB)表示从点C到AB的垂直距离,ε表示阈值。
接下来,执行合并操作来修改分解过程产生的错误,该操作检查相邻的两个直线段并判断是否可以把它们合并近似成一个直线段。设 和 为两个相邻的曲线段,该操作首先查找弧线 上的点到弦AC的最大距离,如果这个距离大于阈值ε,不进行合并操作,否则,合并这两个弧线段,并用弦AC来近似弧线 ,换言之,删除了顶点。
分解-合并是分解、合并的迭代过程合并操作中保留下来的顶点作为分解操作的初始点被输入分解操作;分解操作得到的顶点被输入合并操作进行检查。该迭代过程一直进行,直到没有顶点的变化为止。
分解-合并模块的具体过程如下所示
即,采用两个堆栈closed和opened。首先,进行初始化,将有序的高曲率点依次推入堆栈open。接下来,迭代执行分解-合并过程分解操作按照上述分解操作过程中初始化的要求,将第一个顶点从堆栈open中弹出,并推入堆栈closed,并以此作为初始位置循环进行分解操作。
合并操作分解操作完成后,open堆栈为空,所有的顶点存放于堆栈closed,因此,对closed中的点进行合并操作。之后,将得到的一组新顶点移入堆栈open。
如此重复进行,直到堆栈open中的内容不再发生变化为止。
迭代结束后,最终获得的顶点被存放于堆栈open中。图3B给出了一个多边形近似的例子。
在多边形表达中,每一个多边形顶点都对应着两个相交的多边形的边,本发明将一个顶点以及与其对应的两个边定义为一个轮廓基元。在这种方式下,无论一个轮廓基元还是几个相邻的轮廓基元的组合事实上都是折线段。图3C给出了组成图3B中多边形的所有的轮廓基元。
分解-合并模块保存了轮廓基元的下述信息作为其输出结果(1)顶点坐标值。
(2)轮廓基元中两个多边形边的方向。
设pi-1pipi+1为三个相邻的多边形顶点,那么,定义pi的前边方向为从点pi-1指向pi的方向,而pi的后边方向为从点pi指向pi+1的方向。
(3)轮廓基元中两个多边形边的归一化长度。
轮廓基元中两个边的长度定义为从当前顶点到前、后两顶点距离值的一半。此外,要用轮廓的总长度对这些距离值进行归一化。
2.属性生成单元经多边形近似后,输入图像对象的轮廓被表达成有序的基元序列,而且,不论是单个轮廓基元还是几个相邻基元的组合事实上都是折线段。属性生成单元的目的就是为这些轮廓基元赋予属性值,从而,将它们转化成属性串的方式。本发明中,采用了两种属性旋转函数(turningfunction)和凹/凸度。这两种属性可以用来描述任意的折线段,因此,同时适用于单个轮廓基元和多个基元组合。
2.1.旋转函数折线的旋转函数以边的长度为自变量,以折线的各个边与x轴的夹角为值域,记录了轮廓多边形中各个边的旋转情况,当边的旋转方向和轮廓方向一致时,如同为顺时针或者同为逆时针方向时,函数值增加,否则,函数值减小。折线的旋转函数是一个分段常量函数,函数值仅在与折线顶点对应的位置处发生变化,在两个相邻顶点之间,其值为常量。
关于旋转函数,参见R.C.Veltkamp,M.Hagedoorn,“State-of-the-art in Shape Matching,”in M.Lew(Ed.),Principles of Visual Information Retrieval,Springer,pp.87-119,2001。
正如前面所述,不论是一个轮廓基元还是几个轮廓基元的组合事实上都是折线段,因此,可以通过旋转函数对它们进行描述。在多边形近似单元中,记录了轮廓基元中两个边的方向以及它们的归一化长度,因此,可以很容易的生成对应的旋转函数。
根据旋转函数,可以计算两个折线段的距离。给定两个闭合的形状轮廓A、B,令ai,j和bk,l分别表示从轮廓基元ai、到aj、bk到bl的轮廓基元组合,令Θa(s)和Θb(s)分别表示这两个轮廓基元组合的旋转函数。首先将轮廓函数归一化为单位长度,那么,这两个折线段的基于轮廓函数的距离为Distt(ai,j,bk,l)=(∫01(Θa(s)-Θb(s)+θ)2ds)1/2]]>其中,θ表示使上述积分的值达到最小的旋转角度,如下所示θ=∫01Θb(s)ds-∫01Θa(s)ds]]>
显然,这个距离测度具有旋转、尺度和平移不变性,这正是在形状比较中所期望的。
图4给出了两个折线段的旋转函数以及对应的距离计算。
2.2.凹/凸度在图像对象轮廓的多边形表达中,各轮廓基元可能为凸类型也可能为凹类型。直观上来看,仅在凸(凹)类型之间建立轮廓基元的对应关系似乎更为合理。然而,由于图像噪声以及图像畸变的影响,往往需要建立一对多和多对多的基元对应关系,而且,这些基元可能属于不同的凹凸类型。例如,如图5所示,由于畸变的影响,图像对象轮廓中一个基元对应于另一个图像轮廓中的三个具有不同凹凸类型的基元,在这种情况下,这三个轮廓基元应该合并在一起同第一个图像轮廓中的基元进行匹配。
然而,并非所有的合并匹配都是合理的,有些情况下,合并将会导致错误的结果。本发明中,利用凹凸度来度量合并匹配操作的合理性。该测度的出发点是鼓励那些合理的合并匹配操作,并通过一个较高的惩罚值来抑制不合理的合并匹配操作。
令ai,j表示从轮廓基元ai到aj组成的基元组合,ai,j的凹凸度定义如下(1)以点集ai,…,aj为输入,计算其凸壳(convex hull)。
可以采用一些现有的方法来计算点集的凸壳,本发明采用了Graham算法,参见J.O’rourke,Computational Geometry in C,CambridgeUniversity Press,pp.72-87。
(2)扫描该凸壳的内部区域,并分别计算该区域中位于闭合轮廓内部和外部的面积,记为InA和OutA。该轮廓基元组合的凹凸度为c(ai,j)=(InA-OutA)/(InA+OutA)显然,凹凸度的取值范围为-1到1,其中,极值-1和1分别表示凹、凸基元。而且,凹凸度属性具有旋转、平移和尺度不变性。图6用一个例子显示了该属性的计算过程。
在多边形近似单元中,记录了各个多边形顶点的坐标。利用这些坐标值,可以很容易的通过上述过程来计算轮廓基元的凹凸度。
给定两个闭合的形状轮廓A、B,令ai,j和bk,l分别表示从轮廓基元ai到aj、bk到bl的轮廓基元组合。基于凹凸度属性,这两个折线段的距离为Distc(ai,j,bk,l)=|c(ai,j)-c(bk,l)|本发明还提供了另一种简化的凹凸度计算方法,该方法不需要计算多边形顶点的凸壳,因此,其计算速度大大提高。具体方法如下所示正如前面所述,一个轮廓基元由一个多边形顶点和两个多边形的边组成,而且该顶点是这两条边的交点,因此,这个顶点与这两条边的另外两个端点一起组成一个三角形。该方法中,需要预先计算各个轮廓基元对应的三角形的面积,并将凹基元的面积取负值。令ai,j表示从轮廓基元ai到aj的轮廓基元组合,Area(ai)表示与轮廓基元at对应的三角形面积,那么,ai,j的凹凸度定义为c(ai,j)=Σt=ijArea(at)/Σt=ij|Area(at)|]]>3.比较单元本发明中,多边形近似单元将输入的图像对象轮廓转化为有序的轮廓基元序列,属性生成单元为轮廓基元(单个基元或者多个基元的组合)定义了属性。在这种方式下,输入的图形对象轮廓被转化为一个属性串,因此,可以通过建立轮廓基元的对应关系来完成图像对象轮廓相似度的比较。这种对应关系的建立事实上是一个最小化问题,可以通过串匹配技术或者说是动态规划(dynamic programming)来实现。
动态规划通过一个大小为(n+1)×(m+1)的矩阵(动态规划表)来计算两个长度为n和m的串的距离。该表格的每一个格子D(i,j)对应于第一个串中前i个元素组成的子串和第二个串中前j个元素组成的子串之间的距离。在标准动态规划技术中,D(i,j)的值通过与其相邻的前3个格子的值以及这3个格子到当前格子的编辑距离来确定,即 计算D(i-1,j-1)的值以及从D(i-1,j-1)到D(i,j)的距离的和; 计算D(i,j-1)的值以及从D(i,j-1)到D(i,j)的距离的和; 计算D(i-1,j)的值以及从D(i-1,j)到D(i,j)的距离的和;
最后,取上述3个距离和的最小值作为D(i,j)的值。
由于噪声和畸变的影响,多边形近似中总是存在不一致性,例如,第一个轮廓中的一个基元有可能因为畸变而对应于第二个轮廓中的几个基元。标准的串匹配方法(或者动态规划)仅仅利用替换、删除、插入三种基本操作对两个串进行匹配,因此,在上述畸变的情况下往往不能得到较好的效果。本发明的一个实施例中,采用了合并操作来解决这一问题,简言之,在匹配时允许多个基元合并为一个基元参与匹配,因此,实现了基元间的一对多和多对多的对应。与以往的方法所不同的是,本发明实时计算合并基元的属性值来进行匹配,而不是简单的通过一个基于经验的合并代价值来实现,因此,保证了匹配计算的一致性。
用属性串表示二维形状轮廓需解决的另一个问题是串的初始位置问题。直观上看,可以对一个串进行循环移位,再计算移位后的串与另一个串的距离,最后取这些距离中的最小值最为最终的结果。然而,该方法比较费时,其计算复杂度为O(mn2)。本发明中,采用循环串匹配技术来解决这一问题,从而,将计算复杂度降低为O(2mn)。循环串匹配技术的基本思路是利用标准串匹配技术计算串A和串B2的距离,从而实现A和B的循环匹配,这里,B2表示将B周期延拓一次后得到的串。当然,也可以通过周期延拓串A来实现。基于该方法,动态规划表的大小从原来的(n+1)×(m+1)增长为现在的(n+1)×(2m+1)。
关于循环串匹配的更多信息,可以参见H.Bunke,U.buhler,“Application of Approximating String Matching to 2D ShapeRecognition,”Pattern Recognition,vol.26,pp.1797-1812,1993。
令A=a1,…,an和B=b1,…,bm分别表示两个待匹配的形状,其中,ai和bk表示这两个形状的轮廓基元,令ai,j(bk,l)表示位于基元ai和aj(bk和bl)之间的有序基元组合,si,j(sk,l)为其归一化长度。本发明中,串匹配中的代价函数定义如下 插入操作c(λ→ai,j)=k*si,j 删除操作c(bk,l→λ)=k*sk,l 替换操作c(ai,k→bk,l)=Dist(ai,j,bk,l)*(si,j+sk,l)*max(si,jsk,l+sk,lsi,j)]]>
上式中,k为待定参数。
根据轮廓基元的属性,ai,j和bk,l之间的距离Dist(ai,j,bk,l)由下式计算得到Dist(ai,j,bk,l)=Distt(ai,j,bk,l)+α×Distc(ai,j,bk,l)其中,Distt()和Distc()分别表示对应于旋转函数和凹/凸度的距离值,α为指定系数,一般在0到1之间。
在多边形近似单元中,保存了轮廓基元中两条边的归一化长度,因此,可以轻易得到si,j和sk,l的值。
本发明中,提供了下述方法从理论上估计插入和删除操作中参数k的值。
首先,将插入和删除操作的代价函数扩展为与替换操作类似的形式,如下c(λ→ai,j)=(kt+a*kc)*kl*si,jc(bk,l→λ)=(kt+a*kc)*kl*sk,l其中,kt、kc和kl分别对应于替换操作中的Distt()、Distc()和基元(基元组合)长度比。下面,用统计的方法来估计这三个参数的值。
kt的值被表达为以轮廓基元数目为自变量的一个函数。给定基元数目N(对于ai,j,N等于j-i+1,对于bk,l,N等于l-k+1),按照均匀分布随机生成两个N+1段分段常量的旋转函数,并计算其距离。重复上述过程(本发明的一个实施例中,重复进行10,000次),从而计算出这些距离值的均值和方差,记为Mt(N)、St(N)。利用二次项近似,可以得到下述关系N=1.029*Mt(N)2-0.265*Mt(N)+1.271N=5.587*St(N)2+3.325*St(N)-2.963参数kt的值最终定为kt=Mt(N)+St(N)假设凹/凸度服从[-1,1]之间的均匀分布,Distc()的均值和方差可以直接计算得到,即2/3和/3,并将参数kc设为这两个值的和,即kc=2/3+/3参数kl的值实时计算得到,就是说,对于不同的待匹配形状对象,这个参数的值也将不同。给定两个待匹配形状轮廓A和B,计算这两个形状轮廓中所有轮廓基元的长度比
并将kl设为这些比值的均值和方差的和。
根据本发明,比较单元的特征在于(1)循环串匹配;(2)合并操作;(3)为合并基元实时计算属性值,而不是通过基于经验的合并代价值来应对匹配操作。
此外,在比较操作中,通过参数LimitM来控制合并操作中所允许的最大合并单元的数目。
给定两个待匹配形状轮廓A=a1,…,an和B=b1,…,bm,比较单元的实现过程如下所示(1).计算参数k1的值。
(2).计算动态规划表中各个格子的值。
该过程的目的是完成大小为(m+1)×(2n+1)的动态规划表中各个格子的值。
首先进行初始化,即计算动态规划表中第一行和第一列的值。
接下来,按照从左到右的顺序逐行计算各个格子的值。为计算格子D(i,j)的值,需要参考下述格子的值以及从这些格子到D(i,j)的编辑距离D(i-k,j-l),k=0,…,min(LimitM,i),l=0,…,min(LimitM,j),而且k,j不同时为0。
当前状态下,这些格子的值已经计算出,因此,只需计算从这些格子到D(i,j)的编辑距离。最后,从这些格子中选取其值和对应的编辑距离的和最小的那个格子作为D(i,j)的源格子,并将这个和值作为D(i,j)的值。
(3).从动态规划表中选取这两个形状轮廓的距离值,即格子D(m,j),j=n+1,…,2n之间的最小值。
实施例下面,通过一个实施例来介绍本发明的实现过程。
图7A给出了两个待匹配的输入形状图像对象,这两个形状对象的轮廓长度分别为481和692。下面的介绍中,将图7A中左边的形状对象记为a,右边的形状对象记为b。本实施例中,这两个形状对象的轮廓像素都是按逆时针方向排列。
图7B给出了图7A中两个形状对象的轮廓近似结果。本实施例中,分解-合并操作的参数ε值为“轮廓长度乘以系数0.02”,因此,这两个形状对象对应的ε值分别为9.62和13.84。
多边形近似后得到的顶点按照与轮廓相同的方向进行排序,因此,本实施例中这些顶点按逆时针方向排列。对于形状对象a,多边形近似后得到10个顶点。在图7B中,这些顶点分别用数字1到10进行标记,这些顶点的坐标分别为
每一个多边形顶点连同与其相连的两条边被定义为一个轮廓基元。根据多边形顶点的坐标值,可以计算出各个基元的相关信息,包括前边和后边方向,前边和后边的归一化长度。下面,以形状对象a为例,介绍具体的计算过程(1)对于顶点1,与其相邻的前后顶点分别为10和2。因此,该基元的前边(后边)方向为从顶点10(1)到顶点1(2)的方向,具体值为0.15(0.77);前(后)边的归一化长度为顶点10(2)到顶点1距离的一半值,具体值分别为22.8(34.7)。
(2)对于顶点2,与其相邻的前后顶点分别为1和3。因此,其前边(后边)方向为从顶点1(2)到顶点2(3)的方向,具体值为0.77(2.34);前(后)边的归一化长度为顶点1(3)到顶点2距离的一半值,具体值分别为34.7(27.9)。
类似地,可以计算出所有10个轮廓基元的相关信息。
最后,用多边形的周长对轮廓基元中的边的长度进行归一化。最终得到的各轮廓基元的相关信息如下
该实施例中,允许合并的最大轮廓基元数目为3,换言之,最多允许3个相邻的轮廓基元合并成一个基元参与匹配。因此,本实施例采用第一种凹凸度计算方法预先计算出所有可能的合并基元组合的凹凸度值。匹配时,这些凹凸度值通过查表的方式直接得到。
本实施例中,为每一个形状对象建立一个凹凸度表。该表的行数目等于轮廓基元的数目,列数目等于允许合并的最大轮廓基元数目,即3。该表的每一行对应于一个轮廓基元,其中的3列分别对应于该基元的凹凸度值;该基元与后一个相邻基元的组合的凹凸度值;该基元与后两个相邻基元的组合的凹凸度值。
下面,以形状对象a中的基元4为例,介绍凹凸度的计算过程(1)第一列,即基元4本身的凹凸度的值。一个独立的基元要么是一个纯粹的凹折线,要么是一个纯粹的凸折线,因此,其凹凸度要么为1,要么为-1。显然,作为一个凸折线,基元4的凹凸度为1。
(2)第二列,对应于基元4和5的凹凸度,计算过程如下
计算该折线的凸壳。以下列4个点为输入计算其凸壳顶点4、顶点5、顶点3和顶点4的中点、顶点5和顶点6的中点。这4个点的坐标值分别为(81,110)、(42,61)、(109,104)、(26,66)。
扫描上述凸壳的内部区域,从而计算该区域中位于闭合轮廓内部和外部的面积。该区域中位于闭合轮廓内外的像素数目分别为781和490,因此,其凹凸度为(781-409)/(781+409)=0.3126图7C给出了与基元4和5对应的折线及其凸壳。
(3)第三列,对应于由基元4、5和6组成的基元组合的凹凸度。计算过程如下
计算该折线的凸壳。以下列5个点为输入计算其凸壳顶点4、顶点5、顶点6、顶点3和顶点4的中点、顶点6和顶点7的中点。这5个点的坐标值分别为(81,110)、(42,61)、(10,70)、(109,104)、(6,56)。
扫描上述凸壳的内部区域,从而计算该区域中位于闭合轮廓内部和外部的面积。该区域中位于闭合轮廓内外的像素数目分别为1013和885,因此,其凹凸度为(1013-885)/(1013+885)=0.0674图7D给出了与这三个基元对应的折线及其凸壳。
采用类似的过程,为每个基元计算其可能的凹凸度,最后得到的结果如下所示
接下来,通过比较单元计算两个形状对象的相似度。该单元通过动态规划技术建立基元间的对应关系,其中心任务就是计算完成动态规划表中各个格子的值。该表格中的每个格子对应于当前的子串间的距离,例如D(i,j)表示第一个形状轮廓中前i个基元和第二个形状轮廓中前j个基元间的最优匹配距离。正如前面所说,为了确定动态规划表中某个格子的值,需要考虑前面的格子的值以及从这些格子到当前格子的编辑距离,并取其中的最小值作为这个格子的最终值。由于采用了合并操作,不能仅仅考虑前3个相邻的格子,而是需要考虑更多的格子,例如为了计算D(i,j)的值,需要考虑下述相邻的格子{D(i-l,j-k),l,k=1,…,LimitM其中l,k不同时为0}其中,LimitM为合并操作中所允许的最大合并数目。
另ai和bj分别表示形状对象a和b的基元,其数目均为10。按照循环匹配的规则,将轮廓b的基元周期延拓一次,因此,本实施例需要完成一个大小为11×21的动态规划表。
接下来,通过一个例子来介绍如何计算动态规划表中各个格子的值。假设当前格子为D(i=6,j=9),按照上面的介绍,为了确定该格子的值,需要考虑从D(i=3,j=6)到D(i=6,j=9)的15个相邻格子的值以及从这些格子到D(i=6,j=9)的编辑距离。
这些相邻格子的具体位置如下D(3,6) D(3,7) D(3,8) D(3,9)D(4,6) D(4,7) D(4,8) D(4,9)D(5,6) D(5,7) D(5,8) D(5,9)D(6,6) D(6,7) D(6,8)这些格子的当前的值如下
下面,需要根据代价函数计算从这些相邻格子到当前格子D(i=6,j=9)的编辑距离。例如从D(4,9)到当前格子的编辑距离为c(λ→a5,6),就是说,通过在形状对象b中插入一个空基元来匹配形状对象a中的基元a5和a6;从D(5,7)到当前格子的编辑距离为c(a6→b8,9),就是说,形状对象a中的基元a6同形状对象b中的基元b8和b9匹配所产生的距离。
经计算,从这些相邻格子到当前格子的距离值为
将这些相邻格子的当前值与上述编辑距离值相加,得到如下结果
上述结果中的最小值就是当前格子D(6,9)的值,即1.15。同时,与这个最小值对应的格子,即D(5,7)被称为D(6,9)的源。
重复上述过程计算动态规划表中所有格子的值,如图7E所示。在该图中,用箭头表示各个格子的源。输入的两个形状对象的距离通过计算格子D(10,11)到D(10,20)的最小值获得,即与D(10,18)对应的值0.48。以D(10,18)为起点,顺序追踪各个格子的源,就可以获得一条路径来指示轮廓基元间的对应关系。例如首先获得D(10,18)的源D(9,17),即a10和b8两个基元被匹配在一起;接下来,获得D(9,17)的源D(8,16),即a9和b7两个基元被匹配在一起;类似的,获得D(8,16)的源D(5,14),即基元a8、a7、a6合并在一起与基元b6、b5的合并组合进行匹配。重复上述过程,直到达到动态规划表的第一行为止。图7E中,用黑色的粗实线表示本实施例中得到的路径,因此,基元间的对应关系为
a10-b8a9-b7a6,a7,a8-b5,b6a5-b4a4-b3a3-b2a1,a2-b1,b10根据以上的说明,在本发明的另一方面,本发明提供了一种形状比较方法,包括多边形近似步骤,将图像对象轮廓近似为一个多边形,即将所述图像对象轮廓表达为有序的轮廓基元序列;属性生成步骤,为轮廓基元以及轮廓基元组合计算属性值;比较步骤,建立多边形的对应关系,并由此计算轮廓间的相似度。
在所输入的是图像对象而不是图像对象轮廓时,所述方法还包括图像对象轮廓提取步骤,提取输入所述装置的图像对象的图像对象轮廓。
优选地,所述多边形近似步骤采用分解-合并方法将图像对象轮廓近似为一个多边形。所述属性值为旋转函数和凸/凹度之一或它们两者。所述比较步骤使用串匹配技术来进行图像对象轮廓相似性的比较。
本领域技术人员应该认识到,在各个实施例中,可以通过专门的电路或线路(例如,互连以执行专门功能的离散逻辑门)、通过由一个或更多个处理器执行的程序指令,或者通过两者的组合来执行本文所说明的各个动作。因此,可以通过多种不同的形式来实施本文所说明的各个方面,并且所有这些形式都被认为处于所描述内容的范围内。对于该各个方面中的每一个,任何这种形式的实施例在此都可以指“被构造用来执行所述动作的逻辑”,或者另选地,是指“执行或者能够执行所述动作的逻辑”。
进一步,根据本发明的实施例,本发明的目的还可以由可以使计算机或单片机等执行上述操作的计算机程序实现。
进一步,根据本发明的实施例,本发明的目的还可以由计算机可读介质实现,所述介质存储上述的程序。计算机可读介质可以是能够包含、存储、传达、传播、或传送程序,以由指令执行系统、设备或装置使用的或与指令执行系统、设备或装置相结合的任何装置。该计算机可读介质例如可以是但不限于电子、磁、光、电磁、红外或半导体系统、设备、装置或者传播介质。该计算机可读介质的更具体的示例(非穷尽列举)可以包括具有一根或更多根导线的电连接、便携式计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、光纤,以及便携式光盘只读存储器(CDROM)。
本发明实施例的以上说明只用于例示和说明的目的。前述说明并不旨在将本发明穷尽在或限制在所公开的精确形式。很明显,对于本领域的技术人员来说,许多修改和变型是显而易见的。所选择并描述的实施例是为了最好地解释本发明的原理及其实际应用,从而使本领域其他技术人员理解本发明的各种实施例及其各种变型例,以适合于特定的预期使用。应该理解,本发明的范围由权利要求和它们的等同物限定。
权利要求
1.一种形状比较装置,包括多边形近似单元,将图像对象轮廓近似为一个多边形,即将所述图像对象轮廓表达为有序的轮廓基元序列;属性生成单元,为轮廓基元以及轮廓基元组合计算属性值;比较单元,建立多边形的对应关系,并由此计算轮廓间的相似度。
2.根据权利要求1所述的形状比较装置,还包括图像对象轮廓提取单元,提取输入所述装置的图像对象的图像对象轮廓。
3.根据权利要求1所述的形状比较装置,其特征在于,所述多边形近似单元采用分解-合并方法将图像对象轮廓近似为一个多边形。
4.根据权利要求3所述的形状比较装置,其特征在于,所述多边形近似单元采用所述图像对象轮廓上具有较高曲率值的点作为所述分解-合并方法的初始点。
5.根据权利要求4所述的形状比较装置,其特征在于,所述较高曲率值的点为曲率值从大到小排在前面的指定个数的点,或者所有曲率值大于某一阈值的点。
6.根据权利要求1所述的形状比较装置,其特征在于,所述属性值为旋转函数和凸/凹度之一或它们两者。
7.根据权利要求6所述的形状比较装置,其特征在于,所述凸/凹度为令ai,j表示从轮廓基元ai到aj组成的基元组合,则ai,j的凹凸度c(ai,j)为c(ai,j)=(InA-OutA)/(InA+OutA)其中,InA和OutA分别为点集ai,…,aj的凸壳的内部区域中位于闭合轮廓内部和外部的面积。
8.根据权利要求6所述的形状比较装置,其特征在于,所述凸/凹度为令ai,j表示从轮廓基元ai到aj的轮廓基元组合,Area(ai)表示与轮廓基元at对应的三角形面积,那么,ai,j的凹凸度c(ai,j)定义为c(ai,j)=Σt=ijArea(at)/Σt=ij|Area(at)|.]]>
9.根据权利要求6所述的形状比较装置,其特征在于,轮廓基元组合为一组相邻的轮廓基元的组合,这个组合的数目最多为允许与其合并的最大轮廓基元数目。
10.根据权利要求1所述的形状比较装置,其特征在于,所述比较单元使用串匹配技术来进行图像对象轮廓相似度的比较。
11.根据权利要求10所述的形状比较装置,其特征在于,所述比较单元采用循环匹配策略,即,当比较A和B时,用标准串匹配技术计算串A和串B2的距离,B2表示将B周期延拓一次后得到的串。
12.根据权利要求10或11所述的形状比较装置,其特征在于,所述比较单元采用合并操作,即,为了计算D(i,j)的值,需要考虑下述相邻的格子{D(i-l,j-k),l,k=0,…,LimitM,并且l,k不同时为0}其中,D(i,j)表示第一个形状轮廓中前i个基元和第二个形状轮廓中前j个基元间的最优匹配距离,LimitM为合并操作中所允许的最大合并数目。
13.根据权利要求12所述的形状比较装置,其特征在于,所述D(i,j)的值依据以下公式计算D(i,j)=Distt(i,j)+α×Distc(i,j)其中,Distt()和Distc()分别表示对应于旋转函数和凹/凸度的距离值,α为指定系数,在0到1之间。
14.根据权利要求1所述的形状比较装置,其特征在于,所述属性生成单元预先计算属性值,所述比较单元在比较时通过查表获得这些属性值。
15.根据权利要求1所述的形状比较装置,其特征在于,所述比较单元在比较时通过所述属性生成单元实时获得所述属性值。
16.一种形状比较方法,包括多边形近似步骤,将图像对象轮廓近似为一个多边形,即将所述图像对象轮廓表达为有序的轮廓基元序列;属性生成步骤,为轮廓基元以及轮廓基元组合计算属性值;比较步骤,建立多边形的对应关系,并由此计算轮廓间的相似度。
17.根据权利要求16所述的形状比较方法,还包括图像对象轮廓提取步骤,提取输入所述装置的图像对象的图像对象轮廓。
18.根据权利要求16所述的形状比较方法,其特征在于,所述多边形近似步骤采用分解-合并方法将图像对象轮廓近似为一个多边形。
19.根据权利要求18所述的形状比较方法,其特征在于,所述多边形近似步骤采用所述图像对象轮廓上具有较高曲率值的点作为所述分解-合并方法的初始点。
20.根据权利要求19所述的形状比较方法,其特征在于,所述较高曲率值的点为曲率值从大到小排在前面的指定个数的点,或者所有曲率值大于某一阈值的点。
21.根据权利要求16所述的形状比较方法,其特征在于,所述属性值为旋转函数和凸/凹度之一或它们两者。
22.根据权利要求21所述的形状比较方法,其特征在于,所述凸/凹度为令ai,j表示从轮廓基元ai到aj组成的基元组合,则ai,j的凹凸度c(ai,j)为c(ai,j)=(InA-OutA)/(InA+OutA)其中,InA和OutA分别为点集ai,…,aj的凸壳的内部区域中位于闭合轮廓内部和外部的面积。
23.根据权利要求21所述的形状比较方法,其特征在于,所述凸/凹度为令ai,j表示从轮廓基元ai到aj的轮廓基元组合,Area(ai)表示与轮廓基元at对应的三角形面积,那么,ai,j的凹凸度c(ai,j)定义为c(ai,j)=Σt=ijArea(at)/Σt=ij|Area(at)|.]]>
24.根据权利要求21所述的形状比较方法,其特征在于,轮廓基元组合为一组相邻的轮廓基元的组合,这个组合的数目最多为允许与其合并的最大轮廓基元数目。
25.根据权利要求16所述的形状比较方法,其特征在于,所述比较步骤使用串匹配技术来进行图像对象轮廓相似性的比较。
26.根据权利要求25所述的形状比较方法,其特征在于,所述比较步骤采用循环匹配策略,即,当比较A和B时,用标准串匹配技术计算串A和串B2的距离,B2表示将B周期延拓一次后得到的串。
27.根据权利要求25或26所述的形状比较方法,其特征在于,所述比较步骤采用合并操作,即,为了计算D(i,j)的值,需要考虑下述相邻的格子{D(i-l,j-k),l,k=0,…,LimitM,并且l,k不同时为0}其中,D(i,j)表示第一个形状轮廓中前i个基元和第二个形状轮廓中前j个基元间的最优匹配距离,LimitM为合并操作中所允许的最大合并数目。
28.根据权利要求27所述的形状比较方法,其特征在于,所述D(i,j)的值依据以下公式计算D(i,j)=Distt(i,j)+α×Distc(i,j)其中,Distt()和Distc()分别表示对应于旋转函数和凹/凸度的距离值,α为指定系数,在0到1之间。
29.根据权利要求16所述的形状比较方法,其特征在于,所述属性生成步骤预先计算属性值,所述比较步骤在比较时通过查表获得这些属性值。
30.根据权利要求16所述的形状比较方法,其特征在于,所述比较步骤在比较时通过所述属性生成步骤实时获得所述属性值。
全文摘要
本发明公开了一种基于轮廓分解与对应的形状比较装置和形状比较方法。所述装置包括多边形近似单元,将图像对象轮廓近似为一个多边形,即将所述图像对象轮廓表达为有序的轮廓基元序列;属性生成单元,为轮廓基元以及轮廓基元组合计算属性值;比较单元,建立多边形的对应关系,并由此计算轮廓间的相似度。优选地,还包括图像对象轮廓提取单元,在输入所述装置的是图像对象而不是图像对象轮廓时,提取输入所述装置的图像对象的图像对象轮廓。
文档编号G06T7/60GK101055620SQ20061007213
公开日2007年10月17日 申请日期2006年4月12日 优先权日2006年4月12日
发明者刘汝杰, 马场孝之, 远藤进, 椎谷秀一, 上原祐介, 增本大器 申请人:富士通株式会社