人工知能に関する断創録スマートフォン用の表示で見るスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。ロボティクス、生物学などに興味を持っています。このブログでは人工知能のさまざまな分野について調査したことをまとめています。Learning、Kerasに関する記事が多いです。SURFの抽出(2009/10/30)のつづき。SURFといった局所特徴量を抽出できるようになったのでここらでそれを応用してみます。特徴点のマッチングを取ることで2つの画像間で対応する場所を求められるようになります。下の例のような感じです。下の図で2つのキーポイント間にひいた直線は、両端のキーポイントの特徴ベクトルが似ている(距離が小さい)ことを表しています。以下、プログラムです。[画像2のファイル名]のように2つの画像ファイルを入力として与えると上のようにマッチング画像が表示されます。0;}画像1(左上の画像)の各キーポイントについて画像2(右下の画像)から最近傍点を検索しています。検索の方法は線形探索で、すべてのキーポイント間で距離を計算して一番近いものを選んでます。そのため、画像1のキーポイント数が800、画像2のキーポイント数が800だとすると全部で800x800=640000回もの距離計算が必要になります。線形探索は非常に効率が悪いので後でさらに高速な検索方法を導入予定です。ここで、SURFはラプラシアンが一致しない点同士は似ていないと判定してよいそうです。勉強中です・・・キーポイント間の距離は特徴ベクトル(128次元)のユークリッド距離(L2ノルム)で測っています。ユークリッド距離がTHRESHOLD(=0.3)以下の場合、対応する点と判断して直線を引いています。実際は、距離の比較なのでユークリッド距離の2乗を使っても問題ありません(閾値は変える必要あり)。大量に距離計算が必要なのでsqrt()を使わずint型で計算したほうが高速かも。(オクルージョン)に対して頑健と言われてます。そんなわけで画像1(左上の画像)を変形してキーポイントのマッチングができるか試してみました。画像をクリックで拡大できます。画像のサイズ変更、回転、隠蔽は下のようなコードでできます。隠蔽は左半分を白く塗りつぶしています。詳しくは下のリンクを参照してください。&amp;M);特定物体認識への応用キーポイントのマッチングは物体画像があるシーンの一部にある場合でも可能です。画像2(右下の画像)をいろいろな物体を結合した画像にしてみました。線を引くユークリッド距離の閾値を0.2にしています。イルカがどこにあるか認識してますね。現状では、画像2(右下の画像)はたくさんの物体画像をまとめた一枚画ですが、後ほど物体モデルデータベース、大量の物体画像のキーポイントと特徴ベクトルを格納したデータベースに置き換える予定です。次の例は、ユークリッド距離の閾値を0.3にあげて少し条件を緩くしてみました。すると線はたくさん引かれますがその分間違えも大きくなってます。これもユークリッド距離の閾値は0.3です。間違いは多いですが、画像1と同じピアノの画像に線が集中しているのはわかります。実際に特徴点のマッチングを特定物体認識に使う場合は間違えが多少あっても許されます。下のように正解の画像に線が集中していれば(得票数が多ければ)きちんと認識できるわけです。この多少間違えがあっても認識できるという性質を利用して認識を高速化させる方法も提案されています。物体モデルデータベースの作成(2009/11/14)へ続きます。...»プロフィールid:aidiary人工知能とその関連分野に興味があります。Blog|ブログを報告する。