一种基于ORB算法的图片快速识别定位的方法与流程

文档序号:35530575发布日期:2023-09-21 09:30阅读:43来源:国知局
一种基于ORB算法的图片快速识别定位的方法与流程

本发明涉及图像处理,更具体地说,涉及一种基于orb算法的图片快速识别定位的方法。


背景技术:

1、在一张较大尺寸且纹理复杂的训练图像定位较小的查询图片时,常规orb算法需要保留大量特征点来确保训练图保留特征点足够与查询图进行匹配;训练图与查询图存在较大的缩放比例差时,常规orb算法需要保留足够多的图像金子塔层数来确保覆盖到对应匹配的尺寸,且fast算法在图片尺寸越小时对尺寸变化产生的特征差异越大,需要更低的缩放比例和更多的层数来覆盖。以上两点的处理会大大增加图片定位过程的计算量。


技术实现思路

1、本发明要解决的技术问题在于,针对上述技术方案存在的不足,提供一种能快速完成在训练图中识别定位查询图,减少了图片定位过程的计算量的基于orb算法的图片快速识别定位的方法。

2、本发明提供一种基于orb算法的图片快速识别定位的方法,所述方法包括以下步骤:

3、s1,预先设置当前的查询图与原始的训练图的控制参数、匹配参数与策略参数,其中控制参数包括查询图匹配最小比例a、查询图匹配最大比例b、训练图裁剪最大层数e、特征点基准数量q,匹配参数包括高质量匹配距离f、图像尺寸级别划分尺寸g、图像尺寸级别缩放比例h、图像尺寸级别匹配质量阈值l,策略参数包括训练子图横向拆分数量c、训练子图纵向拆分数量d;

4、s2,对原始的训练图与当前的查询图进行预处理;

5、s3,基于预处理后的查询图生成查询金字塔图层,并使用orb算法计算查询金字塔图层的特征和描述与训练图的特征和描述;

6、s4,依次对查询金字塔图层的特征和描述与训练图进行bf特征匹配,并将匹配结果添加到结果列表中,所述结果列表根据匹配度高低进行排序,其中将高匹配度的排在前面;

7、s5,获取结果列表中匹配度最高且训练子图匹配结果列表为空且训练图裁剪层数小于等于最大裁剪层数的匹配结果,并判断是否满足匹配结果条件,若有匹配则进行匹配结果的匹配质量判断,若匹配结果为定位成功结果则进行计算原始训练图的匹配区域,若匹配结果为低质量匹配结果则进行训练图平均拆分,若匹配结果为一般质量匹配结果则进行训练图的匹配区域截取;

8、s6,基于拆分裁剪后的训练子图使用orb算法计算其特征和描述,将匹配结果中的查询金字塔图层的特征点和描述依次与拆分裁剪的训练子图进行bf算法特征匹配,并将匹配结果添加到结果列表中。

9、本发明所述的基于orb算法的图片快速识别定位的方法中;在所述步骤s1中所述查询图匹配最小比例a为基于查询图生成查询金字塔图层顶层最小比例值,取值类型为浮点型,其比例值小于1为缩小,大于1为放大;所述查询图匹配最大比例b为基于查询图生成查询金字塔图层底层最大比例,取值类型为浮点型,其比例值小于1为缩小,大于1为放大,其中查询图匹配最大比例值要大于等于查询图匹配最小比例值,所述训练子图横向拆分数量c为训练图进行子图拆分时横向平均拆分的数量,取值类型为整型,其取值大于等于1,所述训练子图纵向拆分数量d为训练图进行子图拆分时纵向平均拆分的数量,取值类型为整型,取值大于等于1,所述训练图裁剪最大层数e为控制训练图进行裁剪时的嵌套次数,取值类型为整型,裁剪的子图的层级等于被裁剪图的层级加1,原始训练图的层级为0。

10、本发明所述的基于orb算法的图片快速识别定位的方法中;在所述步骤s1中所述高质量匹配距离f为特征点匹配结果距离的过滤值,取值类型为浮点型, 其取值大于等于0;所述图像尺寸级别划分尺寸g为统计值列表,且按小到大的顺序排序,当,则判定图片的尺寸级别为n,其中;所述图像尺寸级别缩放比例h为各尺寸级别查询金字塔图的缩放比例的统计值列表;所述图像尺寸级别匹配质量阈值l为各尺寸级别图像匹配度结果的不同质量阈值的统计值列表,每级尺寸级别质量阈值依次为低质量阈值i(n)=l(n)[0]、一般质量阈值j(n)=l(n)[1]和高质量阈值k(n)=l(n)[2];所述特征点基准数量q为图像尺寸为100的特征点最大数量,用于控制orb算法计算时保留的特征点数量,降低后续特征点匹配时的计算量。

