大前提ですが、パソコンレベルでの動体認識は所詮大したことはできないわけで、
目的別に最適化することが重要です。

たとえば一番最初に実験した特定の色をX,Y座標上で認識するレベルであれば、数行のプログラムで可能です。
あれは形ではなく色だけの判定なので簡単なのです。
で、今回の認識対象は以下のとおりです。

「奥行きのある空間の中で板状に描かれた特定のマークを探し、距離と向きと傾きを判断する」

ただし、認識のターゲットには以下の条件があります。
1.図形は8×8cmの大きさの正方形である。
2.図形内には向きを判断するマーク(白地)がある。
3.図形は黒色で、周りに白色の淵(白地)がある。

イメージ 1

大体今流行っているマーク式のAR認識対象はこんなもんです。
実はこの条件には認識を簡単にするカラクリが隠されています。

まず、元々の図形の大きさが事前に分かっていることです。
このことによりカメラに映る大きさから大体の奥行き(カメラからの距離)が判断できます。
また、カメラに映る図形の大きさも大体想定できるので、大き過ぎるものや小さ過ぎるものは判断対象から簡単に除外できます。

判断する図形が正方形であるというのもポイントで、画像の特徴点座標から四角形かそうではないかという切り分けが容易になります。
また各辺の長さの最大・最小を判断することで、どの辺が手前でどれが奥なのか容易に判断でき、傾きも分かります。
さらに図形内のマーク(白地)と合わせて判断すると図形の向き(回転)も分かるわけです。

もう一つ重要なポイントは図形の周りの白地です。
この縁取りのおかげで、周りの風景はどうであれ二値化処理を行うことで確実にターゲットが背景から切り離されて映ります。

まるでインチキ手品のタネあかしのようですが、実はそういうカラクリがあるからこそパソコンでもある程度リアルタイムな認識処理ができているわけです。


昔流行ったソニーのAIBOがボールを追いかけるを見て驚いたものですが、あれにもそういったカラクリがあります。


多少、子供に夢を与える解説をしているのだろうと思いますが、下記に解説があります。


おそらく実際のプログラムはもっと単純だと思います。
パソコンより遥かに劣るおもちゃ用マイコンレベルでの判断ですから良く出来た方だと思います。

もう一つ大きな条件は認識する環境です。
大抵の場合は閉鎖的な室内の空間を想定しています。
もちろんパソコンとWEBカメラを設置出来る環境はそんなものでしょうが・・・

しかし、もしこれが太陽の直射日光が当たる自然の森の中だったら大変です。
人工的な単純な物体が並ぶ室内とは違って自然空間は複雑怪奇です。

さらに強烈な太陽光で反射や屈折も考えられます。
そうなると単純な画像認レベルでは大変なのわけです。

もし、たんぼでAIBOを散歩させたら、おそらく一歩も歩けないと思います。
そういう意味でうちの愛犬は相当高性能で素晴らしいヤツだと思うわけです。

暑い夏場は、そんなにバッテリーは持ちませんが・・・