角点

【CV现状-3.3】特征提取与描述

℡╲_俬逩灬. 提交于 2019-12-01 07:44:57
#磨染的初心——计算机视觉的现状 【这一系列文章是关于计算机视觉的反思,希望能引起一些人的共鸣。可以随意传播,随意喷。所涉及的内容过多,将按如下内容划分章节。 已经完成的会逐渐加上链接 。】 缘起 三维感知 目标识别 3.0. 目标是什么 3.1. 图像分割 3.2. 纹理与材质 3.3. 特征提取与分类 目标(和自身)在三维空间中的位置关系 目标的三维形状及其改变、目标的位移 符号识别 数字图像处理 特征提取与分类 一定是因为纹理分析与描述以及图像分割没有取得有效的进展,导致通过材质、形状、结构进行目标识别的愿望落了空。甚至当前最优秀的图像分割算法都不能产生人类能够识别的图斑形状,此外形状和结构描述方面也没有取得多少成果,更遑论有价值的成果。但是机器学习却取得了长足的进步,各种各样适合不同分布模型的监督分类算法被发明了出来。目标识别也就顺其自然地走上了“提取特征+描述特征+监督分类”的路线,成就也是显而易见的,当前落地了的计算机视觉应用背后都得到了“特征提取与描述”以及分类的加持。随着卷积神经网络的出现,人工特征提取与描述都省了,计算机视觉已然有了被机器学习收归囊下的意思。 然而相对于纸面上的喧嚣,卷积神经网络并没有开拓出实打实的应用领域。在深度学习成为热词之前,计算机视觉已经满足了人脸识别、指纹识别、行人检测、车辆检测、质检、工业控制等场景的应用需求

opencv图像匹配常用特征点

