主要内容

愿景。PeopleDetector

使用HOG特征检测直立的人

描述

人员检测对象使用直方图的定向梯度(HOG)特征和训练的支持向量机(SVM)分类器来检测输入图像中的人员。该物体检测直立的未封闭的人。

识别:在图像中识别人:

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

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

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

创建

描述

例子

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

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

peopleDetector=愿景。PeopleDetector (名称,值使用一个或多个名称-值对设置属性。将每个属性名称用引号括起来。例如,peopleDetector = vision.PeopleDetector('ClassificationModel',' upightpeople_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”

输出参数

全部展开

人员检测器对象,作为对象返回。该检测器使用定向梯度直方图(HOG)特征和训练好的支持向量机分类器来检测输入图像中的人。该物体检测直立的未封闭的人。

对象的功能

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

发行版(obj)

全部展开

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

例子

全部折叠

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

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

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

[bboxes,scores] = peopleDetector(I);

注释检测到的人员。

I = insertobjectnotation (I,“矩形”bboxes,分数);(1)标题(1)“被检测的人和检测分数”);

图包含一个轴对象。标题为Detected people and detection scores的坐标轴对象包含一个image类型的对象。

参考文献

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

扩展功能

版本历史

在R2012b中引入

Baidu
map