计算机视觉特征点检测(4) —— HOG特征描述算子

HOG特征介绍

HOG(Histogram of Oriented Gradients —— 方向梯度直方图)特征是一种图像局部特征,其基本思路是对图像局部的梯度幅值和方向进行投票统计,形成基于梯度特性的直方图,然后将局部特征拼接起来作为总特征。
HOG+SVM的工作流程图如下:
在这里插入图片描述
首先对输入的图片进行预处理,然后计算像素点的梯度特性,包括梯度幅值和梯度方向。然后投票统计形成梯度直方图,然后对blocks进行normalize,最后收集到HOG feature,放到SVM里进行监督学习,从而实现行人的检测。

HOG处理步骤

图像预处理

预处理包括灰度化和Gamma变换。
伽马矫正是调节图像的对比度,减少光照对图像的影响(包括光照不均和局部阴影),使过曝或者欠曝的图像恢复正常,更接近人眼看到的图像。
伽马矫正公式:
f ( I ) = I γ f(I) = I^{\gamma } f(I)=Iγ

import cv2
import numpy as np
from matplotlib import pyplot as plt
img = cv2.imread('*.png', 0)
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
img2 = np.power(img/float(np.max(img)),1/2.2)
plt.imshow(img2)
plt.axis('off')
plt.show()

计算图像梯度

为了得到梯度直方图,那么首先需要计算图像水平方向和垂直方向梯度。一般使用特定的卷积核对图像滤波实现,可选用的卷积模板有:soble算子、Prewitt算子、Roberts等。
soble算子:
S o b e l X = [ 1 0 − 1 ] ∗ [ 1 2 1 ] = [ 1 2 1 0 0 0 − 1 − 2 − 1 ] S o b e l Y = [ 1 2 1 ] ∗ [ 1 0 − 1 ] = [ 1 0 − 1 2 0 − 2 1 0 − 1 ] d x = f ( x , y ) ∗ S o b e l x ( x , y ) d y = f ( x , y ) ∗ S o b e l y ( x , y ) Sobel_X=\begin{bmatrix} 1\\ 0\\ -1 \end{bmatrix} \ast \begin{bmatrix} 1&2&1 \end{bmatrix} = \begin{bmatrix} 1 & 2 & 1\\ 0 & 0 & 0\\ -1 &-2 &-1 \end{bmatrix} \\ Sobel_Y=\begin{bmatrix} 1\\ 2\\ 1 \end{bmatrix} \ast \begin{bmatrix} 1 & 0& -1 \end{bmatrix} = \begin{bmatrix} 1 & 0 & -1\\ 2 & 0 & -2\\ 1 & 0 & -1 \end{bmatrix} \\ d_x = f(x,y) * Sobel_x(x,y) \\ d_y = f(x,y) * Sobel_y(x,y) SobelX=

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值