11、本发明所述的基于orb算法的图片快速识别定位的方法中;在所述步骤s2中所述预处理为对训练图和查询图进行灰度图转换,将训练图进行等比例缩小处理,控制训练图的最大尺寸,以降低图像识别过程中的运算量,并记录训练图缩小比例r。

12、本发明所述的基于orb算法的图片快速识别定位的方法中;所述步骤s3包括以下步骤:

13、s31,通过查询图匹配最小比例a和查询图匹配最大比例b控制查询金字塔图层的层数,在有预估定位图像尺寸范围的情况下进行控制金字塔图层尺寸范围,减少计算量,其中具体控制逻辑包括计算金字塔起始层图像大小与金字塔结束层图像大小;所述金字塔起始层图像大小=预处理后的查询图尺寸*查询图匹配最大比例b;所述金字塔结束层图像大小=预处理后的查询图尺寸*查询图匹配最小比例a,通过从起始层开始循环生成下一层图像,直到图像层尺寸小于或等于结束层图像尺寸;所述下一层图像缩放比例为p=图像尺寸级别缩放比例h(n),其中n为当前金字塔图层尺寸级别,其中,下一层金字塔图像大小=当前金字塔层尺寸/p;

14、s32,根据orb算法分别计算查询金字塔图层与训练图的特征和描述,其中orb算法中自带的金字塔层数参数设置为1,保留特征点数量 = q * 图像尺寸 / 100。

15、本发明所述的基于orb算法的图片快速识别定位的方法中;所述步骤s4包括以下步骤:

16、s41,根据bf匹配算法完成查询金字塔图层与训练图的特征匹配,并将匹配结果添加到结果列表中;

17、s42,对结果列表中的匹配结果进行距离过滤,保留距离小于等于高质量匹配距离f的匹配特征点,获得高质量特征匹配结果;

18、s43,计算高质量特征匹配结果的匹配度,所述匹配度计算公式为匹配度= 高质量特征匹配结果特征点数 / 查询金字塔层图片特征点数;

19、s44,对匹配结果进行封装并添加到结果列表,其中匹配结果内容包含本次匹配的查询金字塔图层、本次匹配的训练图、查询金子塔图层特征点和描述、训练图特征点和描述、匹配度、父级匹配结果、训练子图匹配结果列表、高质量特征匹配结果和训练图裁剪层数,其中,本次匹配结果的父级匹配结果和训练子图匹配结果列表均为空,训练图裁剪层数为0。

20、本发明所述的基于orb算法的图片快速识别定位的方法中;所述步骤s5包括以下步骤:

21、s51,获取已排序的结果列表,找出第一个训练子图匹配结果列表为空且训练图裁剪层数小于等于训练图裁剪最大层数e的匹配结果,若无满足条件结果则未能在原始训练图中识别原始查询图并结束识别,若有满足条件结果则进行匹配结果的匹配质量判断;

22、s52,根据匹配结果的匹配度计算匹配质量,所述匹配质量判断逻辑为设查询金字塔图层尺寸级别为n,若匹配度<= i(n),则匹配结果为低质量匹配,若i(n)<匹配度<= j(n),则匹配结果为一般质量匹配,若j(n)<匹配度<= k(n),则匹配结果为高质量匹配,若匹配度>k(n),则匹配结果为精确匹配,高质量匹配和精确匹配结果将作为定位成功结果,并计算匹配区域在原始图的位置和大小。

