图像梯度方向直方图描述子

合集下载

MATLABHOG方向梯度直方图

MATLABHOG方向梯度直方图

MATLABHOG⽅向梯度直⽅图HOG(Histogram of Oriented Gradient)⽅向梯度直⽅图,主要⽤来提取图像特征,最常⽤的是结合svm进⾏⾏⼈检测。

算法流程图如下(这篇论⽂上的):下⾯我再结合⾃⼰的程序,表述⼀遍吧:1.对原图像gamma校正,img=sqrt(img);2.求图像竖直边缘,⽔平边缘,边缘强度,边缘斜率。

3.将图像每16*16(取其他也可以)个像素分到⼀个cell中。

对于256*256的lena来说,就分成了16*16个cell了。

4.对于每个cell求其梯度⽅向直⽅图。

通常取9(取其他也可以)个⽅向(特征),也就是每360/9=40度分到⼀个⽅向,⽅向⼤⼩按像素边缘强度加权。

最后归⼀化直⽅图。

5.每2*2(取其他也可以)个cell合成⼀个block,所以这⾥就有(16-1)*(16-1)=225个block。

6.所以每个block中都有2*2*9个特征,⼀共有225个block,所以总的特征有225*36个。

当然⼀般HOG特征都不是对整幅图像取的,⽽是对图像中的⼀个滑动窗⼝取的。

lena图:求得的225*36个特征:matlab代码如下:1 clear all; close all; clc;23 img=double(imread('lena.jpg'));4 imshow(img,[]);5 [m n]=size(img);67 img=sqrt(img); %伽马校正89 %下⾯是求边缘10 fy=[-101]; %定义竖直模板11 fx=fy'; %定义⽔平模板12 Iy=imfilter(img,fy,'replicate'); %竖直边缘13 Ix=imfilter(img,fx,'replicate'); %⽔平边缘14 Ied=sqrt(Ix.^2+Iy.^2); %边缘强度15 Iphase=Iy./Ix; %边缘斜率,有些为inf,-inf,nan,其中nan需要再处理⼀下161718 %下⾯是求cell19 step=16; %step*step个像素作为⼀个单元20 orient=9; %⽅向直⽅图的⽅向个数21 jiao=360/orient; %每个⽅向包含的⾓度数22 Cell=cell(1,1); %所有的⾓度直⽅图,cell是可以动态增加的,所以先设了⼀个23 ii=1;24 jj=1;25for i=1:step:m %如果处理的m/step不是整数,最好是i=1:step:m-step26 ii=1;27for j=1:step:n %注释同上28 tmpx=Ix(i:i+step-1,j:j+step-1);29 tmped=Ied(i:i+step-1,j:j+step-1);30 tmped=tmped/sum(sum(tmped)); %局部边缘强度归⼀化31 tmpphase=Iphase(i:i+step-1,j:j+step-1);32 Hist=zeros(1,orient); %当前step*step像素块统计⾓度直⽅图,就是cell 33for p=1:step34for q=1:step35if isnan(tmpphase(p,q))==1 %0/0会得到nan,如果像素是nan,重设为036 tmpphase(p,q)=0;37 end38 ang=atan(tmpphase(p,q)); %atan求的是[-9090]度之间39 ang=mod(ang*180/pi,360); %全部变正,-90变27040if tmpx(p,q)<0 %根据x⽅向确定真正的⾓度41if ang<90 %如果是第⼀象限42 ang=ang+180; %移到第三象限43 end44if ang>270 %如果是第四象限45 ang=ang-180; %移到第⼆象限46 end47 end48 ang=ang+0.0000001; %防⽌ang为049 Hist(ceil(ang/jiao))=Hist(ceil(ang/jiao))+tmped(p,q); %ceil向上取整,使⽤边缘强度加权50 end51 end52 Hist=Hist/sum(Hist); %⽅向直⽅图归⼀化53 Cell{ii,jj}=Hist; %放⼊Cell中54 ii=ii+1; %针对Cell的y坐标循环变量55 end56 jj=jj+1; %针对Cell的x坐标循环变量57 end5859 %下⾯是求feature,2*2个cell合成⼀个block,没有显式的求block60 [m n]=size(Cell);61 feature=cell(1,(m-1)*(n-1));62for i=1:m-163for j=1:n-164 f=[];65 f=[f Cell{i,j}(:)' Cell{i,j+1}(:)' Cell{i+1,j}(:)' Cell{i+1,j+1}(:)'];66 feature{(i-1)*(n-1)+j}=f;67 end68 end6970 %到此结束,feature即为所求71 %下⾯是为了显⽰⽽写的72 l=length(feature);73 f=[];74for i=1:l75 f=[f;feature{i}(:)'];76 end77 figure78 mesh(f)。

