CN117115482A - 一种基于多模型融合多线程推理的图像局部特征匹配方法 - Google Patents
一种基于多模型融合多线程推理的图像局部特征匹配方法 Download PDFInfo
- Publication number
- CN117115482A CN117115482A CN202310829717.6A CN202310829717A CN117115482A CN 117115482 A CN117115482 A CN 117115482A CN 202310829717 A CN202310829717 A CN 202310829717A CN 117115482 A CN117115482 A CN 117115482A
- Authority
- CN
- China
- Prior art keywords
- model
- key point
- picture
- reasoning
- original
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 230000004927 fusion Effects 0.000 title claims abstract description 24
- 239000011159 matrix material Substances 0.000 claims abstract description 48
- 229920001651 Cyanoacrylate Polymers 0.000 claims abstract description 23
- 239000004830 Super Glue Substances 0.000 claims abstract description 23
- 238000012549 training Methods 0.000 claims abstract description 11
- 238000004364 calculation method Methods 0.000 claims description 31
- 230000006978 adaptation Effects 0.000 claims description 22
- 238000001914 filtration Methods 0.000 claims description 9
- 238000007500 overflow downdraw method Methods 0.000 claims description 7
- 230000003044 adaptive effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 5
- 230000001105 regulatory effect Effects 0.000 claims description 4
- 238000011160 research Methods 0.000 abstract description 4
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000009966 trimming Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
- G06V10/757—Matching configurations of points or features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/32—Normalisation of the pattern dimensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/80—Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Medical Informatics (AREA)
- Computational Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Algebra (AREA)
- Computational Linguistics (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了一种基于多模型融合多线程推理的图像局部特征匹配方法,可实现对同一场景下的不同角度在较长时间间隔内拍摄的照片进行快速高精度的关键点匹配。该方法利用SuperGlue、LoFTR、QuadTreeAttention以及DKM四个基模型并保留四个模型的原始预权重进行推理融合;通过对原始图像进行尺寸调整,使各个基模型的输入分辨率分别保持在600至1600之间,从而对不同模型进行适配;创造性地设计了基于该方法的多线程方式进行推理关键点和F矩阵的计算,极大提升了模型推理速度与图像匹配准确度。与现有技术相比,本发明具有普适性强、精准度高、无需进行二次训练、多模型融合下推理速度快的特点,对局部特征匹配领域的研究具有重要意义。
Description
技术领域
本发明涉及计算机视觉与图像处理领域,尤其涉及计算机视觉中的局部特征领域。
背景技术
近年来随着深度学习技术的发展,利用神经网络学习局部特征的描述符成为了计算机视觉中新的研究方向,并已取得了初步效果。局部图像特征是目前视觉研究中的热点问题,它在寻找图像中的对应点以及物体特征描述中有着重要作用,比如在利用多幅图像进行三维重建、恢复场景三维结构的应用中。如果去掉图片的局部特征,会对人类视觉辨识产生一定的阻碍,局部特征匹配基本的出发点是要有一个可靠的图像对应点集合,而自动建立图像之间点与点的可靠对应关系通常依赖于优秀的局部特征匹配算法。
局部特征匹配算法的核心问题是鲁棒性和区分性。鲁棒性是指算法能否在特征点经历光照变化或几何形变等噪声干扰时,依旧可以将相同的特征点匹配起来。区分性是指当特征区域发生变化时,算法能否准确捕捉到对应变化,保持不同图片内对同一事物描述的准确性。然而,容易区分不同局部图像内容的匹配算法的鲁棒性比较低,具备较强鲁棒性的匹配算法区分局部图像内容的准确率就稍弱,若要同时兼顾准确率与鲁棒性,势必需要耗费更长的时间对算法进行尽量全面的覆盖式训练。在很多场景应用中,我们都希望可以有一种速度较快的局部特征匹配算法同时兼备很强的鲁棒性和较高的准确率。
国内外已有众多学者在局部特征匹配领域取得了重要的研究成果,虽然负样本挖掘策略、多视图重构中的几何约束关系等方法的提出可以使网络学习到更加难以区分的负样本,但多数算法仍存在三维重建的数据集上泛化能力较差的问题,目前的图像局部特征匹配算法都需经过大量指定场景的训练集训练,才能对同一场景下的不同角度拍摄的照片有较好的关键点匹配准确率,并且若两张照片在拍摄时若存在较长的时间间隔,模型预测的关键点匹配率则会大幅度降低,在很多现实领域中并不具备实用性,模型的普适性与稳定性有待提高。
发明内容
本发明的目的在于:为解决上述背景技术中提出的现有局部特征匹配算法中针对复杂场景泛化能力较低、每次使用需要特定场景数据集训练以及模型对同一场景下的不同角度较长时间间隔拍摄的照片关键点匹配率会大幅降低等问题,本发明提供了一种基于多模型融合多线程推理的图像局部特征匹配方法,有效克服了背景技术中心所存在的技术不足,且创造性的设计了基于该方法的多线程方式进行推理关键点和F矩阵的计算,极大幅度地提升了模型推理速度与图像匹配准确度,对局部特征匹配领域的研究具有重要意义。
本发明为实现上述目的,提供了一种基于多模型融合多线程推理的图像局部特征匹配方法,所述方法包括图片尺寸适配模块、多模型推理与融合模块、F矩阵计算模块以及多线程并行计算模块;
所述图片尺寸适配模块具体流程包含以下步骤:
步骤(1.1),尺寸扩充:比较同一场景下不同角度拍摄的两张原始图片,记录第一张原始图片的高度为Horigin1,第一张原始图片的宽度为Worigin1;记录第二张原始图片的高度为Horigin2,第二张原始图片的宽度为Worigin2,将两张原始图片中的最大高度记为Hmax,最大宽度记为Wmax,将Hmax×Wmax作为两张原始图像中的最大尺寸,并利用0填充方式将两张原始图像都填充为最大尺寸,且填充后的图像高度和宽度都为32的最小整数倍,记填充后的图像高度为Hnew,填充后的图像宽度为Wnew;同一场景下不同角度拍摄的两张原始图片的最大尺寸小于所有模型所适配的图像尺寸;
步骤(1.2),底图创建:利用0填充方式分别为QuadTreeAttention模型创建两张1024×1024尺寸的底图,为SuperGlue模型创建两张1120×1120尺寸的底图,为LoFTR模型创建两张1600×1600尺寸的底图,为DKM模型创建两张672×896的底图;
步骤(1.3),中心点匹配:分别获取QuadTreeAttention模型、SuperGlue模型、LoFTR模型、DKM模型中底图的尺寸与通道数,通过(Wnew-Wmax)/2计算图像在x轴的偏移量xdiff,通过(Hnew-Hmax)/2计算图像在y轴的偏移量ydiff,从而计算原始图像中心在底图中心上需要移动的x距离和y距离;
步骤(1.4),尺寸适配:根据步骤(1.3),在不同模型中得到的xdiff和ydiff,将两张原始图像分别拷贝至四个不同模型的两张相同尺寸的底图上,使原始图像中心与底图中心对齐,完成不同模型的图片尺寸适配;
所述多模型推理与融合模块具体流程包括以下步骤:
步骤(2.1),图片适配:加载一对原始图片包括原始图片1与原始图片2,将原始图片1与原始图片2导入图片尺寸适配模块,得到QuadTreeAttention模型、SuperGlue模型、LoFTR模型以及DKM模型的适配尺寸图片;
步骤(2.2),预训练权重加载:预加载QuadTreeAttention模型、SuperGlue模型、LoFTR模型以及DKM模型,并设置模型的模型参数;
步骤(2.3),模型推理与调参:将每个模型的适配图片分别导入对应的模型中,对步骤(2.2)中预加载的四个模型包括QuadTreeAttention模型、SuperGlue模型、LoFTR模型以及DKM模型分别进行模型推理,推理过程中使用Optuna自动调参器对模型部分参数进行适当调节;
步骤(2.4),关键点集合建立:经过步骤(2.3)中的QuadTreeAttention模型推理得到关于原始图片1的关键点集合Fig1_SetQTA,得到关于原始图片2的关键点集合Fig2_SetQTA;经过步骤(2.3)中的SuperGlue模型推理得到关于原始图片1的关键点集合Fig1_SetSG,得到关于原始图片2的关键点集合Fig2_SetSG;经过步骤(2.3)中的LoFTR模型推理得到关于原始图片1的关键点集合Fig1_SetLoFTR,得到关于原始图片2的关键点集合Fig2_SetLoFTR;经过步骤(2.3)中的DKM模型推理得到关于原始图片1的关键点集合Fig1_SetDKM,得到关于原始图片2的关键点集合Fig2_SetDKM;
步骤(2.5),多模型融合:将步骤(2.4)中经过模型推理得出的关键点集合按照原始图片类型进行融合,原始图片1最终的关键点集合记为Fig1_Set,原始图片2最终的关键点集合记为Fig2_Set,Fig1_Set的融合方法为:Fig1_Set=Fig1_SetQTA+Fig1_SetSG+Fig1_SetLoFTR+Fig1_SetDKM,Fig2_Set的融合方法为:Fig2_Set=Fig2_SetQTA+Fig2_SetSG+Fig2_SetLoFTR+Fig2_SetDKM;
所述F矩阵计算模块具体流程包括以下步骤:
步骤(3.1),关键点过滤:加载openCV中的MAGSAC++算法对两个融合后的关键点集合Fig1_Set与Fig2_Set进行配对关键点过滤;
步骤(3.2),关健点对数判定:判断两张图片过滤后的关键点对数是否大于7,若大于7,则加载openCV中的MAGSAC++算法计算两张图片的F矩阵;若小于等于7,则两张图片的F矩阵直接返回0;
步骤(3.3),F矩阵计算:保存计算后的F矩阵,即为最终模型的推理结果;
所述多线程并行计算模块具体流程包括以下步骤:
步骤(4.1),空关键点集合建立:从需进行F矩阵计算的图片对中选每次加载一对导入图片适配模块,并定义第一次图片对关键点匹配之前的关键点集合为空;
步骤(4.2),多线程判定:判断当前图片对关键点匹配是否为第一次图片对关键点匹配,如果是,由于第一对图片对关键点匹配前F矩阵为空,系统将进行单线程操作:即只计算并存储该图片对的关键点集合;如果否,系统将进行多线程操作:将适配不同模型的尺寸图片导入多模型推理与融合模块,计算并存储该图片对的关键点集合,同时加载上一图片对的关键点集合导入F矩阵计算模块进行F矩阵计算并保存;
步骤(4.3),单线程更新关键点集合:当最后一对图片对的关键点集合存储完毕后,系统将进行将单独执行单线程操作:将最后图片对的关键点集合导入F矩阵计算模块进行矩阵计算并保存。
在采用上述技术方案的同时,本发明还可以采用或者组合采用以下进一步的技术方案:
作为本发明的优选技术方案:步骤(2.2)中,在设置模型参数时,将SuperGlue模型的关键点匹配阈值设置为0.3,允许最大关键点匹配对数设置为300;将LoFTR模型的关键点匹配阈值设置为0.3,允许最大关键点匹配对数设置为1000,允许最小关键点匹配对数设置为280;将DKM模型的关键点匹配阈值设置为0.3,允许最大关键点匹配对数设置为200。
作为本发明的优选技术方案:步骤(3.1)中,关键点集合Fig1_Set与Fig2_Set经过openCV中的MAGSAC++算法过滤后,得到最终的有效关键点匹配,可在两张原始图片上进行映射,从而形成关键点匹配后的结果图像。
作为本发明的优选技术方案:步骤(4.2)中进行的多线程操作,是首先将适配不同模型的尺寸图片导入多模型推理与融合模块,计算并存储该图片对的关键点集合,同时加载上一图片对的关键点集合并导入F矩阵计算模块进行F矩阵计算并保存,然后放置于开启的线程池中,并设置最大线程数量为2。
相比现有技术,本发明具有以下有益效果:
(1)本发明使用多个预训练模型且结合多个不同结构的模型优点,对不同场景的抗干扰能力强,在无须调参的基础上便具备远超单模型算法的稳定性;
(2)本发明使用四个百万级多场景数据集训练完毕的预训练单模型作为基模型进行推理融合,在不同场景下使用时无须额外训练集进行二次训练即可得到较高的关键点匹配率,极大提高了模型使用效率与实用率;
(3)通用性强,对同一场景下不同角度且较长时间间隔拍摄的照片,仍能得到准确有效的关键点匹配;
(4)设计了多线程并行推理方式,可实现GPU算力与显存的合理分配,且极大缩短了多模型融合方法进行关键点匹配的运行时间;
(5)相较于现有的其他先进单模型,本发明可显著提升关键点匹配的准确率。
附图说明
图1是图片尺寸适配模块示意流程图;
图2是多模型推理与融合模块示意流程图;
图3是F矩阵计算模块示意流程图;
图4是多线程并行计算模块示意流程图;
图5是任意两张原始图片与关键点映射后的结果图片。
具体实施方式
下面结合本发明实例中的附图,对本发明实例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例:基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本具体实施方式提供的基于多模型融合多线程推理的图像局部特征匹配方法,包括图片尺寸适配模块、多模型推理与融合模块、F矩阵计算模块以及多线程并行计算模块;
如图1所示,图片尺寸适配模块具体流程包括以下步骤:
步骤(1.1),尺寸扩充:比较同一场景下不同角度拍摄的两张原始图片,记录第一张原始图片的高度为Horigin1,第一张原始图片的宽度为Worigin1;记录第二张原始图片的高度为Horigin2,第二张原始图片的宽度为Worigin2,将两张原始图片中的最大高度记为Hmax,最大宽度记为Wmax,将Hmax×Wmax作为两张原始图像中的最大尺寸,并利用0填充方式将两张原始图像都填充为最大尺寸,且填充后的图像高度和宽度都为32的最小整数倍,记填充后的图像高度为Hnew,填充后的图像宽度为Wnew;同一场景下不同角度拍摄的两张原始图片的最大尺寸小于所有模型所适配的图像尺寸;
步骤(1.2),底图创建:利用0填充方式分别为QuadTreeAttention模型创建两张1024×1024尺寸的底图,为SuperGlue模型创建两张1120×1120尺寸的底图,为LoFTR模型创建两张1600×1600尺寸的底图,为DKM模型创建两张672×896的底图;
步骤(1.3),中心点匹配:分别获取QuadTreeAttention模型、SuperGlue模型、LoFTR模型、DKM模型中底图的尺寸与通道数,通过(Wnew-Wmax)/2计算图像在x轴的偏移量xdiff,通过(Hnew-Hmax)/2计算图像在y轴的偏移量ydiff,从而计算原始图像中心在底图中心上需要移动的x距离和y距离;
步骤(1.4),尺寸适配:根据步骤(1.3),在不同模型中得到的xdiff和ydiff,将两张原始图像分别拷贝至四个不同模型的两张相同尺寸的底图上,使原始图像中心与底图中心对齐,完成不同模型的图片尺寸适配。
如图2所示,多模型推理与融合模块具体流程包括以下步骤:
步骤(2.1),图片适配:加载一对原始图片包括原始图片1与原始图片2,将原始图片1与原始图片2导入图片尺寸适配模块,得到QuadTreeAttention模型、SuperGlue模型、LoFTR模型以及DKM模型的适配尺寸图片;
步骤(2.2),预训练权重加载:预加载QuadTreeAttention模型、SuperGlue模型、LoFTR模型以及DKM模型,并设置模型的模型参数;在设置模型参数时,将SuperGlue模型的关键点匹配阈值设置为0.3,允许最大关键点匹配对数设置为300;将LoFTR模型的关键点匹配阈值设置为0.3,允许最大关键点匹配对数设置为1000,允许最小关键点匹配对数设置为280;将DKM模型的关键点匹配阈值设置为0.3,允许最大关键点匹配对数设置为200;
步骤(2.3),模型推理与调参:将每个模型的适配图片分别导入对应的模型中,对步骤(2.2)中预加载的四个模型包括QuadTreeAttention模型、SuperGlue模型、LoFTR模型以及DKM模型分别进行模型推理,推理过程中使用Optuna自动调参器对模型部分参数进行适当调节;
步骤(2.4),关键点集合建立:经过步骤(2.3)中的QuadTreeAttention模型推理得到关于原始图片1的关键点集合Fig1_SetQTA,得到关于原始图片2的关键点集合Fig2_SetQTA;经过步骤(2.3)中的SuperGlue模型推理得到关于原始图片1的关键点集合Fig1_SetSG,得到关于原始图片2的关键点集合Fig2_SetSG;经过步骤(2.3)中的LoFTR模型推理得到关于原始图片1的关键点集合Fig1_SetLoFTR,得到关于原始图片2的关键点集合Fig2_SetLoFTR;经过步骤(2.3)中的DKM模型推理得到关于原始图片1的关键点集合Fig1_SetDKM,得到关于原始图片2的关键点集合Fig2_SetDKM;
步骤(2.5),多模型融合:将步骤(2.4)中经过模型推理得出的关键点集合按照原始图片类型进行融合,原始图片1最终的关键点集合记为Fig1_Set,原始图片2最终的关键点集合记为Fig2_Set,Fig1_Set的融合方法为:Fig1_Set=Fig1_SetQTA+Fig1_SetSG+Fig1_SetLoFTR+Fig1_SetDKM,Fig2_Set的融合方法为:Fig2_Set=Fig2_SetQTA+Fig2_SetSG+Fig2_SetLoFTR+Fig2_SetDKM。
如图3所示,F矩阵计算模块具体流程包括以下步骤:
步骤(3.1),关键点过滤:加载openCV中的MAGSAC++算法对两个融合后的关键点集合Fig1_Set与Fig2_Set进行配对关键点过滤;关键点集合Fig1_Set与Fig2_Set经过openCV中的MAGSAC++算法过滤后,得到最终的有效关键点匹配,可在两张原始图片上进行映射,从而形成关键点匹配后的结果图像;
步骤(3.2),关健点对数判定:判断两张图片过滤后的关键点对数是否大于7,若大于7,则加载openCV中的MAGSAC++算法计算两张图片的F矩阵;若小于等于7,则两张图片的F矩阵直接返回0;
步骤(3.3),F矩阵计算:保存计算后的F矩阵,即为最终模型的推理结果。
如图4所示,多线程并行计算模块具体流程包括以下步骤:
步骤(4.1),空关键点集合建立:从需进行F矩阵计算的图片对中选每次加载一对导入图片适配模块,并定义第一次图片对关键点匹配之前的关键点集合为空;
步骤(4.2),多线程判定:判断当前图片对关键点匹配是否为第一次图片对关键点匹配,如果是,由于第一对图片对关键点匹配前F矩阵为空,系统将进行单线程操作:即只计算并存储该图片对的关键点集合;如果否,系统将进行多线程操作:将适配不同模型的尺寸图片导入多模型推理与融合模块,计算并存储该图片对的关键点集合,同时加载上一图片对的关键点集合导入F矩阵计算模块进行F矩阵计算并保存;所进行的多线程操作,是首先将适配不同模型的尺寸图片导入多模型推理与融合模块,计算并存储该图片对的关键点集合,同时加载上一图片对的关键点集合并导入F矩阵计算模块进行F矩阵计算并保存,然后放置于开启的线程池中,并设置最大线程数量为2;
步骤(4.3),单线程更新关键点集合:当最后一对图片对的关键点集合存储完毕后,系统将进行将单独执行单线程操作:将最后图片对的关键点集合导入F矩阵计算模块进行矩阵计算并保存。
图5(a)是同一场景下不同角度拍摄的两张原始图片;图5(b)是采用本发明的方法,在图5(a)的两张原始图片上进行映射从而形成关键点匹配后的结果图像。如下表所示,相较于现有的其他先进单模型在0.60至0.726的准确率,本发明的关键点匹配准确率在不调参的情况下为0.837,经过Optuna自动调参后关键点准确率高达0.853。
不同模型的关键点的测试集匹配准确率对比表
模型 | 关键点匹配准确率 |
QuadTreeAttention微调 | 0.799 |
SuperGlue微调 | 0.710 |
LoFTR微调 | 0.767 |
DKM微调 | 0.600 |
未调参的本发明 | 0.837 |
微调后的本发明 | 0.853 |
上述具体实施方式用来解释说明本发明,仅为本发明的优选实施例,而不是对本发明进行限制,在本发明的精神和权利要求的保护范围内,对本发明做出的任何修改、等同替换、改进等,都落入本发明的保护范围。
Claims (4)
1.一种基于多模型融合多线程推理的图像局部特征匹配方法,其特征在于,所述方法包括图片尺寸适配模块、多模型推理与融合模块、F矩阵计算模块以及多线程并行计算模块;
所述图片尺寸适配模块具体流程包含以下步骤:
步骤(1.1),尺寸扩充:比较同一场景下不同角度拍摄的两张原始图片,记录第一张原始图片的高度为Horigin1,第一张原始图片的宽度为Worigin1;记录第二张原始图片的高度为Horigin2,第二张原始图片的宽度为Worigin2,将两张原始图片中的最大高度记为Hmax,最大宽度记为Wmax,将Hmax×Wmax作为两张原始图像中的最大尺寸,并利用0填充方式将两张原始图像都填充为最大尺寸,且填充后的图像高度和宽度都为32的最小整数倍,记填充后的图像高度为Hnew,填充后的图像宽度为Wnew;同一场景下不同角度拍摄的两张原始图片的最大尺寸小于所有模型所适配的图像尺寸;
步骤(1.2),底图创建:利用0填充方式分别为QuadTreeAttention模型创建两张1024×1024尺寸的底图,为SuperGlue模型创建两张1120×1120尺寸的底图,为LoFTR模型创建两张1600×1600尺寸的底图,为DKM模型创建两张672×896的底图;
步骤(1.3),中心点匹配:分别获取QuadTreeAttention模型、SuperGlue模型、LoFTR模型、DKM模型中底图的尺寸与通道数,通过(Wnew-Wmax)/2计算图像在x轴的偏移量xdiff,通过(Hnew-Hmax)/2计算图像在y轴的偏移量ydiff,从而计算原始图像中心在底图中心上需要移动的x距离和y距离;
步骤(1.4),尺寸适配:根据步骤(1.3),在不同模型中得到的xdiff和ydiff,将两张原始图像分别拷贝至四个不同模型的两张相同尺寸的底图上,使原始图像中心与底图中心对齐,完成不同模型的图片尺寸适配;
所述多模型推理与融合模块具体流程包括以下步骤:
步骤(2.1),图片适配:加载一对原始图片包括原始图片1与原始图片2,将原始图片1与原始图片2导入图片尺寸适配模块,得到QuadTreeAttention模型、SuperGlue模型、LoFTR模型以及DKM模型的适配尺寸图片;
步骤(2.2),预训练权重加载:预加载QuadTreeAttention模型、SuperGlue模型、LoFTR模型以及DKM模型,并设置模型的模型参数;
步骤(2.3),模型推理与调参:将每个模型的适配图片分别导入对应的模型中,对步骤(2.2)中预加载的四个模型包括QuadTreeAttention模型、SuperGlue模型、LoFTR模型以及DKM模型分别进行模型推理,推理过程中使用Optuna自动调参器对模型部分参数进行适当调节;
步骤(2.4),关键点集合建立:经过步骤(2.3)中的QuadTreeAttention模型推理得到关于原始图片1的关键点集合Fig1_SetQTA,得到关于原始图片2的关键点集合Fig2_SetQTA;经过步骤(2.3)中的SuperGlue模型推理得到关于原始图片1的关键点集合Fig1_SetSG,得到关于原始图片2的关键点集合Fig2_SetSG;经过步骤(2.3)中的LoFTR模型推理得到关于原始图片1的关键点集合Fig1_SetLoFTR,得到关于原始图片2的关键点集合Fig2_SetLoFTR;经过步骤(2.3)中的DKM模型推理得到关于原始图片1的关键点集合Fig1_SetDKM,得到关于原始图片2的关键点集合Fig2_SetDKM;
步骤(2.5),多模型融合:将步骤(2.4)中经过模型推理得出的关键点集合按照原始图片类型进行融合,原始图片1最终的关键点集合记为Fig1_Set,原始图片2最终的关键点集合记为Fig2_Set,Fig1_Set的融合方法为:Fig1_Set=Fig1_SetQTA+Fig1_SetSG+Fig1_SetLoFTR+Fig1_SetDKM,Fig2_Set的融合方法为:Fig2_Set=Fig2_SetQTA+Fig2_SetSG+Fig2_SetLoFTR+Fig2_SetDKM;
所述F矩阵计算模块具体流程包括以下步骤:
步骤(3.1),关键点过滤:加载openCV中的MAGSAC++算法对两个融合后的关键点集合Fig1_Set与Fig2_Set进行配对关键点过滤;
步骤(3.2),关健点对数判定:判断两张图片过滤后的关键点对数是否大于7,若大于7,则加载openCV中的MAGSAC++算法计算两张图片的F矩阵;若小于等于7,则两张图片的F矩阵直接返回0;
步骤(3.3),F矩阵计算:保存计算后的F矩阵,即为最终模型的推理结果;
所述多线程并行计算模块具体流程包括以下步骤:
步骤(4.1),空关键点集合建立:从需进行F矩阵计算的图片对中选每次加载一对导入图片适配模块,并定义第一次图片对关键点匹配之前的关键点集合为空;
步骤(4.2),多线程判定:判断当前图片对关键点匹配是否为第一次图片对关键点匹配,如果是,由于第一对图片对关键点匹配前F矩阵为空,系统将进行单线程操作:即只计算并存储该图片对的关键点集合;如果否,系统将进行多线程操作:将适配不同模型的尺寸图片导入多模型推理与融合模块,计算并存储该图片对的关键点集合,同时加载上一图片对的关键点集合导入F矩阵计算模块进行F矩阵计算并保存;
步骤(4.3),单线程更新关键点集合:当最后一对图片对的关键点集合存储完毕后,系统将进行将单独执行单线程操作:将最后图片对的关键点集合导入F矩阵计算模块进行矩阵计算并保存。
2.根据权利要求1所述的一种基于多模型融合多线程推理的图像局部特征匹配方法,其特征在于,步骤(2.2)中,在设置模型参数时,将SuperGlue模型的关键点匹配阈值设置为0.3,允许最大关键点匹配对数设置为300;将LoFTR模型的关键点匹配阈值设置为0.3,允许最大关键点匹配对数设置为1000,允许最小关键点匹配对数设置为280;将DKM模型的关键点匹配阈值设置为0.3,允许最大关键点匹配对数设置为200。
3.根据权利要求1所述的一种基于多模型融合多线程推理的图像局部特征匹配方法,其特征在于,步骤(3.1)中,关键点集合Fig1_Set与Fig2_Set经过openCV中的MAGSAC++算法过滤后,得到最终的有效关键点匹配,可在两张原始图片上进行映射,从而形成关键点匹配后的结果图像。
4.根据权利要求1所述的一种基于多模型融合多线程推理的图像局部特征匹配方法,其特征在于,步骤(4.2)中进行的多线程操作,是首先将适配不同模型的尺寸图片导入多模型推理与融合模块,计算并存储该图片对的关键点集合,同时加载上一图片对的关键点集合并导入F矩阵计算模块进行F矩阵计算并保存,然后放置于开启的线程池中,并设置最大线程数量为2。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310829717.6A CN117115482A (zh) | 2023-07-07 | 2023-07-07 | 一种基于多模型融合多线程推理的图像局部特征匹配方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310829717.6A CN117115482A (zh) | 2023-07-07 | 2023-07-07 | 一种基于多模型融合多线程推理的图像局部特征匹配方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117115482A true CN117115482A (zh) | 2023-11-24 |
Family
ID=88800942
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310829717.6A Pending CN117115482A (zh) | 2023-07-07 | 2023-07-07 | 一种基于多模型融合多线程推理的图像局部特征匹配方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117115482A (zh) |
-
2023
- 2023-07-07 CN CN202310829717.6A patent/CN117115482A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111723860B (zh) | 一种目标检测方法及装置 | |
WO2022002150A1 (zh) | 一种视觉点云地图的构建方法、装置 | |
CN112528845B (zh) | 一种基于深度学习的物理电路图识别方法及其应用 | |
WO2020113412A1 (zh) | 一种目标检测方法和系统 | |
CN109087337B (zh) | 基于分层卷积特征的长时间目标跟踪方法及系统 | |
CN114494254B (zh) | 基于GLCM与CNN-Transformer融合的产品外观缺陷分类方法、存储介质 | |
CN107590502A (zh) | 一种全场稠密点快速匹配方法 | |
CN113129335B (zh) | 一种基于孪生网络的视觉跟踪算法及多模板更新策略 | |
CN105513083A (zh) | 一种ptam摄像机跟踪方法及装置 | |
CN116091823A (zh) | 一种基于快速分组残差模块的单特征无锚框目标检测方法 | |
CN115620206A (zh) | 一种多模板视觉目标跟踪网络的训练方法和目标跟踪方法 | |
US11699303B2 (en) | System and method of acquiring coordinates of pupil center point | |
CN110942102A (zh) | 一种概率松弛核线匹配方法及系统 | |
WO2022120996A1 (zh) | 视觉位置识别方法及装置、计算机设备及可读存储介质 | |
CN115908374B (zh) | 基于度量学习的瓦楞纸箱印刷图案匹配检测方法、系统及存储介质 | |
CN113808033A (zh) | 图像文档校正方法、系统、终端及介质 | |
CN117115482A (zh) | 一种基于多模型融合多线程推理的图像局部特征匹配方法 | |
CN105184809A (zh) | 运动对象检测方法和运动对象检测装置 | |
CN116778182A (zh) | 一种基于多尺度特征融合的素描作品评级方法及模型 | |
CN114283081B (zh) | 基于金字塔加速的深度恢复方法、电子设备及存储介质 | |
CN111428803A (zh) | 一种基于Wasserstein距离的深度域适应图像分类方法 | |
CN115194323A (zh) | 一种激光焊接机的定位焊接方法 | |
CN114331919B (zh) | 深度恢复方法、电子设备及存储介质 | |
CN113033578A (zh) | 基于多尺度特征匹配的图像校准方法、系统、终端及介质 | |
CN112232296B (zh) | 一种超参数探索方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |