バイナリロバスト独立基本機能(「BRIEF」)の理解


14

Briefアルゴリズムの記述子はどのように相互に一致しますか?

テンプレート画像は別の画像でどのように見つかりますか?記述子をどのように比較しますか?私はその記事を読みましたが、彼らがそれをどのように行ったか理解していませんでした。

彼らは、ハミング距離を使用して記述子を比較したと書いていますが、照明、サイズなどの変化に対する不変性はどのように達成されますか?

回答:


15

まず、このペーパーには「テンプレート」というものはありません。「テンプレート」という言葉は、コンピュータビジョンでは異なる意味を持っています。

このホワイトペーパーで使用されている方法は、比較的簡単です。分解させてください。ローカル機能を使用して、オブジェクト認識、画像マッチング、画像ステッチなどのタスクを実行するときに実行する必要がある3つの重要なことがあります

最初の重要なことは検出です; このステップでは、関心のあるポイントまたはキーポイントを検出します。それは、画像内で興味深いと思われるローカルポイント(基本的に小さなパッチ)を選択することを意味します。この論文はこの分野では貢献していません。ただし、彼らはSURF特徴検出器とCenSurEキーポイントを使用しているようです(詳しく知りたい場合は検索できますが、グラデーションなどの機能を使用することを除いて、この手順については説明しません。つまり、写真がある場合、空の真ん中のポイントが関心ポイントとして選択される可能性は低いです。これは、そのポイントの周囲のピクセルがすべて同じ強度であるためです。「忙しい」ものが関心ポイントとして選択される傾向があります(例:テーブル/建物の端/角))。

検出後、機能の説明続きます。画像内の興味深いポイントを知っているので、それらを説明します(基本的には、興味深いポイントの周りのポイント/パッチを説明します)。SIFTは一般的な機能記述子の1つです。この論文では、Briefと呼ばれる新しい論文を考案しました。Briefは比較に基づいているため、パッチ(50ピクセルx 50ピクセル)があるとします。2つのポイントを選択し、2つのポイントの強度を比較します。最初のポイントが2番目のポイントよりも大きい場合、値 ' 1 '、それ以外の場合は' 0 '、多くのペアに対してこれを行い、結果としてブール値の文字列になります。今、大きな問題は「どのようにポイントのペアを選ぶのですか?」です。彼らは論文で5つの方法を説明しました。あなたがすることは、一様に(等しい確率で)-S / 2からS / 2までの点を選択することです、この例では、パッチサイズは50であるため、-25〜25の間のポイントを選択します。0,0座標がパッチの中心にあると仮定します。以下に例を示します。

最初のペアを選択します。各ポイントは(X、Y)座標で構成されているため、最初のポイントのX座標、次に最初のポイントのY座標を均一に選択し、(10、-1)と仮定します。 、2番目のポイント。2番目のポイントのX座標と2番目のポイントのY座標を均一に選択し、(-2,20)と仮定して、各ポイントの強度値を取得し、より大きな強度値を持つものを確認します。 -firstが大きい場合、最初のブール値を「1」に割り当て、そうでない場合は「0」を割り当てます。多くのペアに対してこれを行い、ブール値のベクトルになります。

*非常に重要な点:これが機能するためには、ランダムジェネレーターの前にシード値を指定する必要があると思います。つまり、各パッチに同じ値を選択する必要があります。これは非常に重要です。なぜなら、パッチを比較/一致するときに、まったく同じ方法で選択しないとシステム全体が故障するからです。-うまくいけば、一致するステップを読んだときにこれが理にかなっていると思います。

そのため、検出器によって検出された各関心点に対してそれを行います。各関心点について、ブール値のベクトルを取得します。


2つの画像を一致させるため(3番目のステップ;一致)、もう1つの画像に対してまったく同じことを行い、検出して、Bリーフを使用して説明します。たとえば、各画像に10個の関心点があるとします(各画像で10個の最も興味深い点を取得する場合、これは常に機能します)、Briefを使用して、たとえば50ペアを使用して各パッチを記述します50個のブール値の10個のベクトル。

2つの画像を比較するために、最初の画像の各ベクトルと2番目の画像の各ベクトルの最近傍を見つけます。かなり速いハミング距離、ハミング距離の例を使用します

hammingDistance((0、1、1)、(0、0、0))= 2

hammingDistance((0、1、1)、(0、1、1))= 0

hammingDistance((0、1、1)、(1、0、0))= 3

hammingDistance((0、1、1)、(1、1、1))= 1

基本的に間違った通信の数

役立つことを願っています


どうもありがとう、私はアルゴリズムを理解できました。しかし、アフィン、遠近法の変更、照明の変更はどうですか?照明や遠近法に変化がある場合、ビット文字列は似ていますか?
マキシマス

照明の変化の量がすべてのピクセルで等しい場合、ピクセルごとに異なる場合は機能します(一部のピクセルの照明は増加し、他のピクセルは減少します)、それは問題です。Affinityは(結果に基づいて)うまく機能しているように見えますが、間違いなく動作を停止するポイントに到達します(実際に結果(図3)に表示されます-画像をダウンロードして、Wall 1 | 2、壁1 | 3に対応)。彼らの方法は回転不変ではなく(見にくいことではありません)、彼らはそれを明示的に言及しています。
ロロノアゾロ

説明してくれてありがとう。私は、Brief記述子を非常によく理解しています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.