基于方向梯度直方图的行人检测算法

基于方向梯度直方图的行人检测算法

1. 色彩和gamma归一化 2. 梯度计算 3. 统计局部图像梯度信息 4. block归一化 5. 生成特征描述向量
C=1
真实值
有人 无人
预测值
有人
无人
1078(95.31%) 53(4.69%)
26(0.71%) 3629(99.29%)
C=0.1
真实值
有人 无人
预测值
有人
无人
1079(95.40%) 52(4.60%)
28(0.77%) 3627(99.23%)
C=0.01
真实值
有人 无人
预测值
有人
无人
1097(96.99%) 34(3.01%)
44(1.20%) 3611(98.80%)
window size = 64*128 ς = 2, η = 8, β = 9 归一化方法:L2-norm
C=1
真实值
有人 无人
预测值
有人
无人
1078(95.31%) 53(4.69%)
26(0.71%) 3629(99.29%)
C=0.1
真实值
有人 无人
预测值
有人
无人
1079(95.40%) 52(4.60%)
28(0.77%) 3627(99.23%)
C=0.01
真实值
有人 无人
预测值
有人
无人
1097(96.99%) 34(3.01%)
1. 色彩和gamma归一化 2. 梯度计算 3. 统计局部图像梯度信息 4. block归一化 5. 生成特征描述向量
一维的离散微分模板
(-1, 0, 1), (1, 0, -1)’
水平梯度图和垂直梯度图

图像直方图全面介绍

图像直方图全面介绍

图像直方图全面介绍图像直方图是图像的基本属性之一,也是图像像素数据分布的统计学特征,常见的图像直方图可以分为二值图像的直方图表示如下:上图a是4x4的二值图像,b是对应的直方图,可以看出X轴表示像素范围(0-黑色、1-白色),Y轴表示像素值出现的频次,即分布。

对灰度图像来说,它的像素值取值范围会扩展到0~255之间,其直方图可以表示如下:从上面的图中可以发现灰度图像的直方图依然是X轴表示像素值范围、Y轴表示各个像素值出现频次,即像素分布。

彩色图像有红色、绿色、蓝色三个通道,其直方图表示稍微复杂一点,要对每个通道进行直方图计算跟表示,图示如下:可以看出彩色图像的三个通道各自对应一个直方图分布。

直方图阈值化OpenCV中支持的两种阈值计算的二值化方法•THRESH_OTSU•THRESH_TRIANGLE均是基于图像直方图实现图像二值化分割,其中OTSU阈值分割(大津)对直方图为双峰的灰度图像效果比较好,图示如下:而三角法对直方图分布单峰的图像分割效果比较好,图示如下下:直方图均衡化直方图均衡化是一种通过提升图像对比度实现图像增强的方法,它跟最基础的基于像素差值放缩改变对比度的方法效果更好。

图示如下:从上图中可以看出,最左侧列是输入图像,是低对比度图像,左侧二列为直接改变像素值获得对比度提升图像,左侧三列是通过直方图均衡化完成对比度提升,最右侧一列也是通过直方图均衡化完成,不过是基于局部直方图均衡化。

OpenCV中支持两种直方图均衡化方法分别是:•正常的直方图均衡化(全局直方图均衡化)•对比度受限的自适应直方图均衡化(CLAHE-局部自适应直方图均衡化)特别需要注意的是OpenCV的直方图均衡化函数都只支持单通道八位的图像、对RGB彩色图像来说,要实现直方图均衡化提升对比度必须先转换到HSV色彩空间,然后对亮度通道V进行直方图均衡化之后再转换到RGB色彩空间显示。

图示如下:直方图对比图像直方图还可以实现图像相似性简单分析与查找,其原理是对两张图像生成的直方图分布数据,进行归一化之后比较,根据数据像素程度,从而判定图像内容的相似程度,该方法可靠性虽然不高,但胜在快捷方便。

Matlab中的方向与梯度计算技巧

Matlab中的方向与梯度计算技巧

