Coding Memorandum

プログラミングに関する備忘録

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Robonaut Challenge

だいぶ古い話となってしまいましたが、4月にTopCoderで「Robonaut Challenge」が開催されていて、時間の許す限り検討を進めていました。ヒューマノイドロボットの両眼カメラで見た画像からの物体認識の問題でした。

結果的には時間切れで終了という残念な状態でしたが、ここで検討したこと・調べたことなどをメモと記憶を頼りに纏めておきます。

問題の概要は、平面パネルに付いている光るプッシュボタン、トグルスイッチ等のパーツの位置と状態を識別するものでした。特徴はステレオ画像であること、視線がパネルの正面でないこと(見下ろしが多い)、照明状態が種々あることなど。

解法の方針としては、平面パネルを認識してからパネル上の各パーツを認識させるか、直接各パーツを認識させるかとなる。いづれにしても局所特徴量が必須であると思い、まずはこの辺りから調べてみました。

問題類型としては特定物体の認識となり、トレンド(既に古典?)的には局所特徴量のマッチングが思い浮かぶ。局所特徴量といえばSIFT、SURF(2年前のエントリ参照)となるが、今回は視線の向き(パネルの向き)がいろいろあるため不向きとなりそう。視線の向きが変わると画面上はアフィン変換(拡縮、回転など)となり、SIFT・SURFはアフィン変換に弱い。

局所特徴量の技術は、キーポイント検出と特徴量記述の2つの要素で構成される。それぞれ独立に考えてよいものだ。キーポイント検出は、SIFT・SURFの手法以外にもいろいろある。コーナー検出もキーポイントとなりえる。コーナー検出であればアフィン変換に対して堅牢であると考えた。手元のメモには、「FAST Corner Detector(OpenCV)」、「MSER (WikipediaOpenCV)」と残っている。

また、次のサイトが参考になった:「複数画像から3次元構造・カメラ挙動の復元手法の調査

特徴量記述については、SIFT・SURF以降の動向(BRIEF、ORB、BRISK)が次の資料に纏まっていて参考になります。

OpenCVにはFREAKが実装されている。性能は微妙?(Ref.CVPR2012 報告

局所特徴量のキャッチアップはここまでとして、以下考えたこと・試したことを記していきます。

  • アフィン変換が含まれるため、局所特徴量の適用は難しそう。ステレオ画像であることを活用することはできないか? → 対象のパネルは背景物よりカメラに近い。近いものから探索すれば良いのでは?
  • OpenCVのステレオマッチング(cvFindStereoCorrespondenceGC)を試す → 良い結果が得られず。パネル面の特徴が少ないからか?
  • ステレオ画像の距離計算は次の資料が参考になりました。
     ステレオビジョン画像処理技術の実用化研究
  • 別方針を考える : まずパネルを検出する。カメラ視点の影響からナナメに写ったパネルを正面視点に補正させる。スマホアプリでホワイトボードとか名刺の写真を補正するものをよく見かける。→ 「幾何補正」というらしい。
  • 幾何補正後のパネル画像で、局所特徴量のマッチングを行えば良いのではないか。そもそも、各部品の相対位置が固定なので、パネルをきっちり検出できたら部品の位置も導出できてしまう。
  • 四角いパネルを見つける → エッジ検出(Cannyなど)し、ハフ変換で直線を検出する方法を試す。
  • Cannyでは、光の反射具合で線分が途切れたり、パネル境界が立体的なため線が多重に検出されるなど、上手くいかない。
  • 画像の「領域分割」という手法がある。いま行いたいことはパネル部分を領域分割することだ。
  • 領域分割は次の資料が参考になりました: 画像の領域分割に関する従来研究
  • ミーンシフト法が良いようだ。「コンピュータビジョン最先端ガイド2」の2章にも記述がある。
  • OpenCV(cvPyrMeanShiftFiltering)で試作。良い結果が得られる。ただし遅い。 → 画像を縮小すればよいかも。
  • ミーンシフトに関する参考資料を挙げておきます。
      画像追跡(2) -領域の追跡-
      第8回 CV勉強会

ここまでで時間切れ、終了となりました。後で上位者のコードを見て、勉強しておかねば!

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://msirocoder.blog35.fc2.com/tb.php/84-9980e84a
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。