-
一般情况下,笔画识别算法要求用户按照固定的规范实现绘图,以便提高该算法识别笔画的精确度.草图识别包括2个子问题:笔画分组和符号识别.
训练手势识别器在文献[1-3]中提出了限制,要求用户必须单笔完成语义符号的绘制.文献[4]假设场景仅包含一个对象,使用单个笔画绘制出语义符号.在文献[5]中,明确要求用户在画完一个语义符号后必须按下按钮.文献[6]允许具有由多个笔划组成的多个对象和对象的场景,但是假设没有对象共享笔画.文献[7]采用时间阈值法,要求用户在绘制语义符号后应有明显的停顿,文献[8]采用特殊的图形符号(如箭头)进行分组.这些算法有很多限制,使手绘界面不但失去了自然绘制的特点,而且用户在手绘方面也不能更好地进行快速表达和自由绘制.
通常,利用结构匹配方法和统计识别算法实现手绘草图的识别[9-10].结构匹配方法通过提取手绘草图的基本图元及其图元之间的空间位置关系,对语义符号加以识别[11].这种方法方便对相似的语义符号加以区分,但其抗干扰能力较弱,容易受噪声影响.而统计识别算法将草图中所有语义符号作为统一整体,并计算多维特征向量.这种算法抗干扰能力强,但相应的分支能力很弱.近期,人们在绘制草图的过程中针对素描识别使用了增量贝叶斯方法[12],并通过推理得出用户在绘制草图的过程中采用此方法会更加自由.
在机器学习领域中,深度学习是一个崭新的研究方向.在一个包含多个隐藏层的非线性网络模型中,通过对大量原始数据的训练进行预测或对样本进行分类.在图像识别和计算机视觉领域,CNN取得了最显著的成果[13].此外,深度学习被广泛应用于自然语言处理、行人检测、手势识别、数据挖掘和语音识别[14-15].与其他深层神经网络相比,CNN可以直接处理二维图像,S层自动编码[16].当二维图像被转换为一个时,输入数据的空间结构特征将丢失.
为了让用户在绘图过程中更自由,并进一步提高手绘示意图的识别率,本文提出了一种基于贝叶斯网络和CNN的识别算法.
全文HTML
-
针对原有笔画采样过程的不稳定性,先对每个笔画的采样值进行预处理.使用高斯低通滤波器对手绘图进行滤波,从而获得平滑的手绘图.
手绘笔画可以分为基本的图像元素,比如直线和圆弧.分割图像元素可以分为采集笔画数据和检测特征点2个步骤.任何笔画特征均由3组特征值的方向、曲率和速度组成.例如任一笔画细分为N个点,第N个点的坐标用(xn,yn)表示,则采样点运动方向向量的角度偏移dn为
式(1)中,圆弧正切函数Arctan2(x,y)可以处理特殊情况x=0.曲率cn是采样点单位弧度的方向偏差,用它描述采样点曲率信息,其表达式为
式(2)中,D(n-k,n+k)是n-k点到n+k点之间的弦长之和.采样点运动速度信息一般采用速度Speedi进行描述
其中,dl(pointi,pointi-1)是点po inti到po inti-1的折线距离,Ti为i点的绘图时间.
分析手绘草图的特点,特征点(笔画的显著拐点)通常具备波峰和波谷2个特点,分别是曲率变化迅速和速度变化迅速.通过扫描草图的曲率和速度曲线,可以检测出草图的特征点,并将监测结果作为候选关键点.关于像“S”这样的图形符号,当它们在拐点处速度变化不明显时,可以利用滑动窗口法计算这些拐点曲率的正负值.通常正负值变化的点也是特征点,根据扫描草图和计算曲率监测的特征点,划分出线段和圆弧等基本几何图元.
-
假设草图在整个识别过程中的所有语义符号用C1,C2,…,Ci表示.图形语义符号可以看作是由圆弧、线段和其他基本元素,即Ci=(x1,x2,…xn,r,r2,…,rm)组成的几何图形,依据一定的空间约束关系.其中xj∈(line,arc),rj∈(parallel,interest,adjacent,vertical,lengthEqual,closed)是空间约束关系的集合.本文采用的贝叶斯网络结构如图 1所示.在图 1中,S1,S2,…Sk是最初的笔画,为贝叶斯网络提供了依据,但它们不是贝叶斯网络的一部分.由于同一语义符号存在多种不同的绘制方式,并没有完整的集合加以描述,因此本文的贝叶斯网络节点不直接与原始笔画对应,而具体将其分为语义符号类C、原始x和空间约束关系r.为了降低计算量,假定这些特性与基本元素xj和rj之间没有直接联系,抽象在图 1中就是它们之间没有边直接相连,彼此之间是相互独立的.
网络节点的Ci值为(true,false). xj和rj的值分别是语义符号中包含的基本元素和空间关系的数量.
确定的笔画集合通过贝叶斯识别器获得后,被划分为基本的图像元素.利用贝叶斯网络计算8维特征向量后验概率公式的最大值,将8维特征向量划分到最紧密的一类Ci中.其中,后验概率公式为
在P(x1,r1,x2,r2,…,xn,rn)不变的条件下,后验概率公式的最大值为
根据朴素贝叶斯的假设,联合概率分布值的获得是每个属性概率分布的乘积,因为每个特征向量都是独立的,所以在候选符号C1,C2,…,Ci中最匹配的C′类定义为
由于草图的模糊性,因此针对候选语义符号,利用贝叶斯分类器计算其信度值.通过研究,本文将信度阈值设为0.85.如果其高于手绘符号的信度值,则根据信度值的降序来提取k个语义符号.反之,则会将高于这个阈值的信度值赋给拥有最高后验概率的笔画集.
-
由于局部像素的图像一般比较相似,因此CNN对图像的理解是由局部到全局的.首先,CNN感知图像的局部特征,然后在更高的层次上结合这些局部特征.通过这种方法,可以获得图像的全局特征及其拓扑结构,进而确定图像的属性和类别.因此,卷积神经网络对缩放、平移、倾斜或其他变形形式具有高度的不变性.
CNN有2个典型的特点:①2个神经元层之间局部连接,而不是完全连接.因此,连接到输入图像的卷积层是为像素块构建的本地链接,而不是传统的基于像素点的全连接. ②卷积核的权重参数在同一层中共享.这2个特性大大降低了深网参数的数量,降低模型的复杂度,加快训练速度.它使得CNN在处理单元的像素值上有很大优势. CNN的主要组件包括卷积层、池化层、激活函数、全连接层和分类器,如图 2所示.
-
卷积神经网络的核心组成部分是卷积层,其主要功能是提取输入的局部特征,并通过卷积核的固定步长移动.特征图中每个元素的输出是一个神经元的输出,神经元连接的输入是前一个输出特征图的局部区域.感觉场的输入是通过一组突触权值来计算的,神经元的输出通过激活函数获得.在生成特征图的过程中,通过共享这组突触权重,可以大大减少参数的数量.卷积运算的数学表达式为
其中,anl和aml-1是当前层和之前层的特征图. km,nl是从上一层的第m个特征图到当前层的第n个特征图的卷积核. f(x)=1/[1+exp(-x)]是神经元的激活功能. bnl是神经元的偏移,表示不同的卷积核可以提取不同的特征,同样也是与上一层特征映射卷积核的响应.
-
通过在输出特征图上非重叠矩形区域的函数变换,池化层可以获得较高层次的不变特征,它的功能是改变卷积层的特征图并降低特征图的维度,同时降低倾斜和位移的输出灵敏度,改进模型的泛化能力.在正向计算过程中,通过池化操作,逐步扩展输入图像和特征图,并将其集成到全局特征中.
常用的池化方法有平均池和最大池,池层可以在保存原始特征信息的同时减少功能维度.池层节点的输出可以表示为
式中,s×s是较低的采样模板维度,knl为模板权值.
-
由于卷积层通常使用多个卷积核模板,因此输出也是同样大小的特征图.需要一个或多个全连接层,以便将特征映射用于分类.整个连接层通常连接到池层和分类器的最后一层,用于融合多个特征图表示的不同特征.卷积神经网络的强大特征提取能力来源于多卷积核模板的卷积运算,每个卷积核模板的输出代表一个不同角度的特征表达式,因此将这些特性合并在一起是一个很重要的过程.全连接层中的每个神经元都连接到上一层输出特性的所有神经元,最终的输出结果anout可以表示为
式中,amout-1为上一层的输出,km,nout为卷积核的权值,bnout为偏移量.完整的连接层结合了前面特征图的所有特性,然后将其输入到softmax分类器中.常用的激活函数为Sigmoid,Tanh和Relu(Rectifiedunit).
如图 2所示,本文设计了一个6层网络.每一个池化层均紧随在卷积层之后.
-
在利用贝叶斯网络进行推理的过程中,根据所有符号逐一收集的笔画样本,将其进行样本训练得到P(x|H).其中,x表示基本几何图元的数量,包括直线段、圆弧、平行线、由8维特征向量组成的闭合线等;H表示语义符号的范围.在确定训练样本特征的基础上,得到P(xk=n|Ci)和P(rk=m|Ci),利用的计算公式为
其中,C(Ci,xk,n)为样本中语义符号Ci基元xk数目为n的数量;C(Ci,rk,m)为样本中语义符号Ci空间约束关系rk数目为m的数量;C(Ci)为样本中出现Ci的总次数.利用训练样本的特征向量和概率构造出高斯分布函数,并利用其计算样本分类时的条件概率.
训练样本由选择样本中的单位符号(CNN)进行训练,而卷积神经网络中使用的代价函数J(ω,b)和J(ω,b)可以通过以下公式得到.
其中,单元与单元之间的连接参数ω,b为偏移量,m为训练样本数量. hω,b(xi)为卷积神经网络最后一层的输出值,yi是第i个训练样本所对应的标签.通过不断更新参数ω和b,求出代价函数J(ω,b)的最小值,从而达到网络训练的目标.其中,在1层参数ω和b的计算方法为
其中,α是学习速率.在逆向传导的应用算法中,提出前向计算,可以计算出卷积神经网络最后一层的输出值hω,b(xi).
-
该算法的流程如图 3所示. ①利用高斯低通滤波器预处理每个笔画的采样值,获得相应的数据. ②通过检测笔画的特征点,把所有笔画分为若干基本图元,并计算图元之间的空间约束关系.根据给定的笔画样本,利用训练模块计算出神经网络的条件概率和训练参数. ③利用识别模块根据笔画采集的特征进行匹配. ④根据可信度确定相应的语义符号,计算相应的后验概率.如果可信度值小于某一阈值,则使用卷积神经网络识别的结果来获得相应的语义符号.也就是说,当笔画的可信度值大于阈值时,将使用贝叶斯识别结果,反之则使用CNN识别结果.
1.1. 预处理和笔画分割
1.2. 贝叶斯网络模型
1.3. 卷积神经网络
1.3.1. 卷积层
1.3.2. 池化层
1.3.3. 全连接层
1.4. 样本训练
1.5. 本文算法
-
选取电路图符号的示意图作为实验数据.有15人参与了这个实验,每个人被要求画10幅草图.每个草图包含图 4中的所有图形符号.然后得到150个草图和750个符号,并取出20个符号作为训练样本.在贝叶斯网络中,可信度阈值设置为0.85.
根据图 5所示的手工绘制电路图,在绘图过程中识别率如表 1所示.当电路符号绘制75%时,识别率的平均值为81.27%,说明通过用户输入残缺的草图,可以推算用户绘制草图的用意.基于贝叶斯网络分类器可以处理不完整的数据.用户在绘制出全部完整的符号后,针对电路图中常用的5个电路符号的平均识别率达到92.16%,其中识别率较高的为复杂符号,最高为95.8%,识别率较低的如形状和拓扑信息的符号,最低为88.9%.
-
本文提出的基于贝叶斯网络和CNN的手绘草图识别算法,不仅为了让用户在绘制过程中更加自由,同时也有助于进一步提高手绘草图的识别率.基于草图结构贝叶斯网络的最大后验概率,算法对连续输入笔画进行动态最优分组,再利用贝叶斯网络和CNN对分割后的笔画进行分类.通过电路符号测试,表明该算法在线性渐进式针对手绘草图的识别过程中非常有效,对于当今以笔式交互为代表的人机交互具有重要的现实意义.本文目前的实验对象比较简单,若在此基础上进一步提高算法在不同领域中手绘草图的泛化识别能力,将逐渐转向更复杂图形的识别和基于本体的概念识别.