vision.PeopleDetector

使用猪的特征检测直立的人

描述

人检测器对象使用直方图的方向梯度(HOG)特征和训练好的支持向量机(SVM)分类器在输入图像中检测人。万博1manbetx这个物体可以检测处于直立位置的人。

检测图像中的人物:

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

  2. 调用对象的参数,就好像它是一个函数。

有关系统对象如何工作的更多信息,请参见什么是系统对象?(MATLAB)。

创建

描述

例子

peopleDetector= vision.PeopleDetector返回人员检测器对象,peopleDetector,它在视频中跟踪一组点。

peopleDetector= vision.PeopleDetector (模型)创建人员检测器对象并设置ClassificationModel财产模型

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

属性

全部展开

属性,除非另有注明nontunable,这意味着您不能在调用对象后更改它们的值。对象锁当你叫他们,释放函数打开它们。

如果一个属性可调,您可以在任何时候更改其值。

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

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

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

人员分类阈值,指定为一个非负标量值。在多尺度检测中,利用该阈值控制图像子区域的分类。阈值控制是否将子区域分类为person。当存在许多错误检测时,可以增加此值。阈值越高,分类的要求就越严格。在一定范围内改变阈值以找到数据集的最佳值。典型值的范围为04

可调:是的

包含一个人,以像素为单位指定作为两元件矢量最小区域,[高度宽度]。将此属性设置为包含人的最小尺寸的区域。设置此属性可以减少计算时间。要做到这一点,该属性设置为用于训练分类模型的图像大小的值。如果不指定此属性,探测器将其设置为用于训练分类模型的图像尺寸。

可调:是的

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

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

大小()/ (大小() - - -0.5)

对象计算每个增量检测分辨率。

回合(TrainingSize* (ScaleFactorN))

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

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

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

对于合并参数的更灵活和控制,可以使用selectStrongestBbox代替的函数MergeDetections算法。为此,设置MergeDetections财产。看到从移动的汽车上跟踪行人示例,其中展示了人员检测器和selectStrongestBbox函数。

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

使用

描述

例子

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

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

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

输入参数

全部展开

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

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

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

输出参数

全部展开

人员检测器对象,作为对象返回。该检测器利用梯度方向直方图(HOG)特征和经过训练的SVM分类器在输入图像中检测人。这个物体可以检测处于直立位置的人。

对象的功能

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

发行版(obj)

全部展开

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

例子

全部折叠

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

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

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

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

注释中发现的人。

我= insertObjectAnnotation (,“矩形”bboxes,分数);图中,imshow (I)标题(“检测到的人与检测分数”);

参考

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

扩展功能

介绍了R2012b