人の目は移動している物体が何であるかを一瞬のうちに認識し,それを追尾することができる。そのような人の目に似た働きをするものを工学的に実現するためには,眼球の動きや,目から入る視覚情報の処理の仕方,また物体をいかに認識しているかといった脳の情報処理の機序が解明されており,それを実現するためのセンサや人工脳を模擬できるコンピュータなどの高度なハードウェアの技術がある程度確立されていることが必要である。筆者の研究室では,人の目に似た機能をもつ人工の目(移動物体識別追尾装置)を試作し,その目に人工脳を付加するための研究を始めている。
本稿では,試作した人工の目が低高速で移動する物体をどのような方法で認識し,人工脳の一部とみなせるニューロコンピュータをいかに使っているか,また,どのような制御法を用いて追尾を行っているのかについて紹介する。
図1に移動物体識別追尾装置の外観写真を示す。図2に人工神経回路網(ニューラルネットワーク)をコンピュータ内にもつ装置システム,図3に識別と追尾に用いた光源を当てる黒板とパターン及び視覚装置の写真を示す。図4に追尾システムのハード面の概略のブロック図,図5に移動物体追尾機構の断面図が示されている。この装置は移動する対象物が何であるかを識別し,その対象物を自動的に追尾することができる。
図4に示すように,システムはCCDビデオカメラと水平軸(x軸)上,垂直軸(y軸)上を移動する2個のエンコーダ付DCモータ及びそれらのモータを駆動するPWM(パルス幅変調)駆動回路から成る。また,対象物の識別を行うための人工神経回路網,PID(比例,積分,微分)制御やファジィ制御演算を実行し,PWM回路の電流のオン・オフの割合,すなわち,デューティ比をサンプリング周期毎に変えて指令を出すためのマイクロコンピュータPC9801とそのインターフェースから成る。追尾機構が人間の眼球(人工の目)に相当し,マイクロコンピュータやインターフェースの部分が人間の脳(人工脳)に相当するものと考えてよい。
図5に示すように,下部に架台を設け,その中に水平移動用DCモータとエンコーダを固定している。また架台に取り付けた外球とその内側に垂直移動用DCモータとエンコーダを取り付け,可動可能にした内球にCCDビデオカメラが固定されている。カメラはレンズが向けられている方向に向かって,右側と左側の水平方向にプラス60度,マイナス60度の範囲内で可動であり,上側と下側の垂直方向にプラス45度,マイナス45度の範囲内で可動である。2個のDCモータは前述の角度の範囲外では,仮にコンピュータから信号を受けたとしても動作しないようにハード面からロックされている。移動物体識別追尾システムの可動範囲は現在このように設定されている。
CCDビデオカメラから1サンプリング周期毎に取り込まれた画像データは16×12(行×列)=192画素から構成され,6ビットの値,すなわち,輝度が0~63の64階調から成っている。追尾システムには白黒画像が現在用いられている。得られた画像データの処理法として色々考えられる。そのうち,識別に関しては,移動物体を識別させるため,三層の人工神経回路網を用い,学習には逆誤差伝播法を使用している。参考のため,識別追尾システムのソフト面の概略図を図6に示す。画像処理部はこの図からわかるようにCCDビデオカメラから取り込まれた画像を直接処理する部分と,学習済み人工神経回路網で処理して識別する部分から成る。人工神経回路網の入力層に直接画像データを入力として加え処理を行った場合,回転したパターン,スケールの違ったパターン,移動したパターン等の識別が困難であり,さらに処理するデータ量が膨大となるなどの難点がある。従って,このような難点を解決するための特殊な人工神経回路網を考案した。すなわち,対象物パターンに特有の7個のモーメント不変量(Q1-Q7)を計算し,それを人工神経回路網の入力層に加え,いわゆる動的パターンの識別ができるように特殊な人工神経回路網を用いている。この人工神経回路網の概略図を図7に示す。7個のモーメント不変量を計算し,人工神経回路網に入れ識別する方法は,むき身の栗の等級選別に効果的であることが明らかにされている。画像パターンの識別にはモーメント不変量を用いた人工神経回路網が用いられるが,画像データを直接処理し対象物を追尾する部分については,図6に示すような追尾機構が用いられる。すなわち,現サンプリング時刻で,対象物の移動によりその画像データがCCDビデオカメラの中心からずれた場合には,前サンプリング時刻の画像と現サンプリング時刻の画像のずれあるいは誤差を検出し,その誤差がある範囲内に収まるように駆動回路を用いて水平・垂直軸モータを回転し,CCDビデオカメラの中心が移動物体に追尾するようにコントローラを制御している。その際,2個のモータにはエンコーダが付いているのでCCDビデオカメラの位置を検出し,移動位置を計算しながらモータの速度を制御する方法を採用している。追尾のための画像処理には図8に示すような図形のずれを検出する方法や輝度の最大値を検出する方法が考えられる。次に輝度の最大値を検出する方法を用いた実験結果について示す。
図6では,コントローラとしてファジィ制御則に基づいたファジィコントローラが示されているが,コントローラとしてPID制御則に基づいたPIDコントローラやその他,適応制御・最適制御則等に基づいた種々のコントローラが考えられる。追尾制御実験では,PIDコントローラと図9に示すように,偏差と偏差の変化分を入力として水平垂直方向のパルスのデューティ比を出力とするファジィコントローラの2種類が用いられた。ファジィコントローラの実験結果については別の機会に譲ることにし,本稿ではPIDコントローラを用いた場合の実験結果について述べる。
PID制御はすでに示したように,比例(P)・積分(I)・微分(D)制御の略であり,目標値と出力の偏差に比例したもの,偏差を積分したもの,偏差を微分したものをある一定の比率で加え合わせたものを制御量として用いる制御法である。実験では,普通用いられるPID制御則を若干修正したものを用いた。
次に視覚装置に用いられた追尾の手順を示す。(1)始めに移動物体の画像データをCCDビデオカメラからマイクロコンピュータに取り込む。(2)次に移動物体の画像の最大輝度を検出する。(3)CCDビデオカメラの現在の位置をエンコーダで読み,マイクロコンピュータに取り込む。現在の位置が画像の中心になるようにカメラを移動する。すなわち,カメラの位置(i,j)と画像の中心の間の偏差を計算し,PID制御則により速度を制御しながらカメラを画像の中心に移動する。(4)画像データをマイクロコンピュータに取り込む時間が約30分の1ミリ秒であり,従って,画像取り込みに30分の1ミリ秒以上のタイマーを用いる。実験では100ミリ秒のタイマーを8253で割り込み処理を用いて生成した。(5)(1)から(4)の手順を繰り返し実行し,移動物体をある誤差内で追尾する。以上の手順を用いて追尾実験を行った。
図2の移動物体識別追尾システムを用いてパターン識別実験と追尾制御実験を行った。パターン識別実験結果は紙面の都合上省略する。PID制御則として次式を用いた。
Vn=K{en+Ts(Σen)/Ti
Wn=Vn+Td(Vn-Vn-1)/Ts
Un={Wn+(0.1T'd/Ts)Un-1}/(1+0.1Td/Ts)
ここで,Unはnサンプリング時刻のDCモータの速度出力,enはnサンプリング時刻の画像の中心とCCDビデオカメラの位置の偏差,Tsはサンプリング周期,VnとWnは補助変数である。式中に含まれるパラメータK,Ti,Tdはそれぞれ比例ゲイン,積分時間,微分時間である。水平軸(x軸)及び垂直軸(y軸)モータの速度をPID制御則で制御し,追尾実験を行った。x軸モータのPID制御のパラメータとしてK=2.50,Ti=150.0,Td=0.700,y軸モータのパラメータとしてK=4.00,Ti=150.0,Td=0.700を採用し,目標値を
x=y=20sin(7πt/180)
と設定し,25秒間追尾を行った結果を図10に示す。赤色の点線が目標値を示し,緑色の実線が15秒間追尾したときの軌跡を示している。この図ではわからないが,最初目標値との偏差が大きく,時間の経過と共に偏差が小さくなる。すなわち,画面上では緑色の実線が次第に赤色の点線に近づいていった。図11a・b・cは,手動光源を目標値としたときの25秒間の追尾結果を表している。用いたPID制御のパラメータは図10の場合と全く同じで目標値のみが異なっている。図11a・bはそれぞれx軸y軸モータの追尾を表しており,縦軸にx軸y軸のモータのエンコーダ値に50を加えたものをとり,横軸に時間をとっている。図11cにそれを2次元平面で表示している。前と同様に赤色の点線が目標値で,緑色の実線が追尾の軌跡である。追尾実験の結果よりパラメータを適当に選ぶことにより,PIDコントローラは精度よく移動物体に追尾できることがわかる。
本稿では,試作した移動物体識別追尾装置について簡単に紹介し,その装置がいかに移動物体を識別し,どのように追尾しているかについて述べた。テーマで人工の目と大きなテーマを掲げたが,人工の目を実現するためには,一対の眼球から成る目や,人工脳をハード・ソフトの両面から研究開発することが今後一層望まれる。それにより,人工の目や脳をもつ機械が近い将来,人間の代わりに宇宙,深海,原子炉内等で働いたり,また,身近な日常生活ではアシスタントとして役立ってくれるものと期待している。
なお,本稿で紹介された移動物体を識別する人工神経回路網の基本部分は,京都コンピュータ学院情報科学研究所所長上野季夫先生との共同研究から開発されたものである。