特征匹配剔除方法-随手记

0.Neural Outlier Rejection for Self-Supervised Keypoint Learning  ICLR2020 自监督关键点学习的神经异常值/外点抑制

https://arxiv.org/abs/1912.10615

https://github.com/TRI-ML/KP2D

注:本文提出KeyPointNet和IO-Net,直接实现关键点检测、描述和匹配,性能优于SuperPoint、LF-Net、SIFT和ORB等算法摘要:识别图像中的特征点/关键点是视觉里程表,SFM或SLAM算法的关键组成部分。最近,一些基于深度学习的关键点方法已经证明了在具有挑战性的基准测试中的出色表现。但是,为自然图像中的兴趣点检测生成一致而准确的训练数据仍然是一项挑战,特别是对于人类注释者而言。我们介绍了IO-Net(即InlierOutlierNet),这是一种新颖的proxy任务,用于自我监督的关键点检测,描述和匹配。通过在关键点学习框架内使来自点对对应关系的内点-外点集的采样完全可区分,我们证明了能够同时自我监督关键点描述并改善关键点匹配。其次,我们介绍KeyPointNet,这是一个关键点网络体系结构,特别适合健壮的关键点检测和描述。我们设计网络以允许本地关键点聚合以避免由于此任务常用的空间离散化而导致的伪影,并且我们通过利用有效的子像素卷积来将描述符特征图上采样到更高的水平,从而改善了细粒度的关键点描述符性能操作分辨率。通过广泛的实验和ablativ分析,我们表明,提出的自监督关键点学习方法大大提高了具有挑战性的基准上的特征匹配和单应性估计的质量。

 

0.Geometric Relation Distribution for Place Recognition  用于位置识别的几何关系分布

https://github.com/dlr1516/grd

http://www.ce.unipr.it/~rizzini/papers/lodirizzini2019ral.pdf

http://rimlab.ce.unipr.it/LodiRizzini.html

在本文中,作者介绍了一种新的可用于位置识别和回环检测的标识信息——几何关系分布(GRD)。GRD将关键点之间配对的几何关系编码为连续概率密度分布函数;配对角度通过冯·米塞斯分布表示,配对距离利用爱尔朗分布或有偏瑞利分布表示;GRD函数使用傅里叶级数或拉盖尔多项式基展开表示,用这类正交基表示能够有效地计算平移和旋转不变度量,不变度量用于比较标识信息和查找潜在的回环检测候选值。该文通过标准数据集的实验验证了方法的有效性。

 

0.NG-RANSAC for Epipolar Geometry from Sparse Correspondences

ngransac

https://github.com/vislearn/ngransac

https://hci.iwr.uni-heidelberg.de/vislearn/research/neural-guided-ransac/

https://hci.iwr.uni-heidelberg.de/vislearn/research/scene-understanding/pose-estimation/#ICCV19

https://arxiv.org/pdf/1905.04132.pdf

 

pip install opencv-python==3.4.2.17

pip install opencv-contrib-python==3.4.2.17

opencv_inc_dir = '/media/X/NO_1/ubuntu16.04/opencv-3.4.2-build/install/include' # directory containing OpenCV header files
opencv_lib_dir = '/media/X/NO_1/ubuntu16.04/opencv-3.4.2-build/install/lib' # directory containing OpenCV library files


#if not explicitly provided, we try to locate OpenCV in the current Conda environment
conda_env = os.environ['CONDA_PREFIX']

if len(conda_env) > 0 and len(opencv_inc_dir) == 0 and len(opencv_lib_dir) == 0:
	print("Detected active conda environment:", conda_env)
	print(conda_env)
	opencv_inc_dir = conda_env + '/include' 
	opencv_lib_dir = conda_env + '/lib' 

	print("Assuming OpenCV dependencies in:")
	print(opencv_inc_dir)
	print(opencv_lib_dir)





Detected active conda environment: /home/boyun/.conda/envs/py3_6--pytorch1_1_0
/home/X/.conda/envs/py3_6--pytorch1_1_0
Assuming OpenCV dependencies in:
/home/X/.conda/envs/py3_6--pytorch1_1_0/include
/home/X/.conda/envs/py3_6--pytorch1_1_0/lib

 

https://www.cnblogs.com/xudong-bupt/p/3698294.html

ImportError: libopencv_core.so.3.4: cannot open shared object file:

sudo vim /etc/ld.so.conf

添加:

/media/X/NO_1/ubuntu16.04/opencv-3.4.2-build/install/lib

sudo ldconfig

(py3_6--pytorch1_1_0) boyun@boyun:~/CLionProjects/ngransac$ python ngransac_demo.py -img1 images/demo1.jpg -fl1 900 -img2 images/demo2.jpg -fl2 900

