●高速ビジョンで何が可能になるのか
では、高速ビジョンの応用についてお話ししたいと思います。
高速のビジョンをアルゴリズムから見ると、今までと異なるアルゴリズムを導入することが可能になります。今までの遅い画像処理の場合は、最初にこのような絵(仮にAの状態とする)があったとき、次の絵はここ(仮にBの状態とする)まで飛んでしまう。処理が遅いので、高速に動くものに対しては、Aの次が遠く離れたBになってしまうということです。そうすると、2つの情報だけで、AからBへものが動いたことを理解する必要があります。ところが、間の情報が全部欠落していますから、相当に大変な処理をして、予測をして、いろいろなマッチングをして、やっとBを見つける処理ができます。
ところが、高速化されますと、Aの絵の次はすぐ横のここ(仮にAダッシュとする)の絵になります。AからAダッシュを抽出すればいいわけですから、高速化することはアルゴリズムを簡素化することになります。この簡素化されたアルゴリズムを、時間的な密度を高くして、Aの次はAダッシュ、その次はここ(そのすぐ横)、さらにその次はここ(そのまたすぐ横)というように連続的につないでいくことによって、この対象(A)がここ(B)まで移ったことが容易に分かるようになります。これが高速化の威力です。
この高速化した威力をうまく使うことによって、アルゴリズムが簡素化されますから、簡素化されたアルゴリズムは簡単な処理回路でも大きな効果を得ることができます。これが高速化画像処理の大きなポイントになります。それを利用して、いろいろな応用が展開されています。今日はその一つとして、ヒューマンインターフェースの話をしたいと思います。
●人の動きをタイムラグなく追い掛ける
ヒューマンインターフェース、すなわち、人間の手の動きを高速のビジョンで捉えて、その動きに合わせて何らかのロボットやディスプレイや機械を動かしたい場合、人間の動きを撮ることが基本になります。
例えば、大リーグのピッチャーなどは時速150キロメートルのボールを投げられるわけですから、手の動きはそれに近いスピードで動きます。仮に時速150キロメートルの対象の動きを撮るとすれば、30分の1秒の画像処理だと、1.4メートルおきのデータしか撮れません。ところが、1秒間に1000枚(1000分の1秒)の画像処理だと、4.2センチメートルおきのデータが撮れます。ですから、その間のデータを4.2センチおきに埋めていくことができるということです。
普通に手を振る場合は、さすがに時速150キロメートルまではいきませんが、時速数十キロメートルまでにはなります。ということは、30分の1秒で撮ると、とびとびの絵しか得られないことになり、間の画像処理が大変難しくなります。ところが、1000分の1秒であれば、時速数十キロメートルの動きなら2~3センチメートルおきのデータが撮れますので、間が全部確保されます。つまり、手が動いても、変形しても、全部追い掛けられることになります。
そのことを利用して、まずはジェスチャーの認識を考えてみます。人間の手の動きを高速のビジョンで撮り、間がどういう動きなのかということですが、この動作を撮る場合に、一つ大きな技術があります。それはアクティブビジョンという撮り方です。アクティブビジョンとは、人間が目をキョロキョロするのと同じように、目の視線方向を変えていくビジョンのことです。固定のカメラの場合、視線は一定で、そこにものが飛んでくるのを測ることになりますが、アクティブビジョンの場合は、視線をモーターで変えていきます。
例えば、2軸のモーターを入れると、2軸で視線を動かすことができるようになります。その視線の先に対象があれば、動く対象を追い掛けて画像処理をし、追い掛ける結果として画像の認識ができるようになります。これをジェスチャーに導入すれば、カメラが手の動きを追い掛けることになります。これで、手の動きが分かりますから、ジェスチャー認識ができます。
その場合、多くは画素数を増やすことでそういった処理をするのですが、アクティブビジョンを導入すると、狭視野でも対象を追い掛けることができるようになります。ですから、狭視野の低画素数でも、高速のビジョンをもってきさえすれば、それらをトラッキングすることは可能になります。これが大きなポイントです。
皆さんも実際に経験があると思いますが、遅い画像処理で、例えばゲームをする、あるいは、コンピュータを動かそうと思った場合に、手を動かしてからコンピュータの映像が変化するまでの間に少し遅れがあると、なんとなく不安な、あるいは、自分自身の手で動かしているのに自分自身の手ではないような気分になると思います。ところが、時間的にピタッと合...