イメージの内容を検出したい場合は、実行する必要があるのは イメージがシャツかパンツかを調べることです。オブジェクトイメージ内のオブジェクトを識別するための検出
iが与えられた画像がTシャツであることを私が結果を必要な形状を比較することに基づいて、次に をTシャツの画像を提供する場合
私が試したのはHarrカスケーディングですが、正しい出力が得られませんでした。このサンプルサイズrequriedが大きすぎます
イメージの内容を検出したい場合は、実行する必要があるのは イメージがシャツかパンツかを調べることです。オブジェクトイメージ内のオブジェクトを識別するための検出
iが与えられた画像がTシャツであることを私が結果を必要な形状を比較することに基づいて、次に をTシャツの画像を提供する場合
私が試したのはHarrカスケーディングですが、正しい出力が得られませんでした。このサンプルサイズrequriedが大きすぎます
あなたが探しているものはこれです。それが問題
対象のオブジェクトのみを含むイメージを分離したいと仮定した場合、イメージがSVMまたは他の分類子で分類されたフィーチャのセットとして提示されるBOW(ビジュアルワードのバッグ)を使用できます。
フィーチャディテクタ+ディスクリプタ+クラシファイア(SURF + SVMなど)を使用することもできます。 現在、より堅牢で高速な機能検出器がありますが...
トレーニングプロセスを回避するために、テンプレートマッチング(アウトラインごと)を使用することもできます。 は、そのようなアルゴリズムは上に設けられている。 Fast template matching - Codeproject
それはスライディングウィンドウ検出をemloys +それはトレードオフ性能とロバスト性との間のある段階を含んでいるようハールカスケードは、同様に他のコンテンツを含む画像内のオブジェクトの検出のために使用されています - 彼らは速いですが、いくつかのオブジェクトが見逃される可能性があります。なぜなら、各ステージにはミス分類誤差が蓄積しやすいからです。
イメージにオブジェクトが既にセグメント化されている場合は、オブジェクトの対地ピクセルを示すバイナリイメージを作成することができます。
その後、オブジェクトが一般的に回転またはねじれていないと仮定して、単純な機能を使用して分類を行うことができます。例えば、上記の場合、2回のフォアグラウンドピクセルがあるスキャンラインの割合をカウントするだけです。シャツの場合、これは低い値でなければならず、ズボンの場合は高くなければなりません。
明らかに、与えられた画像例が実際に解決しようとしている問題を代表していない場合、これはうまくいかないでしょう。
EDIT:いくつかの例MATLABコード:
function ratio=TwoRunFeature(I)
g=rgb2gray(I);
b=imdilate(g<255,ones(5));
d=abs(imfilter(b,[-1 1]));
runs=sum(d,2);
ratio=sum(runs==2)/sum(runs==1);
end
function TestImage(name)
I=imread(name);
fprintf('%s: %f\n',name,TwoRunFeature(I));
end
TestImage('pants.jpg');
TestImage('shirt.jpg');
プリント:
pants.jpg: 1.947977
shirt.jpg: 0.068627
パンツは、低高の数字やシャツを提供します。あなたが欲しいと思っている場所にちょうどしきい値があり、あなたは完了です
私はこれらの2つのイメージは、あなたが持っているデータベースのものであると仮定します。 私の経験から、このような画像にフィーチャー(ローカル記述子)を適用すると、セグメンテーションや背景をユニカラーに設定するため、一種の人工的なフィーチャーが作成されます。 2つ目の重要な点は、これらのイメージが異なる色やテクスチャを持ち、検出されたフィーチャのほとんどがオブジェクト内の領域から来ることです。これらの地域は重要ではなく、分類とは関係がありません。 しかし、セグメント化されたイメージを持つことは、問題をはるかに簡単にするはずです。 あなたのケースに最適な最も簡単な解決策: 1.画像をグレースケールに変換してから、しきい値でバイナリに変換します。 2.画像を逆転させるので、背景は黒で、オブジェクトは白です。 3.穴を埋める:オブジェクト内の画像の一部が白い場合、穴が発生します。 4.境界のみを検出します。 I = dilated IBinary - IBinary 5.境界線のサンプル: サイズが4x4の各ウィンドウ内で0以外のピクセルを1つだけ選択します。 6.次のステップは、Shapeコンテキスト記述子:を使用して画像を記述することです。 7.ビジュアルワードまたはスパースコーディングのバッグを使用して、イメージを再表現します。 8.豊富な表現を得るための最大プール。 9- SVM
こんにちはDajuricをsovleするのに役立ちます :テンプレートマッチングはここで行うのでしょうか? bezそれは同じ画像でのみ動作しますか?ここで確認することを意味しますhttp://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html – usernan
SURF + SVM – usernan
複数のインスタンステンプレートを作成できる別のタイプのテンプレートマッチングです。記事(リンク)をご覧ください。 – dajuric