大规模图像的匹配方法与流程

文档序号:17326785发布日期:2019-04-05 21:50阅读:427来源:国知局
大规模图像的匹配方法与流程

本发明涉及图像处理技术领域,具体地,涉及大规模图像的匹配方法。



背景技术:

从大规模网络图片集中,可以通过运动恢复结构(structurefrommotion,sfm)的方法重建三维结构。当前,常见的方法主要有:全局重建法、分阶段重建法和增量式重建法。

增量式重建因其出色的去除外点能力变得十分流行,它的主要流程如下:首先对每一张图像进行特征提取,然后通过建立图像对之间的匹配关系得到一张匹配图,该图的结点对应每张图片,图的边沿对应图像与图像之间的匹配关系,最后根据这张图通过几何关系和光束平差法恢复出图像集的三维结构。在这个流程中,图像匹配通常耗时最多。进行匹配最直观的方法是暴力搜索法,它可分为两个步骤,首先通过近似最近邻法对每张图像对求得一个粗略的匹配,然后通过几何验证得到一个精确的匹配。但由于网络中的图像包含大量的无关图像,比如需重建的建筑物前人物或动物的特写,天空或水面的景色,告示牌等,导致了在所有图像对中实际匹配的图像对所占的比例很低,通常只有1-5%左右。因此这种遍历所有图像对的暴力搜索法就显得效率很低。

针对这一问题,现在流行的运动恢复结构(structurefrommotion,sfm)pipeline一般采用视觉词树的方法来提高图像匹配的速度。它基于这样一个假设:相似的图像对有更高的匹配概率。一般步骤是首先通过大规模的图片集离线训练出一个包含大量视觉词的词汇树,然后根据这个词汇树对图像集中图像进行索引,再根据这个索引求得每个图像对之间的相似度,最后依次对每张图像根据相似度的高低来选取图像对进行匹配。这种方法可大大提高效率,但是它所得到的匹配对的完整度不够。这是因为有很多匹配但不相似的图像对,使得这种方法会造成很多匹配的图像对被漏检。相似而不匹配的其中一个原因是有些匹配的图像对重叠区域小,因此相似度就较低。基于词汇树的图像描述不仅降低的信息的维度而且丢失了空间信息,这导致看起来相似的图像,通过这种方法的计算所得的相似度不高甚至很低。

为了解决这个问题,graphmatch采用采样传播相结合的方法,取得比较好的效果。在采样的阶段,它使用了fishervector代替视觉词的方法,这不仅增大了图像的描述信息且降低了运算复杂度和对内存的需求,其次它采用了传播的方法,搜寻到更多的匹配图像对。传播的主要依据如下:如果图像i与图像j相匹配,而图像j与图像k相匹配,那么图像i与图像k相匹配的概率就很高。但是,该算法没有充分地利用应用场景的特点来提高算法的效率。



技术实现要素:

针对现有技术中的缺陷,本发明的目的是提供一种大规模图像的匹配方法。

根据本发明提供的一种大规模图像的匹配方法,包括:

步骤1:对图像集中的图像进行行人检测,得到图像中的行人区域;

步骤2:对所述图像中除行人区域以外的区域进行sift特征提取,得到对应的图像特征;

步骤3:通过步骤2中所得到的图像特征获取每张图像的fishervector,并根据所述fishervector得到图像集的距离矩阵;

步骤4:根据所述距离矩阵每次采样预设数量的图像对;

步骤5:对所述图像对使用大尺度特征进行预匹配,并对预匹配成功的图像对进行精确匹配,以及将匹配结果存入匹配图;

步骤6:滤除匹配率低于预设阈值的图像对;

步骤7:根据匹配关系进行传播得到扩展的图像对;

步骤8:对扩展的图像对使用大尺度特征进行预匹配,并对预匹配成功的图像对进行精确匹配,以及将匹配结果存入匹配图;

步骤9:若所有相关图像均含有充足的匹配关系,或者扩展的图像对均为不匹配图像对,则返回执行步骤4;否则,结束流程。

可选地,在所述步骤3的距离矩阵中,每个元素表示的是图像的编号,每一行表征一张图像与图像集中其他图像之间的相似度排序结果;每一行的元素按照图像之间的相似度顺序进行排列,相似度越高则对应图像的编号越靠前。

