ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

opencv_contrib 中的 Extra 2D Features Framework 全解析:实验性与非自由特征算法的检测、描述与匹配实践

opencv_contrib 中的 Extra 2D Features Framework 全解析:实验性与非自由特征算法的检测、描述与匹配实践 计算机视觉图像处理机器学习【免费下载链接】opencv_contrib项目地址https://gitcode.com/gh_mirrors/ope/opencv_contrib点击查看免费下载本指南围绕 opencv_contrib 仓库中modules/xfeatures2d模块Extra 2D Features Framework展开系统梳理该框架收录的实验性experimental与非自由non-free2D 特征检测器/描述子算法覆盖 SURF、BRIEF、Censure/StarDetector、FREAK、LUCID、DAISY、LATCH、BEBLID、TEBLID、VGG、BoostDesc、MSD 等算法以及 GMS/LOGOS 匹配策略。读完本文你将掌握这些算法各自的适用场景、全部构造参数含义与默认值、编译期开关OPENCV_ENABLE_NONFREE等的配置方法并能结合仓库中的示例与测试快速上手实际匹配任务。模块定位两大算法阵营与一个匹配子框架根据 modules/xfeatures2d/README.md 的定义xfeatures2d 是一个 Extra 2D Features Framework包含实验性和非自由的 2D 特征检测/描述算法SURF、BRIEF、Censure即 StarDetector、Freak、LUCID、Daisy、BEBLID、TEBLID、Self-similarMSD。在头文件 modules/xfeatures2d/include/opencv2/xfeatures2d.hpp 中模块被进一步组织为三个defgroupxfeatures2d_experimentExperimental 2D Features Algorithms实验性特征检测与描述算法即本框架的主体xfeatures2d_nonfreeNon-free 2D Features AlgorithmsSIFT 与 SURF 两类众所周知曾受专利保护的算法。头文件明确说明You need to set the OPENCV_ENABLE_NONFREE option in cmake to use those. Use them at your own risk.使用前需在 CMake 中开启OPENCV_ENABLE_NONFREE风险自负xfeatures2d_matchExperimental 2D Features Matching Algorithm两种匹配策略 —— GMSGrid-based Motion Statistics基于网格的运动统计见 Bian 2017与 LOGOSLocal geometric support for high-outlier spatial verification见 Lowry 2018。值得注意的是SIFT 在较新版本的 OpenCV 主仓库中已迁入features2d核心模块而本仓库的nonfree.hpp中只保留了SURF及其两个历史别名SurfFeatureDetector、SurfDescriptorExtractor见 nonfree.hpp用于兼容旧代码。所有算法类统一继承自 OpenCV 的Feature2D除 PCTSignatures/PCTSignaturesSQFD 继承Algorithm这意味着它们都可以无缝接入detect()、compute()、detectAndCompute()标准接口以及BFMatcher/FlannBasedMatcher匹配流程。编译与启用NONFREE 开关与权重数据下载xfeatures2d 模块的构建配置位于 modules/xfeatures2d/CMakeLists.txt其中有两个关键点直接影响功能完整性。1. 非自由算法的开关在使用 SURF以及主仓库中的 SIFT之前必须在 CMake 配置阶段显式开启cmake -DOPENCV_ENABLE_NONFREEON 其他配置项该选项由 OpenCV 主仓库的统一构建系统处理未开启时SURF/SIFT 相关类不会随库导出。这是开源合规层面的硬性前置条件而非性能调优选项。2. BoostDesc / VGG 权重文件的自动下载BoostDesc 与 VGG 是数据驱动的描述子其弱学习器参数 / 卷积核权重以外部.i数据文件形式提供。CMake 构建时默认会通过 cmake/download_boostdesc.cmake 与 cmake/download_vgg.cmake 从 opencv_3rdparty 下载 7 个 boostdesc 文件boostdesc_bgm.i、boostdesc_bgm_bi.i、boostdesc_bgm_hd.i、boostdesc_binboost_064/128/256.i、boostdesc_lbgm.i和 4 个 VGG 文件vgg_generated_48/64/80/120.i每个文件均带 SHA/MD5 哈希校验例如vgg_generated_120.i的哈希为151805e03568c9f490a5e3a872777b75。CMakeLists.txt 中的对应逻辑是下载成功 → 为 src/boostdesc.cpp / src/vgg.cpp 追加编译宏OPENCV_XFEATURES2D_HAS_BOOST_DATA/OPENCV_XFEATURES2D_HAS_VGG_DATA并把这些数据目录加入头文件搜索路径下载失败 → 打印 WARNINGBoost descriptor implementation is not available due to missing data此时相关描述子不可用设置OPENCV_SKIP_FEATURES2D_DOWNLOADINGON可以跳过自动下载适用于离线构建或已手动放置权重文件的场景。仓库还提供了 samples/export-boostdesc.py说明 boostdesc 的.i头文件是从原始二进制权重用该脚本导出的供复现与研究使用。非自由特征算法SURF 的完整参数指南SURFSpeeded Up Robust Features是模块中唯一保留的非自由算法实现在 src/surf.cpp并配有 CUDA 版本 src/cuda/surf.cu、OpenCL 版本 src/opencl/surf.cl 以及对应的 CPU/GPU 性能测试perf/perf_surf.cpp、perf/perf_surf.cuda.cpp、perf/perf_surf.ocl.cpp。创建接口与参数表根据 nonfree.hppSURF::create的签名为PtrSURF SURF::create(double hessianThreshold 100, int nOctaves 4, int nOctaveLayers 3, bool extended false, bool upright false);参数默认值含义与调参建议hessianThreshold100关键点检测的 Hessian 阈值。只保留 Hessian 响应大于该值的特征值越大关键点越少。官方建议在 300~500 之间按图像对比度选取见 nonfree.hppnOctaves4高斯金字塔的八度octave数量。需要大尺度特征时调大仅需小特征时调小nOctaveLayers3每个八度内的高斯金字塔层数头文件正文注释中的默认值描述为 2create接口默认值为 3以create签名为准extendedfalse描述子长度开关true生成 128 元素扩展描述子false生成 64 元素基本描述子uprightfalse是否计算特征方向true不计算方向速度显著提升适合视差匹配、图像拼接中等方向一致性较强的场景false计算旋转不变方向SURF_Impl见 src/surf.hpp还实现了read/write序列化将hessianThreshold、extended、upright、nOctaves、nOctaveLayers持久化到 FileStorage方便用 YAML/XML 保存和加载检测器配置。实际使用示例仓库示例 samples/surf_matcher.cpp 展示了完整的 SURF 匹配管线创建SURF::create(hessian)检测器 →detectAndCompute提取特征与描述子 → 特征匹配 → 取前 15%上限 50 对良好匹配 →findHomography计算单应性矩阵并在场景图中绘制目标框。示例将GOOD_PORTION 0.15f、GOOD_PTS_MAX 50作为匹配筛选策略并统计最小/最大匹配距离是理解 SURF 工程化调用的直接参考。实验性二进制描述子BRIEF、FREAK、LATCH、BEBLID、TEBLID二进制描述子以比较像素对强度生成比特串配合汉明距离NORM_HAMMING匹配速度与内存占用远低于浮点描述子是嵌入式与实时场景的主力。BRIEFBinary Robust Independent Elementary FeaturesBriefDescriptorExtractor定义于 xfeatures2d.hppPtrBriefDescriptorExtractor BriefDescriptorExtractor::create(int bytes 32, bool use_orientation false);bytes描述子字节长度合法值为16、32默认、64use_orientation是否按关键点方向采样模式默认关闭。FREAKFast Retina KeypointFREAK 模拟人类视觉系统的视网膜采样模式通过级联二进制串比较图像强度相比 SIFT/SURF/BRISK 计算更快、内存占用更低特别适合嵌入式应用见 xfeatures2d.hpp。类内定义三个编译期常量NB_SCALES 64、NB_PAIRS 512、NB_ORIENPAIRS 45。PtrFREAK FREAK::create(bool orientationNormalized true, bool scaleNormalized true, float patternScale 22.0f, int nOctaves 4, const std::vectorint selectedPairs std::vectorint());orientationNormalized是否启用方向归一化scaleNormalized是否启用尺度归一化patternScale描述模式的缩放比例默认 22.0nOctaves关键点覆盖的八度数量默认 4selectedPairs可选用户自定义的采样对索引默认由算法自动选取。LATCHLearned Arrangements of Three Patch CodesLATCH 基于三元图像块的学习式比较生成二进制描述子论文见头文件注释arXiv:1501.03719其create定义于 xfeatures2d.hppPtrLATCH LATCH::create(int bytes 32, bool rotationInvariance true, int half_ssd_size 3, double sigma 2.0);bytes描述子大小可取64、32、16、8、4、2、1rotationInvariance是否补偿方向变化。若开启必须配合能估计方向角度单位度的检测器如 ORB、SIFThalf_ssd_size迷你 patch 的半边长。例如比较 7×7 的三元块时取(7-1)/2 3sigma计算前对图像做高斯模糊的 σ为 0 时不模糊。LATCH 可与任意关键点提取器搭配配套的完整示例位于samples/cpp/tutorial_code/xfeatures2D/latch_match.cpp该示例位于 OpenCV 主仓库 samples 目录不在本 contrib 仓库内。BEBLIDBoosted Efficient Binary Local Image DescriptorBEBLID 是用boosting 学习得到的二进制描述子通过比较关键点周围不同区域的平均灰度差值来编码实现在 src/beblid.cpp核心数据结构为ABWLParams——描述一个 Average Box 弱学习器的 6 个参数两个方框坐标、方框半径与阈值。它的关键设计是scale_factor参数让同一个描述子适配任意检测器PtrBEBLID BEBLID::create(float scale_factor, int n_bits BEBLID::SIZE_512_BITS); // 枚举SIZE_512_BITS 100, SIZE_256_BITS 101scale_factor的推荐取值来自 xfeatures2d.hpp检测器scale_factorORB1.00fKAZE / SURF6.25f默认SIFT6.75fAKAZE / MSD / AGAST / FAST / BRISK5.00fn_bits决定描述子位数512 或 256 位每位对应一个 boosting 弱学习器。头文件还给出可验证的基准数据在 AKAZE 匹配示例中检测 10000 个 ORB 关键点用 BEBLID 描述获得561 个内点75%而用 ORB 自身描述仅493 个内点63%。TEBLIDTriplet-based Efficient Binary Local Image DescriptorTEBLID 是 BEBLID 的改进版曾用名 BAD引入triplet loss、难例挖掘hard negative mining与 anchor swap提升匹配精度见 xfeatures2d.hpp每位是一个 box average 差值PtrTEBLID TEBLID::create(float scale_factor, int n_bits TEBLID::SIZE_256_BITS); // 枚举SIZE_256_BITS 102, SIZE_512_BITS 103scale_factor的推荐取值与 BEBLID 完全一致。头文件中的基准数据显示同样的 AKAZE 示例10000 个 ORB 关键点TEBLID 用256 位即获得621 个内点75.2%超过 BEBLID 的 512 位561 内点/75%与 ORB 的 493 内点63%——体现了 triplet 训练目标带来的更紧凑且更判别优势。TEBLID 与 BEBLID 的训练数据均来自 UBC 数据集 Liberty split。浮点与学习型描述子DAISY、VGG、BoostDescDAISYDAISY 是稠密/半稠密场景常用的浮点描述子围绕关键点做径向radial与角度angular网格采样并统计梯度直方图实现在 src/daisy.cpp。其createxfeatures2d.hppPtrDAISY DAISY::create(float radius 15, int q_radius 3, int q_theta 8, int q_hist 8, DAISY::NormalizationType norm DAISY::NRM_NONE, InputArray H noArray(), bool interpolation true, bool use_orientation false);参数含义radius初始尺度上描述子的半径q_radius径向范围划分数量q_theta角度范围划分数量q_hist梯度方向范围划分数量norm归一化方式枚举值NRM_NONE 100默认不归一化、NRM_PARTIAL 101各直方图独立按 L2 范数 1.0 归一化、NRM_FULL 102描述子整体按 L2 范数 1.0 归一化、NRM_SIFT 103整体归一化但单维不超过 0.154与 SIFT 相同约束H可选的 3×3 单应矩阵用于扭曲 DAISY 采样网格关键点本身仍保持未扭曲采样interpolation是否启用插值关闭可提速但质量略降use_orientation是否按关键点方向采样默认关闭。DAISY 还提供多个重载的compute含 ROI 计算与全图逐像素计算以及GetDescriptor/GetUnnormalizedDescriptor底层接口适合需要任意位置取描述子的稠密匹配场景。VGGOxford Visual Geometry Group 描述子VGG 是端到端训练的描述子Descriptor Learning Using Convex OptimisationDLCO训练权重以.i文件形式随构建下载见上文 CMake 部分。其接口xfeatures2d.hppPtrVGG VGG::create(int desc VGG::VGG_120, float isigma 1.4f, bool img_normalize true, bool use_scale_orientation true, float scale_factor 6.25f, bool dsc_normalize false);desc描述子类型枚举VGG_120 100默认120 维 float、VGG_80 101、VGG_64 102、VGG_48 103isigma图像预模糊的高斯核 σ默认 1.4fimg_normalize是否对图像采样强度归一化默认开启use_scale_orientation是否按关键点方向采样默认开启scale_factor采样窗口缩放因子6.25f适配 KAZE/SURF6.75f适配 SIFT5.00f适配 AKAZE/MSD/AGAST/FAST/BRISK0.75f适配 ORBdsc_normalize是否把描述子截断到 255 并转为CV_8UC1默认关闭保持浮点。BoostDescLearning Image Descriptors with BoostingBoostDesc 用 boosting 学习图像描述子权重同样来自下载的.i文件。其变体众多xfeatures2d.hppPtrBoostDesc BoostDesc::create(int desc BoostDesc::BINBOOST_256, bool use_scale_orientation true, float scale_factor 6.25f);desc枚举与语义枚举值说明BGM100基础描述子每个二进制位 单个弱学习器的输出BGM_HARD101BGM ASSIGN_HARD 梯度分箱梯度分配到最近的方向箱BGM_BILINEAR102BGM ASSIGN_BILINEAR梯度分配到两个相邻箱LBGM200FP-Boost 别名浮点扩展每维是弱学习器响应的线性组合BINBOOST_64/128/256300/301/302LBGM 的二进制扩展每位是若干弱学习器线性组合的阈值化结果其余变体如 BGM 默认使用 ASSIGN_SOFT 软分箱梯度按梯度角与箱中心的余弦值分配到最近的 8 个箱。scale_factor建议与 VGG 相同SIFT 用 6.75f、ORB 用 0.75f 等原始实现默认 1.50f。注意BoostDesc 的read/write未暴露于公开接口但参数可通过setUseScaleOrientation/setScaleFactor运行时调整。实验性关键点检测器与仿射框架StarDetectorCensure / CenSurE 检测器StarDetector即 README 中提到的Censure算法Agrawal et al. 2008CenSurE定义于 xfeatures2d.hppPtrStarDetector StarDetector::create(int maxSize 45, int responseThreshold 30, int lineThresholdProjected 10, int lineThresholdBinarized 8, int suppressNonmaxSize 5);各参数分别控制候选特征的最大尺寸、响应阈值、投影/二值化线阈值以及非极大值抑制窗口尺寸。Java 绑定测试 misc/java/test/STARFeatureDetectorTest.java 中对该检测器有完整调用示例。MSDMaximal Self-Dissimilarity检测器MSD 基于上下文自不相似性思想图像块在其较大邻域内与周围高度不相似则具有可重复性与判别性见 xfeatures2d.hppPtrMSDDetector MSDDetector::create(int m_patch_radius 3, int m_search_area_radius 5, int m_nms_radius 5, int m_nms_scale_radius 0, float m_th_saliency 250.0f, int m_kNN 4, float m_scale_factor 1.25f, int m_n_scales -1, bool m_compute_orientation false);参数包括 patch 半径、搜索区域半径、NMS 半径及跨尺度 NMS 半径、显著性阈值默认 250.0、kNN 近邻数默认 4、尺度因子默认 1.25、尺度数量-1 表示自动以及是否计算方向。性能测试见 perf/perf_msd.cpp其尺度金字塔实现位于 src/msd_pyramid.hpp。仿射不变框架HarrisLaplace、AffineFeature2D、TBMR、Elliptic_KeyPointElliptic_KeyPointxfeatures2d.hpp继承自KeyPoint额外携带椭圆长短轴axes、积分尺度si以及图像空间到局部 patch 空间的 2×3 变换矩阵transf用于表达仿射不变的关键点区域HarrisLaplaceFeatureDetectorxfeatures2d.hpp在尺度空间金字塔上结合 Harris 角点响应corn_thresh与 DoG 尺度选择DOG_thresh检测仿射区域参数含numOctaves 6、maxCorners 5000、num_layers 4实现见 src/harris_lapace_detector.cppAffineFeature2Dxfeatures2d.hpp一个包装器把任意检测器描述子组合包装为仿射不变版本——先检测关键点并用仿射适配补充椭圆区域再把区域扭曲成圆后计算描述子接口与Feature2D等价但作用于Elliptic_KeyPointTBMRTree Based Morse Regionsxfeatures2d.hpp基于 Morse 理论与组件树Min/Max的仿射特征提取类似 MSER 但两者互斥输出椭圆特征参数含min_area 60、max_area_relative 0.01f相对图像面积的区域上限、scale_factor 1.25f、n_scales -1实现见 src/tbmr.cppFASTForPointSetxfeatures2d.hpp一个实用函数对已给定的关键点集合按 FAST 准则评估角点响应并剔除不合格点支持TYPE_9_16 / TYPE_7_12 / TYPE_5_8三种邻域类型与可选的 NMS实现在 src/fast.cpp该文件内含基于 SSE2 优化的角点打分内核。LUCID 与 PCTSignatures颜色与位置-颜色-纹理签名LUCIDLocally Uniform Comparison Image DescriptorLUCID 是可在彩色图像上极快计算的局部均匀比较描述子xfeatures2d.hpp稳健性接近 SURF/BRIEFPtrLUCID LUCID::create(const int lucid_kernel 1, const int blur_kernel 2);lucid_kernel描述子构造核13×3、25×5、37×7 依此类推blur_kernel构造前图像模糊核规则同上。注意该描述子要求彩色图像作为输入头文件明确标注 It requires a color image as input。PCTSignaturesPosition-Color-Texture SignaturesPCT 签名提取把图像表示为一组带权特征点集签名用于图像检索与相似度度量实现在 src/pct_signatures.cpp配套采样器/聚类器位于 src/pct_signatures/。签名是SIGNATURE_DIMENSION 维点的数组维度依次为权重、x、y 位置、Lab 颜色、对比度、熵。创建方式有三种xfeatures2d.hpp// 1) 自动生成采样点与种子 PtrPCTSignatures PCTSignatures::create(int initSampleCount 2000, int initSeedCount 400, int pointDistribution 0); // UNIFORM // 2) 使用预生成采样点 自动种子 PtrPCTSignatures PCTSignatures::create(const std::vectorPoint2f initSamplingPoints, int initSeedCount); // 3) 采样点与种子索引均由用户指定 PtrPCTSignatures PCTSignatures::create(const std::vectorPoint2f initSamplingPoints, const std::vectorint initClusterSeedIndexes);内部由采样器sampler与聚类器clusterizer两部分组成采样器按给定坐标采样特征聚类器用 k-means 将样本聚簇聚类结果即图像签名。公开参数包括PointDistributionUNIFORM/REGULAR/NORMAL 三种采样点分布、各特征轴权重setWeightX/Y/L/A/B/Contrast/Entropy索引WEIGHT_IDX0, X_IDX1, ..., ENTROPY_IDX7、平移setTranslation(s)、灰度位数GrayscaleBits、纹理窗口半径WindowRadius、k-means 迭代数、MaxClustersCount、ClusterMinSize、JoiningDistance、DropThreshold以及DistanceFunctionL0_25, L0_5, L1, L2, L2SQUARED, L5, L_INFINITY。drawSignature静态方法可把签名以圆形可视化半径基于权重、颜色基于颜色分量。配套的PCTSignaturesSQFDxfeatures2d.hpp计算两个签名的Signature Quadratic Form DistancePtrPCTSignaturesSQFD PCTSignaturesSQFD::create(int distanceFunction 3 /*L2*/, int similarityFunction 2 /*HEURISTIC*/, float similarityParameter 1.0f);相似度函数可选MINUS-d(c_i,c_j)、GAUSSIANe^{-α·d²}、HEURISTIC1/(αd)实现见 src/pct_signatures_sqfd.cpp。仓库提供了两个直接可运行的示例samples/pct_signatures.cpp 与实时摄像头版本 samples/pct_webcam.cpp。匹配策略GMS 与 LOGOSGMSGrid-based Motion StatisticsGMS 通过把图像划分为网格、统计相邻网格中的匹配运动一致性来剔除错误匹配能显著提升 ORB 等描述子的匹配质量。接口xfeatures2d.hppvoid matchGMS(const Size size1, const Size size2, const std::vectorKeyPoint keypoints1, const std::vectorKeyPoint keypoints2, const std::vectorDMatch matches1to2, CV_OUT std::vectorDMatch matchesGMS, const bool withRotation false, const bool withScale false, const double thresholdFactor 6.0);参数两幅图像尺寸、各自关键点、输入的 1-NN 粗匹配、输出精匹配集合withRotation/withScale在存在大旋转/尺度变化时置为 truethresholdFactor越大返回匹配越少默认 6.0。头文件附带的实践建议非常关键GMS 在特征数量大时效果最好推荐 ORB 特征并将 FAST 阈值设为 0以快速获取尽可能多的特征640×480 的图像通常使用10000 个特征匹配效果不佳时优先增加特征数量。完整调用链可参考 samples/gms_matcher.cpp测试覆盖见 test/test_gms_matcher.cpp。LOGOSLocal geometric support for high-outlier spatial verificationLOGOS 面向大规模数据库检索场景的匹配后验证xfeatures2d.hppvoid matchLOGOS(const std::vectorKeyPoint keypoints1, const std::vectorKeyPoint keypoints2, const std::vectorint nn1, const std::vectorint nn2, CV_OUT std::vectorDMatch matches1to2);使用前提先从代表性图像数据库构造词袋Bag-of-Words, BoW再把每幅图像的描述子映射为最近 BoW 质心索引nn1/nn2最后用局部几何支持筛选高外点率场景下的正确匹配。实现位于 src/logos.cpp配套数据结构在 src/logos/Point、PointPair、Match、Logos 等测试见 test/test_logos_matcher.cpp。示例、测试与语言绑定示例samples/除上文提到的surf_matcher.cpp、gms_matcher.cpp、pct_signatures.cpp、pct_webcam.cpp外还有 samples/bagofwords_classification.cpp词袋分类与 BoostDesc/VGG 等学习型描述子配合使用、samples/video_homography.cpp视频序列单应性估计、samples/shape_transformation.cpp 以及export-boostdesc.py权重导出工具性能测试perf/perf_beblid.cpp、perf_daisy.cpp、perf_latch.cpp、perf_msd.cpp、perf_surf.cpp含 CUDA/OCL 变体、perf_teblid.cpp、perf_vgg.cpp可作为各算法在不同后端CPU/CUDA/OpenCL上的性能基准参考单元测试test/test_detectors.cpp、test_features2d.cpp、test_keypoints.cpp、test_rotation_and_scale_invariance.cpp旋转与尺度不变性验证、test_gms_matcher.cpp、test_logos_matcher.cpp以及 CUDA/OpenCL 版 SURF 测试覆盖了各算法参数合法性与鲁棒性断言语言绑定misc/Java 绑定测试覆盖 DAISY、FREAK、HARRIS、LATCH、LUCID、MSD、STAR、SURF 等misc/java/test/Python 绑定测试见 misc/python/test/test_descriptors.py 与test_cuda_xfeatures2d.pyObjC 绑定信息见 misc/objc/gen_dict.json。小结与选型建议以 README.md 的定义为骨架本模块的实际价值在于实时嵌入式场景优先选择二进制描述子FREAK视网膜模式、免学习、LATCH学习式三元块比较、BEBLID/TEBLIDboosting/triplet 学习、scale_factor一参适配所有检测器TEBLID 在更短位数下精度更高匹配时使用NORM_HAMMING需要旋转/尺度鲁棒的浮点描述子选择 DAISY支持归一化模式与 ROI/逐像素计算、VGG 或 BoostDesc需联网下载权重数据非自由算法 SURF需先开启OPENCV_ENABLE_NONFREE并按 Hessian 阈值建议 300~500、金字塔结构与 extended/upright 标志做针对性调优匹配后处理在大规模检索场景用 LOGOS需先构建 BoW在常规两图匹配场景用 GMS配 ORB FAST 阈值 0、特征数以万计效果最佳仿射不变需求视角变化剧烈的纹理匹配可使用 HarrisLaplace 检测器 AffineFeature2D包装或 TBMR图像检索/相似度度量可直接使用 PCTSignatures PCTSignaturesSQFD 的组合无需关键点检测。所有算法的接口与参数均以 xfeatures2d.hpp 与 nonfree.hpp 为权威定义构建期行为以 CMakeLists.txt 为准建议在集成前阅读对应src/*.cpp实现与perf/、test/目录下的测试代码结合自身数据验证参数效果。赞分享计算机视觉图像处理机器学习【免费下载链接】opencv_contrib项目地址https://gitcode.com/gh_mirrors/ope/opencv_contrib点击查看免费下载相关推荐opencv_contrib xfeatures2d 模块全解析实验性与非自由 2D 特征检测/描述算法实战指南opencv_contrib xfeatures2d 模块全解析实验性与非自由 2D 特征检测/描述算法实战指南 导读 opencv_contrib 的 xf计算机视觉图像处理深度学习机器学习Kornia特征检测与匹配算法实践Kornia特征检测与匹配算法实践 Kornia提供了先进的深度学习特征检测与匹配算法包括LoFTR无检测器特征匹配、LightGlue高效Transform计算机视觉深度学习人工智能图像处理OpenCV 特征检测与描述全景指南从 Harris 角点到 SIFT、ORB 与特征匹配实战OpenCV 特征检测与描述全景指南从 Harris 角点到 SIFT、ORB 与特征匹配实战 本篇围绕 OpenCV Python 教程中的“特征检测与描述计算机视觉图像处理深度学习机器学习上一篇Apereo CAS OpenID Connect 动态客户端注册Dynamic Client Registration端到端实战指南下一篇iOS应用色彩方案备份与恢复Chameleon框架数据持久化创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表