(57)【特許請求の範囲】
【請求項１】
格子状に配置された配列演算ユニットの各々がプロセッサ、メモリ及び複数のコントローラを備え、
前記コントローラが
前記配列演算ユニット間で転送されるデータの送信元の前記配列演算ユニットを識別する手段と、
転送される前記データの種別を識別する手段と、
を備えたことを特徴とする前記配列演算ユニットにおいて、
複数の前記コントローラの各々が隣接する前記配列演算ユニットの複数の前記コントローラのうち１個と信号線で接続されることにより、前記配列演算ユニットが隣接する前記配列演算ユニットと同時に複数の前記データを通信することを特徴とする視覚装置。
【請求項２】
請求項１記載の配列演算ユニットにおいて、全ての前記コントローラが積み重なることにより、前記配列演算ユニット間の前記信号線が交差しないことを特徴とする視覚装置。
【請求項３】
格子状に配列された複数の仮想配列演算ユニットを含む視覚装置であって、
前記仮想配列演算ユニットがプロセッサ、メモリ及び複数のコントローラを備え、
前記コントローラが前入力レジスタ群を備え、
前入力レジスタ群が少なくとも１個の前入力レジスタ及び少なくとも１個のカウンタを備え、
前記前入力レジスタがシフトレジスタであることにより、
前記仮想配列演算ユニットの各々において、
前記プロセッサが格子状に配列された複数の配列演算ユニットのプログラムを実行することと、
前記コントローラが隣接する前記仮想配列演算ユニットの前記コントローラと通信することと、
前記シフトレジスタが格子状に配列した複数の結果データを順番に入力して記憶することと、
前記カウンタが前記結果データの個数を数えることと、
前記プロセッサが前記シフトレジスタから複数の前記結果データのうち１つを選択して入力することと、
を特徴とする視覚装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術の分野】
本発明は、視覚装置に関する。
【０００２】
【従来の技術】
従来から、移動カメラを用いた撮影装置は数多く研究されてきた（特開昭６３−５４６９９、特開平３−１６４３４１、特開平５−２９７３２５参照）。特に近年は高速移動物体を追尾する撮影装置として、１ｍｓビジュアルフィードバックシステムが開発されている（中坊嘉宏、石井抱、石川正俊、“超並列・超高速ビジョンを用いた１ｍｓターゲットトラッキングシステム”、日本ロボット学会誌、Ｖｏｌ．１５、Ｎｏ．３、ｐｐ．４１７−４２１、１９９７参照）。しかしながら、これらの移動カメラは従来のモータを用いた駆動系を利用しているため、装置自体が大きくなってしまったり、動作が限定されるなどの問題点がある。
【０００３】
そこで、このような問題を解決する方法として、球状の多自由度モータが有効である（例えば、特開平６−２１０５８５；日刊工業新聞、平成１１年１２月１５日、６ページ参照）。さらに多自由度モータにおいて、従来のモータの代りに超音波モータを用いることにより、多自由度モータの機構及び制御が単純になる(特開昭６２−２２８３９２；遠山茂樹、“球面超音波モータの開発”、トライポロジスト、第４０巻、第８号、ｐｐ．６２７−６３１、１９９５；特開平７−８０７９３；特開平９−５４３５６；特開平１１−１８４５９；佐々江啓介、大築康生、三木修武、黒崎泰充、“圧電素子を用いた摩擦駆動型多自由度球面モータの開発”、[online]、平成１０年１月、川崎重工技報第１３６号抄録、[平成１２年１月２０日検索]、インターネット<URL:http://www.khi.co.jp/tech/nj136g07.htm>）。またこの超音波モータを用いた移動カメラの開発も行われている（特開平１１−８４５２６参照）。この他に、従来の超音波モータを用いない多自由度圧電アクチュエータも開発されている（特願２０００−２４３６３５参照）。この圧電アクチュエータを用いれば、低消費電力でしかも制御装置が簡単になるので、携帯電話に搭載可能な小型移動カメラを製造することができる。
【０００４】
一方でカメラが撮影した画像を処理するビジョンチップ若しくはイメージセンサの開発も進んでいる。例えば、ＣＬＩＰ４（Ｍ．Ｊ．Ｂ．Ｄｕｆｆ、''ＣＬＩＰ４：Ａ  ｌａｒｇｅ  ｓｃａｌｅ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ  ａｒｒａｙ  ｐａｒａｌｌｅｌ  ｐｒｏｃｅｓｓｏｒ''、Ｐｒｏｃ．  ＩＪＣＰＲ−３、Ｖｏｌ．４、ｐｐ．７２８−７３３、１９７６参照）、ＭＰＰ（Ｋ．Ｅ．Ｂａｔｃｈｅｒ、''ＭＰＰ：Ａ  ｈｉｇｈ−ｓｐｅｅｄ  ｉｍａｇｅ  ｐｒｏｃｅｓｓｏｒ''、Ｌ．Ｓｎｙｄｅｒ、Ｌ．Ｈ．Ｊａｍｉｅｓｏｎ、Ｄ．Ｂ．Ｇａｎｎｏｎ、Ｈ．Ｊ．Ｓｉｅｇｅｌ、ｅｄ．、Ａｌｇｏｒｉｔｈｍｉｃａｌｌｙ  ｓｐｅｃｉａｌｉｚｅｄ  ｐａｒａｌｌｅｌ  ｃｏｍｐｕｔｅｒｓ、ｐｐ．５９−６８、Ａｃａｄｅｍｉｃ  Ｐｒｅｓｓ、１９８５参照）、Ｓ３ＰＥ（Ｓｉｍｐｌｅ  ａｎｄ  Ｓｍａｒｔ  Ｓｅｎｓｏｒｙ  Ｐｒｏｃｅｓｓｉｎｇ  Ｅｌｅｍｅｎｔ）ビジョンチップ（小室孝、鈴木伸介、石井抱、石川正俊、“汎用プロセッシングエレメントを用いた超並列・超高速ビジョンチップの設計”、電子情報通信学会論文誌、Ｖｏｌ．Ｊ８１−Ｄ−Ｉ、Ｎｏ．２、ｐｐ．７０−７６、１９９８参照）、人工網膜ＬＳＩ（特開平６−１３９３６１、特開平１１−１７７８８９参照）、Ｇｅｎｅｒｉｃ  Ｖｉｓｕａｌ  Ｐｅｒｃｅｐｔｉｏｎ  Ｐｒｏｃｅｓｓｏｒ（ＧＶＰＰ）(Vision Chip's Circuitry Has Its Eye Out For You.TechWeb News, 1997-09-13. [online]. CMP Media Inc., 1999.[retrieved on 1999-12-19].Retrieved from the Internet: <URL:http://www.techweb.com/wire/news/1997/09/0913vision.html>)、ビジョンチップ('Eye' Chip Tracks Movement.Wired News, 1999-04-10. [online].Wired Ventures Inc. and affiliated companies, 1999.[retrieved on 1999-12-19].Retrieved from the Internet: <URL:http://www.wired.com/news/news/technology/story/19046.html>)などである。これらはエッジ検出及びオプティカルフロー検出のような簡単な処理を行うことができるが、実装を優先した結果、１ビット演算回路を用いたり、アナログ回路を用いたり、積和計算のみを行ったり、ＬＳＩ（大規模集積回路）全体で同期を取らなければならないＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔｒｅａｍ  Ｍｕｌｔｉ  Ｄａｔａ  Ｓｔｒｅａｍ）型マルチプロセッサを用いていたり、画像処理のアーキテクチャ及びアルゴリズムが一貫していないため複数の画像処理を１個のビジョンチップで実現することが困難であったり、物体及び撮影環境を二値化し易いものに限定するといった制約を設けるなど、問題点が多い。またＳ３ＰＥは移動カメラに接続されることにより、高速移動物体の追尾を行うことができるが、Ｓ３ＰＥは撮影環境及び移動物体の速度に影響される上、静止物体及び複数物体に対する画像処理を別の装置を用いて行わなければならない。さらに人工網膜ＬＳＩを用いて抽出した物体の画像を送信する無線画像通信装置が開発されているが、この無線画像通信装置には移動カメラを制御するための機能がないために、無線画像通信装置の用途は固定カメラを用いた監視装置などに限られている。
【０００５】
このようなビジョンチップの問題の多くがＬＳＩの実装技術、特に集積度に起因していると言われている。つまり、ＬＳＩがもっと多くのトランジスタを集積することができれば、ビジョンチップはもっと画素数の多い動画像に対してもっと高機能の画像処理を実時間で実行することができるというものである。しかしながら近年ＬＳＩ技術の急速な進歩により、高速で高集積度のＬＳＩが開発されるようになってきた。ＬＳＩの集積度に関しては、単に設計ルールの微細化技術だけでなく、三次元ＬＳＩ技術（特開昭６３−１７４３５６、特開平２−０３５４２５、特開平７−１３５２９３参照）、特にウェハーを張り合わせる技術（例えば、特開平５−１６０３４０；特開平６−２６８１５４；Ｋｏｙａｎａｇｉ，Ｍ．，  Ｋｕｒｉｎｏ，Ｈ．，  Ｌｅｅ，Ｋ−Ｗ．，  Ｓａｋｕｍａ，Ｋ．，  Ｍｉｙａｋａｗａ，Ｎ．，  Ｉｔａｎｉ，Ｈ．，’Ｆｕｔｕｒｅ  Ｓｙｓｔｅｍ−ｏｎ−Ｓｉｌｉｃｏｎ  ＬＳＩ  Ｃｈｉｐｓ’，  ＩＥＥＥ  ＭＩＣＲＯ，  １９９８，  Ｖｏｌ．１８，  Ｎｏ．４，  ｐａｇｅｓ１７−２２参照）の開発によりＬＳＩはますます高集積度になるので、従来別々のＬＳＩに実装されていたデジタル回路は容易に１つのＬＳＩに実装されるようになる。さらに多数のチップを積み重ねる技術（例えば、日経マイクロデバイス，２０００年６月号，ｐａｇｅｓ６２−７９；日経マイクロデバイス，２０００年６月号，ｐａｇｅｓ１５７−１６４；日経マイクロデバイス，２０００年６月号，ｐａｇｅ１７６参照）が開発されてきたので、ＬＳＩ設計者は従来の三次元ＬＳＩ技術に比べて容易に電子回路を設計することが可能となってきた。また三次元ＬＳＩ技術を用いるとＬＳＩ設計者は配線長を短くすることができるので、結果としてＬＳＩ設計者は容易にＬＳＩを設計することができるようになる。
【０００６】
むしろＬＳＩの設計と製造に関する現実問題としては、クロック信号の周波数が高くなるに従い、クロックスキュー及び信号の伝搬遅延時間がますます深刻になっていることが挙げられる。アナログ回路を用いたビジョンチップが盛んに研究されている理由は、ＬＳＩの集積度が必要量に達しないというよりも、デジタル回路が絶えず変化する環境を実時間で処理するためにはクロック信号の周波数を高くしなければならず、そのためＬＳＩ全体で同期を取ることが難しくなるばかりか、発熱量が増加してしまうことにある。勿論ＬＳＩ全体で同期を取ることを難しくしている要因は、従来のビジョンチップがしきい値計算、ヒストグラム計算、領域分割などの大域処理を頻繁に実行していることに他ならない。
【０００７】
そこで移動カメラを制御し、画像処理をする装置として、本発明者は視覚装置を開発した（例えば、国際公開番号ＷＯ００／１６２５９参照）。この視覚装置は移動カメラのパン、チルト、ロール及びズームの機構を制御することにより、物体を探索し、物体の画像処理を行うものである。視覚装置が行う画像処理の大半が局所処理であり、しかもこれらの局所処理は二次元格子状に配列された配列演算ユニットによって並列に実行される。配列演算ユニットをＬＳＩに実装する場合、個々の配列演算ユニットは、隣接する配列演算ユニットと非同期に通信できるように設計されている。これにより、配線パターンは極めて単純になり、しかも配線長は短くなるので、ＬＳＩはトランジスタの実装面積を増やしながら消費電力を低下させることができる。さらに全ての配列演算ユニットが必ずしも同期する必要がない。ただしＬＳＩの規模が大きくなった場合、タイムアウト処理などを正確に実行するために、全ての配列演算ユニットに対して同一周期のクロック信号及び位相ずれの小さいリセット信号が供給されなければならない。
【０００８】
これらのことを考慮すると、現在利用可能な大規模集積回路技術、及び三次元大規模集積回路技術を基に、視覚装置とフォトダイオードのような撮像素子を組み合せたイメージセンサを開発することができると期待される。またこのイメージセンサを多自由度モータに搭載することにより、視覚装置によって制御される移動カメラを製造することができると期待される。
【０００９】
さらに、以前から電気刺激を直接脳に加える研究が行われてきた（Ｗ．Ｈ．Ｄｏｂｅｌｌｅ，  ｅｔ  ａｌ．、''Ａｒｔｉｆｉｃｉａｌ  Ｖｉｓｉｏｎ  ｆｏｒ  ｔｈｅ  Ｂｌｉｎｄ：Ｅｌｅｃｔｒｉｃａｌ  Ｓｔｉｍｕｌａｔｉｏｎ  ｏｆ  Ｖｉｓｕａｌ  Ｃｏｒｔｅｘ  Ｏｆｆｅｒｓ  Ｈｏｐｅ  ｆｏｒ  ａ  Ｆｕｎｃｔｉｏｎａｌ  Ｐｒｏｓｔｈｅｓｉｓ”、Ｓｃｉｅｎｃｅ、Ｖｏｌ．１８３、ｐｐ．４４０−４４４、１９７４参照）が、最近、眼鏡に取り付けられた固定ＣＣＤカメラが撮影した画像からソーベルフィルタを用いてエッジを検出した後に、電極配列端子を用いて直接脳の右後頭葉視覚野にエッジ画像の電気信号を送信することにより、人工視覚を実現した研究が発表された(Computer Helps Blind Man 'See'.Wired News, 200-01-17. [online].Wired Ventures Inc. and affiliated companies, 2000.[retrieved on 2000-01-20].Retrieved from the Internet: <URL:http://www.wired.com/news/technology/0,1282,33691,00.html>)。患者の視野が極端に狭いために患者は首を動かして物体を探索しなければならず、しかも１．５メートル程離れた位置から５センチメートル程の大きさの文字しか読むことができない。しかしながらこの研究の成功によって、今後盲人及び視覚障害者を中心に広視野及び高解像度の人工視覚を実現する埋め込み式人工眼球の要望が高まるものと思われる。
【００１０】
これらのことを考慮すると、視覚装置によって制御された多自由度モータ搭載の移動カメラが物体を探索し、撮影された物体の正規化画像、種別、位置、大きさ及び位置の変化が直接脳に伝えられるような人工眼球を製造できると期待される。
【００１１】
さて、近年高速有線通信を中心としたインターネット技術及び高帯域無線通信技術の発達により、遠隔地に動画像を送信することができるようになってきた。特にＩＭＴ−２０００（ＤＳ−ＣＤＭＡ及びＭＣ−ＣＤＭＡ）及びＢｌｕｅｔｏｏｔｈ対応携帯電話の発売により、何時何処で誰もが安価に動画像を通信する環境が整いつつある（例えば、特開平６−２３３０２０、特開平７−３１２７８３、特開平８−１６３０８５、特開平８−２９４０３０、特開平１１−３４６３６４参照）。
【００１２】
これらのことを考慮すると、視覚装置によって制御された多自由度モータ搭載の移動カメラが物体を撮影し、視覚装置が撮影された物体の種別を判断することにより、通信装置が物体を映した動画像を遠隔地に送信することができると期待される。
【００１３】
最後に、近年高性能の音声合成装置（特開平５−０５３５９５、特開平５−０９４１９６、特開平５−１０８０８４参照）及び高性能の音声認識装置（特開平０５−００２３９９、特開平０５−０１１７９８、特開平５−０１９７８７参照）が開発されてきた。これらがスピーカ及びマイクロフォンと共にナビゲーションシステムに組み込まれることにより、利用者が音声を介して簡単にナビゲーションシステムを利用できるようになった（特開平６−２０１９６、特開平８−３５８４６、特開平１１−２７６５１６参照）。
【００１４】
これらのことを考慮すると、音声認識装置を用いることにより、利用者は、音声によって視覚装置を制御することができ、しかも視覚装置が識別した物体の種別を音声によって知ることができると期待される。
【００１５】
【発明が解決しようとする課題】
そこで、請求項記載の本発明は、ビジョンチップに関するＬＳＩの実装技術、特に集積度の向上を図ることでビジョンチップの画像処理を効率よく実行させることを目的とする。
【００２４】
【課題を解決するための手段】
請求項１の発明は、格子状に配置された配列演算ユニットの各々がプロセッサ、メモリ及び複数のコントローラを備え、前記コントローラが前記配列演算ユニット間で転送されるデータの送信元の前記配列演算ユニットを識別する手段と、転送される前記データの種別を識別する手段と、を備えたことを特徴とする前記配列演算ユニットにおいて、複数の前記コントローラの各々が隣接する前記配列演算ユニットの複数の前記コントローラのうち１個と信号線で接続されることにより、前記配列演算ユニットが隣接する前記配列演算ユニットと同時に複数の前記データを通信することを特徴とする視覚装置である。前記配列演算ユニットにおいて前記プロセッサが複数の前記コントローラを制御することにより、前記配列演算ユニットは前記メモリ中の複数の前記データを隣接する前記配列演算ユニットの前記メモリに効率よく転送することができる。本発明は短時間で多量の前記データを転送することができるので、各種の局所並列画像処理を実行する前記視覚装置の性能に関する諸問題が好適に解決される。
【００２５】
請求項２の発明は、請求項１記載の配列演算ユニットにおいて、全ての前記コントローラが積み重なることにより、前記配列演算ユニット間の前記信号線が交差しないことを特徴とする視覚装置である。ＬＳＩ（大規模集積回路）の設計者は、三次元ＬＳＩ技術を用いると全ての前記コントローラを積み重ねることができるので、積み重ねられた全ての前記コントローラの各々が格子状に配列されることになる。このとき同じ高さの層に実装された隣接する前記コントローラ同士を前記信号線で接続することにより、前記コントローラ間の前記信号線は交差しなくなる。本発明は、全ての前記層における前記信号線の配線パターンを同じにすることができ、しかも前記信号線の配線長を短くすることができるので、三次元ＬＳＩの設計及び製造に関する諸問題が好適に解決される。
【００２６】
請求項３の発明は、格子状に配列された複数の仮想配列演算ユニットを含む視覚装置であって、前記仮想配列演算ユニットがプロセッサ、メモリ及び複数のコントローラを備え、前記コントローラが前入力レジスタ群を備え、前入力レジスタ群が少なくとも１個の前入力レジスタ及び少なくとも１個のカウンタを備え、前記前入力レジスタがシフトレジスタであることにより、前記仮想配列演算ユニットの各々において、前記プロセッサが格子状に配列された複数の配列演算ユニットのプログラムを実行することと、前記コントローラが隣接する前記仮想配列演算ユニットの前記コントローラと通信することと、前記シフトレジスタが格子状に配列した複数の結果データを順番に入力して記憶することと、前記カウンタが前記結果データの個数を数えることと、前記プロセッサが前記シフトレジスタから複数の前記結果データのうち１つを選択して入力することと、を特徴とする視覚装置である。本発明では、前記仮想配列演算ユニットは、前記コントローラを、格子状に配列された前記配列演算ユニットの縦と横の個数の最大値以上備える。格子状に配列された前記配列演算ユニットのうち前記仮想配列演算ユニットと隣接するものが上下左右の通信方向毎に分類され、各々の分類毎に前記コントローラのうち相異なる１個と対応付けられる。これにより、どの方向に位置する何番目の前記コントローラから計算データを入力したのか前記仮想配列演算ユニットが識別できれば、前記計算データがどの前記配列演算ユニットから出力されたのか前記仮想配列演算ユニットは識別することができる。本発明では、前入力レジスタは、全ての前記配列演算ユニットが出力する前記結果データを記憶できるだけの記憶容量を備えた前記シフトレジスタ、及び前記カウンタを備え、前記シフトレジスタは一定の順番で入力された前記結果データを順番通り記憶する。これにより、２個の前記仮想配列演算ユニットの間で格子状に配列された複数の前記配列演算ユニットの前記結果データが通信されても、前記結果データの順番を維持することができる。前記カウンタの初期値は前記配列演算ユニットの数に設定され、前記配列演算ユニットが前記結果データを出力する度に前記カウンタは降順にカウントする。したがって全ての前記結果データが前記配列演算ユニットから出力されると、前記カウンタの値は０となる。このとき前記コントローラは前入力送達を１にする。その後前記プロセッサが前記シフトレジスタ中の全ての前記結果データを読み出すと、前記プロセッサは前入力送達ステータスを０にする。本発明は、複数の前記配列演算ユニットをプログラムとして１個の前記仮想配列演算ユニットに実装することができる。したがって本発明は、少ないハードウェアで多くの前記配列演算ユニットを実現することができるので、前記視覚装置の製造に関する諸問題が好適に解決される。
【００３６】
【発明の実施の形態】
以下、本発明の視覚装置の実施形態を挙げ、図面を参照して説明する。本発明の視覚装置に関連する、情報収集システム、人工眼球、位置／大きさ／傾き検出装置、イメージセンサ、連動装置の発明についても説明する。
【００３７】
まず、図１に示すように、情報収集システムは、デジタル画像１１１、物体の種別、位置及び個数を出力する１個以上の人工眼球１と、デジタル画像１１１、物体の種別、位置及び個数を表示し、制御命令を送信する１個以上のユーザ端末４と、を通信ネットワーク８に接続したシステムである。人工眼球１は、視覚装置２によって制御される移動カメラ１０を備え、この視覚装置２がデジタル画像１１１中の物体の種別を識別し、位置を特定し、個数を計数する。また視覚装置２は、ユーザ端末４から入力した制御命令に従い、移動カメラ１０のパン（水平移動）、チルト（垂直移動）、ロール（捻転）及びズーム（望遠）を制御する。個々のユーザ端末４は、複数の人工眼球１のうち１個を選択することにより、選択された人工眼球１のデジタル画像１１１、物体の種別、位置及び個数を受信することができる。ユーザ端末４は、通信ネットワーク８との通信機能を有する中央制御装置２２１と、デジタル画像１１１、物体の種別、位置及び個数を表示するディスプレイ２２２と、カーソルキー及びジョグダイヤルのような制御ボタン２２３と、から構成されている。人工眼球１及びユーザ端末４は有線技術及び無線技術を用いた通信ネットワーク８によって接続されているので、人工眼球１は必ずしも利用者の傍に設置される必要はない。また視覚装置２は物体の種別を識別することができるので、人工眼球１はデジタル画像１１１を常時送信する必要もない。したがって利用者は常時ユーザ端末４を監視し続けなくても良い。
【００３８】
さて、情報収集システムの発明のうち最も簡単な組み合わせは、１個の人工眼球１と１個のユーザ端末４が有線の通信ネットワーク８によって接続され、デジタル画像１１１、物体の種別、位置、個数及び制御命令が常時通信可能な情報収集システムである。このようなシステムとして、図２に示したような人工眼球１を備えた携帯電話２１１が挙げられる。この携帯電話２１１は、移動カメラ１０が撮影した動画像をディスプレイ２２２に表示することができる。これにより、携帯電話２１１の利用者は、移動カメラ１０の向きや倍率を気にせずに自分の姿をディスプレイ２２２に表示させられるだけでなく、ディスプレイ２２２を介して移動カメラ１０が撮影した周囲の状況を見ることができる。そこでこの携帯電話２１１が複数個用意され、各々の携帯電話２１１がデジタル画像１１１、物体の種別、位置、個数及び制御命令を相互に通信することにより、図１に示したような情報収集システムが構築される。
【００３９】
ここまでは人工眼球１とユーザ端末４の両方を備えた携帯電話２１１について説明したが、人工眼球１及びユーザ端末４が通信ネットワーク８によって接続されていれば、人工眼球１及びユーザ端末４は必ずしも一緒にある必要はない。そこで以下では、ユーザ端末４としてナビゲーションシステムを搭載した自動車３２１を例にして、人工眼球１の設置位置について説明する。
【００４０】
図３に示す通り、自動車３２１の後部バンパー中央３２２に人工眼球１を設置した場合、運転者は死角になっている場所を確認することができる。つまり視覚装置２が、移動カメラ１０を自動的にパン、チルト、ロール及びズームして撮影範囲３２６を変更することにより、運転者は自動車３２１の後方を横切る歩行者３２４、自転車、オートバイ３２５及び別の自動車３２１と、自動車３２１のトランク付近で遊んでいる子供と、を見付けることができる。したがって死角が多い駐車場及び車庫などで運転者は安全に後進することができる。また自動車３２１の天井後部中央３２３に人工眼球１を設置した場合、運転者はバックミラー及びサイドミラーで確認しずらい場所（特に遠方など）と、体を捻らないと注意を向けることができない場所と、を広範囲に確認することができる。つまり視覚装置２が、移動カメラ１０を自動的にパン、チルト、ロール及びズームして撮影範囲３２６を変更することにより、運転者は自動車３２１の後方から近付いてくる歩行者３２４、自転車、オートバイ３２５及び別の自動車３２１を見付けることができる。したがって運転者は安全にドアを開けたり運転することができる。
【００４１】
図３では、人工眼球１が自動車３２１の後部に設置された場合について説明したが、自動車３２１の側部及び前部についても同様である。自動車３２１のドア及び天井側部に人工眼球１を設置した場合、運転者はドア付近で遊んでいる子供及び路側帯を確認することができる。また自動車３２１の前部バンパー中央及び天井前部に人工眼球１を設置した場合、運転者は自動車３２１の前方を横切る歩行者３２４、自転車、オートバイ３２５及び別の自動車３２１と、自動車３２１のボンネット付近で遊んでいる子供と、を見付けることができる。したがって死角が多い駐車場、車庫及び細い路地の交差点で運転者は安全に前進することができる。さらに自動車３２１の天井内側に人工眼球１を設置した場合、運転者は同乗者全員の状況を把握することができる。特にユーザ端末４として携帯電話２１１が用いられた場合、運転者が自動車３２１から降りた後でも、車内の様子を知ることができる。したがって自動車３２１が車場荒らしにあっても運転者は直ぐに自動車３２１に駆け付けることができるし、子供や赤ん坊などが車内に居る場合でも、運転者は子供や赤ん坊の様子を知ることができる。
【００４２】
この他に、図４に示すように、人工眼球１を車イスの座席３３１の背もたれの後に設置し、ユーザ端末４を車イスの座席３３１の手すりに設置することにより、利用者は車イスの後方から近づいてくる物体を体を捻ることなく確認することができる。特に車イスの利用者は体を自由に動かすことができなかったり、車イスを動かすために姿勢が前屈みになるなど、利用者は後方を確認することが難しい。しかしながら本発明を利用することにより、車イスの利用者は安全に移動することができる。さらに人工眼球１を座席３３１の上方に設置したり、又は前方に設置することにより、移動カメラ１０は信号機及び道路標識などをより広範囲に撮影することができる。またユーザ端末４を座席３３１の上部に設置するか、又はユーザ端末４としてウェアラブルコンピュータを利用することにより、視力の弱い利用者でもディスプレイ２２２の映像を見ることができる。
【００４３】
さてここまでは、ユーザ端末４の利用者が人工眼球１を常時管理できるような情報収集システムについて説明してきた。しかしながらこの情報収集システムでは、利用者が就寝中でも、人工眼球１はユーザ端末４にデジタル画像１１１、物体の種別、位置及び個数を送信してくる。しかも人工眼球１が送信してくるデジタル画像１１１、物体の種別、位置及び個数が利用者にとって必ずしも必要なものとは限らない。そこで図５に示すように、ユーザ端末４のうち幾つかのものを監視端末５にし、利用者の代りに複数の監視者が監視端末５を操作することにより、利用者は必要なときだけユーザ端末４を利用することができるようになる。この際監視端末５は、監視者の指示に従い、適当な人工眼球１から受信したデジタル画像１１１、物体の種別、位置及び個数を利用者のユーザ端末４に転送するだけ良い。勿論ユーザ端末４及び監視端末５はコンピュータシステムであるので、既存の技術を用いることにより、監視者は必要に応じて状況の説明をユーザ端末４に送信することも、ユーザ端末４から利用者の指示を受信することも容易にできる。
【００４４】
ところで、もし人工眼球１が送信するデジタル画像１１１、物体の種別、位置及び個数をユーザ端末４の利用者が実時間で必要としなければ、ユーザ端末４及び監視端末５は人工眼球１から直接デジタル画像１１１、物体の種別、位置及び個数を受信する必要はない。例えば情報収集システムが道路の交通量を測定したり、商店街の人混みを計測するような場合に、利用者はむしろデジタル画像１１１、物体の種別、位置及び個数を基にした統計データを必要とする。そこで図６に示すように、情報収集システムの発明は、ＳＱＬ（Ｓｔｒｕｃｔｕｒｅ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）のようなデータベース記述言語を備えたリレーショナルデータベース及びオブジェクト指向データベースなどのデータベース６を備えた情報収集システムである。このデータベース６は、人工眼球１が送信したデジタル画像１１１、物体の種別、位置及び個数を図７のようなレコードに記録して、統計データを計算する。例えば図７の場合、レコードは、相異なるレコードＩＤを記録するレコードＩＤ領域５０１、現在の時刻を記録するタイムスタンプ領域５０２、人工眼球１が備える視覚装置２の番号を記録する視覚装置番号領域５０３、物体の種別及び位置の組の数を表す環境データ数を記録する環境データ数領域５０４、物体の種別を記録する種別領域５０５、物体の位置を記録する位置領域５０６、視覚装置２が出力する物体の個数を記録する物体数領域５０７、及びデジタル画像１１１を記録するデジタル画像領域５０８から構成されている。このレコードを用いることにより、データベース６は、人工眼球１によって一定期間内に撮影された特定の種別の物体の個数を計算したり、物体の移動を推定したりすることができる。またこのデータベース６は、ユーザ端末４から送信された検索キーを用いてレコードを検索し、検索結果をユーザ端末４に送信する。これにより利用者は、必要に応じてデータベース６にアクセスすることにより、目的のデジタル画像１１１、物体の種別、位置、個数及び統計データだけを入手することができるので、利用者及び通信ネットワーク８の負担を軽減することができる。
【００４５】
さらに図８に示すように、複数のユーザ端末４とデータベース６の間に複数の監視端末５が介在することにより、監視者は利用者に独自の情報及びノウハウを提供することができる。例えばコンビニエンスストア及びファーストフード店などのフランチャイズチェーン、及び経営コンサルタントなどは、系列店及び顧客に必要な情報及びノウハウを提供することができる。また交通量及び人混みを予想するような仲介業者が利用者に情報を提供することもできる。勿論ユーザ端末４及び監視端末５はコンピュータシステムであるので、既存の技術を用いることにより、監視者は必要に応じて状況の説明をユーザ端末４に送信することも、ユーザ端末４から利用者の相談を受信することも容易にできる。
【００４６】
最後に、図９に示すように、情報収集システムの発明では、ユーザ端末４が音声合成装置２２６及び音声認識装置２２７のうち少なくとも１つを備えている。音声合成装置２２６は、中央制御装置２２１が受信した物体の種別、位置及び個数を音声信号に変換し、スピーカ２２４を介して出力する。音声認識装置２２７は、マイクロフォン２２５が集音した利用者の音声を一旦テキストに変換して、中央制御装置２２１に出力する。中央制御装置２２１は、このテキストを制御命令及び検索キーに変換してから人工眼球１、データベース６、及び監視端末５に送信する。携帯電話２１１には既にスピーカ２２４、マイクロフォン２２５、プロセッサ１０１及びメモリ１０２が備えられているので、音声合成プログラム及び音声認識プログラムがメモリ１０２に実装されることにより、携帯電話２１１は容易に音声合成装置２２６及び音声認識装置２２７を搭載することができる。またナビゲーションシステムに関しては、音声合成装置２２６及び音声認識装置２２７を搭載したものが既に市販されている。したがってユーザ端末４の利用者は、ディスプレイ２２２に視線を取られることなく、しかも煩わしい制御ボタン２２３の操作をすることなく、移動カメラ１０の向き、傾き及び倍率を制御して、物体の種別、位置及び個数を聞くことができる。
【００４７】
ここまでは通信ネットワーク８によって接続された人工眼球１、ユーザ端末４及びデータベース６から構成される情報収集システムについて説明してきた。しかしながら人工眼球１における視覚装置２及び通信装置７と、ユーザ端末４における中央制御装置２２１については簡単に説明しただけである。そこで以下では、視覚装置２及び通信装置７を中心に人工眼球１の実施形態について説明した後で、中央制御装置２２１の実施形態について説明する。
【００４８】
まず通信ネットワーク８に接続する人工眼球１は図１０に示すような構成で表される。移動カメラ１０は既に多数市販され、掌サイズの移動カメラ１０も市販されている。移動カメラ１０が撮影した映像は、フレーム画像の画質を低下させることなくアナログ動画像又はデジタル動画像として視覚装置２に送信される。また移動カメラ１０は現在の移動カメラ１０の状態を表す信号を視覚装置２に送信し、一方で視覚装置２は移動カメラ１０のパン、チルト、ロール及びズームを制御する信号を移動カメラ１０に送信する。さらに人工眼球１の製造者は通信装置７に市販品を用いることができるし、通信用プラットフォームを用いて容易に製造することもできる。
【００４９】
図１１に示すように、通信装置７は画像圧縮手段７０１及び画像送信手段７０２を有する。画像圧縮手段７０１は、移動カメラ１０が撮影した動画像から視覚装置２によって生成されたデジタル画像１１１を入力し（図１１中の実線）、ＭＰＥＧなどの動画像圧縮技術及びＪＰＥＧなどの静止画像圧縮技術を用いて動画像及びフレーム画像を圧縮し、ＭＰＥＧ画像及びＪＰＥＧ画像を画像送信手段７０２に出力する。画像送信手段７０２は、ＴＣＰ／ＩＰなどの通信プロトコルを実装することにより、インターネットなどの通信ネットワーク８を介して遠隔地のコンピュータシステムにＭＰＥＧ画像及びＪＰＥＧ画像を送信することができる。さらに画像送信手段７０２としてＤＳ−ＣＤＭＡ及びＭＣ−ＣＤＭＡなどの高帯域無線技術を用いることにより、通信装置７は、移動カメラ１０が撮影した動画像を安価に、しかも場所と時間を選ばずに送信することができる。
【００５０】
次に、人工眼球１は、デジタル画像１１１の代りに、デジタル画像１１１と物体領域画像１４２を重ね合せたマスク画像１４８を出力することができる。マスク画像１４８はデジタル画像１１１の背景を塗潰したものであるので、画像圧縮手段７０１は特別な機能を追加しなくても高い圧縮率を達成することができる。
【００５１】
ここまで示したように、人工眼球１は視覚装置２を用いて移動カメラ１０のパン、チルト、ロール及びズームを制御することにより、物体を映した動画像を遠隔地に送信することができる。しかしながら前述した人工眼球１をただ用いただけでは、デジタル画像１１１及びマスク画像１４８に撮影すべき物体が映っているとは限らない。特にデジタル画像１１１に撮影すべき物体が映っていてもマスク画像１４８にこの物体が映っていない場合も考えられるので、マスク画像１４８を用いる場合には注意を要する。そこで物体領域１４１に対して視覚装置２が生成した認識結果を画像圧縮手段７０１が用いることにより（図１１中の破線）、画像圧縮手段７０１は、撮影すべき物体が映っているデジタル画像１１１及びマスク画像１４８だけを圧縮して、画像送信手段７０２に出力することができる。
【００５２】
デジタル画像１１１に対する画像圧縮手段７０１のアルゴリズムは図１２のようになる。
【００５３】
ステップ７１１で、順次入力される認識結果が無くなったかどうか判断する。もし認識結果が無ければ（ステップ７１１：ＹＥＳ）、アルゴリズムを終了する。もし認識結果があれば（ステップ７１１：ＮＯ）、ステップ７１２に移行する。ただし認識結果を判断する必要がなければ、無限ループにしても良い。
【００５４】
ステップ７１２で、認識結果を入力する。
【００５５】
ステップ７１３で、認識結果が特定の物体の種別であるかどうか判断する。もし認識結果が特定の物体で無ければ（ステップ７１３：ＮＯ）、ステップ７１２に戻る。もし認識結果が特定の物体であれば（ステップ７１３：ＹＥＳ）、ステップ７１４に移行する。
【００５６】
ステップ７１４で、デジタル画像１１１を入力する。
【００５７】
ステップ７１５で、ＭＰＥＧ及びＪＰＥＧなどの圧縮技術を用いて圧縮デジタル画像を生成する。
【００５８】
ステップ７１６で、圧縮デジタル画像を出力する。その後ステップ７１１に戻る。
【００５９】
これにより、画像圧縮手段７０１は特定の物体を映しているデジタル画像１１１だけを圧縮することができる。なおマスク画像１４８を圧縮する場合も同様である。
【００６０】
さて、超音波モータを用いた移動カメラ１０は現在幾つかの研究機関及び企業で開発され、外枠を含めて直径１０センチメートル未満の移動カメラ１０が既に開発されている。特に超音波モータはギアなどの機械的機構を必要としないため、超音波モータを用いた移動カメラ１０は更なる小型化が容易である。さらに、図２に示すように携帯電話２１１に超音波モータを用いた移動カメラ１０を搭載することにより、人工眼球１は、小型で安価な通信装置７及びバッテリ２１２を利用することができると共に、バッテリ２１２の消費電力を抑えることができる。
【００６１】
ところで、超音波モータのような小型の多自由度モータを搭載した移動カメラ１０を用いることにより、人工眼球１の利用者は人工眼球１を身に着けることができるようになる。さらに最近、刺激発生器２１３、コネクタ２１５及び電極配列端子２１４を介してＣＣＤ（電荷結合素子）カメラの画像を直接脳に入力することにより、全盲の人でも視覚を獲得できる技術が開発された。そこで図１３に示すように、人工眼球１が移動カメラ１０、視覚装置２、刺激発生器２１３、電極配列端子２１４、コネクタ２１５及びバッテリ２１２を備えた場合、人工眼球１の利用者は人工眼球１を眼鏡などに取り付けたり、又は眼窩に埋め込むことにより、広範囲の視角を獲得したり、近づいてくる物体を識別したり、さらに物体の数を数えることができるようになる。
【００６２】
最後に、一般的な用途に対する視覚装置２のアルゴリズムは既に開発されているが、人工眼球１に適するように一部変更が必要である。したがって以下では主に視覚装置２について説明する。
【００６３】
まず、物体を探索し、物体の種別を認識し、及び物体の数を数える視覚装置２（特願平１１−２５３６３４、特願２０００−６４５４４参照）の場合、移動カメラ１０は水平方向及び垂直方向に向きを変更する機構を備え、外部から移動角度を制御する命令を入力することにより、各々パン及びチルトをすることができるものとする。また移動カメラ１０は撮影画像の倍率を変更する機構を備え、外部から倍率を制御する命令を入力することにより、ズームをすることができるものとする。加えて移動カメラ１０が多自由度モータを備えた場合、移動カメラ１０はレンズ光軸を中心にして回転する機構を備え、外部から傾きを制御する命令を入力することにより、ロールをすることができるものとする。したがって移動カメラ１０は外部からの命令によりカメラ自体を細かく振動させることができる。これにより移動カメラ１０が撮影した動画像のフレーム画像はブレを生じ、フレーム画像中の物体はあたかも振動しているように撮影される。そのため静止物体はあたかもフレーム画像中を移動しているかのように撮影される。
【００６４】
次に、移動カメラ１０はパン、チルト、ロール及びズームなどの制御命令により移動した現在の向き、傾き及び倍率を必要に応じて出力できるものとし、さらに現在移動中であるか若しくは停止しているかといった移動カメラ１０の状態も必要に応じて出力できるものとする。このとき視覚装置２が移動カメラ１０のパン、チルト、ロール及びズームを制御することができれば、移動カメラ１０が移動物体及び静止物体を常時適切な大きさで撮影できるように、この視覚装置２は移動カメラ１０の向き、傾き及び倍率を変更することができるようになる。
【００６５】
そこで移動カメラ１０が移動物体及び静止物体を常時適切な大きさで撮影するために、視覚装置２は機能に応じて３つの座標系、つまりカメラ座標系、画像座標系及び環境座標系を使い分ける。第一に、カメラ座標系は、文字通り移動カメラ１０がパン、チルト及びズームを各々の最小制御単位で制御するために用いているカメラ内部の三次元球座標系である。一般にカメラ座標系の原点はホームポジションと呼ばれる移動カメラ１０固有の位置である。カメラ座標系は移動物体及び静止物体の物理的位置を表すことができる唯一の座標系である。それにも関わらずカメラ座標系は移動カメラ１０の機種毎に異なるため、カメラ座標系には汎用性がない。そのため視覚装置２は他の手段からカメラ座標系を秘匿する必要がある。第二に、画像座標系は、移動カメラ１０によって撮影されたフレーム画像の中央、つまりレンズ光軸を原点とする、画素を単位とした二次元座標系である。これはフレーム画像中のどの画素に移動物体及び静止物体が位置するか表すために用いられる。したがって画像座標系はフレーム画像中にある複数の移動物体及び静止物体の細かな位置を区別するのには適しているが、画像座標系だけではこれらの移動物体及び静止物体の物理的位置を表すことができない。第三に、環境座標系は、視覚装置２が内部で移動物体及び静止物体の位置を論理的に統一して表すために用いている三次元球座標系である。環境座標系は水平方向及び垂直方向にはラジアンを単位とした角度を用い、物体の大きさと物体までの距離の積を表すために、距離方向には１．０を単位とした実数を用いる。一般に物体の大きさが短時間で極端に変ることはないので、物体までの距離と移動カメラ１０の倍率は比例すると見なしてよい。環境座標系の原点は任意である。つまり環境座標系は原則として環境座標系上の任意の２点の相対座標を表すために用いられる。視覚装置２は移動カメラ１０によって撮影可能な環境中の移動物体及び静止物体を環境座標系に投影することで、複数の移動物体及び静止物体を区別することができる。
【００６６】
そこでカメラ座標系及び画像座標系は各々環境座標系と相互に座標変換をする必要がある。その役割を果たしている手段がカメラ／環境座標変換手段２０、画像／環境座標変換手段２１及び運動制御手段２３である（図１４参照）。これらの手段は移動カメラ１０及び画像取得手段１１（図１４参照）の仕様からカメラ座標系及び画像座標系の各単位を求め、環境座標系に変換するための行列を計算する。またカメラ座標系から環境座標系への変換行列の逆行列を計算することにより、環境座標系からカメラ座標系への変換行列も求めることができる。ただしカメラ座標系の原点が移動カメラ１０のホームポジションであるので、カメラ座標系から変換された環境座標系の位置は環境座標系上の移動カメラ１０のホームポジションからの相対位置となる。一方、環境座標系から変換されたカメラ座標系の位置はカメラ座標系上の移動カメラ１０の現在位置からの相対位置となる。加えて、画像座標系は二次元座標系であるため、画像座標系のみでは環境座標系に変換することはできない。そのため画像／環境座標変換手段２１では環境座標系で表された移動カメラ１０の向き及び倍率と、フレーム画像中の移動物体及び静止物体の領域の大きさを用いて、随時変換行列を計算することにより、画像座標系から環境座標系に変換できるようにする。なお画像座標系から変換された環境座標系の位置は、画像の中心からの相対位置となる。
【００６７】
ところで移動カメラ１０が傾いていた場合、視覚装置２が環境座標系を上述のように求めることはできない。例えば図１５に示すように、形成エッジ情報画像１１５中の位置αに角度θ反時計回りに傾いた物体の形成エッジ情報１１４があるものとする。このときレンズ光軸に対応する形成エッジ情報画像１１５の中心οに対して反時計回りに角度θ回転するように移動カメラ１０を回転させると、エッジ情報形成手段１５は回転後形成エッジ情報画像１８１を出力することができる。つまり回転後形成エッジ情報画像１８１中の位置αにおいて物体は直立することになり、物体の種別の認識が容易になる。しかしながら回転後形成エッジ情報画像１８１中の位置αから求められた画像座標系の座標は、形成エッジ情報画像１１５中の位置αから求められた画像座標系の座標に比べて時計回りに角度θ回転した位置になる。そのため角度θが大きくなるか距離οαが長くなるに従って両座標のずれが大きくなる。したがって回転後形成エッジ情報画像１８１中の位置αから回転前の画像座標系の座標を求めるためには、回転後形成エッジ情報画像１８１中の位置αを反時計回りに角度θ回転させた位置βを求めれば良い。
【００６８】
ここで回転後形成エッジ情報画像１８１中の位置αの画像座標を（αｘ，αｙ）とし、位置βの画像座標を（βｘ，βｙ）とすると、数式１に従って（αｘ，αｙ）から（βｘ，βｙ）を求めることができる。
【００６９】
【数１】
0003963424.tif 000002
【００７０】
これにより回転後形成エッジ情報画像１８１中の位置αから位置β、つまり形成エッジ情報画像１１５中の位置αを求めることができるので、結果として画像／環境座標変換手段２１は回転後形成エッジ情報画像１８１中の位置αから正確に環境座標を求めることができる。
【００７１】
前述したカメラ座標系、画像座標系及び環境座標系を用いて、視覚装置２の実施形態を説明する。図１４に示すように、視覚装置２の実施形態は、移動カメラ１０の撮像信号（フレーム画像）を受信して適切なフォーマットとサイズのデジタル画像１１１に変換する画像取得手段１１と、デジタル画像１１１を一定期間記憶する画像記憶手段１２と、出力先に出力するまでデジタル画像１１１を保持する画像保持手段３９と、デジタル画像１１１から色情報画像１７２を生成する色情報生成手段４１と、２つのデジタル画像１１１から移動物体の粗エッジ情報画像１１３を生成するエッジ情報生成手段１４と、粗エッジ情報画像１１３をより的確で明瞭な形成エッジ情報画像１１５に形成するエッジ情報形成手段１５と、形成エッジ情報１１４によって区分される領域を分離する物体／背景分離手段１６と、デジタル画像１１１と分離された領域を重ね合わせるマスク手段４０と、出力先に出力するまでマスク画像１４８を保持する画像保持手段３９と、分離された領域を画像サイズに正規化する領域正規化手段２７と、出力先に出力するまで正規化画像１４５を保持する画像保持手段３９と、形成エッジ情報画像１１５を用いて移動物体の大ざっぱな形状を解析する幾何解析手段３７と、正規化された移動物体の領域に対してパターンマッチングを行うパターンマッチング手段３８と、マッチング結果画像１４７及び幾何解析結果から移動物体の種別を認識する画像認識手段２９と、色情報１７１によって区分された各領域の位置及び大きさを検出する位置／大きさ検出手段１７と、粗エッジ情報１１２によって区分された各領域の位置及び大きさを検出する位置／大きさ検出手段１７と、移動カメラ１０の向き及び倍率を表すカメラ座標系を視覚装置２の基本的な座標系である環境座標系に変換するカメラ／環境座標変換手段２０と、環境座標系で表された移動カメラ１０の向き及び倍率を用いて、位置／大きさ検出手段１７が検出した移動物体の位置を環境座標系に変換する画像／環境座標変換手段２１と、位置／大きさ検出手段１７が検出した複数の移動物体の位置から１つを選択する位置選択手段２２と、１ミリ秒単位で時刻を計る計時手段３２と、環境座標系で表された移動カメラ１０の向き及び倍率、環境座標系で表される複数の移動物体の位置、移動物体の種別、幾何解析結果、及び時刻から環境地図を作成する環境理解手段３１と、出力先に出力するまで環境地図を保持する環境地図保持手段３３と、環境地図を用いて次に認識すべき移動物体の位置を推定する物体位置推定手段３４と、移動カメラ１０の向き及び倍率を外部から制御するための制御命令を入力する制御命令入力手段２４と、移動カメラ１０を振動させる命令を生成する振動命令生成手段２５と、環境座標系で表された移動カメラ１０の向き及び倍率を用いて、位置選択手段２２、制御命令入力手段２４、振動命令生成手段２５及び物体位置推定手段３４から入力した４つの位置を参照しながらカメラ座標系で表される移動カメラ１０の位置を決定する運動制御手段２３と、運動制御手段２３が決定したカメラ座標系の位置に移動カメラ１０を移動させるための命令を生成するカメラ命令生成手段２６と、を利用したものである。
【００７２】
画像取得手段１１が移動カメラ１０から動画像のフレーム画像を入力する際に、動画像がアナログ信号の場合は、Ａ／Ｄ変換によりフレーム画像をデジタル信号に変換する。なお特にフォトダイオードなどの撮像素子２０７の電圧を直接入力できるならば、Ａ／Ｄ変換により適当なビット数のデジタル信号に変換するだけで良い。動画像がデジタル信号の場合は、圧縮されていれば展開し、圧縮されていなければそのまま入力する。これらにより動画像中任意のフレーム画像を切り出すことができるので、このフレーム画像を切り出してデジタル画像１１１にする。このデジタル画像１１１は適当なフォーマットに従い、かつ任意の画像サイズを有しているので、画像取得手段１１は画素単位で画像データを参照できるフォーマットに変換し、視覚装置２で必要とする画像サイズ分を切り出し、デジタル画像１１１として出力する。もし画像取得手段１１がデジタル画像１１１の全ての画素を並列に出力することができれば、画像取得手段１１から画像記憶手段１２への通信は、画素毎に並列に行うことができる。
【００７３】
画像記憶手段１２が画像取得手段１１からデジタル画像１１１を入力すると、視覚装置２の時間分解能若しくは各手段の計算能力に合わせて一定時間デジタル画像１１１を記憶する。つまりこの一定時間中にデジタル画像１１１が入力されても画像記憶手段１２は記憶画像を変更することがないので、後に続く各手段は異なるタイミングで同じデジタル画像１１１を入力することができる。しかも画像記憶手段１２はデジタル画像１１１に対して画像処理を施さないので、デジタル画像１１１の全ての画素に対して二次元の位相関係を保ったまま記憶している。もし画像記憶手段１２がデジタル画像１１１の全ての画素を並列に出力することができれば、画像記憶手段１２から画像保持手段３９、エッジ情報生成手段１４、エッジ情報形成手段１５、領域正規化手段２７、色情報生成手段４１及びマスク手段４０への通信は、画素毎に並列に行うことができる。
【００７４】
画像保持手段３９は画像記憶手段１２からデジタル画像１１１を入力すると、もしデジタル画像１１１の出力先が適当なフォーマットのデジタル画像１１１を要求するならば、デジタル画像１１１の出力先が要求するフォーマットにデジタル画像１１１を変換する。その後画像保持手段３９はデジタル画像１１１の出力先に確実にデジタル画像１１１を送信できるように、一定期間デジタル画像１１１を記憶する。画像保持手段３９は変換するフォーマットを限定すれば画素毎に近傍処理のみでデジタル画像１１１を変換することができるので、並列化に向いている。もし画像保持手段３９がデジタル画像１１１の全ての画素を並列に出力することができれば、画像保持手段３９からデジタル画像１１１の出力先への通信は、画素毎に並列に行うことができる。
【００７５】
エッジ情報生成手段１４が画像記憶手段１２からデジタル画像１１１を入力すると、直前に入力されたデジタル画像１１１と比較することにより移動物体の粗エッジ情報画像１１３を生成する。エッジ情報生成手段１４は画素毎に近傍処理のみで粗エッジ情報画像１１３を生成することができるので、並列化に向いている。もしエッジ情報生成手段１４が粗エッジ情報画像１１３の全ての画素を並列に出力することができれば、エッジ情報生成手段１４からエッジ情報形成手段１５及び位置／大きさ検出手段１７への通信は、画素毎に並列に行うことができる。
【００７６】
エッジ情報形成手段１５がエッジ情報生成手段１４から粗エッジ情報画像１１３を入力すると、画像記憶手段１２で記憶されていたデジタル画像１１１を参照して、粗エッジ情報画像１１３より的確で明瞭な移動物体の形成エッジ情報画像１１５を生成する。エッジ情報形成手段１５は画素毎に近傍処理のみで形成エッジ情報画像１１５を生成することができるので、並列化に向いている。もしエッジ情報形成手段１５が形成エッジ情報画像１１５の全ての画素を並列に出力することができれば、エッジ情報形成手段１５から物体／背景分離手段１６、幾何解析手段３７及び位置／大きさ／傾き検出手段４４への通信は、画素毎に並列に行うことができる。
【００７７】
物体／背景分離手段１６はエッジ情報形成手段１５から形成エッジ情報画像１１５を入力すると、移動物体の物体領域１４１に含まれる画素と背景に含まれる画素を異なるグループに分離して、分離結果をグループ単位で順次出力する。なお物体領域１４１が隣接しているにも関わらず形成エッジ情報１１４により明確に区別される場合、物体／背景分離手段１６はこれらの物体領域１４１を異なるグループに分離することができる。したがってグループの数は３以上になることもある。物体／背景分離手段１６は画素毎に近傍処理のみで物体領域１４１と背景を分離することができるので、並列化に向いている。もし物体／背景分離手段１６が物体領域画像１４２の全ての画素を並列に出力することができれば、物体／背景分離手段１６からマスク手段４０及び領域正規化手段２７への通信は、画素毎に並列に行うことができる。
【００７８】
マスク手段４０は物体／背景分離手段１６から物体領域画像１４２を入力すると、画像記憶手段１２で記憶されていたデジタル画像１１１を参照して、物体領域１４１と重ならない画素を塗り潰すことにより、マスク画像１４８を生成する。マスク手段４０は画素毎に近傍処理のみでマスク画像１４８を生成することができるので、並列化に向いている。もしマスク手段４０がマスク画像１４８の全ての画素を並列に出力することができれば、マスク手段４０から画像保持手段３９への通信は、画素毎に並列に行うことができる。
【００７９】
画像保持手段３９はマスク手段４０からマスク画像１４８を入力すると、もしマスク画像１４８の出力先が適当なフォーマットのマスク画像１４８を要求するならば、マスク画像１４８の出力先が要求するフォーマットにマスク画像１４８を変換する。その後画像保持手段３９はマスク画像１４８の出力先に確実にマスク画像１４８を送信できるように、一定期間マスク画像１４８を記憶する。画像保持手段３９は変換するフォーマットを限定すれば画素毎に近傍処理のみでマスク画像１４８を変換することができるので、並列化に向いている。もし画像保持手段３９がマスク画像１４８の全ての画素を並列に出力することができれば、画像保持手段３９からマスク画像１４８の出力先への通信は、画素毎に並列に行うことができる。
【００８０】
領域正規化手段２７は物体／背景分離手段１６及び画像取得手段１１から物体領域画像１４２及びデジタル画像１１１をそれぞれ入力すると、移動物体の分離物体領域１４３をデジタル画像１１１から切り出し、分離物体領域１４３を変形しながらデジタル画像１１１の画像サイズに合わせて可能な限り補完及び拡大することで正規化画像１４５を生成する。領域正規化手段２７は画素毎に近傍処理のみで分離物体領域１４３を正規化することができるので、並列化に向いている。もし領域正規化手段２７が正規化画像１４５の全ての画素を並列に出力することができれば、領域正規化手段２７からパターンマッチング手段３８及び画像保持手段３９への通信は、画素毎に並列に行うことができる。
【００８１】
画像保持手段３９は領域正規化手段２７から正規化画像１４５を入力すると、もし正規化画像１４５の出力先が適当なフォーマットの正規化画像１４５を要求するならば、正規化画像１４５の出力先が要求するフォーマットに正規化画像１４５を変換する。その後画像保持手段３９は正規化画像１４５の出力先に確実に正規化画像１４５を送信できるように、一定期間正規化画像１４５を記憶する。画像保持手段３９は変換するフォーマットを限定すれば画素毎に近傍処理のみで正規化画像１４５を変換することができるので、並列化に向いている。もし画像保持手段３９が正規化画像１４５の全ての画素を並列に出力することができれば、画像保持手段３９から正規化画像１４５の出力先への通信は、画素毎に並列に行うことができる。
【００８２】
幾何解析手段３７はエッジ情報形成手段１５から形成エッジ情報画像１１５を入力すると、ストローク抽出法、フーリエ変換、アフィン変換及びハフ変換などの幾何解析を行うことにより、フレーム画像中の移動物体の形を推定し、幾何解析結果を生成する。従来の画像認識では画像自体から直接線分などを抽出したり、移動物体の位置及び大きさなどに左右されないような各種変換などを用いることにより、画像中の物体を認識することを行ってきた。このため処理の単純さにも関わらず組み合わせの数が膨大となり、結果として膨大な計算量が必要となり、望みうる結果を得るまでに長時間掛ったり、若しくは品質の低い認識結果しか得られなかった。しかしながらこの視覚装置２では、フレーム画像中の移動物体のパターンに対する認識処理を物体／背景分離手段１６、領域正規化手段２７、パターンマッチング手段３８、及び画像認識手段２９が行う。ただし物体／背景分離手段１６、領域正規化手段２７、パターンマッチング手段３８、及び画像認識手段２９が行う認識処理は移動物体の輪郭のような幾何図形の認識を苦手としている。したがって幾何解析手段３７は、形成エッジ情報画像１１５を簡単な方法で大ざっぱに解析することにより、幾何図形の認識を容易に実現すると共に、幾何解析手段３７自体の負荷も低減することができる。また幾何解析手段３７を用いることによりパターンマッチング手段３８は幾何図形を認識する必要がなくなり、パターンマッチング手段３８は簡略化される。さらに幾何解析結果を用いることにより、環境理解手段３１は環境地図を的確で高速に作成することができるようになる。幾何解析結果は幾何解析手段３７から画像認識手段２９及び環境理解手段３１へ出力される。
【００８３】
パターンマッチング手段３８は領域正規化手段２７から正規化画像１４５を入力すると、画素単位で正規化画像１４５を複数のテンプレート画像１４６と比較し、マッチング結果画像１４７を生成する。なおパターンマッチング手段３８は、視覚装置２の目的に応じて事前に用意されたテンプレート画像１４６を用いることもできるし、入力された正規化画像１４５をテンプレート画像１４６として用いることもできる。一般に正規化画像１４５の各画素は異なるテンプレート画像１４６の対応する画素に類似するため、マッチング結果画像１４７は幾つかの塊によって構成される斑模様のようになる。もしパターンマッチング手段３８がマッチング結果画像１４７の全ての画素を並列に出力することができれば、パターンマッチング手段３８から画像認識手段２９への通信は、画素毎に並列に行うことができる。
【００８４】
画像認識手段２９はパターンマッチング手段３８からマッチング結果画像１４７を入力すると、マッチング結果画像１４７を適当なパターン認識方法を用いて認識し、認識結果、つまり移動物体の種別を出力する。画像認識手段２９はパターン認識法として、多数決のように単純にマッチング結果画像１４７のうち最も多いマッチング結果を選択することもできるし、誤差逆伝播法（バックプロパゲーション）によって学習するパーセプトロンなどのニューラルネットワークを用いることができる。またニューラルネットワークを用いた場合には、ニューラルネットワーク専用アクセラレータを用いることにより並列化及び高速化も可能である。マッチング結果画像１４７の認識結果、つまり移動物体の種別は画像認識手段２９から認識結果保持手段３０及び環境理解手段３１へ出力される。ただし、画像認識手段２９が必要に応じて幾何解析手段３７から幾何解析結果を入力するならば、画像認識手段２９は、この幾何解析結果が認識の対象としている図形であるかどうか判断することができる。もし幾何解析結果が対象外の図形であれば、画像認識手段２９は動作しない。幾何解析結果が対象図形であれば、画像認識手段２９はマッチング結果画像１４７を認識する。例えば誤差逆伝播法によって学習するパーセプトロンの場合、対象図形毎にパーセプトロンがマッチング結果画像１４７を用いて学習データを作成し、その後画像認識手段２９が幾何解析結果によって学習データを選択することにより、パーセプトロンが対象図形に対して効率的にパターン認識を行うようにすることもできる。つまり幾何解析結果が円形であれば、人の顔やボールなど円形の物体の学習データだけを利用し、幾何解析結果が三角形であれば、道路標識や山並みなど三角形の物体の学習データだけを利用する。これならば小規模のパーセプトロンによって多数の物体を認識することができるばかりでなく、パーセプトロン自体も効率よく学習することができる。
【００８５】
認識結果保持手段３０が画像認識手段２９からマッチング結果画像１４７の認識結果を入力すると、もし認識結果の出力先が適当なフォーマットの信号を要求するならば、認識結果の出力先が要求するフォーマットに認識結果を変換する。その後認識結果保持手段３０は認識結果の出力先に確実に認識結果を送信できるように、一定期間認識結果を記憶する。
【００８６】
位置／大きさ検出手段１７がエッジ情報生成手段１４から粗エッジ情報画像１１３を入力すると、粗エッジ情報１１２によって指し示された移動物体の領域の位置及び大きさを検出する。位置／大きさ検出手段１７は画素毎に近傍処理のみで、移動物体の領域の位置及び大きさの検出結果を表す重複情報画像１３２を生成することができるので、並列化に向いている。もし位置／大きさ検出手段１７が重複情報画像１３２の全ての画素を並列に出力することができれば、位置／大きさ検出手段１７から画像／環境座標変換手段２１への通信は、画素毎に並列に行うことができる。
【００８７】
カメラ／環境座標変換手段２０及び画像／環境座標変換手段２１は、位置／大きさ検出手段１７が生成した重複情報画像１３２で表される移動物体の領域の位置を環境座標系の位置に変換する。このときフレーム画像中の移動物体の領域の位置の総数が２つ以上であれば、環境座標系上にも２つ以上の位置が存在することになる。そこで移動カメラ１０のパン、チルト及びズームを制御していずれか１つの移動物体に移動カメラ１０の向き及び倍率を合わせるために、環境座標系上の複数の位置の中から１つを選択する必要がある。位置選択手段２２は一定の判断基準に従い、環境座標系上の１つの位置を選択する。ここで用いられる判断基準は主に次のようなものである。第一に、位置選択手段２２は環境座標系上での移動物体の位置のうち移動カメラ１０に最も近いもの（若しくは最も大きいもの）を選択する。これは移動物体が遠かったり（若しくは小さかったり）した場合、エッジ情報生成手段１４がノイズを生成した可能性があるので、環境座標系上の複数の位置の中から移動物体が存在する確率が少しでも高いものを位置選択手段２２が選択する。第二に、環境座標系上の一定範囲内に複数の位置が集中している場合、位置選択手段２２はこのうちの１つを選択する。なおこれには２つの可能性が考えられる。１つはエッジ情報生成手段１４が１つの移動物体に対して分散した粗エッジ情報１１２を生成した可能性であり、もう１つは実際に複数の移動物体が存在する可能性である。そこで位置選択手段２２は適当に１つの位置を選択すれば良い。第三に、環境座標系上に多数の位置がほぼ同じ距離（若しくはほぼ同じ大きさ）である場合、位置選択手段２２は原点に最も近い位置、すなわち移動カメラ１０の向きに最も近い位置を選択する。これらを用途や状況に応じて適宜組み合せることにより、位置選択手段２２は環境座標系上の複数の位置の中から１つを選択することができる。
【００８８】
計時手段３２はタイマー回路により現在時刻を１ミリ秒単位で出力する。現在時刻は絶えず計時手段３２から環境理解手段３１へ出力される。
【００８９】
環境理解手段３１は画像認識手段２９から移動物体の物体領域１４１の認識結果を入力すると、認識結果、移動カメラ１０の環境座標系上での位置、及び現在時刻からなる環境データを作成する。また環境理解手段３１は画像／環境座標変換手段２１からフレーム画像中の全ての物体領域１４１の環境座標系上での位置を入力すると、ヌルデータからなる認識結果、移動カメラ１０の環境座標系上での位置とフレーム画像中の１つの物体領域１４１の環境座標系上での位置を加えた位置、及び現在時刻からなる環境データを、物体領域１４１の数だけ作成する。このとき環境地図は現在時刻より一定時間前に作成された環境データの集合となり、環境データ中の位置は移動カメラ１０のホームポジションを原点とする環境座標系によって表される。環境理解手段３１は環境地図に対して時刻の経過と共に環境データを追加及び削除する。また環境理解手段３１は、重複した内容の環境データを位置の変化に置き換えるなどして削除すると共に、認識結果がヌルデータである環境データ中の位置が認識結果がヌルデータでない他の環境データ中の位置の近傍である場合、認識結果がヌルデータである環境データを削除する。加えて、認識結果がヌルデータでない環境データ中の位置が、認識結果がヌルデータでない他の環境データ中の位置の近傍である場合、もしこれらの環境データ中の認識結果が一致すれば、前者の環境データを削除する。環境データの記録時間と環境データ中の位置の近傍の範囲により、環境地図の精度が決定される。環境座標系上での現在の移動カメラ１０の位置が環境地図に追加された後、環境地図は環境理解手段３１から環境地図保持手段３３、物体計数手段３５、及び物体位置推定手段３４へ出力される。ただし、環境理解手段３１は幾何解析手段３７から幾何解析結果を入力すると、まず画像認識手段２９が認識の対象としている図形であるかどうか判断する。もし幾何解析結果が対象外の図形であれば、移動カメラ１０の環境座標系上の位置の近傍にあり、しかも認識結果がヌルデータである環境データを、環境理解手段３１は直ちに環境地図から削除する。これにより環境地図から不必要な環境データが削除され、物体位置推定手段３４などが不必要な物体推定位置を出力しなくても済む。幾何解析結果が対象図形の場合、環境理解手段３１は一定時間画像認識手段２９からの認識結果を待つ。
【００９０】
環境地図保持手段３３が環境理解手段３１から環境地図を入力すると、もし環境地図の出力先が適当なフォーマットの信号を要求するならば、環境地図の出力先が要求するフォーマットに環境地図を変換する。その後環境地図保持手段３３は環境地図の出力先に確実に環境地図を送信するように、一定期間環境地図を記憶する。
【００９１】
物体計数手段３５は環境理解手段３１から環境地図を入力すると、環境地図中、特定の物体を指し示す認識結果を有する環境データの数を数えて、任意物体数を生成する。環境データ中の認識結果は、画像認識手段２９によって識別される物体の種類の中からいくつでも選択できる。任意物体数は物体計数手段３５から物体数保持手段３６へ出力される。なお用途に応じて必要があれば、物体計数手段３５を変更することにより、容易に外部から計数すべき物体の種類を指定するようにできる。
【００９２】
物体数保持手段３６が物体計数手段３５から任意物体数を入力すると、任意物体数の出力先に確実に任意物体数を送信するように、一定期間任意物体数を記憶する。
【００９３】
物体位置推定手段３４は環境理解手段３１から環境地図を入力すると、認識結果がヌルデータである環境データを１つ選択し、この環境データ中の位置を抜き出す。この位置からカメラ／環境座標変換手段２０によって計算された移動カメラ１０の環境座標系上での現在位置を引くことにより、物体位置推定手段３４は、移動カメラ１０の環境座標系上での現在位置を原点とした、過去に粗エッジ情報１１２が生成されているにも関わらずまだ認識結果が出ていない移動物体の環境座標系上での相対位置を求めることができる。ただし現在この位置に移動物体が存在するとは限らない。したがってこの位置は移動物体が存在する可能性がある移動物体の推定位置となる。一方で、もし環境地図の中に認識結果がヌルデータである環境データがなければ、移動カメラ１０が移動可能な範囲で適当な環境座標系上の位置を生成する。このとき適当な位置を生成する基準として次のようなものが考えられる。第一に、疑似乱数により任意の位置を生成する。第二に、環境地図中の環境データ中の位置の密度が低い位置を計算する。第三に、移動カメラ１０が移動可能な範囲中の位置を適当な順番で順次生成する。例えば、移動カメラ１０が移動可能な範囲において左上端の位置から右に向けて順番に位置を生成し、右端に到達したら一段下に降りた後左に向けて順番に位置を生成し、左端に到達したら一段下に降りた後右に向けて順番に位置を生成することを繰り返す。これらの基準を用途や状況に応じて組み合せることにより、まだ移動カメラ１０が撮影していない移動物体の推定位置を効率的に推定することができる。物体推定位置は物体位置推定手段３４から運動制御手段２３へ出力される。
【００９４】
色情報生成手段４１が画像記憶手段１２からデジタル画像１１１を入力すると、デジタル画像１１１の各画素のうちその色が事前に指定された１つ以上の色及び色領域と一致するものを選択し、色情報画像１７２を生成する。色情報生成手段４１は画素単位で色情報１７１を生成することができるので、並列化に向いている。もし色情報生成手段４１が色情報画像１７２の全ての画素を並列に出力することができれば、色情報生成手段４１から位置／大きさ検出手段１７への通信は、画素毎に並列に行うことができる。
【００９５】
位置／大きさ検出手段１７が色情報生成手段４１から色情報画像１７２を入力すると、色情報１７１によって指し示された移動物体の領域の位置及び大きさを検出する。位置／大きさ検出手段１７は画素毎に近傍処理のみで、移動物体の領域の位置及び大きさの検出結果を表す重複情報画像１３２を生成することができるので、並列化に向いている。もし位置／大きさ検出手段１７が重複情報画像１３２の全ての画素を並列に出力することができれば、位置／大きさ検出手段１７から画像／環境座標変換手段２１への通信は、画素毎に並列に行うことができる。その後画像／環境座標変換手段２１及び位置選択手段２２によって重複情報画像１３２中の移動物体の位置が１つ選択され、運動制御手段２３へ出力される。
【００９６】
位置／大きさ／傾き検出手段４４はエッジ情報形成手段１５から形成エッジ情報画像１１５を入力すると、形成エッジ情報１１４によって指し示された移動物体の領域の位置、大きさ及び傾きを検出する。位置／大きさ／傾き検出手段４４は画素毎に近傍処理のみで、移動物体の領域の位置及び大きさの検出結果を表す重複情報画像１３２、及び移動物体の領域の傾き角度を表す傾き角度画像を生成することができるので、並列化に向いている。もし位置／大きさ／傾き検出手段４４が重複情報画像１３２の全ての画素及び傾き角度画像の全ての画素を並列に出力することができれば、位置／大きさ／傾き検出手段４４から傾き検出手段４２への通信は、画素毎に並列に行うことができる。
【００９７】
傾き検出手段４２は位置／大きさ／傾き検出手段４４から傾き角度画像を入力すると、最も中央に位置する傾き角度を検出する。これにより移動カメラ１０は現在中央に撮影している物体に合わせてロールすることができる。傾き角度は傾き検出手段４２から運動制御手段２３へ出力される。
【００９８】
なお、視覚装置２は、必ずしも図１４に示した全ての手段を用いなくても、移動カメラ１０を制御することも、物体の種別を識別したり、物体の位置を特定することも、可能である（例えば、国際公開番号ＷＯ００／１６２５９参照）。したがって視覚装置２の製造者及びプログラマーは、実際に視覚装置２を製造する際に、撮影すべき物体、求められる性能、提供されたコンピュータ資源及び利用可能なＬＳＩ技術に応じて必要な手段を取捨選択すれば良い。
【００９９】
さて、視覚装置２には、位置選択手段２２で選択された位置の他に次のような位置に移動カメラ１０をパン、チルト、ロール及びズームすることが求められる。まず静止物体が移動しているように移動カメラ１０が撮影するために、この視覚装置２は移動カメラ１０を振動させなければならない。そこで振動命令生成手段２５は移動カメラ１０が移動すべき位置を環境座標系上の位置として指定する。振動命令生成手段２５が指定する位置は極端に移動カメラ１０が振動しない範囲で疑似乱数などによって決定される。加えて、この視覚装置２には、外部から制御命令を入力することにより移動カメラ１０をパン、チルト、ロール及びズームすることが求められる。一般的な用途では移動カメラ１０の現在の向き、傾き及び倍率を基にしてパン、チルト、ロール及びズームがなされるので、制御命令入力手段２４を用いて、一旦制御命令を記憶した後に移動カメラ１０の現在位置を原点とした環境座標系上の位置を算出する。なお制御命令入力手段２４を改良することにより、容易に移動カメラ１０を特定の位置に移動させるようにすることができる。
【０１００】
そこで移動カメラ１０のパン、チルト、ロール及びズームを制御するために、運動制御手段２３が前述した環境座標系上の５つの位置から１つを選択する。その際に運動制御手段２３は、制御命令入力手段２４、物体位置推定手段３４、エッジ情報生成手段１４に由来する位置選択手段２２、色情報生成手段４１に由来する位置選択手段２２、振動命令生成手段２５の順番で、入力位置を提供可能な手段から選択する。選択された位置は運動制御手段２３によって環境座標系からカメラ座標系に変換される。その後カメラ命令生成手段２６によって移動カメラ１０が認識することができる命令に置き換えられて移動カメラ１０に送信される。これによりこの視覚装置２は移動カメラ１０のパン、チルト、ロール及びズームを制御することができる。
【０１０１】
なお移動カメラ１０の機種によっては、移動カメラ１０に特定の命令を送信しないと移動カメラ１０の状態、すなわち移動カメラ１０の向き、傾き及び倍率や、移動カメラ１０が移動中であるか若しくは停止中であるかといった情報を得ることができないものがある。そこで運動制御手段２３は、前述した５つの位置から１つを選んでカメラ命令生成手段２６に出力した後に、移動カメラ１０が移動中であるかどうかといった情報を問い合わせる命令を移動カメラ１０に送信するように、運動制御手段２３はカメラ命令生成手段２６に指示し、移動カメラ１０からカメラ／環境座標変換手段２０を介してこの情報を受け取るまで待つ。もし受け取った情報が移動中を示せば、移動カメラ１０が移動中であるかどうかといった情報を問い合わせる命令を移動カメラ１０に送信するように、運動制御手段２３は再度カメラ命令生成手段２６に指示する。もし受け取った情報が停止中を示せば、移動カメラ１０が現在の向き、傾き及び倍率を問い合わせる命令を移動カメラ１０に送信するように、運動制御手段２３はカメラ命令生成手段２６に指示する。この期間中運動制御手段２３は５つの位置を選択しない。カメラ命令生成手段２６は運動制御手段２３からの指示に従い、対応する命令を移動カメラ１０に送信する。カメラ／環境座標変換手段２０は移動カメラ１０が移動中であるかどうかといった情報をそのまま運動制御手段２３に送信し、また移動カメラ１０の現在の向き、傾き及び倍率をカメラ座標系から環境座標系の位置に変換する。これによりこの視覚装置２は、移動カメラ１０の状態を逐次調査しながら、移動カメラ１０のパン、チルト、ロール及びズームを制御することができる。
【０１０２】
最後に、視覚装置２では、エッジ情報生成手段１４及び位置／大きさ検出手段１７と、エッジ情報形成手段１５、位置／大きさ／傾き検出手段４４、物体／背景分離手段１６、領域正規化手段２７、画像保持手段３９、及びパターンマッチング手段３８との間で、各々の手段が入力する画像の解像度若しくは画像サイズを必ずしも一致させる必要はない。例えば、この視覚装置２において、エッジ情報生成手段１４にはデジタル画像１１１の解像度を低くした低解像度デジタル画像１１６を入力させ、一方、エッジ情報形成手段１５には、エッジ情報生成手段１４が生成した低解像度粗エッジ情報画像１１７の画像サイズを適当な方法でデジタル画像１１１の画像サイズに拡大した粗エッジ情報画像１１３を入力させ、物体／背景分離手段１６及び領域正規化手段２７にはデジタル画像１１１を入力させることにより、エッジ情報生成手段１４の負荷を低減することができる（図２５参照）。つまりエッジ情報形成手段１５以降で生成される正規化画像１４５の品質をほとんど変えることなく、位置／大きさ検出手段１７以降の移動カメラ１０のパン、チルト、ロール及びズームの制御をより高速にすることができる。そこでこの方法をさらに進めると、エッジ情報形成手段１５には、エッジ情報生成手段１４が生成した低解像度粗エッジ情報画像１１７のうち粗エッジ情報１１２が存在する領域を切り出した切出粗エッジ情報画像１１９を入力させ、物体／背景分離手段１６及び領域正規化手段２７には、デジタル画像１１１から切出粗エッジ情報画像１１９と同じ位置の領域を切り出した切出デジタル画像１２０を入力させることにより、エッジ情報形成手段１５以降の正規化画像１４５の生成の負荷を低減することができる（図２６参照）。ここでこの視覚装置２により、移動カメラ１０が移動物体をフレーム画像の中央に適切な大きさで撮影することができれば、デジタル画像１１１に対する切出粗エッジ情報画像１１９及び切出デジタル画像１２０の切出領域を事前に決定することができる。この方法により、この視覚装置２は１台の移動カメラ１０を用いることにより、広角カメラと高解像度カメラを用いた物体探索装置と同様の性能を達成することができる。
【０１０３】
さて、視覚装置２で用いられている画像記憶手段１２、色情報生成手段４１、エッジ情報生成手段１４、エッジ情報形成手段１５、位置／大きさ検出手段１７、位置／大きさ／傾き検出手段４４、物体／背景分離手段１６、領域正規化手段２７、マスク手段４０、画像保持手段３９、及びパターンマッチング手段３８は、配列演算ユニット１００（ARRAY OPERATION UNIT）から構成されるデータ処理装置１１０を用いることにより実装することができる。そこで以下では、配列演算ユニット１００を利用したデータ処理装置１１０の実施形態を挙げ、この視覚装置２を図面を参照して説明する。
【０１０４】
まず配列演算ユニット１００は、入力画像の１つの画素とその近傍画素を用いることにより、出力画像の１つの画素を生成する。そこで図１６に示したように、配列演算ユニット１００を入力画像のサイズに合わせて格子状に配列したデータ処理装置１１０を用いることにより、データ処理装置１１０は入力画像から出力画像を生成することができる。なお図１６において、配列演算ユニット１００をＡＯＵと略記する。次に配列演算ユニット１００は専用ハードウェアによって実装されても良いし、汎用コンピュータ上でソフトウェアによって実装することもできる。つまり入力画像から出力画像を生成することができれば、実装手段は制限されない。したがって配列演算ユニット１００のアルゴリズムを示すことにより、データ処理装置１１０の画像処理を示すことができる。そこで配列演算ユニット１００のアルゴリズムを示すために、図１４で示された画像記憶手段１２、色情報生成手段４１、エッジ情報生成手段１４、エッジ情報形成手段１５、位置／大きさ検出手段１７、位置／大きさ／傾き検出手段４４、領域正規化手段２７、マスク手段４０、画像保持手段３９、及びパターンマッチング手段３８で用いる数式について説明する。
【０１０５】
幅ｗ、高さｈ、帯域数ｂの任意の２ｎ階調画像をｘ、ｙ、ｗとすると、ｘ、ｙ、ｗは各々位置ｐ（ｉ，ｊ，ｋ）の帯域画素値ｘｉｊｋ、ｙｉｊｋ、ｗｉｊｋを用いて数式２、３及び４のように表される。なおアンダーラインが付された文字はベクトルを示す。またｎは非負の整数、ｗ、ｈ、ｂ、ｉ、ｊ、ｋは自然数である。
【０１０６】
【数２】
0003963424.tif 000003
【０１０７】
【数３】
0003963424.tif 000004
【０１０８】
【数４】
0003963424.tif 000005
【０１０９】
まず前記画像の各帯域画素値に対する点処理に関する関数について以下で説明する。
【０１１０】
画像ｘを二値画像に変換する場合、数式５に従って帯域画素値を二値化する。
【０１１１】
【数５】
0003963424.tif 000006
【０１１２】
画像ｘを帯域最大値画像に変換する場合、数式６に従ってｉ行ｊ列の画素の各帯域の値のうち最大値を選択する。なお前記帯域最大値画像は単帯域画像となるので、便宜上帯域数１の前記画像として取り扱うことにする。したがって関数Ｂｉｊ１（ｘ）の第３添字は１となっている。
【０１１３】
【数６】
0003963424.tif 000007
【０１１４】
画像ｘが二値画像であるとして、画像ｘを反転させる場合、数式７に従って計算する。
【０１１５】
【数７】
0003963424.tif 000008
【０１１６】
画像ｘの位置ｐ（ｉ，ｊ，ｋ）における対数変換は数式８に従って行われる。ここでｅはオフセットであり、自然対数関数が出力する値が有効範囲に入るようにするために使われるので、一般にｅ＝１で十分である。この対数化により帯域画素値同士の除算を減算にすることができる。また画像ｘが２ｎ階調のデジタル画像１１１であるとすると、帯域数に関わらず２ｎ個の要素を含むルックアップテーブルをメモリ１０２上に持つならば、毎回自然対数関数を計算する必要もなく、標準的な対数表を持つ必要もなくなる。
【０１１７】
【数８】
0003963424.tif 000009
【０１１８】
さて、画像の位置ｐ（ｉ，ｊ，ｋ）におけるｑ近傍の位置の集合Ｐｉｊｋ（ｑ）は数式９によって表される。ただしｑは４、８、２４、４８、８０、１２０、（２ｒ＋１）２−１と続く数列であり、ｒは自然数である。なお画像サイズをはみ出した位置が集合Ｐｉｊｋ（ｑ）に含まれる場合には、特に指定がない限り位置ｐ（ｉ，ｊ，ｋ）を代用するものとする。またこれ以外のときは、指定に従い、画素値が０に相当し、しかも画像に含まれない架空の位置を代用する。これにより辺縁処理は自動的に行われる。したがって集合Ｐｉｊｋ（ｑ）の要素の数Ｎｉｊｋは常にｑとなる。
【０１１９】
【数９】
0003963424.tif 000010
【０１２０】
そこで次に画像の各帯域画素値に対する最大８近傍１８２の近傍処理に関する関数及びオペレータについて以下で説明する。
【０１２１】
画像ｘの位置ｐ（ｉ，ｊ，ｋ）における平滑化は数式１０に従って行われる。ただしｉｎｔ（ｖ）は実数ｖの小数点以下切り捨てを意味するものとする。もし画像ｘの帯域画素値が整数値であるならば、ハードウェアの実装時にＮｉｊｋ＝４のときｘｌｍｋの総和に対して右シフト命令を２回、Ｎｉｊｋ＝８のときｘｌｍｋの総和に対して右シフト命令を３回実行するような回路に変更することにより、除算を実行する回路を省くことができる。
【０１２２】
【数１０】
0003963424.tif 000011
【０１２３】
ラプラシアンの計算であるが、これは数式１１に示すように単なる２階差分オペレータである。８近傍１８２の方がノイズの微妙な変化を捉えてゼロ点およびゼロ交差が多くなり、本発明には向いている。ただしＮｉｊｋが４か８であるので、もしハードウェアの実装時にＮｉｊｋ＝４のときｘｉｊｋに対して左シフト命令を２回、Ｎｉｊｋ＝８のときｘｉｊｋに対して左シフト命令を３回実行するような回路に変更することにより、実数の乗算を実行する回路を省くことができる。
【０１２４】
【数１１】
0003963424.tif 000012
【０１２５】
ラプラシアンによって求められた値からゼロ点を見付ける方法として、従来は正から負に変化する画素を見付けていたが、本発明では数式１２に従い、負から正にゼロ交差する画素の他に、負からゼロやゼロから正などゼロ点が経由したり、ゼロが継続する画素を見付けるようにする。本発明では、数式１２が見付けたゼロ点はエッジがある場所ではなく、ノイズがある場所、つまりエッジがない場所になる。また数式１２により実数値の二値化も同時に行っている。
【０１２６】
【数１２】
0003963424.tif 000013
【０１２７】
画像ｘが任意の二値画像であるとして、画像ｘのうち孔が空いている画素を埋める場合には、数式１３に従い計算する。ここでｆは埋めるべき孔の大きさを表すパラメータであり、一般にはｆ＝１で十分である。なお４近傍の場合にはその性質上対角線を検知することができないので、極力８近傍１８２にした方がよい。
【０１２８】
【数１３】
0003963424.tif 000014
【０１２９】
画像ｘが任意の二値画像であるとして、画像ｘのうち孤立点ないし孤立孔を削除する場合には、数式１４に従い計算する。なお４近傍の場合にはその性質上対角線を検知することができないので、極力８近傍１８２にした方がよい。
【０１３０】
【数１４】
0003963424.tif 000015
【０１３１】
画像ｘが任意の二値画像であるとして、画像ｘのうち線幅が１である画素を検知するために、４近傍画素を用いて数式１５に従い計算する。
【０１３２】
【数１５】
0003963424.tif 000016
【０１３３】
２つの画像ｘ、ｙが任意の二値画像であり、画像ｙが画像ｘのうち線幅が１である画素を検知した画像であるとすると、画像ｘのうち線幅が１である画素の線幅を拡張するために、４近傍画素を用いて数式１６に従い計算する。
【０１３４】
【数１６】
0003963424.tif 000017
【０１３５】
そこで数式１５の線幅検知と数式１６の線幅拡張を用いると、数式１７に従い二値画像の線幅補完を簡単に記述することができる。
【０１３６】
【数１７】
0003963424.tif 000018
【０１３７】
次に画像の各帯域画素値に対する近傍処理に関する関数及びオペレータについて以下で説明する。
【０１３８】
２つの画像ｘ、ｙがある場合、これらの画像の最大値画像は数式１８に従って計算される。
【０１３９】
【数１８】
0003963424.tif 000019
【０１４０】
２つの画像ｘ、ｙがある場合、これらの画像の差分は数式１９に従って計算される。
【０１４１】
【数１９】
0003963424.tif 000020
【０１４２】
ここで数式１１のラプラシアンと数式１９の差分を用いると、数式２０に従い画像の鮮鋭化を簡単に記述することができる。
【０１４３】
【数２０】
0003963424.tif 000021
【０１４４】
２つの画像ｘ、ｙがあり、画像ｙが単帯域二値画像である場合、数式２１に従い、画像ｙの帯域画素値を用いて画像ｘの各帯域画素値をマスクすることができる。
【０１４５】
【数２１】
0003963424.tif 000022
【０１４６】
２つの画像ｘ、ｙがあり、画像ｘとｙが二値画像である場合、数式２２に従い、画像ｘを基に画像ｙを整形することができる。
【０１４７】
【数２２】
0003963424.tif 000023
【０１４８】
２つの画像ｘ、ｙがあり、画像ｙが二値画像である場合、数式２３に従い、画像ｙで指定されなかった画像ｘの帯域画素値を、画像ｘの帯域画素値の近傍のうち画像ｙで指定された画像ｘの帯域画素値の平均値で補間する。ただしｉｎｔ（ｖ）は実数ｖの小数点以下切り捨てを意味するものとする。なお画像ｙが二値画像であるため分母は正数となるので、メモリ１０２に１からｑまでの逆数を記憶させることにより、整数の割り算を実数の掛け算に置き換えることができる。
【０１４９】
【数２３】
0003963424.tif 000024
【０１５０】
さて本発明では、画素の位置や移動量なども画像データのように扱うことで処理を単純にしている。これを位置の画像化と呼ぶ。以下では位置の画像化に関する幾つかの関数及びオペレータについて説明する。
【０１５１】
まず位置ｐ（ｌ，ｍ，ｏ）のｌ、ｍ、ｏ各々の値を画像データとして帯域画素値に変換するオペレータを＃とし、変換された帯域画素値を＃ｐ（ｌ，ｍ，ｏ）とする。次に帯域画素値が位置ｐ（ｉ，ｊ，ｋ）から位置ｐ（ｉ＋ｌ，ｊ＋ｍ，ｋ＋ｏ）へ移動する場合を考える。このとき帯域画素値の移動量は位置ｐ（ｌ，ｍ，ｏ）として表されるものとする。つまり移動量はある位置からのベクトルと見なすことができる。最後に帯域画素値から位置を取り出すオペレータを＃−１とする。したがって＃−１＃ｐ（ｌ，ｍ，ｏ）＝ｐ（ｌ，ｍ，ｏ）となる。
【０１５２】
そこで数式２４に従い、移動量ｐ（ｉ，ｊ，ｋ）を幅方向と高さ方向で表される平面内で１８０度反対方向に向けることができる。
【０１５３】
【数２４】
0003963424.tif 000025
【０１５４】
画像ｘがあり、画像ｘが単帯域二値画像である場合、画像ｘの位置ｐ（ｉ，ｊ，１）における重心位置への移動量は数式２５に従い計算される。なお、本来重心を計算する際には除算を行う必要があるが、８近傍１８２内への移動量を計算する際に除算は相殺されてしまうので、数式２５では除算が省かれている。
【０１５５】
【数２５】
0003963424.tif 000026
【０１５６】
移動量ｐ（ｉ，ｊ，ｋ）から、数式２６及び２７に従い８近傍１８２内への移動量を計算し、移動量画像に画像化することができる。なお数式２７は、画像の離散化により数式２６では対応しきれない場合にのみ利用する。
【０１５７】
【数２６】
0003963424.tif 000027
【０１５８】
【数２７】
0003963424.tif 000028
【０１５９】
したがって数式２５、２６及び２７を用いると、数式２８及び２９に従い、単帯域二値画像ｘの重心方向への移動量画像の帯域画素値を簡単に記述することができる。なお移動量画像の帯域数は１となる。
【０１６０】
【数２８】
0003963424.tif 000029
【０１６１】
【数２９】
0003963424.tif 000030
【０１６２】
一方で数式２４を用いると重心位置の反対位置を求めることができるので、数式３０に従い、単帯域二値画像ｘの重心と反対方向への移動量画像の帯域画素値を簡単に記述することができる。なお移動量画像の帯域数は１となる。
【０１６３】
【数３０】
0003963424.tif 000031
【０１６４】
２つの画像ｘ、ｙがあり、画像ｙが移動量画像である場合、数式３１に従い、画像ｙで指し示された移動位置に画像ｘの帯域画素値を移動した後、同じ帯域画素に移動した帯域画素値の合計を濃淡画像にすることができる。
【０１６５】
【数３１】
0003963424.tif 000032
【０１６６】
そこで数式５、２８、２９及び３１を用いることにより、数式３２又は数式３３に従い、単帯域濃淡画像ｘを近傍の重心方向に移動した後、同じ帯域画素に移動した帯域画素値の合計を簡単に記述することができる。
【０１６７】
【数３２】
0003963424.tif 000033
【０１６８】
【数３３】
0003963424.tif 000034
【０１６９】
ところで、数式３１において近傍数ｑが８に限定されると、移動量画像ｙは画素毎に８近傍１８２の中から移動元を特定することができる。そこで、画像ｘが重複情報画像１３２であり、しかも図１７に示すように、ｘの各画素の８近傍１８２に対して反時計回りに１から８までの番号が付けられた場合、数式３４から数式４１までの８つの数式は、それぞれ８個の移動元毎に、移動可能な画像ｘの帯域画素値を求めることができる。
【０１７０】
【数３４】
0003963424.tif 000035
【０１７１】
【数３５】
0003963424.tif 000036
【０１７２】
【数３６】
0003963424.tif 000037
【０１７３】
【数３７】
0003963424.tif 000038
【０１７４】
【数３８】
0003963424.tif 000039
【０１７５】
【数３９】
0003963424.tif 000040
【０１７６】
【数４０】
0003963424.tif 000041
【０１７７】
【数４１】
0003963424.tif 000042
【０１７８】
そこで数式３２及び３３の代りに数式４２及び４３を用いることにより、８個の移動元重複情報１８３から構成される８帯域濃淡画像ｘ、及び重複情報１３１から構成される単帯域濃淡画像ｙから、８個の移動元毎の移動元重複情報１８３が生成される。
【０１７９】
【数４２】
0003963424.tif 000043
【０１８０】
【数４３】
0003963424.tif 000044
【０１８１】
２つの画像ｘ、ｙがあり、画像ｘが二値画像で、画像ｙが移動量画像である場合、画像ｘの各帯域画素値の移動先の位置を求めることができるので、移動先が重複する帯域画素値を見つけることができる。そこで画像ｘの各帯域画素値の移動先が重複することなく、しかも移動する各帯域画素値が存在することを表す移動可能画像の帯域画素値は、数式４４に従い生成される。なお移動可能画像の帯域数は１となる。
【０１８２】
【数４４】
0003963424.tif 000045
【０１８３】
３つの画像ｘ、ｙ、ｗがあり、画像ｙが移動可能画像であり、画像ｗが移動量画像である場合、数式４５に従い画像ｘの帯域画素値を移動することができる。
【０１８４】
【数４５】
0003963424.tif 000046
【０１８５】
そこで数式３０、数式４４及び数式４５を用いると、数式４６に従い、二値画像ｙから計算される重心位置と反対方向に画像ｘの帯域画素を移動することで得られる画像の帯域画素値を簡単に記述することができる。
【０１８６】
【数４６】
0003963424.tif 000047
【０１８７】
そこで数式２から数式４６までを用いることにより、図１４で示された画像記憶手段１２、色情報生成手段４１、エッジ情報生成手段１４、エッジ情報形成手段１５、位置／大きさ検出手段１７、位置／大きさ／傾き検出手段４４、領域正規化手段２７、マスク手段４０、及び画像保持手段３９を実装するデータ処理装置１１０の全ての配列演算ユニット１００のアルゴリズムを記述することができる。以下では、データ処理装置１１０中の任意の配列演算ユニット１００のアルゴリズムを用いて、画像記憶手段１２、色情報生成手段４１、エッジ情報生成手段１４、エッジ情報形成手段１５、位置／大きさ検出手段１７、位置／大きさ／傾き検出手段４４、領域正規化手段２７、マスク手段４０、及び画像保持手段３９を説明する。
【０１８８】
データ処理装置１１０によって実現される画像記憶手段１２がデジタル画像１１１を記憶するために、格子状に配列された配列演算ユニット１００は同期して並列に動作する。格子上ｉ行ｊ列に配置された配列演算ユニット１００をＡＯＵｉｊとすると、ＡＯＵｉｊのアルゴリズムは図１８のようになる。
【０１８９】
ステップ１２０１で、ＡＯＵｉｊを格子上のｉ行ｊ列に配置する。これは論理的であれ物理的であれ、ＡＯＵｉｊの近傍を決定するために必要である。
【０１９０】
ステップ１２０２で、ＡＯＵｉｊの近傍や変数の初期値を設定する。
【０１９１】
ステップ１２０３で、順次入力されるデジタル画像１１１が無くなったかどうか判断する。もしデジタル画像１１１が無ければ（ステップ１２０３：ＹＥＳ）、アルゴリズムを終了する。もしデジタル画像１１１があれば（ステップ１２０３：ＮＯ）、ステップ１２０４に移行する。ただし特定の画像サイズのみに対して配列演算ユニット１００を実装する場合には、無限ループにしても良い。
【０１９２】
ステップ１２０４で、デジタル画像１１１が準備されるまで入力待ちをする。
【０１９３】
ステップ１２０５で、デジタル画像１１１のｉ行ｊ列の画素を帯域数分入力する。このためＡＯＵｉｊは少なくとも帯域数分の画像データを記憶するメモリ１０２を必要とする。
【０１９４】
ステップ１２０６で、入力待ちの間出力できるように、デジタル画像１１１のｉ行ｊ列の画素を記憶する。
【０１９５】
ステップ１２０７で、デジタル画像１１１の帯域画素値を出力する。その後ステップ１２０３に戻る。
【０１９６】
これにより、配列演算ユニット１００から構成されるデータ処理装置１１０を用いて、画像記憶手段１２はデジタル画像１１１を記憶することができる。
【０１９７】
図１９に示すように、データ処理装置１１０によって実現される色情報生成手段４１がデジタル画像１１１の各画素から色情報１７１を生成するために、格子状に配列された配列演算ユニット１００は同期して並列に動作する。格子上ｉ行ｊ列に配置された配列演算ユニット１００をＡＯＵｉｊとすると、ＡＯＵｉｊのアルゴリズムは図２０のようになる。
【０１９８】
ステップ４１０１で、ＡＯＵｉｊを格子上のｉ行ｊ列に配置する。これは論理的であれ物理的であれ、ＡＯＵｉｊの近傍を決定するために必要である。
【０１９９】
ステップ４１０２で、ＡＯＵｉｊの近傍や変数の初期値を設定する。
【０２００】
ステップ４１０３で、順次入力されるデジタル画像１１１が無くなったかどうか判断する。もしデジタル画像１１１が無ければ（ステップ４１０３：ＹＥＳ）、アルゴリズムを終了する。もしデジタル画像１１１があれば（ステップ４１０３：ＮＯ）、ステップ４１０４に移行する。ただし特定の画像サイズのみに対して配列演算ユニット１００を実装する場合には、無限ループにしても良い。
【０２０１】
ステップ４１０４で、デジタル画像１１１のｉ行ｊ列の画素を帯域数分入力する。このためＡＯＵｉｊは少なくとも帯域数分の画像データを記憶するメモリ１０２を必要とする。
【０２０２】
ステップ４１０５で、デジタル画像１１１のｉ行ｊ列の画素から特定の色を抽出して色情報１７１を生成する。生成された色情報１７１は色情報画像１７２の帯域画素値として扱われる。
【０２０３】
ステップ４１０６で、色情報画像１７２の帯域画素値を出力する。その後ステップ４１０３に戻る。
【０２０４】
これにより、配列演算ユニット１００から構成されるデータ処理装置１１０を用いて、色情報生成手段４１はデジタル画像１１１から色情報画像１７２を生成することができる。
【０２０５】
図２１に示すように、データ処理装置１１０によって実現されるエッジ情報生成手段１４がデジタル画像１１１から粗エッジ情報画像１１３を生成するために、格子状に配列された配列演算ユニット１００は同期して並列に動作する。格子上ｉ行ｊ列に配置された配列演算ユニット１００をＡＯＵｉｊとすると、エッジ情報生成手段１４に対するＡＯＵｉｊのアルゴリズムは図２２のようになる。
【０２０６】
ステップ１４０１で、ＡＯＵｉｊを格子上のｉ行ｊ列に配置する。これは論理的であれ物理的であれ、ＡＯＵｉｊの近傍を決定するために必要である。
【０２０７】
ステップ１４０２で、ＡＯＵｉｊの近傍や変数の初期値を設定する。近傍の設定においては、前記各関数で使う近傍サイズｑを個別に４か８に決めても良いし、全部を４か８に統一しても良い。本発明のエッジ情報生成手段１４が生成する粗エッジ情報１１２の正確さを上げるためには近傍サイズｑを全て８に設定することが望ましい。しかしながら粗エッジ情報１１２を生成するための計算時間の制約や、デジタル画像１１１の帯域数などにより、エッジ情報生成手段１４は必要に応じて適宜近傍サイズを変えることで対処することができる。
【０２０８】
ステップ１４０３で、デジタル画像１１１が終了したかどうか判断する。もしデジタル画像１１１が無ければ（ステップ１４０３：ＹＥＳ）、アルゴリズムを終了する。もしデジタル画像１１１があれば（ステップ１４０３：ＮＯ）、ステップ１４０４に移行する。ただし特定の帯域数と画像サイズに対して配列演算ユニット１００を実装する場合には、無限ループにしても良い。
【０２０９】
ステップ１４０４で、デジタル画像１１１のｉ行ｊ列の画素を帯域数分入力する。これは、ＡＯＵｉｊがデジタル画像１１１のｉ行ｊ列の画素を一括して処理するためである。このためＡＯＵｉｊは少なくとも帯域数分の画像データを記憶するメモリ１０２を必要とする。
【０２１０】
ステップ１４０５で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、入力したデジタル画像１１１の各帯域画素値に対して関数Ｓｉｊｋ（ｘ）に従い平滑化を行う。平滑化された帯域画素値は平滑化画像の帯域画素値として扱われる。ここで関数Ｓｉｊｋ（ｘ）は必要に応じて数回繰り返しても良い。一般的な多帯域画像の場合、この回数は２回で十分である。
【０２１１】
ステップ１４０６で、平滑化画像の各帯域画素値に対して関数Ｌｉｊｋ（ｘ）に従い対数変換を行う。対数変換された各帯域画素値は対数変換画像の帯域画素値として扱われる。
【０２１２】
ステップ１４０７で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、対数変換画像の各帯域画素値に対して関数Ｅｉｊｋ（ｘ）に従い鮮鋭化を行う。鮮鋭化された帯域画素値は鮮鋭化画像の帯域画素値として扱われる。なおデジタル画像１１１にノイズが多量に含まれている場合には、このステップを省略することができる。
【０２１３】
ステップ１４０８で、鮮鋭化画像の各帯域画素値に対して関数Ｄｉｊｋ（ｘ，ｙ）に従い１入力前鮮鋭化画像の各帯域画素値を引く。差分を計算された帯域画素値は時間差分画像の帯域画素値として扱われる。
【０２１４】
ステップ１４０９で、１入力前鮮鋭化画像の各帯域画素値を鮮鋭化画像の対応する各帯域画素値で置き換える。
【０２１５】
ステップ１４１０で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、時間差分画像の各帯域画素値に対してオペレータ∇２ｉｊｋｘに従いラプラシアンの計算を行う。ラプラシアンを計算された帯域画素値は時間差分ラプラシアン画像の帯域画素値として扱われる。
【０２１６】
ステップ１４１１で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、時間差分ラプラシアン画像の各帯域画素値に対して関数Ｚｉｊｋ（ｘ）に従いゼロ点を抽出する。ゼロ点を抽出された帯域画素値は時間差分ゼロ点画像の帯域画素値として扱われる。
【０２１７】
ステップ１４１２で、時間差分ラプラシアン画像の各帯域画素値に対して関数Ｂｉｊ1（ｘ）に従い各帯域画素値のうち最大値を検出する。検出された最大値帯域画素値は最大値時間差分ゼロ点画像の帯域画素値として扱われる。なお便宜上帯域数は１である。
【０２１８】
ステップ１４１３で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、鮮鋭化画像の各帯域画素値に対してオペレータ∇２ｉｊｋｘに従いラプラシアンの計算を行う。ラプラシアンを計算された帯域画素値はラプラシアン画像の帯域画素値として扱われる。
【０２１９】
ステップ１４１４で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、ラプラシアン画像の各帯域画素値に対して関数Ｚｉｊｋ（ｘ）に従いゼロ点を抽出する。ゼロ点を抽出された帯域画素値はゼロ点画像の帯域画素値として扱われる。
【０２２０】
ステップ１４１５で、ラプラシアン画像の各帯域画素値に対して関数Ｂｉｊ1（ｘ）に従い各帯域画素値のうち最大値を検出する。検出された最大帯域画素値は最大値ゼロ点画像の帯域画素値として扱われる。なお便宜上帯域数は１である。
【０２２１】
ステップ１４１６で、ラプラシアン画像の各帯域画素値と時間差分ラプラシアン画像の各帯域画素値に対して関数Ｍｉｊｋ（ｘ，ｙ）に従い各々の画像の同じ位置にある帯域画素値のうち最大値を検出する。検出された最大帯域画素値は混成ゼロ点画像の帯域画素値として扱われる。なお便宜上帯域数は１である。
【０２２２】
ステップ１４１７で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、混成ゼロ点画像の帯域画素値に対して関数Ｆｉｊｋ（ｘ）に従い孔を除去する。孔を除去された帯域画素値は孔除去混成ゼロ点画像の帯域画素値として扱われる。なお便宜上帯域数は１である。ここで関数Ｆｉｊｋ（ｘ）は必要に応じて数回繰り返しても良い。一般的な多帯域画像の場合、この回数は１回で十分である。
【０２２３】
ステップ１４１８で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、孔除去混成ゼロ点画像の帯域画素値に対して関数Ａｉｊｋ（ｘ）に従い孤立点および孤立孔を除去する。孤立点および孤立孔を除去された帯域画素値はノイズ除去混成ゼロ点画像の帯域画素値として扱われる。なお便宜上帯域数は１である。
【０２２４】
ステップ１４１９で、ノイズ除去混成ゼロ点画像の帯域画素値に対して関数Ｉｉｊｋ（ｘ）に従い０と１を反転させる。反転された帯域画素値は粗エッジ情報画像１１３の帯域画素値として扱われる。
【０２２５】
ステップ１４２０で、粗エッジ情報画像１１３の帯域画素値を出力する。その後ステップ１４０３に戻る。
【０２２６】
これにより、配列演算ユニット１００から構成されるデータ処理装置１１０を用いて、エッジ情報生成手段１４はデジタル画像１１１から粗エッジ情報画像１１３を生成することができる。
【０２２７】
図２３に示すように、データ処理装置１１０によって実現されるエッジ情報形成手段１５が、粗エッジ情報１１２から構成される粗エッジ情報画像１１３と、デジタル画像１１１と、から、形成エッジ情報１１４から構成される形成エッジ情報画像１１５を生成するために、格子状に配列された配列演算ユニット１００は同期して並列に動作する。格子上ｉ行ｊ列に配置された配列演算ユニット１００をＡＯＵｉｊとすると、ＡＯＵｉｊのアルゴリズムは図２４のようになる。
【０２２８】
ステップ１５０１で、ＡＯＵｉｊを格子上のｉ行ｊ列に配置する。これは論理的であれ物理的であれ、ＡＯＵｉｊの近傍を決定するために必要である。
【０２２９】
ステップ１５０２で、ＡＯＵｉｊの近傍や変数の初期値を設定する。近傍の設定においては、前記各関数で使う近傍サイズｑを個別に４か８に決めても良いし、全部を４か８に統一しても良い。本発明のエッジ情報形成手段１５が形成した形成エッジ情報１１４の正確さを上げるためには近傍サイズｑを全て８に設定することが望ましい。しかしながら粗エッジ情報１１２を形成するための計算時間の制約や、入力されるデジタル画像１１１の帯域数などにより、エッジ情報形成手段１５は必要に応じて適宜近傍サイズを変えることで対処することができる。
【０２３０】
ステップ１５０３で、順次入力されるデジタル画像１１１又は粗エッジ情報画像１１３が無くなったかどうか判断する。もしデジタル画像１１１若しくは粗エッジ情報画像１１３のいずれかが無ければ（ステップ１５０３：ＹＥＳ）、アルゴリズムを終了する。もしデジタル画像１１１若しくは粗エッジ情報画像１１３のいずれかがあれば（ステップ１５０３：ＮＯ）、ステップ１５０４に移行する。ただし特定の帯域数と画像サイズに対して配列演算ユニット１００を実装する場合には、無限ループにしても良い。
【０２３１】
ステップ１５０４で、デジタル画像１１１及び粗エッジ情報画像１１３のｉ行ｊ列の画素を帯域数分入力する。これは、ＡＯＵｉｊがデジタル画像１１１及び粗エッジ情報画像１１３のｉ行ｊ列の画素を一括して処理するためである。このためＡＯＵｉｊは少なくとも帯域数分の画像データを記憶するメモリ１０２を必要とする。
【０２３２】
ステップ１５０５で、デジタル画像１１１のｉ行ｊ列の画素と粗エッジ情報画像１１３のｉ行ｊ列の画素を分離する。これは、ＡＯＵｉｊがデジタル画像１１１のｉ行ｊ列の画素と粗エッジ情報画像１１３のｉ行ｊ列の画素を各々独立した画像の画素として処理するためである。もしデジタル画像１１１のｉ行ｊ列の画素と粗エッジ情報画像１１３のｉ行ｊ列の画素が初めから分離されて入力されていれば、特に何もしない。
【０２３３】
ステップ１５０６で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、入力したデジタル画像１１１の各帯域画素値に対して関数Ｓｉｊｋ（ｘ）に従い平滑化を行う。平滑化された各帯域画素値は平滑化画像の帯域画素値として扱われる。ここで関数Ｓｉｊｋ（ｘ）は必要に応じて数回繰り返しても良い。一般的な多帯域画像の場合、この回数は２回で十分である。
【０２３４】
ステップ１５０７で、平滑化画像の各帯域画素に対して関数Ｌｉｊｋ（ｘ）に従い対数変換を行う。対数変換された帯域画素値は対数変換画像の帯域画素値として扱われる。
【０２３５】
ステップ１５０８で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、対数変換画像の各帯域画素値に対して関数Ｅｉｊｋ（ｘ）に従い鮮鋭化を行う。鮮鋭化された帯域画素値は鮮鋭化画像の帯域画素値として扱われる。
【０２３６】
ステップ１５０９で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、鮮鋭化画像の各帯域画素値に対してオペレータ∇２ｉｊｋｘに従いラプラシアンの計算を行う。ラプラシアンを計算された帯域画素値はラプラシアン画像の帯域画素値として扱われる。
【０２３７】
ステップ１５１０で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、ラプラシアン画像の各帯域画素値に対して関数Ｚｉｊｋ（ｘ）に従いゼロ点を抽出する。ゼロ点を抽出された帯域画素値はゼロ点画像の帯域画素値として扱われる。
【０２３８】
ステップ１５１１で、ゼロ点画像の各帯域画素値に対して関数Ｂｉｊ1（ｘ）に従い各帯域画素値のうち最大値を検出する。検出された最大帯域画素値は最大値ゼロ点画像の帯域画素値として扱われる。なお便宜上帯域数は１である。
【０２３９】
ステップ１５１２で、最大値ゼロ点画像の帯域画素値に対して関数Ｉｉｊｋ（ｘ）に従い０と１を反転させる。反転された帯域画素値は基礎エッジ情報画像の帯域画素値として扱われる。
【０２４０】
ステップ１５１３で、入力した粗エッジ情報画像１１３の帯域画素値は初め整形粗エッジ情報画像の帯域画素値として扱われ、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、基礎エッジ情報画像の帯域画素値を用いて、整形粗エッジ情報画像の帯域画素値に対して関数Ｑｉｊｋ（ｘ，ｙ）に従い整形を行う。整形された帯域画素値は再び整形粗エッジ情報画像の帯域画素値として扱われる。ここで関数Ｑｉｊｋ（ｘ，ｙ）は本来整形粗エッジ情報画像の帯域画素値が変化しなくなるまで繰り返される。ただし計算時間の制約、入力される粗エッジ情報画像１１３の品質、形成される形成エッジ情報画像１１５に求められる品質などにより、整形処理は適当な繰り返し回数で計算を打ち切った方が良い。
【０２４１】
ステップ１５１４で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、整形粗エッジ情報画像の帯域画素値に対して関数Ｃｉｊｋ（ｘ）に従い線幅補完を行う。補完された帯域画素値は形成エッジ情報画像１１５の帯域画素値として扱われる。
【０２４２】
ステップ１５１５で、形成エッジ情報画像１１５の帯域画素値を出力する。その後ステップ１５０３に戻る。
【０２４３】
これにより、配列演算ユニット１００から構成されるデータ処理装置１１０を用いて、エッジ情報形成手段１５は粗エッジ情報画像１１３を形成エッジ情報画像１１５に形成することができる。
【０２４４】
ここで粗エッジ情報画像１１３から形成エッジ情報画像１１５への形成とは、ある場面を撮影した低解像度のデジタル画像１１１から生成されたエッジ情報から、同じ場面を撮影した高解像度のデジタル画像１１１から生成されるべきエッジ情報を推定することであると見なすことができる。そこで自然数ｎに対して、図２５に示すように、デジタル画像１１１の解像度を１／ｎに低くした低解像度デジタル画像１１６から、エッジ情報生成手段１４を用いて低解像度粗エッジ情報画像１１７を生成した場合、低解像度粗エッジ情報画像１１７をｎ倍拡大することにより粗エッジ情報画像１１３を生成することができる。ただしデジタル画像１１１の解像度を１／ｎにするためには、水平及び垂直方向に対して単純にデジタル画像１１１の連続するｎ個のうち１個を抽出すれば良い。また低解像度粗エッジ情報画像１１７をｎ倍拡大するためには、水平及び垂直方向に対して単純に低解像度粗エッジ情報画像１１７の連続する画素の間に帯域画素値が０である画素をｎ−１個埋めれば良い。このときｎがあまり大きくなければ、エッジ情報形成手段１５を実現するデータ処理装置１１０が、低解像度粗エッジ情報画像１１７を拡大した粗エッジ情報画像１１３を形成した形成エッジ情報画像１１５と、エッジ情報形成手段１５を実現するデータ処理装置１１０が、デジタル画像１１１から生成した粗エッジ情報画像１１３を形成した形成エッジ情報画像１１５とは、ほとんど同じものになる。この理由は、エッジ情報形成手段１５がデジタル画像１１１を用いて内部で生成したエッジ情報のうちどのエッジ情報を利用するのか参考にするために、エッジ情報形成手段１５が粗エッジ情報画像１１３を用いているだけだからである。したがって低解像度粗エッジ情報画像１１７を拡大した粗エッジ情報画像１１３をエッジ情報形成手段１５に入力した場合、低解像度デジタル画像１１６から低解像度粗エッジ情報画像１１７を生成するエッジ情報生成手段１４を実現するデータ処理装置１１０は計算量又はハードウェア量を低減することができる。
【０２４５】
さらにこの方法を発展させると、図２６に示すように、デジタル画像１１１の解像度を低くした低解像度デジタル画像１１６から生成した低解像度粗エッジ情報画像１１７のうち、粗エッジ情報１１２の周辺を切り出した低解像度切出粗エッジ情報画像１１８を生成することができる。この低解像度切出粗エッジ情報画像１１８を拡大した切出粗エッジ情報画像１１９と、デジタル画像１１１のうち同じ領域を切り出した切出デジタル画像１２０をエッジ情報形成手段１５を実現するデータ処理装置１１０に入力すると、切出形成エッジ情報画像１２１を生成することができる。この場合、エッジ情報形成手段１５を実現するデータ処理装置１１０はハードウェア量を低減することができる。なお視覚装置２は、切出デジタル画像１２０が常にデジタル画像１１１の中央になるように移動カメラ１０の向き及び倍率を変化させるためのものであると見なすこともできる。
【０２４６】
図２７に示すように、データ処理装置１１０によって実現される位置／大きさ検出手段１７が粗エッジ情報１１２を画素とする粗エッジ情報画像１１３から重複情報１３１を画素とする重複情報画像１３２を生成するために、格子状に配列された配列演算ユニット１００は同期して並列に動作する。格子上ｉ行ｊ列に配置された配列演算ユニット１００をＡＯＵｉｊとすると、ＡＯＵｉｊのアルゴリズムは図２８のようになる。
【０２４７】
ステップ１７０１で、ＡＯＵｉｊを格子上のｉ行ｊ列に配置する。これは論理的であれ物理的であれ、ＡＯＵｉｊの近傍を決定するために必要である。
【０２４８】
ステップ１７０２で、ＡＯＵｉｊの近傍や変数の初期値を設定する。近傍の設定においては、前記各関数で使う近傍サイズｑを個別に決めても良いし、全部を統一しても良い。本発明のデータ処理装置１１０が生成した重複情報画像１３２の正確さを上げるためには近傍サイズｑを全て大きな値に設定することが望ましい。しかしながら物体の粗エッジ情報１１２の重心を計算するための計算時間の制約や、入力される粗エッジ情報画像１１３のサイズなどにより、位置／大きさ検出手段１７は必要に応じて適宜近傍サイズを変えることで対処することができる。
【０２４９】
ステップ１７０３で、順次入力される粗エッジ情報画像１１３が無くなったかどうか判断する。もし粗エッジ情報画像１１３が無ければ（ステップ１７０３：ＹＥＳ）、アルゴリズムを終了する。もし粗エッジ情報画像１１３があれば（ステップ１７０３：ＮＯ）、ステップ１７０４に移行する。ただし特定の画像サイズのみに対して配列演算ユニット１００を実装する場合には、無限ループにしても良い。
【０２５０】
ステップ１７０４で、粗エッジ情報画像１１３のｉ行ｊ列の画素を１帯域分入力する。このためＡＯＵｉｊは少なくとも１帯域分の画像データを記憶するメモリ１０２を必要とする。
【０２５１】
ステップ１７０５で、粗エッジ情報画像１１３の粗エッジ情報１１２を重複情報画像１３２の重複情報１３１に変換する。重複情報１３１は１か０に相当する帯域画素値となる。
【０２５２】
ステップ１７０６で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、重複情報画像１３２の各帯域画素値に対して関数Δｉｊ１（ｘ）に従い移動量を計算する。移動量を画像化した帯域画素値は移動量画像の帯域画素値として扱われる。
【０２５３】
ステップ１７０７で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、重複情報画像１３２の各帯域画素値に対して関数Λｉｊ１（ｘ）に従い移動量が指し示す先に移動させる。移動した帯域画素値は新たに重複情報画像１３２の帯域画素値として扱われる。
【０２５４】
ステップ１７０８で、ステップ１７０６からステップ１７０７までの繰り返し回数を表す移動回数が指定回数に達したかどうか判断する。もし移動回数が指定回数に達していなければ（ステップ１７０８：ＮＯ）、ステップ１７０６に戻る。もし移動回数が指定回数に達していれば（ステップ１７０８：ＹＥＳ）、ステップ１７０９に移行する。なおこの指定回数は形成エッジ情報画像１１５のサイズや形成エッジ情報１１４が表す物体のサイズ、さらには近傍のサイズｑにより決定される。利用目的に応じて適切なパラメータを設定すれば、指定回数を大目に決定しても問題はないが、あまり指定回数を多くしすぎると、位置及び大きさの検出に要する時間が長くなる。
【０２５５】
ステップ１７０９で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、重複情報画像１３２の各帯域画素値に対して関数Δ’ｉｊ１（ｘ）に従い移動量を計算する。移動量を画像化した帯域画素値は移動量画像の帯域画素値として扱われる。
【０２５６】
ステップ１７１０で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、重複情報画像１３２の各帯域画素値に対して関数Λ’ｉｊ１（ｘ）に従い移動量が指し示す先に移動させる。移動した帯域画素値は新たに重複情報画像１３２の帯域画素値として扱われる。
【０２５７】
ステップ１７１１で、重複情報画像１３２の帯域画素値を出力する。その後ステップ１７０３に戻る。
【０２５８】
なお重複情報画像１３２の各重複情報１３１はその位置を中心とした周辺にある粗エッジ情報１１２の総数を表すので、結果的にその位置を中心とした物体の大きさを意味することになる。
【０２５９】
これにより、配列演算ユニット１００から構成されるデータ処理装置１１０を用いて、位置／大きさ検出手段１７は粗エッジ情報画像１１３から重複情報画像１３２を生成することができる。
【０２６０】
ここで図２８のアルゴリズムにおいて粗エッジ情報１１２から構成される粗エッジ情報画像１１３の代りに物体領域１４１を表す物体領域画像１４２を用いると、図２９に示すように、データ処理装置１１０によって実現される位置／大きさ検出手段１７は物体領域１４１を表す物体領域画像１４２からも重複情報１３１を表す重複情報画像１３２を生成することができる。ただし物体領域画像１４２を用いた場合、重複情報画像１３２の各重複情報１３１はその位置を中心とした物体領域１４１の画素の総数を表すので、結果的にその位置を中心とした物体の面積を意味することになる。したがって重複情報画像１３２から物体の大きさを求める場合には重複情報１３１の平方根を取るなど注意を要する。なお形成エッジ情報画像１１５及び色情報画像１７２を用いた場合も同様である。
【０２６１】
さて、図３０に示すように、データ処理装置１１０によって実現される位置／大きさ／傾き検出手段４４が粗エッジ情報１１２を画素とする粗エッジ情報画像１１３から重複情報１３１を画素とする重複情報画像１３２を生成するために、格子状に配列された配列演算ユニット１００は同期して並列に動作する。格子上ｉ行ｊ列に配置された配列演算ユニット１００をＡＯＵｉｊとすると、ＡＯＵｉｊのアルゴリズムは図３１のようになる。
【０２６２】
ステップ４４０１で、ＡＯＵｉｊを格子上のｉ行ｊ列に配置する。これは論理的であれ物理的であれ、ＡＯＵｉｊの近傍を決定するために必要である。
【０２６３】
ステップ４４０２で、ＡＯＵｉｊの近傍や変数の初期値を設定する。近傍の設定においては、前記各関数で使う近傍サイズｑを個別に決めても良いし、全部を統一しても良い。本発明のデータ処理装置１１０が生成した重複情報画像１３２の正確さを上げるためには近傍サイズｑを全て大きな値に設定することが望ましい。しかしながら物体の粗エッジ情報１１２の重心を計算するための計算時間の制約や、入力される粗エッジ情報画像１１３のサイズなどにより、位置／大きさ／傾き検出手段４４は必要に応じて適宜近傍サイズを変えることで対処することができる。
【０２６４】
ステップ４４０３で、順次入力される粗エッジ情報画像１１３が無くなったかどうか判断する。もし粗エッジ情報画像１１３が無ければ（ステップ４４０３：ＹＥＳ）、アルゴリズムを終了する。もし粗エッジ情報画像１１３があれば（ステップ４４０３：ＮＯ）、ステップ４４０４に移行する。ただし特定の画像サイズのみに対して配列演算ユニット１００を実装する場合には、無限ループにしても良い。
【０２６５】
ステップ４４０４で、粗エッジ情報画像１１３のｉ行ｊ列の画素を１帯域分入力する。このためＡＯＵｉｊは少なくとも１帯域分の画像データを記憶するメモリ１０２を必要とする。
【０２６６】
ステップ４４０５で、粗エッジ情報画像１１３の粗エッジ情報１１２を重複情報画像１３２の重複情報１３１に変換する。重複情報１３１は１か０に相当する帯域画素値となる。また８個の移動元重複情報１８３は０に相当する帯域画素値でクリアされる。
【０２６７】
ステップ４４０６で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、重複情報画像１３２の各帯域画素値に対して関数Δｉｊ１（ｘ）に従い移動量を計算する。移動量を画像化した帯域画素値は移動量画像の帯域画素値として扱われる。
【０２６８】
ステップ４４０７で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、移動元重複情報画像１８４の各帯域画素値に対して関数Λ＊ｉｊｋ（ｘ，ｙ）に従い移動量が指し示す先に移動させる。移動した帯域画素値は新たに移動元重複情報画像１８４の帯域画素値として扱われる。
【０２６９】
ステップ４４０８で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、重複情報画像１３２の各帯域画素値に対して関数Λｉｊ１（ｘ）に従い移動量が指し示す先に移動させる。移動した帯域画素値は新たに重複情報画像１３２の帯域画素値として扱われる。
【０２７０】
ステップ４４０９で、ステップ４４０６からステップ４４０８までの繰り返し回数を表す移動回数が指定回数に達したかどうか判断する。もし移動回数が指定回数に達していなければ（ステップ４４０９：ＮＯ）、ステップ４４０６に戻る。もし移動回数が指定回数に達していれば（ステップ４４０９：ＹＥＳ）、ステップ４４１０に移行する。なおこの指定回数は粗エッジ情報画像１１３のサイズや粗エッジ情報１１２が表す物体のサイズ、さらには近傍のサイズｑにより決定される。利用目的に応じて適切なパラメータを設定すれば、指定回数を大目に決定しても問題はないが、あまり指定回数を多くしすぎると、位置、大きさ及び傾きの検出に要する時間が長くなる。
【０２７１】
ステップ４４１０で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、重複情報画像１３２の各帯域画素値に対して関数Δ’ｉｊ１（ｘ）に従い移動量を計算する。移動量を画像化した帯域画素値は移動量画像の帯域画素値として扱われる。
【０２７２】
ステップ４４１１で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、移動元重複情報画像１８４の各帯域画素値に対して関数Λ’＊ｉｊｋ（ｘ，ｙ）に従い移動量が指し示す先に移動させる。移動した帯域画素値は新たに移動元重複情報画像１８４の帯域画素値として扱われる。
【０２７３】
ステップ４４１２で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、重複情報画像１３２の各帯域画素値に対して関数Λ’ｉｊ１（ｘ）に従い移動量が指し示す先に移動させる。移動した帯域画素値は新たに重複情報画像１３２の帯域画素値として扱われる。
【０２７４】
ステップ４４１３で、ステップ４４０６からステップ４４１２までの繰り返し回数を表す縮退回数が指定回数に達したかどうか判断する。もし縮退回数が指定回数に達していなければ（ステップ４４１３：ＮＯ）、ステップ４４０６に戻る。もし縮退回数が指定回数に達していれば（ステップ４４１３：ＹＥＳ）、ステップ４４１４に移行する。なおこの指定回数は粗エッジ情報画像１１３のサイズや粗エッジ情報１１２が表す物体のサイズ、さらには近傍のサイズｑにより決定される。利用目的に応じて適切なパラメータを設定すれば、指定回数を大目に決定しても問題はないが、あまり指定回数を多くしすぎると、位置、大きさ及び傾きの検出に要する時間が長くなる。
【０２７５】
ステップ４４１４で、重複情報画像１３２の帯域画素値及び移動元重複情報画像１８４の各帯域画素値を出力する。その後ステップ４４０３に戻る。
【０２７６】
なお重複情報画像１３２の各重複情報１３１はその位置を中心とした周辺にある粗エッジ情報１１２の総数を表すので、結果的にその位置を中心とした物体の大きさを意味することになる。また重複情報１３１がある画素だけに移動元重複情報１８３があるので、結果的にその位置を中心とした物体の傾きを意味することになる。
【０２７７】
これにより、配列演算ユニット１００から構成されるデータ処理装置１１０を用いて、位置／大きさ／傾き検出手段４４は粗エッジ情報画像１１３から重複情報画像１３２及び移動元重複情報画像１８４を生成することができる。
【０２７８】
ここで図３１のアルゴリズムにおいて、粗エッジ情報１１２から構成される粗エッジ情報画像１１３の代りに形成エッジ情報１１４から構成される形成エッジ情報画像１１５を用いることもできる。また粗エッジ情報１１２から構成される粗エッジ情報画像１１３の代りに物体領域１４１を表す物体領域画像１４２を用いると、図３２に示すように、位置／大きさ／傾き検出手段４４は、物体領域１４１を表す物体領域画像１４２からも重複情報画像１３２及び移動元重複情報画像１８４を生成することができる。ただし物体領域画像１４２を用いた場合、重複情報画像１３２の各重複情報１３１はその位置を中心とした物体領域１４１の画素の総数を表すので、結果的にその位置を中心とした物体の面積を意味することになる。したがって、重複情報画像１３２から物体の大きさを求める場合には、重複情報１３１の平方根を取るなど注意を要する。なお、物体領域画像１４２の代りに物体の特定の色の有無を表す色情報１７１から構成される色情報画像１７２を用いた場合も同様である。
【０２７９】
ここまでは粗エッジ情報画像１１３、形成エッジ情報画像１１５、物体領域画像１４２及び色情報画像１７２から移動元重複情報画像１８４を生成する方法について説明してきた。以下では、移動元重複情報１８３から物体の傾き角度を求める方法について説明する。
【０２８０】
まず図１７で示された近傍１から近傍８を移動元とする移動元重複情報１８３をそれぞれＮ１からＮ８とすると、反時計回りで表される傾き角度θは例えば数式４７に従って求められる。なお傾き角度θはラジアンで表されるものとし、物体が水平及び垂直である場合、傾き角度θは０ラジアンとなる。
【０２８１】
【数４７】
0003963424.tif 000048
【０２８２】
例えば、Ｎ１からＮ８までの移動元重複情報１８３が図３３のようになる場合、傾き角度θは約−０．４ラジアンとなる。数式４７は傾き角度θを求めるための簡単な数式であるが、勿論数式４７よりも細かい条件付けを行うことにより、本発明の利用者はより正確に傾き角度θを求めることができる。配列演算ユニット１００が数式４７を計算すれば、配列演算ユニット１００は８個の移動元重複情報１８３を出力する場合に比べて、より少ないデータ量を出力することができる。さらに傾き角度θが一定の刻み幅で表されても良いのなら、メモリ１０２は対数表を持つ代りに必要な数の傾き角度を用意したルックアップテーブルを記憶するだけで良い。
【０２８３】
ところで、図３０及び３２では、それぞれ１個の物体に対して生成された粗エッジ情報１１２を含む粗エッジ情報画像１１３及び物体領域１４１を含む物体領域画像１４２が位置／大きさ／傾き検出手段４４に入力されているが、勿論粗エッジ情報画像１１３及び物体領域画像１４２中に複数の物体がある場合でも、位置／大きさ／傾き検出手段４４は個々の物体の位置、大きさ及び傾きを検出することができる。さらに図３４に示すように色情報画像１７２がテクスチャとなる場合でも、位置／大きさ／傾き検出手段４４は個々の色情報１７１の塊から位置、大きさ及び傾きを検出することができる。したがって位置／大きさ／傾き検出手段４４はテクスチャ解析にも利用することができる。
【０２８４】
図３５に示すように、データ処理装置１１０によって実現される領域正規化手段２７が物体領域１４１を含む物体領域画像１４２、及び物体領域１４１と重なる分離物体領域１４３を含むデジタル画像１１１から正規化領域１４４を含む正規化画像１４５を生成するために、格子状に配列された配列演算ユニット１００は同期して並列に動作する。格子上ｉ行ｊ列に配置された配列演算ユニット１００をＡＯＵｉｊとすると、ＡＯＵｉｊのアルゴリズムは図３６のようになる。
【０２８５】
ステップ２７０１で、ＡＯＵｉｊを格子上のｉ行ｊ列に配置する。これは論理的であれ物理的であれ、ＡＯＵｉｊの近傍を決定するために必要である。
【０２８６】
ステップ２７０２で、ＡＯＵｉｊの近傍や変数の初期値を設定する。近傍の設定においては、前記各関数で使う近傍サイズｑを個別に決めても良いし、全部を統一しても良い。本発明の領域正規化手段２７が生成した正規化画像１４５の正確さを上げるためには近傍サイズｑを全て大きな値に設定することが望ましい。しかしながら分離物体領域１４３を正規化するための計算時間の制約や、入力されるデジタル画像１１１のサイズなどにより、領域正規化手段２７は必要に応じて適宜近傍サイズを変えることで対処することができる。
【０２８７】
ステップ２７０３で、順次入力される物体領域画像１４２又はデジタル画像１１１が無くなったかどうか判断する。もし物体領域画像１４２又はデジタル画像１１１が無ければ（ステップ２７０３：ＹＥＳ）、アルゴリズムを終了する。もし物体領域画像１４２又はデジタル画像１１１があれば（ステップ２７０３：ＮＯ）、ステップ２７０４に移行する。ただし特定の帯域数及び画像サイズのみに対して配列演算ユニット１００を実装する場合には、無限ループにしても良い。
【０２８８】
ステップ２７０４で、物体領域画像１４２のｉ行ｊ列の画素を１帯域分と、デジタル画像１１１のｉ行ｊ列の画素を帯域数分を入力する。これは、ＡＯＵｉｊが物体領域画像１４２のｉ行ｊ列の画素とデジタル画像１１１のｉ行ｊ列の画素を一括して処理するためである。このためＡＯＵｉｊは少なくとも総帯域数分の画像データを記憶するメモリ１０２を必要とする。
【０２８９】
ステップ２７０５で、物体領域画像１４２のｉ行ｊ列の画素とデジタル画像１１１のｉ行ｊ列の画素を分離する。これは、ＡＯＵｉｊが物体領域画像１４２のｉ行ｊ列の画素とデジタル画像１１１のｉ行ｊ列の画素を各々独立した画像の画素として処理するためである。もし物体領域画像１４２のｉ行ｊ列の画素とデジタル画像１１１のｉ行ｊ列の画素が初めから分離されて入力されていれば、特に何もしない。物体領域画像１４２及びデジタル画像１１１は各々更新物体領域画像及び更新デジタル画像にコピーされる。
【０２９０】
ステップ２７０６で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、更新物体領域画像の各帯域画素値に対して関数Ｒｉｊ１（ｘ）に従い移動量を計算する。移動量を画像化した帯域画素値は移動量画像の帯域画素値として扱われる。
【０２９１】
ステップ２７０７で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、更新物体領域画像の各帯域画素値に対して関数Ｈｉｊｋ（ｘ，ｙ）に従い移動可能な移動先帯域画素値を見つけることができる。移動可能な移動先であるかどうかを表す値は移動可能画像の帯域画素値として扱われる。
【０２９２】
ステップ２７０８で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、更新物体領域画像の各帯域画素値に対して関数Ｕｉｊｋ（ｘ，ｙ）に従い移動可能先に移動させる。移動した帯域画素値は新たに更新物体領域画像の帯域画素値として扱われる。
【０２９３】
ステップ２７０９で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、更新デジタル画像の各帯域画素値に対して関数Ｕｉｊｋ（ｘ，ｙ）に従い移動可能先に移動させる。移動した帯域画素値は新たに更新デジタル画像の帯域画素値として扱われる。
【０２９４】
ステップ２７１０で、ステップ２７０６からステップ２７０９までの繰り返し回数を表す移動回数が指定回数に達したかどうか判断する。もし移動回数が指定回数に達していなければ（ステップ２７１０：ＮＯ）、ステップ２７０６に戻る。もし移動回数が指定回数に達していれば（ステップ２７１０：ＹＥＳ）、ステップ２７１１に移行する。なおこの指定回数はデジタル画像１１１のサイズやデジタル画像１１１の分離物体領域１４３のサイズ、さらには近傍のサイズｑにより決定される。利用目的に応じて適切なパラメータを設定すれば、指定回数を大目に決定しても問題はないが、あまり指定回数を多くしすぎると、正規化に要する時間が長くなる。
【０２９５】
ステップ２７１１で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、移動を完了した更新物体領域画像の各帯域画素値に対して関数Ｖｉｊｋ（ｘ，ｙ）に従い近傍の平均値で補間する。なおｘとｙは共に更新物体領域画像となる。平均値で埋められた帯域画素値は正規化された更新物体領域画像の帯域画素値として扱われる。
【０２９６】
ステップ２７１２で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、移動を完了した更新デジタル画像の各帯域画素値に対して関数Ｖｉｊｋ（ｘ，ｙ）に従い近傍の平均値で埋める。なおｘは更新デジタル画像となり、ｙは更新物体領域画像となる。平均値で埋められた帯域画素値は正規化された更新デジタル画像の帯域画素値として扱われる。
【０２９７】
ステップ２７１３で、ステップ２７１１からステップ２７１２までの繰り返し回数を表す補間回数が指定回数に達したかどうか判断する。もし補間回数が指定回数に達していなければ（ステップ２７１３：ＮＯ）、ステップ２７１１に戻る。もし補間回数が指定回数に達していれば（ステップ２７１３：ＹＥＳ）、ステップ２７１４に移行する。一般的に補間回数は近傍サイズｑの半分程度の回数で十分である。
【０２９８】
ステップ２７１４で、ステップ２７０６からステップ２７１３までの繰り返し回数を表す継続回数が指定回数に達したかどうか判断する。もし継続回数が指定回数に達していなければ（ステップ２７１４：ＮＯ）、ステップ２７０６に戻る。もし継続回数が指定回数に達していれば（ステップ２７１４：ＹＥＳ）、ステップ２７１５に移行する。なおこの指定回数はデジタル画像１１１のサイズやデジタル画像１１１の分離物体領域１４３のサイズ、さらには近傍のサイズｑにより決定される。利用目的に応じて適切なパラメータを設定すれば、指定回数を大目に決定しても問題はないが、あまり指定回数を多くしすぎると、正規化に要する時間が長くなる。
【０２９９】
ステップ２７１５で、更新デジタル画像の帯域画素値を正規化画像１４５の帯域画素値として出力する。その後ステップ２７０３に戻る。
【０３００】
これにより、配列演算ユニット１００から構成されるデータ処理装置１１０を用いて、領域正規化手段２７が物体領域画像１４２及びデジタル画像１１１から正規化画像１４５を生成することができる。
【０３０１】
図３７に示すように、データ処理装置１１０によって実現されるマスク手段４０がデジタル画像１１１及び物体領域画像１４２からマスク画像１４８を生成するために、格子状に配列された配列演算ユニット１００は同期して並列に動作する。格子上ｉ行ｊ列に配置された配列演算ユニット１００をＡＯＵｉｊとすると、ＡＯＵｉｊのアルゴリズムは図３８のようになる。
【０３０２】
ステップ４００１で、ＡＯＵｉｊを格子上のｉ行ｊ列に配置する。これは論理的であれ物理的であれ、ＡＯＵｉｊの近傍を決定するために必要である。
【０３０３】
ステップ４００２で、ＡＯＵｉｊの近傍や変数の初期値を設定する。
【０３０４】
ステップ４００３で、順次入力されるデジタル画像１１１又は物体領域画像１４２が無くなったかどうか判断する。もしデジタル画像１１１若しくは物体領域画像１４２のいずれかが無ければ（ステップ４００３：ＹＥＳ）、アルゴリズムを終了する。もしデジタル画像１１１若しくは物体領域画像１４２のいずれかがあれば（ステップ４００３：ＮＯ）、ステップ４００４に移行する。ただし特定の帯域数と画像サイズに対して配列演算ユニット１００を実装する場合には、無限ループにしても良い。
【０３０５】
ステップ４００４で、デジタル画像１１１及び物体領域画像１４２のｉ行ｊ列の画素を帯域数分入力する。これは、ＡＯＵｉｊがデジタル画像１１１及び物体領域画像１４２のｉ行ｊ列の画素を一括して処理するためである。このためＡＯＵｉｊは少なくとも帯域数分の画像データを記憶するメモリ１０２を必要とする。
【０３０６】
ステップ４００５で、デジタル画像１１１の各帯域画素に対して関数Ｏｉｊｋ（ｘ，ｙ）に従いマスク処理を行う。マスクされた帯域画素値はマスク画像１４８の帯域画素値として扱われる。
【０３０７】
ステップ４００６で、マスク画像１４８の帯域画素値を出力する。その後ステップ４００３に戻る。
【０３０８】
これにより、配列演算ユニット１００から構成されるデータ処理装置１１０を用いて、マスク手段４０はデジタル画像１１１中の分離物体領域１４３以外をマスクすることができる。
【０３０９】
データ処理装置１１０によって実現される画像保持手段３９が正規化画像１４５を記憶するために、格子状に配列された配列演算ユニット１００は同期して並列に動作する。格子上ｉ行ｊ列に配置された配列演算ユニット１００をＡＯＵｉｊとすると、ＡＯＵｉｊのアルゴリズムは図３９のようになる。
【０３１０】
ステップ３８０１で、ＡＯＵｉｊを格子上のｉ行ｊ列に配置する。これは論理的であれ物理的であれ、ＡＯＵｉｊの近傍を決定するために必要である。
【０３１１】
ステップ３８０２で、ＡＯＵｉｊの近傍や変数の初期値を設定する。
【０３１２】
ステップ３８０３で、順次入力される正規化画像１４５が無くなったかどうか判断する。もし正規化画像１４５が無ければ（ステップ３８０３：ＹＥＳ）、アルゴリズムを終了する。もし正規化画像１４５があれば（ステップ３８０３：ＮＯ）、ステップ３８０４に移行する。ただし特定の画像サイズのみに対して配列演算ユニット１００を実装する場合には、無限ループにしても良い。
【０３１３】
ステップ３８０４で、正規化画像１４５のｉ行ｊ列の画素を帯域数分入力する。このためＡＯＵｉｊは少なくとも帯域数分の画像データを記憶するメモリ１０２を必要とする。
【０３１４】
ステップ３８０５で、出力先の装置が必要とすれば正規化画像１４５のフォーマットを変換する。特に正規化画像１４５の帯域数を１にしたり、デジタル画像１１１の帯域数が４以上の場合に正規化画像１４５の帯域数を３にして、アナログ信号を生成しやすくする場合に便利である。さもなくば何もしない。
【０３１５】
ステップ３８０６で、処理速度の異なる出力先の装置に画像データを確実に送信できるように、正規化画像１４５のｉ行ｊ列の画素を記憶する。
【０３１６】
ステップ３８０７で、正規化画像１４５の帯域画素値を出力する。その後ステップ３８０３に戻る。
【０３１７】
これにより、配列演算ユニット１００から構成されるデータ処理装置１１０を用いて、画像保持手段３９が正規化画像１４５を出力することができる。なおデジタル画像１１１及びマスク画像１４８を保持する画像保持手段３９も同様に動作する。
【０３１８】
ここまではデータ処理装置１１０が１個又は２個の画像を入力して近傍処理のみからなる画像処理を行うような画像記憶手段１２、色情報生成手段４１、エッジ情報生成手段１４、エッジ情報形成手段１５、位置／大きさ検出手段１７、位置／大きさ／傾き検出手段４４、領域正規化手段２７、マスク手段４０、及び画像保持手段３９について説明してきた。しかしながらパターンマッチング手段３８は非常に多数の画像を用いなければならない。そこで以下ではパターンマッチング手段３８で用いる近傍処理を示しながら、データ処理装置１１０によってパターンマッチング手段３８を実現する方法について説明する。
【０３１９】
まず正規化画像１４５をｘとし、ｎ個のテンプレート画像１４６をｙ１、ｙ２、、、ｙｈ、、、ｙｎとする。自然数ｇを用いると、マッチング結果画像１４７のｉ行ｊ列のマッチング結果δｉｊ１は、数式４８に従って正規化画像１４５及びテンプレート画像１４６のｉ行ｊ列の画素を比較し、正規化画像１４５の画素に最も似ている画素を有するテンプレート画像１４６の番号を指し示す。なおマッチング結果画像１４７は単帯域画像となるので、便宜上帯域数１の画像として取り扱うことにする。したがってマッチング結果δｉｊ１の第３添字は１となっている。
【０３２０】
【数４８】
0003963424.tif 000049
【０３２１】
ここで数式４８に従って生成されたマッチング結果δｉｊ１はマッチング結果画像１４７全体において必ずしも統一されていない。テンプレート画像１４６が多数ある場合、マッチング結果画像１４７はむしろモザイク状になる可能性が高い。そこでデータ処理装置１１０がマッチング結果δｉｊ１とそのｑ近傍内のマッチング結果に対するヒストグラムを計算し、マッチング結果δｉｊ１を収斂する方法を以下に示す。
【０３２２】
任意の単帯域画像ｘがマッチング結果画像１４７である場合、自然数ｇ、実数ｕとｖを用いると、マッチング結果画像１４７は数式４９及び５０に従って更新される。なおマッチング結果画像１４７は単帯域画像となるので、便宜上帯域数１の画像として取り扱うことにする。したがって関数Ψｉｊ１（ｘ）の第３添字は１となっている。
【０３２３】
【数４９】
0003963424.tif 000050
【０３２４】
【数５０】
0003963424.tif 000051
【０３２５】
マッチング結果画像１４７が変化しなくなるまでデータ処理装置１１０が数式４９及び５０を繰り返し計算することにより、マッチング結果画像１４７全体のマッチング結果を収斂することができる。このとき正規化画像１４５とテンプレート画像１４６の組み合わせにより、マッチング結果は次のように収斂する。もし正規化画像１４５の約半分の画素が特定のテンプレート画像１４６の画素に最も類似していれば、マッチング結果画像１４７の殆んどのマッチング結果はこの特定のテンプレート画像１４６の番号に収斂する。しかしながら正規化画像１４５の幾つかの画素の塊が幾つかの異なるテンプレート画像１４６の画素の塊と類似していれば、マッチング結果画像１４７には０で囲まれた幾つかのテンプレート画像１４６の番号の塊ができる。さらに正規化画像１４５がテンプレート画像１４６の集合と相関がなければ、マッチング結果画像１４７のマッチング結果は殆んど０となる。したがってデータ処理装置１１０によって実現されるパターンマッチングは、正規化画像１４５に最も似ているテンプレート画像１４６を特定することは難しいが、テンプレート画像１４６の中から幾つかの似ているテンプレート画像１４６を選択することができると考えられる。そこでパターンマッチングの結果から認識結果を生成する過程では、パターンマッチングによって生成されたマッチング結果画像１４７が列挙するテンプレート画像１４６の類似候補の中から、最も有力な候補１つを選択するだけで良い。
【０３２６】
図４０に示すように、データ処理装置１１０によって実現されるパターンマッチングが、テンプレート画像１４６のうち正規化画像１４５に最も似ている画像の番号を示すマッチング結果から構成されるマッチング結果画像１４７を生成するために、格子状に配列された配列演算ユニット１００は同期して並列に動作する。格子上ｉ行ｊ列に配置された配列演算ユニット１００をＡＯＵｉｊとすると、ＡＯＵｉｊのアルゴリズムは図４１のようになる。
【０３２７】
ステップ２９０１で、ＡＯＵｉｊを格子上のｉ行ｊ列に配置する。これは論理的であれ物理的であれ、ＡＯＵｉｊの近傍を決定するために必要である。
【０３２８】
ステップ２９０２で、ＡＯＵｉｊの近傍や変数の初期値を設定する。近傍の設定においては、前記各関数で使う近傍サイズｑを個別に決めても良いし、全部を統一しても良い。本発明のデータ処理装置１１０が生成したマッチング結果画像１４７の正確さを上げるためには近傍サイズｑを全て大きな値に設定することが望ましい。しかしながらマッチング結果を更新するための計算時間の制約や、入力される正規化画像１４５のサイズなどにより、パターンマッチングは必要に応じて適宜近傍サイズを変えることで対処することができる。
【０３２９】
ステップ２９０３で、順次入力されるテンプレート画像１４６が無くなったかどうか判断する。もしテンプレート画像１４６が無ければ（ステップ２９０３：ＹＥＳ）、ステップ２９０５に移行する。もしテンプレート画像１４６があれば（ステップ２９０３：ＮＯ）、ステップ２９０４に移行する。
【０３３０】
ステップ２９０４で、テンプレート画像１４６のｉ行ｊ列の画素を帯域数分入力する。このためＡＯＵｉｊは少なくとも帯域数とテンプレート画像１４６の数を掛けた分の画像データを記憶するメモリ１０２を必要とする。その後ステップ２９０３に戻る。
【０３３１】
ステップ２９０５で、順次入力される正規化画像１４５が無くなったかどうか判断する。もし正規化画像１４５が無ければ（ステップ２９０５：ＹＥＳ）、アルゴリズムを終了する。もし正規化画像１４５があれば（ステップ２９０５：ＮＯ）、ステップ２９０６に移行する。ただし特定の画像サイズのみに対して配列演算ユニット１００を実装する場合には、無限ループにしても良い。
【０３３２】
ステップ２９０６で、正規化画像１４５のｉ行ｊ列の画素を帯域数分入力する。このためＡＯＵｉｊは少なくとも帯域数分の画像データを記憶するメモリ１０２を必要とする。
【０３３３】
ステップ２９０７で、正規化画像１４５とテンプレート画像１４６からマッチング結果画像１４７のマッチング結果δｉｊ１を計算する。マッチング結果は正規化画像１４５に最も近いテンプレート画像１４６の番号を表す帯域画素値となる。
【０３３４】
ステップ２９０８で、ＡＯＵｉｊが近傍の配列演算ユニット１００と通信することにより、マッチング結果画像１４７の各帯域画素値に対して関数Ψｉｊ１（ｘ）に従いマッチング結果を更新する。更新された帯域画素値は再びマッチング結果画像１４７の帯域画素値として扱われる。ここで関数Ψｉｊ１（ｘ）は本来マッチング結果画像１４７の帯域画素値が変化しなくなるまで繰り返される。ただし計算時間の制約、入力される正規化画像１４５の品質、更新されたマッチング結果画像１４７に求められる品質などにより、更新処理は適当な繰り返し回数で計算を打ち切った方が良い。
【０３３５】
ステップ２９０９で、マッチング結果画像１４７の帯域画素値を出力する。その後ステップ２９０５に戻る。
【０３３６】
これにより、配列演算ユニット１００から構成されるデータ処理装置１１０を用いて、パターンマッチング手段３８は正規化画像１４５からマッチング結果画像１４７を生成することができる。
【０３３７】
ここまでは配列演算ユニット１００から構成されるデータ処理装置１１０を用いて、近傍処理のみからなる画像処理を行う方法について説明してきた。以下では配列演算ユニット１００から構成されるデータ処理装置１１０を用いて、近傍処理のみで実現される物体／背景分離手段１６について説明する。
【０３３８】
まず非線形振動子は一般に引き込み現象を起こす。この引き込み現象とは、リミットサイクルやアトラクタなどのような周期的挙動において、異なる周期を持つ非線形振動子が相互作用して簡単な定数比の周期で振動するよう制約される現象である。このとき１つの非線形振動子の振動を変化させると他の非線形振動子の振動も合わせて変化するので、これらの非線形振動子は同期している。しかも非線形振動子の相互作用を調整することにより、お互いの振動の位相差を極力小さくさせたり大きくさせたりできる。そこでこの相互作用を操作すると、非線形振動子の一群を、異なる位相を持つ複数のグループに分割することができる。物体／背景分離手段１６はこのような非線形振動子の引き込み現象を利用して、エッジ情報画像中のエッジ情報を境界とするように物体と背景を分離して、物体領域１４１を表す物体領域画像１４２を生成する。なお、ここでは非線形振動子としてファン・デル・ポールを用いた場合を例に説明する。
【０３３９】
まず、格子状に配列した非線形振動子から構成される非線形振動子ネットワークにおいて、ｉ行ｊ列にある非線形振動子をωｉｊとすると、非線形振動子ωｉｊのｑ近傍にある非線形振動子の集合Ωｉｊ（ｑ）は数式５１によって表される。ただしｑは４、８、２４、４８、８０、１２０、（２ｒ＋１）２−１と続く数列であり、ｒは自然数である。なおネットワークサイズをはみ出した非線形振動子が近傍集合Ωｉｊ（ｑ）に含まれる場合には、非線形振動子ωｉｊを代用するものとする。これにより辺縁処理は自動的に行われる。したがって近傍集合Ωｉｊ（ｑ）の要素の数は常にｑとなる。なおこのことから判る通り、非線形振動子ネットワークは単帯域画像と同じ扱いになる。表現を簡単にするため、非線形振動子ネットワークでは添字は幅方向と高さ方向の２つのみを使う。
【０３４０】
【数５１】
0003963424.tif 000052
【０３４１】
次に、非線形振動子はｑａ近傍に含まれる近傍集合Ωｉｊ（ｑａ）にある非線形振動子との間で数式５２に従い計算される結合値τｉｊｋｌによって結合される。なお対数表を用いない場合には数式５３による近似も可能である。またμ、νは適当な正の定数である。
【０３４２】
【数５２】
0003963424.tif 000053
【０３４３】
【数５３】
0003963424.tif 000054
【０３４４】
非線形振動子ネットワークの全ての非線形振動子が完全に同位相で同期した場合、プロセッサ１０１で計算する限り、非線形振動子ωｉｊは永久に同位相のまま動作し続けてしまう。そこで外乱ρｉｊを与えればこのような状態を回避することができる。外乱としては疑似乱数を用いることもできるが、数式５４のような簡単な式で求めても十分である。なおζｉｊはエッジ情報画像のｉ行ｊ列のエッジ情報の有無を表す。エッジ情報があれば１とし、なければ０とする。またκは適当な正の定数である。
【０３４５】
【数５４】
0003963424.tif 000055
【０３４６】
非線形振動子ωｉｊが近傍集合Ωｉｊ（ｑａ）の非線形振動子ωｋｌと同期するために、数式５５に従い近傍入力合計σｉｊを計算する。
【０３４７】
【数５５】
0003963424.tif 000056
【０３４８】
ファン・デル・ポール非線形振動子ωｉｊを構成する２つのパラメータφｉｊとψｉｊは数式５６及び５７に従って計算される。なおγ、εは適当な正の定数である。
【０３４９】
【数５６】
0003963424.tif 000057
【０３５０】
【数５７】
0003963424.tif 000058
【０３５１】
非線形振動子を物体領域１４１と背景領域に分離するためには全ての非線形振動子の位相のずれを計算する必要があるが、単純に物体領域１４１と背景領域の２つに分離するだけであるので、パラメータψｉｊがしきい値θ以上か未満かで位相ずれを計算する。物体領域１４１と背景領域を分離した結果を出力する出力λｉｊは数式５８によって求められる。なおθは適当な正の定数である。
【０３５２】
【数５８】
0003963424.tif 000059
【０３５３】
エッジ情報が物体と背景を分離するのに不十分であった場合にはエッジ情報を補間しなければならない。そのために非線形振動子ωｉｊのｑｂ近傍にある非線形振動子の集合Ωｉｊ（ｑｂ）中でいくつの非線形振動子が位相ずれを起こしているか求める必要がある。そこで数式５９によって輪郭パラメータηｉｊを計算する。
【０３５４】
【数５９】
0003963424.tif 000060
【０３５５】
この結果を基にエッジ情報の補間割合を示す境界パラメータξｉｊを数式６０によって計算する。なおα、β、ηｍｉｎ、ηｍａｘは適当な正の定数である。
【０３５６】
【数６０】
0003963424.tif 000061
【０３５７】
ここでは非線形振動子としてファン・デル・ポールの場合を説明したが、この他にブラッセレータ及びｉｎｔｅｇｒａｔｅ−ａｎｄ−ｆｉｒｅ型振動子のようなリミットサイクルで安定する非線形振動子や、ローレンツアトラクタ及びレスラー方程式のアトラクタを発生するカオス振動子など、引き込み現象を起こす任意の非線形振動子でも動作可能である。その場合はパラメータφｉｊとψｉｊを各々の非線形振動子のパラメータで置き換えるなり追加すれば良い。その際に適当なパラメータに近傍入力合計σｉｊと外乱ρｉｊを加えるだけである。但し、カオス振動子の場合には特に外乱ρｉｊを必要としない。
【０３５８】
数式５１から数式６０までを用いることにより、物体／背景分離手段１６を実装することができるデータ処理装置１１０の全ての配列演算ユニット１００のアルゴリズムを記述することができる。以下では、データ処理装置１１０中の任意の配列演算ユニット１００のアルゴリズムを用いて、物体／背景分離手段１６について説明する。
【０３５９】
図４２に示すように、データ処理装置１１０によって実現される物体／背景分離手段１６が、三角形のエッジ情報１５１を用いて三角形の内側領域１５２と三角形の外側領域１５３に分離するために、格子状に配列された配列演算ユニット１００は同期して並列に動作する。格子上ｉ行ｊ列に配置された配列演算ユニット１００をＡＯＵｉｊとすると、ＡＯＵｉｊのアルゴリズムは図４３のようになる。
【０３６０】
ステップ１６０１で、ＡＯＵｉｊを格子上のｉ行ｊ列に配置する。
【０３６１】
ステップ１６０２で、数式５２及び５３に基づいて近傍同士ωｉｊとωｋｌを結合値τｉｊｋｌで接続する。
【０３６２】
ステップ１６０３で、非線形振動子のパラメータφｉｊとψｉｊに適当な初期値を設定する。
【０３６３】
ステップ１６０４で、順次入力される形成エッジ情報画像１１５が無くなったかどうか判断する。もし形成エッジ情報画像１１５が無ければ（ステップ１６０４：ＹＥＳ）、アルゴリズムを終了する。もし形成エッジ情報画像１１５があれば（ステップ１６０４：ＮＯ）、ステップ１６０５に移行する。ただし特定の帯域数及び画像サイズのみに対して配列演算ユニット１００を実装する場合には、無限ループにしても良い。
【０３６４】
ステップ１６０５で、形成エッジ情報１１４のζｉｊを入力する。
【０３６５】
ステップ１６０６で、直前に入力した形成エッジ情報１１４のζｉｊから数式５４に従って外乱ρｉｊを計算する。
【０３６６】
ステップ１６０７で、近傍集合Ωｉｊ（ｑａ）中の非線形振動子ωｋｌがある配列演算ユニット１００のＡＯＵｋｌからζｋｌ、ξｋｌ、ψｋｌを入力して、合計値σｉｊを数式５５に従って計算する。
【０３６７】
ステップ１６０８で、非線形振動子のパラメータφｉｊ、ψｉｊを数式５６及び５７に従って計算する。即ち、これらの数式に示す微分方程式をルンゲ・クッタ法で解く。
【０３６８】
ステップ１６０９で、非線形振動子の出力λｉｊを数式５８に従って計算する。ここで、ψｉｊ≧θであればλｉｊ＝１とし、それ以外であればλｉｊ＝０とする。
【０３６９】
ステップ１６１０で、近傍集合Ωｉｊ（ｑｂ）中の非線形振動子ωｋｌがある配列演算ユニット１００のＡＯＵｋｌからλｋｌを入力して、輪郭パラメータηｉｊを数式５９に従って計算する。
【０３７０】
ステップ１６１１で、境界パラメータξｉｊを数式６０に従って計算する。即ち、この数式に示す微分方程式を差分法若しくはルンゲ・クッタ法で解く。
【０３７１】
ステップ１６１２で、ステップ１６０６からステップ１６１１までの繰り返し回数を表す分離回数が指定回数に達したかどうか判断する。もし分離回数が指定回数に達していなければ（ステップ１６１２：ＮＯ）、ステップ１６０６に戻る。もし分離回数が指定回数に達していれば（ステップ１６１２：ＹＥＳ）、ステップ１６１３に移行する。
【０３７２】
ステップ１６１３で、物体領域画像１４２の帯域画素値となる非線形振動子の出力λｉｊを出力する。その後ステップ１６０４に戻る。
【０３７３】
なおステップ１６１２での分離回数を求めるには、次のような方法を用いることができる。物体／背景分離手段１６では、画像サイズが一定であれば非線形振動子の初期状態に関わらずおおよそ全ての形成エッジ情報１１４においてある一定時間で分離が終了するので、事前にこの時間を計っておいてステップ１６０６からステップ１６１１までの繰り返し回数を求めておけば良い。これは非線形振動子の初期状態が一定の範囲内にあれば、引き込み現象により非線形振動子が同期するまでの時間はあまり大差がないからである。
【０３７４】
このように非線形振動子を計算するだけで、三角形のエッジ情報１５１を用いて三角形の内側領域１５２と三角形の外側領域１５３を分離することができるのは、非線形振動子の性質である引き込み現象を利用しているからである。つまり、２つの非線形振動子を正の結合値で結合した場合は同位相になろうとし、負の結合値で結合した場合は位相差が極力大きくなろうとする。この性質を用いると、格子状に並んだ非線形振動子を近傍同士正の結合値で結合することで、直接結合していない非線形振動子同士が同位相になる。さらに形成エッジ情報１１４を挟む画素の場所にある非線形振動子同士を負の結合値で結合すると、エッジ情報の両側がお互いに位相を極力ずらし合う。このようにすることで、全ての非線形振動子を結合することもなく三角形のエッジ情報１５１の内側と外側とで各々異なる位相集合ができる。したがって物体／背景分離手段１６は図４２のような三角形の内側領域１５２と三角形の外側領域１５３に分離する。このとき三角形の内側領域１５２と三角形の外側領域１５３の位相差は９０度を越えて可能な限り１８０度に近づき、三角形と背景領域が分離できる。
【０３７５】
ここで重要なことは、本実施形態では、形成エッジ情報１１４が得られる度に次に示すような方法で結合値を擬似的に変更していることである。まず数式５２及び５３で定めたように、非線形振動子ωｋｌを非線形振動子ωｉｊに結合するための結合値をτｉｊｋｌとする（ステップ１６０２参照）。形成エッジ情報１１４のうちζｉｊとζｋｌは共に、エッジがある場合には１、ない場合には０である。形成エッジ情報１１４のうちζｉｊとζｋｌを入力したら（ステップ１６０５参照）、配列演算ユニット１００のＡＯＵｋｌからＡＯＵｉｊに形成エッジ情報１１４ζｋｌが転送され、ＡＯＵｉｊでは結合値τｉｊｋｌ（１−ζｋｌ）を計算して結合値τｉｊｋｌの代用とする（ステップ１６０７参照）。この代用された結合値τｉｊｋｌ（１−ζｋｌ）に対して境界パラメータξｉｊが０から１までの倍率として作用する（ステップ１６０７参照）。
【０３７６】
図４４に示す通り、形成エッジ情報１１４が破線状態の三角形のエッジ情報１５４となった場合には破線の補間をする必要がある。まず初めに破線状態の三角形のエッジ情報１５４を用いてシステムを動作させる（ステップ１６０５参照）と、破線状態の三角形のエッジ情報１５４の内側と外側で位相差がおよそ９０度を越えるようになるが、三角形の内側と外側の境界部分は不明確である。そこで各ＡＯＵｉｊが非線形振動子の出力λｉｊを計算する（ステップ１６０９参照）。この出力λｉｊが１の場合、近傍の非線形振動子のうちλｋｌが１である非線形振動子をωｋｌとすると、パラメータψｉｊとψｋｌが共にθ以上となる。つまりλｉｊとλｋｌはおよそ同位相であり、θが正値であれば最悪でも位相差が９０度を越えることはない。この位相差の最大値はθの値によって決まり、λｉｊとλｋｌが共に１となる範囲でθを大きくしていくと、この位相差は０度に近づいていく。したがってλｉｊとλｋｌと用いると、近傍の非線形振動子うちおよそ同位相であるものの数を表す輪郭パラメータηｉｊは数式５９に従って計算される（ステップ１６１０参照）。続いてこの輪郭パラメータηｉｊが近傍全体のうち、およそ半分であれば結合値の倍率である境界パラメータξｉｊを数式６０に従って減少させ、それ以外であれば数式６０に従って増加させる（ステップ１６１１参照）。例えば、８近傍１８２の場合は３から５の間であれば数式６０に従って境界パラメータを減少させるとよい。この過程を繰り返し動作させ続けると、図４４に示す破線状態の三角形のエッジ情報１５４が与えられた場合、破線三角形の内側領域１５５と破線三角形の外側領域１５６に分離される。
【０３７７】
図４５に示す通り、２つの三角形が重なりあっている場合は、前方の三角形のエッジ情報１５７と後方の三角形のエッジ情報１５８が得られる。このとき前方三角形の内側領域１５９と後方三角形の内側領域１６０と二重三角形の背景領域１６１の３つの領域の非線形振動子の位相がお互いにずれることにより、３つの領域に分離される。また図４６に示す通り、２つの重なった円形のエッジ情報１６２が破線であっても、前方円形の内側領域１６３と後方円形の内側領域１６４と二重円の背景領域１６５の３つに分離される。
【０３７８】
これにより、配列演算ユニット１００から構成されるデータ処理装置１１０を用いて、物体／背景分離手段１６は形成エッジ情報画像１１５の形成エッジ情報１１４を境界として物体領域１４１と背景領域を分離することができる。なお、分離された複数の領域は出力λｉｊによって時間の経過と共に順次取り出されるが、配列演算ユニット１００は非線形振動子の位相を計算することにより、分離された複数の領域を位相グループとして一度に出力することができる。
【０３７９】
ここまで視覚装置２について説明してきた。当然のことながらこれらの視覚装置２は汎用のコンピュータによって実装することができるが、移動物体を探索の対象とする場合、移動物体の移動速度によっては前記手段の各々を高速に実行する必要がある。特にフレーム画像の画像サイズ若しくは解像度を上げたとき、画像自体を処理対象とする画像記憶手段１２、色情報生成手段４１、エッジ情報生成手段１４、エッジ情報形成手段１５、位置／大きさ検出手段１７、物体／背景分離手段１６、領域正規化手段２７、マスク手段４０、画像保持手段３９、及びパターンマッチング手段３８は、幅方向及び高さ方向の各々に対して画像サイズ若しくは解像度に比例して計算量が増大する。したがって視覚装置２は用途によっては望みうる性能を達成できない可能性がある。
【０３８０】
そこでデジタル技術を用いて画像記憶手段１２、色情報生成手段４１、エッジ情報生成手段１４、エッジ情報形成手段１５、位置／大きさ検出手段１７、物体／背景分離手段１６、領域正規化手段２７、マスク手段４０、画像保持手段３９、及びパターンマッチング手段３８を実装するために、配列演算ユニット１００はデータ処理装置１１０中で図１６のように格子状に配列され、さらに配列演算ユニット１００はデータ処理装置１１０中の隣接する配列演算ユニット１００だけと相互に通信できるように配線される。つまり４近傍同士が直接配線されることになる。これにより８近傍１８２同士を配線する場合に比べて、少ない電子部品と配線量で、同程度に高速に動作し、しかも将来近傍サイズを拡張する場合にも簡単に拡張性を有することができる。
【０３８１】
配列演算ユニット１００は図４７に示す通り、画像処理における数式を計算するためのプロセッサ（PROCESSOR）１０１と、数式で使われる全てのパラメータ、定数、関数及びオペレータを記憶するためのメモリ（MEMORY）１０２と、近傍の配列演算ユニット１００と通信するためのコントローラ（CONTROLLER）１０３から構成され、プロセッサ１０１はアドレスバス５１で指定したアドレス（ADDRESS）によりメモリ１０２及びコントローラ１０３の任意のメモリ素子及びレジスタを選択することができる。またプロセッサ１０１はデータバス５２を介してメモリ１０２及びコントローラ１０３と双方向に通信可能に接続され、アドレスバス５１で指定された任意のメモリ素子及びレジスタのデータ（DATA）にアクセスすることができる。配列演算ユニット１００が１つ以上の入力画素から構成される前入力データ群（FRONT INPUT DATA SET）を入力すると、コントローラ１０３は前入力データ群をメモリ１０２に記憶させる。またコントローラ１０３は、関数により作成されたメモリ１０２中の計算データを隣接する配列演算ユニット１００に送信すると共に、隣接する配列演算ユニット１００から受信した計算データをメモリ１０２に記憶させ、さらに必要ならば、入力した以外の配列演算ユニット１００に転送する。最終的にコントローラ１０３は、出力画像の画像データを結果データ（RESULT DATA）として出力する。
【０３８２】
このように各配列演算ユニット１００にコントローラ１０３を搭載する理由は、配列演算ユニット１００同士が通信している間にプロセッサ１０１が動作できるので、プロセッサ１０１は通信による待ち時間中にも計算することができて高速処理が実現できるからと、近傍の配列演算ユニット１００の数を変化させてもハードウェアを変更する必要もないからと、コントローラ１０３が画像の辺縁処理、つまり画像中の縁の画素に対する例外処理を自動的に行えるので、プロセッサ１０１のプログラムは辺縁処理をする必要がなくなり極めて単純になるからである。
【０３８３】
プロセッサ１０１とメモリ１０２は汎用的なデジタル回路４３１を用いることができる。コントローラ１０３の具体的な回路図は図４８に示す通りである。アドレスバッファ（ADDRESS BUFFER）５３はアドレスバス（ADDRESS BUS）５１を介してプロセッサ１０１からアドレス（ADDRESS）を受取り、アドレスデコーダ（ADDRESS DECODER）５４によって各レジスタ及びその他の機能ブロックを選択する。データバッファ（DATA BUFFER）５５はデータバス（DATA BUS）５２を介してプロセッサ１０１からデータ（DATA）を受取り、アドレスデコーダ５４で選択されたレジスタと内部データバス５６を介して排他的に通信する。通信方向は読み出し（READ）によって指定される。アドレスがフラグレジスタ（FLAG REGISTER）５７を指定した場合、データはフラグレジスタ５７に記憶され、フラグデコーダ（FLAG DECODER）５８によってデコードされ、複数信号（SIGNALS）として隣接する配列演算ユニット１００に送信される。複数信号はフラグエンコーダ（FLAG ENCODER）５９によって受信され、解析された後にステータスレジスタ（STATUS REGISTER）６０に記憶され、また受領（RECEIVE）として送信元の配列演算ユニット１００に返送される。受領は複数信号の送信元のフラグエンコーダ５９で受信され、結果として複数信号の送信完了が確認される。アドレスによってステータスレジスタ６０が選択されると、ステータスレジスタ６０の内容がデータバス５２を介してデータとしてプロセッサ１０１に送信される。１つ以上の入力画像（INPUT IMAGE）に対応した１つ以上の前入力送達（FRONT INPUT SEND）をフラグエンコーダ５９が受信すると１つ以上の入力画像からなる前入力データ群（FRONT INPUT DATA SET）が必要な記憶容量分用意された前入力データレジスタ（FRONT INPUT DATA REGISTER）６１に読み込まれる。アドレスによって前入力データレジスタ６１が選択されると、前入力データレジスタ６１の内容がデータとしてプロセッサ１０１に送信される。プロセッサ１０１が計算を完了したら、アドレスによって結果データレジスタ（RESULT DATA REGISTER）６２が選択され、結果データレジスタ６２が出力画像の画像データを結果データ（RESULT DATA）として読み込む。これと同時に、フラグエンコーダ５９が結果送達（RESULT SEND）を送信する。
【０３８４】
近傍の配列演算ユニット１００から計算に必要なデータを求められたら、アドレスとして出力データレジスタ（OUTPUT DATA REGISTER）６３を選択し、近傍の配列演算ユニット１００に送信すべきデータを計算データ（CALCURATION DATA）として出力データレジスタ６３に読み込む。その後、隣接する全ての配列演算ユニット１００に計算データとして送信される。上側の配列演算ユニット１００から複数信号（SIGNALS）を受信したら計算データを上入力データレジスタ（UPPER INPUT DATA REGISTER）６４に読み込む。その後、アドレスにより上入力データレジスタ６４が選択されたら、上入力データレジスタ６４の内容が計算データとして送信される。下側、左側、右側の配列演算ユニット１００から複数信号を受信した場合も同様であり、下入力データレジスタ６５、左入力データレジスタ６６、右入力データレジスタ６７が同様に動作する。
【０３８５】
各種バッファ、各種レジスタ、アドレスデコーダ５４の各ブロックは汎用的な電子回路である。フラグデコーダ５８とフラグエンコーダ５９は具体的には図４９と図５０に示すような入出力信号を有する。種別（TYPE）は出力データレジスタ（OUTPUT DATA REGISTER）６３に読み込まれた内容の種類を６ビットで表す。このビット数は配列演算ユニット１００が送受信すべき全ての計算データを区別するのに十分な値である。カウント−Ｘ（COUNT-X）及びカウント−Ｙ（COUNT-Y）は各々４ビットの符号なし整数を表し、配列演算ユニット１００の間の転送回数を示す。配列演算ユニット１００が計算データを送信する場合には各々のカウントが０となり、左右の配列演算ユニット１００から送信された計算データを再度送信する場合にはフラグエンコーダ５９のカウント−Ｘに１を足した値となり、上下の配列演算ユニット１００から送信された計算データを再度送信する場合にはフラグエンコーダ５９のカウント−Ｙに１を足した値となる。プロセッサ１０１が上下左右のうちどの方向に出力データレジスタ６３の内容を送信するかをフラグレジスタ５７の送達フラグ（SEND FLAG）に指定した後で、出力データレジスタ６３を指定するアドレスデコーダ５４の中央デコーディング（CENTRAL DECODING）をフラグデコーダ５８が受信すると、フラグデコーダ５８が送達（SEND）を送達フラグの指定方向に合わせて出力する。送達フラグは４ビットで表し、配列演算ユニット１００の計算データを四方の配列演算ユニット１００に送信する場合にはプロセッサ１０１が１１１１と設定し、右側の配列演算ユニット１００から送信された計算データを上下左側に転送する場合はプロセッサ１０１が１１１０と設定し、左側から上下右側に転送する場合は１１０１と設定し、下側から上側に転送する場合は１０００と設定し、上側から下側に転送する場合は０１００と設定する。これにより、転送に重複がなくなり効率的に転送できるだけでなく、転送方向の決定規則が明確になっているので、種別、カウント−Ｘ及びカウント−Ｙを組み合わせることにより、フラグエンコーダ５９はどの配列演算ユニット１００からどの種別の計算データが送信されたかを判定することができる。結果データレジスタ６２に計算データが結果データとして読み込まれると同時にフラグデコーダ５８は、結果デコーディング（RESULT DECODING）を受信し、結果送達（RESULT SEND）を送信する。
【０３８６】
フラグエンコーダ５９は四方のうちいずれかでも送達を受信したら、受信方向の種別とカウント−Ｘ、カウント−Ｙを受信し、その部分のステータスレジスタ６０の内容を更新する。この更新と同時に受信方向に受領を１にして送信する。送信元の配列演算ユニット１００のフラグエンコーダ５９では受領が１になった瞬間に受信し、ステータスレジスタ６０の受領ステータス（RECEIVE STATUS）を更新する。これにより各配列演算ユニット１００ではプロセッサ１０１がステータスレジスタ６０の受領ステータスを検査するだけで、どの入力データレジスタに有効な計算データが記憶されているか判断することができる。そこで例えば上入力データレジスタ６４に計算データが読み込まれていれば、プロセッサ１０１がアドレスを指定することにより上入力データレジスタ６４からデータを読み込むことができるが、同時にアドレスデコーダ５４から上デコーディング（UPPER DECODING）がフラグエンコーダ５９に送信され、受領ステータスのうち上部分が０に戻され、上側に向いた受領が０として送信される。下左右側の場合も同様に動作する。フラグエンコーダ５９が１つでも入力画像用の前入力送達を受信したら、ステータスレジスタ６０のうち受信した前入力送達に対応する入力画像用の前入力送達ステータス（FRONT INPUT SEND STATUS）を１にする。またプロセッサ１０１が入力画像用の前入力データレジスタ６１からデータを読み込むとき、アドレスデコーダ５４がフラグエンコーダ５９に前デコーディング（FRONT DECODING）を送信し、受信した前入力送達に対応する前入力送達ステータスを０にする。プロセッサ１０１はステータスレジスタ６０の内容を読み込むことにより、前入力データレジスタ６１に最新の入力画像が記憶されているかどうか判断することができる。
【０３８７】
プロセッサ１０１がコントローラ１０３を介して四方の配列演算ユニット１００に計算データを送信する場合のアルゴリズムを図５１に示す。図５１は、プロセッサ１０１によるプログラム制御と、フラグデコーダ５８及びフラグエンコーダ５９によるハードウェアロジックとの混成による処理を示すものである。図５１に対して、ステップ７１では、プロセッサ１０１がステータスレジスタ６０の内容を読み込む。ステップ７２では、読み込んだ内容のうち受領ステータスが全て０であるか否かを判断する。ＮＯなら処理を終了する。ＹＥＳならステップ７３に移行する。ステップ７３では、プロセッサ１０１が隣接する配列演算ユニット１００に送信するデータの種別とカウンタと送信方向を決定し、その内容をフラグレジスタ５７に書き込む。ステップ７４では、プロセッサ１０１が隣接する配列演算ユニット１００に送信するデータを出力データレジスタ６３に書き込む。ステップ７５では、出力データレジスタ６３の内容を計算データとして、隣接する配列演算ユニット１００に送信する。ステップ７６では、フラグレジスタ５７の送達フラグで指定された方向にのみ送達を１にして送信する。これによりプロセッサ１０１の１回の送信アルゴリズムは終了する。プロセッサ１０１は、送信すべきデータがメモリ１０２内で更新される度にこの送信アルゴリズムを開始する。
【０３８８】
コントローラ１０３が上側の配列演算ユニット１００から計算データを受信する場合のアルゴリズムを図５２に示す。図５２は、フラグデコーダ５８及びフラグエンコーダ５９によるハードウェアロジックによる処理を示すものである。図５２に対して、ステップ８１では、フラグエンコーダ５９が送達を入力する。ステップ８２では、送達が１であるか否かをフラグエンコーダ５９が判断する。ＮＯなら処理を終了する。ＹＥＳならステップ８３に移行する。ステップ８３では、上入力データレジスタ６４が上側から送信された計算データを読み込む。ステップ８４では、フラグエンコーダ５９がステータスレジスタ６０のうち上側用の受領ステータスを１にすると同時に受領を１にして上側の配列演算ユニット１００に送信する。下左右側の場合も同様である。これによりコントローラ１０３の１回の受信アルゴリズムは終了する。コントローラ１０３は常時上下左右の配列演算ユニット１００からの送達を監視し、この送達を受信する度にこの受信アルゴリズムを開始する。
【０３８９】
プロセッサ１０１が上入力データレジスタ６４からデータを受信する場合のアルゴリズムを図５３に示す。図５３は、プロセッサ１０１によるプログラム制御と、フラグデコーダ５８及びフラグエンコーダ５９によるハードウェアロジックとの混成による処理を示すものである。図５３に対して、ステップ９１では、プロセッサ１０１がステータスレジスタ６０の内容を読み込む。ステップ９２では、読み込んだ内容のうち上側用の受領ステータスが１であるか否かを判断する。ＮＯなら処理を終了する。ＹＥＳならステップ９３に移行する。ステップ９３では、プロセッサ１０１が上入力データレジスタ６４からデータを読み込む。ステップ９４では、フラグエンコーダ５９がステータスレジスタ６０のうち上側用の受領ステータスを０にすると同時に受領を０にして上側の配列演算ユニット１００に送信する。下左右側の場合も同様である。これによりプロセッサ１０１の１回の受信アルゴリズムは終了する。プロセッサ１０１は一定間隔でステータスレジスタ６０の内容を監視し、上下左右いずれかの受領ステータスが１である度にこの受信アルゴリズムを開始する。またプロセッサ１０１が一定間隔でステータスレジスタ６０の内容を監視しなくても、割り込み処理により実装することもできる。
【０３９０】
なおこの配列演算ユニット１００は、主に１つ以上の入力画像から１つの出力画像を生成することを前提に記述したが、用途に応じては計算途中の計算データを出力できるように回路を変更する必要がある。その際には、出力すべき計算データの数だけフラグデコーダ５８の結果送達を増やし、結果データレジスタ６２に読み込まれた計算データに対応する結果送達のみを１にするようにプログラムを変更するだけで良い。
【０３９１】
ここまでは配列演算ユニット１００について説明してきた。しかしながら移動元重複情報画像１８４のように帯域数が多い画像を転送する場合、配列演算ユニット１００が１個のコントローラ１０３しか備えていないと、転送効率が低下する可能性がある。そこで最後に、複数のコントローラ１０３を備えた配列演算ユニット１００について説明する。
【０３９２】
図５４に示すように、請求項１の視覚装置の配列演算ユニット１００は複数のコントローラ１０３を備えることができる。図５４の場合、配列演算ユニット１００は対角線上に配置された５個のコントローラ１０３を備え、各々のコントローラ１０３はアドレスバス５１及びデータバス５２に接続されている。プロセッサ１０１が５個のコントローラ１０３を識別できるように、各々のコントローラ１０３のアドレスデコーダ５４には異なるアドレスが割り当てられる。各々のコントローラ１０３は前入力データレジスタ６１及び結果データレジスタ６２を備えているので、全てのコントローラ１０３は独立に前入力データ群を入力し、及び結果データを出力することができる。さらに各々のコントローラ１０３が、隣接する配列演算ユニット１００の５個のコントローラ１０３のうち異なる１個と接続することにより、配列演算ユニット１００は通信帯域を最大５倍まで広げることができる。これにより、移動元重複情報画像１８４のように帯域数が多い画像を転送する場合でも、コントローラ１０３の数を増やせば転送効率が低下しなくなる。
【０３９３】
なお配列演算ユニット１００が複数のコントローラ１０３を備える場合、プロセッサ１０１は図５１及び５３に示すアルゴリズムに従い、全てのコントローラ１０３のステータスレジスタ６０中のステータスを監視しなければならない。監視スケジューリングには主にラウンドロビン方式が用いられる。
【０３９４】
ラウンドロビン方式では、コントローラ１０３が論理的に環状に並び、プロセッサ１０１が環状に沿って順番にコントローラ１０３にアクセスする。プロセッサ１０１は１個のコントローラ１０３に対して図５３に示すアルゴリズムを実行する。さらに送信すべきデータがあれば、プロセッサ１０１はこのコントローラ１０３に対して図５１に示すアルゴリズムを実行する。その後プロセッサ１０１は次の順番のコントローラ１０３に移動する。したがって全てのコントローラ１０３は対等に扱われる。配列演算ユニット１００が短時間に転送するデータ量に比べてコントローラ１０３の通信帯域が狭い場合、この方法は有効である。
【０３９５】
この他に、コントローラ１０３に優先度という相異なる番号を付けて、プロセッサ１０１が毎回最も高い優先度から順番にコントローラ１０３にアクセスする優先度方式を用いることもできる。配列演算ユニット１００が短時間に転送するデータ量に比べてコントローラ１０３の通信帯域が広い場合、この方法は有効である。
【０３９６】
一般に配列演算ユニット１００は少ない数のコントローラ１０３しか備えていないと考えられるので、視覚装置２が局所並列画像処理を実行する場合、ラウンドロビン方式の方が優先度方式に比べて有利である。しかしながら多量のデータを転送しなければならない関数を含む局所並列画像処理を視覚装置２が高速に実行するために、配列演算ユニット１００が十分な数のコントローラ１０３を備えた場合、残りの関数が４近傍及び８近傍１８２の帯域画素値だけを参照するのであれば、ラウンドロビン方式の通信効率は下がってしまう。このような場合には優先度方式の方が有利である。勿論全てのコントローラ１０３及びプロセッサ１０１が割り込み機能を実装すれば、プロセッサ１０１が各々のコントローラ１０３のステータスレジスタ６０中のステータスを定期的に監視する必要はない。
【０３９７】
さて、請求項１の視覚装置において、コントローラ１０３をＬＳＩ（大規模集積回路）の実装平面に並べた場合、主に、ＬＳＩの実装面積が膨大になること、コントローラ１０３間の配線が複雑で長くなること、及びコントローラ１０３の数を容易に増やせないこと、の３つが問題となる。しかしながら三次元ＬＳＩ技術を用いると、ＬＳＩ設計者はこれらの問題を容易に解決することができる。以下では三次元ＬＳＩ技術を用いた配列演算ユニット１００について説明する。
【０３９８】
図５５に示すように、請求項２記載のコントローラ１０３は三次元ＬＳＩ技術を用いることにより配列演算ユニット１００内で積み重ねられている。図５５の場合、５個のコントローラ１０３がプロセッサ１０１及びメモリ１０２の上に積み重ねられており、各々のコントローラ１０３は垂直に配線されたアドレスバス５１及びデータバス５２によってプロセッサ１０１及びメモリ１０２と接続されている。図５５から明らかなように、コントローラ１０３の数を増やしても、各層の実装面積は増大しないし、またコントローラ１０３は同じ層内において隣接するコントローラ１０３と接続すれば良い。さらにＬＳＩ設計者は、コントローラ１０３の数を増やしたければコントローラ１０３を実装した層を必要な数だけ増やせば良く、しかもアドレスバス５１さえ適切に設計されていれば、ＬＳＩ設計者は下敷となる層に一切手を加える必要がない。当然のことながら各層のコントローラ１０３はアドレスデコーダ５４以外全て同じ回路で構成されるので、新たに積み重ねる層のコントローラ１０３の設計は極めて簡単になる。
【０３９９】
さて、図５４及び図５５に示すように、配列演算ユニット１００が複数のコントローラ１０３を備えることにより、配列演算ユニット１００は、隣接する配列演算ユニット１００との間の通信帯域を広げられるばかりでなく、どのコントローラ１０３からどの計算データを受け取ったかということを識別できるようになる。そこで以下では、複数のコントローラ１０３を用いることにより、連続する複数の配列演算ユニット１００を１つのグループにまとめ、しかもこのグループ中の配列演算ユニット１００がプロセッサ１０１及びメモリ１０２を共有するデータ処理装置１１０について説明する。
【０４００】
まず、図５６に示すように、二次元格子状に配列された配列演算ユニット１００は適当な大きさの矩形のグループにまとめられる。このグループを仮想配列演算ユニット１０５と呼ぶ。図５６の場合、仮想配列演算ユニット１０５は３×３の配列演算ユニット１００を１つのグループにまとめたものである。次に図４７、図５４及び図５５に示すように、仮想配列演算ユニット１０５はプロセッサ１０１、メモリ１０２、及び配列演算ユニット１００の縦と横の個数の最大値以上のコントローラ１０３を備える。図５６の場合、仮想配列演算ユニット１０５は３個以上のコントローラ１０３を必要とする。なおこれらのコントローラ１０３には便宜上相異なる番号が付けられるものとする。また図５７に示すように、配列演算ユニット１００の通信路にもコントローラ１０３と同じ相異なる番号が付けられる。ただし、向い合う番号が同じになるようにする。最後に、プロセッサ１０１が９個の配列演算ユニット１００を実行できるようなプログラムがメモリ１０２に記憶される。ただし、配列演算ユニット１００が隣接する仮想配列演算ユニット１０５の配列演算ユニット１００と通信する場合には、必ず通信路に付けられた番号と一致するコントローラ１０３を介するようにプログラムが実装されるものとする。これにより、仮想配列演算ユニット１０５は、どの配列演算ユニット１００からどの配列演算ユニット１００に向けて計算データが送信されたのか識別することができる。
【０４０１】
ところで仮想配列演算ユニット１０５はコントローラ１０３の数を増やしただけでは完全に複数の配列演算ユニット１００を実装することができない。というのも、仮想配列演算ユニット１０５は、別の仮想配列演算ユニット１０５から前入力データ群を入力したり、別の仮想配列演算ユニット１０５に結果データを出力しなければならないからである。図５４のようにコントローラ１０３が二次元平面上に実装される場合、もしコントローラ１０３の数が十分にあれば、計算データと同様にコントローラ１０３に番号を付けることにより、この問題はプログラムによって解決される。しかしながら図５７の場合でも、コントローラ１０３は９個必要となる。したがって仮想配列演算ユニット１０５に含まれる配列演算ユニット１００の数が増えた場合、この方法は非常に非効率となる。まして図５５のようにコントローラ１０３が積層される場合、前入力データ群及び結果データ用の通信路を確保することが非常に難しくなる。そこで以下では、コントローラ１０３の前入力データレジスタ６１だけを変更することにより、この問題を解決する方法について説明する。
【０４０２】
まず、コントローラ１０３が別のコントローラ１０３から前入力データ群の１つの前入力データとして結果データを、さらに前入力送達として結果送達を入力する場合を考える。このとき図５８に示すように、前入力データレジスタ６１は、仮想配列演算ユニット１０５中の配列演算ユニット１００の数と等しい数のレジスタから構成される前入力シフトレジスタ６８と、前入力カウンタ６９を備える。前入力カウンタ６９は、レジスタの数を初期値とするダウンカウンタであり、前入力カウンタ６９のカウント数が０になったときに、前入力カウンタ６９は前入力送達を出力する。その後結果データが入力されると、前入力カウンタ６９は初期値に初期化される。図５８では、前入力シフトレジスタ６８は９個のレジスタから構成されていて、前入力シフトレジスタ６８に９個の結果データが入力されると、前入力送達が出力される。次に、前入力シフトレジスタ６８の各々のレジスタと前入力カウンタ６９はトリガー信号として結果送達を入力する。さらに、アドレスデコーダ５４は、アドレスをデコードして、前入力シフトレジスタ６８のレジスタのうち１個を選択する。これにより、プロセッサ１０１が前入力シフトレジスタ６８のうち適当なレジスタのアドレスを指定すると、各々のレジスタはデータバス５２に結果データを出力することができる。なお図５８では、アドレスデコーダ５４の他の信号線は省略されている。そこで仮想配列演算ユニット１０５が９個の配列演算ユニット１００の結果データを一定の順番に出力すると、これらの結果データは出力順に前入力シフトレジスタ６８のレジスタに記憶される。したがって前入力カウンタ６９が出力する前入力送達がステータスレジスタ６０に記憶された時点でプロセッサ１０１が各レジスタにアクセスすれば、プロセッサ１０１は特定の配列演算ユニット１００の結果データを獲得することができる。
【０４０３】
ここまでは視覚装置２について説明してきた。デジタル画像１１１の画像サイズを制限し、計算時間をある程度我慢すれば、市販のシングルチップコンピュータでも視覚装置２は実現可能であるが、画像サイズを大きくしたり実時間性を達成するためには専用の大規模集積回路を実装する必要がある。特に視覚装置２のうち幾つかの手段を大規模集積回路に実装することにより、視覚装置２は省スペース、低消費電力及び実時間性を実現することができる。以下では視覚装置２を用いたイメージセンサについて説明する。
【０４０４】
人工眼球の発明で用いられるイメージセンサは、例えば図５９に示すような機能コラム２０１を図６０に示すように二次元格子状に配列して配線したものとなる。なお図５９において、配列演算ユニット１００をＡＯＵと、略記し、図６０において、機能コラム２０１をＦＣと略記する。またイメージセンサから重複情報１３１及びマッチング結果を出力しやすくするために、図１４に対して３つの画像保持手段３９が追加されている。図５９では複数の配列演算ユニット１００が各々の手段を実現しているが、図６１に示すように１個の配列演算ユニット１００でもプログラムによって複数の手段を実現できる。勿論図６２に示すように１個の仮想配列演算ユニット１０５でもプログラムによって複数の配列演算ユニット１００を実現できる。
【０４０５】
図５９、図６１及び図６２において、機能コラム２０１には配列演算ユニット１００及び仮想配列演算ユニット１０５の他に、フォトダイオード及びＣＣＤのような撮像素子２０７、及びＡ／Ｄ変換回路２０４が組み込まれる。ただし機能コラム２０１において機能コラム２０１の外部からクロック信号が入力される代りに、個別の発振回路を用いても良い。またフォトダイオードはＣＭＯＳ（相補性金属酸化膜半導体）と同じＬＳＩ（大規模集積回路）に実装できるので、イメージセンサの設計及び実装は極めて単純になる。
【０４０６】
図６０に示すように、図５９の各々の配列演算ユニット１００は、４近傍に位置し、同じ手段を実行する配列演算ユニット１００と信号線を介して通信する。これにより、各々の配列演算ユニット１００は処理に応じてデータ処理装置１１０を構成することができる。イメージセンサが三次元大規模集積回路（三次元ＶＬＳＩ）技術により実装される場合、図６３に示すように機能コラム２０１中の全ての配列演算ユニット１００が三次元ＶＬＳＩによって垂直に並ぶように実装されれば、機能コラム２０１間の信号線は配列演算ユニット１００間ですら交差しない。したがってイメージセンサの設計及び実装は極めて容易になる。
【０４０７】
さて、ここまではイメージセンサについて説明してきた。しかしながら、実用的な規模及び処理速度のイメージセンサをＬＳＩによって製造しようとすると、クロック信号及びリセット信号などの同期問題を避けて通ることはできない。そこで以下では、本発明の連動装置の実施形態を挙げ、図面を参照して説明する。
【０４０８】
まず、図６４に示すように、連動式カウンタ４１６は、同期式カウンタ４１１、終り値判定用論理ゲート４１２ａ及びカウント用論理ゲート４１５から構成されるカウンタ部分と、連動用ラッチ回路４１３及び連動用論理ゲート４１４から構成される連動部分と、から構成される。また図６４では、連動式カウンタ４１６が他の４つの連動式カウンタ４１６から連動信号ＢＬＫ１’、ＢＬＫ２’、ＢＬＫ３’及びＢＬＫ４’を入力するものとする。なお、信号Ｘ’は信号Ｘの負論理を表すものとする。また図６４において、カウント用論理ゲート４１５、連動用ラッチ回路４１３及び連動用論理ゲート４１４には、全てＮＯＲゲートが用いられているが、勿論ＮＡＮＤゲートなど他の論理ゲートが用いられても良い。
【０４０９】
カウンタ部分では、同期式カウンタ４１１、終り値判定用論理ゲート４１２ａ及びカウント用論理ゲート４１５が環状に配線される。すなわち、同期式カウンタ４１１はイネーブル信号Ｇ’を入力し、リップルキャリーアウト信号ＲＣＯを出力する。終り値判定用論理ゲート４１２ａはリップルキャリーアウト信号ＲＣＯを入力して、連動信号ＢＬＫ０’を出力する。カウント用論理ゲート４１５は少なくとも１つの入力端子に連動信号ＢＬＫ０’を入力して、イネーブル信号Ｇ’を出力する。
【０４１０】
例えば、図６４の場合、同期式カウンタ４１１は３つのＪＫフリップフロップ回路を備え、これらのＪＫフリップフロップ回路の出力ＱＡ、ＱＢ及びＱＣを用いて０から７までのカウント数を出力する。また、これらのＪＫフリップフロップ回路はそれぞれ出力ＱＡ、ＱＢ及びＱＣの負論理出力ＱＡ’、ＱＢ’及びＱＣ’も出力することができる。分岐点Ｎ０及びＮ１において、クロック信号ＣＬＫは３つのＪＫフリップフロップ回路のクロック端子に分配される。これらのＪＫフリップフロップ回路はクロック信号ＣＬＫの立ち下がりのエッジで動作する。分岐点Ｐ０において、イネーブル信号Ｇ’はＮＯＴゲートの入力端子に分配される。このＮＯＴゲートの出力端子は左のＪＫフリップフロップ回路のＪ端子及びＫ端子に接続される。これにより、イネーブル信号Ｇ’の電圧がＬｏｗレベルであるとき、このＪＫフリップフロップ回路のＪ端子とＫ端子の両方の電圧がＨｉｇｈレベルになる。したがって、クロック信号ＣＬＫが立ち下がる度に、このＪＫフリップフロップ回路の出力ＱＡ及びＱＡ’の電圧が反転する。同様に、分岐点Ｐ１において、イネーブル信号Ｇ’は、２つのＮＯＲゲートそれぞれの入力端子のうちの少なくとも１つに分配される。また分岐点Ｓ１及びＳ２において、出力ＱＡ’は２つのＮＯＲゲートそれぞれの入力端子のうちの少なくとも１つに分配される。さらに分岐点Ｔ２において、出力ＱＢ’は２つのＮＯＲゲートのうちのいずれかの入力端子のうちの少なくとも１つに分配される。これらの２つのＮＯＲゲートの出力端子は、それぞれ中央と右のＪＫフリップフロップ回路のＪ端子及びＫ端子に接続される。これにより、イネーブル信号Ｇ’の電圧がＬｏｗレベルであるとき、出力ＱＡ’の電圧がＬｏｗレベルであれば、中央のＪＫフリップフロップ回路のＪ端子とＫ端子の両方の電圧がＨｉｇｈレベルになる。したがって、クロック信号ＣＬＫが立ち下がる度に、このＪＫフリップフロップ回路の出力ＱＢ及びＱＢ’の電圧が反転する。さらに、イネーブル信号Ｇ’の電圧がＬｏｗレベルであるとき、出力ＱＡ’及びＱＢ’の電圧が共にＬｏｗレベルであれば、右のＪＫフリップフロップ回路のＪ端子とＫ端子の両方の電圧がＨｉｇｈレベルになる。したがって、クロック信号ＣＬＫが立ち下がる度に、このＪＫフリップフロップ回路の出力ＱＣ及びＱＣ’の電圧が反転する。つまり、イネーブル信号Ｇ’の電圧がＬｏｗレベルである場合、クロック信号ＣＬＫが立ち下がる度に、同期式カウンタ４１１が出力するカウント数は１つずつ増える。最後に、ＮＯＲゲートがリップルキャリーアウト信号ＲＣＯを出力するために、このＮＯＲゲートの複数（ここでは３つ）の入力端子に分岐点Ｓ２において分配された出力ＱＡ’、分岐点Ｔ２において分配された出力ＱＢ’及び出力ＱＣ’が入力される。これにより、同期式カウンタ４１１が出力するカウント数が７であれば、出力ＱＡ’、ＱＢ’及びＱＣ’の電圧が全てＬｏｗレベルになるので、リップルキャリーアウト信号ＲＣＯの電圧はＨｉｇｈレベルになる。
【０４１１】
そこで、リップルキャリーアウト信号ＲＣＯの電圧がＨｉｇｈレベルであれば、終り値判定用論理ゲート４１２ａは連動信号ＢＬＫ０’の電圧をＬｏｗレベルにする。それ以外の場合、連動信号ＢＬＫ０’の電圧はＨｉｇｈレベルである。分岐点Ｕにおいて、連動信号ＢＬＫ０’はカウント用論理ゲート４１５の入力端子のうちの少なくとも１つに入力される。これにより、もし連動信号ＢＬＫ０’がＨｉｇｈレベルであれば、イネーブル信号Ｇ’はＬｏｗレベルになる。したがって、カウント数が７に到達するまで同期式カウンタ４１１はカウント数を１つずつ増やし、カウント数が７に到達すると、同期式カウンタ４１１は停止する。
【０４１２】
なお、図６４には、クロック信号ＣＬＫに同期した３つのＪＫフリップフロップ回路から構成される２進３桁の同期式カウンタ４１１が示されているが、ＪＫフリップフロップ回路の数をＮ個用いることにより、２進Ｎ桁の同期式カウンタ４１１に変更することは容易である。また分岐点Ｓ１及びＳ２において出力ＱＡを分配することと、分岐点Ｔ２において出力ＱＢを分配することとにより、同期式カウンタ４１１はダウンカウンタに変更される。
【０４１３】
連動部分では、外部から入力される連動信号ＢＬＫ１’、ＢＬＫ２’、ＢＬＫ３’及びＢＬＫ４’に従い、連動用論理ゲート４１４及び連動用ラッチ回路４１３がカウント用論理ゲート４１５を制御する。すなわち、連動用論理ゲート４１４の複数（ここでは４つ）の入力端子に、それぞれ連動信号ＢＬＫ１’、ＢＬＫ２’、ＢＬＫ３’及びＢＬＫ４’が入力され、連動用論理ゲート４１４の出力端子が連動用ラッチ回路４１３の１つの入力端子に配線される。また連動信号ＢＬＫＯ’は分岐点Ｕにおいて分配され、連動用ラッチ回路４１３のもう１つの入力端子に入力される。したがって、連動信号ＢＬＫ０’、ＢＬＫ１’、ＢＬＫ２’、ＢＬＫ３’及びＢＬＫ４’の全てがＬｏｗレベルである場合、連動用ラッチ回路４１３の出力信号ＱＧはＨｉｇｈレベルになる。さらにカウント用論理ゲート４１５の出力端子はＬｏｗレベルになることができる。ただし、連動信号ＢＬＫ１’、ＢＬＫ２’、ＢＬＫ３’及びＢＬＫ４’のうちいずれか１つでもＨｉｇｈレベルである場合、連動信号ＢＬＫ０’がＨｉｇｈレベルになれば、連動用ラッチ回路４１３の出力信号ＱＧはＬｏｗレベルになる。しかも連動信号ＢＬＫ０’が再度Ｌｏｗレベルになっても、連動用ラッチ回路４１３の出力信号ＱＧはＬｏｗレベルのままである。したがって、連動信号ＢＬＫ０’、ＢＬＫ１’、ＢＬＫ２’、ＢＬＫ３’及びＢＬＫ４’の全てがＬｏｗレベルにならなければ、連動用ラッチ回路４１３の出力信号ＱＧはＨｉｇｈレベルになることができない。これにより、連動部分は、連動信号ＢＬＫ０’の位相と周期を、連動信号ＢＬＫ１’、ＢＬＫ２’、ＢＬＫ３’及びＢＬＫ４’のうちの少なくとも１つの位相と周期に合わせることができる。
【０４１４】
ところで、連動式カウンタ４１６はクロック信号に同期して動作するが、クロック信号自体が全ての連動式カウンタ４１６に同時に供給されるとは限らない。そのため連動式カウンタ４１６がクロック信号を受け取る前に、連動信号ＢＬＫ１’、ＢＬＫ２’、ＢＬＫ３’及びＢＬＫ４’のいずれかがＨｉｇｈレベルになり、結果としてイネーブル信号Ｇ’がＨｉｇｈレベルになってしまう可能性がある。そこで同期式カウンタ４１１が動作を開始するまで、連動用ラッチ回路４１３はイネーブル信号Ｇ’をＬｏｗレベルに保持することができる。なお、図６４では、連動式カウンタ４１６が４つの連動式カウンタ４１６から連動信号を入力する場合を示したが、接続される連動式カウンタ４１６の数に応じて連動用論理ゲート４１４の入力端子数を変更するか、さもなくば連動用論理ゲート４１４の入力端子のうち不必要なものをプルダウンすれば良い。
【０４１５】
さて、図６４に示した同期式カウンタ４１１において、カウント数の初期値は０に、終り値は７に固定されていた。しかしながらＬＳＩの仕様によってはカウント数の初期値及び終り値が変更される場合もある。そこで図６５に示すように、連動式カウンタ４１６は、市販の同期式カウンタ４１１のような同期式クリア手段及び同期式ロード手段を有する同期式カウンタ４１１を用いることにより、任意の初期値及び終り値を設定することができる。この場合、終り値の判定は、終り値判定用論理ゲート４１２ａの代りに終り値判定用論理回路４１２ｂを用いることによって実現される。勿論、終り値判定用論理回路４１２ｂにはＮＡＮＤゲートなどが用いられても良い。
【０４１６】
例えば同期式カウンタ４１１が同期クリア手段を有する場合、カウンタ部分では、同期式カウンタ４１１、終り値判定用論理回路４１２ｂ及びカウント用論理ゲート４１５が環状に配線される。すなわち、同期式カウンタ４１１はイネーブル信号Ｇ’を入力し、カウント数を出力する。加えて、同期式カウンタ４１１は同期クリア信号ＣＬＲとして連動用ラッチ回路４１３の出力信号ＱＧも入力する。終り値判定用論理回路４１２ｂはカウント数を入力して、連動信号ＢＬＫ０’を出力する。カウント用論理ゲート４１５は少なくとも１つの入力端子に連動信号ＢＬＫ０’を入力して、イネーブル信号Ｇ’を出力する。
【０４１７】
例えば、図６５の場合、同期式カウンタ４１１は３つのＪＫフリップフロップ回路を備え、これらのＪＫフリップフロップ回路の出力ＱＡ、ＱＢ及びＱＣを用いて０から７までのカウント数を出力する。また、これらのＪＫフリップフロップ回路はそれぞれ出力ＱＡ、ＱＢ及びＱＣの負論理出力ＱＡ’、ＱＢ’及びＱＣ’も出力することができる。分岐点Ｎ０及びＮ１において、クロック信号ＣＬＫは３つのＪＫフリップフロップ回路のクロック端子に分配される。これらのＪＫフリップフロップ回路はクロック信号ＣＬＫの立ち下がりのエッジで動作する。分岐点Ｖ２において、連動用ラッチ回路４１３の出力信号ＱＧは同期式カウンタ４１１に分配され、クリア信号ＣＬＲとなる。さらに分岐点Ｖ３において、ＮＯＴゲートの入力端子に分配される。このＮＯＴゲートはクリア信号ＣＬＲの論理を反転して、クリア信号ＣＬＲ’を出力する。分岐点Ｐ０においてイネーブル信号Ｇ’が分配されることと、分岐点Ｖ０においてクリア信号ＣＬＲが分配されることと、分岐点Ｗ０においてクリア信号ＣＬＲ’が分配されることと、分岐点Ｓ０において出力ＱＡ’が分配されることと、により、左のＪＫフリップフロップ回路のＪ端子及びＫ端子の電圧は、数式６１に示す論理式によって決定される。
【０４１８】
【数６１】
0003963424.tif 000062
【０４１９】
同様に、分岐点Ｐ１においてイネーブル信号Ｇ’が分配されることと、分岐点Ｖ１においてクリア信号ＣＬＲが分配されることと、分岐点Ｗ１においてクリア信号ＣＬＲ’が分配されることと、分岐点Ｓ０及びＳ１において出力ＱＡ’が分配されることと、分岐点Ｓ２において出力ＱＢ’が分配されることと、により、中央のＪＫフリップフロップ回路のＪ端子及びＫ端子の電圧は、数式６２に示す論理式によって決定される。
【０４２０】
【数６２】
0003963424.tif 000063
【０４２１】
さらに、分岐点Ｐ１においてイネーブル信号Ｇ’が分配されることと、分岐点Ｖ１においてクリア信号ＣＬＲが分配されることと、分岐点Ｗ１においてクリア信号ＣＬＲ’が分配されることと、分岐点Ｓ０及びＳ１において出力ＱＡ’が分配されることと、分岐点Ｓ２において出力ＱＢ’が分配されることと、出力ＱＣ’が入力されることと、により、右のＪＫフリップフロップ回路のＪ端子及びＫ端子の電圧は、数式６３に示す論理式によって決定される。
【０４２２】
【数６３】
0003963424.tif 000064
【０４２３】
これにより、イネーブル信号Ｇ’の電圧がＬｏｗレベルであり、かつクリア信号ＣＬＲがＬｏｗレベルである場合、クロック信号ＣＬＫが立ち下がる度に、同期式カウンタ４１１が出力するカウント数は１つずつ増える。さらに、イネーブル信号Ｇ’の電圧がＬｏｗレベルであり、かつクリア信号ＣＬＲがＨｉｇｈレベルである場合、クロック信号ＣＬＫが立ち下がるならば、同期式カウンタ４１１が出力するカウント数は０になる。それ以外の場合、同期式カウンタ４１１は動作しない。
【０４２４】
そこで、カウント数が６の場合、終り値判定用論理回路４１２ｂは連動信号ＢＬＫ０’の電圧をＬｏｗレベルにする。それ以外の場合、連動信号ＢＬＫ０’の電圧はＨｉｇｈレベルである。分岐点Ｕにおいて、連動信号ＢＬＫ０’はカウント用論理ゲート４１５の入力端子のうちの少なくとも１つに入力される。これにより、もし連動信号ＢＬＫ０’がＨｉｇｈレベルであれば、イネーブル信号Ｇ’はＬｏｗレベルになる。したがって、カウント数が６に到達するまで同期式カウンタ４１１はカウント数を１つずつ増やし、カウント数が６に到達すると、同期式カウンタ４１１は停止する。
【０４２５】
なお、図６５には、クロック信号ＣＬＫに同期した３つのＪＫフリップフロップ回路から構成される２進３桁の同期式カウンタ４１１が示されているが、ＪＫフリップフロップ回路の数をＮ個用いることにより、２進Ｎ桁の同期式カウンタ４１１に変更することは容易である。また数式６１、６２及び６３において、出力ＱＡ’、ＱＢ’及びＱＣ’の代りに出力ＱＡ、ＱＢ及びＱＣを用いることにより、同期式カウンタ４１１はダウンカウンタに変更される。その場合クリア信号ＣＬＲがＨｉｇｈレベルになると、同期式カウンタ４１１のカウント数は７に設定される。
【０４２６】
この他に、同期式カウンタ４１１として型番７４ＬＳ１６３のような標準的なアップダウンカウンタが用いられても良い。その際には、イネーブル信号Ｇ’及びクリア信号ＣＬＲの論理がこのアップダウンカウンタのイネーブル端子及びクリア端子の論理に合うように、ＮＯＴゲートなどを用いて、イネーブル信号Ｇ’及びクリア信号ＣＬＲの論理が変更されるだけで良い。
【０４２７】
ここまでは連動式カウンタ４１６単体の回路構成について説明してきた。以下では複数の連動式カウンタ４１６が接続された場合に連動式カウンタ４１６がお互いにどのように連動するのか、タイミングチャートを用いて説明する。
【０４２８】
まず図６６に示すように、３つの連動式カウンタ４１６ａ〜４１６ｃが接続された場合を考える。なお図６６において、連動式カウンタ４１６ａ〜４１６ｃをＩＣＵと略記する。各々の連動式カウンタ４１６ａ〜４１６ｃの連動信号ＢＬＫ０’は残りの連動式カウンタ４１６ａ〜４１６ｃの連動用論理ゲート４１４に入力される。したがって連動用論理ゲート４１４は２入力論理ゲートであれば良い。これら３つの連動式カウンタ４１６ａ〜４１６ｃが安定して動作しているとき、連動式カウンタ４１６ａのタイミングチャートを図６７に示す。なお、全ての連動式カウンタ４１６ａ〜４１６ｃは対称的なので、残りの連動式カウンタ４１６ｂ及び４１６ｃのタイミングチャートも同様である。
【０４２９】
図６７から明らかなように、連動式カウンタ４１６ａ〜４１６ｃのカウント数が一致している場合には、カウント用論理ゲート４１５の出力が一瞬Ｈｉｇｈレベルになるが、直ぐにＬｏｗレベルに戻るため、同期式カウンタ４１１は連続してカウントすることができる。したがって連動式カウンタ４１６ａ〜４１６ｃは同じカウント数を出力し続けることができる。
【０４３０】
図６８に示すように、連動信号ＢＬＫ１’の位相が何らかの理由により進んだ場合、連動式カウンタ４１６は連動信号ＢＬＫ１’に関係なく動作する。したがって連動信号ＢＬＫ１’はカウント数に対して影響しない。なお連動信号ＢＬＫ１’を生成する連動式カウンタ４１６は連動信号ＢＬＫ１’を連動信号ＢＬＫ０’及びＢＬＫ２’の位相に合わせるように動作する。
【０４３１】
図６９に示すように、連動信号ＢＬＫ２’の位相が何らかの理由により遅れた場合、連動式カウンタ４１６は連動信号ＢＬＫ０’の位相を連動信号ＢＬＫ２’の位相に合わせるように動作する。したがって連動信号ＢＬＫ２’がＬレベルになるまで、連動式カウンタ４１６はカウント数として終り値を出力し続ける。
【０４３２】
図７０に示すように、連動信号ＢＬＫ１’の位相が何らかの理由により進み、連動信号ＢＬＫ２’の位相が何らかの理由により遅れた場合、連動式カウンタ４１６は連動信号ＢＬＫ０’の位相を連動信号ＢＬＫ２’の位相に合わせるように動作する。したがって連動信号ＢＬＫ２’がＬレベルになるまで、連動式カウンタ４１６はカウント数として終り値を出力し続ける。
【０４３３】
上記より、３つの連動式カウンタ４１６ａ〜４１６ｃは最もカウントが遅れているものにカウント数を合わせることが判る。このことは、終り値が異なる連動式カウンタ４１６が接続された場合にも成り立つ。したがって電源投入時、３つの連動式カウンタ４１６ａ〜４１６ｃのカウント数が異なっていても、クロック信号の周期に終り値の最大数を掛け合わせた時間以内に３つの連動式カウンタ４１６ａ〜４１６ｃのカウント数が一致する。
【０４３４】
さて、上述の連動式カウンタ４１６は、必ずしも図６６のように他の全ての連動式カウンタ４１６と接続される必要はない。そこで以下では、連動式カウンタ４１６が規則的に配列された場合について説明する。
【０４３５】
図７１に示すように、連動装置は、正方格子状に配列された連動式カウンタ４１６を隣接同士接続したネットワークである。この場合、連動用論理ゲート４１４の入力数は４となる。なお辺縁の連動式カウンタ４１６において、接続先のない連動用論理ゲート４１４の入力はプルダウンされる。連動式カウンタ４１６を正方格子状に配列する代りに、図７２に示すように六角格子状に配列して隣接同士接続することもできる。このように連動式カウンタ４１６が配置されることにより、全ての連動信号用信号線の長さがほぼ等しくなるので、連動式カウンタ４１６は互いに連動し易くなる。したがって、パイプライン処理装置、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、シストリックアレイ、データフロープロセッサ、及び並列画像処理装置のように大規模で規則的なデジタル回路４３１に対して、これらの二次元カウンタネットワークは、連動式カウンタ４１６のカウント数、つまりクロック信号ＣＬＫの分周信号を容易に供給することができる。
【０４３６】
図７４に示すように、三次元カウンタネットワークは、上述の正方格子状及び六角格子状に配列された連動式カウンタ４１６を、三次元ＬＳＩ技術を用いて複数重ね合わせたネットワークである。連動式カウンタ４１６が正方格子状に配列した場合には、連動用論理ゲート４１４の入力数は６となり、連動式カウンタ４１６が六角格子状に配列した場合には、連動用論理ゲート４１４の入力数は８となる。図７４の場合、正方格子状に配列された連動式カウンタ４１６のネットワークが３個積層されており、各々の連動式カウンタ４１６の連動信号が実線で表されている。なお、各々の連動式カウンタ４１６の連動用論理ゲート４１４の入力端子のうち、隣接する連動式カウンタ４１６と接続されていないものは、プルアップ又はプルダウンされているものとする。図７４から明らかなように、各層の連動式カウンタ４１６が重なり合うことにより、層間の連動信号の信号線の長さは等しく、しかも最短になる。したがって層間の配線材料を変更したり、又はディレイラインなどを用いることにより、層を跨ぐ連動信号の伝搬遅延時間は、層内の連動信号の伝搬遅延時間と等しくなるように容易に調整され得るので、異なる層の連動式カウンタ４１６は互いに同期することができる。
【０４３７】
さらに、図７５に示すように、カウンタネットワークは、正方格子状及び六角格子状に配列された連動式カウンタ４１６のネットワークと、プロセッサ１０１及び演算回路などのデジタル回路４３１と、フォトダイオード及びＡ／Ｄ変換回路２０４などのアナログ回路４３２と、を三次元ＬＳＩの異なる層に実装する。図７５の場合、正方格子状に配列された連動式カウンタ４１６が第２層及び第５層に実装され、デジタル回路４３１が第１層、第３層及び第４層に実装され、アナログ回路４３２が第６層に実装されている。なお、図７５において、実線は連動信号を表し、破線はカウント数を表す。また連動信号及びカウント数以外の信号線は省略されている。第２層及び第５層に実装された連動式カウンタ４１６のうち、重なり合ったもの同士は互いの連動信号を入力するので、第２層及び第５層にある全ての連動式カウンタ４１６は同じカウント数を生成することができる。さらに連動式カウンタ４１６のネットワークがデジタル回路４３１及びアナログ回路４３２と異なる層に実装され得るので、デジタル回路４３１及びアナログ回路４３２の配置によって連動式カウンタ４１６の配置がずれることもなく、しかも連動信号の信号線が迂回することもない。さらに三次元ＬＳＩの各層の間にノイズ対策を施すことにより、連動式カウンタ４１６はデジタル回路４３１及びアナログ回路４３２のノイズに影響されないので、連動式カウンタ４１６は安定に動作する。同様に、デジタル回路４３１及びアナログ回路４３２は、これらの配置場所に関係なく、最短距離の連動式カウンタ４１６からカウント数を入力することができる。このことは、ＬＳＩ設計者がデジタル回路４３１及びアナログ回路４３２の実装層内でカウント数の信号線を引き回す必要がないことを意味するので、このＬＳＩ設計者は、デジタル回路４３１及びアナログ回路４３２を任意の場所に配置しても、カウント数の伝搬遅延時間を一定範囲内に収めることができる。したがって、デジタル回路４３１及びアナログ回路４３２の設計も容易になる。特に、図７５に示すような連動式カウンタ４１６のネットワークは、正方格子状及び六角格子状に配列されたプロセッサ１０１が一斉に処理したデータを垂直方向に向かってパイプライン処理するような、シストリックアレイ及び並列画像処理装置に対して効率よくカウント数、つまりクロック信号ＣＬＫの分周信号を供給することができる。
【０４３８】
ところで、上述のようなカウンタネットワークを用いると、全ての連動式カウンタ４１６はＬＳＩ全体に渡って同じカウント数を供給することができる。つまりこのカウント数を用いることにより、適当な信号がＬＳＩ全体に同時に分配されるように連動式信号分配回路が設計され得る。
【０４３９】
図７６に示すように、連動装置は、信号分配用デコーダ４２１、信号分配用ラッチ回路４２２、信号分配用論理ゲート４２３及び信号分配用フリップフロップ回路４２４からなる連動式信号分配回路を備え、この連動式信号分配回路が、信号分配用デコーダ４２１によって連動式カウンタ４１６のカウント数を復号することにより、複数の復号結果を生成する。さらにこれらの復号結果のうちの２つがそれぞれ計時開始時刻及び計時終了時刻を表すとすると、信号分配用ラッチ回路４２２が適当な信号ＳＩＧＩＮを入力した場合、信号分配用ラッチ回路４２２は入力時刻から計時終了時刻まで信号ＳＩＧＩＮを記憶し、信号分配用論理ゲート４２３が、計時開始時刻にだけ、信号分配用ラッチ回路４２２によって記憶された信号ＳＩＧＩＮを信号分配用フリップフロップ回路４２４に出力し、信号分配用フリップフロップ回路４２４がクロック信号ＣＬＫに同期した信号ＳＩＧＯＵＴ及び信号ＳＩＧＯＵＴ’を出力する。これにより、連動式信号分配回路は、任意の時間遅延した信号ＳＩＧＩＮから、クロック信号ＣＬＫに同期し、しかもクロック信号ＣＬＫの周期の整数倍の時間だけアクティブである信号ＳＩＧＯＵＴを生成する。
【０４４０】
例えば、図７６の場合、信号分配用デコーダ４２１は、０から７までのカウント数を表す連動式カウンタ４１６の３つの出力ＱＡ、ＱＢ及びＱＣと、それらの負論理出力ＱＡ’、ＱＢ’及びＱＣ’と、を入力し、８つのＮＯＲゲートを用いて、０から７までのカウント数からそれぞれ８つの復号結果を生成する。すなわち、８つのＮＯＲゲートはそれぞれ複数（ここでは３つ）の入力端子を備え、分岐マトリクスＸにおいて、連動式カウンタ４１６の出力ＱＡ、ＱＢ及びＱＣは、復号結果０を出力するＮＯＲゲートに分配され、連動式カウンタ４１６の出力ＱＡ’、ＱＢ及びＱＣは、復号結果１を出力するＮＯＲゲートに分配され、連動式カウンタ４１６の出力ＱＡ、ＱＢ’及びＱＣは、復号結果２を出力するＮＯＲゲートに分配され、連動式カウンタ４１６の出力ＱＡ’、ＱＢ’及びＱＣは、復号結果３を出力するＮＯＲゲートに分配され、連動式カウンタ４１６の出力ＱＡ、ＱＢ及びＱＣ’は、復号結果４を出力するＮＯＲゲートに分配され、連動式カウンタ４１６の出力ＱＡ’、ＱＢ及びＱＣ’は、復号結果５を出力するＮＯＲゲートに分配され、連動式カウンタ４１６の出力ＱＡ、ＱＢ’及びＱＣ’は、復号結果６を出力するＮＯＲゲートに分配され、連動式カウンタ４１６の出力ＱＡ’、ＱＢ’及びＱＣ’は、復号結果７を出力するＮＯＲゲートに分配される。そこで、復号結果０から復号結果７までの中から任意の２つを選んで、それぞれ計時開始時刻及び計時終了時刻とすることにより、計時開始時刻がＨｉｇｈレベルになってから計時終了時刻がＨｉｇｈレベルになるまでの時間は、クロック信号ＣＬＫの周期の０倍から７倍となる。さらに８つのＮＯＴゲートが、それぞれ復号結果０から復号結果７までを入力し、それぞれ負論理復号結果０’から負論理復号結果７’までを出力する。したがって、負論理復号結果０’から負論理復号結果７’までを用いることにより、計時開始時刻及び計時終了時刻は負論理で表すこともできる。
【０４４１】
さて、図７６の場合、計時開始時刻は負論理復号結果３’であり、計時終了時刻は復号結果５である。そこで連動式信号分配回路が、負論理復号結果３’と復号結果５を用いて任意の時間遅延した信号ＳＩＧＩＮから信号ＳＩＧＯＵＴを生成するために、まず信号分配用ラッチ回路４２２は、２つの入力端子のうちの１つに信号ＳＩＧＩＮを入力し、信号ＱＳ’を出力する。信号分配用論理ゲート４２３は、２つの入力端子に出力信号ＱＳ’及び負論理復号結果３’を入力し、信号Ｊ３を出力する。信号分配用フリップフロップ回路４２４は、Ｊ端子に信号Ｊ３を入力し、Ｋ端子に復号結果５を入力する。また信号分配用フリップフロップ回路４２４のクロック端子にクロック信号ＣＬＫを入力しているので、信号分配用フリップフロップ回路４２４は、クロック信号ＣＬＫの立ち下がりに同期しながら、Ｑ端子から信号ＳＩＧＯＵＴを出力し、Ｑ’端子から信号ＳＩＧＯＵＴ’を出力する。最後に、分岐点Ｙにおいて、信号ＳＩＧＯＵＴが信号分配用ラッチ回路４２２の２つの入力端子のうちのもう１つに分配される。以下では、図７７のタイミングチャートを参照しながら、図７６に示された連動式信号分配回路について説明する。
【０４４２】
まず、信号ＳＩＧＩＮがＨｉｇｈレベルになると、信号分配用ラッチ回路４２２は信号ＱＳ’をＬｏｗレベルにする。その後、信号ＳＩＧＩＮがＬｏｗレベルになったとしても、信号ＳＩＧＯＵＴがＨｉｇｈレベルになるまで、信号ＱＳ’はＬｏｗレベルのままである。信号ＱＳ’がＬｏｗレベルになった後、負論理復号結果３’がＬｏｗレベルの場合にのみ、信号分配用論理ゲート４２３は信号Ｊ３をＨｉｇｈレベルにする。つまり信号ＳＩＧＯＵＴがＨｉｇｈレベルになった後、連動式カウンタ４１６のカウント数が３になったならば、信号Ｊ３はＨｉｇｈレベルになる。このとき信号分配用フリップフロップ回路４２４のＪ端子がＨｉｇｈレベルになるので、信号ＳＩＧＯＵＴはクロック信号ＣＬＫの立ち下がり時にＨｉｇｈレベルになる。また、信号ＳＩＧＯＵＴが信号分配用ラッチ回路４２２に入力されるので、信号分配用ラッチ回路４２２はリセットされ、信号ＱＳ’はＨｉｇｈレベルになる。この状態で連動式カウンタ４１６のカウント数が４になったとしても、信号分配用フリップフロップ回路４２４のＪ端子及びＫ端子が共にＬｏｗレベルになるので、信号ＳＩＧＯＵＴはＨｉｇｈレベルのままである。しかしながら、連動式カウンタ４１６のカウント数が５になると、復号結果５がＨｉｇｈレベルになり、信号分配用フリップフロップ回路４２４のＫ端子もＨｉｇｈレベルになる。つまり信号ＳＩＧＯＵＴはクロック信号ＣＬＫの立ち下がり時にＬｏｗレベルになる。図７７から明らかなように、信号ＳＩＧＩＮが入力されると、復号結果３’がＬｏｗレベルである際にクロック信号ＣＬＫが立ち下がった時刻から復号結果５がＨｉｇｈレベルである際にクロック信号ＣＬＫが立ち下がった時刻まで信号ＳＩＧＯＵＴが出力されている。そこでデジタル回路４３１がＬＳＩの何処に配置されようとも、復号結果５の立ち上がり時にデジタル回路４３１は信号ＳＩＧＯＵＴを確実に入力することができる。このような機能はリセット信号、割込信号及び入出力信号など、既に設計されているデジタル回路４３１を殆んど変更することなく１つのシステムＬＳＩを組み込む場合には必要不可欠である。
【０４４３】
この他に、図７８に示すように、連動式信号分配回路は、分岐点Ｚにおいて、復号結果５が信号分配用ラッチ回路４２２の２つの入力端子のうちのもう１つに分配されても良い。図７６に示された連動式信号分配回路の場合、信号分配用ラッチ回路４２２は信号ＳＩＧＯＵＴによってリセットされる。したがって、信号ＳＩＧＯＵＴがＨｉｇｈレベルである際に信号ＳＩＧＩＮがＨｉｇｈレベルになったとしても、信号分配用ラッチ回路４２２は信号ＳＩＧＩＮを記憶することができない。これに対して、図７８に示された連動式信号分配回路の場合、信号分配用ラッチ回路４２２は復号結果５によってリセットされる。したがって、信号ＳＩＧＯＵＴがＨｉｇｈレベルである際に信号ＳＩＧＩＮがＨｉｇｈレベルになったとしても、復号結果５がＨｉｇｈレベルでなければ、信号分配用ラッチ回路４２２は信号ＳＩＧＩＮを記憶することができる。つまり、復号結果５がＨｉｇｈレベルからＬｏｗレベルに変った直後に信号ＳＩＧＩＮがＨｉｇｈレベルになったならば、信号分配用ラッチ回路４２２は信号ＳＩＧＩＮを記憶することができる。そこで復号結果５の代りに、信号分配用ラッチ回路４２２の２つの入力端子のうちのもう１つに復号結果４を入力すれば、信号ＳＩＧＯＵＴがＨｉｇｈレベルであったとしても、信号分配用ラッチ回路４２２は信号ＳＩＧＩＮを記憶することができるようになる。
【０４４４】
なお、図７６及び７８の信号分配用デコーダ４２１、信号分配用ラッチ回路４２２及び信号分配用論理ゲート４２３にはＮＯＲゲートが用いられているが、ＮＡＮＤゲートなどが用いられても良い。また、図７６及び７８では、計時開始時刻及び計時終了時刻を表すためにそれぞれ負論理復号結果３’及び復号結果５が用いられているが、勿論他の復号結果及び負論理復号結果が用いられても良い。外部から適当な信号ＳＩＧＩＮが入力されると、信号分配用ラッチ回路４２２がこの信号を一旦記憶した後、信号分配用論理ゲート４２３によって計時開始時刻に信号分配用フリップフロップ回路４２４に入力される。信号分配用フリップフロップ回路４２４はクロック信号に同期して入力信号を記憶し、計時終了時刻にリセットされる。これにより入力信号の伝搬遅延時間に関わらず、連動式信号分配回路は計時開始時刻前に到達した入力信号を計時開始時刻から計時終了時刻まで出力することができる。なお入力信号の論理が反転している場合には信号分配用ラッチ回路４２２の前に論理ゲートを加えることにより、連動式信号分配回路は正常に動作することができる。
【０４４５】
ここまでは連動式カウンタ４１６、カウンタネットワーク及び連動式信号分配回路について説明してきた。連動式カウンタ４１６が連動用ラッチ回路４１３を備えているので、各々の連動式カウンタ４１６に入力されるクロック信号ＣＬＫの伝搬遅延時間が長くなったとしても、隣接する連動式カウンタ４１６に各々の連動信号が到達するまでの遅延時間がクロック信号ＣＬＫの周期に比べて十分に短ければ、全ての連動式カウンタ４１６は同じカウント数を出力することができる。しかしながら、クロック信号ＣＬＫの周波数が高くなると、各々の連動信号が上記の条件を満すことは難しくなる。そこで以下では、連動式カウンタ４１６をＬＳＩ全体で同期させるために必要な同期式発振回路４１０について説明した後、連動式カウンタ４１６及び同期式発振回路４１０が三次元ＬＳＩに実装される場合について説明する。
【０４４６】
まず、図７９に示すように、同期式発振回路４１０は、Ａ側発振用論理ゲート４０１ａ、Ａ側発振用コンデンサ４０４ａ、Ｂ側発振用論理ゲート４０１ｂ及びＢ側発振用コンデンサ４０４ｂから構成される発振部分、Ａ側同期用ラッチ回路４０５ａ、Ａ側同期用論理ゲート４０６ａ、Ｂ側同期用ラッチ回路４０５ｂ及びＢ側同期用論理ゲート４０６ｂから構成される同期部分、及び初期化用論理ゲート４０２から構成され、発振部分と同期部分はそれぞれＡ側とＢ側の２つに分割される。また図７９では、同期式発振回路４１０が他の４つの同期式発振回路４１０から同期信号ＳｙｎｃＡ１’、ＳｙｎｃＡ２’、ＳｙｎｃＡ３’、ＳｙｎｃＡ４’、ＳｙｎｃＢ１’、ＳｙｎｃＢ２’、ＳｙｎｃＢ３’及びＳｙｎｃＢ４’を入力するものとする。なお図７９において、Ａ側発振用論理ゲート４０１ａ、Ｂ側発振用論理ゲート４０１ｂ、Ａ側同期用ラッチ回路４０５ａ、Ａ側同期用論理ゲート４０６ａ、Ｂ側同期用ラッチ回路４０５ｂ、Ｂ側同期用論理ゲート４０６ｂ及び初期化用論理ゲート４０２には、全てＮＯＲゲートが用いられているが、勿論ＮＡＮＤゲートなど他の論理ゲートが用いられても良い。
【０４４７】
発振部分では、Ａ側発振用論理ゲート４０１ａ、Ａ側発振用コンデンサ４０４ａ、Ｂ側発振用論理ゲート４０１ｂ及びＢ側発振用コンデンサ４０４ｂが環状に配線され、さらにＡ側発振用論理ゲート４０１ａ及びＢ側発振用論理ゲート４０１ｂの出力と入力が、それぞれＡ側発振用抵抗４０３ａ及びＢ側発振用抵抗４０３ｂを用いて配線される。すなわち、Ａ側発振用論理ゲート４０１ａは複数（ここでは３つ）の入力端子を備え、各々の入力端子が、Ａ側発振用コンデンサ４０４ａの１つの端子、初期化用論理ゲート４０２の出力端子及びＡ側同期用ラッチ回路４０５ａの出力端子に配線される。さらにＡ側発振用抵抗４０３ａが、Ａ側発振用コンデンサ４０４ａに接続されたＡ側発振用論理ゲート４０１ａの入力端子と、Ａ側発振用論理ゲート４０１ａの出力端子との間を接続する。同様に、Ｂ側発振用論理ゲート４０１ｂは複数（ここでは２つ）の入力端子を備え、各々の入力端子が、Ｂ側発振用コンデンサ４０４ｂの１つの端子、初期化用論理ゲート４０２の出力端子及びＢ側同期用ラッチ回路４０５ｂの出力端子に配線される。さらにＢ側発振用抵抗４０３ｂが、Ｂ側発振用コンデンサ４０４ｂに接続されたＢ側発振用論理ゲート４０１ｂの入力端子と、Ｂ側発振用論理ゲート４０１ｂの出力端子との間を接続する。最後に、Ａ側発振用コンデンサ４０４ａ及びＢ側発振用コンデンサ４０４ｂの開放端子が、それぞれＢ側発振用論理ゲート４０１ｂ及びＡ側発振用論理ゲート４０１ａの出力端子に接続される。
【０４４８】
さて、Ａ側発振用論理ゲート４０１ａの出力端子の電圧がＨｉｇｈレベルである場合、分岐点Ｅの電圧もＨｉｇｈレベルになる。したがってクロック信号ＣｌｏｃｋＡもＨｉｇｈレベルになる。また分岐点Ｅ及びＦにおいて、Ａ側発振用論理ゲート４０１ａの出力端子から供給される電流は、クロック信号ＣｌｏｃｋＡ、Ａ側発振用抵抗４０３ａ、Ｂ側発振用コンデンサ４０４ｂ及び初期化用論理ゲート４０２に分配される。Ａ側発振用抵抗４０３ａに分配された電流は、分岐点Ｇにおいて、Ａ側発振用論理ゲート４０１ａ及びＡ側発振用コンデンサ４０４ａに分配される。分岐点Ｇの電圧が分岐点Ｅ及びＦの電圧と等しくなるまで、Ａ側発振用コンデンサ４０４ａは、分配された電流を入力する。分岐点Ｇの電圧がＨｉｇｈレベルになると、分岐点Ｈの電圧もＨｉｇｈレベルになるので、同期信号ＳｙｎｃＡ０’もＨｉｇｈレベルになる。さらにＡ側発振用論理ゲート４０１ａの１つの入力端子の電圧がＨｉｇｈレベルになるので、Ａ側発振用論理ゲート４０１ａの出力端子の電圧がＬｏｗレベルになる。一方で、Ａ側発振用論理ゲート４０１ａの出力端子の電圧がＬｏｗレベルの場合、分岐点Ｇの電圧が分岐点Ｅ及びＦの電圧と等しくなるまで、Ａ側発振用コンデンサ４０４ａは電流を出力する。この電流は、分岐点Ｇにおいて、Ａ側発振用論理ゲート４０１ａ及びＡ側発振用抵抗４０３ａに分配される。Ａ側発振用抵抗４０３ａに分配された電流は、分岐点Ｅにおいて、Ｂ側発振用コンデンサ４０４ｂからの電流と合流し、Ａ側発振用論理ゲート４０１ａの出力端子に流入する。分岐点Ｇの電圧がＬｏｗレベルになると、分岐点Ｈの電圧もＬｏｗレベルになるので、同期信号ＳｙｎｃＡ０’もＬｏｗレベルになる。さらにＡ側発振用論理ゲート４０１ａの他の入力端子の電圧もＬｏｗレベルになると、Ａ側発振用論理ゲート４０１ａの出力端子の電圧がＨｉｇｈレベルになる。
【０４４９】
同様に、Ｂ側発振用論理ゲート４０１ｂの出力端子の電圧がＨｉｇｈレベルである場合、分岐点Ｉの電圧もＨｉｇｈレベルになる。したがってクロック信号ＣｌｏｃｋＢもＨｉｇｈレベルになる。また分岐点Ｉ、Ｊ及びＫにおいて、Ｂ側発振用論理ゲート４０１ｂの出力端子から供給される電流は、クロック信号ＣｌｏｃｋＢ、Ｂ側発振用抵抗４０３ｂ、Ａ側発振用コンデンサ４０４ａ及び初期化用論理ゲート４０２に分配される。Ｂ側発振用抵抗４０３ｂに分配された電流は、分岐点Ｌにおいて、Ｂ側発振用論理ゲート４０１ｂ及びＢ側発振用コンデンサ４０４ｂに分配される。分岐点Ｌの電圧が分岐点Ｉ、Ｊ及びＫの電圧と等しくなるまで、Ｂ側発振用コンデンサ４０４ｂは、分配された電流を入力する。分岐点Ｌの電圧がＨｉｇｈレベルになると、分岐点Ｍの電圧もＨｉｇｈレベルになるので、同期信号ＳｙｎｃＢ０’もＨｉｇｈレベルになる。さらにＢ側発振用論理ゲート４０１ｂの１つの入力端子の電圧がＨｉｇｈレベルになるので、Ｂ側発振用論理ゲート４０１ｂの出力端子の電圧がＬｏｗレベルになる。一方で、Ｂ側発振用論理ゲート４０１ｂの出力端子の電圧がＬｏｗレベルの場合、分岐点Ｌの電圧が分岐点Ｉ、Ｊ及びＫの電圧と等しくなるまで、Ｂ側発振用コンデンサ４０４ｂは電流を出力する。この電流は、分岐点Ｌにおいて、Ｂ側発振用論理ゲート４０１ｂ及びＢ側発振用抵抗４０３ｂに分配される。Ｂ側発振用抵抗４０３ｂに分配された電流は、分岐点Ｊにおいて、Ａ側発振用コンデンサ４０４ａからの電流と合流し、Ｂ側発振用論理ゲート４０１ｂの出力端子に流入する。分岐点Ｌの電圧がＬｏｗレベルになると、分岐点Ｍの電圧もＬｏｗレベルになるので、同期信号ＳｙｎｃＢ０’もＬｏｗレベルになる。さらにＢ側発振用論理ゲート４０１ｂの他の入力端子の電圧もＬｏｗレベルになると、Ｂ側発振用論理ゲート４０１ｂの出力端子の電圧がＨｉｇｈレベルになる。
【０４５０】
なお、Ａ側発振用コンデンサ４０４ａ及びＢ側発振用コンデンサ４０４ｂに蓄えられる電荷量は、Ａ側発振用論理ゲート４０１ａ及びＢ側発振用論理ゲート４０１ｂの出力端子の電圧の差に依存する。
【０４５１】
ここでＡ側発振用抵抗４０３ａ及びＢ側発振用抵抗４０３ｂの抵抗値を共にＲオームとし、Ａ側発振用コンデンサ４０４ａ及びＢ側発振用コンデンサ４０４ｂの容量を共にＣファラッドとすると、発振部分は、時定数ＲＣに応じて自励発振をすることにより、２つのクロック信号ＣｌｏｃｋＡ及びＣｌｏｃｋＢと、２つの同期信号ＳｙｎｃＡ０’及びＳｙｎｃＢ０’を生成することができる。
【０４５２】
同期部分では、同期信号ＳｙｎｃＡ１’、ＳｙｎｃＡ２’、ＳｙｎｃＡ３’、ＳｙｎｃＡ４’、ＳｙｎｃＢ１’、ＳｙｎｃＢ２’、ＳｙｎｃＢ３’及びＳｙｎｃＢ４’に応じて、Ａ側同期用ラッチ回路４０５ａとＡ側同期用論理ゲート４０６ａ、及びＢ側同期用ラッチ回路４０５ｂとＢ側同期用論理ゲート４０６ｂが、それぞれＡ側発振用論理ゲート４０１ａ及びＢ側発振用論理ゲート４０１ｂを制御する。
【０４５３】
すなわち、Ａ側同期用論理ゲート４０６ａの複数の入力端子（ここでは４つ）に、それぞれ同期信号ＳｙｎｃＡ１’、ＳｙｎｃＡ２’、ＳｙｎｃＡ３’及びＳｙｎｃＡ４’が入力され、Ａ側同期用論理ゲート４０６ａの出力端子がＡ側同期用ラッチ回路４０５ａの１つの入力端子に配線される。またＡ側同期用ラッチ回路４０５ａのもう１つの入力端子に同期信号ＳｙｎｃＡＯ’が入力される。したがって、同期信号ＳｙｎｃＡ１’、ＳｙｎｃＡ２’、ＳｙｎｃＡ３’及びＳｙｎｃＡ４’の全てがＬｏｗレベルである場合、Ａ側同期用ラッチ回路４０５ａの出力信号ＱＳＡ’はＬｏｗレベルになる。さらに同期信号ＳｙｎｃＡ０’がＬｏｗレベルであれば、Ａ側発振用論理ゲート４０１ａの出力端子はＨｉｇｈレベルになることができる。ただし、同期信号ＳｙｎｃＡ１’、ＳｙｎｃＡ２’、ＳｙｎｃＡ３’及びＳｙｎｃＡ４’のうちいずれか１つでもＨｉｇｈレベルである場合、同期信号ＳｙｎｃＡ０’がＨｉｇｈレベルになれば、Ａ側同期用ラッチ回路４０５ａの出力信号ＱＳＡ’はＨｉｇｈレベルになる。しかも同期信号ＳｙｎｃＡ０’が再度Ｌｏｗレベルになっても、Ａ側同期用ラッチ回路４０５ａの出力信号ＱＳＡ’はＨｉｇｈレベルのままである。したがって同期信号ＳｙｎｃＡ０’、ＳｙｎｃＡ１’、ＳｙｎｃＡ２’、ＳｙｎｃＡ３’及びＳｙｎｃＡ４’の全てがＬｏｗレベルにならなければ、Ａ側発振用論理ゲート４０１ａの出力端子はＨｉｇｈレベルになることができない。
【０４５４】
同様に、Ｂ側同期用論理ゲート４０６ｂの複数の入力端子（ここでは４つ）に、それぞれ同期信号ＳｙｎｃＢ１’、ＳｙｎｃＢ２’、ＳｙｎｃＢ３’及びＳｙｎｃＢ４’が入力され、Ｂ側同期用論理ゲート４０６ｂの出力端子がＢ側同期用ラッチ回路４０５ｂの１つの入力端子に配線される。またＢ側同期用ラッチ回路４０５ｂのもう１つの入力端子に同期信号ＳｙｎｃＢＯ’が入力される。したがって、同期信号ＳｙｎｃＢ１’、ＳｙｎｃＢ２’、ＳｙｎｃＢ３’及びＳｙｎｃＢ４’の全てがＬｏｗレベルである場合、Ｂ側同期用ラッチ回路４０５ｂの出力信号ＱＳＢ’はＬｏｗレベルになる。さらに同期信号ＳｙｎｃＢ０’がＬｏｗレベルであれば、Ｂ側発振用論理ゲート４０１ｂの出力端子はＨｉｇｈレベルになることができる。ただし、同期信号ＳｙｎｃＢ１’、ＳｙｎｃＢ２’、ＳｙｎｃＢ３’及びＳｙｎｃＢ４’のうちいずれか１つでもＨｉｇｈレベルである場合、同期信号ＳｙｎｃＢ０’がＨｉｇｈレベルになれば、Ｂ側同期用ラッチ回路４０５ｂの出力信号ＱＳＢ’はＨｉｇｈレベルになる。しかも同期信号ＳｙｎｃＢ０’が再度Ｌｏｗレベルになっても、Ｂ側同期用ラッチ回路４０５ｂの出力信号ＱＳＢ’はＨｉｇｈレベルのままである。したがって同期信号ＳｙｎｃＢ０’、ＳｙｎｃＢ１’、ＳｙｎｃＢ２’、ＳｙｎｃＢ３’及びＳｙｎｃＢ４’の全てがＬｏｗレベルにならなければ、Ｂ側発振用論理ゲート４０１ｂの出力端子はＨｉｇｈレベルになることができない。
【０４５５】
これにより同期部分は、同期信号ＳｙｎｃＡ０’及びＳｙｎｃＢ０’の位相と周期を、同期信号ＳｙｎｃＡ１’、ＳｙｎｃＡ２’、ＳｙｎｃＡ３’、ＳｙｎｃＡ４’、ＳｙｎｃＢ１’、ＳｙｎｃＢ２’、ＳｙｎｃＢ３’及びＳｙｎｃＢ４’の位相と周期に合わせることができる。
【０４５６】
初期化用論理ゲート４０２は、電源投入時などにＡ側発振用論理ゲート４０１ａ及びＢ側発振用論理ゲート４０１ｂを制御することにより、同期信号ＳｙｎｃＡ０’及びＳｙｎｃＢ０’の位相を決定するものである。図７９の場合、初期化用論理ゲート４０２として２入力ＮＯＲゲートが用いられている。この初期化用論理ゲート４０２の２つの入力端子が、それぞれＡ側発振用論理ゲート４０１ａ及びＢ側発振用論理ゲート４０１ｂの出力端子に配線され、しかも初期化用論理ゲート４０２の出力信号Ｏｓｃ’がＡ側発振用論理ゲート４０１ａの入力端子のうちの１つに入力されているので、Ａ側発振用論理ゲート４０１ａ及びＢ側発振用論理ゲート４０１ｂの出力端子の電圧が共にＬｏｗレベルの時だけ、出力信号Ｏｓｃ’はＨｉｇｈレベルになる。このような状態は、Ａ側発振用論理ゲート４０１ａ、Ａ側発振用抵抗４０３ａ、Ａ側発振用コンデンサ４０４ａ、Ａ側同期用ラッチ回路４０５ａ、Ａ側同期用論理ゲート４０６ａ、Ｂ側発振用論理ゲート４０１ｂ、Ｂ側発振用抵抗４０３ｂ、Ｂ側発振用コンデンサ４０４ｂ、Ｂ側同期用ラッチ回路４０５ｂ、Ｂ側同期用論理ゲート４０６ｂ及び初期化用論理ゲート４０２の低品質及び故障が原因である場合、及びノイズにより同期式発振回路４１０が誤動作した場合を除いて、電源投入時に限られる。したがって初期化用論理ゲート４０２は、電源投入時にＡ側発振用論理ゲート４０１ａの出力端子の電圧をＬｏｗレベルに固定することができる。これにより、Ｂ側発振用論理ゲート４０１ｂの出力端子の電圧がＨｉｇｈレベルになるので、同期信号ＳｙｎｃＡ０’及びＳｙｎｃＢ０’の位相が電源投入時に決定される。
【０４５７】
なお、図７９では同期式発振回路４１０が他の４つの同期式発振回路４１０から同期信号を入力する場合を示したが、接続される同期式発振回路４１０の数に応じてＡ側同期用論理ゲート４０６ａ及びＢ側同期用論理ゲート４０６ｂの入力数を変更するか、さもなくばＡ側同期用論理ゲート４０６ａ及びＢ側同期用論理ゲート４０６ｂの入力端子のうち不必要なものをプルダウンすれば良い。
【０４５８】
図７９の同期式発振回路４１０は、ＴＴＬ（Ｔｒａｎｓｉｓｔｏｒ−Ｔｒａｎｓｉｓｔｏｒ  Ｌｏｇｉｃ）及びＥＣＬ（エミッタ結合論理回路）など多くの半導体技術を用いて実装することができる。ただしＣＭＯＳ（相補形金属酸化膜半導体）のようなＦＥＴ（電界効果型トランジスタ）を用いた場合には、Ａ側発振用コンデンサ４０４ａ及びＢ側発振用コンデンサ４０４ｂに蓄えられた電荷がＡ側発振用論理ゲート４０１ａ、Ａ側同期用ラッチ回路４０５ａ、Ｂ側発振用論理ゲート４０１ｂ及びＢ側同期用ラッチ回路４０５ｂの入力端子に一斉に流れた場合、Ａ側発振用論理ゲート４０１ａ、Ａ側同期用ラッチ回路４０５ａ、Ｂ側発振用論理ゲート４０１ｂ及びＢ側同期用ラッチ回路４０５ｂのいずれかが破壊される恐れがある。図８０に示すように、同期式発振回路４１０では、この問題を回避するためにＡ側入力抵抗４０７ａ及びＢ側入力抵抗４０７ｂが用いられる。これにより、Ａ側発振用コンデンサ４０４ａ及びＢ側発振用コンデンサ４０４ｂに蓄えられた電荷が、Ａ側発振用論理ゲート４０１ａ、Ａ側同期用ラッチ回路４０５ａ、Ｂ側発振用論理ゲート４０１ｂ及びＢ側同期用ラッチ回路４０５ｂの入力端子に一斉に流れることはない。またＡ側入力抵抗４０７ａ及びＢ側入力抵抗４０７ｂにより、Ａ側発振用論理ゲート４０１ａ及びＢ側発振用論理ゲート４０１ｂの入力端子に流れる電流が減少するので、Ａ側入力抵抗４０７ａとＡ側発振用コンデンサ４０４ａ、及びＢ側入力抵抗４０７ｂとＢ側発振用コンデンサ４０４ｂから求められる時定数の精度も上がる。なおＡ側入力抵抗４０７ａ及びＢ側入力抵抗４０７ｂの抵抗値を共にＲ０オームとする。抵抗値Ｒ０は電源電圧、Ａ側発振用論理ゲート４０１ａ、Ａ側同期用ラッチ回路４０５ａ、Ｂ側発振用論理ゲート４０１ｂ及びＢ側同期用ラッチ回路４０５ｂの入力特性、及び容量Ｃなどを参考にして決定する。
【０４５９】
さて、ＬＳＩ技術を用いて論理ゲートのみならず抵抗及びコンデンサを実現したとしても、図７９及び８０の個々の部品の性能にはばらつきが生じる。まして同期式発振回路４１０に望み通りのクロック周波数を発生させることは困難である。そこで図８１に示すように、Ａ側発振用コンデンサ４０４ａの代りに水晶振動子４０８を用いることにより、同期式発振回路４１０が水晶振動子４０８の振動数に合わせて自励発振することができる。ただしＢ側発振用コンデンサ４０４ｂの容量Ｃは、同期式発振回路４１０がおおよそ水晶振動子４０８の振動数で自励発振するような値に設定する必要がある。
【０４６０】
ここまでは同期式発振回路４１０単体の回路構成について説明してきた。以下では、複数（ここでは３個）の同期式発振回路４１０ａ〜４１０ｃが接続された場合に、同期式発振回路４１０ａ〜４１０ｃがお互いにどのように同期を取るのか、タイミングチャートを用いて説明する。なおＣＭＯＳの場合、入力インピーダンスが高い上、入力電圧のしきい値が電源電圧と接地電圧の中央に設定され得るので、以下のタイミングチャートはＣＭＯＳを念頭に作成されている。ただしＴＴＬ及びＥＣＬなどの場合でも、タイミングチャートは同様の波形となる。
【０４６１】
まず図８２に示すように、３つの同期式発振回路４１０ａ〜４１０ｃが接続された場合を考える。なお、図８２において、同期式発振回路４１０ａ〜４１０ｃをＳＯＵと略記する。各々の同期式発振回路４１０ａ〜４１０ｃの同期信号ＳｙｎｃＡ０’及びＳｙｎｃＢ０’は、それぞれ残りの同期式発振回路４１０ａ〜４１０ｃのＡ側同期用論理ゲート４０６ａ及びＢ側同期用論理ゲート４０６ｂに入力される。したがってＡ側同期用論理ゲート４０６ａ及びＢ側同期用論理ゲート４０６ｂは２入力論理ゲートであれば良い。これら３つの同期式発振回路４１０ａ〜４１０ｃが安定して自励発振しているとき、同期式発振回路４１０ａのタイミングチャートを図８３に示す。なお、全ての同期式発振回路４１０ａ〜４１０ｃは対称的なので、同期式発振回路４１０ｂ及び４１０ｃのタイミングチャートも同様である。
【０４６２】
図８３から明らかなように、同期式発振回路４１０ａ〜４１０ｃが自励発振している場合には、クロック信号ＣｌｏｃｋＡ及びＣｌｏｃｋＢが同時にＨｉｇｈレベル（Ｈレベル）になることはない。そのため初期化用論理ゲート４０２の出力は常にＬｏｗレベル（Ｌレベル）となる。またＡ側発振用論理ゲート４０１ａ及びＢ側発振用論理ゲート４０１ｂの真理値表の非対称性に従い、Ａ側発振用コンデンサ４０４ａ及びＢ側発振用コンデンサ４０４ｂの電圧が放電によりＡ側発振用論理ゲート４０１ａ及びＢ側発振用論理ゲート４０１ｂの入力電圧のしきい値に到達した時点を起点として同期式発振回路４１０ａ〜４１０ｃが自励発振する。
【０４６３】
図８４に示すように、同期信号ＳｙｎｃＡ１’及びＳｙｎｃＢ１’の波形が何らかの理由により短くなった場合、同期式発振回路４１０は同期信号ＳｙｎｃＡ１’及びＳｙｎｃＢ１’に関係なく動作する。したがってクロック信号ＣｌｏｃｋＡ及びＣｌｏｃｋＢに対して影響はない。なお、同期信号ＳｙｎｃＡ１’及びＳｙｎｃＢ１’を生成する同期式発振回路４１０は、同期信号ＳｙｎｃＡ１’及びＳｙｎｃＢ１’を同期信号ＳｙｎｃＡ０’、ＳｙｎｃＡ２’、ＳｙｎｃＢ０’及びＳｙｎｃＢ２’の位相に合わせるように動作する。
【０４６４】
図８５に示すように、同期信号ＳｙｎｃＡ２’及びＳｙｎｃＢ２’の波形が何らかの理由により長くなった場合、同期式発振回路４１０ａは、同期信号ＳｙｎｃＢ０’（又はＳｙｎｃＡ０’）の位相を同期信号ＳｙｎｃＢ２’（又はＳｙｎｃＡ２’）の位相に合わせるように動作する。したがってクロック信号ＣｌｏｃｋＡ及びＣｌｏｃｋＢの周期は同期信号ＳｙｎｃＢ２’（又はＳｙｎｃＡ２’）の周期に合わせて長くなる。
【０４６５】
図８６に示すように、同期信号ＳｙｎｃＡ１’及びＳｙｎｃＢ１’の波形が何らかの理由により短くなり、同期信号ＳｙｎｃＡ２’及びＳｙｎｃＢ２’の波形が何らかの理由により長くなった場合、同期式発振回路４１０ａは同期信号ＳｙｎｃＢ０’（又はＳｙｎｃＡ０’）の位相を同期信号ＳｙｎｃＢ２’（又はＳｙｎｃＡ２’）の位相に合わせるように動作する。したがってクロック信号ＣｌｏｃｋＡ及びＣｌｏｃｋＢの周期は同期信号ＳｙｎｃＢ２’（又はＳｙｎｃＡ２’）の周期に合わせて長くなる。
【０４６６】
上記より、３つの同期式発振回路４１０ａ〜４１０ｃは、これらのうち最も周期が長いものに同期することが判る。このことは、時定数が微妙に異なる同期式発振回路４１０が接続された場合にも成り立つ。
【０４６７】
図８７に示すように、電源投入時に全ての信号の電圧は０ボルトとなるので、Ａ側発振用論理ゲート４０１ａ及びＢ側発振用論理ゲート４０１ｂの出力、つまりクロック信号ＣｌｏｃｋＡ及びＣｌｏｃｋＢはＬレベルと見なされる。したがって初期化用論理ゲート４０２の出力、つまり信号Ｏｓｃ’は直ちにＨレベルに変化する。同時にクロック信号ＣｌｏｃｋＡ及びＣｌｏｃｋＢもＨレベルに変化する。しかしながら信号Ｏｓｃ’がＨレベルになると、クロック信号ＣｌｏｃｋＡは強制的にＬレベルに変更されるので、結果としてクロック信号ＣｌｏｃｋＢのみがＨレベルとなる。このとき信号Ｏｓｃ’はＬレベルになり、その後Ｌレベルを持続する。これにより電源投入後、同期信号ＳｙｎｃＡ０’及びＳｙｎｃＢ０’の位相が一意に決定される。
【０４６８】
ここまでは同期式発振回路４１０を３つ接続した場合のタイミングチャートについて説明したが、３つの同期式発振回路４１０のうち少なくとも１つに、同期式発振回路４１０を用いた場合も同様の動作をする。ただし水晶振動子４０８の周期は一定であると見なせるので、水晶振動子４０８を含まない同期式発振回路４１０の位相が、水晶振動子４０８を含む同期式発振回路４１０の位相に合うように、水晶振動子４０８を含まない同期式発振回路４１０の波形の長さが優先的に変化する。したがって、同期式発振回路４１０のネットワークにおいて、水晶振動子４０８を含む同期式発振回路４１０が少なくとも１つあれば、ネットワーク全体のクロック周波数を一定に保つことができる。
【０４６９】
さて、同期式発振回路４１０は、必ずしも図８２のように他の全ての同期式発振回路４１０と接続される必要はない。そこで以下では、同期式発振回路４１０が規則的に配列された場合について説明する。
【０４７０】
図８８に示すように、二次元発振回路ネットワークは、正方格子状に配列された同期式発振回路４１０を隣接同士接続したネットワークである。この場合、Ａ側同期用論理ゲート４０６ａ及びＢ側同期用論理ゲート４０６ｂの入力数は４となる。なお、辺縁の同期式発振回路４１０において、接続先のないＡ側同期用論理ゲート４０６ａ及びＢ側同期用論理ゲート４０６ｂの入力はプルアップ又はプルダウンされるものとする。同期式発振回路４１０を正方格子状に配列する代りに、図８９に示すように六角格子状に配列して隣接同士を接続することもできる。このように同期式発振回路４１０が規則的に配置されることにより、全ての同期信号用信号線の長さがほぼ等しくなるので、同期式発振回路４１０は互いに同期し易くなる。したがって、パイプライン処理装置、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、シストリックアレイ、データフロープロセッサ、及び並列画像処理装置のように大規模で規則的なデジタル回路４３１に対して、これらの二次元ネットワークは、外部からのクロック信号を分配する場合に比べて、クロック信号を容易に供給することができる。
【０４７１】
そこで、正方格子状に配列された同期式発振回路４１０が、図７５に示すように三次元ＬＳＩに実装された連動式カウンタ４１６、デジタル回路４３１及びアナログ回路４３２にクロック信号を供給する場合を考えてみる。
【０４７２】
例えば、図９０の場合、正方格子状に配列された同期式発振回路４１０が第４層に実装され、正方格子状に配列された連動式カウンタ４１６が第２層及び第６層に実装され、デジタル回路４３１が第１層、第３層及び第５層に実装され、アナログ回路４３２が第７層に実装されている。つまり、図７５の第４層に、正方格子状に配列された同期式発振回路４１０が挿入されている。なお、図９０において、太線は連動信号を表し、細線は同期信号を表し、破線はクロック信号を表す。また連動信号、同期信号及びクロック信号を除く信号線は省略されているが、連動式カウンタ４１６カウント数の信号線は、図７５と同様に配線されているものとする。このとき第４層にある全ての同期式発振回路４１０は同じ位相と周期のクロック信号を生成するので、第２層及び第６層に実装された全ての連動式カウンタ４１６は、同じ位相と周期のクロック信号を入力することができる。したがって、第２層及び第６層に実装された各々の連動式カウンタ４１６を用いることにより、第１層、第３層及び第５層に実装された全てのデジタル回路４３１と、第７層に実装された全てのアナログ回路４３２は、リセット信号及び割り込み信号のような、三次元ＬＳＩの外部から入力される大域信号を一斉に入力することができるばかりでなく、互いに適当なタイミングで通信をすることができる。
【０４７３】
なお、図９０の場合、正方格子状に配列された同期式発振回路４１０が第４層に実装されているが、三次元ＬＳＩにおいて垂直方向の配線距離は水平方向の配線距離に比べて極めて短くなるので、各々の同期式発振回路４１０のクロック信号の伝搬遅延時間は無視できるほど小さいと見なされる。したがって、正方格子状に配列された同期式発振回路４１０は、第１層など他の層に実装されても良い。また、図７４に示された連動式カウンタ４１６と同様に、正方格子状に配列された同期式発振回路４１０が複数の層に実装されても良い。
【０４７４】
さて、ここまでは人工眼球１、視覚装置２、通信装置７及びイメージセンサについて説明してきた。そこで最後に中央制御装置２２１について説明する。
【０４７５】
まず、図９１に示した中央制御装置２２１を、３つのグループ、つまり視覚装置２が出力した環境地図及び任意物体数を音声合成装置２２６が入力可能な地図テキスト及び物体数テキストに変換するグループと、音声認識装置２２７が出力した命令テキストを視覚装置２が入力可能な制御命令に変換するグループと、視覚装置２が出力したデジタル画像１１１に地図テキスト、物体数テキスト及び命令テキストを挿入するグループと、に分けて説明する。
【０４７６】
第一のグループには環境地図入力手段３０１、地図／テキスト変換手段３０２、物体数入力手段３０３、物体数／テキスト変換手段３０４及び地図／物体数テキスト保持手段３０５が含まれる。
【０４７７】
まず物体領域１４１の種別及び位置を表す環境データから構成される環境地図が視覚装置２から出力される度に、環境地図入力手段３０１がこの環境地図を入力し、バッファに順次記憶する。地図／テキスト変換手段３０２が入力可能になると、環境地図入力手段３０１は入力順番に従って環境データ毎に出力する。地図／テキスト変換手段３０２は環境データを入力すると、物体領域１４１の種別及び位置を文字列（地図テキスト）に変換する。この際に地図／テキスト変換手段３０２は、利用者の位置を原点とし、物体の位置及び位置の変化を利用者が常時見ている方向、つまり正面を基準とした座標に変換して、しかも、前、後、右、左、上、下、近く、遠く、近付く、遠退く、横切る、すれ違う、追い越す、など利用者が判りやすい言葉に変更する。さらにエスケープシーケンス及び特殊記号などを用いることにより、地図／テキスト変換手段３０２は環境地図に含まれる移動カメラ１０の向き及び倍率を基にした位置を原点とした座標に変換して、前述の言葉に変更した後に地図テキストに追加する。これにより、地図テキストは同じ物体領域１４１の位置を異なる座標で表すことができる。地図／物体数テキスト保持手段３０５は地図／テキスト変換手段３０２によって変換された地図テキストをバッファに順次記憶し、音声合成装置２２６に出力する。
【０４７８】
同様に、環境地図に一定期間記録された物体の個数を表す任意物体数が視覚装置２から出力される度に、物体数入力手段３０３がこの任意物体数を入力し、バッファに順次記憶する。物体数／テキスト変換手段３０４が入力可能になると、物体数入力手段３０３は入力順番に従って任意物体数を出力する。物体数／テキスト変換手段３０４は任意物体数を入力すると、物体領域１４１の個数を文字列（物体数テキスト）に変換する。地図／物体数テキスト保持手段３０５は物体数／テキスト変換手段３０４によって変換された物体数テキストをバッファに順次記憶し、音声合成装置２２６に出力する。
【０４７９】
第二のグループには命令テキスト入力手段３０６、テキスト／命令変換手段３０７及び制御命令保持手段３０８が含まれる。まず利用者が指示した命令の認識結果である、前、後、右、左、上、下、近く、遠く、もっと、もう少し、などの文字列（命令テキスト）が音声認識装置２２７から出力される度に命令テキスト入力手段３０６がこの命令テキストを入力し、バッファに順次記憶する。テキスト／命令変換手段３０７が入力可能になると、命令テキスト入力手段３０６は入力順番に従って命令テキスト毎に出力する。なお命令テキスト入力手段３０６は制御ボタン２２３に割り当てられた制御コードもバッファに順次記憶する。テキスト／命令変換手段３０７は命令テキストを入力すると、命令テキストを視覚装置２にとって入力可能な制御命令に変換する。この際にテキスト／命令変換手段３０７は、命令テキストを移動カメラ１０の向き、つまりディスプレイ２２２の中心と、移動カメラ１０の倍率を基にした位置を原点とした座標に変換して、移動カメラ１０の現在位置からの相対的な移動量を算出する。これにより利用者はディスプレイ２２２を見ながら簡単に移動カメラ１０を制御することができる。制御命令保持手段３０８はテキスト／命令変換手段３０７によって変換された制御命令をバッファに順次記憶し、視覚装置２に出力する。
【０４８０】
第三のグループにはデジタル画像受信手段３０９、テキスト挿入手段３１０及びビデオ信号出力手段３１１が含まれる。まずデジタル画像受信手段３０９は通信装置７が送信したデジタル画像１１１を入力し、テキスト挿入手段３１０に出力する。テキスト挿入手段３１０は地図／テキスト変換手段３０２から地図テキストを入力するか、物体数／テキスト変換手段３０４から物体数テキストを入力するか、又は命令テキスト入力手段３０６から命令テキストを入力するか、のいずれかがある毎に、スーパーインポーズ機能を実現するソフトウェアを用いて地図テキスト、物体数テキスト及び命令テキストをデジタル画像１１１に挿入する。テキスト挿入手段３１０は地図テキスト、物体数テキスト及び命令テキストの有無を問わず、デジタル画像１１１をビデオ信号出力手段３１１に出力する。ビデオ信号出力手段３１１はテキスト挿入手段３１０からデジタル画像１１１を入力すると、ＮＴＳＣ、ＰＡＬ、ＨＤＴＶ、ＶＧＡ、ＭＰＥＧフォーマットなどのビデオ信号に変換し、ディスプレイ２２２に出力する。
【０４８１】
以上、本実施形態を説明したが、本発明は上述の実施形態には限定されることはなく、当業者であれば種々なる態様を実施可能であり、本発明の技術的思想を逸脱しない範囲において本発明の構成を適宜改変できることは当然であり、このような改変も、本発明の技術的範囲に属するものである。
【０４８９】
【発明の効果】
請求項１記載の発明によれば、配列演算ユニット１００は短時間に多量のデータを近傍の配列演算ユニット１００に転送することができる。そこで移動元重複情報画像１８４のように多数のデータを近傍に転送しなければならない場合、本発明は通信のボトルネックによって性能を落とすことがない。また幾つかの局所並列画像処理を一斉に実行する場合にも本発明はこれらの局所並列画像処理を効率よく実行することができる。さらに各々のコントローラ１０３が前入力データレジスタ６１及び結果データレジスタ６２を備えているので、配列演算ユニット１００は複数のデータを一斉に入出力することができる。特に本発明は、複数の画像を用いて局所並列画像処理を実行するようなエッジ情報形成装置及び領域正規化装置に有効である。また層を跨いだ配列演算ユニット１００間の通信に幾つかのコントローラ１０３の前入力データレジスタ６１及び結果データレジスタ６２を利用することにより、ＬＳＩ設計者は三次元ＬＳＩのバンプを有効に活用することができる。
【０４９０】
請求項２記載の発明によれば、配列演算ユニット１００は短時間に多量のデータを近傍の配列演算ユニット１００に転送することができる。そこで移動元重複情報画像１８４のように多数のデータを近傍に転送しなければならない場合、本発明は通信のボトルネックによって性能を落とすことがない。また幾つかの局所並列画像処理を一斉に実行する場合にも本発明はこれらの局所並列画像処理を効率よく実行することができる。本発明はコントローラ１０３を独立した層に実装し、しかもコントローラ１０３はアドレスバス５１及びデータバス５２を介してプロセッサ１０１及びメモリ１０２と通信するので、ＬＳＩ設計者は必要に応じてコントローラ１０３を実装した層の数を増やすだけで、配列演算ユニット１００間の通信性能を向上することができる。なお請求項１及び２記載の発明を組み合せることにより、ＬＳＩはコントローラ１０３を高密度に集積することができる。
【０４９１】
請求項３記載の発明によれば、視覚装置２が一定の画素数の動画像を処理する場合、視覚装置２は、配列演算ユニット１００を用いる場合に比べて少ない数の仮想配列演算ユニット１０５しか必要としない。つまり従来のＬＳＩ（大規模集積回路）技術で実装できる配列演算ユニット１００の数が動画像の画素数に満たない場合、ＬＳＩの設計者は仮想配列演算ユニット１０５を用いることにより、視覚装置２をＬＳＩに実装することができる。さらに位置／大きさ／傾き検出手段４４のように配列演算ユニット１００が隣接する配列演算ユニット１００と多数の計算データを通信しなければならない場合、仮想配列演算ユニット１０５はこれらの計算データをメモリ１０２内で参照すれば良くなるので、ＬＳＩの設計者は、仮想配列演算ユニット１０５に割り当てる配列演算ユニット１００の数を適切に決定することにより、視覚装置２を高速に動作させることもできる。しかも配列演算ユニット１００は仮想配列演算ユニット１０５内でプログラム及びルックアップテーブルを共有できるので、データ処理装置１１０は全体としてメモリ１０２の消費量を少なくすることができる。
【図面の簡単な説明】
【図１】  人工眼球が生成した情報をユーザ端末に送信する情報収集システムの説明図である。
【図２】  人工眼球を搭載した携帯電話の説明図である。
【図３】  自動車の後部に移動カメラ及び視覚装置を設置した場合の説明図である。
【図４】  車イスの後部に移動カメラ及び視覚装置を設置した場合の説明図である。
【図５】  人工眼球が生成した情報を監視端末が常時監視し、必要に応じてユーザ端末に送信する情報収集システムの説明図である。
【図６】  人工眼球が生成した情報をデータベースに蓄積し、ユーザ端末が適宜データベースを検索する情報収集システムの説明図である。
【図７】  移動カメラを制御する視覚装置から収集した物体の種別及び位置からなる環境データ、物体数及びデジタル画像を記録するデータベースのレコードの説明図である。
【図８】  人工眼球が生成した情報をデータベースに蓄積し、監視端末が適宜データベースを検索し、必要に応じてユーザ端末に送信する情報収集システムの説明図である。
【図９】  本発明実施形態の視覚装置を含む情報収集システムを示し、１個の人工眼球と１個のユーザ端末から構成される情報収集システムのブロック図である。
【図１０】  移動カメラ、視覚装置及び通信機能を備えた人工眼球の説明図である。
【図１１】  人工眼球に搭載された通信装置のブロック図である。
【図１２】  通信装置の画像圧縮手段のアルゴリズムを示すフローチャートである。
【図１３】  移動カメラ、視覚装置、刺激発生器、電極配列端子、コネクタ及びバッテリを備えた人工眼球の説明図である。
【図１４】  移動カメラを制御して物体を探索し、物体の数を数える視覚装置のブロック図である。
【図１５】  レンズ光軸を中心にして移動カメラを回転した場合の画像座標の説明図である。
【図１６】  格子状に配置された配列演算ユニットのブロック図である。
【図１７】  反時計回りに順番付けられた８近傍の番号の説明図である。
【図１８】  視覚装置の画像記憶手段のアルゴリズムを示すフローチャートである。
【図１９】  デジタル画像中の特定の色に対して色情報を生成する場合の説明図である。
【図２０】  視覚装置の色情報生成手段のアルゴリズムを示すフローチャートである。
【図２１】  デジタル画像を用いて粗エッジ情報を生成する場合の説明図である。
【図２２】  視覚装置のエッジ情報生成手段のアルゴリズムを示すフローチャートである。
【図２３】  デジタル画像を用いて粗エッジ情報を形成エッジ情報に形成する場合の説明図である。
【図２４】  視覚装置のエッジ情報形成手段のアルゴリズムを示すフローチャートである。
【図２５】  低解像度デジタル画像から生成された低解像度粗エッジ情報を形成エッジ情報に形成する場合の説明図である。
【図２６】  低解像度デジタル画像から生成された低解像度粗エッジ情報の領域を切り出してから形成エッジ情報に形成する場合の説明図である。
【図２７】  エッジ情報画像中の物体の位置及び大きさを検出する場合の説明図である。
【図２８】  視覚装置の位置／大きさ検出手段のアルゴリズムを示すフローチャートである。
【図２９】  物体領域画像中の物体の位置及び大きさを検出する場合の説明図である。
【図３０】  エッジ情報画像中の物体の位置、大きさ及び傾きを検出する場合の説明図である。
【図３１】  配列演算ユニット１００の位置／大きさ／傾き検出装置のアルゴリズムを示すフローチャートである。
【図３２】  物体領域画像中の物体の位置、大きさ及び傾きを検出する場合の説明図である。
【図３３】  移動元重複情報の例の説明図である。
【図３４】  色情報画像中のテクスチャの位置、大きさ及び傾きを検出する場合の説明図である。
【図３５】  デジタル画像の分離物体領域を正規化する場合の説明図である。
【図３６】  視覚装置の領域正規化手段のアルゴリズムを示すフローチャートである。
【図３７】  分離物体領域画像を用いてデジタル画像からマスク画像を生成する場合の説明図である。
【図３８】  視覚装置のマスク手段のアルゴリズムを示すフローチャートである。
【図３９】  視覚装置の画像保持手段のアルゴリズムを示すフローチャートである。
【図４０】  正規化画像に対してテンプレート画像の中からパターンマッチングをする場合の説明図である。
【図４１】  視覚装置のパターンマッチング手段のアルゴリズムを示すフローチャートである。
【図４２】  三角形のエッジ情報が三角形の内側領域と外側領域に分離する状態を示す説明図である。
【図４３】  視覚装置の物体／背景分離手段のアルゴリズムを示すフローチャートである。
【図４４】  破線状態の三角形のエッジ情報が破線三角形の内側領域と外側領域に分離する状態を示す説明図である。
【図４５】  三角形を２つ重ねたエッジ情報が２つの三角形領域と背景領域に分離する状態を示す説明図である。
【図４６】  ２つの円形物体領域を重ねた時の破線状態のエッジ情報が２つの円形領域と背景領域に分離した状態を示す説明図である。
【図４７】  配列演算ユニットの内部構造のブロック図である。
【図４８】  コントローラのブロック図である。
【図４９】  フラグデコーダの入出力信号を示す説明図である。
【図５０】  フラグエンコーダの入出力信号を示す説明図である。
【図５１】  プロセッサがコントローラを介して隣接する配列演算ユニットにデータを送信するアルゴリズムを示すフローチャートである。
【図５２】  コントローラが隣接する配列演算ユニットからデータを受信するアルゴリズムを示すフローチャートである。
【図５３】  プロセッサが上入力レジスタからデータを受信するアルゴリズムを示すフローチャートである。
【図５４】  本発明実施形態の視覚装置の、５個のコントローラを平面上に配置した場合の配列演算ユニットの説明図である。
【図５５】  ５個のコントローラを積み重ねた場合の配列演算ユニットの説明図である。
【図５６】  ９個の配列演算ユニットを１個の仮想配列演算ユニットと見なした場合の説明図である。
【図５７】  １個の仮想配列演算ユニットに含まれる９個の配列演算ユニットにコントローラ用の割り当て番号を付けた場合の説明図である。
【図５８】  ９個の配列演算ユニットが出力した９個の結果データを順次記憶するシフトレジスタの説明図である。
【図５９】  個々の処理を別々の配列演算ユニットで実行する人工眼球用イメージセンサの機能コラムのブロック図である。
【図６０】  二次元格子状に機能コラムを配列した場合のイメージセンサのブロック図である。
【図６１】  全ての処理を１個の配列演算ユニットで実行する人工眼球用イメージセンサの機能コラムのブロック図である。
【図６２】  全ての処理を１個の仮想配列演算ユニットで実行する人工眼球用イメージセンサの機能コラムのブロック図である。
【図６３】  機能コラムを大規模集積回路の実装面に対して垂直に実装した場合のイメージセンサのブロック図である。
【図６４】  基本的な連動式カウンタの回路図である。
【図６５】  同期式カウンタが６まで数える連動式カウンタの回路図である。
【図６６】  ３つの連動式カウンタから構成されるネットワークのブロック図である。
【図６７】  ３つの連動式カウンタが同期した場合のタイミングチャートである。
【図６８】  ３つの連動式カウンタのうち１つの位相が進んだ場合のタイミングチャートである。
【図６９】  ３つの連動式カウンタのうち１つの位相が遅れた場合のタイミングチャートである。
【図７０】  ３つの連動式カウンタの位相が異なる場合のタイミングチャートである。
【図７１】  正方格子状に配列された連動式カウンタから構成されるネットワークのブロック図である。
【図７２】  六角格子状に配列された連動式カウンタから構成されるネットワークのブロック図である。
【図７３】  互いの距離が等しくなるように配列された連動式カウンタから構成されるネットワークのブロック図である。
【図７４】  格子が重なるように連動式カウンタを積層した場合の説明図である。
【図７５】  連動式カウンタ、デジタル回路及びアナログ回路を積層した場合の説明図である。
【図７６】  信号分配用フリップフロップ回路の出力によって信号分配用ラッチ回路がリセットされる場合において、信号分配用デコーダの出力のうち３番及び５番を用いて出力信号を生成する連動式信号分配回路の回路図である。
【図７７】  信号分配用デコーダの出力のうち３番及び５番を用いて出力信号を生成する連動式信号分配回路のタイミングチャートである。
【図７８】  信号分配用デコーダの出力によって信号分配用ラッチ回路がリセットされる場合において、信号分配用デコーダの出力のうち３番及び５番を用いて出力信号を生成する連動式信号分配回路の回路図である。
【図７９】  基本的な同期式発振回路の回路図である。
【図８０】  入力抵抗を用いた同期式発振回路の回路図である。
【図８１】  水晶振動子を用いた場合の同期式発振回路の回路図である。
【図８２】  ３つの同期式発振回路から構成されるネットワークのブロック図である。
【図８３】  ３つの同期式発振回路が同期した場合のタイミングチャートである。
【図８４】  ３つの同期式発振回路のうち１つの位相が進んだ場合のタイミングチャートである。
【図８５】  ３つの同期式発振回路のうち１つの位相が遅れた場合のタイミングチャートである。
【図８６】  ３つの同期式発振回路の位相が異なる場合のタイミングチャートである。
【図８７】  ３つの同期式発振回路に電源が投入された場合のタイミングチャートである。
【図８８】  正方格子状に配列された同期式発振回路から構成されるネットワークのブロック図である。
【図８９】  六角格子状に配列された同期式発振回路から構成されるネットワークのブロック図である。
【図９０】  連動式カウンタ、同期式発振回路、デジタル回路及びアナログ回路を積層した場合の説明図である。
【図９１】  移動カメラ、視覚装置、ディスプレイ、音声合成装置及び音声認識装置と通信する中央制御装置のブロック図である。
【図１】
0003963424.tif 000065
【図２】
0003963424.tif 000066
【図３】
0003963424.tif 000067
【図４】
0003963424.tif 000068
【図５】
0003963424.tif 000069
【図６】
0003963424.tif 000070
【図７】
0003963424.tif 000071
【図８】
0003963424.tif 000072
【図９】
0003963424.tif 000073
【図１０】
0003963424.tif 000074
【図１１】
0003963424.tif 000075
【図１２】
0003963424.tif 000076
【図１３】
0003963424.tif 000077
【図１４】
0003963424.tif 000078
【図１５】
0003963424.tif 000079
【図１６】
0003963424.tif 000080
【図１７】
0003963424.tif 000081
【図１８】
0003963424.tif 000082
【図１９】
0003963424.tif 000083
【図２０】
0003963424.tif 000084
【図２１】
0003963424.tif 000085
【図２２】
0003963424.tif 000086
【図２３】
0003963424.tif 000087
【図２４】
0003963424.tif 000088
【図２５】
0003963424.tif 000089
【図２６】
0003963424.tif 000090
【図２７】
0003963424.tif 000091
【図２８】
0003963424.tif 000092
【図２９】
0003963424.tif 000093
【図３０】
0003963424.tif 000094
【図３１】
0003963424.tif 000095
【図３２】
0003963424.tif 000096
【図３３】
0003963424.tif 000097
【図３４】
0003963424.tif 000098
【図３５】
0003963424.tif 000099
【図３６】
0003963424.tif 000100
【図３７】
0003963424.tif 000101
【図３８】
0003963424.tif 000102
【図３９】
0003963424.tif 000103
【図４０】
0003963424.tif 000104
【図４１】
0003963424.tif 000105
【図４２】
0003963424.tif 000106
【図４３】
0003963424.tif 000107
【図４４】
0003963424.tif 000108
【図４５】
0003963424.tif 000109
【図４６】
0003963424.tif 000110
【図４７】
0003963424.tif 000111
【図４８】
0003963424.tif 000112
【図４９】
0003963424.tif 000113
【図５０】
0003963424.tif 000114
【図５１】
0003963424.tif 000115
【図５２】
0003963424.tif 000116
【図５３】
0003963424.tif 000117
【図５４】
0003963424.tif 000118
【図５５】
0003963424.tif 000119
【図５６】
0003963424.tif 000120
【図５７】
0003963424.tif 000121
【図５８】
0003963424.tif 000122
【図５９】
0003963424.tif 000123
【図６０】
0003963424.tif 000124
【図６１】
0003963424.tif 000125
【図６２】
0003963424.tif 000126
【図６３】
0003963424.tif 000127
【図６４】
0003963424.tif 000128
【図６５】
0003963424.tif 000129
【図６６】
0003963424.tif 000130
【図６７】
0003963424.tif 000131
【図６８】
0003963424.tif 000132
【図６９】
0003963424.tif 000133
【図７０】
0003963424.tif 000134
【図７１】
0003963424.tif 000135
【図７２】
0003963424.tif 000136
【図７３】
0003963424.tif 000137
【図７４】
0003963424.tif 000138
【図７５】
0003963424.tif 000139
【図７６】
0003963424.tif 000140
【図７７】
0003963424.tif 000141
【図７８】
0003963424.tif 000142
【図７９】
0003963424.tif 000143
【図８０】
0003963424.tif 000144
【図８１】
0003963424.tif 000145
【図８２】
0003963424.tif 000146
【図８３】
0003963424.tif 000147
【図８４】
0003963424.tif 000148
【図８５】
0003963424.tif 000149
【図８６】
0003963424.tif 000150
【図８７】
0003963424.tif 000151
【図８８】
0003963424.tif 000152
【図８９】
0003963424.tif 000153
【図９０】
0003963424.tif 000154
【図９１】
0003963424.tif 000155