元派遣プログラマの自称技術系ブログです。雑記とか自作のオープンソースプロジェクトの話とか。
Javaとか組込とかできます。お仕事ください。

電脳フィギュアのいぢめかた

電脳フィギュア、ゲームショーで展示されてるみたいですね。

ARToolKit解析してる時に見つけたいぢめネタを書いて置くので、誰か試してみてください。

電脳フィギュアが「ARToolKitと同じアルゴリズムを独自に実装している(謎)」と仮定してのお話です。未知のテクノロジーで作られた物だとすると、ぜんぜん効果が無いと思います。

マーカー認識編

キューブを認識不能にする

ARToolKitには、マーカーの入れ子状態を除外する処理(大きなマーカーの中にある模様をマーカーと認識しないための処理)があります。

このため、フィギュアを出現させるキューブを、□の黒枠を書いた紙の上に置いて、真上からキューブを撮影すると、キューブを認識しないかもしれません。

ARToolKitではマーカーの図柄の重心と、その距離関係から、入れ子判定をしてるので、マーカーの図柄の重心位置によっては、大きなマーカー候補があると、近所の小さいマーカーを認識しなくなる事も起こると思われます。(確認してないけどたぶん)

もし同じアルゴリズムなら、ARToolKitとよく似た動き(認識ミス)をするんじゃないかな?

接近実験に使うマーカーは、マーカーの中心から大きく図柄の重心がずれたものがお勧めです。例えば、少し細めの□輪郭と、左下1/4を塗りつぶしたようなもの。(重心が左下に偏る)

応答を遅くする

ARToolKitには、四角形の輪郭線の長さに比例して、処理速度が落ちる特性があります。例えば、四角形を沢山書いた紙を用意して撮影すると、写っている四角形の個数に比例して、フレームレートがどんどん落ちていくはずです。(座標変換処理にいかないように四角形の中身は塗りつぶしておくこと)

模様の輪郭線から四角形判定をした後で、主成分分析で直線式を出す時に、輪郭点一つ一つに計算をするので、重くなるんですよね。

認識し難くする

安定してフィギュアが出現してる時に、画面内のヒストグラムを急激に変えると、フィギュアが消えます。(多分)

例えば、黒い背景の半分を突然白い紙で覆ってみたり。
カメラの自動補正との兼ね合いもあるので、もしかしたら起こらないかもしれませんが。


ホワイトバランス耐性で、使ってる閾値検出アルゴリズムが予想できます(多分)



座標変換系のいじめネタは、またこんど。