很早以前自从看了superglue、superpoint算法后,一直想把它们利用TensorRT进行加速实现一遍,由于平常太忙一直没有去做这个事情,不过利用周末的时间,终于把代码堆完了~
关于SuperGlue里面的细节,可以参看上一篇文章,其中包括最优传输OPT、注意力机制等。
图像配准——SuperGlue - 知乎SuperGlue: Learning Feature Matching with Graph Neural Networks SuperGlue特点一般图像配准有4个环节,step1 对两幅图像进行关键点检测与特征描述符计算,step2 根据特征描述符找到匹配的关键点,step3 利用关…https://zhuanlan.zhihu.com/p/436883365
回顾:
一般图像配准有4个环节,step1 对两幅图像进行关键点检测与特征描述符计算,step2 根据特征描述符找到匹配的关键点,step3 利用关键点计算图像的空间坐标变换参数,step4 最后利用坐标变换参数进行图像配准。SuperGlue用于图像配准的中间环节,即上述步骤的step2根据特征描述符找到最佳匹配的关键点。
后面将上传Windows版本与Linux版本代码至该GitHub上,有兴趣的朋友可以一起来探讨学习,也可以实现其他的算法模型加入本仓库(私聊)~
GitHub - Broad-sky/feature-detection-matching-algorithm: Deep learning includes superpoint-superglue(C++, TensorRT), and traditional algorithms include zkaze, surf, ORB, etc.Deep learning includes superpoint-superglue(C++, TensorRT), and traditional algorithms include zkaze, surf, ORB, etc. - GitHub - Broad-sky/feature-detection-matching-algorithm: Deep learning includes superpoint-superglue(C++, TensorRT), and traditional algorithms include zkaze, surf, ORB, etc.https://github.com/Broad-sky/feature-detection-matching-algorithm
C++版本TensorRT加速后在1060PC大概20帧,在NX这类板卡至少也能到15+帧(后期测完来补充结果),因为直接跑python代码就能达到12~13帧。
Superglue、Superpoint C++ - 知乎motivation(动机)很早以前自从看了superglue、superpoint算法后,一直想把它们利用TensorRT进行加速实现一遍,由于平常太忙一直没有去做这个事情,不过利用周末的时间,终于把代码堆完了~ 关于SuperGlue里面的细…https://zhuanlan.zhihu.com/p/518877309
仓库主要使用C++实现传统图像特征检测与匹配、深度学习特征检测与匹配算法模型。 深度学习包括superpoint-superglue,传统算法包括zkaze、surf、ORB等。
This warehouse mainly uses C++ to compare traditional image feature detection and matching, and deep learning feature detection and matching algorithm models. Deep learning includes superpoint-superglue, and traditional algorithms include zkaze, surf, ORB, etc.
OpenCV >= 3.4
CUDA >=10.2
CUDNN>=8.02
TensorRT>=7.2.3
camera(相机)
2. superpoint-superpoint 特征点检测与匹配.
备注:视频中,左边和中间窗口显示的是两帧图像经过变换后线性融合的图像,便于直观感受配准效果!!!
欢迎大家添加微信(备注:单位+姓名),进群探讨!
@inproceedings{sarlin20superglue, author = {Paul-Edouard Sarlin and Daniel DeTone and Tomasz Malisiewicz and Andrew Rabinovich}, title = {{SuperGlue}: Learning Feature Matching with Graph Neural Networks}, booktitle = {CVPR}, year = {2020}, url = {https://arxiv.org/abs/1911.11763} }