Matlab中的方向与梯度计算技巧概述Matlab作为一种功能强大的数学软件,提供了丰富的工具和函数来进行图像处理和计算机视觉任务。

其中,计算图像的方向与梯度是图像处理的重要一部分。

本文将介绍一些在Matlab中常用的方向与梯度计算技巧,并探讨其原理和应用。

1. 图像梯度图像的梯度用于表示图像像素在空间上的变化程度。

在Matlab中,可以使用函数gradient或imgradient来计算图像的梯度。

gradient函数可用于计算二维图像的梯度。

它将输入图像视为计算图像函数f(x, y)在x和y方向上的偏导数。

使用方法如下:```matlab[Gx, Gy] = gradient(image);```其中,image为输入的图像,Gx和Gy为计算得到的梯度。

imgradient函数在Matlab R2016a版本引入,与gradient函数类似,不同的是可以指定不同的梯度算子。

使用方法如下:```matlab[Gmag, Gdir] = imgradient(image);```其中,image为输入的图像,Gmag为计算得到的梯度大小,Gdir为计算得到的梯度方向。

2. 方向直方图方向直方图是用于表示图像中不同方向上的梯度分布情况的一种统计方法。

在Matlab中,可以使用函数histcounts来计算方向直方图。

首先,需要计算图像的梯度,可以使用前文介绍的gradient或imgradient函数。

然后,将梯度方向值进行量化,通常将其划分为一定数量的方向区间。

最后,对每个像素的梯度方向进行统计,得到方向直方图。

下面是一个简单的示例:```matlab[Gmag, Gdir] = imgradient(image);numBins = 10; % 将方向划分为10个区间binEdges = linspace(-180, 180, numBins+1); % 计算方向区间边界histogram = histcounts(Gdir(:), binEdges); % 计算方向直方图```在上述示例中,Gdir为梯度方向矩阵,binEdges为方向区间边界数组,histogram为计算得到的方向直方图。

HOG特征以及提取算法的实现过程

HOG特征以及提取算法的实现过程

HOG特征以及提取算法的实现过程HOG(Histogram of Oriented Gradients,方向梯度直方图)特征是一种用于图像识别或目标检测的特征描述子。

它广泛应用于视觉计算领域,可用于人脸识别、行人检测等任务。

HOG特征的提取算法分为三个主要步骤:图像预处理、计算梯度和构建特征向量。

首先,需要对图像进行预处理。

通常,图像需要调整尺寸和大小,以便后续处理。

在这个过程中,会对图像进行统一缩放,使其具有相同的尺寸。

此外,还可以采用gamma校正等技术对图像进行增强,以提高特征提取的准确性。

接下来,需要计算图像的梯度。

这一步骤是HOG特征的核心。

梯度表示图像中的边缘信息,通过计算图像像素点的梯度大小和方向来获得。

一种常用的方法是使用Sobel算子,分别对图像进行水平和垂直方向的滤波操作,然后计算每个像素点的梯度大小和方向。

然后,将图像分割为多个小的区域(cell)。

每个小区域内,将像素点的梯度方向划分为几个不同的角度,例如0°到180°,并统计每个角度范围内的梯度强度。

这样可以获得每个小区域内的梯度直方图。

接下来,将相邻的小区域进行组合,形成更大的图像区域(block)。

每个block内包含多个小区域,将所有小区域内的梯度直方图串联起来,获得block内的特征向量。

通过将相邻block的特征向量合并起来,即可得到整个图像的HOG特征向量。

最后,为了进一步提高对光照和形变的鲁棒性,需要对HOG特征进行归一化。

常用的归一化方法是通过计算每个block内所有特征向量的范数,并将其除以范数的平方根。

这样可以使得特征向量的模保持相对一致,减少光照变化的影响。

