计算机视觉图像处理之Task04

   日期:2020-07-08     浏览:141    评论:0    
核心提示:用HOG算子进行行人检测介绍算法流程图像处理运用Gamma公式对图像Gamma公式图像展示计算图像梯度代码计算梯度直方图计算方法BLOCK归一化目的计算代码实践介绍HOG特征算子是在深度学习之前非常流行的一种图像特征提取技术,全称为Histogram of Oriented Gradients—方向梯度直方图运用对图像局部的梯度幅值和方向进行统计,形成具有梯度特性的直方图,将图像分成很多的block,并将得到的局部特征进行拼接算法流程输入图像Gamma矫正计算图像梯度计算梯度直方图BLOCK特

用HOG算子进行行人检测

  • 介绍
  • 算法流程
  • 图像处理
    • 运用Gamma公式对图像
      • Gamma公式
      • 图像展示
  • 计算图像梯度
    • 代码
  • 计算梯度直方图
    • 计算方法
    • BLOCK归一化
      • 目的
      • 计算
  • 代码实践

介绍

  • HOG特征算子是在深度学习之前非常流行的一种图像特征提取技术,全称为Histogram of Oriented Gradients—方向梯度直方图
  • 运用对图像局部的梯度幅值和方向进行统计,形成具有梯度特性的直方图,将图像分成很多的block,并将得到的局部特征进行拼接

算法流程

输入图像 Gamma矫正 计算图像梯度 计算梯度直方图 BLOCK特征归一化 得到HOG特征 SVM

图像处理

运用Gamma公式对图像

Gamma公式

参考文档

图像展示

import cv2
import numpy as np
from matplotlib import pyplot as plt
img =cv2.imread('../input/webarebear/timg.jpg',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()

原图


好像没啥区别

计算图像梯度


  • 水平梯度
  • 竖直梯度
  • 幅值
  • 可化简为
  • 梯度与边缘方向–如图

代码

import cv2
import numpy as np
img =cv2.imread('../input/webarebear/timg.jpg')
img =np.float32(img)/255.0 
# 归一化
# 计算x y方向的梯度
dx =cv2.Sobel(img,cv2.CV_32F,1,0,ksize=1)
dy =cv2.Sobel(img,cv2.CV_32F,0,1,ksize=1)
# 计算和梯度的幅值和方向
mag,angle = cv2.cartToPolar(dx,dy,angleInDegrees=True)
# print(mag,angle)

计算梯度直方图

计算方法


  • 最后得到

BLOCK归一化

目的

  • 为了削弱光照的影响

计算

每个数/每个数的平方和开根

代码实践

import cv2 as cv
import numpy as np
from matplotlib import pyplot as plt
if __name__ == '__main__':
    src = cv.imread("../input/dalaoheying/dalaoheying.jpg")
# cv.imshow("input", src)
    plt.imshow(src)
    plt.show()
    hog = cv.HOGDescriptor()
    hog.setSVMDetector(cv.HOGDescriptor_getDefaultPeopleDetector())
    # Detect people in the image
    (rects, weights) = hog.detectMultiScale(src,
    winStride=(2,4),
    padding=(8, 8),
    scale=1.2,
    useMeanshiftGrouping=False)
    for (x, y, w, h) in rects:
        cv.rectangle(src, (x, y), (x + w, y + h), (0, 255, 0), 2)
# cv.imshow("hog-detector", src)
    plt.imshow(src)
    cv.imwrite("hog-detector.jpg",src)
    plt.show()



效果有待加强

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服