このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
trainACFObjectDetector
ACF オブジェクト検出器に学習させる
構文
説明
は、学習済みの集合チャネル特徴 (ACF) オブジェクト検出器を返します。この関数は、table またはデータストアに格納され detector
= trainACFObjectDetector(trainingData
)trainingData
で指定されたイメージ内のオブジェクトの陽性インスタンスを使用します。この関数は、学習中にイメージから陰性インスタンスを自動的に収集します。グラウンド トゥルース table を作成するには、イメージ ラベラーまたはビデオ ラベラー アプリを使用します。
は、前の構文にある引数の任意の組み合わせに加えて、名前と値の引数を 1 つ以上使用してオプションを指定します。たとえば、detector
= trainACFObjectDetector(trainingData
,Name=Value
)ObjectTrainingSize=[100,100]
は、学習中のオブジェクトの高さと幅を設定します。
例
ACF オブジェクト検出器を使用した一時停止標識検出器の学習
trainACFObjectDetector
と学習イメージを使用して、一時停止標識を検出できる ACF オブジェクト検出器を作成します。検出器を個別のイメージでテストします。
学習データを読み込みます。
load('stopSignsAndCars.mat')
一時停止標識のイメージの前に絶対パスを付けます。
stopSigns = fullfile(toolboxdir('vision'),'visiondata',stopSignsAndCars{:,1});
データストアを作成して、一時停止標識のグラウンド トゥルース データを読み込みます。
imds = imageDatastore(stopSigns); blds = boxLabelDatastore(stopSignsAndCars(:,2));
イメージ データストアとボックス ラベル データストアを組み合わせます。
ds = combine(imds,blds);
ACF 検出器に学習させます。各ステージで使用するネガティブ サンプルの数を 2
に設定します。Verbose=false,
を Name-Value
の引数として指定することで、学習プロセスの出力をオフにできます。
acfDetector = trainACFObjectDetector(ds,NegativeSamplesFactor=2);
ACF Object Detector Training The training will take 4 stages. The model size is 34x31. Sample positive examples(~100% Completed) Compute approximation coefficients...Completed. Compute aggregated channel features...Completed. -------------------------------------------- Stage 1: Sample negative examples(~100% Completed) Compute aggregated channel features...Completed. Train classifier with 42 positive examples and 84 negative examples...Completed. The trained classifier has 19 weak learners. -------------------------------------------- Stage 2: Sample negative examples(~100% Completed) Found 84 new negative examples for training. Compute aggregated channel features...Completed. Train classifier with 42 positive examples and 84 negative examples...Completed. The trained classifier has 20 weak learners. -------------------------------------------- Stage 3: Sample negative examples(~100% Completed) Found 84 new negative examples for training. Compute aggregated channel features...Completed. Train classifier with 42 positive examples and 84 negative examples...Completed. The trained classifier has 54 weak learners. -------------------------------------------- Stage 4: Sample negative examples(~100% Completed) Found 84 new negative examples for training. Compute aggregated channel features...Completed. Train classifier with 42 positive examples and 84 negative examples...Completed. The trained classifier has 61 weak learners. -------------------------------------------- ACF object detector training is completed. Elapsed time is 27.5907 seconds.
ACF 検出器をテスト イメージでテストします。
img = imread('stopSignTest.jpg');
[bboxes,scores] = detect(acfDetector,img);
検出結果を表示し、オブジェクトの境界ボックスをイメージに挿入します。
for i = 1:length(scores) annotation = sprintf('Confidence = %.1f',scores(i)); img = insertObjectAnnotation(img,'rectangle',bboxes(i,:),annotation); end figure imshow(img)
入力引数
trainingData
— ラベル付きのグラウンド トゥルース
データストア | table
ラベル付きのグラウンド トゥルース。データストアまたは table として指定します。
データストアを使用する場合は、関数
read
および関数readall
を使用してデータストアを呼び出すと、cell 配列か、列が少なくとも 2 つある table が返されるよう、データを設定しなければなりません。この表は、列に含まれるデータを示しています。Images boxes labels (optional) グレースケールまたは RGB イメージの cell ベクトル。
[x, y, width, height] の形式の境界ボックスで構成される M 行 4 列の行列。ここで、[x,y] は境界ボックスの左上の座標を表します。
オブジェクト クラス名を含む M 要素の categorical ベクトルを含む cell 配列。データストアが返すすべての categorical データには、同じカテゴリが含まれていなければなりません。
このデータを与えると、関数はクラス ラベルを使用して、
acfObjectDetector
オブジェクトとして指定された学習済みの検出器のModelName
プロパティを埋めます。それ以外の場合、ACF オブジェクト検出器は単一クラスの検出器であるため、学習にクラス ラベルは必要ありません。table を使用する場合、table は 2 列以上でなければなりません。table の最初の列には、パスを含むイメージ ファイル名が含まれていなければなりません。イメージは、グレースケールまたはトゥルーカラー (RGB) でなければならず、
imread
でサポートされている任意の形式を指定できます。残りの各列は、vehicle、flower、stop sign などの単一のオブジェクト クラスを表す M 行 4 列の行列を含む cell ベクトルでなければなりません。これらの列には、[x,y,width,height] 形式の、M 個の境界ボックスの 4 要素 double 配列が含まれます。この形式は、対応するイメージでの境界ボックスの左上隅の位置とサイズを指定します。グラウンド トゥルース table の作成には、イメージ ラベラーアプリまたはビデオ ラベラー アプリを使用できます。生成されたグラウンド トゥルースから学習データの table を作成するには、関数objectDetectorTrainingData
を使用します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: ObjectTrainingSize=[100,100]
は、学習中のオブジェクトの高さと幅を設定します。
ObjectTrainingSize
— 学習中のオブジェクトのサイズ
'Auto'
(既定値) | 2 要素ベクトル
学習中のオブジェクトのサイズ。ピクセル単位の [height width] の形式の 2 要素ベクトルとして指定します。最小の学習サイズは [8 8]
です。学習プロセス中に、オブジェクトは 'ObjectTrainingSize'
で指定された高さと幅にサイズ変更されます。サイズを大きくすると検出精度が向上する可能性がありますが、学習時間と検出時間も長くなります。
'Auto'
を指定する場合、サイズは陽性インスタンスの幅と高さの比率の中央値に基づいて設定されます。
例: [100,100]
データ型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
NumStages
— 学習ステージ数
4
(既定値) | 正の整数
反復学習プロセスを行う学習ステージ数。正の整数として指定します。この数を増加させると学習時間は長くなりますが、検出器が改善し、学習誤差を減らすことができます。
データ型: double
NegativeSamplesFactor
— ネガティブ サンプル係数
5
(既定値) | 実数値のスカラー
ネガティブ サンプル係数。実数値のスカラーとして指定します。各ステージで使用するネガティブ サンプルの数は、次と等しくなります。
NegativeSamplesFactor
× number of positive samples used at each stage
データ型: double
MaxWeakLearners
— 弱学習器の最大数
2048
(既定値) | 正の整数スカラー | 正の整数のベクトル
最後のステージにおける弱学習器の最大数。正の整数スカラーまたは正の整数のベクトルとして指定します。入力がスカラーの場合、MaxWeakLearners
は最後のステージの最大数を指定します。入力がベクトルの場合、MaxWeakLearners
は各ステージの最大数を指定し、'NumStages
' の同じ長さでなければなりません。これらの値は通常、ステージを通じて増加します。ACF オブジェクト検出器は、ブースティング アルゴリズムを使用して弱学習器のアンサンブルを作成します。大きな値を使用すると、検出パフォーマンスの速度が遅くなりますが、検出精度を向上できます。推奨値の範囲は 300 ~ 5000 です。
データ型: double
Verbose
— 進行状況の表示
true
(既定値) | false
学習プロセスの進行状況を表示するオプション。true
または false
として指定します。
データ型: logical
出力引数
detector
— 学習済みの ACF ベースのオブジェクト検出器
acfObjectDetector
オブジェクト
学習済みの ACF ベースのオブジェクト検出器。acfObjectDetector
オブジェクトとして返されます。
参照
[1] Dollar, Piotr, Ron Appel, Serge Belongie, and Pietro Perona. “Fast Feature Pyramids for Object Detection.” IEEE Transactions on Pattern Analysis and Machine Intelligence. 36, no. 8 (August 2014): 1532–45. DOI.org (Crossref), https://doi.org/10.1109/TPAMI.2014.2300479.
バージョン履歴
R2017a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)