# week2 **Repository Path**: sika0819/week2 ## Basic Information - **Project Name**: week2 - **Description**: 第二周作业 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-04-14 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 第一题 ## 图像卷积滤波的基本原理 ![WIN_20190413_21_00_15_Pro](WIN_20190413_21_00_15_Pro.jpg) ![WIN_20190413_21_02_07_Pro](WIN_20190413_21_02_07_Pro.jpg) ![WIN_20190413_21_24_21_Pro](WIN_20190413_21_24_21_Pro.jpg) 以此类推。从左到右,从上到下滑动。 ![pic](pic.gif) ## 常见的图像平滑滤波算法 + 平均滤波 $$ g(x,y)=\frac{1}{M}\sum_{(m,n)\epsilon S}f(m,n) $$ + 加权平均滤波 $$ g(x,y)=\frac{1}{M}\sum_{(m,n)\epsilon S}W_{mn}f(m,n) $$ 使用高斯模板进行滤波也被称为高斯滤波 + 中值滤波 + 数学形态学滤波 # 第二题 ## 图像边缘检测原理 沿着一个方向像素灰度沿着x或y方向有迅速或者变化,就说明这是图像的边缘。如果对函数进行二阶微分,会有一个过零点。边缘检测的本质是微分或差分。 ## Sobel算子 Sobel算子是一阶差分算子,使用此算子会产生对应的梯度矢量或是其他矢量。 ## LoG算子 LoG是二阶差分算子首先对原始图像使用高斯滤波器,进一步进行laplace计算。LoG对噪音的敏感比Laplace好一些。 ## Canny算子 解决传统算法中噪声敏感、断裂和虚检等问题 + 首先使用高斯函数进行平滑,然后再使用一阶导数。计算梯度 + 方向离散化 + 梯度幅值非极大值抑制。(只保留局部变化最大的点) + 当边缘存在间断时对边缘进行连接。 # 第三题 ## 直方图基本概念 以灰度值为横坐标(0~255),以灰度出现频次为纵坐标的图像,称为图像的直方图。 ## 大津算法进行图像分割的原理 由于背景和前景的之间存在不同的灰度区间,要确定一个阈值是的类间方差最大,而大津算法通过遍历0~255的灰度值,求取类间方差最大值,即可实现阈值化 # 第四题 Harris算子对角点的定义是,设置一个很小的区域,沿某方向进行移动。如果按照任意方向移动,区域内的灰度积分都变化剧烈,则该区域的像素为角点。 如果其中一个方向移动时灰度积分剧烈变化,另一个方向灰度积分不变,则说明这是图像边缘 ## 角点响应函数 $$ R=det M-k(traceM)^2 $$ $$ traceM=\lambda_1+\lambda_2 $$ $$ detM=\lambda_1\lambda_2 $$ 当λ1和λ2都比较小时,椭圆的轴越长,变化越不明显,说明点(x,y)处于灰度变化平缓区域。 当λ1>>λ2或者λ2>>λ1时,点(x,y)处于边界像素。 当λ1和λ2都比较大且近似相等时,椭圆趋近于圆,说明任意方向变化都很剧烈,点(x,y)为角点 # 第五题 ## Hough变换的基本原理 首先要进行边缘检测,得到边缘点。 ![2018060816460644](2018060816460644.jpg) + 任意一条直线可以表示为y=kx+b + 任意一个点可能经过的直线都对应参数空间下的一点 ![20180608165941128](20180608165941128.jpg) + 直角坐标系的一个点(x,y)对应极坐标系下的一条正弦曲线xcosθ+ysinθ=ρ ![20180608170428954](20180608170428954.jpg) + 同一条直线上的多个点在在极坐标下必交与一点 ![20180608171907163](20180608171907163.jpg) + 将(ρ,θ)空间量化成许多小格子a = 0-180°内以小格的步长计算各个p值 ![20180611160036630](20180611160036630.jpg) + 对应每一个直线点代入θ计算出各个ρ,设置一个阈值T,计数器大于T的小格子为共线点,小于T的为非共线点。 + 这种方法也称为投票 # 第六题 ## SIFT原理 ### 尺度空间 通过高斯函数与原图像卷积,并经过下采样,可以建立原始图像的尺度空间模型。 + 高斯尺度空间 物体越远,尺寸越小图像也越模糊,这就是高斯尺度空间,一副图像可以由不同的高斯卷积核得到 $$ G(x,y)=\frac{1}{2\pi\sigma^2}e^{-\frac{(x-m/2)^2+(y-n/2)^2}{2\sigma^2}} $$ 其中,σ越大,图像越模糊,r为模糊半径,即高斯模板到模板中心的距离。可以模拟人眼在距离目标由近到远时候目标在视网膜上的形成过程。 也称作高斯金字塔 实际计算时,使用高斯金字塔每组中相邻上下两层图像相见,得到高斯差分图像,进行极值检测,就能得到候选的sift特征点(DOG) ## 关键点定位 对找到极值点进行进一步优化。离散空间的极值点并不是真正的极值点。为了求得真正的极值点,利用已知的离散空间点,插值得到连续空间极值点,这种方法叫做子像素插值 ## 消除边缘影响 DOG算子在横跨边缘地方拥有较大的主曲率,在垂直边缘方向有较小的主曲率,通过Hessian矩阵剔除不稳定的边缘点。 根据之前角点检测的原理,要剔除边缘的影响点,需要让主曲率D与特征值H的比值小于一定阈值。只需检测: $$ \frac{Tr(H)^2}{Det(H)}<\frac{T_r+1}{r} $$ ## 关键点特征描述 ### 邻域窗口梯度 为了使描述符具有旋转不变性,需要利用图像的局部特征为给每一个关键点分配一个基准方向。对于DOG金字塔中检测出的关键点,采集图像3σ邻域窗口像素的梯度和方向分布特征 按照Lowe的建议,梯度的模值按σ=1.5σ,所以邻域窗口半径为3×1.5σ ### 方向直方图 方向直方图即计算以关键点为中心,半径3×1.5σ邻域内所有点的梯度方向。 按照0~360°分为10个柱(或8个柱)纵轴时对应梯度的(加权)累加 用方向直方图作为关键点特征的描述。对关键点匹配起到关键作用 ## ORB的基本原理 ### oFast特征提取 #### 粗体去 + 从图像中选取一点P,以P为圆心画一个半径为3像素的圆,圆周上如果有连续N个像素的灰度值比P点灰度值大或小,则认为P为特征点。 + 快速算法:为了加快排除非特征点,首先检测1、5、9、13位置上的灰度值,如果不满足3个活3个以上像素值都大于或小于P点,则直接排除此点。 #### 筛选最优特征点 采用机器学习筛选最优特征点。用ID3算法构建决策树,将特征圆周上16个像素输入决策树中,以此筛选最优的FAST特征点。 + 使用非极大值抑制算法去除临近多个特征点 + 建立金字塔以实现特征点多尺度不变性 + 使用矩法来确定FAST特征点的方向。 #### BRIEF算法改进(rBRIEF) 在BRIEF算法上加入旋转因子从而改进BRIEF算法 + BRIEF算法计算出来的时一个二进制的特征描述符,在一个特征邻域内,选择n对像素点pi、qi(i=1,2,……n). + 比较每个点灰度大小。如果I(pi)>I(qi)则生成二进制串中的1,否则则为0 + 所有的点对都进行比较,生成长度为n的二进制串(一般n取128、256或512)