【计算机视觉】传统图像特征

图像特征是图像中独特的,易于跟踪和比较的特定模板或特定结构。

图像特征提取与匹配是计算机视觉中的一个关键问题,在目标检测、物体识别、三维重建、图像配准、图像理解等具体应用中发挥着重要作用。

图像特征主要有图像的颜色特征、纹理特征、形状特征和空间关系特征

  • 颜色特征:是一种全局特征,描述了图像或图像区域所对应的景物的表面性质。颜色特征描述方法:颜色直方图、颜色空间、颜色分布。
  • 纹理特征:也是一种全局特征,它也描述了图像或图像区域所对应景物的表面性质。但由于纹理只是一种物体表面的特性,并不能完全反映出物体的本质属性,所以仅仅利用纹理特征是无法获得高层次图像内容的。
  • 形状特征:形状特征有两类表示方法,一类是轮廓特征,另一类是区域特征。图像的轮廓特征主要针对物体的外边界,而图像的区域特征则描述了是图像中的局部形状特征。
  • 空间关系特征:是指图像中分割出来的多个目标之间的相互的空间位置或相对方向关系,这些关系也可分为连接/邻接关系、交叠/重叠关系和包含/独立关系等。

一、方向梯度直方图(Histogram of Oriented Gradient,HOG)

形状特征

1、原理
  • 方向梯度直方图(Histogram of Oriented Gradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。
  • 它通过计算和统计图像局部区域的梯度方向直方图来构成特征。
  • Hog特征结合SVM分类器已经被广泛应用于图像识别中,尤其在行人检测中获得了极大的成功。
  • 主要思想:在一副图像中,目标的形状能够被梯度或边缘的方向密度分布很好地描述。
2、实现过程
  1. 灰度化(将图像看做一个x,y,z(灰度)的三维图像);
  2. 采用Gamma校正法对输入图像进行颜色空间的标准化(归一化);
  3. 计算图像每个像素的梯度(包括大小和方向);
  4. 将图像划分成小cells;
  5. 统计每个cell的梯度直方图(不同梯度的个数),得到cell的描述子;
  6. 将每几个cell组成一个block,得到block的描述子(对梯度进行归一化来减少光照变化影响);
  7. 将图像image内的所有block的HOG特征descriptor串联起来就可以得到HOG特征,
  8. 特征向量就是用来目标检测或分类的特征。
reference

图像之HOG特征描述算子-行人检测

二、Harris角点检测

形状特征

  • 角点:在现实世界中,角点对应于物体的拐角,道路的十字路口、丁字路口等。

    从图像分析的角度来定义角点可以有以下两种定义:

    角点可以是两个边缘的交点;

    角点是邻域内具有两个主方向的特征点;

  • 角点计算方法:

    前者通过图像边缘计算,计算量大,图像局部变化会对结果产生较大的影响;

    后者基于图像灰度的方法通过计算点的曲率及梯度来检测角点;

1、实现流程
  1. 计算图像在X和Y方向的梯度

I x = ∂ I ∂ x = I ⊗ ( − 1   0   1 ) ,   I y = ∂ I ∂ y = I ⊗ ( − 1   0   1 ) T I_{x}={\frac{\partial I}{\partial x}}=I\otimes(-1\ 0\ 1),\ I_{y}={\frac{\partial I}{\partial y}}=I\otimes(-1\ 0\ 1)^{T} Ix=xI=I(1 0 1), Iy=yI=I(1 0 1)T

  1. 计算图像两个方向梯度的乘积
    I x 2 = I x ⋅ I x ,   I y 2 = I y ⋅ I y ,   I x y = I x ⋅ I y I_{x}^{2}=I_{x}\cdot I_{x},\ I_{y}^{2}=I_{y}\cdot I_{y},\ I_{x y}=I_{x}\cdot I_{y} Ix2=IxIx, Iy2=IyIy, Ixy=IxIy

  2. 使用高斯函数对三者进行高斯加权,生成矩阵M的A,B,C
    A = g ( I x 2 ) = I x 2 ⊗ w ,    C = g ( I y 2 ) = I y 2 ⊗ w ,   B = g ( I x , y ) = I x y ⊗ w A=g(I_{x}^{2})=I_{x}^{2}\otimes w,\ \ C=g(I_{y}^{2})=I_{y}^{2}\otimes w,\ B=g(I_{x,y})=I_{x y}\otimes w A=g(Ix2)=Ix2w,  C=g(Iy2)=Iy2w, B=g(Ix,y)=Ixyw

  3. 计算每个像素的Harris响应值R,并对小于某一阈值t的R置为零

  4. 在3x3或5x5的邻域内进行非最大值抑制,局部最大值点即为图像中的角点;

2、 封装

Open 中的函数 cv2.cornerHarris() 可以用来进行角点检测。参数如下:

  • img — 数据类型为 float32 的输入图像
  • blockSize — 角点检测中要考虑的领域大小
  • ksize — Sobel 求导中使用的窗口大小
  • k— Harris 角点检测方程中的自由参数,取值参数为[0.04,0.06]
import cv2
import numpy as np 
filename ='harris2.png' 
img=cy2.imread(filename)
gray =cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) 
gray=np.float32(gray)
#输入图像必须是float32,最后一个参数在0.04到0.06之间
dst=cv2.cornerHarris(gray,2,3,0.03)
#结果进行膨胀,可有可无
dst=cv2.dilate(dst,None)
print(dst)
#设定阈值,不同图像阈值不同
img[dst>0.01*dst.max()]=[0,0,255]
print(dst.max())
cv2.imshow('dst_img',img) 
#cv2.imshow('dst',dst)
cv2.waitKey(0)
cv2.destroyAllWindows()