```pythonimport cv2from skimage.feature import hog#读取图像image = cv2.imread('image.jpg', cv2.IMREAD_GRAYSCALE)#图像预处理,如调整尺寸和大小image = cv2.resize(image, (64, 128))#计算梯度gradient_x = cv2.Sobel(image, cv2.CV_32F, 1, 0)gradient_y = cv2.Sobel(image, cv2.CV_32F, 0, 1)gradient_magnitude, gradient_angle =cv2.cartToPolar(gradient_x, gradient_y)#将图像划分为小区域cell_size = (8, 8)cell_gradient_bins = 9cell_gradients = hog(image, orientations=cell_gradient_bins, pixels_per_cell=cell_size, cells_per_block=(2, 2),block_norm='L2-Hys')#将小区域合并为大区域,并进行特征向量的拼接block_size = (2, 2)block_stride = (1, 1)block_norm = 'L2-Hys'block_gradients = []for i in range(0, cell_gradients.shape[0] - block_size[0] + 1, block_stride[0]):for j in range(0, cell_gradients.shape[1] - block_size[1] + 1, block_stride[1]):block = cell_gradients[i:i+block_size[0],j:j+block_size[1], :]block_gradients.append(block.flatten()feature_vector = np.concatenate(block_gradients)#归一化feature_vector /= np.sqrt(np.sum(feature_vector ** 2))#输出HOG特征向量print(feature_vector)```总之,HOG特征的提取算法主要包括图像预处理、梯度计算和构建特征向量三个步骤。

分类图像特征

分类图像特征

分类图像特征图像分类是计算机视觉领域中的一个重要任务,旨在将输入的图像根据其内容或特征进行分类。

为了实现准确的图像分类,研究者们提出了许多方法和技术。

其中,提取和利用图像特征是实现图像分类的关键之一。

图像特征是描述图像中重要信息的一种表示方式。

不同的图像特征可以捕捉到图像的不同方面,如颜色、纹理、形状等。

这些特征能够帮助计算机理解和识别图像内容,从而进行分类和检索。

在本文中,我们将介绍一些常见的分类图像特征。

一、颜色特征颜色是图像中最直观和常用的一个特征。

颜色特征可以通过统计图像中每个像素点的颜色分布来表示。

常见的颜色特征包括:1. RGB颜色直方图:统计图像中每种颜色在RGB三个通道上的分布情况。

2. HSV颜色直方图:将RGB颜色空间转换为HSV颜色空间,并统计每种颜色在H、S、V三个通道上的分布情况。

3. Lab颜色直方图:将RGB颜色空间转换为Lab颜色空间,并统计每种颜色在L、a、b三个通道上的分布情况。

二、纹理特征纹理描述了图像中的重复或不规则的细节结构,是图像分类中常用的特征之一。

常见的纹理特征包括:1. 灰度共生矩阵(GLCM):统计图像中不同像素对之间的灰度差异,计算出像素之间的共生矩阵,并提取出该矩阵的统计特征,如对比度、能量、熵等。

2. 方向梯度直方图(HOG):通过计算图像中局部区域的梯度方向直方图来描述图像的纹理信息。

3. 局部二值模式(LBP):将图像划分为小的局部区域,并统计每个区域的二值模式,得到图像的纹理特征。

三、形状特征形状特征是描述图像中物体形状和结构的特征。

常见的形状特征包括:1. 边缘直方图:通过检测图像中的边缘,将边缘点投影到某个方向上,并统计每个方向上的边缘数量,得到边缘直方图。

2. 尺度不变特征变换(SIFT):通过检测图像中的关键点,计算每个关键点周围的梯度方向直方图,并生成描述关键点的特征向量。

3. 小波变换:利用小波变换将图像分解为多个尺度上的频域子带,并提取每个子带中的能量或统计特征来描述图像的形状。

hog特征计算

hog特征计算

hog特征计算HOG特征计算是一种用于图像识别和目标检测的特征提取方法。

HOG (Histogram of Oriented Gradients)特征计算通过计算图像中局部区域的梯度方向直方图来描述图像的纹理和形状信息,从而实现目标的识别和检测。

HOG特征计算的基本思想是,对于一幅图像,首先将其分成若干个小的细胞(cell),然后对每个细胞内的像素进行梯度计算,得到梯度的幅值和方向。

接着,根据每个细胞的梯度方向,将其分配到相应的方向直方图中,并对相邻细胞的直方图进行归一化和连接,得到最终的特征向量。

HOG特征计算的具体步骤如下:1. 图像预处理:对原始图像进行灰度化处理,将彩色图像转换为灰度图像,以减少计算复杂度。

2. 梯度计算:对灰度图像使用Sobel算子计算每个像素点的梯度幅值和方向。

这样可以得到图像中每个像素点的梯度信息。

3. 细胞划分:将图像划分为若干个大小相等的细胞。

细胞的大小可以根据具体应用进行调整,一般为8×8或16×16像素。

