一种图像识别方法

文档序号:10553365阅读:242来源:国知局
一种图像识别方法
【专利摘要】一种图像识别方法,基于SIFT算法进行特征提取和描述,得到DB中图像和待识别图像的特征点,对keyPoint进行匹配,从DB中挑出匹配度最高的图片C1;再基于RANSAC的透视变换矩阵计算待识别图像及C1图的相似度,计算出来的相似度与预设的阈值做比较,如果小于阈值则判定为搜索成功,反之亦反,如果搜索成功,则用4个顶点的坐标计算出相机的旋转角度和上下左右拍摄倾斜度。本发明提出的方法在识别速度和识别准确率上进行博弈均衡,最终选用以特征点识别为基本技术,辅助分块识别的方法,一方面提高了识别的准确率,另一方面增强了识别的抗光照变化和抗遮挡能力。
【专利说明】
一种图像识别方法
技术领域
[0001] 本发明属于计算机图像识别技术领域,为一种图像识别方法。
【背景技术】
[0002] 当前图像搜索技术已经较为成熟,应用较为广泛的有特征点识别法,特殊标记识 另IJ,相似模糊识别和神经网络识别等方法。
[0003] 传统的特征点识别法根据预设特别点确定方法,在图像中获取特征点,并将特征 点进行存储。在识别新的图片时再根据相同确定方法进行特征点选取,如果特征点近似则 判断为相同图片。典型应用有高通识别SDK,此类识别方法操作简单,但识别率不稳定,抗光 照强度和遮挡能力弱。
[0004] 特殊标记识别法通过对图像进行特殊处理,例如边框处理,亮点处理等。二维码、 小熊尼奥卡片识别即为典型应用。此类识别方法,识别速度快准确率高,但是需要对图像进 行原始处理改变图片的原始结构。
[0005] 相似模糊识别和神经网络识别均是近些年兴起的人工智能识别方法,相似模糊识 别根据预设的图片描述算法对当前图片进行描述,得出相应语义信息,识别时同样适用相 同描述算法,之后对描述进行匹配。此种识别方法识别率高,识别模糊程度高,但是所需要 计算能力强,一般依赖于云处理,典型应用为谷歌图片识别。神经网络识别在模糊识别基础 上增加自助学习机制,进一步提高了准确率但识别速度较慢。

【发明内容】

