主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

愿景。CascadeObjectDetector

Viola-Jonesアルゴリズムを使用したオブジェクトの検出

説明

カスケード型オブジェクト検出器は,Viola-Jonesアルゴリズムを使用して人の顔,目,鼻,口,上半身などを検出します。イメージラベラーを使用して,この系统对象で使用するカスタム分類器の学習を行うこともできます。この関数の動作の詳細については,オブジェクトのカスケード検出器の学習を参照してください。

イメージ内の顔の特徴または上半身を検出するには,次の手順を実行します。

  1. 愿景。CascadeObjectDetectorオブジェクトを作成し,そのプロパティを設定します。

  2. 関数と同様に,引数を指定してオブジェクトを呼び出します。

系统对象の機能の詳細については,系统对象とはを参照してください。

作成

説明

探测器=愿景。CascadeObjectDetectorは,Viola-Jonesアルゴリズムを使用してオブジェクトを検出する検出器を作成します。

探测器=愿景。CascadeObjectDetector (模型は,入力文字ベクトル模型によって定義されたオブジェクトを検出するように構成された検出器を作成します。

探测器=愿景。CascadeObjectDetector (XMLFILEは検出器を作成して,XMLFILE入力が指定されたカスタム分類モデルを使用するように構成します。

探测器=愿景。CascadeObjectDetector (名称,值は1つ以上の名前と値のペアを使用してプロパティを設定します。各プロパティ名を引用符で囲みます。たとえば,探测器= vision.CascadeObjectDetector(“ClassificationModel”、“UpperBody”)です。

プロパティ

すべて展開する

特に指定がない限り,プロパティは”調整不可能”です。つまり,オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ,ロックを解除するには関数释放を使用します。

プロパティが”調整可能”の場合,その値をいつでも変更できます。

プロパティ値の変更の詳細については,系统对象を使用したMATLABでのシステム設計を参照してください。

学習済みのカスケード分類モデル。文字ベクトルとして指定します。ClassificationModelプロパティは,検出するオブジェクトのタイプを制御します。既定の設定では,検出器は顔を検出するように構成されています。

この文字ベクトルは,カスタム分類モデルが含まれるXMLファイル,または以下の一覧に示すいずれかの有効なモデルの文字ベクトルに設定できます。関数trainCascadeObjectDetectorを使用して,カスタム分類モデルの学習を行うことができます。この関数は,Haar-like特徴,勾配方向ヒストグラム(猪)またはローカルバイナリパターン(LBP)を使用してモデルを学習させることができます。この関数の使用法の詳細については,オブジェクトのカスケード検出器の学習を参照してください。

分類モデル モデルの学習に使用されるイメージサイズ モデルの説明
“FrontalFaceCART”(既定の設定) 20 [20] 直立で正面に向いた顔を検出します。このモデルは,分類木および回帰木解析(车)に基づく弱分類器で構成されます。これらの分類器は,哈尔特徴を使用して顔の特徴を符号化します。购物车に基づく分類器を使用すると,顔の特徴の高次の依存関係をモデル化できます。[1]
“FrontalFaceLBP” 24 (24) 直立で正面に向いた顔を検出します。このモデルは,決定株に基づく弱分類器で構成されます。これらの分類器は,ローカルバイナリパターン(LBP)を使用して顔の特徴を符号化します。枸杞多糖特徴を使うと,明るさの変動に対するロバスト性が向上します。[2]
“UpperBody” (18 22) 頭と肩の領域として定義される上半身領域を検出します。このモデルは,哈尔特徴を使用して,頭と肩の領域の詳細を符号化します。このモデルでは頭の周りの特徴がより多く使用されるため,頭の向きを変えたり傾けたりする姿勢の変化に対するロバスト性が向上します。[3]
“EyePairBig”
“EyePairSmall”
45 [11]
22 [5]
両目を検出します。“EyePairSmall”モデルの学習には,小さいイメージが使用されます。これにより,“EyePairBig”モデルで検出できるサイズより小さい目を検出できるようになります。[4]
“LeftEye”
“RightEye”
18 [12] 左右の目を個別に検出します。これらのモデルは,決定株に基づく弱分類器で構成されます。これらの分類器は,哈尔特徴を使用して詳細を符号化します。[4]
“LeftEyeCART”
“RightEyeCART”
20 [20] 左右の目を個別に検出します。これらのモデルを構成する弱分類器は,购物车ツリーです。购物车ツリーに基づく分類器は,決定株と比べて,高次の依存関係をより適切にモデル化できます。[5]
“ProfileFace” 20 [20] 直立の横顔を検出します。このモデルは,決定株に基づく弱分類器で構成されます。これらの分類器は,哈尔特徴を使用して顔の詳細を符号化します。
“口” 25 [15] 口を検出します。このモデルは,決定株に基づく弱分類器で構成されます。これらの分類器は,哈尔特徴を使用して口の詳細を符号化します。[4]
“鼻子” (15 18) このモデルは,決定株に基づく弱分類器で構成されます。これらの分類器は,哈尔特徴を使用して鼻の詳細を符号化します。[4]

最小の検出可能なオブジェクトのサイズ。2要素ベクトル[height width] として指定します。オブジェクトが含まれる領域の最小サイズを指定するには、このプロパティをピクセル単位で設定します。値には、モデルの学習に使用されるイメージ サイズ以上のサイズを指定しなければなりません。イメージを処理する前にオブジェクトの最小サイズがわかっている場合には、このプロパティを使用して計算時間を短縮できます。このプロパティに値を指定しない場合、検出器によって分類モデルの学習に使用されるイメージのサイズに設定されます。

検出可能なオブジェクトのサイズの設定とScaleFactorプロパティの設定間における関係の詳細については,アルゴリズムの節を参照してください。

調整可能:是的

最大の検出可能なオブジェクトのサイズ。2要素ベクトル[height width] として指定します。検出する最大オブジェクトのサイズをピクセル単位で指定します。イメージを処理する前にオブジェクトの最大サイズがわかっている場合には、このプロパティを使用して計算時間を短縮できます。このプロパティに値を指定しない場合、検出器によって大小)に設定されます。

検出可能なオブジェクトのサイズの設定とScaleFactorプロパティの設定間における関係の詳細については,アルゴリズムの節を参照してください。

マルチスケールオブジェクト検出のスケーリング。1.0001より大きい値として指定します。スケール係数によって,MinSizeから最大尺寸の範囲で検出解像度がインクリメンタルにスケーリングされます。スケール係数は,次の方法で理想的な値に設定できます。

大小) / (大小)-0.5

検出器は,次の関係を使用して,MinSizeから最大尺寸の範囲の増分で探索領域をスケーリングします。

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

Nは現在の増分(0より大きい整数)で,培训规模は分類モデルの学習に使用されるイメージサイズです。

調整可能:是的

検出しきい値。整数として指定します。しきい値は、オブジェクトの周囲で複数の検出が行われる領域で最終検出を宣言するのに必要な基準を定義します。しきい値を満たす同一場所の検出のグループがマージされ、ターゲット オブジェクトの周りに 1 つの境界ボックスが作成されます。このしきい値を大きくすると、マルチスケール検出段階でターゲット オブジェクトが複数回検出される必要があるため、誤検出を抑えることができます。このプロパティを0に設定すると,すべての検出がしきい値処理やマージ操作なしで返されます。このプロパティは調整可能です。

関心領域の使用。または真正的として指定します。入力イメージ内の四角形の関心領域にあるオブジェクトを検出するには、このプロパティを真正的に設定します。

使用法

説明

bbox=探测器(は,検出されたオブジェクトを含むM個の境界ボックスを定義するM行4列の行列bboxを返します。検出器は,入力イメージに対してマルチスケールオブジェクト検出を実行します。

bbox=探测器(roiは,roiによって指定された四角形の探索領域内のオブジェクトを検出します。この構文を使用するには,“UseROI”プロパティを真正的に設定します。

入力引数

すべて展開する

入力イメージ。グレースケールまたはトゥルーカラー(RGB)として指定します。

分類モデル。文字ベクトルとして指定します。模型入力は,検出するオブジェクトのタイプを示します。有効な模型文字ベクトルには。”FrontalFaceCART'、'UpperBody'、'ProfileFace“などがあります。使用可能なモデルの一覧については,ClassificationModelプロパティの説明を参照してください。

カスタム分類モデル。XMLファイルとして指定します。XMLFILEは,関数trainCascadeObjectDetectorまたはOpenCV(开源计算机视觉)の学習機能を使用して作成できます。XMLFILEがMATLAB®パス上にない場合,このファイルへの絶対パスまたは相対パスを指定しなければなりません。

イメージ内の四角形の関心領域。4要素ベクトル [x y width height] として指定します。

出力引数

すべて展開する

検出。M行4列の要素の行列として返されます。出力行列の各行には,境界ボックスの左上隅とサイズをピクセル単位で指定する4要素ベクトル[x y宽度高度]が含まれます。

オブジェクト関数

オブジェクト関数を使用するには,系统对象™を最初の入力引数として指定します。たとえば,objという名前の系统对象のシステムリソースを解放するには,次の構文を使用します。

发行版(obj)

すべて展開する

一步 系统对象のアルゴリズムの実行
释放 リソースを解放し,系统对象のプロパティ値と入力特性の変更を可能にします。
重置 系统对象の内部状態のリセット

すべて折りたたむ

顔検出器オブジェクトを作成します。

faceDetector = vision.CascadeObjectDetector;

入力イメージを読み取ります。

我= imread (“visionteam.jpg”);

顔を検出します。

bboxes = faceDetector(我);

検出された顔に注釈を付けます。

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

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

体検出器オブジェクトを作成し,プロパティを設定します。

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

入力イメージを読み取り,上半身を検出します。

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

検出された上半身に注釈を付けます。

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

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

アルゴリズム

すべて展開する

参照

Lienhart R., Kuranov A., and V. Pisarevsky《用于快速目标检测的增强分类器检测级联的经验分析》第25届DAGM模式识别学术研讨会论文集。德国马格德堡,2003年。

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

Kruppa H., Castrillon-Santana M.,和B. Schiele。“基于局部上下文的快速和健壮的人脸查找”。《视觉监视与跟踪监视性能评估的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。

[6],“利用简单特征的增强级联快速目标检测”,2001年IEEE计算机学会计算机视觉和模式识别会议论文集,2001。数量:1、pp.511 - 518。

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

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

拡張機能

R2012aで導入