与世无争的帅哥 提交于 2019-11-30 04:05:00
特征点又称兴趣点、关键点,它是在图像中突出且具有代表意义的一些点,通过这些点我们可以用来识别图像、进行图像配准、进行3D重建等。本文主要介绍OpenCV中几种定位与表示关键点的函数。 一、Harris角点 角点是图像中最基本的一种关键点,它是由图像中一些几何结构的关节点构成,很多都是线条之间产生的交点。Harris角点是一类比较经典的角点类型,它的基本原理是计算图像中每点与周围点变化率的平均值。 (1) (2) 其中I(x+u,y+u)代表了点(x,y)邻域点的灰度值。通过变换可以将上式变化为一个协方差矩阵求特征值的问题(2),具体数学原理本文不过多描述。 OpenCV的Hairrs角点检测的函数为cornerHairrs(),但是它的输出是一幅浮点值图像,浮点值越高,表明越可能是特征角点,我们需要对图像进行阈值化。我们使用一张建筑图像来显示: int main() { Mat image=imread( " ../buliding.png " ); Mat gray; cvtColor(image,gray,CV_BGR2GRAY); Mat cornerStrength; cornerHarris(gray,cornerStrength, 3 , 3 , 0.01 ); threshold(cornerStrength,cornerStrength, 0.001 , 255

OpenCV3.0-图像特征检测

偶尔善良 提交于 2019-11-30 04:02:30
使用opencv的一些内置的算法来实现对图像特征的检测   从图像中提取的到的特征可以用来进行图像的匹配和检索 常用的图像特征检测算法 Harris:检测角点 SIFT:检测斑点 SURF:检测斑点 FAST:检测角点 BRIEF:检测斑点 什么是图像特征?   图像特征就是图像中最具有独特性和具有区别性的图像区域.在图像中特征区域主要分布在角点,高密度区域,边缘(边缘可以将图像分成多个区域),斑点(与周围像素差别很大的区域) cornerHarrir()角点的检测 import cv2 import numpy as np import matplotlib.pyplot as plt img1 = cv2.imread( 'data/aero3.jpg' ,cv2.COLOR_BGR2GRAY) gray = np.float32(gray) # 第二个参数:特征标记点的大小 # 第三个参数:特征检测敏感度大小,介于3-31之间的奇数 dst = cv2.cornerHarris(gray, 3 , 23 , 0.04 ) # 特征点标记为红色 img1[dst> 0.01 *dst.max()] = [ 255 , 0 , 0 ] Harri可以很好的检测角点,而且在旋转的条件下,也可以很好的检测,这跟角点的特性有关. plt.figure(figsize=( 12 , 7

ECCV2018 | 论文阅读CornerNet: Detecting Objects as Paired Keypoints

社会主义新天地 提交于 2019-11-30 00:02:51
https://blog.csdn.net/weixin_40414267/article/details/82379793 https://blog.csdn.net/weixin_40414267/article/details/82379793 https://blog.csdn.net/weixin_40414267/article/details/82379793 CornerNet: Detecting Objects as Paired Keypoints 论文内容详细整理 !!! 理解CornerNet,看这一篇就够了~ 论文链接:https://arxiv.org/abs/1808.01244 代码链接:https://github.com/umich-vl/CornerNet 摘要 我们提出了一种新的目标检测方法,使用单个卷积神经网络将目标边界框检测为一对关键点(即边界框的左上角和右下角)。通过将目标检测为成对关键点,我们消除了现有的one stage检测器设计中对一组anchors的需要。除了上述新颖的构想,文章还引入了corner pooling,这是一种新型的池化层,可以帮助网络更好地定位边界框的角点。CornerNet在MS COCO上实现了42.1%的AP,优于所有现有的one stage检测器。 1 介绍 基于卷积神经网络的对象检测器

图像特征点及特征描述子总结

别来无恙 提交于 2019-11-29 19:16:52
参考博客 https://blog.csdn.net/qq_28193895/article/details/80845803 https://blog.csdn.net/u013989576/article/details/49226611 https://blog.csdn.net/tostq/article/details/49314017 https://www.cnblogs.com/zyly/p/9542164.html https://www.cnblogs.com/gfgwxw/p/9440785.html https://www.cnblogs.com/wyuzl/p/7838103.html https://www.cnblogs.com/sonicmlj/p/9564182.html https://blog.csdn.net/dreamguard/article/details/83988814 https://blog.csdn.net/yangying1992/article/details/100809629 https://www.cnblogs.com/jiahenhe2/p/7930802.html https://blog.csdn.net/jiaoyangwm/article/details/79986729 1.Susan 原理

opencv学习笔记6 角点检测

大城市里の小女人 提交于 2019-11-29 09:57:01
角点检测 1.harris焦点检测 void cornerHarris (InputArray src,OutputArray dst, int blockSize, int ksize, double k, intborderType=BORDER_DEFAULT ) 1 Mat src = imread("E:/house.png", 0); 2 Mat harris,harris_bin; 3 cornerHarris(src, harris, 2, 3, 0.01); 4 threshold(harris, harris_bin, 0.00001, 255, THRESH_BINARY); 5 imshow("src", src); 6 imshow("角点检测后的二值效果图", harris_bin); 7 waitKey(); 2.阈值(用于生成二值图) double threshold (InputArray src,OutputArray dst, double thresh, double maxval, int type) 1 #include<opencv.hpp> 2 #include<vector> 3 using namespace std; 4 using namespace cv; 5 int main() 6 { 7 Mat src =

2019-8-28 opencv特征检测和描述3-Shi-Tomasi角点检测(适合跟踪的图像特征)

别说谁变了你拦得住时间么 提交于 2019-11-28 19:31:18
官网参见 https://docs.opencv.org/3.4.1/d4/d8c/tutorial_py_shi_tomasi.html 在https://blog.csdn.net/weixin_42555985/article/details/100112049中已经了解了Harris 角点检测。1994年,Shi和C. Tomasi在《Good Features to Track》一文中对该算法做了一些小小的修改,可以得到更好的结果。 Harris 角点检测的打分公式如下: R=λ 1 λ 2 −k(λ 1 +λ 2 ) 2 Shi-Tomasi的替代公式如下: R=min(λ 1 ,λ 2 ) 如果打分超过阈值,它就是角点。 参照Harris 角点检测方式,我们把Shi-Tomasi检测结果也放入λ 1 −λ 2 空间,可以得到下图 在图中可以发现,只有当λ 1 和λ 2 都大于最小值λ min 时候,才会被认为是角点(也就是图中绿色区域)。 opencv中提供了cv.goodFeaturesToTrack()函数,它可以用Shi-Tomasi方法发现图像中最强的N个角点(如果你改变参数,也可以变为Harris角点检测方式)。通常,输入图像应该是灰度图。接着指定你要查找角点的数目。然后指定(角点的)质量级别,该值在0-1之间,它是角点的最小质量,低于该值的角点都会被抛弃

opencv标定

天涯浪子 提交于 2019-11-26 01:55:28
https://blog.csdn.net/u012319493/article/details/77622053 #include #include #include <time.h> #include <stdio.h> #include #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/calib3d/calib3d.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; using namespace std; void main() { ifstream fin(“calibdata.txt”); / 标定所用图像文件的路径 / ofstream fout(“caliberation_result.txt”); / 保存标定结果的文件 / // 读取每一幅图像,从中提取出角点,然后对角点进行亚像素精确化 int image_count = 0; / 图像数量 / Size image_size; / 图像的尺寸 / Size board_size = Size(9, 6); / 标定板上每行、列的角点数 / vector image_points_buf; /

Opencv什么是图像的特征

拈花ヽ惹草 提交于 2019-11-25 21:54:13
进行角点检测之前先要理解一下什么是图像特征以及图像特征为什么很重要。 比如下图: 给出了大图中的ABCDEF六个小图: A和B是平面,很多地方都存在,很难找到这些图的准确位置。 C和D相对容易找到一些,因为它们是大图中的边缘,可以找到近似位置,但是找到准确位置还是很不易,因为沿着边缘很多位置都一样。 E和F和容易被找到,因为它们是图像的角点,角点地方的图,不论往哪个方向移动结果都会有很大不同,因此可以把角点当作一个很好的特征。 如上图所示,蓝色框中的区域是一个平面很难被找到和跟踪。无论你向那个方向移动蓝色框,长的都一样。对于黑色框中的区域,它是一个边缘。如果你沿垂直方向移动,它会改变。但是如果沿水平方向移动就不会改变。而红色框中的角点,无论你向那个方向移动,得到的结果都不同,这说明它是唯一的。所以,基本上来说角点是一个好的图像特征。(不仅仅是角点,有些情况斑点也是好的图像特征)。 所以现在就可以回答之前的问题,什么是特征? 图像中找一些区域,无论你想那个方向移动这些区域变化都很大,这就是特征。 用计算机语言来实现这个想法,找到图像特征的技术被称为特征检测。 当找到了图像的特征以后,我们应该在其他图像中也找到同样的特征。我们应该怎么做呢?我们选择特征周围的一个区域,然后用我们自己的语言来描述它,比如“上边是蓝天,下边是建筑,在建筑上有很多玻璃等”,你就可以在其他图片中搜索相同的区域了