一种手绘草图离线识别与整形方法转让专利

申请号 : CN201310289788.8

文献号 : CN103400109B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋永红张云张元林刘阳

申请人 : 西安交通大学

摘要 :

一种手绘草图离线识别与整形方法,首先对输入图像预处理,然后将连通域中离散的、无序的点集转换为有序的点序列并压缩;随后采用动态规划算法对点序列进行多直线拟合,确定最优拟合直线的条数后,得到每个连通域的由直线表示的笔画;随后对多直线拟合后的笔画结果进行分析,若拟合出来的直线条数大于系统所能识别形状的最大边数,则对该笔画进行降阶处理,对其进行分类并计算笔画之间的距离,选取较近的笔画进行合并分析,并依赖几何特征进行验证确定输入笔画组合所构成的形状;本发明方法具有较高的识别率,且待识别形状有尺度不变性以及旋转不变性;本算法同时支持识别有限种形状的多笔画形式,克服完全基于几何特征进行识别时可能出现的问题。

权利要求 :

1.一种手绘草图离线识别与整形方法,其特征在于:包括如下步骤:

步骤1:输入图像预处理过程:包括输入图像,对输入图像二值化、细化、去毛刺操作以及对图像的连通域标记,然后输出图像;

步骤2:笔画多直线拟合过程:首先对圆形进行识别,然后对每个非圆的连通域进行笔画跟踪,将该连通域中离散的、无序的点集转换为有序的点序列,即在线输入中的笔画,始末点为连通域的端点;然后对点序列进行压缩;随后采用动态规划算法对该连通域对应的点序列进行多直线拟合,确定最优拟合直线的条数后,得到每个连通域的由直线表示的笔画;

步骤3:连通域分析组合过程:首先对多直线拟合后的笔画结果进行分析,若该笔画拟合出来的直线条数大于系统所能识别形状的最大边数,则对该笔画进行降阶处理,笔画降阶后,按照该笔画拟合出的直线条数对其进行分类,并计算其与其他笔画之间的距离;按照笔画阶数从高到低的顺序,通过启发式的规则约束选取距离最近的笔画进行合并;并对合并后的组合形状,通过几何特征进行验证确定输入笔画组合所构成的形状并输出识别的形状;

步骤2所述的笔画跟踪分为两个部分,第一部分首先对连通域进行轮廓跟踪,对于封闭笔画该轮廓作为其点序列;第二部分对于不封闭笔画,其轮廓包括了内轮廓和外轮廓,二者近乎一致,需确定不封闭笔画始末点来对轮廓进行区分,从而确定笔画点序列;

经过笔画的点序列跟踪后能够得到一个有序的点序列来表示该笔画,有序的点序列看作是一条矢量曲线;有序的点序列中的点是连续的,且除了不封闭笔画的始末点外,每个点都有其传入点和后继点。

2.根据权利要求1所述的一种手绘草图离线识别与整形方法,其特征在于:步骤2所述的对点序列进行压缩采用Douglas-Peucker算法对笔画的点序列进行压缩,用压缩后的点表示笔画。

说明书 :

一种手绘草图离线识别与整形方法

技术领域

[0001] 本发明涉及手绘草图识别技术领域,具体涉及一种手绘草图离线识别与整形方法。

背景技术

