主要内容

愿景。PeopleDetector

使用HOG特征检测直立的人

描述

人检测对象使用定向梯度直方图(Histogram of Oriented Gradient, HOG)特征和训练有素的支持向量机(Support Vector Machine, SVM)分类器来检测输入图像中的人。万博1manbetx该物体检测处于直立位置的未被遮挡的人。

在图像中检测人:

  1. 创建愿景。PeopleDetector对象,并设置其属性。

  2. 使用参数调用对象,就像调用函数一样。

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?

创建

描述

例子

peopleDetector=愿景。PeopleDetector返回一个人员检测器对象,peopleDetector,它跟踪视频中的一组点。

peopleDetector=愿景。PeopleDetector (模型创建一个人员检测器对象并设置ClassificationModel财产模型

peopleDetector=愿景。PeopleDetector (名称,值使用一个或多个名称-值对设置属性。将每个属性名用引号括起来。例如,peopleDetector = vision.PeopleDetector(“ClassificationModel”、“UprightPeople_128x64”)

属性

全部展开

除非另有说明,属性是nontunable,这意味着您不能在调用对象之后更改它们的值。对象在调用时锁定,而释放函数打开它们。

如果一个属性是可调,您可以随时更改它的值。

有关更改属性值的更多信息,请参见在MATLAB中使用系统对象进行系统设计

分类模型名称,指定为“UprightPeople_128x64”“UprightPeople_96x48”.像素维数表示用于训练的图像大小。

用于训练模型的图像包括人周围的背景像素。因此,被检测人的实际尺寸小于训练图像的尺寸。

人的分类阈值,指定为非负标量值。在多尺度检测中,利用该阈值来控制单个图像子区域的分类。阈值控制子区域是否被分类为一个人。当有很多错误检测时,可以增加这个值。阈值越高,对分类的要求越严格。改变阈值范围以找到数据集的最优值。典型值范围为04

可调:是的

包含一个人的最小区域,以像素为单位指定为双元素向量,[高度宽度].将此属性设置为包含人员的最小大小区域。您可以在设置此属性时减少计算时间。为此,将该属性设置为大于用于训练分类模型的图像大小的值。当您不指定此属性时,检测器将其设置为用于训练分类模型的图像大小。

可调:是的

包含一个人的最大区域,以像素为单位指定为双元素向量,[高度宽度].将此属性设置为包含人员的最大区域。您可以在设置此属性时减少计算时间。为此,将此属性设置为小于输入图像大小的值。当您没有指定此属性时,检测器将其设置为输入图像的大小。此属性是可调的。

多尺度对象检测缩放,指定值大于1.0001.尺度因子递增地缩放之间的检测分辨率MinSize最大尺寸.你可以使用以下方法将比例系数设置为一个理想值:

大小) / (大小)-0.5

该对象计算每一增量的检测分辨率。

TrainingSize*(ScaleFactorN))

在这种情况下TrainingSize(128 64)“UprightPeople_128x64”模型和[96 48]“UprightPeople_96x48”模型。N是增加的。减小比例因子可以提高检测精度。然而,这样做会增加计算时间。此属性是可调的。

以像素为单位的检测窗口步幅,指定为标量或双元素向量,[xy].检测器使用窗口步幅来在图像上滑动检测窗口。当您将此值指定为向量时,第一个和第二个元素是xy的方向。当您将此值指定为标量时,两者的步幅是相同的xy.减小窗幅可以提高检测精度。然而,这样做会增加计算时间。加大窗户的跨度[8]可能导致更多的漏检。此属性是可调的。

合并检测控制,指定为真正的.此属性控制是否合并类似的检测。将此属性设置为真正的使用基于均值移位的算法合并边界框。将此属性设置为输出未合并的边界框。

要获得合并参数的更多灵活性和控制,可以使用selectStrongestBbox函数代替MergeDetections算法。要做到这一点,设置MergeDetections财产.看到从行驶中的汽车中追踪行人示例,它展示了人员检测器和selectStrongestBbox函数。

使用感兴趣的区域,指定为真正的.将此属性设置为真正的检测输入图像中感兴趣的矩形区域内的目标。

使用

描述

例子

bboxes= peopleDetector (对输入图像进行多尺度目标检测,并返回一个4矩阵定义边界框。表示检测到的人数。输出矩阵的每一行,BBOXES,包含四个元素的向量,[xy宽高)。这个向量以像素为单位指定边界框的左上角和大小。当没有人被发现的时候一步方法返回一个空向量。输入图像,,必须是灰度或真彩色(RGB)图像。

bboxes分数) = peopleDetector (另外,返回检测的置信度值。

___) = peopleDetector (roi检测矩形搜索区域内的人,roi

输入参数

全部展开

输入图像,指定为灰度或真彩色(RGB)。

图像内感兴趣的矩形区域,指定为四元素向量,[xy宽度高度].

分类模型,指定为“UprightPeople_128x64”“UprightPeople_96x48”

输出参数

全部展开

人员检测对象,作为对象返回。检测器使用定向梯度直方图(Histogram of Oriented Gradient, HOG)特征和训练过的SVM分类器来检测输入图像中的人。该物体检测处于直立位置的未被遮挡的人。

对象的功能

要使用对象函数,请指定System对象™作为第一个输入参数。例如,释放名为system的对象的系统资源obj,使用下面的语法:

发行版(obj)

全部展开

一步 运行系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 使内部状态复位系统对象

例子

全部折叠

创建一个人员检测器并加载输入图像。

peopleDetector = vision.PeopleDetector;我= imread (“visionteam1.jpg”);

使用人员检测对象检测人员。

[bboxes,分数]= peopleDetector(我);

注释中发现的人。

我= insertObjectAnnotation (,“矩形”bboxes,分数);图中,imshow (I)标题(“被发现的人和被发现的分数”);

图中包含一个轴对象。标题为“检测到的人”和“检测分数”的轴对象包含一个类型为“图像”的对象。

参考文献

达拉尔,N.和B.特里格斯。《面向人类检测的梯度直方图》IEEE计算机视觉与模式识别会议论文集, 2005年6月,第886-893页。

扩展功能

介绍了R2012b