可选地,所述步骤4包括:

选取第i行中前n项的图像编号所对应的图像,与第i行对应的图像组合得到候选图像对;i=1,2,3,….m;m为图像集中图像的总数;n为大于或等于2的自然数;

所述候选图像分别与第i张图像构成n个图像对。

可选地,所述步骤5包括:

分别对所述图像对中的两张图像进行大尺度特征提取,得到预设数量的大尺度图像特征;

采用相似最近邻法比对两张图像的大尺度图像特征,得到粗匹配成功的图像对;

采用几何验证方式验证所述粗匹配成功的图像对,去除存在匹配错误的图像对,得到候选图像对;

对所述候选图像对进行全特征匹配,所述全特征匹配是指:对所述候选图像对中提取的所有图像特征进行匹配。

可选地,所述步骤6包括:

步骤6.1:根据候选图像对建立一个p×p的矩阵a,每张图像对应一行;矩阵a中各元素全部初始化为0;p表示图像的总数;

步骤6.2:根据所述候选图像对的匹配率,将匹配率高于预设阈值的图像对所对应的矩阵元素置1;其中,假设图像i与图像j相匹配,则矩阵a将中第i行,第j列的元素a(i,j)的值置为1;

步骤6.3:对每一行的元素进行求和,得到一个列向量b,所述列向量b的每一行的值表示当前与该行相匹配的图像数目;

步骤6.4:根据所述列向量b更新矩阵a;其中,假设所述列向量的第i个元素b(i)=m;则将矩阵a中第i列的所有元素a(:,i)中等于1的元素均置为m,得到更新后的矩阵a;

步骤6.5:累加更新后的矩阵a中的每行元素,得到更新后的列向量b;其中,所述更新后的列向量b中的每个元素对应一张图像,元素的值表征该元素对应图像与图像集的匹配率;

步骤6.6:根据所述更新后的列向量b滤除匹配率低于预设阈值的图像对。

可选地,所述步骤7包括:

假设匹配图中的第i个节点与第j个节点匹配,则获取与第j个节点匹配的所有其他节点;

将所述第i个节点与所述第j个节点匹配的所有其他节点进行匹配。

可选地,所述步骤5和步骤8中的匹配图包括:节点,以及连接节点的边;其中,每个节点表征图像,连接节点的边表征两个图像之间的匹配关系。与现有技术相比,本发明具有如下的有益效果:

本发明提供的一种大规模图像的匹配方法,通过对图像集中的图像进行行人检测,得到图像中的行人区域;对所述图像中除行人区域以外的区域进行尺度不变特征变换(scale-invariantfeaturetransform,sift)特征提取,得到对应的图像特征;获取每张图像的fishervector,并根据所述fishervector得到图像集的距离矩阵;根据所述距离矩阵,构建每张图像的图像对;对所述图像对进行大尺度特征预匹配,快速滤除不匹配的图像对,提高图像的匹配效率;滤除所述匹配率低于预设阈值的图像对,得到候选图像对;获取用于表征所述候选图像对中,两张图像之间匹配关系的匹配图。从而可以有效提高大规模图像的匹配效率,降低图像匹配的运算量。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1为本发明提供的大规模图像的匹配方法的原理示意图;

图2为距离矩阵所对应的图像以及相似度分值示意图;

图3(a)为相似最近邻法得到粗匹配结果示意图;

图3(b)为对粗匹配结果进行几何验证过滤后的结果示意图;

图4(a)为对图像对中一图像进行大尺度特征提取所采集的特征点的结果示意图;

图4(b)为对图像对中另一图像进行大尺度特征提取所采集的特征点的结果示意图;

图5(a)为对一匹配的图像对进行匹配之后的结果示意图;

图5(b)为对一不匹配的图像对进行匹配之后的结果示意图;

图6为矩阵a到列向量b的变化结果示意图;

图7为更新后的矩阵a到更新后的列向量的变化结果示意图;

图8为进行三维重建的效果示意图。

其中,图8中显示了三维点云重建的建筑物,由于三维点云本身的稀疏特性,因此重建的结果并不具备清晰的轮廓线条,因此图8仅用于展示重建效果,其建筑物外轮廓线条是否清晰不在本发明的保护范围,且其轮廓线条的清晰度不影响本发明技术方案的实施。