[0002] 手绘草图按输入方式可分为在线识别以及离线识别。在线识别是在用户输入的同时(或稍有延迟)进行特征提取以及图形识别,因此在线识别需要依靠计算机硬件将用户实时输入的笔画转化为机器可以判断、认知的符号。相反,离线识别将会发生在用户输入完毕后的任何时间,完全不依赖于用户输入的任何过程,图形的获得仅依靠扫描静态图片所生成的手绘草图。
[0003] 目前针对手绘草图识别的算法研究已成为一个热点。国内外现有的草图识别方法主要包括三类:
[0004] 一是基于机器学习的方法,例如神经网络、隐马尔科夫模型、SVM等方法已经应用在了手绘草图识别领域,且该类方法的识别率比较高。但该类方法的缺点也是比较明显的,其在系统初始化过程中需要大量样本数据,且对这些数据训练时间比较长,因此它的拓展及推广受到了较大的限制。
[0005] 二是基于决策树的方法[1],主要针对离线草图。该类方法将手绘图形首先分割成若干个部分,通过一系列预先制定的规则建立起决策树,该树的每个叶子节点代表一种输出形状。但由于在实际情形中,手绘草图的输入具有较大的不确定性以及随意性,将各种图形分割成标准笔画几乎不可能。
[0006] 三是基于低层特征方法[2],该类方法又集中于以下三种:基于动作的识别、基于外观的识别以及基于几何特征的识别,其中:基于动作的草图识别主要针对在线输入的草图,该方法识别形状或归类形状的过程都依赖于用户输入笔画的动作,而不关心这些笔画看起来或实际上是什么形状;基于外观的草图识别主要是应用计算机视觉的方法来解决草图识别问题。该类方法主要关注一个手绘形状的外观,然后应用一些形式的模板匹配来度量候选形状与待识别形状的差别,从而将待识别形状分类以达到草图识别的目的。但由于手绘图形的多样性以及笔画的不确定性,该方法对同一种形状的多种表现形式识别将会遇到一些困难;基于几何特征的草图识别依靠目标形状的几何特征来识别形状。该类方法对于草图的形变、旋转以及尺寸都有较好的鲁棒性,同时具有识别速度快、识别精度高的特点。但是对于某个形状的多笔画样式,该类方法在离线识别中无法区分哪些笔画属于同一个形状。
[0007] 除此以外,还有基于过滤器等的一些特殊识别方法。上述这些方法对于系统输入都有一些缺点及较苛刻的限制,因此相信对该领域的研究不会停止。
[0008] 参考文献
[0009] [1]S Revankar,B Yegnanaraynana.Machine Recognition and Corection of Freehand Geometric Line Sketches.IEEE Systems,Man,and Cybernetics,1991.1:87-92.
[0010] [2]Paulson,B.Rethinking Pen Input Intrraction:Enabling Freehand Sketching Through Improved Primitive Recognition.Phd thesis,Texas A&M University,2010.

发明内容

[0011] 为了解决上述现有技术存在的问题,本发明的目的在于提供一种手绘草图离线识别与整形方法,本方法能够识别目标图形包括圆形、矩形、菱形、平行四边形、梯形、三角形、圆形、箭头以及直线,具有较高的识别率,且待识别形状有尺度不变性以及旋转不变性;本算法同时支持识别有限种形状的多笔画形式,克服完全基于几何特征进行识别时可能出现的问题。
[0012] 为达到以上目的,本发明采用如下技术方案:
[0013] 一种手绘草图离线识别与整形方法,其特征在于:包括如下步骤:
[0014] 步骤1:输入图像预处理过程:包括输入图像,对输入图像二值化、细化、去毛刺操作以及对图像的连通域标记,然后输出图像;
[0015] 步骤2:笔画多直线拟合过程:首先对圆形进行识别,然后对每个非圆的连通域进行笔画跟踪,将该连通域中离散的、无序的点集转换为有序的点序列,即在线输入中的笔画,始末点为连通域的端点;然后对点序列进行压缩;随后采用动态规划算法对该连通域对应的点序列进行多直线拟合,确定最优拟合直线的条数后,得到每个连通域的由直线表示的笔画;
[0016] 步骤3:连通域分析组合过程:首先对多直线拟合后的笔画结果进行分析,若该笔画拟合出来的直线条数大于系统所能识别形状的最大边数,则对该笔画进行降阶处理,笔画降阶后,按照该笔画拟合出的直线条数对其进行分类,并计算其与其他笔画之间的距离;按照笔画阶数从高到低的顺序,通过启发式的规则约束选取距离较近的笔画进行合并;并对合并后的组合形状,通过几何特征进行验证确定输入笔画组合所构成的形状并输出识别的形状。
[0017] 步骤2所述的点序列跟踪分为两个部分,第一部分首先对连通域进行轮廓跟踪,对于封闭笔画该轮廓即可作为其点序列;第二部分对于不封闭笔画,其轮廓包括了内轮廓和外轮廓,二者近乎一致,需确定不封闭笔画始末点来对轮廓进行区分,从而确定笔画点序列;
[0018] 经过笔画的点序列跟踪后能够得到一个有序的点序列来表示该笔画,有序的点序列可以看作是一条矢量曲线;这些点序列中的点是连续的,且除了不封闭笔画的始末点外,每个点都有其传入点和后继点,同时笔画的连贯性使得大多数相邻的点在方向上不会有太大的突变。
[0019] 步骤2所述的对点序列进行压缩采用Douglas-Peucker算法对笔画的点序列进行压缩,用尽可能少的点表示笔画。
[0020] 本发明和现有技术相比,具有如下优点:
[0021] 本发明的主要思想是将笔画中离散无序的点集转换为有序的点序列,得到类似在线草图识别中的笔画绘制信息,然后对笔画进行多直线拟合并对多直线表示的笔画进行组合分析,从而对可能组成的形状进行识别整形。经过测试统计,本文方法的整体识别率达到了91.39%,其中对三角形与单直线的识别率较高,大于97%,而对平行四边形、菱形和梯形的识别率则较低,约为84%。

