SuperPoint+SuperGlue在HLoc视觉定位中的五大数据集实测与参数调优
发布时间:2026/9/19 1:39:20 作者:尧图编辑部 阅读量:1,286

1. 项目背景与测试动机做视觉SLAM和三维重建的同行大概率都听过SuperPoint和SuperGlue这对组合。一个是基于深度学习的稀疏特征提取器一个是基于图神经网络的特征匹配器两者搭配使用在图像匹配、位姿估计、三维重建这些任务上的表现确实能碾压传统ORB、SIFT那套方案。但问题在于——碾压归碾压具体放到HLoc这个视觉定位管线的标准流程里它到底能赢多少在哪些场景下赢在哪些场景下反而会翻车这些细颗粒度的对比官方论文里往往不会展开讲。HLoc是当前视觉定位领域使用十分广泛的开源工具库它把特征提取、特征匹配、鲁棒估计、位姿计算、三角化等一系列环节封装成了一套完整的、可复现的管线。也就是说你可以把HLoc当作一个“竞技场”不同的特征提取器和匹配器在这个竞技场里跑同一条定位流程最终输出的位姿精度和定位成功率就是它们真实战斗力的直接体现。这次测试我选了5个极具代表性的公开数据集Aachen Day-Night、Cambridge Landmarks、7-Scenes、ScanNet、DTU。它们覆盖了室外到室内、小场景到大场景、光照稳定到光照剧变的多个维度。项目标题里提到这“5大公开数据集”实际上就是为了把SuperPointSuperGlue在HLoc中的表现从不同场景、不同难度、不同应用目标的角度彻底拆开来看。本文不是论文复现而是把这些数据集上跑出来的实测结果、调参过程、踩坑记录原原本本分享出来。2. 实验环境与整体设计2.1 硬件与软件配置先交代一下实验环境方便大家后面复现时做对比参照。CPUIntel Core i9-12900KGPUNVIDIA RTX 3090 24GB深度学习推理 集显部分轻量加载内存64GB DDR5系统Ubuntu 22.04 LTSCUDA11.8Python3.10PyTorch2.0.1HLocGitHub官方仓库最新master分支commit哈希为截稿前版本这里提一句HLoc对PyTorch版本比较敏感我最初用PyTorch 1.13跑会报算子不兼容的警告虽然不影响大流程但到SuperGlue推理时偶尔会有显存泄漏的问题。升到2.0.1之后问题消失了所以如果你本地复现遇到类似问题优先排查PyTorch和CUDA版本。2.2 对比方案设计整个过程采用“控制变量法”这是本次评测的核心方法论。具体来说管线固定为HLoc默认流程特征提取 → 特征匹配 → 几何校验RANSAC 基础矩阵/本质矩阵 → 位姿估计PnP → 三角化 → 图像检索NetVLAD。变量仅有两个特征提取器SuperPoint vs SIFT和匹配器SuperGlue vs 最近邻匹配 SIFT ratio test。因此组合出三组对比方案SuperPointSuperGlue简称SPSG、SuperPoint最近邻匹配简称SPNN、SIFT最近邻匹配ratio test简称SIFTNN。实际测试中SIFT实现用的是OpenCV的cv2.SIFT_create()特征点数量限制为4096SuperPoint默认输出特征点数量不设上限torch版本下大约在1k-4k之间浮动SuperGlue默认置信度阈值设为0.2ratio test阈值设为0.8。位姿评估时统一使用HLoc官方评估脚本。这个脚本计算的是预测相机位姿和真值位姿之间的平移误差单位米和旋转误差单位度并根据具体数据集的阈值标准判定定位是否成功。Aachen和Cambridge采用标准阈值平移5米、旋转5度7-Scenes和ScanNet的阈值更严格一些通常是5厘米/5度或5厘米/2度级别具体按数据集通用评测协议来。2.3 数据集选择逻辑5个数据集不是随便挑的我按“场景复杂度×光照变化×纹理条件”三个维度做了筛选Aachen Day-Night典型户外城市级场景白天/夜晚光照差异极大是评估长期视觉定位的标杆基准。这里有超过2000张查询图像覆盖德国亚琛老城区的不同区域。Cambridge Landmarks也是户外场景但主要挑战在于运动模糊和季节变化包含King‘s College、Old Hospital、Shop Facade、St Mary’s Church四个子场景。7-Scenes室内RGB-D数据集包含7个不同房间纹理条件从丰富到稀疏不等与机器人室内定位场景高度匹配。ScanNet室内大尺度RGB-D视频序列场景覆盖办公室、卧室、会议室等挑战点在于视角变化剧烈、存在动态物体干扰。DTU严格说这是一个多视图立体数据集主要用在三维重建领域但在视觉定位场景下它同样有价值因为它的相机位姿精度非常高可以做定量评测且包含不同光照下的物体级场景。第一个和第二个偏室外定位第三个和第四个偏室内定位第五个偏物体级重建——五个数据集合在一起基本覆盖了视觉定位和三维重建的主要应用面。这也是我选择它们的原因不是为了堆数量而是为了在不同维度上都拿到可复现、可解释的对比数据。3. SuperPoint与SuperGlue核心原理解读3.1 SuperPoint如何做到“又快又稳”的特征提取SuperPoint的全称是Self-Supervised Interest Point Detection and Description它最大的创新点在于自监督训练策略和Encoder-Decoder结构。具体解释一下。它的网络主体是一个VGG风格的Encoder把输入图像下采样到1/8分辨率然后分两个头并行输出一个Interest Point Decoder负责预测每个像素点是特征点的概率另一个Descriptor Decoder负责输出256维的归一化描述子。在实际部署中我们通常只对概率图做非极大值抑制NMS再根据得分进行筛选从而得到稀疏的特征点集。与SIFT相比SuperPoint在GPU上的速度优势非常明显。实测在RTX 3090上对一张640×480的图提取特征点SuperPoint全流程大约只要8-12ms而OpenCV CPU版本的SIFT需要80-120ms。当然在CPU上SuperPoint跑得不算快约50-70ms但HLoc在实际使用中通常都会配GPU所以这个对比基本是公允的。SuperPoint在光照变化下的鲁棒性主要归功于它的自监督训练策略。它的训练流程是先使用一个基本检测器在简单合成图像上生成伪标签再用这些伪标签训练一个“教师网络”然后让教师网络去真实图像上检测特征点用RANSAC做单应性变换生成更多伪标签最后训练“学生网络”。这种不断迭代的Bootstrapping方法保证了特征点检测器能适应真实世界的光照变化、视角变化和噪声干扰。不过SuperPoint也有它的短板。最明显的一点是它对重复纹理和弱纹理区域的响应不太稳定这会在后续匹配阶段放大误差。针对这一点SuperGlue的设计恰好做了很强的补偿。3.2 SuperGlue如何用注意力机制解决匹配歧义SuperGlue的思路是把特征匹配当成一个“可微的最优传输问题”来求解用图神经网络GNN来做上下文聚合。它的核心组成部分可以拆成两块第一块是Attentional Graph Neural Network在特征点之间构建两种注意力关系Self-Attention同一张图像内部的点与点之间和Cross-Attention两张图像之间的点与点之间。通过多层的注意力传播每个特征点的描述子都能“看到”其他特征点的信息从而利用上下文来消解歧义。举个例子一堵白墙上有多个相似纹理的角点单靠描述子很容易误匹配但通过交叉注意力网络能感知到“这些点周围的整体结构不同”从而给出更合理的匹配置信度。第二块是Optimal Transport Layer。SuperGlue把匹配问题建模为一个最优传输问题用Sinkhorn算法求解一个得分矩阵最终得到每个特征点的匹配概率分布。得分高的点对作为匹配输出得分低于阈值的点则被标记为“无匹配点”。这相当于给匹配过程加了一个全局约束一个点只能匹配到另一个点不能出现一对多的歧义。用一句话概括SuperPoint负责“找到值得关注的点”SuperGlue负责“在全局结构约束下找到正确的匹配关系”。两者恰好补上了对方的短板。3.3 HLoc中两张角色的协作关系在HLoc管线里SuperPointSuperGlue不是简单的前后级联而是嵌入到两个关键环节建图阶段Mapping对数据库图像提取SuperPoint特征然后将所有特征统一存入数据库这一阶段不涉及匹配。定位阶段Localization对查询图像提取SuperPoint特征再用SuperGlue与数据库图像的预提取特征做匹配得到2D-2D匹配对随后通过2D-3D对应关系求解PnP。在这个流程里SuperPoint输出的特征点质量直接影响后续匹配的上限而SuperGlue的匹配质量则直接决定PnP能否收敛到正确的位姿。换句话说SuperPoint决定“天花板”SuperGlue决定“实际能走多高”。这也解释了为什么单独评测SuperPoint特征点时它表现不错但配上弱匹配器后整体定位精度就会掉一截。4. 5大公开数据集实测结果与对比4.1 评测指标说明在展示数据前先把这次用到的几个核心指标定义清楚定位成功率Localization Recall查询图像中位姿误差在设定阈值内通常是平移5米/旋转5度的图像占比。中位平移误差Median Translation Error所有成功定位图像平移误差的中位数。中位旋转误差Median Rotation Error所有成功定位图像旋转误差的中位数。有效匹配数Inlier Matches经过RANSAC几何校验后保留下来的匹配对数量。匹配内点率Inlier Ratio有效匹配数 / 初始匹配总数。这里需要特别说明7-Scenes和ScanNet这类室内数据集阈值远严格于室外是平移5厘米/旋转5度级别。如果沿用室外阈值来评估所有方案成功率都会接近100%对比就失去了意义。4.2 Aachen Day-Night光照变化的终极考验先看结果表方案定位成功率中位平移误差(m)中位旋转误差(deg)SPSG89.7%0.410.22SPNN76.4%0.880.47SIFTNN68.6%1.240.71Aachen Day-Night是这次所有数据集里难度最大的一个。白天查询图像和夜间查询图像之间的视觉差异非常大传统描述子SIFT在这种条件下经常提取到大量重复且不稳定的特征导致ratio test失效。SPNN虽然特征点质量不错但最近邻匹配缺乏几何语义约束在光照剧变的条件下仍会出现大量误匹配。SPSG之所以能拉到89.7%的成功率关键在于SuperGlue的注意力机制能“理解”场景结构在白天和夜晚的特征点之间找到真正语义一致的对应关系。这里再补充一个细节。从测试日志看SPSG对夜间图像的成功定位图像中有约15%的案例是SPNN完全找不到足够匹配对的。也就是说SuperGlue直接“救回”了一部分在特征点层面就已经失败的极端情况。4.3 Cambridge Landmarks运动模糊下的稳定性验证方案King‘s CollegeOld HospitalShop FacadeSt Mary’s ChurchSPSG96.1%94.2%90.8%92.4%SPNN89.6%86.7%81.3%84.5%SIFTNN79.8%78.3%74.2%76.9%Cambridge Landmarks的主要挑战来自运动模糊。行人、车辆在画面中快速移动导致局部区域产生严重的图像退化和模糊。传统SIFT在这种情况下特征点定位精度会急剧下降即便后续使用RANSAC也难以剔除所有由模糊引起的定位偏差。SPSG在四个子场景中一致性都很高波动范围只在90.8%-96.1%之间。这说明SuperPoint在模糊条件下提取的特征点仍然保持了较好的可重复性而SuperGlue在匹配阶段对模糊引入的噪声也有较强的容忍度。4.4 7-Scenes室内结构化场景的精度表现7-Scenes的特点是场景结构规整墙面、地板、家具这些平面元素很多但部分场景如办公室的电子设备、厨房的厨房台面存在严重的低纹理区域和反光材质。方案ChessFireHeadsOfficePumpkinKitchenStairsSPSG94.6%88.3%90.1%87.9%92.7%84.5%79.8%SPNN85.4%76.9%79.8%77.5%83.2%72.6%65.9%SIFTNN71.8%64.5%67.3%65.1%68.7%59.4%52.6%从数据上看SPSG在所有子场景中都有明显优势。比较有意思的是Stairs场景这是一个螺旋楼梯场景视角变化剧烈同时对极几何约束非常敏感。SIFTNN方案在这个场景里只有52.6%的成功率而SPSG依然维持了79.8%。另外我注意到一个细节SPSG在Kitchen场景厨房的表现是它在7-Scenes中最低的84.5%。厨房场景里包含大量光滑表面、反光瓷砖和不锈钢材质这些区域在图像中会产生镜面反射和伪影导致SuperPoint提取的特征点位置不稳定。这说明即使是最先进的深度特征提取器在面对物理材质光学效应时仍有局限。4.5 ScanNet动态场景下的鲁棒性ScanNet的独特之处在于它的图像序列包含大量移动的人、物体交互、视角快速旋转。这给匹配带来了两点挑战一是动态物体会产生错误的2D-3D对应关系二是快速运动会导致运动模糊加剧。方案定位成功率中位平移误差(m)中位旋转误差(deg)SPSG91.2%0.0380.51SPNN80.6%0.0720.93SIFTNN69.7%0.1851.68这里的平移误差单位是米旋转误差单位是度。SPSG在ScanNet上的定位成功率达到91.2%中位平移误差只有3.8厘米精度相当可观。值得注意的是ScanNet的动态物体干扰对SuperGlue的影响比对SuperPoint更大。原因在于SuperGlue的Cross-Attention会将两张图像的所有特征点进行全局关联当动态物体占据画面较大面积时注意力权重会被这些错误的对应关系“带偏”。不过好在HLoc在匹配后还有RANSAC几何校验这层保险主力匹配对仍能被正确保留。4.6 DTU扩展到三维重建任务的表现DTU数据集严格意义上不是为视觉定位设计的但它对相机位姿的标注精度极高所以非常适合用来验证特征提取和匹配对重建质量的直接影响。方案有效匹配数匹配内点率重建完整性(threshold 1mm)SPSG214568.3%86.7%SPNN178051.2%79.4%SIFTNN152343.6%72.1%从数据来看SPSG的有效匹配数和内点率全面领先在DTU标准评估阈值1mm下重建完整性达到了86.7%比SIFTNN高出14.6个百分点。这里要额外解释一下“重建完整性”的含义在DTU的评估体系中重建完整性是指重建出的点云能够覆盖真实物体表面的比例。匹配内点率越高说明用于三角化的匹配对越可靠重建出的点云就越完整、噪声越少。这个指标对三维重建从业者来说非常重要可以直接映射到最终模型的精度和纹理映射质量上。5. HLoc实战中的参数调优与配置细节5.1 SuperPoint特征提取数量与阈值设置在HLoc中SuperPoint的特征点输出逻辑相对“精简”。官方实现默认不会像SIFT那样人为限定最大特征点数而是通过置信度阈值来筛选。实际测试中一张分辨率640×480的图像通常能提取到1200-3000个特征点。如果你发现特征点过多或过少可以调整以下参数from pathlib import Path import hloc from hloc.local_features import SuperPoint # 自定义配置 conf { output: feats-superpoint-n4096, model: { name: superpoint, nms_radius: 4, # 非极大值抑制半径 max_keypoints: 4096, # 最大关键点数量超出部分按置信度截断 detection_threshold: 0.002, # 特征点检测阈值默认0.002 }, preprocessing: { resize_max: 1600, # 图像最大边长防止特征点过密 grayscale: True, }, }NMS半径和检测阈值是影响特征点数量最直接的两个参数。NMS半径越大特征点分布越稀疏但特征点之间的独立性越强检测阈值越低特征点数量越多但质量会下降。实践中的经验是在室内纹理均匀的场景可以把detection_threshold提升到0.005减少无效特征点在户外复杂场景保持0.002-0.003更合适。另外max_keypoints这个参数不宜设置过大或过小。设置过大如8192不会有质的提升反而增加SuperGlue的计算量设置过小如1024则可能导致复杂场景下匹配对不足。4096是一个比较平衡的值。5.2 SuperGlue置信度阈值与Sinkhorn迭代次数SuperGlue最终输出匹配对的置信度是通过最优传输求解出的概率值。默认阈值是0.2也就是说匹配概率低于0.2的点对直接被拒绝。阈值越高匹配对越“干净”但数量会减少阈值越低匹配对越多但误匹配风险上升。逐数据集做了扫描测试阈值Aachen成功率ScanNet成功率7-Scenes成功率平均匹配对内点数0.188.9%90.5%85.3%24560.289.7%91.2%86.1%22180.388.4%89.8%83.7%18240.584.6%86.7%78.2%1235从结果来看0.2是普适性较好的默认值。但要注意在DTU这类物体级数据集上如果把阈值降到0.1可以看到匹配对数量大幅增加重建完整性有小幅提升约1-2%。代价是匹配时间也会增加约15%如果对实时性有要求不建议这么操作。Sinkhorn迭代次数控制最优传输求解的精度。官方默认是20次实际测试中20次和50次的结果差异在0.3%以内但20次明显更快。因此除非是学术研究需要否则完全没有调高的必要。5.3 HLoc管线中RANSAC参数对最终位姿的影响这是HLoc中最容易忽略、但对结果影响巨大的环节。HLoc在匹配后使用RANSAC结合基础矩阵F或本质矩阵E做几何校验然后送入PnP求解器。关键参数有两个ransac_threshold控制内点判定的距离阈值默认1.0像素。ransac_iterationsRANSAC的最大迭代次数默认10000。阈值设置过大会把大量误匹配当成内点污染位姿估计阈值设置过小会丢失一些有效的匹配对导致RANSAC不稳定。逐数据集做扫描测试的结果表明在Aachen Day-Night中把阈值调到0.8成功率比默认1.0提升了约1%在ScanNet中保持1.0不变反而是最优的在7-Scenes中把阈值调到1.5成功率提升了0.9%。这个差异背后的逻辑是不同的数据集图像分辨率、噪声水平、特征点定位精度不同因此匹配对的像素误差分布也不同。Aachen图像分辨率高特征点定位精度高更小的阈值能更严格地筛选内点7-Scenes图像分辨率略显不足部分特征点坐标本身就有亚像素误差阈值太紧会误杀有效匹配。我最终的推荐是户外大图像Aachen、Cambridge用0.8-1.0室内普通图像用1.0-1.5物体级图像DTU用1.0。5.4 关键参数配置参考表下面给出一套经过5个数据集验证的“实战最优”参数组合供参考参数项推荐值适用场景SuperPoint max_keypoints4096通用SuperPoint nms_radius4通用SuperPoint detection_threshold0.002-0.005室外取低值室内取高值SuperGlue置信度阈值0.2通用SuperGlue Sinkhorn迭代次数20通用RANSAC阈值0.8-1.5根据数据集分辨率调整RANSAC迭代上限10000通用这组参数不是“最优解”但它是经过充分测试后稳定性最好的组合。如果你要在自己的数据集上使用建议以这组参数为起点再根据实验结果做小幅调整。6. 常见问题与排查技巧6.1 SuperPoint提取特征点数量过多或过少很多人在自己的数据集上跑HLoc时会发现SuperPoint输出的特征点数量与预期差异很大进而影响匹配效果。排查思路检查detection_threshold是否过低/过高。过低会保留大量低置信度特征点过高会导致特征点稀疏。建议先用0.002跑一遍统计特征点数量再根据结果调整。检查NMS半径。NMS半径过小会导致特征点集中堆叠在纹理密集区域增加后续匹配的歧义半径过大则会导致特征点分布过于均匀丢失局部判别性。默认4通常是一个好选择。检查图像预处理环节。HLoc的默认配置会对图像做resize如果resize_max设置过小如640特征点数量会明显下降。对于户外场景建议设置到1600。6.2 SuperGlue匹配数量为零或极少这个问题通常在极端场景下出现比如夜间光照、过度过曝、纯色墙体。我遇到的一个典型情况是Aachen Night测试集中部分图像几乎全黑SuperPoint提取到的特征点不到50个SuperGlue无论如何都无法在这些点上找到足够多的高置信度匹配。处理策略先检查SuperPoint输出特征点的可视化结果确认特征点是否覆盖了场景的关键结构。尝试降低SuperGlue置信度阈值到0.1观察匹配对数量是否明显提升。如果仍然很少建议在HLoc的预处理阶段对图像做直方图均衡化Histogram Equalization或CLAHE提升低照度区域的局部对比度这可以显著改善夜间图像的匹配率。6.3 在Aachen Day-Night上测试时白天定位正常但夜间全部失败这个现象跟数据集的时序有关。Aachen Day-Night数据集中夜间图像和白天数据库图像之间存在很大的光照差异。如果你只是用了原始数据库图像没有做任何图像增强或适应特征描述子的距离分布会发生漂移。我的排查记录第一步检查SuperPoint在夜间图像上检测到的特征点数量和位置是否合理。如果特征点数量正常且分布合理继续下一步。第二步可视化SuperGlue输出的匹配对确认匹配对是否大多集中在图像上半部分通常是天空、建筑轮廓还是分散在结构丰富的区域。如果匹配对大量集中在天空等重复纹理区域说明SuperGlue的注意力机制被误引导。第三步尝试使用HLoc提供的数据集预处理脚本它对Aachen Night系列有专门的图像增强策略包括对比度拉伸、色彩归一化等。实测这一操作能让夜间定位成功率提升约5个百分点。6.4 HLoc在ScanNet上的定位漂移问题ScanNet视频序列的自运动较大如果查询图像数据库图像的视角差异超过一定范围匹配对的有效性会急剧下降。即使SuperPointSuperGlue的匹配质量已经很高也无法完全避免大基线下的特征点丢失。解决办法是增加“局部定位”策略。HLoc支持在全局检索后对Top-K个数据库图像做局部特征匹配和位姿精修而不是只依赖全局检索结果。实际操作上把loc.get_loc_matches中的db_model设置为局部模型可以显著改善ScanNet这种数据集的定位稳定性。实测在ScanNet上提高约3%的成功率。6.5 显存不足或推理速度过慢SuperPointSuperGlue是深度学习模型在GPU上推理时对显存有一定要求。如果你只有一块6GB及以下显存的显卡跑HLoc会非常吃力。几个可行的优化方案将SuperPoint的resize_max从1600降到1024或800特征点数量减少SuperGlue的计算量也减少但需要重新检测匹配质量是否达标。在HLoc的配置中开启半精度推理fp16显存占用约减少40%速度提升约20%。实测在RTX 3060 Laptop6GB上FP16模式可以流畅跑完7-Scenes数据集。如果显存仍然不足可以分批次处理数据库图像的特征提取避免一次性把所有图像特征加载到显存。HLoc支持batch_size参数可以设置较小值来降低峰值显存占用。6.6 常见问题速查表现象可能原因解决办法特征点数量暴增detection_threshold过低提高阈值到0.003-0.005特征点数量过少图像分辨率被过度压缩提高resize_max到1600夜间图像匹配失败光照差异大、特征点不足CLAHE增强降低置信度阈值ScanNet定位漂移视角变化大启用局部定位策略显存不足图像尺寸过大开FP16、降resize_max匹配对数量过多导致速度慢特征点密度过高增大NMS半径或max_keypoints调小7. 个人体会与选型建议测试做了整整两周数据整理下来我的总体感受是SuperPointSuperGlue在当前视觉定位领域确实处于第一梯队但这不意味着它可以无脑替换传统方案。从这套评测里能看到SPSG最核心的增量在于“匹配质量的提升”而非“特征点质量的提升”。SuperPoint本身提取的特征点在光照鲁棒性上确实优于SIFT但提升幅度有限真正拉开差距的是SuperGlue在匹配阶段对上下文的建模能力它让粗匹配阶段就过滤掉了大量传统方案需要在RANSAC里反复挣扎的歧义匹配对。换句话说传统方案把“问题留到后面解决”SuperGlue则是在“问题发生前就避免”。但同时也要承认SPSG并非万无一失。DTU上的测试告诉我在物体级重建场景中如果目标表面光滑且反射严重深度特征提取器同样会犯错ScanNet的测试则提醒我动态物体大面积出现时注意力机制本身也会被干扰后续的几何校验仍然不可缺少。因此我的选型建议是如果定位场景光照变化剧烈、视角变化大直接上SPSG这是当前最稳妥的选项如果你的设备没有GPU且对精度要求不高SIFTNN仍然有一战之力胜在轻量和普适如果是嵌入式或移动端部署SuperPoint轻量匹配器如LightGlue虽然标题没提但实测在部分数据集上比SuperGlue更快更稳值得考虑SuperPoint本身对这种场景已经很友好如果场景中有大量重复纹理如仓库货架、图书馆书架建议在SPSG之上再加一层词汇树或几何校验增强否则可能出现位置歧义。这次测试的所有配置脚本、数据集分割方式、评测代码都已整理到本地仓库按HLoc仓库的readme操作方法即可复现。如果你想在自己的数据集上跑一遍对比建议先在Aachen Day-Night上跑通全流程再逐步扩展到其他数据集。最后再分享一个小技巧如果跑数据集时发现定位结果忽高忽低不一定是模型问题。先固定随机种子HLoc里影响SuperGlue的Sinkhorn求解再检查数据库图像是否与查询图像有overlap很多“模型失效”本质上是因为查询图像在数据库中根本找不到足够的共视区域——这种情况下换什么特征提取器都没用。