Fitting Essential Matrix...

Using SIFT.

No model file specified. Inferring pre-trained model from given parameters:
models/weights_e2e_E_r1.00_.net
Successfully loaded model.

Processing pair:
Image 1:  images/demo1.jpg
Image 2:  images/demo2.jpg

Feature found in image 1: 2000
Feature found in image 2: 2000

Number of valid matches: 2000

=== Model found by RANSAC: ==========

[[-0.55587167 -0.4306436   0.05926346]
 [ 0.41969678 -0.55434184 -0.12223194]
 [-0.01167158 -0.05927362 -0.00318125]]

RANSAC Inliers: 188

=== Model found by NG-RANSAC: =======

[[ 0.12649336  0.04222814 -0.18206541]
 [ 0.3445782  -0.00916174 -0.5764585 ]
 [ 0.18944895  0.6690718   0.11999132]]

NG-RANSAC Inliers:  131

Done. Visualization of the result stored as demo.png

 

0.ESAC - Expert Sample Consensus Applied To Camera Re-Localization

https://github.com/vislearn/esac

https://hci.iwr.uni-heidelberg.de/vislearn/research/scene-understanding/pose-estimation/#ICCV19

0.DSAC – Differentiable RANSAC for Camera Localization:

https://github.com/cvlab-dresden/DSAC

https://hci.iwr.uni-heidelberg.de/vislearn/research/scene-understanding/pose-estimation/#DSAC

https://github.com/vislearn/DSACLine

0.Comparative evaluation of 2D feature correspondence selection algorithms

 2D特征匹配选择算法的比较评价
Date:20190501
Author:华中科技大学

特征匹配剔除方法-随手记_第1张图片

特征匹配剔除方法-随手记_第2张图片

 

特征匹配剔除方法-随手记_第3张图片

1.MAGSAC++:一种快速,可靠且准确的鲁棒估计器 《MAGSAC++, a fast, reliable and accurate robust estimator》 作者团队:捷克理工大学 摘要:A new method for robust estimation, MAGSAC++, is proposed. It introduces a new model quality (scoring) function that does not require the inlier-outlier decision, and a novel marginalization procedure formulated as an iteratively re-weighted least-squares approach. We also propose a new sampler, Progressive NAPSAC, for RANSAC-like robust estimators. Exploiting the fact that nearby points often originate from the same model in real-world data, it finds local structures earlier than global samplers. The progressive transition from local to global sampling does not suffer from the weaknesses of purely localized samplers. On six publicly available real-world datasets for homography and fundamental matrix fitting, MAGSAC++ produces results superior to state-of-the-art robust methods. It is faster, more geometrically accurate and fails less often. 注:MAGSAC++是MAGSAC(CVPR2019)的改进版,用于剔除异常值/外点(outlier),性能优于GC-RANSAC、RANSAC和MSAC等,现已开源!其实将这个方法用在可以替换RANSAC的应用中,妥妥一篇水刊就出来了。

论文下载链接:[1912.05909] MAGSAC , a fast, reliable and accura...

代码:GitHub - danini/magsac: The MAGSAC algorithm for r...

https://arxiv.org/abs/1912.05909

2.MAGSAC 

MAGSAC: marginalizing sample consensus

https://github.com/danini/magsac

https://github.com/ducha-aiki/pymagsac

3.MSAC 重抽样优化的快速随机抽样一致性算法

https://github.com/ajgupta93/Camera-Pose-Estimation

http://docs.pointclouds.org/trunk/classpcl_1_1_m_estimator_sample_consensus.html

https://www.mathworks.com/help/vision/ref/estimategeometrictransform.html

http://www.cnki.com.cn/Article/CJFDTotal-GXJM201508030.htm

本文算法的估计精度显著优于RANSAC(RANdom SAmple Consensus)、LMedS(Least Median of Squares),PROSAC(PROgressive SAmple Consensus)、M-SAC(M-estimator SAmple Consensus)和MLESAC(Maximum Likelihood SAmple Consensus)等传统算法,投影均方误差比次优方法降低了3%~21%。另外,本文方法对定位噪声和内点比例变化均具有较好的鲁棒性。 

4.Graph-Cut RANSAC

 https://github.com/danini/graph-cut-ransac

https://arxiv.org/pdf/1706.00984.pdf

5.LMedS--RANSAC

http://theia-sfm.org/ransac.html

https://github.com/scikit-image/scikit-image/blob/v0.14.3/skimage/measure/fit.py#L619

https://www.cc.gatech.edu/~zlv30/courses/proj3.html

特征匹配剔除方法-随手记_第4张图片