具体实施方式

下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。

本发明提供一种大规模图像的匹配方法,包括如下步骤:

步骤1:对图像集中的图像进行行人检测,得到图像中的行人区域。

本实施例,通过与在检索结果中排位靠前的图片的匹配率滤除无关图片,通过行人检测滤除图片中行人的特征,通过大尺度特征的预匹配来快速滤除不匹配的图像对。

去除特征冗余:特征的冗余最直接的原因是图像中包含了与目标重建无关的人或物。这里原因主要有以下两点:1)不是专为重建拍摄。从网络中获取的图像集并不是专门为目标重建而拍摄的,有较多情况下拍摄的主体不是我们所关心的目标。2)拍摄时目标附近通常有很多行人。能通过sfm进行重建需要满足两个条件,首先目标要求是静止的,其次图片集覆盖目标的各个角度。从网络上获取的图像集中满足这两个条件的绝大多数是有名的建筑或景点,而在这些地方通常有大量行人的存在。针对来自行人的冗余特征,本文先通过行人检测提取行人区域,再在后续滤除这些区域中的特征来提高匹配效率。具体过程如下:1)在特征提取前通过hog+svm[5]的方法提取行人区域。2)在特征提取的过程中滤除这部分区域的特征。

步骤2:对所述图像中除行人区域以外的区域进行sift特征提取,得到对应的图像特征。

步骤3:通过步骤2中所得到的图像特征获取每张图像的fishervector(费希尔矢量),并根据所述fishervector得到图像集的距离矩阵。

可选地,在所述步骤3的距离矩阵中,每个元素表示的是图像的编号,每一行表征一张图像与图像集中其他图像之间的相似度排序结果;每一行的元素按照图像之间的相似度顺序进行排列,相似度越高则对应图像的编号越靠前。

具体地,以包含2915张图像的图像集为例,该图像集的距离矩阵如下:

其中,每一行表示一张图像,图像用编号的方式表示,各列为其他图像的按相似度的排序。矩阵中部分内容所对应的图像和距离值如图2所示,距离的范围为0-1,其中1为最相似。

步骤4:根据所述距离矩阵,构建每张图像的图像对。

本实施例中,首先选取第i行中前n项的图像编号所对应的图像,得到候选图像;i=1,2,3,….m;m为图像集中图像的总数;n为大于或等于2的自然数;所述候选图像分别与第i张图像构成n个图像对。

步骤5:对所采样的图像对首先使用大尺度特征进行预匹配,然后对预匹配成功的图像对进行精确匹配并将结果存入匹配图;

本实施例中,分别对所述图像对中的两张图像进行大尺度特征提取,得到预设数量的大尺度图像特征;采用相似最近邻法比对两张图像的大尺度图像特征,得到粗匹配成功的图像对;采用几何验证方式验证所述粗匹配成功的图像对,去除存在匹配错误的图像对,得到候选图像对;对所述候选图像对进行全特征匹配,所述全特征匹配是指:对所述候选图像对中提取的所有图像特征进行匹配,得到所述候选图像对的匹配率。

具体地,首先对图像对中每张图像提取一定数量的大尺度特征,如图3所示。然后对这些特征进行匹配。匹配的方法如下:首先使用相似最近邻法得到图像对的粗匹配,如图3(a)所示,然后再通过几何校验得到更精确的匹配,如图3(b)所示。

步骤6:滤除所述匹配率低于预设阈值的候选图像对,得到目标图像对。

可选地,参见图6、图7,所述步骤6包括:

步骤6.1:根据所述候选图像对建立一个p×p的矩阵a,每张图像对应一行;矩阵a中各元素全部初始化为0;p表示图像的总数;

步骤6.2:根据所述候选图像对的匹配率,将匹配率高于预设阈值的图像对所对应的矩阵元素置1;其中,假设图像i与图像j相匹配,则矩阵a将中第i行,第j列的元素a(i,j)的值置为1;

步骤6.3:对每一行的元素进行求和,得到一个列向量b,所述列向量b的每一行的值表示当前与该行相匹配的图像数目;

