发明名称 一种无标记平面物体识别的优化算法
摘要 本发明属于统计模式识别与图像处理技术领域,具体为一种无标记平面物体识别的优化算法。本发明以局部特征关键点作为无标记物体的特征,采用二分类的决策算法分别在离线训练和实时识别阶段开始阶段进行特征提取;使用随机Ferns分类器对关键点进行离线训练;识别阶段采用随机抽样一致性算法得到物体在实时帧中的位置与姿态;将计算所得目标物体位姿信息附加在虚拟物体上,叠加在真实场景中完成增强现实系统。本发明主要两点优化:特征检测阶段,对关键点进行加权筛选;识别阶段,采用改进后的ARANSAC拟合算法将初始随机集合中的内点比例增大,提高拟合的性能。本发明较之基线算法在各方面性能都得到极大提升,可满足增强现实系统的实时性、可靠性要求。
申请公布号 CN103903013A 申请公布日期 2014.07.02
申请号 CN201410151036.X 申请日期 2014.04.15
申请人 复旦大学 发明人 金城;贾琼;冯瑞;薛向阳
分类号 G06K9/62(2006.01)I 主分类号 G06K9/62(2006.01)I
代理机构 上海正旦专利代理有限公司 31200 代理人 陆飞;盛志范
主权项 1.一种无标记平面物体识别的优化算法,其特征在于依次分为3个阶段:离线训练阶段,在线识别阶段,增强现实阶段;一、离线训练阶段的具体步骤为:(1)自动合成训练样本直接以目标平面物体的一张无遮挡图像作为素材,采用自动合成的方法生成训练集;具体采用仿射变换的方法从目标平面物体的初始视图生成新的随机视图,并加入白噪声;这里合成训练集大小为S,使用随机方法合成的视图,作为分类器的训练样本;(2)筛选稳定的关键点集第一步:将关键点提取问题转化为关键点类和非关键点类的二分类问题,对图像上所有像素点进行快速分类:选取待测像素点m,其以R为半径的圆周上像素点,随机挑选圆周上过直径的两个像素点,对其灰度值进行以下计算:<img file="201410151036X100001DEST_PATH_IMAGE001.GIF" wi="202" he="36" />且<img file="201410151036X100001DEST_PATH_IMAGE002.GIF" wi="200" he="35" />(1)其中<img file="201410151036X100001DEST_PATH_IMAGE003.GIF" wi="14" he="21" />为经过预处理的图像,m点为待测像素,d为单位向量,R为半径,<img file="201410151036X100001DEST_PATH_IMAGE004.GIF" wi="16" he="16" />为该直径与水平直径的夹角,为4;一旦随机选定的直径上像素点灰度值满足上式,则m点立刻被分类为非关键点,同时直径上两个像素点也被分类为非关键点,若经过4次挑选测试后,m仍未被分类为非关键点,则该点有可能为关键点,将其加入关键点候选集合;第二步:通过上一步将<img file="12448DEST_PATH_IMAGE003.GIF" wi="14" he="21" />所有像素遍历后,得到关键点候选集合;使用高斯-拉普拉斯金字塔评分机制对候选关键点评分,近似表达式为:<img file="201410151036X100001DEST_PATH_IMAGE005.GIF" wi="430" he="54" />(2)以此评分结果作为衡量模型图像候选关键点特征稳定性和显著性的基本标准;其中,对原始图像<img file="201410151036X100001DEST_PATH_IMAGE006.GIF" wi="14" he="18" />进行不同尺度的高斯卷积运算,并进行降采样操作,得到不同尺度的<img file="201410151036X100001DEST_PATH_IMAGE007.GIF" wi="80" he="27" />图像组成高斯金字塔,<img file="DEST_PATH_IMAGE008.GIF" wi="14" he="14" />为金字塔的层数,这里是4;将高斯金字塔的尺度信息加入关键点候选的评分标准,调整评分如下:<img file="201410151036X100001DEST_PATH_IMAGE009.GIF" wi="514" he="66" />(3)以此评分结果作为衡量候选关键点的最终标准;通过统计每个关键点在训练样本中被检测到的次数,将检测次数最多的点集作为最终选定的关键点集;针对模型的关键点候选的评分标准为:<img file="DEST_PATH_IMAGE010.GIF" wi="596" he="67" />(4)其中<img file="DEST_PATH_IMAGE011.GIF" wi="14" he="25" />表示第j个合成样本中<img file="DEST_PATH_IMAGE012.GIF" wi="18" he="16" />点是否在关键点候选集合,当其在候选集合内时<img file="975593DEST_PATH_IMAGE011.GIF" wi="14" he="25" />值为1,反正则为0;(3)采用半朴素贝叶斯分类器进行分类(a).使用以关键点为中心的邻域纹理作为该类的描述,该邻域为边长32像素的正方形面片;从自动合成的S个样本中提取关键点以及面片,作为各类关键点的训练样本集;(b).选择基于随机Ferns的半朴素贝叶斯分类器使用基于生成型模型的朴素贝叶斯模型建立分类器,依赖多个特征向量对一个类变量进行分类;使用关键点邻域面片上像素点对之间的灰度值明暗比较结果作为该关键点特征;这里使用随机算法抽取像素点对,基于随机像素位置的比较得到的特征值,组合成特征向量,最后使用分类器训练出每个特征值对应的各关键点的分类后验概率分布;(c).分类器的核心算法如下:设c<sub>k</sub>,k=1,…,H,作为类的集合,将欲分类的面片由一组特征{f<sub>j</sub>},j=1,…,N表示,f<sub>j</sub>表示面片上进行像素点对m<sub>j,1</sub>和m<sub>j,2</sub>测试的二进制特征值如式(5),其中<img file="286489DEST_PATH_IMAGE006.GIF" wi="14" he="18" />表示灰度图像:<img file="DEST_PATH_IMAGE013.GIF" wi="361" he="141" />(5)分类器的目的是找到面片中概率最大的分类号C,如式(6):<img file="DEST_PATH_IMAGE014.GIF" wi="255" he="51" />(6)将面片输入分类器中,以特征值代表面片,(6)式等价为(7)式:<img file="DEST_PATH_IMAGE015.GIF" wi="312" he="43" />(7)由贝叶斯公式知:<img file="DEST_PATH_IMAGE016.GIF" wi="355" he="81" />(8)其中,右式分母与分类无关,分子的P(C=c<sub>k</sub>)因子视作常数,因此(7)式近似为:<img file="DEST_PATH_IMAGE017.GIF" wi="367" he="56" />(9)将N个特征分成M组,假设M组之间的特征独立性,匹配问题最终转化为式(10):<img file="DEST_PATH_IMAGE018.GIF" wi="568" he="173" />(10)训练阶段将训练样本提取的面片输入到分类器中分类,统计随机森林每个叶子节点上各类的概率分布并对其归一化,最终得到各类在各特征值下的后验概率分布;二、在线识别阶段的具体步骤为:(1)关键点提取提取方法同离线训练阶段的筛选稳定的关键点集的关键点提取方法,以式(3)为关键点的度量标准;(2)分类器分类,将目标帧转化为灰度图,提取关键点针对每个关键点,将其面片输入训练好的分类器中,据(10)式选择后验概率最大的类作为该关键点的匹配,以此概率作为匹配的基本得分;(3)单应性矩阵估计,使用经典的拟合算法RANSAC即随机抽样一致性算法筛选内点集,并估计模型在目标中的位姿矩阵;(a)拟合算法RANSAC定义如下:已知计算出目标物体到模型的转换矩阵所有参数,所需最少匹配数为3;每次迭代从匹配全集中随机选取3个匹配,解出一个初始单应性矩阵,进而从匹配全集中找到所有一定误差允许范围内满足此单应性矩阵的所有匹配,称为支撑集;当支撑集大小达到一定阈值时,则认为支撑集足够大,所有匹配为内点,以此支撑集更新初始单应性矩阵;否则重新迭代;在RANSAC之后使用Levenberg-Marquardt最小二乘估计更新并得到最终单应性矩阵;(b)改进的拟合算法ARANSAC,将匹配的得分作为确定新的初始随机范围的依据;目标关键点在分类器中分类时,分值最高模型关键点被匹配;反之,所有与模型关键点的匹配中,目标关键点纹理最类似的得分更高;所以在全部最高得分的匹配中,内点的概率将高于其在匹配全集中的比例;将全部得分中最高与最低分的一个中间值作为阈值,使用所有得分的算术平均值作为阈值,只有高于该阈值才作为初始集的候选匹配;对匹配全集参照得分进行排序,高于阈值的匹配进入候选集,其他匹配只用于支撑集;采用针对阈值的快速排序算法,遍历匹配集合一次完成排序;此阶段完成后,若成功检测到目标,则得到待检测图像上目标平面物体的位姿矩阵;三、在线增强现实阶段使用OpenGL把一个3D物体实时增强于识别的无标记平面物体上,需要对以下几个矩阵进行操作:(1)投影矩阵转换;(2)模型矩阵转换;其中:模型矩阵,是指对模型视景中模型的位置进行矩阵操作,即将模型以固定的姿态固定的位置至于场景中,之后即使场景发生改变,模型仍保持在场景的相对位置固定;投影矩阵,是指对当前场景进行投影变换,即人的视点在变换,看到的场景视图就不同,现在就是对场景视图进行从人眼角度的重新投影;使用一张风景画实时增强到目标物体的位姿上,其步骤如下:(1)识别阶段中得到目标物体的位姿矩阵,将此设为投影矩阵;(2)设定模型矩阵,模型位于场景中中心部分,景深-90,风景画平面法向量方向与z轴重合;(3)翻转投影矩阵,因为之前求得的转换矩阵和人眼观察到的旋转平移矩阵是互逆的;(4)场景景深z的范围为100到1000000;(5)场景背景设置为实时输入帧,将风景画贴合在场景中。
地址 200433 上海市杨浦区邯郸路220号