三、SIFT算法(Scale-invariant feature transform,SIFT)

形状特征

1、原理

SIFT,即尺度不变特征变换算法(Scale-invariant feature transform,SIFT),是用于图像处理领域的一种算法。SIFT具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子。其应用范围包含物体辨识、机器人地图感知与导航、影像缝合、3D模型建立、手势辨识、影像追踪和动作比对。

2、特性
  • 旋转、缩放、平移不变性
  • 解决图像仿射变换,投影变换的关键的匹配
  • 光照影响小
  • 目标遮挡影响小
  • 噪声景物影响小
3、实现流程
  • 尺度空间极值检测点检测
  • 关键点定位:去除一些不好的特征点,保存下来的特征点能够满足稳定性等条件
  • 关键点方向参数:获取关键点所在尺度空间的邻域,然后计算该区域的梯度和方向,根据计算得到的结果创建方向直方图,直方图的峰值为主方向的参数
  • 关键点描述符:每个关键点用一组向量(位置、尺度、方向)将这个关键点描述出来,使其不随着光照、视角等等影响而改变
  • 关键点匹配:分别对模板图和实时图建立关键点描述符集合,通过对比关键点描述符来判断两个关键点是否相同
4、封装
import cv2
import numpy as np
img=cv2.imread('harris2.png')
gray=cv2.evtColor(img,cv2.COLOR_BGR2GRAY)
sift=cv2.xfeatures2d.SIFT_create()#定义提取器
kp=sift.detect(gray,None#找到关键点
img=cv2.drasKeypoints(gray,kp,img)#检制关键点
cv2.imshow('sp',img)
cv2.waitKey(0)

四、LBP(Local Binary Pattern,局部二值模式)

纹理特征

优点:旋转不变性、灰度不变性

1、LBP原理

LBP算子定义在一个3x3的窗口内,以窗口中心像素为阈值,与相邻的8个像素的灰度值比较,若周围的像素值大于中心像素值,则该位置被标记为1,否则标记为0。

如此可以得到一个8位二进制数(通常还要转换为10进制,即LBP码,共256种),将这个值作为窗口中心像素点的LBP值,以此来反映这个3x3区域的纹理信息。

在这里插入图片描述

二进制:01111100 十进制:124 用124代替83

2、LBP计算公式

L B P P , r = ∑ p = 0 P − 1 s ( g p − g c ) 2 p LB P_{P,r}=\sum_{p=0}^{P-1}s(g_{p}-g_{c})2^{p} LBPP,r=p=0P1s(gpgc)2p

其中,p表示窗口中除中心像素点外的第 p p p个像素点; g c g_{c} gc表示中心像素点的灰度值, g p g_{p} gp表示领域内第 p p p个像素点的灰度值; s ( x ) s(x) s(x)公式如下:
s ( x ) = { 1 x ≥ 0 0 x < 0 s(x)={\left\{\begin{array}{l l}{1}&{x\geq0}\\ {0}&{x<0}\end{array}\right.} s(x)={10x0x<0

3、特点
  • LBP记录的是中心像素点与领域像素点之间的差值
  • 光照变化引起像素灰度值同增同减时,LBP变化并不明显
  • LBP对与光照变化不敏感,LBP检测的仅仅是图像的纹理信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 计算机视觉图像分析是一种技术,它使用计算机程序处理和分析图像和视频,以提取有用的信息。它可以帮助分析图像中的不同物体,特征和元素,以及它们之间的关系。它也可以用来实现许多其他功能,例如图像识别,图像转换,目标跟踪,物体识别等等。 ### 回答2: 计算机视觉图像分析是一种通过计算机算法对图像进行处理和分析的技术。它使用计算机视觉和模式识别的方法来提取图像中的信息和特征,并进行图像分类、目标检测、目标跟踪、图像分割等任务。 在计算机视觉图像分析中,首先需要进行图像的预处理,包括灰度化、去噪、增强等操作,以减少图像中的冗余信息,提高后续处理的效果。接下来是特征提取,通过选择合适的特征算子和方法,提取出图像中的关键信息,如边缘、纹理、颜色等特征。常用的特征提取方法有SIFT、HOG、SURF等。 在图像分类中,可以使用机器学习算法,如支持向量机、决策树等,构建模型进行分类。目标检测是指在图像中定位和识别感兴趣的目标。常用的目标检测算法有基于特征的方法和深度学习方法,如Haar特征、HOG+SVM、YOLO、Faster R-CNN等。 目标跟踪是指在视频序列中追踪目标的位置和运动信息。基于传统的目标跟踪方法有卡尔曼滤波、粒子滤波等,而基于深度学习的方法有Siamese网络、MDNet等。 图像分割是将图像分成若干个区域或像素点,并将其归类到不同的类别。图像分割的方法有基于阈值、基于边缘、基于区域、基于图割等。其中,基于图割的方法通过图论中的最小割最大流算法,将图像转化为图模型进行分割。 总之,计算机视觉图像分析是通过计算机技术对图像进行处理和分析,以获得图像中的特征、信息和目标。它在许多领域有广泛的应用,如安防监控、医学影像分析、自动驾驶等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值