https://blog.csdn.net/billbliss/article/details/78592216

https://github.com/timmahrt/LMEDS

http://laurentkneip.github.io/opengv/

https://github.com/laurentkneip/opengv/tree/master/include/opengv/sac

Lmeds.hpp
MultiRansac.hpp
MultiSampleConsensus.hpp
MultiSampleConsensusProblem.hpp
Ransac.hpp
SampleConsensus.hpp
SampleConsensusProblem.hpp

 https://github.com/laurentkneip/opengv/tree/master/include/opengv/sac/implementation

Lmeds.hpp
MultiRansac.hpp
MultiSampleConsensus.hpp
MultiSampleConsensusProblem.hpp
Ransac.hpp
SampleConsensus.hpp
SampleConsensusProblem.hpp

 

特征匹配剔除方法-随手记_第5张图片

 

 

https://github.com/gwang-cv/Point-Set-Matching-Registration-Material

Mismatch Removal Methods

  • [RANSAC] Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography, 1981 [pdf] [wiki]
  • [MLESAC] MLESAC: A new robust estimator with application to estimating image geometry, CVIU'2000 [pdf] [code_pcl]
  • [PROSAC] Matching with PROSAC-progressive sample consensus, CVPR'2005 [pdf] [code_pcl]
  • [ICF/SVR] Rejecting mismatches by correspondence function, IJCV'2010 [pdf]
  • [GS] Common visual pattern discovery via spatially coherent correspondences, CVPR'2010 [pdf] [code]
  • [KC-CE] A novel kernel correlation model with the correspondence estimation, JMIV'2011 [pdf] [code]
  • [VFC] A robust method for vector field learning with application to mismatch removing, CVPR'2011 [pdf] [code]
  • [DefRANSAC] In defence of RANSAC for outlier rejection in deformable registration, ECCV'2012 [pdf] [code]
  • [CM] Robust Non-parametric Data Fitting for Correspondence Modeling, ICCV'2013 [pdf] [code]
  • [AGMM] Asymmetrical Gauss Mixture Models for Point Sets Matching, CVPR'2014 [pdf]
  • [TC] Epipolar geometry estimation for wide baseline stereo by Clustering Pairing Consensus, PRL'2014 [pdf]
  • [BF] Bilateral Functions for Global Motion Modeling, ECCV'2014 [pdf] [project] [code]
  • [WxBS] WxBS: Wide Baseline Stereo Generalizations, BMVC'2015 [pdf] [project]
  • [RepMatch] RepMatch: Robust Feature Matching and Posefor Reconstructing Modern Cities, ECCV'2016 [pdf] [project] [code]
  • [SIM] The shape interaction matrix-based affine invariant mismatch removal for partial-duplicate image search, TIP'2017 [pdf] [code]
  • [DSAC] DSAC: differentiable RANSAC for camera localization, CVPR'2017 [pdf] [code]
  • [GMS] GMS: Grid-based Motion Statistics for Fast, Ultra-robust Feature Correspondence, CVPR'2017 [pdf] [code]
  • [LMI] Consensus Maximization with Linear Matrix Inequality Constraints, CVPR'2017 [pdf] [project] [code]
  • [GOPAC] Globally-Optimal Inlier Set Maximisation for Simultaneous Camera Pose and Feature Correspondence, ICCV'2017 [pdf] TPAMI'2018 [pdf] [code]
  • [LFGC] Learning to Find Good Correspondences, CVPR'2018 [pdf] [code]
  • [GC-RANSAC] Graph-Cut RANSAC, CVPR'2018 [pdf] [code]
  • [KCNet] Mining Point Cloud Local Structures by Kernel Correlation and Graph Pooling, CVPR'2018 [pdf] [code]
  • [SRC] Consensus Maximization for Semantic Region Correspondences, CVPR'2018 [pdf] [code]
  • [CODE] Code: Coherence based decision boundaries for feature correspondence, TPAMI'2018 [pdf] [project]
  • [LPM] Locality preserving matching, IJCV'2019 [pdf] [code]
  • [LMR] LMR: Learning A Two-class Classifier for Mismatch Removal, TIP'2019 [pdf] [code]
  • [PFFM] Progressive Filtering for Feature Matching, ICASSP'2019 [pdf]
  • [NM-Net] NM-Net: Mining Reliable Neighbors for Robust Feature Correspondences, arXiv'2019 [pdf]
  • [MAGSAC] MAGSAC: Marginalizing Sample Consensus, CVPR'2019 [pdf] [code]
  • [DLCM] Unsupervised Learning of Consensus Maximization for 3D Vision Problems, CVPR'2019 [pdf]

你可能感兴趣的:(SLAM+SFM)