4. 方向直方图计算:对每个细胞内的像素点,根据其梯度方向将其分配到相应的方向直方图中。

方向直方图的划分一般为9个方向,每个方向的范围为20度。

然后对每个细胞的方向直方图进行归一化,以减少光照变化的影响。

5. 块描述子计算:将相邻的若干个细胞的方向直方图连接起来,形成块描述子。

块描述子的大小一般为2×2个细胞。

6. 特征向量生成:将所有块描述子连接起来,形成最终的特征向量。

特征向量中的每个元素代表了图像中特定方向的纹理和形状信息。

HOG特征计算具有以下优点:1. 鲁棒性强:HOG特征计算对光照、尺度和旋转变化具有较好的鲁棒性,可以在复杂的环境下进行目标识别和检测。

2. 特征表达能力强:HOG特征计算可以有效地描述图像的纹理和形状信息,能够捕捉到目标的局部结构和边缘信息。

3. 计算效率高:HOG特征计算的计算量相对较小,可以在实时性要求较高的场景下进行目标检测和识别。

hog和phog的特征

hog和phog的特征

hog和phog的特征
HOG(方向梯度直方图)和PHOG(金字塔方向梯度直方图)是图像处理中常用的特征提取算法。

它们能够有效地描述图像中的边缘和纹理等特征,被广泛应用于目标检测、识别和跟踪等领域。

HOG特征是一种基于梯度信息的局部特征描述子。

它将图像划分为小的局部块,在每个块内计算梯度方向的直方图。

通过统计每个块内不同方向梯度的分布情况,构造出一个用于表征图像的特征向量。

HOG特征的优点在于:对光照、尺度变化相对较为稳定,能够有效捕捉图像的边缘信息。

相比之下,PHOG特征更适用于对尺度变化敏感的场景。

它在HOG特征的基础上引入了金字塔结构,通过利用不同尺度下的特征信息,提高了特征的鲁棒性。

PHOG特征的计算过程包括对图像进行多次缩放,然后在每个尺度下提取HOG特征。

最后将这些尺度上的特征向量拼接起来,形成最终的PHOG特征向量。

这样一来,PHOG特征就能够更好地描述图像中不同尺度下的纹理和形状信息。

HOG和PHOG特征的提取过程相对简单,且计算效率高,适用于大规模图像处理任务。

它们在目标检测和行人识别等领域取得了显著的效果。

同时,研究者们也在不断改进和优化这两种特征描述子,以适应更加复杂的应用场景。

