積分チャネル特徴量(ICF )は、 ChnFtrsとも呼ばれ、コンピュータビジョンにおける物体検出手法の一つです。この手法は、積分画像を用いて、複数の登録済み画像チャネルから局所和、ヒストグラム、ハール類似特徴といった特徴を抽出します。この手法は、Dollárらによる歩行者検出の研究において広く活用され、2009年のBMVCで初めて発表されました。[1]
方法の概要
- 線形および非線形変換を使用して、入力画像から複数の登録画像チャネルを計算します。
- 各チャネルから、矩形チャネル領域の合計などの特徴を抽出します。様々なチャネルから抽出された特徴は、積分チャネル特徴と呼ばれます。
- AdaBoost分類器をトレーニングします。Dollárらは、より高速な学習を実現するブースティング手法を使用しましたが、トレーニングはサポートベクターマシンなどの他の利用可能な方法でも行うことができます。
- 最後に、訓練された分類器を使用してオブジェクトを検出する
画像とチャンネル
通常、「チャネル」とは、デジタル画像内のピクセル値を定義する特定の要素を指します。例えば、カラー画像は3つのチャネル(赤、緑、青)の集合体です。画像の色データは、チャネルと呼ばれる3つの値の配列に格納されます。この「チャネル」の定義は様々な分野で広く受け入れられていますが、コンピュータビジョンにおいては、色情報以外の画像の他の特徴を活用できる、より広い定義が存在します。そのような定義の一つでは、チャネルは、出力ピクセルが何らかの線形変換または非変換によって入力ピクセルにマッピングされた、元の画像の位置合わせされたマップを指します。[1]このチャネルの概念によれば、画像のカラーチャネルは、入力画像から一度に1つの特定の色情報点を抽出することによって得られる出力画像として再定義できます。同様に、グレースケール入力画像のチャネルは、グレースケール入力画像と単純に同じです。以下の簡単なMATLAB実装は、入力画像からカラーチャネルとグレースケールチャネルを抽出する方法を示しています。
I = imread ( 'I_RGB.png' ); % 入力カラー画像
% Output_image = color_channel(I),
% ここで、カラーチャンネルは赤、緑、青のいずれかです。3つの出力画像は
、入力画像から以下のように抽出されます。
red_channel = I (:, :, 1 ); green_channel = I (:, :, 2 ); blue_channel = I (:, :, 3 );
% 出力画像 = grayscale_image(I).
% 注: 入力画像 I がすでにグレースケール画像の場合、グレースケール チャンネル
% は単に入力画像と同じになります。つまり、グレー チャンネル = I
gray_channel = rgb2gray ( I );
上記の例から明らかなように、チャネルは、単に元の画像から特定の情報を抽出するか、あるいは入力画像を何らかの形で操作して目的のチャネルを得ることによって生成できる。Dollárらはチャネル生成関数をΩと定義し、これを用いてチャネル(つまり出力画像)を元の画像と以下のように関連付けることができる。[1]
- 𝐶 = Ω(𝐼) 、ここでCはチャネル、Iは入力画像である。
次のセクションでは、Dollárらによる原著論文に記載されている、他の比較的複雑なチャネル タイプについて説明します。一部のチャネルについては、MATLAB 実装を示します。
さまざまなチャネルタイプ
- カラーとグレースケール:前述の通り、画像からカラーチャンネルとグレースケールチャンネルを簡単に抽出できます。カラーチャンネルはRGB、LUV、HSVのいずれかであることに注意してください。LUVカラーチャンネルは、あらゆるカラースペースの中で最も情報量が多いことが示されています。
- 線形フィルタ:これはチャネルを生成するためのシンプルな方法です。画像の様々な側面を捉えることができる様々な線形フィルタがあります。例としては、ガボールフィルタやガウス分布の差(DoG)などが挙げられます。ガボールフィルタとDoGは、画像のエッジ情報とテクスチャ性を捉えます。以下は、MATLABでDoGを実装するためのサンプルコードです。
% 出力画像 = DoG(I)
% 入力画像に適用されたガウス分布の差
H1 = fspecial ( 'gaussian' , 25 , 0.5 ); % 信号 0.5 のガウス分布を作成H2 = fspecial ( 'gaussian' , 25 , 3 ); % 信号 3 のガウス分布を作成DoG_filter = H1 - H2 ; % DoG を作成image = double ( rgb2gray ( imread ( 'RGB_1.jpg' ))); DoG_channel = conv2 ( image , DoG_filter , 'same' ); % 入力画像で DoG を畳み込む
- 非線形チャネル:非線形チャネルは数多く存在します。最も人気のあるのは、Cannyエッジ検出器と勾配振幅です。Cannyはエッジ情報を提供し、勾配振幅はエッジの強度を提供します。
- 点単位変換:その名の通り、点単位変換は個々のピクセルに対して作用します。例としては、対数演算子や指数演算子が挙げられます。対数演算子は輝度の低いピクセルを強調しますが、指数演算子は全く逆の効果をもたらします。
- 勾配ヒストグラム:画像のヒストグラムで、勾配角度によってビンが決定されます。各ピクセルは投票し、重みは勾配の大きさによって決定されます。HOG (方向勾配ヒストグラム)記述子は、DalalとTriggsによって開発された一般的な記述子です。
これらのチャネルは単独でも、相互に組み合わせても使用できることに注意してください。
特徴抽出
入力画像からチャネルを取得すると、これらのチャネルから様々な特徴を抽出することができます。これらの特徴はチャネル特徴と呼ばれ、主に2つのタイプに分類できます。[1]
- 一次チャネル特徴:固定された矩形領域内のピクセルを加算することで、単一チャネルから抽出される特徴。これらはƒ ( C ) と表記される。局所和を画像ピクセルから抽出するよりも、積分画像から抽出する方が計算コストが低いことに注意されたい。実際、Dollárらは特徴抽出の研究において積分画像を用いている。
- 高次チャネル特徴量:2つ以上の一次チャネル特徴量を組み合わせて得られる特徴量。例えば、Haar特徴量など。
積分チャネル機能の実装
ChnFtrs法は、多様なチャネルの豊かさを捉える特徴量をプールすることを可能にする。Dollárらは、二次特徴量による付加価値があまりなかったため、一次特徴量に基づいて実験結果を導いた。[1]チャネルは複数のスケールで再計算され、スケール空間全体を表現できるチャネル特徴量のプールが抽出される。ChnFtrs法の実装ガイドとして使用できるMATLABツールボックスが存在する。さらに、OpenCVにはChnFtrsの完全な実装がある。[2] [3]
パフォーマンス
ChnFtrs のパフォーマンスを調査するために、Dollárらは、まずさまざまなチャネルを個別に使用した場合の有効性を評価しました。調査したチャネルは、方向勾配ヒストグラム(HOG)、勾配ヒストグラム チャネル (Hist)、勾配大きさ (Grad)、カラー チャネル (RGB、HSV、LUV)、およびグレースケール チャネルです。パフォーマンスは、10 - 4 fppw (ウィンドウあたりの偽陽性) の参照ポイントでの歩行者検出率で評価されました。他のチャネルと比較して、HOG が最も有益なチャネルであることが判明しました。HOG の検出率は 89% でした。さらに、カラー チャネル (RGB、HSV、LUV) のうち、LUV は 55.8% で最高の検出率を示しました。グレースケール チャネルは検出率がわずか 30.7% で、最も有益ではありませんでした。次に、彼らはさまざまなチャネルの組み合わせ (提案方法) のパフォーマンスを評価しました。このチャネルの組み合わせは、INRIA および Caltech データセットでの実験でもさらに使用されました。
AdaBoost分類器の学習には、約3万個の一次特徴量が使用されました。ChnFtrs + AdaBoost検出器は、INRIAデータセットとCaltechデータセットの全画像でテストされました。その性能は、最も人気のある手法であるHOGを含む12種類の検出器と比較されました。ChnFtrsはLatSvmを除くすべての検出器よりも優れた性能を示しました。ChnFtrsの検出率は、INRIAデータセットで86%、より難易度の高いCaltechデータセットで60%でした。
さらなる発展
ICF 法 (ChnFtrs) は、Dollar らによって最初に発表されて以来、コンピュータ ビジョンの研究者によって広く活用されてきました。実際、その効率性と妥当なパフォーマンスが実証されているため、現在ではベースライン検出器として使用されています。何人かの著者は、さまざまな方法で特徴プールを拡張するか、分類器を慎重に選択して大規模なデータセットでトレーニングすることで、さらに優れたパフォーマンスを実現しています。Zhang らによる研究でも、歩行者検出用の Informed Haar 検出器の開発で積分チャネル機能を活用しました。[4]彼らは Dollár らと同じチャネルの組み合わせを使用しましたが、ベースラインの ChnFtrs 法よりも約 20% 高いパフォーマンスを実現できました。追加されたパフォーマンスは、検出器に優れた事前知識を提供したためです。[4]また、彼らが Informed Haar-like 特徴を使用したことにも注意が必要です。これは、 [1]で説明されている用語によれば 2 次特徴ですが、Dollárらは.彼らの分析では、二次チャネル特徴を用いても検出率がわずか0.6%しか向上しないことが示されており、一次チャネル特徴のみを用いた結果が実証されている。さらに、Benensonらは、入力画像のサイズ変更を必要とせずに、ベースラインのChnFtrs法の検出速度を向上させることに成功した。[5]
ChnFtrsは、複数のチャネルから特徴を抽出できる汎用的な手法であり、単一の入力画像から多様な情報を取得することができます。Dollárらによって開発されたベース検出器の性能は、より優れた事前知識と、より大規模なデータセットを用いた学習によって向上することが示されています。
参考文献
- ^ abcdef P. Dollar、Z. Tu、P. Perona、S. Belongie「統合チャネル機能」、BMVC 2009
- ^ “Piotr's Matlab Toolbox”. 2015年11月28日時点のオリジナルよりアーカイブ。2015年12月26日閲覧。
- ^ 「Integral Channel Features Detector — OpenCV 3.0.0-dev ドキュメント」。
- ^ ab S. Zhang, C. Bauckhage, A. Cremers. 情報に基づくHaar-like特徴による歩行者検出の改善. Computer Vision and Pattern Recognition (CVPR), 2014 IEEE Conference on, 947–954ページ. IEEE, 2014
- ^ R. Benenson、M. Mathias、R. Timofte、LV Gool. 100フレーム/秒での歩行者検出。CVPR、2012年