主要内容

愿景。CascadeObjectDetector

使用Viola-Jones算法检测目标

描述

级联对象检测器使用Viola-Jones算法来检测人脸、鼻子、眼睛、嘴巴或上半身。你也可以用the图片标志训练一个自定义分类这个系统对象使用。有关功能的工作原理,查看详细信息开始使用级联对象检测器

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

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

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

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

创建

描述

例子

探测器=愿景。CascadeObjectDetector创建一个检测器使用堇菜 - 琼斯算法来检测对象。

检测器= vision.CascadeObjectDetector(模型创建检测器,该检测器被配置为检测输入字符向量定义的对象,模型

检测器= vision.CascadeObjectDetector(XMLFILE属性指定的自定义分类模型创建检测器并将其配置为使用XMLFILE输入。

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

特性

展开全部

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

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

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

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

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

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

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

有关详细信息说明设置可检测对象和所述的尺寸之间的关系ScaleFactor财产,看到算法部分。

可调:是的

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

有关详细信息说明设置可检测对象和所述的尺寸之间的关系ScaleFactor物业,看到算法部分。

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

大小) / (大小)-0.5

检测器以中间的增量缩放搜索区域MinSizeMAXSIZE使用以下关系:

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

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

可调:是的

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

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

使用

描述

BBOX=探测器(返回一个4矩阵,BBOX中,定义包含被检测对象的包围盒。检测器对输入图像进行多尺度目标检测,

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

输入参数

展开全部

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

分类模型,指定为字符向量。的模型输入描述对象的检测的类型。有几种有效模型字符向量,如'FrontalFaceCART”、“上半身', 和 'ProfileFace”。看到ClassificationModel可用模型的完整列表的属性描述。

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

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

输出参数

展开全部

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

对象的功能

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

发行版(obj)

展开全部

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

例子

全部折叠

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

faceDetector = vision.CascadeObjectDetector;

读取输入图像。

I = imread('visionteam.jpg');

检测的面孔。

bboxes = faceDetector(我);

注释检测到的面部。

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

图中包含一个轴对象。标题为“检测到的面”的轴对象包含一个类型为image的对象。

创建一个体检测器对象和属性集。

bodyDetector = vision.CascadeObjectDetector('上半身');bodyDetector。MinSize=[60 60]; bodyDetector.MergeThreshold = 10;

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

I2 = imread ('visionteam.jpg');bboxBody = bodyDetector (I2);

注释检测到上半身。

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

图中包含一个轴对象。标题为“检测到的上体”的轴对象包含类型为image的对象。

算法

展开全部

参考文献

[1] Lienhart R.,Kuranov A.,和V. Pisarevsky“为快速目标检测的带动量词的检测瀑布的实证分析”。第25届DAGM模式识别学术研讨会论文集。德国马格德堡,2003年。

[2] Ojala Timo, Pietikäinen Matti, Mäenpää Topi,“基于局部二值模式的多分辨率灰度和旋转不变纹理分类”。在机械工程学报,2002.第24卷第7期971-987页。

[3] Kruppa方程H.,卡斯崔隆-桑塔纳M。,和B.席勒。“速度与强大的通过本地上下文的脸上找到。”视觉监视与跟踪与监视性能评估联合IEEE国际研讨会论文集,2003,页157-164。

[4] Castrillón Marco, Déniz Oscar, Guerra Cayetano, Hernández Mario,“ENCARA2:视频流中不同分辨率的多个面孔实时检测”。万博 尤文图斯在杂志视觉传达和图像表示, 2007(18) 2: 130-140页。

[5]余士奇“眼睛检测。”石漆的主页。http://yushiqi.cn/research/eyedetection。

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

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

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

扩展功能

介绍了R2012a