[0006] 本发明要解决的问题是:现有图像搜索识别技术识别率不稳定,抗光照强度和遮 挡能力弱。
[0007] 本发明的技术方案为:一种图像识别方法,包括以下步骤:
[0008] 1)对数据库DB中的图像和待识别图像Query基于SIFT算法进行特征提取和描述, 得到DB中图像和待识别图像的特征点KeyPoint;
[0009] 2)用BruteForce-Ll距离,对1^}^〇;[111:进行匹配,131'此6?01^6-1^1表不特征描述子 匹配公用接口,DB中的每一个图片的keyPoint与Query图片的keyPoint之间进行匹配,用匹 配距离最小的20组数据距离之和计算出两个图片之间的匹配度,而后从DB中挑出匹配度最 尚的图片C1;
[0010] 3)基于RANSAC的透视变换矩阵计算以及拍摄角度估算:用匹配度最高的图片C1与 Query图片之间的匹配结果,计算透视变换矩阵,由透视变换矩阵在Query图片中获取图片 C1的4个顶点坐标;用透视变换矩阵的逆矩阵,根据4个顶点坐标对query图进行纠正,而后 对纠正的query图以及C1图抽取梯度特征量,计算两者的梯度特征量之间的欧氏距离,即相 似度,计算出来的相似度与预设的阈值做比较,如果小于阈值则判定为搜索成功,反之超过 阈值则判断为未能成功搜索。
[0011] 4)如果搜索成功,则用4个顶点的坐标计算出相机的旋转角度和上下左右拍摄倾 斜度,用于手机摄像头为载体时的识别。
[0012]所述梯度特征量抽取方法为:在图像里的每一个点上计算梯度信息,分割成7*7区 域,然后在每一个区域获取8方向梯度频谱作为特征量,因此特征量为7*7*8 = 392维。
[0013] 进一步的,步骤1)中,如果keyPoint的数量超过200个,则按keyPoint的半径大小, 取大舍小,取200个keyPoint。
[0014]步骤3)中,采用分片识别方法:
[0015]采用分片识别方法识别Query图片:
[0016] 31)计算相似度前,将图片C1与Query图片按照特征点进行划分,尽量将相邻特征 点划分到同一个区域,同一区域内特征点数量不超过总体数量的1/4;
[0017] 32)图片进行分区处理后,形成若干图像块,每一个图像块内均携带有图片的特征 点信息;
[0018] 33)对于划分得到的区域,将特征点对比预设的阈值设置成单一区域内对比吻合, 单一区域指划分得到区域,只要Query图片某一区域特征点与图片C1任何一个区域的对比 吻合即可,当吻合区域的某一相邻区域特征点对比相似度大于50%,即认为搜索到的图片 为目标图片。
[0019] 本发明提出的方法在识别速度和识别准确率上进行博弈均衡,最终选用以特征点 识别为基本技术,辅助分块识别的方法,一方面提高了识别的准确率,另一方面增强了识别 的抗光照变化和抗遮挡能力。
【附图说明】
[0020] 图1为本发明的流程图。
[0021 ]图2为本发明实施例的待识别图,图(a)遮挡面积超过20 %,图(b)缺失面积10 %。
【具体实施方式】
[0022]如图1所示,本发明图像识别方法包括以下步骤,用自然语言与计算机语言表述: [0023] 1)对DB中的图像和待识别图像Query基于SIFT算法进行特征提取和描述,得到DB 中图像和待识别图像的特征点KeyPoint:
[0024] 11)对图像进行归一化为一定大小;
[0025] 12)基于 SIFT 获取 keyPoints
[0026] Sift.detect(img,keypointsQuery2);
[0027] 如果keyPoint的数量超过200个,按keyPoint的半径大小,取大舍小,取200个。对 上述keyPoint,抽取SIFT descriptor(128维)。
[0028] 2)用131'1^6?〇1'〇6-1^1距离,对1^5^〇;[111:进行匹配,131'此6?01'06-1^1表不特征描述子 匹配公用接口,DB中的每一个图片的keyPoint与Query图片的keyPoint之间进行匹配,用匹 配距离最小的20组数据距离之和计算出两个图片之间的匹配度,而后从DB中挑出匹配度最 高的图片C1。
[0029] Ptr<DescriptorMatcher>descriptorMatcher=
[0030] DescriptorMatcher::create("BruteForce-Ll");
[0031] 3)基于RANSAC的透视变换矩阵计算以及拍摄角度估算:
[0032] 用匹配度最高的图片Cl与Query图片之间的匹配结果,计算透视变换矩阵:
[0033] Mat H=findHomography(pointsRANSACl,pointsRANSAC2,CV_RANSAC,5);
[0034]由透视变换矩阵在Query图片中获取图片Cl的4个顶点坐标:
[0035] std::vector<Point2f>obj_corners(4);
[0036] obj_corners[0] =cvPoint(0,0);
[0037] obj_corners[ 1 ] =cvPoint(p0bj->w,0);
[0038] obj_corners[2]=cvPoint(pObj->w,p0bj->h);
[0039] obj_corners[3] =cvPoint(0,p0bj->h);
[0040] std::vector<Point2f>scene_corners(4);
[0041 ] perspectiveTransform(obj_corners,scene_corners,H);
[0042]用透视变换矩阵的逆矩阵,根据4个顶点坐标对query图进行纠正,而后对纠正的 query图以及C1图抽取梯度特征量,计算两者的梯度特征量之间的欧氏距离,即相似度:
[0043] Mat warped;
[0044] Mat InvH=H. inv();
[0045] warpPerspective(pComp->m_imgQuery,warped,InvH,cv::Size(p0bj->w,p0bj-> h));
[0046] 计算两者的梯度特征量之间的欧氏距离,即相似度,计算出来的相似度与预设的 阈值Th做比较,如果小于阈值则判定为搜索成功,反之超过阈值则判断为未能成功搜索。相 似度越大,能与原图片的差值越小,才越小于阈值。
[0047] 4)如果搜索成功,则用4个顶点的坐标计算出相机的旋转角度和上下左右拍摄倾 斜度,用于手机摄像头为载体时的识别。
[0048] 所述梯度特征量抽取方法为:在图像里的每一个点上计算梯度信息,分割成7*7区 域,然后在每一个区域获取8方向梯度频谱(Histogram of orientation gradient)作为特 征量,因此特征量为7*7*8 = 392维。
[0049] 进一步的,步骤1)中,如果keyPoint的数量超过200个,则按keyPoint的半径大小, 取大舍小,取200个keyPoint。
[0050]步骤3)中,采用分片识别方法识别Query图片:
[0051] 31)计算相似度前,将图片C1与Query图片按照特征点进行划分,尽量将相邻特征 点划分到同一个区域,同一区域内特征点数量不超过总体数量的1/4;
[0052] 32)图片进行分区处理后,形成若干图像块,每一个图像块内均携带有图片的特征 点信息;
[0053] 33)对于划分得到的区域,将特征点对比预设的阈值设置成单一区域内对比吻合, 单一区域指划分得到区域,只要Query图片某一区域特征点与图片C1任何一个区域的对比 吻合即可,当吻合区域的某一相邻区域特征点对比相似度大于50%,即认为搜索到的图片 为目标图片。相邻区域是指在上述分割过程中的物理相邻区域,每个区域有不超过总体特 征点数四分之一的特征点。所述对比是特征点的对比,Query图片a区域与C1的图片进行对 比,找到完全吻合区域,然后再找该吻合区域的相邻区域,只要认定相邻区域与图片C1的区 域对比有超过50%以上的特征点吻合,即使其他相邻区域无特征点吻合也认为是匹配成功 的,本方案是防止图片被较大范围遮挡而优化发明的。
[0054] 为验证识别效果,分别采用本发明的方法和常见的特征点图像识别方法对图2的 两幅图进行识别。
[0055] 识别效果如下表所示,以10000张图库为例:
[0057]可见本发明的识别速率和准确率均有很大提高。
[0058] 进而对可识别的最大遮挡比例和最大缺失比例进行对比试验,以10000张图库为 例:
[0060]可见本发明的分片识别在识别过程中,即保证了识别整体特征点的准确性多样 性,又保证了当图片部分造成遮挡的情况也可以识别。
【主权项】
1. 一种图像识别方法,其特征是包括以下步骤: 1) 对数据库DB中的图像和待识别图像Query基于SIFT算法进行特征提取和描述,得到 DB中图像和待识别图像的特征点KeyPoint; 2) 用BruteForce-Ll距离,对keyPoint进行匹配,BruteForce-Ll表示特征描述子匹配 公用接口,DB中的每一个图片的keyPoint与Query图片的keyPoint之间进行匹配,用匹配距 离最小的20组数据距离之和计算出两个图片之间的匹配度,而后从DB中挑出匹配度最高的 图片Cl; 3) 基于RANSAC的透视变换矩阵计算以及拍摄角度估算:用匹配度最高的图片Cl与 Query图片之间的匹配结果,计算透视变换矩阵,由透视变换矩阵在Query图片中获取图片 Cl的4个顶点坐标;用透视变换矩阵的逆矩阵,根据4个顶点坐标对query图进行纠正,而后 对纠正的query图以及Cl图抽取梯度特征量,计算两者的梯度特征量之间的欧氏距离,即相 似度,计算出来的相似度与预设的阈值做比较,如果小于阈值则判定为搜索成功,反之超过 阈值则判断为未能成功搜索。 4) 如果搜索成功,则用4个顶点的坐标计算出相机的旋转角度和上下左右拍摄倾斜度, 用于手机摄像头为载体时的识别。2. 根据权利要求1所述的一种图像识别方法,其特征是所述梯度特征量抽取方法为:在 图像里的每一个点上计算梯度信息,分割成7*7区域,然后在每一个区域获取8方向梯度频 谱作为特征量,因此特征量为7*7*8 = 392维。3. 根据权利要求1所述的一种图像识别方法,其特征是步骤1)中,如果keyPoint的数量 超过200个,则按keyPoint的半径大小,取大舍小,取200个keyPoint。4. 根据权利要求1所述的一种图像识别方法,其特征是步骤3)中,采用分片识别方法识 别Query图片: 31) 计算相似度前,将图片Cl与Query图片按照特征点进行划分,尽量将相邻特征点划 分到同一个区域,同一区域内特征点数量不超过总体数量的1 /4; 32) 图片进行分区处理后,形成若干图像块,每一个图像块内均携带有图片的特征点信 息; 33) 对于划分得到的区域,将特征点对比预设的阈值设置成单一区域内对比吻合,单一 区域指划分得到区域,只要Query图片某一区域特征点与图片Cl任何一个区域的对比吻合 即可,当吻合区域的某一相邻区域特征点对比相似度大于50%,即认为搜索到的图片为目 标图片。
【文档编号】G06K9/62GK105913069SQ201610270014
【公开日】2016年8月31日
【申请日】2016年4月27日
【发明人】赵金辉, 孙健, 杨佩星, 付俊国
【申请人】南京维睛视空信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1