●「知能化されたビジョン」を創る
今回は、高速ビジョンを創る「アーキテクチャ」はどうあるべきかをお話ししたいと思います。
今までのビジョンは、フォトディテクタ(光を感じる素子)が二次元に並んでいました。このフォトディテクタの端から順番にデータを撮っていくのです。これをスキャニング操作といいます。端から順番に撮っていくので、画素数が大きくなると、それだけ時間がかかります。これまでは30分の1秒で1枚の絵を撮っていくのが一般的でした。それを速くするには、スキャニングを速くする必要がありますが、一つ一つのディテクタのスイッチングスピードには限界がありますから、それ以上に速くはできません。
そうすると、次にビデオ信号という1本の線で出力していること自体が、そもそもアーキテクチャとしてあまりよくありません。改善するには、この線を複数にする必要があります。複数の線で最も太い容量を持った結合にするとき、一つのフォトディテクタから一つのプロセッサにつなげるのが一番速いわけですが、そうなると、画素数の分だけ配線が必要になってしまいます。それはできませんから、フォトディテクタからコンピュータに入れる線にボトルネックを生じず、なおかつできるだけ少ない本数で済むアーキテクチャが理想となります。そのアーキテクチャは、フォトディテクタと処理回路を何らかの形で一体化したものになります。こうした一体化システムを、われわれは「知能化されたビジョン」と呼んでいます。
知能化されたビジョンは、イメージャーのすぐ脇に処理回路があって、この処理回路で処理した結果がコンピュータに送られます。今までは、コンピュータの遅さをカバーするために、高速処理回路をコンピュータの前に置いていたのですが、これだとイメージャーと高速処理システムの間が細すぎて、大量のデータが流れません。そこで、この高速処理システムをイメージャー側に付けて並列接続することで、通信のボトルネックをなくすアーキテクチャが必要になります。
●100万並列のプロセッサが1チップの中に入る時代になってきた
われわれの研究室では、20年間、そうしたアーキテクチャを研究し、さまざまな形のアーキテクチャを開発してきました。なぜさまざまな形が必要かというと、一つのフォトディテクタが一つのプロセッサにつながるのが理想ですが、配線やアーキテクチャが複雑になるため、縦方向のスキャニングをやめて、横方向のスキャニングをそのままコンピュータに出す「列並列」というアーキテクチャを基本に据えたからです。
例えば、1000×1000だと、1000本のアウトプットのラインが必要になりますが、1000本では多すぎますから、もっと本数を減らした処理回路にします。しかし、いずれにしても1本ではなく、複数本の伝送線路で処理系を合わせていきます。われわれの研究室は、その1本と1000本の間で、いろいろな形のアーキテクチャを開発してきたのです。
そのうちの一つが、1チップの中に全てを入れてしまうことです。一つのチップの中に、一つ一つのプロセッサが各フォトディテクタの隣に置いてあるのです。例えば、このチップは64×64ですが、一つ一つの画素の脇にプロセッシングエレメント、平たくいえばコンピュータが乗っています。約4000個のプロセッシングエレメントが並列化され、1チップに乗っているのです。これはだいぶ古いもので、今の技術を使えば、これが64×64ではなく、500×500、1000×1000が一つのチップに入ります。つまり、100万並列のプロセッサが、1チップの中に入る時代になってきた、ということです。
われわれは、この1チップを使って高速画像処理を実現することで、低価格で高機能な画像処理がさまざまな場面で使えるようになると考えています。
●目標は、1秒間に1000枚
では、アーキテクチャの目標はどこに置いたらよいでしょうか。今、ビデオレートは、1秒間に30枚の絵を伝送すると規定されていますが、それはそれほど速いことではありません。そこで、われわれは1秒間に1000枚の絵を撮影する画像処理を目標にしています。
「1秒間1000枚」を目標にする理由は二つあります。一つは、フォトディテクタに入っている光を感じる素子の感度の限界がその辺りにあるからです。速くしていくと、感度が落ちるのです。室内光できちんとした絵が撮れるだけの感度を維持できるのは、だいたい1秒間に1000枚、もう少し技術が進めば2000枚くらいのスピードです。もちろん、近い将来に3000枚、5000枚になることを期待しています。
もう一つの理由は、アーキテクチャを使う機械システムのスピードにあります。機械の中に、モータを制御するサーボモータのコン...