步骤6.4:根据所述列向量b更新矩阵a;其中,假设所述列向量的第i个元素b(i)=m;则将矩阵a中第i列的所有元素a(:,i)中等于1的元素均置为m,得到更新后的矩阵a;

步骤6.5:累加更新后的矩阵a中的每行元素,得到更新后的列向量b。

本实施例中的步骤6的目的是去除图像冗余:从网络上获取的图像集中包含了较多的图像冗余,对于这个问题,本文结合graphmatch算法的具体过程,在采样一定数量的图像后,根据图像匹配的情况对每张图像进行一个是否是无关图像的评估。具体评估方法如下:

1)建立一个n×n(n为总的图像数量)的矩阵a,每张图像对应一行,行上的元素对应其他的图像,矩阵各元素全部初始化为0。

2)根据当前匹配情况,将匹配的图像对所对应的矩阵元素置1。例如假设图像i与图像j相匹配,则将a(i,j)置为1。

3)累加每一行的元素值得到一个列向量b,这个向量的每一行的值表示当前与该行相匹配的图像数目。

4)根据这个列向量更新矩阵a,例如假设b(i)=m,则将a(:,i)中等于1的元素均置为m。

5)累加a中每行元素得到新列向量b。

最终得到的列向量b中某行对应的元素值即对该行表示的图片的评估。这个值与这张图像当前所匹配图像的数目有关,而且与它所匹配的图像的相关度有关。也就是说,一张图像与越多的图像相匹配,这个值越高,其次对于与这张图像相匹配的图像,它与其他图片匹配的数目越多,这个值也越高。

去除计算冗余:根据wu的理论,topn(推荐值100)的大尺度特征的匹配度与最终的匹配结果有比较强的相关性。根据这一理论,本文结合graphmatch算法,在采样或传播的过程中实行预匹配,即在实际匹配之前,先各自抽取一定量的大尺度特征进行匹配,如果匹配成功再进行实际匹配(使用全部特征),否则认为不匹配。

步骤7:根据匹配关系进行传播得到扩展的图像对;

假设匹配图中的第i个节点与第j个节点匹配,则获取与第j个节点匹配的所有其他节点;将所述第i个节点与所述第j个节点匹配的所有其他节点进行匹配。

步骤8:对传播所得的图像对首先使用大尺度特征进行预匹配,然后对预匹配成功的图像对进行精确匹配并将结果存入匹配图。

重复步骤4-8直至所有相关图像均含有充足的匹配关系或者通过采样传播获得的图像对均为不匹配的图像对。

实施例1:

图像匹配的最终结果一般用于对目标进行三维重建,重建的质量可以间接地反映图像匹配的质量。在实验中,使用colmap对匹配的结果进行处理得到最终的重建结果。

下面介绍一下整个实验运行的设备,cpu:2×intel(r)xeon(r)e5-2630v4@2.20ghz、显卡:teslap10016g、内存:128g、硬盘:ssd480g,机械4t/7200转。实验中使用的数据集来自flicker,每个图像集都是实际从flicker网站通过关键词检索而来,图像集数量从1497-15685,匹配的图像对占总图像对数的比例从0.04-0.004,覆盖了很大范围,可以有效地检验算法的性能。实验将thinnermatch与暴力搜索法、graphmatch进行比较。如表1所示,对比的参数有,“匹配图像对数”:最终获得的图像匹配对数,“注册成功的摄像头数”:三维重建完成后成功注册的摄像头数,即最终被重建算法所认可的图像数目,“匹配时间”:在匹配的整个过程所消耗的时间,“重建时间”:在重建过程中所消耗的时间,“速度提升率”:相对于暴力搜索法(baseline)速度的提升。表中的thinnermatch1、thinnermatch2和thinnermatch3只包含thinnermatch算法中的一个步骤,分别是去除特征冗余、图片冗余和计算冗余。

表1.各算法效率(匹配时间和重建时间)、算法质量(找到的匹配数和重建中有效的摄像头数目)的比较,其中出现在最后两列“num×”表示相对于baseline速度提升的倍数。

通过上述实施例对比可以看出,本发明实施例可以有效提高大规模图像的匹配效率,降低图像匹配的运算量。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。

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