特征

作者: SACell | 来源:发表于2019-08-04 09:59 被阅读0次

主要记录图像特征及在opencv中的使用方法

特征点

1 Harris角点

1.1 目标

  • 什么是特征,有什么重要性
  • 使用cv::cornerHarris基于Harris-Stephens算法探测角点

1.2 理论

  • 计算机视觉中,通常需要找到同一环境下两幅不同图像的匹配点。这样才能提取到他们的信息。
  • 说到匹配点是,一般是指场景中容易辨识的典型,称为特征。
  • 特征需要具备的特性:具有唯一性

1.3 图像中常见的特征

例如:

  • 拐点(兴趣点)
  • 斑点(ROI)

1.4 为什么特征点如此重要

是两条边的角点,表示两条边的方向发生了变化,图像梯度发生较大变化,可以进行识别。

1.5 算法原理

  • 因为角点代表图像灰度梯度发生了变化,所有可以查找变化来检测角点。

1.6 关键公式(后续整理)

E(u, v)=\sum_{x, y} w(x, y)[I(x+u, y+v)-I(x, y)]^{2}

\sum_{x, y}[I(x+u, y+v)-I(x, y)]^{2}

E(u, v) \approx \sum_{x, y} u^{2} I_{x}^{2}+2 u v I_{x} I_{y}+v^{2} I_{y}^{2}

E(u, v) \approx\left[\begin{array}{ll}{u} & {v}\end{array}\right]\left(\sum_{x, y} w(x, y)\left[\begin{array}{cc}{I_{x}^{2}} & {I_{x} I_{y}} \\ {I_{x} I_{y}} & {I_{y}^{2}}\end{array}\right]\right)\left[\begin{array}{l}{u} \\ {v}\end{array}\right]

M=\sum_{x, y} w(x, y)\left[\begin{array}{cc}{I_{x}^{2}} & {I_{x} I_{y}} \\ {I_{x} I_{y}} & {I_{y}^{2}}\end{array}\right]

E(u, v) \approx\left[\begin{array}{ll}{u} & {v}\end{array}\right] M\left[\begin{array}{l}{u} \\ {v}\end{array}\right]

R=\operatorname{det}(M)-k(\operatorname{trace}(M))^{2}

2 Shi-Tomasi角点

2.1 目标

  • 使用cv::goodFeaturesToTrack基于Shi-Tomasi算法检测角点

2.2 原理

对Harris角点就行了小的修改,相比Harris算法有更好的效果,在Harris算法中最终的评分函数是R=\operatorname{det}(M)-k(\operatorname{trace}(M))^{2},而Shi-Tomasi改为了\mathrm{R}=\min \left(\lambda_{1}, \lambda_{2}\right)

3 特征探测

3.1 目标

  • 使用cv:FeatureDetector 接口查找兴趣点
    使用cv::xfeatures2d::SURF和cv::xfeatures2d::SURF::derect 实现探测
    使用cv::drawKeypoints 绘制探测点

3.2 SIFT算法

尺度不变特征转换(Scale-invatiant feature transform, SIFT)使用用来探测影像中局部特征,在空间尺度中寻找极值点,提取位置、尺度、旋转不变量的算法,该算法有专利限制。

3.2.1 主要步骤

  1. 尺度空间极值检测
  2. 关键点定位
  3. 方向确定
  4. 关键点描述

3.2.2 详细过程(待补充)

3.3 SURF算法

4 使用特征进行匹配

4.1 特征描述

4.1.1 目的

使用cv::DescriptorExtractor 进行特征匹配
使用cv::drawMatches 绘制匹配结果

4.2 使用FLANN进行匹配

4.2.1 目的

使用cv::FlannBasedMatcher 实现快速有效的匹配(多维空间的匹配和搜索)

4.2.2 理论

传统的特征描述器通常使用欧式距离(即L2距离)进行描比较和匹配。由于SIFT及SURF使用了直方图对领域空间的方向梯度进行描述,所有欧式距离被替换为了基于直方图的指标(Earth Mover's, EMD )
二进制描述器使用Hamming距离来匹配:d_{\text {hamming}}(a, b)=\sum_{i=0}^{n-1}\left(a_{i} \oplus b_{i}\right)

相关文章

  • 15.Spark学习(Python版本):特征处理相关的算法(T

    特征处理相关的算法,大体分为以下三类: 特征抽取:从原始数据中抽取特征特征转换:特征的维度、特征的转化、特征的修改...

  • 特征值、特征向量和奇异值

    特征值和特征向量 1 特征值分解与特征向量 特征值分解可以得到特征值(eigenvalues)与特征向量(eige...

  • 7、tf 特征处理

    使用特征列可以将类别特征转换为one-hot编码特征,将连续特征构建分桶特征,以及对多个特征生成交叉特征等等。 要...

  • 对角化

    对角化定义对角化的定义.PNG 特征空间特征空间.PNG 特征值与特征空间特征值与特征空间.PNG 总结总结.PNG

  • 【特征工程】特征选择与特征学习

    特征选择与特征学习 在机器学习的具体实践任务中,选择一组具有代表性的特征用于构建模型是非常重要的问题。特征选择通常...

  • Haar特征

    该特征常和AdaBoost结合用于识别人脸。Haar特征很简单,分为三类:边缘特征、线性特征、中心特征和对角线特征...

  • 特征工程--特征变换

    1、特征尺度变换 1.1什么是特征尺度变换 是一种电脑视觉的算法用来侦测与描述影像中的局部性特征,它在空间尺度中寻...

  • 特征工程——特征抽取

      数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限。因此,特征工程在机器学习过程中占据极其重要的一部...

  • 特征方程, 特征根

    numpy求解矩阵的特征值和特征向量

  • 降维与特征选择

    第七章 降维与特征选择 [TOC] 1. 特征抽取和特征选择的区别 特征抽取:在已有的特征上,采用特征变换的方法,...

网友评论

      本文标题:特征

      本文链接:https://www.haomeiwen.com/subject/lgyedctx.html