Harris点云关键点检测

Harris关键点检测算法最早由Chris Harris和Mike Stephens于1988年提出,是早期的一种基于自相关矩阵响应值原理的关键点检测算法。

Harris检测原理

Harris算法通过设计一个局部检测窗口,在图像中判断该窗口沿任一方向作微小偏移是否都会引起窗口内的平均能量发生大变化以至于超过预设的阈值,如果是则将此刻窗口的中心像素点标记为关键点。其数学描述如下: E(∆u)=∑_i▒w(x_i)[I(x_i+∆u)−I(x_i)]^2 其中,E(∆u)称为局部自相关函数,表示点x_i(i∈1,2,…,n)发生微小移动量∆u后产生的变化,n为窗口内的点数量, w(x_i)的取值取决于点x_i的位置,点x_i在指定的局部窗口内时w(x_i)为统一的一个值,在窗口外则为0,I为图像的灰度函数。

将变化点的图像灰度函数进行一阶泰勒展开,整理后局部自相关函数可表示为: E(∆u)=∆u^T[∑_i▒w(x_i)∙[■8(I_x_i^2&I_x_iI_y_i@I_x_iI_y_i&I_y_i^2)]] ∆u 这里,I_x_i,I_y_i分别为像素点x_i在下x,y方向上的梯度。则自相关局部函数在每个像素点上的估计可以表示为: A=w∙[■8(I_x_i^2&I_x_iI_y_i@I_x_iI_y_i&I_y_i^2)]

通过分析该自相关矩阵的两个特征值来得到自相关矩阵的响应值,从而判断该像素点是否为特征点,如果两个特征值都很大,则说明局部自相关函数呈尖峰形,窗口移动时将导致局部自相关函数急剧变化,表示窗口的中心像素点为图像的特征点。 其中,Harris是以特征值来表示响应值的,在实际应用中,通常采用下式来计算每个像素点的响应值m: m=det(A)−ktr(A) ^2=λ_1λ_2−k(λ_1+λ_2)^2 其中,det(A)表示矩阵A的行列式,tr(A)表示矩阵的迹, λ_1,λ_2表示矩阵的两个特征值,k为敏感因子,通常取值在[0.04,0.06] 。当m>0时,判断该点为关键点。

不妨设k=0.05,以λ_1,λ_2为自变量,响应值m为因变量,作函数图。观察图,当λ_1,λ_2均较大时有m>0。因此根据两个特征值均较大时像素点为特征点的原理,可以认为当响应值m>0时,判断该点为关键点。

选取刚性的一对生猪点云数据用于测试。上图展示了从猪的点云图像中利用Harris算法提取的关键点(红色),下图演示了根据两点云的关键点配准的结果。

  • 9
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江山如画,佳人北望

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值