总的来说,HOG和PHOG特征是图像处理中非常重要的特征提取方法,对于分析和理解图像中的纹理和形状结构具有重要意义。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LOGO
利用线性插值的方法解决分块之间联系问题
利用线性插值的方法解决分块之间联系问题: 利用线性插值的方法解决分块之间联系问题: 有些文献采用的不是块与块重叠的方法,而是采用线性插值的方法来削 弱混叠效应。这种方法的主要思想是每个Block都对临近的Block都有影 响,这种影响,我们可以以一种加权方式附加上去。
既然已经存在像素这种描述子, 既然已经存在像素这种描述子,为何我们还有寻求新的图 像描述子? 像描述子?
LOGO
图像梯度方向直方图描述子
图像梯度方向直方图( 图像梯度方向直方图(Histogram of Oriented Gradient) Gradient)
HOG( Gradient) 2005年CVPR会议上 会议上, HOG(Histogram of Oriented Gradient)是2005年CVPR会议上, 法国国家计算机科学及自动控制研究所的Dalal等人提出的一种解决 Dalal等人提出的 法国国家计算机科学及自动控制研究所的Dalal等人提出的一种解决 人体目标检测的图像描述子, 人体目标检测的图像描述子,该方法使用梯度方向直方图 Gradients,简称HOG)特征来表达人体, 简称HOG (Histogram of Oriented Gradients,简称HOG)特征来表达人体, 提取人体的外形信息和运动信息,形成丰富的特征集。 提取人体的外形信息和运动信息,形成丰富的特征集。
LOGO
从图中可以看出,对于人体对象检测,块的大小为 3×3个单元格,单元格的大小为6×6个象素时,检测效果 是最好的,错误率约为10%左右。块的大小为2×2个单元 格,单元格大小为8×8个象素时,也相差无几。6-8个象 素宽的单元格,2-3个单元格宽的块,其错误率都在最低 的一个平面上。块的尺寸太大时标准化的作用被削弱了从 而导致错误率上升,而如果块的尺寸太小时,有用的信息 反而会被过滤掉。 在实际应用中,在Block和Cell划分之后,对于得到 各个像区域中,有时候还会为了进行一次高斯平滑,但是 对于人体目标检测等问题,该步骤往往可以忽略,实际应 用效果不大,估计在主要还是去除区域中噪点,因为梯度 对于噪点相当敏感
LOGO
根据Dalal等人实验,在人体目标检测中,在无符号方向角度范围并将 其平均分成9份(bins)能取得最好的效果,当bin的数目继续增大效果改变 不明显,故一般在人体目标检测中使用bin数目为9范围0~180度的度量方式。 如下图所示:
LOGO
Block中各个参数的最终选取: Block中各个参数的最终选取: 中各个参数的最终选取
1/2
LOGO
因为模值的计算开销比较大, 因为模值的计算开销比较大,一般可以按如下公式近似求 解:
Dalal等人利用许多一阶微分模板进行求梯度近似值, Dalal等人利用许多一阶微分模板进行求梯度近似值,但 等人利用许多一阶微分模板进行求梯度近似值 在实验中表明模板[ 1,0,1]效果最好 效果最好。 在实验中表明模板[-1,0,1]效果最好。
Gx δ x ∇f = = δf y 这个向量的模值由下式给出: 这个向量的模值由下式给出: δ y
∇f =|| ∇f ||2 = Gx 2 + Gy 2
1/2
δ f 2 δ f 2 = + δx δy
LOGO
重叠块: 重叠块: Datal等人在他们那篇关于HOG最为经典的论文 《Histogram of Oriented Gradient for Human Detection》提出了利用块与块的重叠(Overlap)来解决 混叠,并且取得了不错的效果。
LOGO
在重叠方式中,块与块之间的边缘点被重复根据权重投影到各自相邻 块(block)中,从而一定模糊了块与块之间的边界,处于块边缘部分的像 素点也能够给相邻块中的方向梯度直方图提供一定贡献,从而达到关联块 与块之间的关系的作用。Datal对于块和块之间相互重叠程度对人体目标检 测识别率影响也做了实验分析。
LOGO
HOG与SIFT的区别
HOG与SIFT的区别 HOG与SIFT的区别
HOG和SIFT都属于描述子,以及由于在具体操作上 和 都属于描述子, 都属于描述子 有很多相似的步骤,所以致使很多人误认为HOG是 有很多相似的步骤,所以致使很多人误认为 是 SIFT的一种,其实两者在使用目的和具体处理细节上是 的一种, 的一种 有很大的区别的。 的主要区别如下: 有很大的区别的。HOG与SIFT的主要区别如下: 与 的主要区别如下 是基于关键点特征向量的描述。 ① SIFT是基于关键点特征向量的描述。 是基于关键点特征向量的描述 是将图像均匀的分成相邻的小块, ② HOG是将图像均匀的分成相邻的小块,然后在所 是将图像均匀的分成相邻的小块 有的小块内统计梯度直方图。 有的小块内统计梯度直方图。 需要对图像尺度空间下对像素求极值点, ③ SIFT需要对图像尺度空间下对像素求极值点,而 需要对图像尺度空间下对像素求极值点 HOG中不需要。 中不需要。 中不需要 一般有两大步骤, ④ SIFT一般有两大步骤,第一个步骤是对图像提取 一般有两大步骤 特征点, 特征点,而HOG不会对图像提取特征点。 不会对图像提取特征点
LOGO
块划分所带来的问题: 块划分所带来的问题: 块与块之间是相互独 立的么? 立的么?
LOGO
分块之间的相关性问题解决
答:通常的将某个变量范围固定划分为几个区域, 由于边界变量与相邻区域也有相关性,所以变量 只对一个区域进行投影而对相邻区域完全无关时 会对其他区域产生混叠效应。 。
分块之间的相关性问题的解决: 分块之间的相关性问题的解决: 方案一:块重叠,重复统计计算 方案二:线性插值权重分配
LOGO
基于线性插值的基本思想,对于上图四个方向(横纵两个45度 斜角方向)个进行一次线性插值就可以达到权重分配目的。下面介 绍一维线性插值。假设x1和x2是x块相邻两块的中心,且x1<x<x2。 对w(即权重,一般可直接采用该block的直方图值即h(x))进行 线性插值的方法如下式:
x − x1 h( x1) ← h( x1) + h( x) × (1 − ) b x − x2 h( x 2) ← h( x1) + h( x) × ( ) b
图像梯度方向直方图描述子
重庆大学行业信息化工程中心 黄晟
LOGO
图像表征
什么是图像的描述子? 什么是图像的描述子? 其实图像描述子就是图像的一种表征形式 图像的一种表征形式, 其实图像描述子就是图像的一种表征形式,我们所熟 知的像素值便是最常见最朴素的一种图像表征形式, 知的像素值便是最常见最朴素的一种图像表征形式,也可 以被看成一种描述形式。 以被看成一种描述形式。
Dalal的试验证明矩形HOG和圆形HOG的检测效果基本一致, 而环绕形HOG效果相对差一些。并且,圆形与环绕形的HOG 文献比较少,应用研究没有矩形HOG普遍。所以在此,我 将着重讲解矩形HOG的情况。
LOGO
矩形HOG块的划分: 矩形HOG块的划分: HOG块的划分 一般一个块(Block)都由若干单元(Cell)组成,一 个单元都有如干个像素点组成。
LOGO
利用一阶微分求解图像梯度
一阶微分处理一般对灰度阶梯有较强的响应
∂f 一阶微分: 一阶微分: ∂x = f ( x + 1) − f ( x)
对于函数f(x,y),在其坐标(x,y)上的梯度是通过 对于函数f(x,y),在其坐标(x,y) f(x,y) 如下二维列向量定义的: 如下二维列向量定义的: δ f
LOGO
图像归一化
1:图像归一化 step 1:图像归一化 归一化图像的主要目的是提高检测器对光照的 鲁棒性,因为实际的人体目标可能出现的各种不 同的场合,检测器,必须对光照不太敏感才会有 好的效果。
LOGO
利用一阶微分计算图像梯度
Step 2 利用一阶微分计算图像梯度 图像平滑 梯度法求图像梯度
LOGO
LOGO
在每个Cell中有独立做梯度方向统计,从而以梯度方向为 横轴的的直方图,前面我们已经提到过,梯度方向可取0 度到180度或0度~360度,但dalal实验表明,对于人体目 标检测0度~180度这种忽略度数正负级的方向范围能够取 得更好的结果。然后又将这个梯度分布平均分成 个方向 角度(orientation bins),每个方向角度范围都会对应 一个直方柱。
LOGO
我将采用模板[ 1,0,1]为例计算图像梯度以及方向, 我将采用模板[-1,0,1]为例计算图像梯度以及方向,通过梯度模板计算 为例计算图像梯度以及方向 水平和垂直方向的梯度分别如下: 水平和垂直方向的梯度分别如下:
Gh ( x, y ) = f ( x + 1, y ) − f ( x − 1, y ) Gv ( x, y ) = f ( x, y + 1) − f ( x, y − 1) ∀x, y ∀x, y
其中,分别表示该像素点的水平,垂直梯度值。 其中,分别表示该像素点的水平,垂直梯度值。计算该像素点的梯度值 (梯度强度)以及梯度方向: 梯度强度)以及梯度方向:
LOGO
对于梯度方向的范围限定,一般采用无符号的范围, 对于梯度方向的范围限定,一般采用无符号的范围,故 梯度方向可表示为: 梯度方向可表示为: θ ( x, y ) + π , θ ( x, y ) < 0
LOGO
图像平滑
图像平滑 对于灰度图像, 对于灰度图像,一般为了 去除噪点, 去除噪点,所以会先利用离散 高斯平滑模板进行平滑: 高斯平滑模板进行平滑:高斯 函数在不同平滑的尺度下进行 对灰度图像进行平滑操作, 对灰度图像进行平滑操作, Dalal等实验表明在下 等实验表明在下, Dalal等实验表明在下,人体检 测效果最佳( 测效果最佳(即不做高斯平 ),使得错误率缩小了约一 滑),使得错误率缩小了约一 不做平滑操作,可能原因: 倍。不做平滑操作,可能原因: 图像时基于边缘的, 图像时基于边缘的,平滑会降 低边缘信息的对比度, 低边缘信息的对比度,从而减 少图像中的信号信息。 少图像中的信号信息。
相关文档
最新文档