23、本发明所述的基于orb算法的图片快速识别定位的方法中;在所述步骤s52中所述计算匹配区域在原始图的位置和大小包括计算高质量匹配结果特征点的坐标平均值和标准差、过滤满足高质量匹配结果中坐标在2个标准差内的特征对、计算过滤后高质量匹配结果训练图特征点区域、计算过滤后高质量匹配结果查询金字塔图层特征点区域、计算训练图匹配区域与计算原始训练图匹配区域,其中计算高质量匹配结果特征点的坐标平均值和标准差包括计算高质量匹配结果中训练图特征点坐标平均值avgx1、avgy1和标准差devx1、devy1及计算高质量匹配结果中查询金字塔图层特征点坐标平均值avgx2、avgy2和标准差devx2、devy2;所述过滤满足高质量匹配结果中坐标在2个标准差内的特征对为avgx1–2*devx1<=训练图特征点横坐标<= avgx1+2*devx1 且 avgy1–2*devy1<=训练图特征点纵坐标<= avgy1+2*devy1且avgx2–2*devx2<=查询金字塔图层特征点横坐标<= avgx2+2*devx2且avgy2–2*devy2<=查询金字塔图层特征点纵坐标<= avgy2+2*devy2;所述计算过滤后高质量匹配结果训练图特征点区域为获取过滤后高质量匹配结果中训练图子图匹配特征点坐标的最小坐标值minx1、miny1与最大坐标值maxx1、maxy1,并计算得出训练图子图匹配特征点坐标矩阵(x1,y1,w1,h1),其中x1=minx1、y1=miny1、w1=maxx1-minx1、h1=maxy1-miny1;所述计算过滤后高质量匹配结果查询金字塔图层特征点区域为获取过滤后高质量匹配结果中查询金子塔层图匹配特征点坐标的最大坐标值maxx2、maxy2与最小坐标值minx2、miny2,并计算得出查询金字塔图层特征点矩阵(x2,y2,w2,h2),其中x2=minx2、y1=miny2、w1=maxx2-minx2、h2=maxy2-miny2;所述计算训练图匹配区域包括计算区域矩阵(x3,y3,w3,h3),其中x3=x1-x2*w1/w2、y3 = y1-y2*h1/h2、w3=查询金子塔层图宽度*w1/w2、h3=查询金子塔层图高度*h1/h2;所述计算原始训练图匹配区域为通过获取匹配结果训练图左上角相对预处理后训练图的坐标(x,y),计算得出原始训练图匹配区域(x4,y4,w4,h4),其中x4=(x3+x)/r、y4=(y3+y)/r、w4=w3/r、h4=h3/r。

24、本发明所述的基于orb算法的图片快速识别定位的方法中;在所述步骤s5中所述训练图平均拆分包括对训练图进行横向平均拆分c份,纵向平均拆分d份,并记录拆分后子图的裁剪层数为被拆分训练图裁剪层数加1,记录拆分子图区域左上角位于被裁剪训练图的坐标(x,y),并计算每个子图左上角位于预处理后训练图的坐标(x,y),其中,子图x =训练图x+x, 子图y =训练图y + y;所述训练图匹配区域截取通过计算得出训练图匹配区域作为待裁剪区域(x3,y3,w3,h3),若x3<0或y3<0或x3+w3>训练图宽度或y3+h3>训练图高度,则裁剪区域超出训练图范围,需向上级匹配结果的训练子图进行裁剪,并将裁剪区域转换为(x5,y5,w5,h5),其中x5=x3+训练图x、y5=h3+训练图y、w5=w3、h5=h3,裁剪出来的子图裁剪层数为被裁剪训练图裁剪层数加1,并记录裁剪子图区域左上角位于被裁剪训练图的坐标(x,y),并计算子图左上角位于预处理后训练图的坐标(x,y),其中,子图x=训练图x+x,子图y=训练图y+y。

25、本发明所述的基于orb算法的图片快速识别定位的方法中;所述步骤s6包括以下步骤:

26、s61,根据bf匹配算法完成查询金子塔层图特征点和描述依次与拆分裁剪的训练子图的特征匹配,并将匹配结果添加到结果列表中;

27、s62,对结果列表中的匹配结果进行距离过滤,并保留距离小于等于高质量匹配距离f的匹配特征点,获得高质量特征匹配结果;

28、s63,计算高质量特征匹配结果的匹配度,所述匹配度计算公式为匹配度= 高质量特征匹配结果特征点数/查询金字塔层图片特征点数;

29、s64,对匹配结果进行封装并添加到结果列表,其中匹配结果内容包含本次匹配的查询金字塔图层、本次匹配的训练图、查询金子塔层图特征点和描述、训练图特征点和描述、匹配度、父级匹配结果、训练子图匹配结果列表、高质量特征匹配结果和训练图嵌套层数,其中本次匹配结果的训练子图匹配结果列表均为空;

30、s65,更新父级结果的训练子图匹配结果列表,添加本次生成的子匹配结果。

31、本发明的基于orb算法的图片快速识别定位的方法通过使用orb算法orb算法进行特征和描述计算可以快速完成在训练图中识别定位查询图,不仅减少了图片定位过程的计算量,同时加快了计算速度。本技术相比传统orb算法进行图像定位,仅生成查询图金字塔,不生成训练图金金字塔,其不仅计算量少,且定位前可对训练图进行缩小预处理,减少后续匹配过程中的计算量

32、计算特征点数量按图像尺寸动态变化,适应不同尺寸的图像定位,可快速收缩查询图在训练图的定位范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1