- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python中人脸图像特征提取方法(HOG、Dlib、CNN)简述由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
1、hog简介 histogram of oriented gridients,缩写为hog,是目前计算机视觉、模式识别领域很常用的一种描述图像局部纹理的特征。它的主要思想是在一副图像中,局部目标的表象和形状能够被梯度或边缘的方向密度分布很好地描述。其本质为:梯度的统计信息,而梯度主要存在于边缘的地方。 2、实现方法 首先将图像分成小的连通区域,这些连通区域被叫做细胞单元。然后采集细胞单元中各像素点的梯度的或边缘的方向直方图。最后把这些直方图组合起来,就可以构成特征描述符。将这些局部直方图在图像的更大的范围内(叫做区间)进行对比度归一化,可以提高该算法的性能,所采用的方法是:先计算各直方图在这个区间中的密度,然后根据这个密度对区间中的各个细胞单元做归一化。通过这个归一化后,能对光照变化和阴影获得更好的效果。 3、hog特征提取优点 。
由于hog是 在图像的局部方格单元上操作,所以它对图像几何的和光学的形变都能保持很好的不变性,这两种形变只会出现在更大的空间领域上。在粗的空域抽样、精细的方向抽样以及较强的局部光学归一化等条件下,只要行人大体上能够保持直立的姿势,可以容许行人有一些细微的肢体动作,这些细微的动作可以被忽略而不影响检测效果。hog特征是特别适合于做图像中的人体检测的 。 4、hog特征提取步骤 (1)色彩和伽马归一化 为了减少光照因素的影响,首先需要将整个图像进行规范化(归一化)。在图像的纹理强度中,局部的表层曝光贡献的比重较大,所以,这种压缩处理能够有效地降低图像局部的阴影和光照变化。 (2)计算图像梯度 计算图像横坐标和纵坐标方向的梯度,并据此计算每个像素位置的梯度方向值;求导操作不仅能够捕获轮廓,人影和一些纹理信息,还能进一步弱化光照的影响。最常用的方法是:简单地使用一个一维的离散微分模板在一个方向上或者同时在水平和垂直两个方向上对图像进行处理,更确切地说,这个方法需要使用滤波器核滤除图像中的色彩或变化剧烈的数据 (3)构建方向直方图 细胞单元中的每一个像素点都为某个基于方向的直方图通道投票。投票是采取加权投票的方式,即每一票都是带有权值的,这个权值是根据该像素点的梯度幅度计算出来。可以采用幅值本身或者它的函数来表示这个权值,实际测试表明: 使用幅值来表示权值能获得最佳的效果,当然,也可以选择幅值的函数来表示,比如幅值的平方根、幅值的平方、幅值的截断形式等。细胞单元可以是矩形的,也可以是星形的。直方图通道是平均分布在0-1800(无向)或0-3600(有向)范围内。经研究发现,采用无向的梯度和9个直方图通道,能在行人检测试验中取得最佳的效果.
(4)将细胞单元组合成大的区间 由于局部光照的变化以及前景-背景对比度的变化,使得梯度强度的变化范围非常大。这就需要对梯度强度做归一化。归一化能够进一步地对光照、阴影和边缘进行压缩。 采取的办法是:把各个细胞单元组合成大的、空间上连通的区间。这样,hog描述符就变成了由各区间所有细胞单元的直方图成分所组成的一个向量。这些区间是互有重叠的,这就意味着:每一个细胞单元的输出都多次作用于最终的描述器。 区间有两个主要的几何形状——矩形区间(r-hog)和环形区间(c-hog)。r-hog区间大体上是一些方形的格子,它可以有三个参数来表征:每个区间中细胞单元的数目、每个细胞单元中像素点的数目、每个细胞的直方图通道数目.
(5)收集hog特征 。
把提取的hog特征输入到svm分类器中,寻找一个最优超平面作为决策函数.
1、dlib简介 dlib是一个现代化的c ++工具箱,其中包含用于在c ++中创建复杂软件以解决实际问题的机器学习算法和工具。它广泛应用于工业界和学术界,包括机器人,嵌入式设备,移动电话和大型高性能计算环境。dlib的开源许可证允许您在任何应用程序中免费使用它。 2、dlib特点 。
文档齐全高质量的可移植代码提供大量的机器学习和图像处理算法 。
1、卷积神经网络简介 卷积神经网络(convolutional neural network)简称cnn,cnn是所有深度学习课程、书籍必教的模型,cnn在影像识别方面的为例特别强大,许多影像识别的模型也都是以cnn的架构为基础去做延伸。另外值得一提的是cnn模型也是少数参考人的大脑视觉组织来建立的深度学习模型,学会cnn之后,对于学习其他深度学习的模型也很有帮助,本文主要讲述了cnn的原理以及使用cnn来达成99%正确度的手写字体识别。 2、cnn网络结构 基础的cnn由 卷积(convolution), 激活(activation), and 池化(pooling)三种结构组成。cnn输出的结果是每幅图像的特定特征空间。当处理图像分类任务时,我们会把cnn输出的特征空间作为全连接层或全连接神经网络(fully connected neural network, fcn)的输入,用全连接层来完成从输入图像到标签集的映射,即分类。当然,整个过程最重要的工作就是如何通过训练数据迭代调整网络权重,也就是后向传播算法。目前主流的卷积神经网络(cnns),比如vgg, resnet都是由简单的cnn调整,组合而来。 (1)cnn 。
图中,一个stage中的一个cnn,通常会由三种映射空间组成:
输入映射空间(input maps volume)特征映射空间(feature maps volume)池化映射空间(pooled maps volume) 。
(2)卷积 。
注意卷积层的kernel可能不止一个,扫描步长,方向也有不同,进阶方式如下:
可以采用多个卷积核,设为n 同时扫描,得到的feature map会增加n个维度,通常认为是多抓取n个特征。可以采取不同扫描步长,比如上例子中采用步长为n, 输出是(510/n,510/n)padding,上例里,卷积过后图像维度是缩减的,可以在图像周围填充0来保证feature map与原始图像大小不变深度升降,例如采用增加一个1*1 kernel来增加深度,相当于复制一层当前通道作为feature map跨层传递feature map,不再局限于输入即输出, 例如resnet跨层传递特征,faster rcnn 的poi pooling (3)激活 。
(4)池化 。
(5)全连接网络 。
出现在cnn中的全连接网络(fully connected network)主要目的是为了分类, 这里称它为network的原因是,目前cnns多数会采用多层全连接层,这样的结构可以被认为是网络。如果只有一层,下边的叙述同样适用。它的结构如下:
(6)目标函数和训练方法 。
到此这篇关于python中人脸图像特征提取方法(hog、dlib、cnn)简述的文章就介绍到这了,更多相关python人脸图像特征提取内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://blog.csdn.net/weixin_45137708/article/details/107110857 。
最后此篇关于Python中人脸图像特征提取方法(HOG、Dlib、CNN)简述的文章就讲到这里了,如果你想了解更多关于Python中人脸图像特征提取方法(HOG、Dlib、CNN)简述的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我打算将 hog 特征描述符与 SVM 分类器结合用于对象检测项目。 scikit-image 中提供的 hog 在分类阶段产生了非常好的结果。但是,它运行得非常慢(手头每张图像 20 秒)。另一方面
在 OpenCV 中,有一个 CvSVM 类,它接受样本矩阵来训练 SVM。矩阵是二维的,样本在行中。 我创建了自己的方法来根据视频源生成定向梯度 (HOG) 直方图。为此,我创建了一个 9 chan
我有一段 MATLAB 代码,它从图像中提取一个 91x91 的像素 block ,然后用苹果 HOG 提取其特征向量。我想用 Python 重写函数。我一直在努力寻找如何在 Python 中获得与在
使用时从图像中提取HOG功能时 bin_n = 16 # Number of bins def hog(img): gx = cv2.Sobel(img, cv2.CV_32F, 1, 0)
在 openCV 中似乎没有任何 HOG 训练的实现,关于 HOG 训练如何工作的资料也很少。根据我收集到的信息,HOG 训练可以实时完成。但是培训的要求是什么?培训过程实际上是如何进行的? 最佳答案
我们有一个项目可以从图像中识别 Logo 。我们最初使用 Haar 分类器,但训练 Haar 分类器需要很多时间(在我们的 Core i5 机器上每个 Logo 需要 4 天)。为 300 多个 Lo
我在试图理解本文中 HOG 特征的大小时感到困惑。 Mid-level Elements for Object Detection. .在Dalal的工作中,一个64*128像素的窗口是由一个4*9*
我想检测显微镜图像细胞内的物体。我有很多带注释的图像(大约 50,000 张带有对象的图像和 500,000 张没有对象的图像)。 到目前为止,我尝试使用 HOG 提取特征并使用逻辑回归和 Linea
我正在从事杂草检测工作。我已经开始从 HoG 描述符中提取特征。正如从 HoG 文献中研究的那样,HoG 不是旋转不变的。我总共有 18 张草类杂草的图像,有两类。在我的训练和测试数据库中,我将每个图
我正在从事杂草检测工作。我已经开始从 HoG 描述符中提取特征。正如从 HoG 文献中研究的那样,HoG 不是旋转不变的。我总共有 18 张草类杂草的图像,有两类。在我的训练和测试数据库中,我将每个图
根据HOG过程,如论文人体检测定向梯度直方图(请参阅下面的链接)中所述,对比度归一化步骤在合并和加权投票后完成。 我一无所知-如果我已经计算了像元的加权梯度,那么图像对比度的标准化现在对我有什么帮助?
我无法理解 HOG 特征向量的大小... 场景:我拍摄了一张 286x286 图像。然后我计算了每个 8x8 补丁的 HOG。这意味着我得到了 8x8x2=128 个数字,由每个补丁的 9 bin 直
我从 hog.compute 函数中提取了特征,然后使用这些特征来训练 SVM 分类器。我使用了在网上找到的一个脚本来从分类文件中分离出 rho 和支持向量。 tree = ET.parse('svm
我是使用 HOG 检测器检测路上行人的新手,我已经编写了代码并尝试运行它,但它总是在这一行出现错误:“hog.setSVMDetector(HOGDescriptor: :getDefaultPeop
跟踪对象时,我希望能够在遮挡后重新检测到它。 在 OpenCV 3.4.5 (C++) 上,我尝试了模板匹配和光流分割。但是现在,我想使用 HOG 描述符实现更稳健的算法。 我举了一个小例子来说明这个
在谈论 Linux 内核时,“stack hog”是什么意思? 我在一些 Linux 内核书籍(Wolfgang Mauerer 的 Professional Linux Kernel Archite
在我的应用程序中,我必须使用静态摄像头跟踪大学讲座中的讲师。目前我正在使用 Emgu CV 的默认 GPUHOGDescriptor,如果讲师的整个 body 都可见,它会很好用。在讲师站在 tabl
我正在研究真菌孢子检测。我有大约 359 张正图像(真菌颗粒的裁剪图像)和 171 张负图像(灰尘颗粒的裁剪图像)。 pos/nag 图像的实际大小与粒子大小相同,约为 8x8,但对于 SVM 训练,
我已经使用 HOG 实现了汽车检测器,目前工作正常。不幸的是,我对分类器有很多误报。 到目前为止我做了什么 我将样本的比率(正:负)从 1:1 更改为 1:3 并将误报率降低到一定程度。有人可以帮助减
我有 5000 张图像,每张图像可以生成一个大约 1000 维的向量(hog 特征),但是有些图像非常相似,所以我想删除相似的图像。有办法实现吗? ==========================
我是一名优秀的程序员,十分优秀!