2017-02-27 19 views
0

matlabのcomputer vision system toolboxに実装された関数bagoffeaturesに問題があります。bagoffeaturesは異なる種類の機能を抽出します

私はdiffenretsカスタム抽出器でbagoffeaturesを使用しようとしていますが、まず2つのブランチで自分の作品を分割したい、最初にSURFpointを抽出して3を抽出したいと考えています。私は私のカスタム抽出に次の行を使用する場合の記述子の異なる種類は、例えば、SURF BRISKとFREAKために、:

features = extractFeatures(grayImage,multiscaleGridPoints,'Upright',true, 'method', 'SURF'); 

をそれはオールウェイズSURFメソッドが動作するように取得する必要がありますが、私は貴様の種類を取得できるようにする必要がありますディスクリプタの

コンピュータビジョンシステムツールボックスの機能の機能バッグを使用できますか?またはsurffeature抽出のみをサポートしていますか?

+0

文書を読んだことがありますか?そこにはっきりしていないものがありますか? –

+0

はい、ドキュメントを読んで、関数をテストして解決策を探しましたが、別のタイプのディスクリプタを抽出できるかどうかを誰かが知っているかどうかを知りたいだけです。 –

+0

あなたはそれを読まなかった。ドキュメンテーションの2行目:* bag = bagOfFeatures(imds、 'CustomExtractor'、extractorFcn)はカスタムフィーチャー抽出機能を使用してビジュアルボキャブラリーを学習するために出力バッグからフィーチャーを抽出するフィーチャーバッグを返します。 extractorFcnは、カスタムフィーチャ抽出関数の関数ハンドルです。* –

答えて

0

残念ながら、bag-of-featuresアルゴリズムはK-meansクラスタリングを使用して「ビジュアルワード」を作成するため、MATLABのbag-of-features実装ではBRISKまたはFREAKを使用できません。問題は、BRISKとFREAKディスクリプタはバイナリのビット列であり、実数値のベクトルのみで動作するK-meansでクラスタリングできないということです。

MATLABのフレームワークでは、さまざまな種類の関心点検出器を使用できます。しかし、あなたは実数ベクトルである記述子に限られています。だからSURFとSIFTは動作しますが、BRISKとFREAKは動作しません。 BRISKとFREAKを絶対に使用する必要がある場合は、独自の機能のバッグを実装する必要があります。バイナリ記述子をクラスタ化するにはいくつかの方法がありますが、どれが機能の袋のコンテキストでどれくらいうまく動作しているかわかりません。

+0

私の問題を解決するために私自身の言葉を実装するべきでしょうか?画像をさまざまな方法で分類するために、さまざまな種類の検出器と抽出器を組み合わせる必要があります。 –

+0

私は自分の答えを編集しました。 – Dima

+0

答えをいただきありがとうございます。この2つのディスクリプタを使用するのに特に必要はありませんが、コンピュータ視覚ツールボックスを使用したいので、2つのタイプのテストを試みます:高速のkeyPointを取得し、SURF、BRISK、 2番目はSURFキーポイントを取得し、SURF BRISKとFREAK記述子を使用します。私は自分のバッグを実装しようとするでしょう、あなたの答えをありがとう、ありがとう –

関連する問題