主要内容

愿景。CascadeObjectDetector

使用Viola-Jones算法检测对象

描述

级联对象检测器使用维奥拉-琼斯算法来检测人的脸、鼻子、眼睛、嘴巴或上半身。你也可以使用图片标志训练用于此System对象的自定义分类器。关于该函数的工作原理,请参见开始级联对象检测器

检测:在图像中检测面部特征或上半身:

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

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

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

创建

描述

例子

探测器=愿景。CascadeObjectDetector创建一个检测器来检测使用维奥拉-琼斯算法的对象。

探测器=视觉。CascadeObjectDetector (模型创建一个检测器,配置为检测输入字符向量定义的对象,模型

探测器=视觉。CascadeObjectDetector (XMLFILE属性指定的自定义分类模型,并将其配置为使用XMLFILE输入。

探测器=愿景。CascadeObjectDetector (名称,值使用一个或多个名称-值对设置属性。将每个属性名用引号括起来。例如,检测器= vision.CascadeObjectDetector('ClassificationModel','UpperBody')

属性

全部展开

除非另有说明,属性为nontunable,这意味着在调用对象后不能更改它们的值。对象在调用时锁定,而释放功能解锁它们。

如果属性为可调,您可以随时更改其值。

有关更改属性值的详细信息,请参见使用系统对象的MATLAB系统设计

训练的级联分类模型,指定为一个字符向量。的ClassificationModel属性控制要检测的对象的类型。缺省情况下,检测器配置为人脸检测。

您可以将此字符向量设置为包含自定义分类模型的XML文件,或者将其设置为下面列出的有效模型字符向量之一。类训练自定义分类模型trainCascadeObjectDetector函数。该函数可以使用haar样特征、定向梯度直方图(HOG)或局部二进制模式(LBP)训练模型。该功能的使用方法请参见开始级联对象检测器

分类模型 用于训练模型的图像大小 模型描述
“FrontalFaceCART”(默认) 20 [20] 检测正面和正面。该模型基于分类和回归树分析(CART),由弱分类器组成。这些分类器使用哈尔特征来编码面部特征。基于cart的分类器提供了对面部特征之间的高阶依赖项建模的能力。[1]
“FrontalFaceLBP” 24 (24) 检测正面和正面。该模型由基于决策桩的弱分类器组成。这些分类器使用局部二进制模式(LBP)来编码面部特征。LBP特征可以对光照变化提供鲁棒性。[2]
“UpperBody” (18 22) 检测上半身区域,定义为头部和肩部区域。该模型使用Haar特征对头部和肩部区域的细节进行编码。因为它使用了头部周围的更多特征,所以这个模型对姿态变化(例如头部旋转/倾斜)更加健壮。[3]
“EyePairBig”
“EyePairSmall”
45 [11]
22 [5]
探测到一双眼睛。的“EyePairSmall”模型使用较小的图像进行训练。这使得模型能够检测到比“EyePairBig”模型可以检测。[4]
“LeftEye”
“RightEye”
18 [12] 分别检测左右眼。这些模型由基于决策桩的弱分类器组成。这些分类器使用Haar特性来编码细节。[4]
“LeftEyeCART”
“RightEyeCART”
20 [20] 分别检测左右眼。组成这些模型的弱分类器是cart树。与决策树桩相比,基于cart树的分类器能够更好地建模高阶依赖项。[5]
“ProfileFace” 20 [20] 检测直立面轮廓。该模型由基于决策桩的弱分类器组成。这些分类器使用Haar特征来编码人脸细节。
“口” 25 [15] 检测口腔。该模型由基于决策桩的弱分类器组成,使用Haar特征对口腔细节进行编码。[4]
“鼻子” (15 18) 该模型由基于决策桩的弱分类器组成,使用Haar特征对鼻子细节进行编码。[4]

最小可探测对象的大小,指定为两元素向量[高度宽度].为包含对象的最小大小区域设置此属性,单位为像素。该值必须大于或等于用于训练模型的图像大小。当您在处理图像之前知道最小对象大小时,使用此属性可减少计算时间。如果未为此属性指定值,检测器将其设置为用于训练分类模型的图像的大小。

有关详细说明设置可探测物体的大小与ScaleFactor财产,看到算法部分。

可调:是的

最大可探测对象的大小,指定为两元向量[高度宽度].指定要检测的最大对象的像素大小。当您在处理图像之前知道最大对象大小时,使用此属性可减少计算时间。当您未为此属性指定值时,检测器将其设置为大小).

有关详细说明设置可探测物体的大小与ScaleFactor属性,请参见算法部分。

用于多尺度对象检测的缩放,指定为大于1.0001.缩放因子逐渐缩放之间的检测分辨率MinSize而且最大尺寸.您可以使用以下方法将比例因子设置为理想值:

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

探测器以之间的增量缩放搜索区域MinSize而且最大尺寸使用以下关系:

搜索区域((培训规模) * (ScaleFactorN))

N当前增量是大于零的整数吗培训规模是用于训练分类模型的图像大小。

可调:是的

检测门限,整数形式。阈值定义了在一个对象周围有多个检测的区域中声明最终检测所需的标准。满足阈值的共置检测组被合并,以在目标对象周围生成一个包围框。增加这个阈值可以通过要求在多尺度检测阶段多次检测目标对象来帮助抑制错误检测。当您将此属性设置为0,返回所有检测,不做阈值和合并操作。此属性是可调的。

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

使用

描述

bbox=探测器(返回一个4矩阵,bbox,这就定义了包含被检测对象的包围框。探测器对输入图像进行多尺度物体检测,

bbox=探测器(roi所指定的矩形搜索区域内的对象roi.设置“UseROI”财产真正的使用此语法。

输入参数

全部展开

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

分类模型,指定为字符向量。的模型输入描述要检测的对象类型。有几个有效的模型字符向量,例如'FrontalFaceCART”、“UpperBody'和'ProfileFace”。看到ClassificationModel属性说明以获取可用模型的完整列表。

自定义分类模型,指定为XML文件。的XMLFILE可以使用trainCascadeObjectDetector函数或OpenCV(开源计算机视觉)训练功能。属性的完整路径或相对路径XMLFILE,如果不在MATLAB中®路径。

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

输出参数

全部展开

探测,返回为-by-4元素矩阵。输出矩阵的每一行都包含一个四元素向量,[xy宽度高度,它以像素为单位指定边界框的左上角和大小。

对象的功能

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

发行版(obj)

全部展开

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

例子

全部折叠

创建一个人脸检测器对象。

faceDetector = vision.CascadeObjectDetector;

读取输入图像。

I = imread(“visionteam.jpg”);

检测的面孔。

bboxes = faceDetector(I);

注释检测到的人脸。

IFaces = insertObjectAnnotation(I,“矩形”bboxes,“脸”);图imshow(IFaces)检测到人脸的);

图中包含一个轴对象。标题为Detected faces的axes对象包含一个image类型的对象。

创建身体检测器对象并设置属性。

bodyDetector =视觉。CascadeObjectDetector (“UpperBody”);bodyDetector。MinSize=[60 60]; bodyDetector.MergeThreshold = 10;

读取输入图像并检测上身。

I2 = imread(“visionteam.jpg”);bboxBody = bodyDetector(I2);

注释检测到的上身。

IBody = insertObjectAnnotation(I2,“矩形”bboxBody,“上身”);图imshow(IBody)“检测到上半身”);

图中包含一个轴对象。标题为Detected upper bodies的axis对象包含一个image类型的对象。

算法

全部展开

参考文献

[1] Lienhart R., Kuranov A., and V. Pisarevsky“用于快速目标检测的增强分类器检测级联的实证分析”。第25届DAGM模式识别研讨会论文集。马格德堡,德国,2003年。

[2] Ojala Timo, Pietikäinen Matti,和Mäenpää Topi,“多分辨率灰度和旋转不变纹理分类与局部二进制模式”。在模式分析与机器智能汇刊,2002.第24卷,第7期,971-987页。

[3]克鲁帕H.,卡斯特隆-桑塔纳M.和B.席勒。“通过本地上下文快速而健壮的人脸查找”。关于跟踪和监视的视觉监视和性能评估的联合IEEE国际研讨会论文集, 2003, pp. 157-164。

[4] Castrillón Marco, Déniz Oscar, Guerra Cayetano和Hernández Mario,“ENCARA2:视频流中不同分辨率的多张人脸的实时检测”。金宝搏官方网站在视觉传达与图像表示杂志, 2007 (18) 2: pp. 130-140。

[5]于世奇《眼睛检测》余士奇的主页。http://yushiqi.cn/research/eyedetection。

[6] Viola, Paul和Michael J. Jones,“使用增强的简单特征级联快速目标检测”,2001年IEEE计算机学会计算机视觉和模式识别会议论文集, 2001年。卷:1,第511 - 518页。

[7] Dalal, N.和B. Triggs,“面向人类检测的梯度直方图”。IEEE计算机学会计算机视觉和模式识别会议.卷1,(2005),第886-893页。

[8] Ojala, T., M. Pietikainen,和T. Maenpaa,“多分辨率灰度和旋转不变纹理分类与局部二进制模式”。模式分析与机器智能汇刊.第24卷,2002年7月7日,971-987页。

扩展功能

在R2012a中引入