图像处理与视觉感知---期末复习重点(8)

文章目录


一、图像分类流程

流程:输入图像、预处理、特征提取、学习算法、类标。

二、梯度方向直方图

2.1 概述

1. 梯度方向直方图(Histogram of Oriented Gradient, HOG):是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。HOG特征结合SVM分类器被广泛应用于图像识别中,尤其在行人检测。

特征描述子就是将图像抽取部分有用信息,丢掉不相关的信息。特征描述子可以将一个 w e i g h t × h e i g h t × 3 weight×height×3 weight×height×3(宽×高×通道数量)的图像转换成一个长为 n n n 的向量或矩阵。例如:一幅 64 × 128 × 3 64×128×3 64×128×3 的图像,经过转换之后可以输出长度为 3780 3780 3780 的图像向量,相比 64 × 128 × 3 64×128×3 64×128×3 肯定是少了的。因为,特征描述子仅仅将所需要显示的图像保留下来了。
比如说,我们想知道一个人有没有带眼镜,在这种情况下,我们仅仅需要提取人的面部特征,并且进行边缘检测,这个时候,我们可以忽略掉图片的彩色特征,将照片转换成变成仅仅有边缘轮廓的特征图。这种特征图不仅仅数据量小,而且具有很强的目标指向性。

2. 算法思想:(1)HOG特征的核心思想是在一幅图像中,局部目标的表观和形状(appearance and shape)能够被梯度和边缘的方向密度很好地描述。(2)通过将整幅图像分为多个小的连通区域(单元,cells),并计算每个cell的梯度或边缘方向直方图,这些直方图的组合可用于构成特征描述子,为了提高准确率,可以将局部直方图在图像更大范围内(块,block)进行对比度归一化(constrast-normalized)。

2.2 计算梯度方向直方图

2.2.1 过程

1. 预处理:patch可以是任意的尺寸,但是有一个固定的比例,比如当patch长宽比1:2,那patch大小可以是100×200、128×256或者1000×2000,但不可以是101×205(比例关系不对)。这里有张图是720×475的,我们选100*200大小的patch来计算HOG特征,把这个patch从图片里面抠出来,然后再把大小调整成64×128。

2. 计算梯度图像:首先我们计算水平和垂直方向的梯度,再来计算梯度的直方图。

(1) x轴方向的梯度主要凸显了垂直方向的线条;y轴方向的梯度凸显了水平方向的线条。

(2) 梯度幅值凸显了像素值有剧烈变化的地方。

(3) 图像的梯度去掉了很多不必要的信息(比如不变的背景色),加重了轮廓。

3. 在每个单元(8×8大小像素)中计算梯度直方图:

(1) 图像会被分割成每个单元( 8×8大小像素)。每个单元都会计算一个梯度直方图。

(2) 提供一个紧凑或压缩的表示:一个8×8的图像有8×8×3=192个像素值;每个像素有两个值:幅值magnitude和方向direction,3个通道只会将最大的梯度值以及方向角记录下来,加起来就是8×8×2=128。所以说实际的梯度直方图应当含有8×8×2=128个值。

(3) 对于64×128的这幅图像来说,每个单元(8×8大小)已经足够大来表示有趣的特征比如脸,头等等。

(4) 直方图是有9个bin的向量,角度:0,20,40,60...160。bin的值:每个角度对应的幅值之和。

以下图为例,此过程是根据梯度和角度来确定bin的过程。蓝色和红色分别是两个过程,先看蓝色。我们可以看到蓝色像素梯度值是2,方向为80°角,于是在第5个bin中加2;对于红色,角度为10、梯度值为4,但是bin中没有10,只有0和20,于是将梯度值分2份各分到bin里面的1和2当中。

这里有个细节要注意,如果一个角度大于160度,也就是在160-180度之间,我们知道这里角度0,180度是一样的,所以在下面这个例子里,像素的角度为165度的时候,要把幅值按照比例放到0和160的bin里面去。

(5) 把这8*8的单元cell里面所有的像素点都分别加到这9个bin里面去,就构建了一个9-bin的直方图,上面的单元cell对应的直方图如下:

4. 16×16(像素)的块(block)归一化:进行归一化的原因是图像梯度对于光线很敏感。

(1) 可以对向量用L2进行归一化,公式如下所示:

(2) 一般不会在每一个9×1的直方图上面做归一化,而是从一个16×16的块上做归一化,也就是4个9×1的直方图组合成一个36×1的向量,然后做归一化,接着,窗口再朝后面挪8个像素。

5. 计算HOG特征向量:为了计算这整个patch的特征向量,需要把36×1的向量全部合并组成一个向量。向量的大小可以这么计算:

(1) 我们有多少个16×16的块?对于64×128的这幅patch:水平7个,垂直15个,总共有7*15=105次移动。

(2) 每个16×16的块代表了36×1的向量。所以把他们放在一起也就是36×105=3780维向量。

(3) 可视化HOG:通常HOG特征描述子是画出8×8网格中9×1归一化的直方图。直方图的主要方向捕捉了这个人的外形,特别是躯干和腿。

2.2.2 总结

三、SIFT

1. 核心步骤:将一幅图像映射(变换)为一个局部特征向量集;特征向量具有平移、缩放、旋转不变性,同时对光照变化、仿射及投影变换也有一定不变性。

2. SIFT算法主要有三大步骤:(1) 提取关键点。 (2) 对关键点附加详细的信息(局部特征)构建描述器。 (3) 通过两特征点(附带上特征向量的关键点)的两两比较找出相互匹配的若干对特征点,建立景物间的对应关系。

相关推荐
Leinwin6 分钟前
Microsoft Azure 服务4月更新告示
人工智能·azure
胡耀超9 分钟前
霍夫圆变换全面解析(OpenCV)
人工智能·python·opencv·算法·计算机视觉·数据挖掘·数据安全
jndingxin17 分钟前
OpenCV CUDA 模块中用于在 GPU 上计算两个数组对应元素差值的绝对值函数absdiff(
人工智能·opencv·计算机视觉
jerry60917 分钟前
LLM笔记(五)概率论
人工智能·笔记·学习·概率论
硅谷秋水19 分钟前
学习以任务为中心的潜动作,随地采取行动
人工智能·深度学习·计算机视觉·语言模型·机器人
Tiny番茄1 小时前
Multimodal models —— CLIP,LLava,QWen
人工智能
Wnq100721 小时前
工业场景轮式巡检机器人纯视觉识别导航的优势剖析与前景展望
人工智能·算法·计算机视觉·激光雷达·视觉导航·人形机器人·巡检机器人
无心水2 小时前
【程序员AI入门:模型】19.开源模型工程化全攻略:从选型部署到高效集成,LangChain与One-API双剑合璧
人工智能·langchain·开源·ai入门·程序员ai开发入门·程序员的 ai 开发第一课·程序员ai入门
有梦想的攻城狮2 小时前
大语言模型与多模态模型比较
人工智能·语言模型·自然语言处理·llm·大语言模型
九章云极AladdinEdu3 小时前
GPU与NPU异构计算任务划分算法研究:基于强化学习的Transformer负载均衡实践
java·开发语言·人工智能·深度学习·测试工具·负载均衡·transformer