主要内容

愿景。PeopleDetector

使用HOG特征检测正直的人

描述

人物检测器对象使用面向梯度直方图(HOG)特征和训练过的支持向量机(SVM)分类器检测输入图像中的人物。金宝app该物体可以检测到处于直立位置的未受遮挡的人。

在图像中发现人:

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

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

有关系统对象如何工作的详细信息,请参见什么是系统对象?

创建

描述

例子

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].检测器使用窗口步幅在图像上滑动检测窗口。对象中的步幅大小是指定此值为向量时的第一个和第二个元素x而且y的方向。当您将此值指定为标量时,两者的步幅是相同的x而且y.减小窗口跨距可以提高检测精度。然而,这样做会增加计算时间。增加窗口的跨步[8]会导致大量漏检。此属性是可调的。

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

要获得更大的灵活性和合并参数的控制,可以使用selectStrongestBbox函数代替MergeDetections算法。要执行此操作,请设置MergeDetections财产.看到从移动的汽车中跟踪行人示例,其中显示了人员检测器和selectStrongestBbox函数。

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

使用

描述

例子

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

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

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

输入参数

全部展开

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

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

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

输出参数

全部展开

对象,作为对象返回。检测器使用定向梯度直方图(HOG)特征和训练好的SVM分类器检测输入图像中的人。该物体可以检测到处于直立位置的未受遮挡的人。

对象的功能

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

发行版(obj)

全部展开

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

例子

全部折叠

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

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

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

[bboxes,scores] = peopleDetector(I);

注释检测到的人。

I = insertObjectAnnotation(I,“矩形”bboxes,分数);图,imshow(I) title(“检测到的人员和检测分数”);

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

参考文献

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

扩展功能

版本历史

在R2012b中引入