附图说明

[0022] 图1——算法整体流程图。
[0023] 图2——输入图像预处理过程流程图。
[0024] 图3——笔画多直线拟合过程流程图。
[0025] 图4——输入形状经多直线拟合前后的形状,其中图4a为输入的原始三角形和矩形,图4b为笔画经多直线拟合后的形状。
[0026] 图5——手绘笔画的压缩前后结果,其中:图5a为输入的草图笔画,图5b为压缩后笔画保留的点。
[0027] 图6——连通域分析组合过程流程图。
[0028] 图7——多直线拟合后的笔画降阶前后的形状,其中图7a为笔画降阶前的形状,图7b为笔画降阶后的形状。
[0029] 图8——笔画在不同拟合直线条数时误差笔画率,其中图8a为笔画S1,图8b为S1在不同k时拟合误差变化率,图8c为笔画S2,图8d为S2在不同k时拟合误差变化率。

具体实施方式

[0030] 以下结合附图及具体实施例对本发明作进一步的详细描述。
[0031] 如图1所示,本发明一种手绘草图离线识别与整形方法,包括如下步骤:
[0032] 步骤1:输入图像预处理过程:包括输入图像,对输入图像二值化、细化、去毛刺操作以及对图像的连通域标记,然后输出图像;
[0033] 步骤2:笔画多直线拟合过程:首先对圆形进行识别,然后对每个非圆的连通域进行笔画跟踪,将该连通域中离散的、无序的点集转换为有序的点序列,即在线输入中的笔画,始末点为连通域的端点;然后对点序列进行压缩;随后采用动态规划算法对该连通域对应的点序列进行多直线拟合,确定最优拟合直线的条数后,得到每个连通域的由直线表示的笔画;
[0034] 步骤3:连通域分析组合过程:首先对多直线拟合后的笔画结果进行分析,若该笔画拟合出来的直线条数大于系统所能识别形状的最大边数,则对该笔画进行降阶处理,笔画降阶后,按照该笔画拟合出的直线条数对其进行分类并计算笔画之间的距离,依据笔画阶数从高到低的顺序,选取较近的笔画进行合并分析,并依赖几何特征进行验证确定输入笔画组合所构成的形状。
[0035] 下面结合实施例具体说明本发明方法步骤:
[0036] 如图2所示为输入图像预处理过程,分为输入图像二值化、细化、去毛刺操作以及对图像的连通域标记,完成这些操作得到的输出图像中,每个连通域所代表的笔画应为单像素笔画或近似单像素笔画。
[0037] 离线手绘草图识别中,系统输入的草图有可能是彩色图像,这些颜色信息在识别过程中几乎不会用到,反而可能降低识别的精度,因此首先应将它转变为二值图像。然后对二值图进行细化操作,图像细化是预处理中关键的一步,其细化效果将会对识别效率和效果产生很大影响。完成输入草图细化后,图像去毛刺也是预处理阶段的重要步骤之一,草图细化保证了大部分的笔画都为单像素,但同时笔画中依旧存在很多毛刺点,这些毛刺点会影响后续的草图识别,因此需要进行去毛刺处理。
[0038] 如图3所示为笔画多直线拟合过程,首先对每个连通域进行笔画的点序列跟踪,将该连通域中离散的、无序的点集转换为有序的点序列,即在线输入中的笔画。然后对点序列进行压缩,并对压缩后的点序列采用动态规划算法进行多直线拟合,确定最优拟合直线的条数后,得到每个连通域的由直线表示的笔画,如图4所示,图4a为原始的输入形状图,图4b为经连通域多直线拟合后的结果图。
[0039] 笔画多直线拟合部分主要任务是通过对笔画点序列跟踪以及多直线拟合,将离散的像素点构成的连通域转换为有序点表示的笔画。
[0040] 笔画点序列跟踪分为两个部分,第一部分首先对连通域进行轮廓跟踪,对于封闭笔画该轮廓即可作为其点序列。而对于不封闭笔画,其轮廓包括了内轮廓和外轮廓,二者近乎一致,因此第二部分需确定不封闭笔画始末点来对轮廓进行区分,从而确定笔画点序列。
[0041] 经过笔画的点序列跟踪步骤可以得到一个有序的点序列来表示该笔画,它可以看作是一条矢量曲线。这些点序列中的点是连续的,且除了不封闭笔画的始末点外,每个点都有其传入点和后继点,同时笔画的连贯性使得大多数相邻的点在方向上不会有太大的突变。显然,用众多密集的像素点来表示由多条直线构成的笔画存储和计算代价都很大,因此系统使用Douglas-Peucker算法对笔画的点序列进行压缩,用尽可能少的点表示笔画。如图5为手绘笔画的压缩前后结果对比。
[0042] 多直线拟合采用基于动态规划的笔画多直线拟合算法。
[0043] 经前面步骤处理后,笔画可以由一组有序的点集合表示,设该点集有N个点,分别为(x1,y1),(x2,y2),...,(xn,yn),则该问题可以描述为:在二维平面内选择R条直线y=a1x+b1,y=a2x+b2,...,y=arx+br,使其最优匹配笔画的N个有序点。笔画多直线拟合需要面对两个问题:确定单直线最佳拟合算法以及笔画多直线的划分点。
[0044] 1)基于特征向量的单直线拟合
[0045] 单直线拟合的目标是寻找一条直线使得其与点集的匹配误差最小,通常使用的算法有基于最小二乘法的单直线拟合和基于特征向量的单直线拟合。由于点与点以及点与拟合直线的相对位置是与坐标系无关的,不会使拟合过程依赖于某个变量,因此本发明选择基于特征向量的单直线拟合算法。
[0046] 2)基于动态规划的多直线拟合
[0047] 解决了笔画多直线拟合中的单直线拟合问题后,考虑如何划分笔画完成笔画的多直线拟合。假设要用k条直线拟合笔画S,则该最优化问题可以描述为除了S的首末点外选取k-2个断点,使得首末点与断点间依次形成的k条直线与S的拟合总误差最小。对于S中点的个数N不是很大的情况下,可以使用Brute-Force策略穷举N中所有的点,选择k-2个断点使得k条直线与其对应的曲线段的拟合误差和最小,该算法的效率是 对于N或k-2较大的情况,时间效率是无法接受的。
[0048] 本发明采用动态规划算法,定义一种多项式时间的算法来对曲线进行最优划分。首先依然用k条直线拟合笔画S,假设点p1到pi已经被k-1条直线最优拟合,然后需用最后一条直线拟合点pi到pn,这样就得到了该问题的一个最优子结构,从而根据该最优子结构可以得到一个递归的解决方案。设d(m,k)为用k条直线拟合点p1到pm的最小误差,f(S,im)为用特征向量拟合笔画S中点pi到pm的最小误差。则用k条直线最优拟合笔画S的误差为d(N,k),其中N为S中最后一个点的索引,划分递归式为:
[0049]
[0050] 笔画S多直线拟合的递归算法运行时间复杂度为O(K*N2),空间复杂度为O(K*M),其中K为拟合直线的条数,N为笔画的总点数。
[0051] 如图6所示为连通域分析组合过程,系统的输入为已拟合为多直线的笔画集合,首先对这些笔画结果进行分析,若某笔画拟合出来的直线条数大于系统所能识别形状的最大边数,则对该笔画进行降阶处理,合并该笔画所拟合直线中最有可能是同一直线的情况(如图7所示,图7b中矩形最佳拟合直线为5条,分析后将编号为1和5的直线合并为同一条直线);笔画降阶后,按照该笔画拟合出的直线条数对其进行分类,并计算其与其他笔画之间的距离;按照笔画阶数从高到低的顺序,通过启发式的规则约束选取距离较近的笔画进行合并;并对合并后的组合形状,通过几何特征进行验证确定输入笔画组合所构成的形状,输出识别的形状。
[0052] 下面说明判断笔画S最佳匹配直线的条数。
[0053] 首先,令e[i]表示用i条直线匹配笔画S时的误差值,则针对不同的i误差变化率可以表示为:
[0054]
[0055] 当i逐渐增加到最佳匹配数量时,变化率r[i]会有较大的突变,选取此i为笔画S的最佳直线匹配条数。如图8所示,图8a为20条手绘线段组成的形状S1,图8b为不同直线条数时拟合S1时的误差变化率,不难发现k=20时误差变化率最大,因此选取20条直线匹配笔画S1。同样图8c中15条直线组成的形状S2,则从图8d中可以得到最佳拟合条数为15。