JP4202146B2 - 視覚装置 - Google Patents
視覚装置 Download PDFInfo
- Publication number
- JP4202146B2 JP4202146B2 JP2002572118A JP2002572118A JP4202146B2 JP 4202146 B2 JP4202146 B2 JP 4202146B2 JP 2002572118 A JP2002572118 A JP 2002572118A JP 2002572118 A JP2002572118 A JP 2002572118A JP 4202146 B2 JP4202146 B2 JP 4202146B2
- Authority
- JP
- Japan
- Prior art keywords
- image
- array operation
- operation unit
- calculation data
- edge information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K21/00—Details of pulse counters or frequency dividers
- H03K21/40—Monitoring; Error detection; Preventing or correcting improper counter operation
- H03K21/406—Synchronisation of counters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
- G06T7/74—Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/32—Normalisation of the pattern dimensions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/94—Hardware or software architectures specially adapted for image or video understanding
- G06V10/955—Hardware or software architectures specially adapted for image or video understanding using specific electronic processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
- G06V40/162—Detection; Localisation; Normalisation using pixel segmentation or colour matching
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K21/00—Details of pulse counters or frequency dividers
- H03K21/38—Starting, stopping or resetting the counter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/665—Control of cameras or camera modules involving internal camera communication with the image sensor, e.g. synchronising or multiplexing SSIS control signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/70—SSIS architectures; Circuits associated therewith
- H04N25/71—Charge-coupled device [CCD] sensors; Charge-transfer registers specially adapted for CCD sensors
- H04N25/73—Charge-coupled device [CCD] sensors; Charge-transfer registers specially adapted for CCD sensors using interline transfer [IT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/70—SSIS architectures; Circuits associated therewith
- H04N25/76—Addressed sensors, e.g. MOS or CMOS sensors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
- H04N25/70—SSIS architectures; Circuits associated therewith
- H04N25/79—Arrangements of circuitry being divided between different or multiple substrates, chips or circuit boards, e.g. stacked image sensors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
- G06T2207/30201—Face
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
- Transforming Light Signals Into Electric Signals (AREA)
- Closed-Circuit Television Systems (AREA)
Description
本発明は、物体を探索及び認識する視覚装置に関し、詳しくは、幾何解析手段などの局所並列画像処理を実行する複数の配列演算ユニット及び複数の仮想配列演算ユニットを含む視覚装置に関する。
背景技術
移動カメラを制御し、画像処理をする装置として、本発明者はこれまで視覚装置(visu al device)を開発してきた(例えば、特開2001−43385、特開2001−101403、特開2001−148006、特開2001−148022、特開2001−148024、国際公開番号WO00/16259参照)。この視覚装置は移動カメラ(moving camera)のパン、チルト及びズームの機構を制御することにより、物体を探索し、物体の画像処理を行うものである。視覚装置が行う画像処理の大半が局所処理であり、しかもこれらの局所処理(local processing)は二次元格子状に配列された複数の配列演算ユニット(array operation units)によって並列に実行され得る。しかしながらこの視覚装置には、主に4つの問題があった。第一に、物体/背景分離手段(figure/ground separ ation means)は、非線形振動子(nonlinear oscillator)を用いて少なくとも1つの物体領域(object area)と背景領域(bac kground area)を分離するために、膨大な計算量を必要とした。第二に、パターンマッチング手段(pattern matching means)は、物体の色とパターンが混在した正規化画像(normalized image)を正しく認識するために、多数のテンプレート画像(template images)を必要とした。第三に、幾何解析手段(geometrical analysis means)は、動画像中の物体の大まかな形を検出するために、フーリエ変換、アフィン変換及びハフ変換のような大域処理を行わなければならなかった。第四に、領域正規化手段(area normalization means)は、正規化画像の画素間を補間するために、自然数による除算を実行するための除算器を備えたプロセッサを必要とするか、又はこの自然数の逆数を記憶するためのルックアップテーブルを必要とした。そのため、これらの手段は、視覚装置を有する高性能イメージセンサの製造にとって大きな障害であった。
まず、従来の物体/背景分離手段において、各々の非線形振動子は、外乱(externa l noise)として乱数を用いるか、又は入力された形成エッジ情報画像の1画素を構成する形成エッジ情報を用いていた。したがって、形成エッジ情報画像によって区分される物体領域又は背景領域に含まれる非線形振動子と、外乱と、の間に相関はない。その結果、各々の非線形振動子は、近傍にある複数の非線形振動子の位相が適当な組み合せになるまで、自らの位相をこれらの非線形振動子の位相からずらすことができなかった。このことが、物体/背景分離手段の計算量が増加する要因であった。しかしながら、視覚装置は、位置/大きさ検出手段を用いることにより、形成エッジ情報画像によって区分される物体領域のおおよその重心位置及びその大きさを表す重複情報画像を生成することができる。そこで、各々の非線形振動子が、重複情報画像のうち、対応する画素を構成する重複情報を乱数として入力することにより、物体領域に含まれる各々の非線形振動子は、おおよその重心位置から周囲に向けて順番に位相をずらす。
これらのことを考慮すると、位置/大きさ検出手段が形成エッジ情報画像によって区分される物体領域のおおよその重心位置及びその大きさを検出することにより、物体/背景分離手段は、従来に比べて高速に物体領域と背景領域を分離することができると期待される。
次に、従来の視覚装置において、パターンマッチング手段はデジタル画像のうち、物体領域に相当する分離物体領域を正規化した正規化画像をパターンマッチングするために、非常に多くの数のテンプレート画像を必要とした。この理由は、正規化画像が一般にノイズを含んだ多帯域画像であり、しかもパターンマッチング手段が、正規化画像が表す物体の色及びパターンを区別せずに、この正規化画像と多数のテンプレート画像を比較したからである。つまりテンプレート画像は物体の色及びパターンの組み合せの数だけ必要になる。そこで正規化画像が表す物体の色及びパターンを別々にパターンマッチングする場合を考えてみる。まず、物体の色を、正規化画像の各画素が表す色のうち画素数が最も多い色とする。このときパターンマッチング手段は、検出すべき複数の色のうちの相異なる1つの色によって塗り潰されたテンプレート画像を、検出すべき色の数だけ用意することにより、正規化画像が表す物体の色を検出することができる。しかもデジタル画像中の物体の位置及び大きさが変っても、パターンマッチング手段は、分離物体領域に含まれる各画素の色を複数のテンプレート画像と比較することにより、この物体の色を検出することができるので、分離物体領域を正規化する必要もない。一方で、物体のパターンに関しては、分離物体領域に対する正規化画像の代りに、エッジ情報形成手段が分離物体領域から一旦形成エッジ情報画像を生成し、その後、幾何解析手段が形成エッジ情報画像から生成した画像に対する正規化画像を用いるものとする。このとき正規化画像のうち少なくとも1画素には、その周辺にある物体のパターンの一部を表す形及び大きさが記されているので、パターンマッチング手段は、物体領域の位置及び大きさに関係なく、この正規化画像に最も類似したテンプレート画像を容易に選択することができる。
これらのことを考慮すると、視覚装置が、複数のパターンマッチング手段を用いて、物体領域が表す物体の色及びパターンを別々に処理することにより、色及びパターンに対する複数のパターンマッチング手段は、それぞれテンプレート画像の数を大幅に削減することができると期待される。
次に、従来の幾何解析手段は、テンプレート画像の数が多くなった場合、パターンマッチング手段の計算量を低減するために、フーリエ変換を用いて動画像中の物体のエッジ情報から輪郭だけを抽出することと、アフィン変換を用いて動画像中の物体の輪郭の大きさを正規化することと、ハフ変換を用いて動画像中の物体の形状を特定することと、を適切に組み合せて利用していた。しかしながら、これらの変換は、画像を厳密に処理する上に、大域処理であるので、視覚装置のハードウェアへの実装には適さなかった。そこで、幾何解析手段が物体の大まかな形を検出することに着目すると、この幾何解析手段が、細切れにされたこの物体の輪郭の断片から位置及び傾きを求め、この傾きをこの物体の輪郭の重心に集めることができれば、この幾何解析手段は、この物体の大まかな形を検出することができる。
これらのことを考慮すると、傾きを検出する手段が形成エッジ情報画像(formed edge−information image)から物体の輪郭を表す複数の線分の長さ及び傾き角度を計算し、さらにこれらの線分の長さ及び傾き角度を、傾き角度毎に物体の輪郭の重心方向に移動すると同時にこれらの線分の移動距離を計算することにより、幾何解析手段は画像処理に適したような物体の位置及び形を検出することができると期待される。しかも物体の輪郭線は既に複数の独立した線分に分割されているので、線分が位置する画素をその近傍との間で一定の制約条件を満たしながら独立に移動させれば、幾何解析手段は少ないハードウェア量と計算量で物体の位置及び形を検出することができると期待される。
最後に、領域正規化手段は、一旦物体領域に相当するデジタル画像中の分離物体領域(se gmented object area)に含まれる各画素を、互いの距離がおおよそ等しくなるように、デジタル画像全面に移動させた後、これらの画素の間に位置する画素を、近傍の画素の平均によって補間することにより、領域正規化手段はデジタル画像のサイズと等しいサイズの正規化画像を生成する。したがって、領域正規化手段は、画素間を補間するために自然数による除算、又はこの自然数の逆数の乗算を実行しなければならない。このように領域正規化手段が補間する理由は、以下の通りである。第一に、大きさ及び位置が異なる複数の分離物体領域が同じ物体を表す場合、一旦バラバラになった分離物体領域の各画素から分離物体領域のパターンを再構成しなければ、正規化画像の出力先であるパターンマッチング手段が同じ物体に対して多数のテンプレート画像を有しなければならないからである。第二に、デジタル画像が一般にノイズを含む多帯域画像であるために、一旦バラバラになった分離物体領域の画素間を補間をすることにより、正規化画像と、この正規画像と同じ種類の物体の表すテンプレート画像と、の間の類似度が増すからである。しかしながら、前述のように、パターンマッチング手段が、分離物体領域に対する正規化画像の代りに、エッジ情報形成手段が分離物体領域から一旦形成エッジ情報画像を生成し、その後幾何解析手段が形成エッジ情報画像から生成した画像に対する正規化画像を用いる場合、正規化画像のうち少なくとも1画素に、その周辺にある物体のパターンの一部を表す形及び大きさが記されている。したがって、領域正規化手段が補間をしなくても、パターンマッチング手段は複数のテンプレート画像の中から正規化画像に最も類似したテンプレート画像を選択することができる。
これらのことを考慮すると、領域正規化手段が補間をしなくても、パターンマッチング手段は物体領域が表す物体のパターンを選択することができると期待される。
さて、この視覚装置は移動カメラのパン、チルト及びズームの機構を制御することにより、物体を探索し、物体の画像処理を行うものである。視覚装置が行う画像処理の大半が局所処理であり、しかもこれらの局所処理は二次元格子状に配列された配列演算ユニットによって並列に実行される。配列演算ユニットをLSIに実装する場合、個々の配列演算ユニットは、送達及び受領という信号を用いることにより、隣接する配列演算ユニットと非同期に通信できるように設計されている。これにより、配線パターンは極めて単純になり、しかも配線長は短くなるので、LSIはトランジスタの実装面積を増やしながら消費電力を低下させることができ、しかも全ての配列演算ユニットは必ずしも同期する必要がない。
ところで、従来の配列演算ユニットには主に4つの問題があった。第一の問題は、送達を送信したコントローラにおいて送達を送信してから受領を受信するまでの時間が長くなることである。この原因は、送達を受信したコントローラが、計算データ、種別、水平方向の転送回数及び垂直方向の転送回数を入力するまで受領を返信しないことにある。そこで従来の配列演算ユニットでは、送達を送信したコントローラの上下左右の受領ステータスが確実に更新されるまで、プロセッサは待たなければならなかった。しかしながら、この方法ではコントローラが折角非同期通信をしていてもプロセッサが無駄に時間を潰さなければならない。第二の問題は、計算データの転送順番が不規則であるので、未転送の計算データと転送済の計算データの区別が難しいことである。この原因は全ての配列演算ユニットが独立に動作することにある。そこで従来の配列演算ユニットでは、メモリが受信した計算データを転送すべき送達フラグと一緒に記憶し、一方でプロセッサはメモリに記憶された全ての送達フラグを常に検査して計算データを転送した後、転送された計算データに関連する送達フラグを更新していた。しかしながら、この方法ではプロセッサは既に転送した計算データの送達フラグでも繰り返し検査しなければならない。第三の問題は、計算データが同時に3方向に転送される場合、プロセッサがコントローラに計算データを書き込める割合が低いことである。この原因は、コントローラが4近傍の配列演算ユニットに対して一度に1個の計算データしか送信できないことにある。そこで従来の配列演算ユニットでは、送達フラグによって指定された配列演算ユニットの数が多くなればなるほど、プロセッサは次の計算データをコントローラに書き込めるようになるまで長時間待たなければならなかった。第四の問題は、計算データが同時に3方向に転送される場合、計算データを受信する配列演算ユニットは、この計算データの水平方向の転送回数及び垂直方向の転送回数が同じになる2個の配列演算ユニットを区別することが難しいことである。この原因は、コントローラが水平方向の転送回数及び垂直方向の転送回数を非負の整数でしか通信しないことにある。そこで従来の配列演算ユニットでは、計算データの送信元である2個の配列演算ユニットに優先順位が付けられ、配列演算ユニットは必ず優先順位が高い配列演算ユニットの計算データから順番に転送していた。しかしながら、この方法では、優先順位が高い配列演算ユニットの計算データが入力されるまで、優先順位が低い配列演算ユニットの計算データは転送されないので、転送効率が悪い。これらの問題を解決する最も有効な方法は、高機能なコントローラを設計することである。例えば、第一の問題を解決するためには、コントローラのクロック信号の周波数がプロセッサのクロック信号の周波数より高くなれば良い。第二の問題を解決するためには、コントローラがFIFO (First In First Out)のような電子回路を備えれば良い。第三の問題を解決するためには、コントローラが同時に複数の計算データを4近傍の配列演算ユニットに送信できるようにすれば良い。第四の問題を解決するためには、水平方向の転送回数及び垂直方向の転送回数が負の整数で表されるように、コントローラが水平方向の転送回数及び垂直方向の転送回数に対してそれぞれ1ビットずつ回路を増やせば良い。しかしながら、設計者が実際にこのような配列演算ユニットを設計しようとすると、配列演算ユニットのハードウェア量は膨大になる。
そこで第一の問題を解決するためには、コントローラが送達を受信したら、直ちに送達を記憶して受領を返信し、その後、計算データ、種別、水平方向の転送回数及び垂直方向の転送回数を入力すれば良い。第二の問題を解決するためには、FIFOの代用品がメモリ及びプロセッサに実装されれば良い。第三及び第四の問題を解決するためには、計算データが多くとも同時に2方向にしか転送されないようにすれば良い。
これらのことを考慮すると、スタック及び循環バッファがメモリ及びプロセッサに実装され、反時計回り及び時計回りに計算データが転送されることにより、転送効率が良い配列演算ユニットを設計することができると期待される。
さて、近年LSI(Large Scale Integrated Circuit)技術の急速な進歩により、高速で高集積度のLSIが開発されるようになってきた。LSIの集積度に関しては、単に設計ルールの微細化技術だけでなく、三次元LSI技術(例えば、特開昭63−174356、特開平2−35425、特開平7−135293参照) 、特にウェハーを張り合わせる技術(Koyanagi,M.,Kurino,H.,Lee,K−W.,Sakuma,K.,Miyakawa,N.,Itani,H., ’ Future System−on−Silicon LSI Chips’,IEEE MICRO,1998,Vol.18,No.4,pages17−22参照)が開発され、さらに最近多数のチップを積み重ねる技術(例えば、日経マイクロデバイス,20 00年6月号,pages62−79;日経マイクロデバイス,2000年6月号,pa ges157−164;日経マイクロデバイス,2000年6月号,page176参照)が多数開発されていることにより、LSIはますます高集積度になるので、従来別々のLSIに実装されていたデジタル回路は容易に1つのLSIに実装されるようになる。一方でLSIの動作速度に関しては、クロック信号の周波数が高くなるに従い、クロックスキュー及び信号の伝搬遅延時間の問題がますます深刻になっている。
そこで、これらの問題を解決するためには、現在ではLSIの中に多数のPLL(Phas e Locked Loop)が用いられている。なお、これらのPLLは、位相が一定である1つの参照信号を入力し、さらにこの参照信号と、各々のPLLが生成する比較信号との間の位相差を比較して、この位相差が0ラジアンになるように比較信号の位相を変更するものである。しかしながら、LSIの中に多数のPLLがある場合、この参照信号の伝搬遅延時間のために、全てのPLLの位相を一致させることは不可能である。また、2つのPLLがこれらの比較信号を相互に通信することもできない。この理由は、これらの比較信号の伝搬遅延時間のために、いずれのPLLも位相が一定な比較信号を生成することができないからである。つまり、どちらか一方のPLLにおける比較信号の位相差が0ラジアンになれば、もう一方のPLLにおける比較信号の位相差は伝搬遅延時間の2倍になるので、両方のPLLとも比較信号に大きなジッターが発生する。勿論PLLが生成するクロック信号には致命的なジッターが発生する。
そこで各々の配列演算ユニットが、隣接する配列演算ユニットと非同期に通信できることに着目すると、全ての配列演算ユニットは、一定の位相のクロック信号ではなく、一定の周期のクロック信号を入力すれば良い。したがって、視覚装置には、複数のカウンタが、それぞれ独立した発振回路を備え、さらにこれらのカウンタが相互にカウント数を通信することにより、全てのカウント数が一定時間内に一致するようなカウンタで十分である。加えて、各々のカウンタが、隣接する全てのカウンタのカウント数に応じて、この発振回路の位相を調節することにより、結果として、全てのカウント数が一致している時間も長くなる。
これらのことを考慮すると、カウンタが、外部から入力する全ての信号を個別に記憶するための機構と、さらに発振回路が、カウンタが生成する信号に同期するための機構が存在すれば、式カウンタは常時カウント数を一致させることができ、しかもLSI全体に高周波数のクロック信号を供給することができるものと期待される。
この他に、従来から、電荷結合素子(CCD)及びCMOS(相補形金属酸化物半導体)技術を用いて、多数のイメージセンサが開発されてきた。これらのイメージセンサの多くはビデオ信号を生成するために用いられるので、列並列型である。また、三次元LSI(大規模集積回路)技術を用いることにより、複数の受光素子、複数の電荷増幅器、複数のA /D変換回路及び複数のデジタル回路を積層したイメージセンサも開発されてきた(例えば、特開昭63−174356、特開平7−135293、特開平2−35425参照) 。これらのイメージセンサの多くは垂直信号線を有効利用した画素並列型であり、1個の受光素子、1個の電荷増幅器、1個のA/D変換回路及び1個のデジタル回路が垂直に配置されている。特に近年、ウェハーを張り合わせる技術(例えば、特開平5−16034 0;特開平6−268154;Koyanagi,M.,Kurino,H.,Lee,K−W.,Sakuma,K.,Miyakawa,N.,Itani,H.,’Fu t ure System−on−Silicon LSI Chips’,IEEE MI CRO,1998,Vol.18,No.4,pages17−22参照)が開発されたことにより、イメージセンサの製造者は、複数の受光素子を実装したLSIと、複数の電荷増幅器を実装したLSIと、複数のA/D変換回路を実装したLSIと、複数のデジタル回路を実装したLSIと、を別々に製造した後、1個の受光素子、1個の電荷増幅器、1個のA/D変換回路及び1個のデジタル回路が垂直に配置されるように、イメージセンサの製造者はこれらのLSIを積層することができる。しがたって、異なるプロセスで製造されるLSIでも容易に積層され、しかも検査済のLSIを積層することにより、LS Iの歩留まりが向上する。さらに最近、多数のチップを積み重ねる技術(例えば、日経マイクロデバイス,2000年6月号,pages62−79;日経マイクロデバイス,2 000年6月号,pages157−164;日経マイクロデバイス,2000年6月号,page176参照)が開発されたことにより、イメージセンサの製造者は、高機能なイメージセンサを容易に製造することが可能となった。
ところで三次元LSI技術には、トランジスタの数を増やすことはできても、垂直信号線の数を増やすことは難しいという問題がある。その理由は、LSIの実装面における信号線の線幅に比べて、垂直信号線の線幅はかなり広く、しかも垂直信号線がある場所にはトランジスタを配置することができないからである。したがって、イメージセンサの設計者が三次元LSI技術を用いたとしても、同一回路内に含まれるトランジスタは結局同一LSIに実装されることになるので、イメージセンサの設計者はイメージセンサの画素数を容易に増やすことができない。
一方で、これまで移動カメラを制御し、画像処理をする装置として、本発明者は視覚装置を開発してきた(例えば、国際公開番号WO00/16259参照)。この視覚装置は移動カメラのパン、チルト及びズームの機構を制御することにより、物体を探索し、物体の画像処理を行うものである。視覚装置が行う画像処理の大半が局所処理であり、しかもこれらの局所処理は二次元格子状に配列された複数の配列演算ユニットによって並列に実行される。この視覚装置がイメージセンサに組み込まれた場合、これらの配列演算ユニットの各々は、複数の受光素子から生成される複数の画素データを用いて複数の局所処理を実行する。したがって、イメージセンサの用途によっては、イメージセンサは画素並列型であるよりも、むしろ隣接する複数の画素データが1個のデジタル回路に入力する形式の方が好ましい。しかもこの形式の場合、複数の受光素子に対して1個のA/D変換回路しか必要でないので、イメージセンサの画素数が増えたとしても、イメージセンサの設計者は必ずしもA/D変換回路及びデジタル回路の数を増やす必要はない。勿論全てのA/D変換回路及び全てのデジタル回路は並列に動作することができるので、イメージセンサの性能は殆んど低下しない。
これらのことを考慮すると、イメージセンサにおいて複数のセンサモジュールが二次元格子状に配列され、これらのセンサモジュールの各々において、複数の受光素子が二次元格子状に配列され、しかもこれらのセンサモジュールの各々が複数の受光素子から順次画素信号を生成することにより、高精細で高性能なイメージセンサを製造することができると期待される。
さて、従来のイメージセンサでは、その仕様が設計時に決定されなければならなかった。勿論FPGA(Field Programable Gate Array)及びCPL D(Complex Programable Logic Device)を用いることにより、イメージセンサの製造後に電子回路を変更することもできるが、それでもイメージセンサにはFPGA及びCPLD用の電子回路、1組の大容量のメモリ及び外部からの多数の信号線が必要になる。一方で、上述のイメージセンサにおいて、複数のセンサモジュールの各々が多数の受光素子を備えた場合、複数のデジタル回路の各々の実装面積も受光素子の数に比例して大きくなるので、これらのデジタル回路の各々は、プロセッサ及び1組の大容量のメモリを備えることができる。このメモリは、センサモジュールが生成する全ての画素信号を記憶することができるので、このプロセッサは、全ての画素信号から構成される膨大な数の画素パターンを参照することができる。そこで、これらのパターンに、記憶データ、メモリアドレス及び書き込みクロック信号の組み合せが割り当てられることにより、プロセッサは、書き込みクロック信号に応じて、任意のメモリアドレスに適当な記憶データを書き込むことができる。しかも、もし1組のメモリの少なくとも1部分が不揮発性であれば、この部分のメモリはこの記憶データを記憶し続けることができるので、プロセッサはこの部分のメモリに記憶されたプログラムさえも変更することができる。したがって、イメージセンサの製造者は、一旦イメージセンサを製造した後に、必要に応じてプログラムを変更することができ、しかも全ての組のメモリにプログラムを供給するための信号線を省略することができる。
これらのことを考慮すると、イメージセンサの全ての受光素子に一定のパターンの光が照射されることにより、イメージセンサは、全ての組のメモリ中のプログラムを一斉に変更することができると期待される。
そこで、請求項記載の本発明は、送達を受信したら直ちに受領を返信できるコントローラを設計し、反時計回り及び時計回りに計算データを転送することにより、配列演算ユニット及び仮想配列演算ユニットが計算データを効率よく転送することを目的とする。
発明の開示
請求項1の発明は、二次元格子状に配列された複数の配列演算ユニットを含む視覚装置において、複数の前記配列演算ユニットの各々が、前記配列演算ユニットにおいて計算された計算データを4近傍の前記配列演算ユニットに送信する手段と、前記4近傍のうち左側の前記配列演算ユニットから受信した前記計算データを右側及び上側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、前記4近傍のうち下側の前記配列演算ユニットから受信した前記計算データを上側及び左側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、前記4近傍のうち右側の前記配列演算ユニットから受信した前記計算データを左側及び下側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、前記4近傍のうち上側の前記配列演算ユニットから受信した前記計算データを下側及び右側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、を備えることにより、前記配列演算ユニットの前記計算データの各々が二次元格子状に配列された複数の前記配列演算ユニット間を反時計回りに転送されることを特徴とする視覚装置である。本発明では、二次元格子状に配列された前記配列演算ユニットのうち、最大転送回数で決定される正方領域内の含まれる任意の前記配列演算ユニットに前記計算データを転送することができる。勿論水平方向の転送回数と垂直方向の転送回数を調整することにより、本発明は前記計算データを任意の矩形領域及び円形領域内に限定して転送することもできる。前記配列演算ユニットが左側の前記配列演算ユニットから前記計算データを受信した場合、前記水平方向の転送回数が最大転送回数未満であれば、前記配列演算ユニットは右側の前記配列演算ユニットに前記計算データを転送することができる。このとき前記垂直方向の転送回数が0であり、しかも最大転送回数未満であれば、前記配列演算ユニットは上側の前記配列演算ユニットに前記計算データを転送することができる。前記配列演算ユニットが下側の前記配列演算ユニットから前記計算データを受信した場合、前記垂直方向の転送回数が最大転送回数未満であれば、前記配列演算ユニットは上側の前記配列演算ユニットに前記計算データを転送することができる。このとき前記水平方向の転送回数が0であり、しかも最大転送回数未満であれば、前記配列演算ユニットは左側の前記配列演算ユニットに前記計算データを転送することができる。前記配列演算ユニットが右側の前記配列演算ユニットから前記計算データを受信した場合、前記水平方向の転送回数が最大転送回数未満であれば、前記配列演算ユニットは左側の前記配列演算ユニットに前記計算データを転送することができる。このとき前記垂直方向の転送回数が0であり、しかも最大転送回数未満であれば、前記配列演算ユニットは下側の前記配列演算ユニットに前記計算データを転送することができる。前記配列演算ユニットが上側の前記配列演算ユニットから前記計算データを受信した場合、前記垂直方向の転送回数が最大転送回数未満であれば、前記配列演算ユニットは下側の前記配列演算ユニットに前記計算データを転送することができる。このとき前記水平方向の転送回数が0であり、しかも最大転送回数未満であれば、前記配列演算ユニットは右側の前記配列演算ユニットに前記計算データを転送することができる。本発明は反時計回りの渦巻き状に前記計算データを転送するので、前記配列演算ユニットの通信負荷を分散させることができる。したがって前記配列演算ユニット間における前記計算データの共有に関する諸問題が好適に解決される。
請求項2の発明は、二次元格子状に配列された複数の配列演算ユニットを含む視覚装置において、複数の前記配列演算ユニットの各々が、前記配列演算ユニットにおいて計算された計算データを4近傍の前記配列演算ユニットに送信する手段と、前記4近傍のうち左側の前記配列演算ユニットから受信した前記計算データを右側及び下側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、前記4近傍のうち下側の前記配列演算ユニットから受信した前記計算データを上側及び右側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、前記4近傍のうち右側の前記配列演算ユニットから受信した前記計算データを左側及び上側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、前記4近傍のうち上側の前記配列演算ユニットから受信した前記計算データを下側及び左側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、を備えることにより、前記配列演算ユニットの前記計算データの各々が二次元格子状に配列された複数の前記配列演算ユニット間を時計回りに転送されることを特徴とする視覚装置である。本発明では、二次元格子状に配列された前記配列演算ユニットのうち、最大転送回数で決定される正方領域内の含まれる任意の前記配列演算ユニットに前記計算データを転送することができる。勿論水平方向の転送回数と垂直方向の転送回数を調整することにより、本発明は前記計算データを任意の矩形領域及び円形領域内に限定して転送することもできる。前記配列演算ユニットが左側の前記配列演算ユニットから前記計算データを受信した場合、前記水平方向の転送回数が最大転送回数未満であれば、前記配列演算ユニットは右側の前記配列演算ユニットに前記計算データを転送することができる。このとき前記垂直方向の転送回数が0であり、しかも最大転送回数未満であれば、前記配列演算ユニットは下側の前記配列演算ユニットに前記計算データを転送することができる。前記配列演算ユニットが下側の前記配列演算ユニットから前記計算データを受信した場合、前記垂直方向の転送回数が最大転送回数未満であれば、前記配列演算ユニットは上側の前記配列演算ユニットに前記計算データを転送することができる。このとき前記水平方向の転送回数が0であり、しかも最大転送回数未満であれば、前記配列演算ユニットは右側の前記配列演算ユニットに前記計算データを転送することができる。前記配列演算ユニットが右側の前記配列演算ユニットから前記計算データを受信した場合、前記水平方向の転送回数が最大転送回数未満であれば、前記配列演算ユニットは左側の前記配列演算ユニットに前記計算データを転送することができる。このとき前記垂直方向の転送回数が0であり、しかも最大転送回数未満であれば、前記配列演算ユニットは上側の前記配列演算ユニットに前記計算データを転送することができる。前記配列演算ユニットが上側の前記配列演算ユニットから前記計算データを受信した場合、前記垂直方向の転送回数が最大転送回数未満であれば、前記配列演算ユニットは下側の前記配列演算ユニットに前記計算データを転送することができる。このとき前記水平方向の転送回数が0であり、しかも最大転送回数未満であれば、前記配列演算ユニットは左側の前記配列演算ユニットに前記計算データを転送することができる。本発明は時計回りの渦巻き状に前記計算データを転送するので、前記配列演算ユニットの通信負荷を分散させることができる。したがって前記配列演算ユニット間における前記計算データの共有に関する諸問題が好適に解決される。
請求項3の発明は、二次元格子状に配列された複数の仮想配列演算ユニットを含む視覚装置において、複数の前記仮想配列演算ユニットの各々が、前記仮想配列演算ユニットにおいて計算された計算データを4近傍の前記仮想配列演算ユニットに送信する手段と、前記4近傍のうち左側の前記仮想配列演算ユニットから受信した前記計算データを右側及び上側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、前記4 近傍のうち下側の前記仮想配列演算ユニットから受信した前記計算データを上側及び左側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、前記4近傍のうち右側の前記仮想配列演算ユニットから受信した前記計算データを左側及び下側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、前記4近傍のうち上側の前記仮想配列演算ユニットから受信した前記計算データを下側及び右側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、を備えることにより、前記仮想配列演算ユニットの前記計算データの各々が二次元格子状に配列された複数の前記仮想配列演算ユニット間を反時計回りに転送されることを特徴とする視覚装置である。本発明では、二次元格子状に配列された前記仮想配列演算ユニットのうち、最大転送回数で決定される正方領域内の含まれる任意の前記仮想配列演算ユニットに前記計算データを転送することができる。勿論水平方向の転送回数と垂直方向の転送回数を調整することにより、本発明は前記計算データを任意の矩形領域及び円形領域内に限定して転送することもできる。前記仮想配列演算ユニットが左側の前記仮想配列演算ユニットから前記計算データを受信した場合、前記水平方向の転送回数が最大転送回数未満であれば、前記仮想配列演算ユニットは右側の前記仮想配列演算ユニットに前記計算データを転送することができる。このとき前記垂直方向の転送回数が0であり、しかも最大転送回数未満であれば、前記仮想配列演算ユニットは上側の前記仮想配列演算ユニットに前記計算データを転送することができる。前記仮想配列演算ユニットが下側の前記仮想配列演算ユニットから前記計算データを受信した場合、前記垂直方向の転送回数が最大転送回数未満であれば、前記仮想配列演算ユニットは上側の前記仮想配列演算ユニットに前記計算データを転送することができる。このとき前記水平方向の転送回数が0であり、しかも最大転送回数未満であれば、前記仮想配列演算ユニットは左側の前記仮想配列演算ユニットに前記計算データを転送することができる。前記仮想配列演算ユニットが右側の前記仮想配列演算ユニットから前記計算データを受信した場合、前記水平方向の転送回数が最大転送回数未満であれば、前記仮想配列演算ユニットは左側の前記仮想配列演算ユニットに前記計算データを転送することができる。このとき前記垂直方向の転送回数が0であり、しかも最大転送回数未満であれば、前記仮想配列演算ユニットは下側の前記仮想配列演算ユニットに前記計算データを転送することができる。前記仮想配列演算ユニットが上側の前記仮想配列演算ユニットから前記計算データを受信した場合、前記垂直方向の転送回数が最大転送回数未満であれば、前記仮想配列演算ユニットは下側の前記仮想配列演算ユニットに前記計算データを転送することができる。このとき前記水平方向の転送回数が0であり、しかも最大転送回数未満であれば、前記仮想配列演算ユニットは右側の前記仮想配列演算ユニットに前記計算データを転送することができる。本発明は反時計回りの渦巻き状に前記計算データを転送するので、前記仮想配列演算ユニットの通信負荷を分散させることができる。したがって前記仮想配列演算ユニット間における前記計算データの共有に関する諸問題が好適に解決される。
請求項4の発明は、二次元格子状に配列された複数の仮想配列演算ユニットを含む視覚装置において、複数の前記仮想配列演算ユニットの各々が、前記仮想配列演算ユニットにおいて計算された計算データを4近傍の前記仮想配列演算ユニットに送信する手段と、前記4近傍のうち左側の前記仮想配列演算ユニットから受信した前記計算データを右側及び下側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、前記4 近傍のうち下側の前記仮想配列演算ユニットから受信した前記計算データを上側及び右側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、前記4近傍のうち右側の前記仮想配列演算ユニットから受信した前記計算データを左側及び上側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、前記4近傍のうち上側の前記仮想配列演算ユニットから受信した前記計算データを下側及び左側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、を備えることにより、前記仮想配列演算ユニットの前記計算データの各々が二次元格子状に配列された複数の前記仮想配列演算ユニット間を時計回りに転送されることを特徴とする視覚装置である。本発明では、二次元格子状に配列された前記仮想配列演算ユニットのうち、最大転送回数で決定される正方領域内の含まれる任意の前記仮想配列演算ユニットに前記計算データを転送することができる。勿論水平方向の転送回数と垂直方向の転送回数を調整することにより、本発明は前記計算データを任意の矩形領域及び円形領域内に限定して転送することもできる。前記仮想配列演算ユニットが左側の前記仮想配列演算ユニットから前記計算データを受信した場合、前記水平方向の転送回数が最大転送回数未満であれば、前記仮想配列演算ユニットは右側の前記仮想配列演算ユニットに前記計算データを転送することができる。このとき前記垂直方向の転送回数が0であり、しかも最大転送回数未満であれば、前記仮想配列演算ユニットは下側の前記仮想配列演算ユニットに前記計算データを転送することができる。前記仮想配列演算ユニットが下側の前記仮想配列演算ユニットから前記計算データを受信した場合、前記垂直方向の転送回数が最大転送回数未満であれば、前記仮想配列演算ユニットは上側の前記仮想配列演算ユニットに前記計算データを転送することができる。このとき前記水平方向の転送回数が0であり、しかも最大転送回数未満であれば、前記仮想配列演算ユニットは右側の前記仮想配列演算ユニットに前記計算データを転送することができる。前記仮想配列演算ユニットが右側の前記仮想配列演算ユニットから前記計算データを受信した場合、前記水平方向の転送回数が最大転送回数未満であれば、前記仮想配列演算ユニットは左側の前記仮想配列演算ユニットに前記計算データを転送することができる。このとき前記垂直方向の転送回数が0であり、しかも最大転送回数未満であれば、前記仮想配列演算ユニットは上側の前記仮想配列演算ユニットに前記計算データを転送することができる。前記仮想配列演算ユニットが上側の前記仮想配列演算ユニットから前記計算データを受信した場合、前記垂直方向の転送回数が最大転送回数未満であれば、前記仮想配列演算ユニットは下側の前記仮想配列演算ユニットに前記計算データを転送することができる。このとき前記水平方向の転送回数が0であり、しかも最大転送回数未満であれば、前記仮想配列演算ユニットは左側の前記仮想配列演算ユニットに前記計算データを転送することができる。本発明は時計回りの渦巻き状に前記計算データを転送するので、前記仮想配列演算ユニットの通信負荷を分散させることができる。したがって前記仮想配列演算ユニット間における前記計算データの共有に関する諸問題が好適に解決される。
発明を実施するための最良の形態
以下、視覚装置2の実施形態を挙げ、この視覚装置(visual device)2を 図面を参照しながら説明する。
まず、第1図に示す視覚装置2の実施形態は、画像記憶手段(image memorization means)12、エッジ情報生成手段(edge-information generation means)14、エッジ情報形成手段(edge-information formation means)15及び 幾何解析手段(geometrical analysis means)37を用いて、複数のデジタル画像(digital images)111中を 移動する少なくとも1個の物体からこれらの物体の位置、大きさ及び形を検出する。画像記憶手段12は、これらのデジタル画像111を順次記憶する。エッジ情報生成手段14は、2つのデジタル画像111を用いて、これらのデジタル画像111中を移動する少なくとも1個の物体の粗エッジ情報(rough edge information)112を含む粗エッジ情報画像(rough edge-information image)113を生成する。エッジ情報形成手段15は、2つのデジタル画像111のうちの1つを用いて、この粗エッジ情報画像113を形成エッジ情報画像(formed edge-information image)115に形成する。幾何解析手段37は、位置/大きさ/傾き検出手段(position/size/inclination detection means)44及び位置/大きさ/形検出手段(position/size/form detection means)45から構成され(第45図参照)、この形成エッジ情報画像115から 形大きさ情報画像(form-size-information image)190を生成する。本発明が、デジタル画像111中の全ての物体に関して、事前に位置、大きさ、傾き、形及び色など如何なる情報を知らなくても、本発明は、 デジタル画像111中の物体の位置、大きさ及び形を検出することができる。したがって本発明の利用者は、事前に検出対象となる物体の情報を知らなくても、この利用者は本発明を容易に利用することができる。
第2図に示す別の視覚装置2の実施形態は、2つの画像記憶手段12、エッジ情報生成手段14、エッジ情報形成手段15、位置/大きさ検出手段(position/size detection means)17及び物体/背景分離手段(figure/ground separation means)16を用いて、複数のデジタル画像111中を移動する少なくとも1個の物体を表す少なくとも1つの物体領域(object area)141を背景領域(background area)から分離する。1つの画像記憶手段12が、これらのデジタル画像111を順次記憶する。エッジ情報生成手段14は、2つのデジタル画像111を用いて、これらのデジタル画像111中を移動する少なくとも1個の物体の粗エッジ情報112を含む粗エッジ情報画像113を生成する。エッジ情報形成手段15は、2つのデジタル画像111のうちの1つを用いて、この粗エッジ情報画像113を形成エッジ情報画像115に形成する。位置/大きさ検出手段17は、この形成エッジ情報画像115によって区分される少なくとも1つの物体領域141のおおよその重心位置及び大きさを表す 重複情報画像(redundant-information image)132を生成する。物体/背景分離手段16は、この重複情報画像132を用いて、この形成エッジ情報画像115によって区分される少なくとも1つの物体領域141を背景領域から速やかに分離し、物体領域画像(object-area image)142を生成する。もう1つの画像記憶手段12が、この物体領域画像142を記憶する。本発明が、デジタル画像111中の全ての物体に関して、事前に位置、大きさ、傾き、形及び色など如何なる情報を知らなくても、本発明は、少なくとも1つの物体領域141を背景領域から分離することができる。したがって本発明の利用者は、事前に検出対象となる物体の情報を知らなくても、この利用者は本発明を容易に利用することができる。
第3図に示すように、物体の色を認識するための視覚装置2は、図2に示した視覚装置2の実施形態に、マスク手段(mask means)40及びパターンマッチング手段(pattern matching means)38を加えることにより、複数のデジタル画像111中を移動する少なくとも1個の物体を表す物体領域141に対するパターンマッチングを行う。マスク手段40は、1つの画像記憶手段12によって記憶された物体領域画像142を用いて、もう1つの画像記憶手段12によって記憶されたデジタル画像111のうち物体領域141に相当する分離物体領域(segmented object area)143のみをフィルタすることにより、マスク画像(masked image)148を生成する。パターンマッチング手段38は、このマスク画像148を複数のテンプレート画像(template images)146と比較することにより、画素単位でこのマスク画像148に最も類似するテンプレート画像146を選択し、全ての画素のマッチング結果(matching results)をマッチング結果画像(matching-result image)147として出力する。これらのテンプレート画像146は、それぞれ相異なる単一の色で塗り潰されているので、結果として、このパターンマッチング手段38は、その分離物体領域143全体の色を選択することになる。なお、本来パターンマッチング手段38は、目的に応じて必要な数のテンプレート画像146を事前に記憶しなければならない。しかしながら、第3図においてマスク手段40からパターンマッチング手段38に向けて破線が示されているように、このマスク手段40から出力されるマスク画像148をテンプレート画像146として入力することにより、このパターンマッチング手段38は必要に応じてテンプレート画像146の数を増やすこともできる。本発明が、デジタル画像111中の全ての物体に関して、事前に位置、大きさ、傾き、形及び色など如何なる情報を知らなくても、本発明は、複数のテンプレート画像146が表す色の中から、デジタル画像111中の少なくとも1つの分離物体領域143が表す物体の色を選択することができる。したがって本発明の利用者は、事前に検出対象となる物体の情報を知らなくても、この利用者は本発明を容易に利用することができる。
第4図に示すように、パターン認識をするための視覚装置2は、図2に示した視覚装置2の実施形態に、エッジ情報形成手段15、幾何解析手段37、領域正規化手段(area normalization means)27及び パターンマッチング手段38 から構成される少なくとも1つの組み合せを加えることにより、複数のデジタル画像111中を移動する少なくとも1個の物体を表す 物体領域141に対するパターンマッチングを行う。全ての組み合せの各々において、物体領域画像142及びデジタル画像111は以下のように処理される。まず、エッジ情報形成手段15は、1つの画像記憶手段12によって記憶された物体領域画像142を粗エッジ情報画像113と見做し、もう1つの画像記憶手段12によって記憶された デジタル画像111のうち物体領域141に相当する 分離物体領域143を用いて、この粗エッジ情報画像113を形成エッジ情報画像115に形成する。このとき、この分離物体領域143の大きさ及び画質によって、この形成エッジ情報画像115の各画素を構成する形成エッジ情報114は、この分離物体領域143の大まかなパターン又は細かなテクスチャを表す。次に、幾何解析手段37は、この形成エッジ情報画像115を用いて、この分離物体領域143のパターン及びテクスチャを解析し、形大きさ情報画像190を生成する。次に、領域正規化手段27は、その物体領域画像142を用いて、この形大きさ情報画像190を正規化し、正規化画像(normalized image)145を生成する。このとき、この領域正規化手段27は、正規化画像145の画素間を補間する必要はないので、自然数による除算は省略される。最後に、パターンマッチング手段38は、この正規化画像145を複数のテンプレート画像146を比較することにより、画素単位でこの正規化画像145に最も類似するテンプレート画像146を選択し、全ての画素のマッチング結果をマッチング結果画像147として出力する。これらのテンプレート画像146は、それぞれ相異なる物体から生成されているので、このパターンマッチング手段38は、その分離物体領域143が表す物体を選択する。しかしながら、似たような物体から生成されたテンプレート画像146同士も似ていることから、結果として、このパターンマッチング手段38は、その分離物体領域143が表す複数の物体に共通する 物体の種別を選択することになる。なお、本来パターンマッチング手段38は、目的に応じて必要な数のテンプレート画像146を事前に記憶しなければならない。しかしながら、第3図において領域正規化手段27からパターンマッチング手段38に向けて破線が示されているように、この領域正規化手段27から出力される正規化画像145をテンプレート画像146として入力することにより、このパターンマッチング手段38は必要に応じてテンプレート画像146の数を増やすこともできる。本発明が、デジタル画像111中の全ての物体に関して、事前に位置、大きさ、傾き、形及び色など如何なる情報を知らなくても、本発明は、複数のテンプレート画像146が表す物体の中から、デジタル画像111中の少なくとも1つの分離物体領域143が表す物体の種別を選択することができる。したがって本発明の利用者は、事前に検出対象となる物体の情報を知らなくても、この利用者は本発明を容易に利用することができる。
なお、この視覚装置2には、第3図及び第4図に示された複数の手段を組み合せたものも含まれる。
この他に、第5図に示すように、視覚装置2は、位置/大きさ/傾き検出手段44を用いて、画像記憶手段12によって記憶された少なくとも1つの物体領域141から傾き大きさ情報画像(inclination-size-information image)186を生成することにより、この物体領域141の位置、大きさ及び傾きを検出することができる。
そこで第6図に示すように、物体領域141を認識するための視覚装置2は、第3図及び 第4図 に示された複数の手段を組み合せた、パターン認識をするための視覚装置2に、第5図に示された 位置/大きさ/傾き検出手段44、複数の画像認識手段(image recognition means)29及び環境理解手段(environmental understanding means)31を組み合せたものである。これらの画像認識手段29の各々は、対応するパターンマッチング手段38から入力したマッチング結果画像147の各画素が表す、複数のテンプレート画像146とのマッチング結果を統合することにより、パターンマッチング手段38が入力した画像に対して1つの認識結果(recognition result)を求める。なお、マッチング結果を統合する方法として、誤差逆伝播法(バックプロパゲーション)によって学習する パーセプトロンなどのニューラルネットワークを用いることもできるが、一般には多数決のように単純にマッチング結果画像147のうち最も多いマッチング結果を選択することで十分である。環境理解手段31は、これらの認識結果及び 位置/大きさ/傾き検出手段44から入力された傾き大きさ情報画像186を用いて、物体領域141に対する 位置、大きさ、形、テクスチャ、色及び傾きを決定すると共に、 これらの情報から構成される環境データ(environmental datum)を生成する。さらに、この環境理解手段31は、デジタル画像111中の全ての物体の環境データを記憶することにより、これらの環境データのリストである環境地図(environmental map)を出力する。本発明が、デジタル画像111中の全ての物体に関して、事前に位置、大きさ、傾き、形及び色など如何なる情報を知らなくても、本発明は、デジタル画像111中の少なくとも1つの分離物体領域143が表す物体に対する環境地図を作成することができる。 したがって本発明の利用者は、事前に検出対象となる物体の情報を知らなくても、この利用者は本発明を容易に利用することができる。
第7図に示すように、画像を理解するための視覚装置2は、物体領域141を認識するための視覚装置2で示された全ての手段に、図1の視覚装置2の実施形態で示された幾何解析手段37を加えたものである。 この幾何解析手段37を加えたことにより、デジタル画像111中に複数の物体があったとしても、環境理解手段31はこれらの物体を容易に区別することができる。また、物体/背景分離手段16が物体領域141と背景領域を不完全に分離したとしても、この環境理解手段31は 幾何解析手段37が検出した物体の位置及び大きさと、位置/大きさ/傾き検出手段44が検出した物体領域141の位置、大きさと、を比較し、さらに幾何解析手段37が検出した物体の輪郭と、複数の画像認識手段29が決定した物体領域141が表す物体の種別及び色と、を比較することにより、この物体に対して適切な環境データを作成することができる。本発明が、デジタル画像111中の全ての物体に関して、事前に位置、大きさ、傾き、形及び色など如何なる情報を知らなくても、本発明は、デジタル画像111中の全ての物体に対する環境地図を作成することができる。したがって本発明の利用者は、事前に検出対象となる物体の情報を知らなくても、この利用者は本発明を容易に利用することができる。
第8図に示すように、物体を探索するための視覚装置2は、画像を理解するための視覚装置2で示された全ての手段に、画像取得手段(image capturing means)11、カメラ/環境座標変換手段(camera/environmental coordinate conversion means)20、2つの画像/環境座標変換手段(image/environmental coordinate conversion means)21、計時手段(timer means)32、物体位置推定手段(object position inference means)34、振動命令生成手段(vibration command generation means)25、運動制御手段(action control means)23及びカメラ命令生成手段(camera command generation means)26を加えたものである。画像取得手段11は、移動カメラ(moving camera)10が撮影した 動画像(animation image)を構成する複数のフレーム画像(frame images)の各々を順次デジタル画像111に変換する。もしこのフレーム画像がアナログ信号から構成されていれば、この画像取得手段11はフレーム画像をデジタル信号に変換し、このデジタル画像111を生成する。一方で、このフレーム画像がデジタル信号から構成される場合、もしこのデジタル信号が圧縮されていれば、この画像取得手段11はフレーム画像を伸張し、このデジタル画像111を生成する。さもなくば、この画像取得手段11はフレーム画像を直接このデジタル画像111に変換する。
ところで、移動カメラ10はパン、チルト、ロール及びズームのうち、少なくとも1つを実行する場合、この移動カメラ10の向き、倍率及び傾きが変化するので、デジタル画像111が常に同じ倍率及び同じ傾きで同じ場所を表すとは限らない。したがって、幾何解析手段37及び位置/大きさ/傾き検出手段44が検出する物体の位置、大きさ及び傾きは、デジタル画像111毎に変化するかも知れない。そこで、その移動カメラ10がこの物体を 常時適切な大きさで撮影するために、視覚装置2は機能に応じて3つの座標系、つまりカメラ座標系(camera coordinate system)、画像座標系(image coordinate system)及び環境座標系(environmental coordinate system)を使い分ける。第一に、カメラ座標系は、文字通り移動カメラ10がパン、チルト及びズームを各々の最小制御単位で制御するために用いているカメラ内部の三次元球座標系である。一般にこのカメラ座標系の原点は ホームポジションと呼ばれる、この移動カメラ10に固有の位置である。このカメラ座標系は物体の物理的位置を表すことができる 唯一の座標系である。それにも関わらず このカメラ座標系は移動カメラ10の機種毎に異なるため、このカメラ座標系には汎用性がない。そのため視覚装置2は他の手段から このカメラ座標系を秘匿する必要がある。第二に、画像座標系は、移動カメラ10によって撮影されたフレーム画像の中央、つまりレンズ光軸を原点とする、画素を単位とした二次元座標系である。これはフレーム画像中のどの画素に物体が位置するか表すために用いられる。したがってこの画像座標系はフレーム画像中にある複数の物体の細かな位置を区別するのには適しているが、この画像座標系だけではこれらの物体の物理的位置を表すことができない。第三に、環境座標系は、視覚装置2が内部で物体の位置を論理的に統一して表すために用いている三次元球座標系である。この環境座標系は水平方向及び垂直方向にはラジアンを単位とした角度を用い、物体の大きさと物体までの距離の積を表すために、距離方向には1.0を単位とした実数を用いる。一般に物体の大きさが短時間で極端に変ることはないので、この物体までの距離と移動カメラ10の倍率は比例すると見做してよい。環境座標系の原点は任意である。つまり環境座標系は原則として環境座標系上の任意の2点の相対座標を表すために用いられる。視覚装置2は移動カメラ10によって撮影可能な環境中の物体を環境座標系に投射することで、複数の物体を区別することができる。
そこでカメラ座標系及び画像座標系は各々環境座標系と相互に座標変換をする必要がある。その役割を果たしている手段がカメラ/環境座標変換手段20、画像/環境座標変換手段21及び運動制御手段23である。これらの手段は移動カメラ10及び画像取得手段11の仕様からカメラ座標系及び画像座標系の各単位を求め、環境座標系に変換するための行列を計算する。またカメラ座標系から環境座標系への変換行列の逆行列を計算することにより、環境座標系からカメラ座標系への変換行列も求めることができる。ただしカメラ座標系の原点が 移動カメラ10のホームポジションであるので、カメラ座標系から変換された環境座標系の位置は環境座標系上の移動カメラ10のホームポジションからの 相対位置となる。一方、環境座標系から変換されたカメラ座標系の位置はカメラ座標系上の移動カメラ10の現在位置からの相対位置となる。加えて、画像座標系は二次元座標系であるため、画像座標系のみでは環境座標系に変換することはできない。そのため画像/環境座標変換手段21では環境座標系で表された移動カメラ10の向き及び倍率と、フレーム画像中の物体の領域の大きさを用いて、随時変換行列を計算することにより、画像座標系から環境座標系に変換できるようにする。なお画像座標系から変換された環境座標系の位置は、画像の中心からの相対位置となる。
ところが移動カメラ10が傾いていた場合、視覚装置2が環境座標系を上述のように求めることはできない。例えば第9図に示すように、形成エッジ情報画像115中の位置αに角度θ反時計回りに傾いた物体の形成エッジ情報114があるものとする。このときレンズ光軸に対応する形成エッジ情報画像115の中心οに対して 反時計回りに角度θ回転するように移動カメラ10を回転させると、エッジ情報形成手段15は回転後形成エッジ情報画像181を出力することができる。つまり回転後形成エッジ情報画像181中の位置αにおいて物体は直立することになり、物体の種別の認識が容易になる。しかしながら回転後形成エッジ情報画像181中の位置αから求められた画像座標系の座標は、形成エッジ情報画像115中の位置αから求められた画像座標系の座標に比べて時計回りに角度θ回転した位置になる。そのため角度θが大きくなるか距離οαが長くなるに従って両座標のずれが大きくなる。したがって回転後形成エッジ情報画像181中の位置αから回転前の画像座標系の座標を求めるためには、回転後形成エッジ情報画像181中の位置αを反時計回りに角度θ回転させた位置βを求めれば良い。なお、移動カメラ10の傾き及び角度θの単位はラジアンとする。
ここで回転後形成エッジ情報画像181中の位置αの画像座標を(αx,αy)とし、位置βの画像座標を(βx,βy)とすると、数式1に従って(αx,αy)から(βx,βy)を求めることができる。
これにより回転後形成エッジ情報画像181中の位置αから位置β、つまり形成エッジ情報画像115中の位置αを求めることができるので、結果として画像/環境座標変換手段21は回転後形成エッジ情報画像181中の位置αから正確に環境座標を求めることができる。
上述を踏まえて、物体を探索するための視覚装置2では、カメラ/環境座標変換手段20が、移動カメラ10の向き及び倍率を、物理量に関係ない環境座標系の座標に変換する。なお、移動カメラ10の傾きは、ラジアンを単位とする角度に変換される。また、2つの画像/環境座標変換手段21は、傾き大きさ情報画像186の各画素及び形大きさ情報画像190の各画素を、それぞれこの環境座標系の座標に投射する。これにより、環境理解手段31は、環境座標系で表される環境データのリストである環境地図を生成することができる。また、この環境理解手段31は、計時手段32から1秒以下、一般には1ミリ秒を単位として、現在時刻を入力する。これにより、この環境理解手段31は、環境地図に含まれる各々の環境データにタイムスタンプを付けることができるので、この環境理解手段31は、1個の物体の軌跡を表すこともできるし、古くなった環境データを破棄することもできる。なお、この環境理解手段31は、カメラ/環境座標変換手段20から移動カメラ10の現在の向き、倍率及び傾きを入力することにより、この移動カメラ10の現在の向き、倍率及び傾きを環境データに変換する。この環境データは、外部のシステムが環境地図を利用する際に便利である。物体位置推定手段34は、環境地図が表す少なくとも1個の物体の中から1個を選び、この物体の軌跡から、この物体の現在位置及び傾きを推定する。この現在位置も環境座標系によって表される。振動命令生成手段25は、移動カメラ10を振動させるための命令を生成する。これにより、デジタル画像111も順次振動するので、動画像中で静止している物体があたかも移動しているようにエッジ情報生成手段14は見做すことができる。つまり、エッジ情報生成手段14は、この物体に対して粗エッジ情報112を生成することができる。なお、この物体がデジタル画像111中で、おおよそ2又は3画素程度で振動する場合に、エッジ情報生成手段14は、この物体だけから効率よく粗エッジ情報112を生成することができる。運動制御手段23は、物体位置推定手段34から物体の現在位置及び傾きを入力したか、又は振動命令生成手段25から移動カメラ10を振動させるための命令を入力した場合、この運動制御手段23は、移動カメラ10の移動先を決定し、カメラ座標系に変換する。カメラ命令生成手段26はこの移動先を入力して、移動カメラ10のパン、チルト、ロール及びズームのうち少なくとも1つを制御するための命令を生成する。本発明が、デジタル画像111中の全ての物体に関して、事前に位置、大きさ、傾き、形及び色など如何なる情報を知らなくても、本発明は、デジタル画像111中の全ての物体を探索することができる。したがって本発明の利用者は、事前に検出対象となる物体の情報を知らなくても、この利用者は本発明を容易に利用することができる。
この他に、例えば第10図に示すように、物体の数を数えるための視覚装置2は、物体を探索するための視覚装置2で示された全ての手段に、この視覚装置2が生成した情報を出力するための2つの画像保持手段(image keeping means)39、2つ以上の認識結果保持手段(recognition-result keeping means)30、環境地図保持手段(environmental-map keeping means)33、物体計数手段(object counting means)35及び物体数保持手段(object number keeping means)36と、この視覚装置2が効率よく物体を探索するための色情報生成手段(color-information generation means)41、2つの位置/大きさ検出手段17、2つの画像/環境座標変換手段21及び2つの位置選択手段(position selection means)22と、外部から視覚装置2を制御するための制御命令入力手段(control command input means)24を有することもできる。
まず、1つの画像記憶手段12によって記憶されたデジタル画像111を外部のシステムが入力し終えるまで、1つの画像保持手段39はこのデジタル画像111を一定期間保持する。もう1つの画像記憶手段12によって記憶された物体領域画像142をこの外部のシステムが入力し終えるまで、もう1つの画像保持手段39はこの物体領域画像142を一定期間保持する。これら2つの画像を組み合せることにより、この外部のシステムはデジタル画像111から物体領域141に相当する領域を切り出すことができる。2つ以上の画像認識手段29によって決定された、分離物体領域143に対するパターン、テクスチャ及び色の認識結果を外部のシステムが入力し終えるまで、それぞれに対応する認識結果保持手段30はこれらの認識結果を一定期間保持する。なお、少なくとも1つの認識結果保持手段30が、パターンの認識結果及びテクスチャの認識結果を混在しながら出力することもある。環境理解手段31が生成する環境地図をこの外部のシステムが入力し終えるまで、環境地図保持手段33はこの環境地図を一定期間保持する。物体計数手段35は、この環境地図から一定時間内に検出された物体の個数を数え、物体数を出力する。 この物体数をこの外部のシステムが入力し終えるまで、物体数保持手段36はこの物体数を一定期間保持する。
次に、色情報生成手段41は、デジタル画像111の各画素から赤色、黄色及び白色のような特定の色を表す画素を選び、色情報画像172を生成する。この色情報画像172は、明るさが常に変化し、無数の色が溢れる実世界において物体を認識する場合にはあまり役に立たないが、血液、炎、信号機、道路標識及びヘッドライトの光など、注意を必要としたり、危険を及ぼす可能性がある物体を急いで探索する場合には極めて有効である。1つの位置/大きさ検出手段17は、この色情報画像172から、注意が必要である少なくとも1個の物体の位置及び大きさを検出し、重複情報画像132を生成する。1つの画像/環境座標変換手段21は、この重複情報画像132の各画素を構成する重複情報131を環境座標系に投射する。1つの位置選択手段22は、全ての重複情報131から1つを選択する。一方で、もう1つの位置/大きさ検出手段17は、粗エッジ情報画像113から、少なくとも1個の移動物体の位置及び大きさを検出し、重複情報画像132を生成する。もう1つの画像/環境座標変換手段21は、この重複情報画像132の各画素を構成する重複情報131を環境座標系に投射する。もう1つの位置選択手段22は、全ての重複情報131から1つを選択する。また、制御命令入力手段24は、外部から利用者及び適当なシステムが指示した制御命令を入力する。そこで運動制御手段23は、環境地図によって表された物体以外にも、移動カメラ10の周辺にある物体及びこの利用者及びこのシステムが指示した物体の中から1つを選び、選ばれた物体の環境座標をカメラ命令生成手段26に伝える。
これにより、本発明が、デジタル画像111中の全ての物体に関して、事前に位置、大きさ、傾き、形及び色など如何なる情報を知らなくても、本発明は、デジタル画像111中の全ての物体を探索し、物体の個数を数えることができる。したがって本発明の利用者は、事前に検出対象となる物体の情報を知らなくても、この利用者は本発明を容易に利用することができる。なお、実際の利用に際しては、この利用者は第10図の中から必要な手段だけを選ぶことができるし、さらに他の手段を追加することもできる。
さて、視覚装置2で用いられている画像記憶手段12、色情報生成手段41、エッジ情報生成手段14、エッジ情報形成手段15、位置/大きさ検出手段17、位置/大きさ/傾き検出手段44、幾何解析手段37、物体/背景分離手段16、領域正規化手段27、マスク手段40、画像保持手段39、及びパターンマッチング手段38は、配列演算ユニット100から構成されるデータ処理装置110を用いることにより実装することができる。そこで以下では、配列演算ユニット100を利用したデータ処理装置110の実施形態を挙げ、この視覚装置2を図面を参照して説明する。
まず配列演算ユニット100は、入力画像の1つの画素とその近傍画素を用いることにより、出力画像の1つの画素を生成する。そこで第11図に示したように、配列演算ユニット100を 入力画像のサイズに合わせて格子状に配列したデータ処理装置110を用いることにより、データ処理装置110は入力画像から出力画像を生成することができる。なお第11図において、配列演算ユニット100をAOUと略記する。また第11図では、配列演算ユニット100は正方格子状に配列されているが、勿論実装面積を最小にするために、配列演算ユニット100を六角格子状、つまり最密充填構造に配置しても良い。この場合、配列演算ユニット100間の複数の信号線の一部はジグザグに配線される。次に配列演算ユニット100は 専用ハードウェアによって実装されても良いし、汎用コンピュータ上でソフトウェアによって実装することもできる。つまり入力画像から出力画像を生成することができれば、 実装手段は制限されない。したがって配列演算ユニット100のアルゴリズムを示すことにより、データ処理装置110の画像処理を示すことができる。そこで配列演算ユニット100のアルゴリズムを示すために、第10図で示された画像記憶手段12、色情報生成手段41、エッジ情報生成手段14、エッジ情報形成手段15、位置/大きさ検出手段17、位置/大きさ/傾き検出手段44、 幾何解析手段37、領域正規化手段27、マスク手段40、画像保持手段39、及びパターンマッチング手段38で用いる数式について説明する。
幅w、高さh、帯域数bの任意の2n階調画像をx、y、wとすると、x、y、wは各々位置p(i,j,k)の 帯域画値xijk、yijk、wijkをy用いて数式2、3及び4のように表される。なお太字はベクトルを示す。またnは非負の整数、w、h、b、i、j、kは自然数である。
まず前記画像の各帯域画素値に対する点処理に関する関数について以下で説明する。
画像xを二値画像に変換する場合、数式5に従って帯域画素値を二値化する。
画像xを帯域最大値画像に変換する場合、数式6に従ってi行j列の画素の各帯域の値のうち最大値を選択する。なお前記帯域最大値画像は単帯域画像となるので、便宜上帯域数1の前記画像として取り扱うことにする。したがって関数Bij1(x)の第3添字は1となっている。
画像xが二値画像であるとして、画像xを反転させる場合、数式7に従って計算する。
画像xの位置p(i,j,k)における対数変換は数式8に従って行われる。ここでeはオフセットであり、自然対数関数が出力する値が有効範囲に入るようにするために使われるので、一般にe=1で十分である。この対数化により帯域画素値同士の除算を減算にすることができる。また画像xが2n階調のデジタル画像111であるとすると、帯域数に関わらず2n個の要素を含むルックアップテーブルをメモリ102上に持つならば、毎回自然対数関数を計算する必要もなく、標準的な対数表を持つ必要もなくなる。
さて、画像の位置p(i,j,k)におけるq近傍の位置の集合Pijk(q)は数式9によって表される。ただしqは4、8、24、48、80、120、(2r+1)2−1と続く数列であり、rは自然数である。なお画像サイズをはみ出した位置が集合Pijk(q)に含まれる場合には、特に指定がない限り位置p(i,j,k)を代用するものとする。またこれ以外のときは、指定に従い、画素値が0に相当し、しかも画像に含まれない架空の位置を代用する。これにより辺縁処理は自動的に行われる。したがって集合Pijk(q)の要素の数Nijkは常にqとなる。
そこで次に画像の各帯域画素値に対する最大8近傍182の近傍処理に関する関数及びオペレータについて以下で説明する。
画像xの位置p(i,j,k)における平滑化は数式10に従って行われる。ただしint(v)は実数vの小数点以下切り捨てを意味するものとする。もし画像xの帯域画素値が整数値であるならば、ハードウェアの実装時にNijk=4のときxlmkの総和に対して右シフト命令を2回、Nijk=8のときxlmkの総和に対して右シフト命令を3回実行するような回路に変更することにより、除算を実行する回路を省くことができる。
ラプラシアンの計算であるが、これは数式11に示すように単なる2階差分オペレータである。8近傍182の方がノイズの微妙な変化を捉えてゼロ点およびゼロ交差が多くなり、本発明には向いている。ただしNijkが4か8であるので、もしハードウェアの実装時にNijk=4のときxijkに対して左シフト命令を2回、Nijk=8のときxijkに対して左シフト命令を3回実行するような回路に変更することにより、実数の乗算を実行する回路を省くことができる。
ラプラシアンによって求められた値からゼロ点を見付ける方法として、従来は正から負に変化する画素を見付けていたが、本発明では数式12に従い、負から正にゼロ交差する画素の他に、負からゼロやゼロから正などゼロ点が経由したり、ゼロが継続する画素を見付けるようにする。本発明では、数式12が見付けたゼロ点はエッジがある場所ではなく、ノイズがある場所、つまりエッジがない場所になる。また数式12により実数値の二値化も同時に行っている。
画像xが任意の二値画像であるとして、画像xのうち孔が空いている画素を埋める場合には、数式13に従い計算するここでfは埋めるべき孔の大きさを表すパラメータであり、一般にはf=1で十分である。なお4近傍の場合にはその性質上対角線を検知することができないので、極力8近傍182にした方がよい。
画像xが任意の二値画像であるとして、画像xのうち孤立点ないし孤立孔を削除する場合には、数式14に従い計算する。なお4近傍の場合にはその性質上対角線を検知することができないので、極力8近傍182にした方がよい。
画像xが任意の二値画像であるとして、画像xのうち線幅が1である画素を検知するために、4近傍画素を用いて数式15に従い計算する。
2つの画像x、yが任意の二値画像であり、画像yが画像xのうち線幅が1である画素を検知した画像であるとすると、画像xのうち線幅が1である画素の線幅を拡張するために、4近傍画素を用いて数式16に従い計算する。
そこで数式15の線幅検知と数式16の線幅拡張を用いると、数式17に従い二値画像の線幅補完を簡単に記述することができる。
次に画像の各帯域画素値に対する近傍処理に関する関数及びオペレータについて以下で説明する。
2つの画像x、yがある場合、これらの画像の最大値画像は数式18に従って計算される。
2つの画像x、yがある場合、これらの画像の差分は数式19に従って計算される。
ここで数式11のラプラシアンと数式19の差分を用いると、数式20に従い画像の鮮鋭化を簡単に記述することができる。
2つの画像x、yがあり、画像yが単帯域二値画像である場合、数式21に従い、画像yの帯域画素値を用いて画像xの各帯域画素値を抜き出すことができる。
2つの画像x、yがあり、画像xとyが二値画像である場合、数式22に従い、画像xを基に 画像yを整形することができる。
2つの画像x、yがあり、画像yが二値画像である場合、数式23に従い、画像yで指定されなかった画像xの帯域画素値を、画像xの帯域画素値の近傍のうち画像yで指定された画像xの帯域画素値の平均値で補間する。ただしint(v)は実数vの小数点以下切り捨てを意味するものとする。なお画像yが二値画像であるため分母は正数となるので、メモリ102に1からqまでの逆数を記憶させることにより、整数の除算を実数の乗算に置き換えることができる。
さて本発明では、画素の位置や移動量なども画像データのように扱うことで処理を単純にしている。これを位置の画像化と呼ぶ。以下では位置の画像化に関する幾つかの関数及びオペレータについて説明する。
まず位置p(l,m,o)のl、m、o各々の値を画像データとして帯域画素値に変換するオペレータを#とし、変換された帯域画素値を#p(l,m,o)とする。次に帯域画素値が位置p(i,j,k)から位置p(i+l,j+m,k+o)へ移動する場合を考える。 このとき帯域画素値の移動量は位置p(l,m,o)として表されるものとする。つまり移動量はある位置からのベクトルと見做すことができる。最後に帯域画素値から位置を取り出すオペレータを#−1とする。したがって#−1#p(l,m,o)=p(l,m,o)となる。
そこで数式24に従い、移動量p(i,j,k)を幅方向と高さ方向で表される平面内で180度反対方向に向けることができる。
画像xがあり、画像xが単帯域二値画像である場合、画像xの位置p(i,j,1)における 重心位置への移動量は数式25に従い計算される。なお、本来重心を計算する際には除算を行う必要があるが、8近傍182内への移動量を計算する際に除算は相殺されてしまうので、数式25では除算が省かれている。
移動量p(i,j,k)から、数式26、27及び28に従い8近傍182内への移動量を計算し、移動量画像に画像化することができる。なお数式27及び28は、画像の離散化により数式26では対応しきれない場合にのみ利用する。
したがって数式25、26、27及び28を用いると、数式29、30及び31に従い、単帯域二値画像xの重心方向への移動量画像の帯域画素値を簡単に記述することができる。なお移動量画像の帯域数は1となる。
一方で数式24を用いると重心位置の反対位置を求めることができるので、数式32に従い、単帯域二値画像xの重心と反対方向への移動量画像の帯域画素値を簡単に記述することができる。なお移動量画像の帯域数は1となる。
2つの画像x、yがあり、画像yが移動量画像である場合、数式33に従い、画像yで指し示された移動位置に画像xの帯域画素値を移動した後、同じ帯域画素に移動した帯域画素値の合計を濃淡画像にすることができる。
そこで数式5、29、30、31及び33を用いることにより、数式34、数式35及び数式36に従い、単帯域濃淡画像xを近傍の重心方向に移動した後、同じ帯域画素に移動した帯域画素値の合計を簡単に記述することができる。
ところで、数式33において近傍数qが8に限定されると、移動量画像yは画素毎に8近傍182の中から移動元を特定することができる。そこで、画像xが重複情報画像132であり、しかも第12図に示すように、xの各画素の8近傍182に対して反時計回りに1から8までの番号が付けられた場合、数式37から数式44までの8つの数式は、それぞれ8個の移動元毎に、移動可能な画像xの帯域画素値を求めることができる。
そこで数式34、35及び36の代りに数式45、46及び47を用いることにより、8個の移動元重複情報183から構成される8帯域濃淡画像x、及び重複情報131から構成される単帯域濃淡画像yから、8個の移動元毎の移動元重複情報183が生成される。
なお、条件によっては、Γ* ijk(Φ(y),Δ(Φ(y))) の代りに、Γ* ijk(y,Δ(Φ(y)))を用いることもできる。
2つの画像x、yがあり、画像xが二値画像で、画像yが移動量画像である場合、画像xの各帯域画素値の移動先の位置を 求めることができるので、移動先が重複する帯域画素値を見つけることができる。そこで画像xの各帯域画素値の移動先が重複することなく、しかも移動する各帯域画素値が存在することを表す移動可能画像の帯域画素値は、数式48に従い生成される。なお移動可能画像の帯域数は1となる。
3つの画像x、y、wがあり、画像yが移動可能画像であり、画像wが移動量画像である場合、数式49に従い画像xの帯域画素値を移動することができる。
そこで数式32、数式48及び数式49を用いると、数式50に従い、二値画像yから計算される重心位置と反対方向に画像xの帯域画素を移動することで得られる画像の帯域画素値を簡単に記述することができる。
そこで数式2から数式50までを用いることにより、第10図で示された画像記憶手段12、色情報生成手段41、エッジ情報生成手段14、エッジ情報形成手段15、位置/大きさ検出手段17、位置/大きさ/傾き検出手段44、領域正規化手段27、マスク手段40、及び画像保持手段39 を実装するデータ処理装置110の全ての配列演算ユニット100のアルゴリズムを記述することができる。以下では、データ処理装置110中の任意の配列演算ユニット100のアルゴリズムを用いて、画像記憶手段12、色情報生成手段41、エッジ情報生成手段14、エッジ情報形成手段15、 位置/大きさ検出手段17、位置/大きさ/傾き検出手段44、領域正規化手段27、マスク手段40、及び画像保持手段39を説明する。
データ処理装置110によって実現される画像記憶手段12がデジタル画像111を記憶するために、格子状に配列された配列演算ユニット100は同期して並列に動作する。格子上i行j列に配置された配列演算ユニット100をAOUijとすると、AOUijのアルゴリズムは第13図のようになる。
ステップ1201で、AOUijを格子上のi行j列に配置する。これは論理的であれ物理的であれ、AOUijの近傍を決定するために必要である。
ステップ1202で、AOUijの近傍や変数の初期値を設定する。
ステップ1203で、順次入力されるデジタル画像111が無くなったかどうか判断する。もしデジタル画像111が無ければ(ステップ1203:YES)、アルゴリズムを終了する。もしデジタル画像111があれば(ステップ1203:NO)、ステップ1204に移行する。ただし特定の画像サイズのみに対して配列演算ユニット100を実装する場合には、無限ループにしても良い。
ステップ1204で、デジタル画像111が準備されるまで入力待ちをする。
ステップ1205で、 デジタル画像111のi行j列の画素を帯域数分入力する。このためAOUijは少なくとも帯域数分の画像データを記憶するメモリ102を必要とする。
ステップ1206で、入力待ちの間、出力できるように、デジタル画像111のi行j列の画素を記憶する。
ステップ1207で、デジタル画像111の帯域画素値を出力する。その後ステップ1203に戻る。
これにより、配列演算ユニット100から構成されるデータ処理装置110を用いて、画像記憶手段12はデジタル画像111を記憶することができる。
第14図に示すように、データ処理装置110によって実現される色情報生成手段41がデジタル画像111の各画素から色情報171を生成するために、格子状に配列された配列演算ユニット100は同期して並列に動作する。格子上i行j列に配置された 配列演算ユニット100をAOUijとすると、AOUijのアルゴリズムは第15図のようになる。
ステップ4101で、AOUijを格子上のi行j列に配置する。これは論理的であれ物理的であれ、AOUijの近傍を決定するために必要である。
ステップ4102で、AOUijの近傍や変数の初期値を設定する。
ステップ4103で、順次入力されるデジタル画像111が無くなったかどうか判断する。もしデジタル画像111が無ければ(ステップ4103:YES)、 アルゴリズムを終了する。もしデジタル画像111があれば(ステップ4103:NO)、ステップ4104に移行する。ただし特定の画像サイズのみに対して 配列演算ユニット100を実装する場合には、無限ループにしても良い。
ステップ4104で、デジタル画像111のi行j列の画素を帯域数分入力する。このためAOUijは少なくとも帯域数分の画像データを記憶するメモリ102を必要とする。
ステップ4105で、デジタル画像111のi行j列の画素から特定の色を抽出して色情報171を生成する。生成された色情報171は色情報画像172の帯域画素値として扱われる。
ステップ4106で、色情報画像172の帯域画素値を出力する。その後ステップ4103に戻る。
これにより、配列演算ユニット100から構成されるデータ処理装置110を用いて、色情報生成手段41はデジタル画像111から色情報画像172を生成することができる。
第16図に示すように、データ処理装置110によって実現される エッジ情報生成手段14が デジタル画像111から粗エッジ情報画像113を生成するために、格子状に配列された配列演算ユニット100は同期して並列に動作する。 格子上i行j列に配置された配列演算ユニット100をAOUijとすると、エッジ情報生成手段14に対するAOUijのアルゴリズムは第17図のようになる。
ステップ1401で、AOUijを格子上のi行j列に配置する。これは論理的であれ物理的であれ、AOUijの近傍を決定するために必要である。
ステップ1402で、AOUijの近傍や変数の初期値を設定する。近傍の設定においては、前記各関数で使う近傍サイズqを個別に4か8に決めても良いし、全部を4か8に統一しても良い。本発明のエッジ情報生成手段14が生成する 粗エッジ情報112の正確さを上げるためには 近傍サイズqを全て8に設定することが望ましい。しかしながら粗エッジ情報112を生成するための計算時間の制約や、デジタル画像111の帯域数などにより、エッジ情報生成手段14は 必要に応じて適宜近傍サイズを変えることで対処することができる。
ステップ1403で、デジタル画像111が終了したかどうか判断する。もしデジタル画像111が無ければ(ステップ1403:YES)、アルゴリズムを終了する。もしデジタル画像111があれば(ステップ1403:NO)、ステップ1404に移行する。ただし特定の帯域数と画像サイズに対して配列演算ユニット100を実装する場合には、無限ループにしても良い。
ステップ1404で、デジタル画像111のi行j列の画素を帯域数分入力する。これは、AOUijがデジタル画像111のi行j列の画素を一括して処理するためである。このためAOUijは少なくとも帯域数分の画像データを記憶するメモリ102を必要とする。
ステップ1405で、AOUijが近傍の配列演算ユニット100と通信することにより、入力したデジタル画像111の各帯域画素値に対して関数Sijk(x)に従い平滑化を行う。平滑化された帯域画素値は平滑化画像の帯域画素値として扱われる。ここで関数Sijk(x)は必要に応じて数回繰り返しても良い。一般的な多帯域画像の場合、この回数は2回で十分である。
ステップ1406で、平滑化画像の各帯域画素値に対して関数Lijk(x)に従い対数変換を行う。対数変換された各帯域画素値は対数変換画像の帯域画素値として扱われる。
ステップ1407で、AOUijが近傍の配列演算ユニット100と通信することにより、対数変換画像の各帯域画素値に対して関数Eijk(x)に従い鮮鋭化を行う。鮮鋭化された帯域画素値は鮮鋭化画像の帯域画素値として扱われる。なおデジタル画像111にノイズが多量に含まれている場合には、このステップを省略することができる。
ステップ1408で、鮮鋭化画像の各帯域画素値に対して関数Dijk(x,y)に従い1入力前鮮鋭化画像の各帯域画素値を引く。差分を計算された帯域画素値は時間差分画像の帯域画素値として扱われる。
ステップ1409で、1入力前鮮鋭化画像の各帯域画素値を鮮鋭化画像の対応する各帯域画素値で置き換える。
ステップ1410で、AOUijが近傍の配列演算ユニット100と通信することにより、時間差分画像の各帯域画素値に対してオペレータ▽2 ijkxに従いラプラシアンの計算を行う。ラプラシアンを計算された帯域画素値は時間差分ラプラシアン画像の帯域画素値として扱われる。
ステップ1411で、AOUijが近傍の配列演算ユニット100と通信することにより、時間差分ラプラシアン画像の各帯域画素値に対して関数Zijk(x)に従いゼロ点を抽出する。ゼロ点を抽出された帯域画素値は時間差分ゼロ点画像の帯域画素値として扱われる。
ステップ1412で、時間差分ラプラシアン画像の各帯域画素値に対して関数Bijk(x)に従い各帯域画素値のうち最大値を検出する。検出された最大値帯域画素値は 最大値時間差分ゼロ点画像の帯域画素値として扱われる。なお便宜上帯域数は1である。
ステップ1413で、AOUijが近傍の配列演算ユニット100と通信することにより、鮮鋭化画像の各帯域画素値に対してオペレータ▽2 ijkxに従いラプラシアンの計算を行う。ラプラシアンを計算された帯域画素値はラプラシアン画像の帯域画素値として扱われる。
ステップ1414で、AOUijが近傍の配列演算ユニット100と通信することにより、ラプラシアン画像の各帯域画素値に対して関数Zijk(x)に従いゼロ点を抽出する。ゼロ点を抽出された帯域画素値はゼロ点画像の帯域画素値として扱われる。
ステップ1415で、ラプラシアン画像の各帯域画素値に対して関数Bijk(x)に従い各帯域画素値のうち最大値を検出する。検出された最大帯域画素値は最大値ゼロ点画像の帯域画素値として扱われる。なお便宜上帯域数は1である。
ステップ1416で、ラプラシアン画像の各帯域画素値と時間差分ラプラシアン画像の各帯域画素値に対して関数Mijk(x,y)に従い各々の画像の同じ位置にある帯域画素値のうち最大値を検出する。検出された最大帯域画素値は混成ゼロ点画像の帯域画素値として扱われる。なお便宜上帯域数は1である。
ステップ1417で、AOUijが近傍の配列演算ユニット100と通信することにより、混成ゼロ点画像の帯域画素値に対して関数Fijk(x)に従い孔を除去する。孔を除去された帯域画素値は孔除去混成ゼロ点画像の帯域画素値として扱われる。なお便宜上帯域数は1である。ここで関数Fijk(x)は必要に応じて数回繰り返しても良い。一般的な多帯域画像の場合、この回数は1回で十分である。
ステップ1418で、AOUijが近傍の配列演算ユニット100と通信することにより、孔除去混成ゼロ点画像の帯域画素値に対して関数Aijk(x)に従い孤立点および孤立孔を除去する。孤立点および孤立孔を除去された帯域画素値はノイズ除去混成ゼロ点画像の帯域画素値として扱われる。なお便宜上帯域数は1である。
ステップ1419で、ノイズ除去混成ゼロ点画像の帯域画素値に対して関数Iijk(x)に従い0と1を反転させる。反転された帯域画素値は粗エッジ情報画像113の帯域画素値として扱われる。
ステップ1420で、粗エッジ情報画像113の帯域画素値を出力する。その後ステップ1403に戻る。
これにより、配列演算ユニット100から構成されるデータ処理装置110を用いて、エッジ情報生成手段14はデジタル画像111から粗エッジ情報画像113を生成することができる。
第18図に示すように、データ処理装置110によって実現されるエッジ情報形成手段15が、粗エッジ情報112から構成される粗エッジ情報画像113と、デジタル画像111と、から、形成エッジ情報114から構成される形成エッジ情報画像115を生成するために、格子状に配列された配列演算ユニット100は同期して並列に動作する。格子上i行j列に配置された配列演算ユニット100をAOUijとすると、AOUijのアルゴリズムは 第19図のようになる。
ステップ1501で、AOUijを格子上のi行j列に配置する。これは論理的であれ物理的であれ、AOUijの近傍を決定するために必要である。
ステップ1502で、AOUijの近傍や変数の初期値を設定する。近傍の設定においては、前記各関数で使う近傍サイズqを個別に4か8に決めても良いし、全部を4か8に統一しても良い。本発明のエッジ情報形成手段15が形成した 形成エッジ情報114の正確さを上げるためには近傍サイズqを全て8に設定することが望ましい。しかしながら粗エッジ情報112を形成するための計算時間の制約や、入力されるデジタル画像111の帯域数などにより、エッジ情報形成手段15は必要に応じて適宜近傍サイズを変えることで対処することができる。
ステップ1503で、順次入力されるデジタル画像111又は粗エッジ情報画像113が無くなったかどうか判断する。もしデジタル画像111又は粗エッジ情報画像113が無ければ(ステップ1503:YES)、アルゴリズムを終了する。もしデジタル画像111及び粗エッジ情報画像113があれば(ステップ1503:NO)、ステップ1504に移行する。ただし特定の帯域数と画像サイズに対して 配列演算ユニット100を実装する場合には、無限ループにしても良い。
ステップ1504で、デジタル画像111及び粗エッジ情報画像113のi行j列の画素を 帯域数分入力する。これは、AOUijがデジタル画像111及び粗エッジ情報画像113のi行j列の画素を一括して処理するためである。このためAOUijは少なくとも帯域数分の画像データを記憶するメモリ102を必要とする。
ステップ1505で、デジタル画像111のi行j列の画素と粗エッジ情報画像113のi行j列の画素を分離する。これは、AOUijがデジタル画像111のi行j列の画素と粗エッジ情報画像113のi行j列の画素を各々独立した画像の画素として処理するためである。もしデジタル画像111のi行j列の画素と粗エッジ情報画像113のi行j列の画素が初めから分離されて入力されていれば、特に何もしない。
ステップ1506で、AOUijが近傍の配列演算ユニット100と通信することにより、入力したデジタル画像111の各帯域画素値に対して関数Sijk(x)に従い平滑化を行う。平滑化された各帯域画素値は平滑化画像の帯域画素値として扱われる。ここで関数Sijk(x)は必要に応じて数回繰り返しても良い。一般的な多帯域画像の場合、この回数は2回で十分である。
ステップ1507で、 平滑化画像の各帯域画素に対して関数Lijk(x)に従い対数変換を行う。対数変換された帯域画素値は対数変換画像の帯域画素値として扱われる。
ステップ1508で、AOUijが近傍の配列演算ユニット100と通信することにより、対数変換画像の各帯域画素値に対して関数Eijk(x)に従い鮮鋭化を行う。鮮鋭化された帯域画素値は鮮鋭化画像の帯域画素値として扱われる。なお、デジタル画像111にノイズが多量に含まれている場合、このステップを省略することができる。
ステップ1509で、AOUijが近傍の配列演算ユニット100と通信することにより、鮮鋭化画像の各帯域画素値に対してオペレータ▽2 ijkxに従いラプラシアンの計算を行う。ラプラシアンを計算された帯域画素値はラプラシアン画像の帯域画素値として扱われる。
ステップ1510で、AOUijが近傍の配列演算ユニット100と通信することにより、ラプラシアン画像の各帯域画素値に対して関数Zijk(x)に従いゼロ点を抽出する。ゼロ点を抽出された帯域画素値はゼロ点画像の帯域画素値として扱われる。
ステップ1511で、ゼロ点画像の各帯域画素値に対して関数Bijk(x)に従い各帯域画素値のうち最大値を検出する。検出された最大帯域画素値は最大値ゼロ点画像の帯域画素値として扱われる。 なお便宜上帯域数は1である。
ステップ1512で、最大値ゼロ点画像の帯域画素値に対して関数Iijk(x)に従い0と1を反転させる。反転された帯域画素値は基礎エッジ情報画像の帯域画素値として扱われる。
ステップ1513で、入力した粗エッジ情報画像113の帯域画素値は初め整形粗エッジ情報画像の帯域画素値として扱われ、AOUijが近傍の配列演算ユニット100と通信することにより、基礎エッジ情報画像の帯域画素値を用いて、整形粗エッジ情報画像の帯域画素値に対して関数Qijk(x,y)に従い整形を行う。 整形された帯域画素値は再び整形粗エッジ情報画像の帯域画素値として扱われる。ここで関数Qijk(x,y)は本来整形粗エッジ情報画像の帯域画素値が変化しなくなるまで繰り返される。ただし計算時間の制約、入力される粗エッジ情報画像113の品質、形成される形成エッジ情報画像115に求められる品質などにより、整形処理は適当な繰り返し回数で計算を打ち切った方が良い。
ステップ1514で、AOUijが近傍の配列演算ユニット100と通信することにより、整形粗エッジ情報画像の帯域画素値に対して関数Cijk(x)に従い線幅補完を行う。補完された帯域画素値は 形成エッジ情報画像115の帯域画素値として扱われる。
ステップ1515で、形成エッジ情報画像115の帯域画素値を出力する。その後ステップ1503に戻る。
これにより、配列演算ユニット100から構成されるデータ処理装置110を用いて、エッジ情報形成手段15は粗エッジ情報画像113を形成エッジ情報画像115に形成することができる。
ここで粗エッジ情報画像113から形成エッジ情報画像115への形成とは、ある場面を撮影した低解像度のデジタル画像111から生成されたエッジ情報から、同じ場面を撮影した高解像度のデジタル画像111から生成されるべきエッジ情報を推定することであると見做すことができる。 そこで自然数nに対して、第20図に示すように、デジタル画像111の解像度を1/nに低くした低解像度デジタル画像116から、エッジ情報生成手段14を用いて低解像度粗エッジ情報画像117を生成した場合、低解像度粗エッジ情報画像117をn倍拡大することにより粗エッジ情報画像113を生成することができる。ただしデジタル画像111の解像度を1/nにするためには、水平及び垂直方向に対して単純にデジタル画像111の連続するn個のうち1個を抽出すれば良い。また低解像度粗エッジ情報画像117をn倍拡大するためには、水平及び垂直方向に対して 単純に低解像度粗エッジ情報画像117の連続する画素の間に帯域画素値が0である画素をn−1個埋めれば良い。このときnがあまり大きくなければ、エッジ情報形成手段15を実現するデータ処理装置110が、低解像度粗エッジ情報画像117を拡大した粗エッジ情報画像113を形成した形成エッジ情報画像115と、エッジ情報形成手段15を実現するデータ処理装置110が、デジタル画像111から生成した粗エッジ情報画像113を形成した形成エッジ情報画像115とは、ほとんど同じものになる。この理由は、エッジ情報形成手段15がデジタル画像111を用いて内部で生成したエッジ情報のうちどのエッジ情報を利用するのか参考にするために、エッジ情報形成手段15が 粗エッジ情報画像113を用いているだけだからである。したがって低解像度粗エッジ情報画像117を拡大した粗エッジ情報画像113をエッジ情報形成手段15に入力した場合、低解像度デジタル画像116から低解像度粗エッジ情報画像117を生成するエッジ情報生成手段14を実現するデータ処理装置110は計算量又はハードウェア量を低減することができる。
さらにこの方法を発展させると、第21図に示すように、デジタル画像111の解像度を低くした低解像度デジタル画像116から生成した低解像度粗エッジ情報画像117のうち、粗エッジ情報112の周辺を切り出した低解像度切出粗エッジ情報画像118を生成することができる。この低解像度切出粗エッジ情報画像118を拡大した切出粗エッジ情報画像119と、デジタル画像111のうち同じ領域を切り出した 切出デジタル画像120をエッジ情報形成手段15を実現する データ処理装置110に入力すると、切出形成エッジ情報画像121を生成することができる。この場合、エッジ情報形成手段15を実現するデータ処理装置110はハードウェア量を低減することができる。なお視覚装置2は、切出デジタル画像120が常にデジタル画像111の中央になるように 移動カメラ10の向き及び倍率を変化させるためのものであると見做すこともできる。
第22図に示すように、データ処理装置110によって実現される位置/大きさ検出手段17が粗エッジ情報112を画素とする粗エッジ情報画像113から重複情報131を画素とする重複情報画像132を生成するために、格子状に配列された配列演算ユニット100は同期して並列に動作する。 格子上i行j列に配置された配列演算ユニット100をAOUijとすると、AOUijのアルゴリズムは第23図のようになる。
ステップ1701で、AOUijを格子上のi行j列に配置する。これは論理的であれ物理的であれ、AOUijの近傍を決定するために必要である。
ステップ1702で、AOUijの近傍や変数の初期値を設定する。近傍の設定においては、前記各関数で使う近傍サイズqを個別に決めても良いし、全部を統一しても良い。本発明のデータ処理装置110が生成した 重複情報画像132の正確さを上げるためには近傍サイズqを全て大きな値に設定することが望ましい。しかしながら物体の粗エッジ情報112の重心を計算するための計算時間の制約や、入力される粗エッジ情報画像113のサイズなどにより、位置/大きさ検出手段17は必要に応じて適宜近傍サイズを変えることで対処することができる。
ステップ1703で、順次入力される粗エッジ情報画像113が無くなったかどうか判断する。もし粗エッジ情報画像113が無ければ(ステップ1703:YES)、アルゴリズムを終了する。もし粗エッジ情報画像113があれば(ステップ1703:NO)、ステップ1704に移行する。ただし特定の画像サイズのみに対して配列演算ユニット100を実装する場合には、無限ループにしても良い。
ステップ1704で、粗エッジ情報画像113のi行j列の画素を1帯域分入力する。このためAOUijは少なくとも1帯域分の画像データを記憶するメモリ102を必要とする。
ステップ1705で、粗エッジ情報画像113の粗エッジ情報112を重複情報画像132の重複情報131に変換する。重複情報131は1か0に相当する帯域画素値となる。
ステップ1706で、AOUijが近傍の配列演算ユニット100と通信することにより、重複情報画像132の各帯域画素値に対して関数△ij1(x)に従い移動量を計算する。移動量を画像化した帯域画素値は移動量画像の帯域画素値として扱われる。
ステップ1707で、AOUijが近傍の配列演算ユニット100と通信することにより、重複情報画像132の各帯域画素値に対して関数Λij1(x)に従い移動量が指し示す先に移動させる。移動した帯域画素値は新たに重複情報画像132の帯域画素値として扱われる。
ステップ1708で、ステップ1706からステップ1707までの繰り返し回数を表す移動回数が指定回数に達したかどうか判断する。もし移動回数が指定回数に達していなければ(ステップ1708:NO)、ステップ1706に戻る。もし移動回数が指定回数に達していれば(ステップ1708:YES)、ステップ1709に移行する。なおこの指定回数は形成エッジ情報画像115のサイズや形成エッジ情報114が表す物体のサイズ、さらには近傍のサイズqにより決定される。利用目的に応じて適切なパラメータを設定すれば、指定回数を大目に決定しても問題はないが、あまり指定回数を多くしすぎると、位置及び大きさの検出に要する時間が長くなる。
ステップ1709で、AOUijが近傍の配列演算ユニット100と通信することにより、重複情報画像132の各帯域画素値に対して関数△’ij1(x)に従い移動量を計算する。移動量を画像化した帯域画素値は移動量画像の帯域画素値として扱われる。
ステップ1710で、AOUijが近傍の配列演算ユニット100と通信することにより、重複情報画像132の各帯域画素値に対して関数Λ’ij1(x)に従い移動量が指し示す先に移動させる。移動した帯域画素値は 新たに重複情報画像132の帯域画素値として扱われる。
ステップ1711で、重複情報画像132の帯域画素値を出力する。その後ステップ1703に戻る。
なお重複情報画像132の各重複情報131はその位置を中心とした周辺にある粗エッジ情報112の総数を表すので、 結果的にその位置を中心とした物体の大きさを意味することになる。
これにより、配列演算ユニット100から構成されるデータ処理装置110を用いて、位置/大きさ検出手段17は 粗エッジ情報画像113から 重複情報画像132を生成することができる。
ここで第23図のアルゴリズムにおいて粗エッジ情報112から構成される粗エッジ情報画像113の代りに物体領域141を表す物体領域画像142を用いると、第24図に示すように、データ処理装置110によって実現される位置/大きさ検出手段17は物体領域141を表す物体領域画像142からも重複情報131を表す重複情報画像132を生成することができる。ただし物体領域画像142を用いた場合、重複情報画像132の各重複情報131はその位置を中心とした物体領域141の画素の総数を表すので、結果的にその位置を中心とした物体の面積を意味することになる。したがって重複情報画像132から物体の大きさを求める場合には重複情報131の平方根を取るなど注意を要する。なお形成エッジ情報画像115及び色情報画像172を用いた場合も同様である。
さて、第25図に示すように、データ処理装置110によって実現される位置/大きさ/傾き検出手段44が 粗エッジ情報112を画素とする粗エッジ情報画像113から重複情報131を画素とする重複情報画像132を生成するために、格子状に配列された配列演算ユニット100は同期して並列に動作する。格子上i行j列に配置された 配列演算ユニット100をAOUijとすると、AOUijのアルゴリズムは 第26図のようになる。
ステップ4401で、AOUijを格子上のi行j列に配置する。これは論理的であれ物理的であれ、AOUijの近傍を決定するために必要である。
ステップ4402で、AOUijの近傍や変数の初期値を設定する。近傍の設定においては、前記各関数で使う近傍サイズqを個別に決めても良いし、全部を統一しても良い。本発明のデータ処理装置110が生成した重複情報画像132の正確さを上げるためには近傍サイズqを全て大きな値に設定することが望ましい。しかしながら物体の粗エッジ情報112の重心を計算するための計算時間の制約や、入力される粗エッジ情報画像113のサイズなどにより、位置/大きさ/傾き検出手段44は必要に応じて適宜近傍サイズを変えることで対処することができる。
ステップ4403で、順次入力される粗エッジ情報画像113が無くなったかどうか判断する。もし粗エッジ情報画像113が無ければ(ステップ4403:YES)、アルゴリズムを終了する。もし粗エッジ情報画像113があれば(ステップ4403:NO)、ステップ4404に移行する。ただし特定の画像サイズのみに対して配列演算ユニット100を実装する場合には、無限ループにしても良い。
ステップ4404で、粗エッジ情報画像113のi行j列の画素を1帯域分入力する。このためAOUijは少なくとも1帯域分の画像データを記憶するメモリ102を必要とする。
ステップ4405で、粗エッジ情報画像113の粗エッジ情報112を重複情報画像132の重複情報131に変換する。重複情報131は1か0に相当する帯域画素値となる。また8個の移動元重複情報183は0に相当する帯域画素値でクリアされる。
ステップ4406で、AOUijが近傍の配列演算ユニット100と通信することにより、重複情報画像132の各帯域画素値に対して関数△ij1(x)に従い移動量を計算する。移動量を画像化した帯域画素値は移動量画像の帯域画素値として扱われる。
ステップ4407で、AOUijが近傍の配列演算ユニット100と通信することにより、移動元重複情報画像184の各帯域画素値に対して関数Λ* ijk(x,y)に従い移動量が指し示す先に移動させる。移動した帯域画素値は新たに移動元重複情報画像184の帯域画素値として扱われる。
ステップ4408で、AOUijが近傍の配列演算ユニット100と通信することにより、重複情報画像132の各帯域画素値に対して関数Λij1(x)に従い移動量が指し示す先に移動させる。移動した帯域画素値は 新たに重複情報画像132の帯域画素値として扱われる。
ステップ4409で、ステップ4406からステップ4408までの繰り返し回数を表す移動回数が指定回数に達したかどうか判断する。もし移動回数が指定回数に達していなければ(ステップ4409:NO)、ステップ4406に戻る。もし移動回数が指定回数に達していれば(ステップ4409:YES)、ステップ4410に移行する。なおこの指定回数は粗エッジ情報画像113のサイズや粗エッジ情報112が表す物体のサイズ、さらには近傍のサイズqにより決定される。利用目的に応じて適切なパラメータを設定すれば、指定回数を大目に決定しても問題はないが、あまり指定回数を多くしすぎると、位置、大きさ及び傾きの検出に要する時間が長くなる。
ステップ4410で、AOUijが近傍の配列演算ユニット100と通信することにより、重複情報画像132の各帯域画素値に対して関数△’ij1(x)に従い移動量を計算する。移動量を画像化した帯域画素値は移動量画像の帯域画素値として扱われる。
ステップ4411で、AOUijが近傍の配列演算ユニット100と通信することにより、移動元重複情報画像184の各帯域画素値に対して関数Λ’* ijk(x,y)に従い移動量が指し示す先に移動させる。移動した帯域画素値は新たに移動元重複情報画像184の帯域画素値として扱われる。
ステップ4412で、AOUijが近傍の配列演算ユニット100と通信することにより、重複情報画像132の各帯域画素値に対して関数Λ’ij1(x)に従い移動量が指し示す先に移動させる。移動した帯域画素値は新たに重複情報画像132の帯域画素値として扱われる。
ステップ4413で、ステップ4406からステップ4412までの繰り返し回数を表す縮退回数が 指定回数に達したかどうか判断する。もし縮退回数が指定回数に達していなければ(ステップ4413:NO)、ステップ4406に戻る。もし縮退回数が指定回数に達していれば(ステップ4413:YES)、ステップ4414に移行する。なおこの指定回数は粗エッジ情報画像113のサイズや粗エッジ情報112が表す物体のサイズ、 さらには近傍のサイズqにより決定される。利用目的に応じて適切なパラメータを設定すれば、指定回数を大目に決定しても問題はないが、あまり指定回数を多くしすぎると、位置、大きさ及び傾きの検出に要する時間が長くなる。
ステップ4414で、重複情報画像132の帯域画素値及び移動元重複情報画像184の各帯域画素値を出力する。その後ステップ4403に戻る。
なお重複情報画像132の各重複情報131はその位置を中心とした周辺にある粗エッジ情報112の総数を表すので、 結果的にその位置を中心とした物体の大きさを意味することになる。また重複情報131がある画素だけに移動元重複情報183があるので、結果的にその位置を中心とした物体の傾きを意味することになる。
これにより、配列演算ユニット100から構成されるデータ処理装置110を用いて、位置/大きさ/傾き検出手段44は粗エッジ情報画像113から重複情報画像132及び移動元重複情報画像184を生成することができる。ただし、もしこの重複情報画像132が表す物体のおおよその重心位置が、実際の重心位置から大きくずれてしまうならば、ステップ4410において、関数△’ij1(x)及び関数△’’ij1(x)が交互に用いられるようにすれば良い。同様に、ステップ4411において、関数Λ’* ijk(x,y)及び関数Λ’’ * ijk(x,y)が交互に用いられ、ステップ4412において、関数Λ’ij1(x)及び関数Λ’’ij1(x)が交互に用いられるようにすれば良い。
ここで第26図のアルゴリズムにおいて、粗エッジ情報112から構成される粗エッジ情報画像113の代りに形成エッジ情報114から構成される形成エッジ情報画像115を用いることもできる。また粗エッジ情報112から構成される粗エッジ情報画像113の代りに物体領域141を表す物体領域画像142を用いると、第27図に示すように、位置/大きさ/傾き検出手段44は、物体領域141を表す物体領域画像142からも重複情報画像132及び移動元重複情報画像184を 生成することができる。ただし物体領域画像142を用いた場合、重複情報画像132の各重複情報131はその位置を中心とした物体領域141の画素の総数を表すので、結果的にその位置を中心とした物体の面積を意味することになる。したがって、重複情報画像132から物体の大きさを求める場合には、重複情報131の平方根を取るなど注意を要する。なお、物体領域画像142の代りに物体の特定の色の有無を表す色情報171から構成される色情報画像172を用いた場合も同様である。
ここまでは粗エッジ情報画像113、形成エッジ情報画像115、物体領域画像142及び色情報画像172から移動元重複情報画像184を生成する方法について説明してきた。以下では、移動元重複情報183から物体の傾き角度を求める方法について説明する。
まず第12図及び第28図で示された 近傍1から近傍8までの移動元重複情報183を それぞれN1からN8とすると、反時計回りで表される傾き角度θは例えば数式51に従って求められる。なお傾き角度θはラジアンで表されるものとし、物体が水平及び垂直である場合、傾き角度θは0ラジアンとなる。
例えば、N1からN8までの移動元重複情報183が第28図のようになる場合、傾き角度θは約−0.4ラジアンとなる。数式51は傾き角度θを求めるための簡単な数式であるが、勿論数式51よりも細かい条件付けを行うことにより、本発明の利用者はより正確に傾き角度θを求めることができる。この他に、水平に対する傾き角度θを求めるためには、数式52が用いられる。
なお、この傾き角度θが大まかで良いならば、関数arctan(y/x)は対数表を用いる必要はない。例えば、この傾き角度θが、0ラジアン、π/4ラジアン、π/2ラジアン及び3π/4ラジアンのうちのいずれかを取るだけで良いならば、関数arctan(y/x)は、数式53のように近似されても良い。
そこで、配列演算ユニット100が数式51及び数式52を計算し、重複情報131及び傾き角度θから構成される傾き大きさ情報185を生成すれば、配列演算ユニット100は 8個の移動元重複情報183を出力する場合に比べて、より少ないデータ量を出力することができる。例えば、傾き角度θが4つに限定される場合、それぞれの傾き角度に対する重複情報131が個別の帯域画素値に割り当てられれば、傾き大きさ情報画像186は4帯域画像となる。また、4つの傾き角度θが1つの帯域画素値によって表されれば、傾き大きさ情報画像186は2帯域画像となる。この他に、傾き角度θが一定の刻み幅で表されても良いのなら、メモリ102は対数表を持つ代りに 必要な数の傾き角度を用意したルックアップテーブルを記憶するだけで良い。勿論、配列演算ユニット100は数式53のような近似関数を用いても良い。
ところで、第25図及び第27図では、それぞれ1個の物体に対して生成された粗エッジ情報112を含む粗エッジ情報画像113及び物体領域141を含む物体領域画像142が位置/大きさ/傾き検出手段44に入力されているが、勿論粗エッジ情報画像113及び物体領域画像142中に複数の物体がある場合でも、位置/大きさ/傾き検出手段44は個々の物体の位置、大きさ及び傾きを検出することができる。さらに第29図に示すように色情報画像172がテクスチャとなる場合でも、位置/大きさ/傾き検出手段44は個々の色情報171の塊から位置、大きさ及び傾きを検出することができる。したがって位置/大きさ/傾き検出手段44はテクスチャ解析にも利用することができる。
さて、ここまでは位置/大きさ/傾き検出手段44について説明してきた。上述の説明から明らかなように、粗エッジ情報画像113中の1個の物体の輪郭が 多数の等間隔の線分で表されるならば、位置/大きさ/傾き検出手段44は、 この粗エッジ情報画像113から、これらの線分の長さ及び傾きを求めることができる。しかしながら、任意の位置にある任意の物体に対して、このような粗エッジ情報画像113を生成するためには、多数の大きなマスクを用いた特別な画像処理装置が別途必要であるので、実際に位置/大きさ/傾き検出手段44は、1個の物体に対して、僅かな数の線分を含む粗エッジ情報画像113か、さもなくば形成エッジ情報画像115しか入力することができない。したがって、位置/大きさ/傾き検出手段44は、上述の方法を用いる限り、これらの粗エッジ情報画像113から1個の物体の輪郭を表す複数の線分の長さ及び傾きを求めることはできない。
ところが、位置/大きさ/傾き検出手段44が8近傍182のみに対する局所処理を実行する場合、つまり、第26図のステップ4406及びステップ4410において近傍サイズqが8である場合、位置/大きさ/傾き検出手段44は、条件によっては粗エッジ情報画像113中の粗エッジ情報112が構成する複数の線分及び曲線の法線方向を求めることができる場合がある。特に粗エッジ情報画像113中の複数の線分及び曲線の線幅が おおよそ2又は3画素である場合、つまり、形成エッジ情報114に対して、位置/大きさ/傾き検出手段44は、確実にこれらの線分及び曲線を一定の量以下の形成エッジ情報114に分割し、さらにこれらの線分及び曲線の法線方向の角度を求めることができる。例えば第31図の場合、位置/大きさ/傾き検出手段44は、水平に対して135度傾いた形成エッジ情報画像115中の線分に対して、水平に対して45度の角度を出力する。勿論、 位置/大きさ/傾き検出手段44が出力する物体の大きさが、水平に対して135度傾いた線分の長さになる。また、第32図の場合、位置/大きさ/傾き検出手段44は、形成エッジ情報画像115中の十字形を5つの線分に分割した後、形成エッジ情報画像115中の水平線分に対して、水平に対して90度の角度を出力し、形成エッジ情報画像115中の垂直線分に対して、水平に対して0度の角度を出力する。次に第33図の場合、 位置/大きさ/傾き検出手段44は、形成エッジ情報画像115中の三角形を6つの線分に分割し、それぞれ法線方向の角度を出力する。次に第34図の場合、位置/大きさ/傾き検出手段44は、形成エッジ情報画像115中の四角形を8つの線分に分割し、それぞれ法線方向の角度を出力する。なお、第34図から明らかなように、四角形の4つの角は、それぞれこの四角形の重心方向に傾いた短い線分に変換されている。次に第35図の場合、位置/大きさ/傾き検出手段44は、形成エッジ情報画像115中の90度傾いた四角形(ここでは菱形という)を6つの線分に分割し、それぞれ法線方向の角度を出力する。最後に第36図の場合、 位置/大きさ/傾き検出手段44は、形成エッジ情報画像115中の円形を8つの線分に分割し、それぞれ法線方向の角度を出力する。そこで位置/大きさ/傾き検出手段44が数式54を用いてこれらの法線方向の角度に90度を加えれば、位置/大きさ/傾き検出手段44は、形成エッジ情報画像115中の物体の輪郭を表す複数の線分及び曲線の接線方向の角度を求めることができる。
なお、位置/大きさ/傾き検出手段44が形成エッジ情報画像115中の物体の輪郭を表す複数の線分及び曲線の法線方向の角度を出力するものと 幾何解析手段37が見做すならば、位置/大きさ/傾き検出手段44は数式52を用いても良い。
そこで、形成エッジ情報画像115中の全ての物体の各々に対して、位置/大きさ/傾き検出手段44が出力する傾き大きさ情報画像186の傾き大きさ情報185を、幾何解析手段37が一ヶ所に集めることができれば、幾何解析手段37はこの物体の形を識別することができる。このように複数の情報を一ヶ所に集める方法は、既に位置/大きさ/傾き検出手段44によって実現されている。しかしながら、1個の物体に関連した傾き大きさ情報185は傾き大きさ情報画像186中に分散しているので、第29図に示すように、幾何解析手段37が 位置/大きさ/傾き検出手段44と同様の方法で 傾き大きさ情報185を一ヶ所に集めることは困難である。そこで以下では、形成エッジ情報画像115を利用して 傾き大きさ情報185を一ヶ所に集める位置/大きさ/形検出手段45について説明する。
まず、数式37〜44がそれぞれ数式55〜62に拡張される。ここでkは、傾き大きさ情報185が表す線分の傾き角度θが取り得る0度以上180度未満の範囲が複数の領域に区分された場合、それぞれの領域に割り当てられた番号を表す。例えば傾き角度θが0度、45度、90度及び135度の4つの領域に区分された場合、k=0のとき、kは0度の領域を表し、k=1のとき、kは45度の領域を表し、k=2のとき、kは90度の領域を表し、k=3のとき、kは135度の領域を表すものとする。
勿論傾き角度θを任意の数の領域に区分することも可能であるが、以下では説明を簡単にするために、この条件が用いられるものとする。なお、数式55〜62において、kが0であれば、数式55〜62はそれぞれ数式37〜44になる。したがって、位置/大きさ/傾き検出手段44において、複数の配列演算ユニット100の各々は、数式37〜44の代りに、それぞれ数式55〜62を利用することができる。
次に、数式63が数式55〜62に追加される。この数式63は、傾き大きさ情報画像186のうち、傾き角度θの各々の領域に含まれる傾き大きさ情報185が表す線分の長さの合計を計算するために用いられる。
そこで数式45、46及び47の代りに数式64、65及び66を 用いることにより、36個の移動元傾き重複情報187から構成される36帯域濃淡画像xと、重複情報131から構成される単帯域濃淡画像yと、から、傾き角度θの各々の領域毎に、8個の移動元毎の移動元傾き重複情報187と、傾き大きさ情報185が表す線分の長さの合計を表す移動元傾き重複情報187と、が生成される。
さて、第37図〜第41図に示すように、データ処理装置110によって実現される位置/大きさ/形検出手段45が形成エッジ情報114を画素とする形成エッジ情報画像115から重複情報131を画素とする重複情報画像132を生成し、 さらに傾き大きさ情報185を画素とする傾き大きさ情報画像186から移動元傾き重複情報187を画素とする移動元傾き重複情報画像188を生成するために、格子状に配列された配列演算ユニット100は同期して並列に動作する。格子上i行j列に配置された 配列演算ユニット100を、AOUijのアルゴリズムは第42図のようになる。
ステップ4501で、AOUijを格子上のi行j列に配置する。これは論理的であれ物理的であれ、AOUijの近傍を決定するために必要である。
ステップ4502で、AOUijの近傍や変数の初期値を設定する。近傍の設定においては、前記各関数で使う近傍サイズqを個別に決めても良いし、全部を統一しても良い。本発明のデータ処理装置110が生成した重複情報画像132の正確さを上げるためには 近傍サイズqを全て大きな値に設定することが望ましい。しかしながら物体の形成エッジ情報114の重心を計算するための計算時間の制約や、入力される形成エッジ情報画像115のサイズなどにより、位置/大きさ/傾き検出手段44は必要に応じて適宜近傍サイズを変えることで対処することができる。
ステップ4503で、順次入力される形成エッジ情報画像115が無くなったかどうか判断する。もし形成エッジ情報画像115が無ければ(ステップ4503:YES)、アルゴリズムを終了する。もし形成エッジ情報画像115があれば(ステップ4503:NO)、ステップ4504に移行する。ただし特定の画像サイズのみに対して 配列演算ユニット100を実装する場合には、無限ループにしても良い。
ステップ4504で、形成エッジ情報画像115のi行j列の画素と傾き大きさ情報画像186のi行j列の画素を1帯域分入力する。このためAOUijは少なくとも1帯域分の画像データを記憶するメモリ102を必要とする。
ステップ4505で、形成エッジ情報画像115のi行j列の画素と傾き大きさ情報画像186のi行j列の画素を分離する。もし形成エッジ情報画像115のi行j列の画素と傾き大きさ情報画像186のi行j列の画素が 初めから分離されて入力されていれば、特に何もしない。
ステップ4506で、形成エッジ情報画像115の形成エッジ情報114を重複情報画像132の重複情報131に変換する。重複情報131は1か0に相当する帯域画素値となる。
ステップ4507で、傾き大きさ情報画像186の傾き大きさ情報185を移動元傾き重複情報画像188の移動元傾き重複情報187に変換する。傾き大きさ情報185が表す線分の傾き角度θの全ての領域の各々に対して、中央に位置する移動元傾き重複情報187は 非負の整数に相当する帯域画素値となる。また32個の移動元傾き重複情報187は0に相当する帯域画素値でクリアされる。
ステップ4508で、AOUijが近傍の配列演算ユニット100と通信することにより、重複情報画像132の各帯域画素値に対して関数△ij1(x)に従い移動量を計算する。移動量を画像化した帯域画素値は移動量画像の帯域画素値として扱われる。
ステップ4509で、AOUijが近傍の配列演算ユニット100と通信することにより、移動元傾き重複情報画像188の各帯域画素値に対して関数Λ** ijk(x,y)に従い移動量が指し示す先に移動させる。移動した帯域画素値は新たに移動元傾き重複情報画像188の帯域画素値として扱われる。
ステップ4510で、AOUijが近傍の配列演算ユニット100と通信することにより、重複情報画像132の各帯域画素値に対して関数Λij1(x)に従い移動量が指し示す先に移動させる。移動した帯域画素値は新たに重複情報画像132の帯域画素値として扱われる。
ステップ4511で、ステップ4508からステップ4510までの繰り返し回数を表す移動回数が指定回数に達したかどうか判断する。もし移動回数が指定回数に達していなければ(ステップ4511:NO)、ステップ4508に戻る。もし移動回数が指定回数に達していれば(ステップ4511:YES)、ステップ4512に移行する。なおこの指定回数は形成エッジ情報画像115のサイズや形成エッジ情報114が表す物体のサイズ、さらには近傍のサイズqにより決定される。利用目的に応じて適切なパラメータを設定すれば、指定回数を大目に決定しても問題はないが、あまり指定回数を多くしすぎると、位置、大きさ及び形の検出に要する時間が長くなる。
ステップ4512で、AOUijが近傍の配列演算ユニット100と通信することにより、重複情報画像132の各帯域画素値に対して関数△’ij1(x)に従い移動量を計算する。移動量を画像化した帯域画素値は移動量画像の帯域画素値として扱われる。
ステップ4513で、AOUijが近傍の配列演算ユニット100と通信することにより、移動元傾き重複情報画像188の各帯域画素値に対して関数Λ’** ijk(x,y)に従い移動量が指し示す先に移動させる。移動した帯域画素値は新たに移動元傾き重複情報画像188の帯域画素値として扱われる。
ステップ4514で、AOUijが近傍の配列演算ユニット100と通信することにより、重複情報画像132の各帯域画素値に対して関数Λ’ij1(x)に従い移動量が指し示す先に移動させる。移動した帯域画素値は新たに重複情報画像132の帯域画素値として扱われる。
ステップ4515で、ステップ4508からステップ4514までの繰り返し回数を表す縮退回数が指定回数に達したかどうか判断する。もし縮退回数が指定回数に達していなければ(ステップ4515:NO)、ステップ4508に戻る。もし縮退回数が指定回数に達していれば(ステップ4515:YES)、ステップ4516に移行する。なおこの指定回数は形成エッジ情報画像115のサイズや形成エッジ情報114が表す物体のサイズ、さらには近傍のサイズqにより決定される。利用目的に応じて適切なパラメータを設定すれば、指定回数を大目に決定しても問題はないが、あまり指定回数を多くしすぎると、位置、大きさ及び傾きの検出に要する時間が長くなる。
ステップ4516で、重複情報画像132の帯域画素値及び移動元傾き重複情報画像188の各帯域画素値を出力する。その後ステップ4503に戻る。
なお重複情報画像132の各重複情報131はその位置を中心とした周辺にある形成エッジ情報114の総数を表すので、 結果的にその位置を中心とした物体の大きさを意味することになる。また重複情報131がある画素の近傍に移動元傾き重複情報187があるので、殆んど全ての移動元傾き重複情報187が重複情報131と一緒に一ヶ所に集まる。さらに、線分の傾き角度θの領域毎に中央に位置する移動元傾き重複情報187の合計が物体の大きさとほぼ一致することになる。
これにより、配列演算ユニット100から構成されるデータ処理装置110を用いて、位置/大きさ/形検出手段45は形成エッジ情報画像115から重複情報画像132及び移動元傾き重複情報画像188を生成することができる。ただし、もしこの重複情報画像132が表す物体のおおよその重心位置が、実際の重心位置から大きくずれてしまうならば、ステップ4512において、関数△’ij1(x)及び関数△’’ij1(x)が交互に用いられるようにすれば良い。同様に、ステップ4513において、関数Λ’** ijk(x,y)及び関数Λ’’** ijk(x,y)が交互に用いられ、ステップ4514において、関数Λ’ij1(x)及び関数Λ’’ij1(x)が交互に用いられるようにすれば良い。
ここで、傾き角度θが数式54に従って、0度(0ラジアン)、45度(π/4ラジアン)、90度(π/2ラジアン)及び135度(3π/4ラジアン)の4つの領域に区分された場合を考える。つまり、この傾き角度θは、形成エッジ情報画像115が表す線分の接線方向の角度を表す。以下では、この場合を例に、移動元傾き重複情報画像188から形大きさ情報画像190を生成する方法について説明する。
まず、36帯域濃淡画像xが移動元傾き重複情報画像188であるとする。したがって、画像xは9帯域毎に4つの画像に分割され、それぞれ0度、45度、90度及び135度に区分される傾き角度θの線分に対応する移動元重複情報画像184となる。このとき、数式52が、数式67に変形されることにより、これらの線分の移動方向θ* i,j,k+1(x)が求められる。なお、k=0のとき、kは0度の傾き領域を表し、k=1のとき、kは45度の領域を表し、k=2のとき、kは90度の領域を表し、k=3のとき、kは135度の領域を表すものとする。
勿論、移動方向θ* i,j,k+1(x)が一定の刻み幅で表されても良いのなら、メモリ102は対数表を持つ代りに必要な数の移動方向を用意したルックアップテーブルを記憶するだけで良い。
そこで、36帯域濃淡画像xの位置p(i,j,k)における物体の形χij1(x)は、水平線分(0度)、右上がり線分(45度)、垂直線分(90度)、右下がり線分(135度)、十字形(0度)、X形(45度)、星形(十字形とX形の組み合せ)、上向き三角形、下向き三角形、左向き三角形、右向き三角形、 四角形、菱形(90度)、円形及びその他のうちのいずれかであり、それぞれに1〜15の番号が割り当てられるものとする。このとき物体の形χij1(x)は数式68及び69に従って計算される。なお帯域数は便宜上1である。
勿論、数式68及び69は精度に応じて条件を変更することができる。また、数式68及び69がさらに細かく条件分けされれば、数式68及び69は歪んだ物体及びノイズが多い画像中の物体の形も識別することができる。さらに数式68及び69の代りに、パーセプトロンのようなニューラルネットワークが用いられても良い。一方で、数式67が 数式53を用いて、0度(0ラジアン)、45度(π/4ラジアン)、90度(π/2ラジアン)及び135度(3π/4ラジアン)のうちのいずれか1つしか出力しなければ、数式68及び69の条件式はもっと簡単になる。
そこで、位置/大きさ/形検出手段45における複数の配列演算ユニット100の各々が、数式68及び69から求められた物体の形χ ij1 (x)と重複情報画像132のi行j列の重複情報131と、を組み合せて形大きさ情報189を生成することにより、位置/大きさ/形検出手段45は各々の帯域画素値が、対応する図形の大きさを表す15帯域の形大きさ情報画像190を出力することができる(第45図参照)。勿論、この位置/大きさ/形検出手段45は、1つの帯域画素値が図形の番号を表し、もう1つの帯域画素値がこの図形の大きさを表す2帯域の形大きさ情報画像190を出力しても良い。
さて、位置/大きさ/傾き検出手段44及び位置/大きさ/形検出手段45を組み合せることにより、視覚装置2は形成エッジ情報画像115から物体の形を検出することができる。そこで以下では、この位置/大きさ/傾き検出手段44及び位置/大きさ/形検出手段45の組み合せである幾何解析手段37について説明する。
まず、第43図に示すように、幾何解析手段37は、位置/大きさ/傾き検出手段44及び位置/大きさ/形検出手段45から構成される。さらに位置/大きさ/傾き検出手段44が物体のエッジがあるかないかを表す形成エッジ情報114から構成される形成エッジ情報画像115を入力して、傾き大きさ情報185から構成される傾き大きさ情報画像186を出力し、位置/大きさ/形検出手段45が形成エッジ情報画像115及び傾き大きさ情報画像186を入力し、移動元傾き重複情報187から構成される移動元傾き重複情報画像188を出力する。例えば第43図では、幾何解析手段37が、三角形の輪郭を表す形成エッジ情報画像115から水平に対して0度、45度及び135度傾いた線分を検出している。なお、第44図に示すように、形成エッジ情報画像115が三角形の輪郭を破線で表わすとしても、 幾何解析手段37は、この三角形の形を検出することができる。このことは、位置/大きさ/傾き検出手段44が図形を構成する少なくとも1つの線分を細切れにするという特徴から容易に推察され得る。
次に、第45図に示すように、幾何解析手段37は、形成エッジ情報画像115中の物体の形の識別結果を表す形大きさ情報189から構成される形大きさ情報画像190を直接出力することができる。この場合、位置/大きさ/形検出手段45は 移動元傾き重複情報画像188から物体の形を識別する手段を必要とするが、幾何解析手段37が出力する識別結果のデータ量は移動元傾き重複情報画像188と比べて大幅に少なくなる。なお、第45図では、形大きさ情報画像190が全ての形が異なる帯域に割り振られるように示されているが、この形大きさ情報画像190が形を表す帯域と大きさを表す帯域から構成される2帯域画像であっても良い。
最後に、第46図に示すように、幾何解析手段37は、顔パターンのように複数の図形から構成されるパターンに対して、各々の図形の位置、大きさ及び形を検出することができる。また、第47図に示すように、幾何解析手段37は、テクスチャを複数の微小領域に分割して、各々の微小領域の図形の形及び大きさを検出することもできる。
なお、ここでは、幾何解析手段37が形成エッジ情報画像115を用いた場合について説明したが、線幅がおおよそ2又は3画素であるような単帯域画像であれば、この画像がどのように生成されても良い。
さて、第48図に示すように、データ処理装置110によって実現される領域正規化手段27が 物体領域141を含む物体領域画像142、及び物体領域141と重なる分離物体領域143を含むデジタル画像111から正規化領域144を含む正規化画像145を生成するために、格子状に配列された配列演算ユニット100は同期して並列に動作する。格子上i行j列に配置された配列演算ユニット100をAOUijとすると、AOUijのアルゴリズムは第49図のようになる。
ステップ2701でAOUijを格子上のi行j列に配置する。これは論理的であれ物理的であれ、AOUijの近傍を決定するために必要である。
ステップ2702で、AOUijの近傍や変数の初期値を設定する。近傍の設定においては、前記各関数で使う近傍サイズqを個別に決めても良いし、全部を統一しても良い。本発明の領域正規化手段27が生成した正規化画像145の正確さを上げるためには近傍サイズqを全て大きな値に設定することが望ましい。しかしながら分離物体領域143を正規化するための計算時間の制約や、入力されるデジタル画像111のサイズなどにより、領域正規化手段27は必要に応じて適宜近傍サイズを変えることで対処することができる。
ステップ2703で、順次入力される物体領域画像142又はデジタル画像111が無くなったかどうか判断する。もし物体領域画像142又はデジタル画像111が無ければ(ステップ2703:YES)、アルゴリズムを終了する。もし物体領域画像142及びデジタル画像111があれば (ステップ2703:NO)、ステップ2704に移行する。 ただし特定の帯域数及び画像サイズのみに対して配列演算ユニット100を実装する場合には、無限ループにしても良い。
ステップ2704で、物体領域画像142のi行j列の画素を1帯域分と、デジタル画像111のi行j列の画素を帯域数分を入力する。これは、AOUijが物体領域画像142のi行j列の画素と デジタル画像111のi行j列の画素を一括して処理するためである。このためAOUijは少なくとも総帯域数分の画像データを記憶するメモリ102を必要とする。
ステップ2705で、物体領域画像142のi行j列の画素とデジタル画像111のi行j列の画素を分離する。これは、AOUijが 物体領域画像142のi行j列の画素とデジタル画像111のi行j列の画素を各々独立した画像の画素として処理するためである。 もし物体領域画像142のi行j列の画素と デジタル画像111のi行j列の画素が初めから分離されて入力されていれば、特に何もしない。物体領域画像142及びデジタル画像111は各々更新物体領域画像及び更新デジタル画像にコピーされる。
ステップ2706で、AOUijが近傍の配列演算ユニット100と通信することにより、更新物体領域画像の各帯域画素値に対して関数Rij1(x)に従い移動量を計算する。移動量を画像化した帯域画素値は移動量画像の帯域画素値として扱われる。
ステップ2707で、AOUijが近傍の配列演算ユニット100と通信することにより、更新物体領域画像の各帯域画素値に対して関数Hijk(x,y)に従い移動可能な移動先帯域画素値を見つけることができる。移動可能な移動先であるかどうかを表す値は移動可能画像の帯域画素値として扱われる。
ステップ2708で、AOUijが近傍の配列演算ユニット100と通信することにより、更新物体領域画像の各帯域画素値に対して関数Uijk(x,y)に従い移動可能先に移動させる。移動した帯域画素値は新たに更新物体領域画像の帯域画素値として扱われる。
ステップ2709で、AOUijが近傍の配列演算ユニット100と通信することにより、更新デジタル画像の各帯域画素値に対して関数Uijk(x,y)に従い移動可能先に移動させる。移動した帯域画素値は新たに更新デジタル画像の帯域画素値として扱われる。
ステップ2710で、ステップ2706からステップ2709までの繰り返し回数を表す移動回数が指定回数に達したかどうか判断する。もし移動回数が指定回数に達していなければ(ステップ2710:NO)、ステップ2706に戻る。もし移動回数が指定回数に達していれば(ステップ2710:YES)、ステップ2711に移行する。なおこの指定回数はデジタル画像111のサイズやデジタル画像111の分離物体領域143のサイズ、さらには近傍のサイズqにより決定される。利用目的に応じて適切なパラメータを設定すれば、指定回数を大目に決定しても問題はないが、あまり指定回数を多くしすぎると、正規化に要する時間が長くなる。
ステップ2711で、AOUijが 近傍の配列演算ユニット100と通信することにより、移動を完了した更新物体領域画像の各帯域画素値に対して関数Vijk(x,y)に従い近傍の平均値で補間する。なおxとyは共に更新物体領域画像となる。平均値で埋められた帯域画素値は正規化された更新物体領域画像の帯域画素値として扱われる。
ステップ2712で、AOUijが近傍の配列演算ユニット100と通信することにより、移動を完了した更新デジタル画像の各帯域画素値に対して関数Vijk(x,y)に従い近傍の平均値で埋める。なおxは更新デジタル画像となり、yは更新物体領域画像となる。平均値で埋められた帯域画素値は 正規化された更新デジタル画像の帯域画素値として扱われる。
ステップ2713で、ステップ2711からステップ2712までの繰り返し回数を表す補間回数が指定回数に達したかどうか判断する。もし補間回数が指定回数に達していなければ(ステップ2713:NO)、ステップ2711に戻る。もし補間回数が指定回数に達していれば(ステップ2713:YES)、ステップ2714に移行する。一般的に補間回数は近傍サイズqの半分程度の回数で十分である。
ステップ2714で、ステップ2706からステップ2713までの繰り返し回数を表す継続回数が 指定回数に達したかどうか判断する。もし継続回数が指定回数に達していなければ(ステップ2714:NO)、ステップ2706に戻る。もし継続回数が指定回数に達していれば(ステップ2714:YES)、ステップ2715に移行する。なおこの指定回数はデジタル画像111のサイズやデジタル画像111の分離物体領域143のサイズ、さらには近傍のサイズqにより決定される。利用目的に応じて適切なパラメータを設定すれば、指定回数を大目に決定しても問題はないが、あまり指定回数を多くしすぎると、正規化に要する時間が長くなる。
ステップ2715で、更新デジタル画像の帯域画素値を正規化画像145の帯域画素値として出力する。その後ステップ2703に戻る。
これにより、配列演算ユニット100から構成されるデータ処理装置110を用いて、領域正規化手段27が物体領域画像142及びデジタル画像111から正規化画像145を生成することができる。
ここで、形大きさ情報画像190のように、1画素が独立した情報を有する場合、領域正規化手段27は画素間の補間をする必要はない。この場合、第50図に示すように、領域正規化手段27は、ステップ2710、2711、2712及び2713を省略することができる。つまり、この領域正規化手段27は、関数Vijk(x,y)を実行しなくても良い。したがって、配列演算ユニット100がハードウェアによって実現される場合、除算回路は省略され得る。なお、従来通り分離物体領域143を正規化した 正規化画像145を用いる方法も、目玉模様や縞模様をパターンマッチングする際には有用である。
第51図に示すように、データ処理装置110によって実現されるマスク手段40が デジタル画像111及び物体領域画像142からマスク画像148を生成するために、格子状に配列された配列演算ユニット100は同期して並列に動作する。格子上i行j列に配置された配列演算ユニット100をAOUijとすると、AOUijのアルゴリズムは第52図のようになる。
ステップ4001で、AOUijを格子上のi行j列に配置する。これは論理的であれ物理的であれ、AOUijの近傍を決定するために必要である。
ステップ4002で、AOUijの近傍や変数の初期値を設定する。
ステップ4003で、順次入力されるデジタル画像111又は物体領域画像142が無くなったかどうか判断する。もしデジタル画像111又は物体領域画像142が無ければ (ステップ4003:YES)、アルゴリズムを終了する。もしデジタル画像111及び物体領域画像142があれば(ステップ4003:NO)、ステップ4004に移行する。ただし特定の帯域数と画像サイズに対して配列演算ユニット100を実装する場合には、無限ループにしても良い。
ステップ4004で、デジタル画像111及び物体領域画像142のi行j列の画素を帯域数分入力する。これは、AOUijがデジタル画像111及び物体領域画像142のi行j列の画素を一括して処理するためである。このためAOUijは少なくとも帯域数分の画像データを記憶するメモリ102を必要とする。
ステップ4005で、デジタル画像111の各帯域画素に対して関数Oijk(x,y)に従いマスク処理を行う。マスクされた帯域画素値はマスク画像148の帯域画素値として扱われる。
ステップ4006で、マスク画像148の帯域画素値を出力する。その後ステップ4003に戻る。
これにより、配列演算ユニット100から構成されるデータ処理装置110を用いて、マスク手段40はデジタル画像111中の分離物体領域143以外をマスクすることができる。
データ処理装置110によって実現される画像保持手段39が正規化画像145を記憶するために、格子状に配列された配列演算ユニット100は同期して並列に動作する。格子上i行j列に配置された配列演算ユニット100をAOUijとすると、AOUijのアルゴリズムは 第53図のようになる。
ステップ3801で、AOUijを格子上のi行j列に配置する。これは論理的であれ物理的であれ、AOUijの近傍を決定するために必要である。
ステップ3802で、AOUijの近傍や変数の初期値を設定する。
ステップ3803で、順次入力される正規化画像145が無くなったかどうか判断する。もし正規化画像145が無ければ(ステップ3803:YES)、アルゴリズムを終了する。もし正規化画像145があれば(ステップ3803:NO)、ステップ3804に移行する。ただし特定の画像サイズのみに対して配列演算ユニット100を実装する場合には、無限ループにしても良い。
ステップ3804で、正規化画像145のi行j列の画素を帯域数分入力する。このためAOUijは少なくとも帯域数分の画像データを記憶するメモリ102を必要とする。
ステップ3805で、出力先の装置が必要とすれば正規化画像145のフォーマットを変換する。特に正規化画像145の帯域数を1にしたり、デジタル画像111の帯域数が4以上の場合に正規化画像145の帯域数を3にして、アナログ信号を生成しやすくする場合に便利である。さもなくば何もしない。
ステップ3806で、処理速度の異なる出力先の装置に画像データを確実に送信できるように、正規化画像145のi行j列の画素を記憶する。
ステップ3807で、正規化画像145の帯域画素値を出力する。その後ステップ3803に戻る。
これにより、配列演算ユニット100から構成されるデータ処理装置110を用いて、画像保持手段39が 正規化画像145を出力することができる。なおデジタル画像111及びマスク画像148を保持する画像保持手段39も同様に動作する。
ここまではデータ処理装置110が1個又は2個の画像を入力して近傍処理のみからなる画像処理を行うような画像記憶手段12、色情報生成手段41、エッジ情報生成手段14、エッジ情報形成手段15、位置/大きさ検出手段17、位置/大きさ/傾き検出手段44、領域正規化手段27、マスク手段40、及び画像保持手段39について説明してきた。しかしながらパターンマッチング手段38は非常に多数の画像を用いなければならない。そこで以下ではパターンマッチング手段38で用いる近傍処理を示しながら、データ処理装置110によってパターンマッチング手段38を実現する方法について説明する。
まず1つの画像をxとし、n個のテンプレート画像146をy1、y2…yh…ynとする。自然数gを用いると、マッチング結果画像147のi行j列のマッチング結果δij1は、数式70に従って画像xのi行j列の画素を、テンプレート画像146のi行j列列の画素及びそのq近傍を比較し、画像xのi行j列の画素に最も似ている画素を有するテンプレート画像146の番号を指し示す。なおマッチング結果画像147は単帯域画像となるので、便宜上帯域数1の画像として取り扱うことにする。したがってマッチング結果δij1の第3添字は1となっている。またq=0の場合は、q近傍には1つの画素も含まれないとする。
第54図に示すように、データ処理装置110によって実現されるパターンマッチングが、テンプレート画像146のうち入力画像に最も似ている画像の番号を示すマッチング結果から構成されるマッチング結果画像147を生成するために、格子状に配列された配列演算ユニット100は同期して並列に動作する。格子上i行j列に配置された配列演算ユニット100をAOUijとすると、AOUijのアルゴリズムは第55図のようになる。
ステップ2901で、AOUijを格子上のi行j列に配置する。これは論理的であれ物理的であれ、AOUijの近傍を決定するために必要である。
ステップ2902で、AOUijの近傍や変数の初期値を設定する。近傍の設定においては、前記各関数で使う近傍サイズqを個別に決めても良いし、全部を統一しても良い。本発明のデータ処理装置110が生成したマッチング結果画像147の正確さを上げるためには近傍サイズqを全て大きな値に設定することが望ましい。しかしながらマッチング結果を更新するための計算時間の制約や、入力画像のサイズなどにより、パターンマッチングは必要に応じて適宜近傍サイズを変えることで対処することができる。なお、このステップにおいて、事前に用意された複数のテンプレート画像146のi行j列の画素及びそのq近傍の全画素に対する初期設定も行われるものとする。
ステップ2903で、順次入力画像が無くなったかどうか判断する。もし入力画像が無ければ(ステップ2903:YES)、アルゴリズムを終了する。もし入力画像があれば(ステップ2903:NO)、ステップ2904に移行する。ただし特定の画像サイズのみに対して配列演算ユニット100を実装する場合には、無限ループにしても良い。
ステップ2904で、入力画像のi行j列の画素を帯域数分入力する。このためAOUijは少なくとも帯域数分の画像データを記憶するメモリ102を必要とする。
ステップ2905で、入力画像とテンプレート画像146からマッチング結果画像147のマッチング結果δij1を計算する。マッチング結果は入力画像に最も近いテンプレート画像146の番号を表す帯域画素値となる。
ステップ2906で、マッチング結果画像147の帯域画素値を出力する。その後ステップ2903に戻る。
これにより、配列演算ユニット100から構成されるデータ処理装置110を用いて、パターンマッチング手段38は入力画像からマッチング結果画像147を生成することができる。なお、入力画像がテンプレート画像146に追加される場合、 ステップ2906の後に、必要な局所処理が実行されるものとする。
ここまでは配列演算ユニット100から構成されるデータ処理装置110を用いて、近傍処理のみからなる画像処理を行う方法について説明してきた。以下では配列演算ユニット100から構成される データ処理装置110を用いて、近傍処理のみで実現される物体/背景分離手段16について説明する。
まず非線形振動子は一般に引き込み現象を起こす。この引き込み現象とは、リミットサイクルやアトラクタなどのような周期的挙動において、異なる周期を持つ非線形振動子が相互作用して簡単な定数比の周期で振動するよう制約される現象である。このとき1つの非線形振動子の振動を変化させると他の非線形振動子の振動も合わせて変化するので、 これらの非線形振動子は同期している。しかも非線形振動子の相互作用を調整することにより、お互いの振動の位相差を極力小さくさせたり大きくさせたりできる。そこでこの相互作用を操作すると、非線形振動子の一群を、異なる位相を持つ複数のグループに分割することができる。物体/背景分離手段16はこのような非線形振動子の引き込み現象を利用して、エッジ情報画像中のエッジ情報を境界とするように物体と背景を分離して、物体領域141を表す物体領域画像142を生成する。なお、ここでは非線形振動子としてファン・デル・ポールを用いた場合を例に説明する。
まず、格子状に配列した非線形振動子から構成される 非線形振動子ネットワークにおいて、i行j列にある非線形振動子をωijとすると、非線形振動子ωijのq近傍にある非線形振動子の集合Ωij(q)は数式71によって表される。ただしqは4、8、24、48、80、120、(2r+1)2−1と続く数列であり、rは自然数である。なおネットワークサイズをはみ出した非線形振動子が近傍集合Ωij(q)に含まれる場合には、非線形振動子ωijを代用するものとする。これにより辺縁処理は自動的に行われる。したがって近傍集合Ωij(q)の要素の数は常にqとなる。なおこのことから判る通り、非線形振動子ネットワークは単帯域画像と同じ扱いになる。表現を簡単にするため、非線形振動子ネットワークでは添字は幅方向と高さ方向の2つのみを使う。
次に、非線形振動子はqa近傍に含まれる近傍集合Ωij(qa)にある非線形振動子との間で数式72に従い計算される結合値τijklによって結合される。なお対数表を用いない場合には数式73による近似も可能である。またμ、νは適当な正の定数である。
勿論、νは定数であるので、νの逆数を用いれば、数式72における除算は乗算に変更される。しかも結合値τijklが非負の実数しか取らないならば、関数sinc(x)は常に1であっても良い。
非線形振動子ネットワークの全ての非線形振動子が完全に同位相で同期した場合、プロセッサ101で計算する限り、 非線形振動子ωijは永久に同位相のまま動作し続けてしまう。そこで外乱ρijを与えればこのような状態を回避することができる。外乱としては疑似乱数を用いることもできるが、外部から濃淡画像を入力することにより、数式74のような簡単な式で求めても十分である。なおζ’ijはこの濃淡画像のi行j列の帯域画素値を表す。またκは適当な正の定数である。
非線形振動子ωijが近傍集合Ωij(qa)の非線形振動子ωklと同期するために、数式75に従い近傍入力合計σijを計算する。なおζijはエッジ情報画像のi行j列のエッジ情報の有無を表す。エッジ情報があれば1とし、なければ0とする。
ファン・デル・ポール非線形振動子ωijを構成する2つのパラメータφijとψijは数式76及び77に従って計算される。なおγ、εは適当な正の定数である。
非線形振動子を物体領域141と背景領域に分離するためには全ての非線形振動子の位相のずれを計算する必要があるが、単純に物体領域141と背景領域の2つに分離するだけであるので、パラメータψijがしきい値θ以上か未満かで位相ずれを計算する。物体領域141と背景領域を分離した結果を出力する出力λijは数式78によって求められる。なおθは適当な正の定数である。
エッジ情報が物体と背景を分離するのに不十分であった場合にはエッジ情報を補間しなければならない。そのために非線形振動子ωijのqb近傍にある非線形振動子の集合Ωij(qb)中でいくつの非線形振動子が位相ずれを起こしているか求める必要がある。そこで数式79によって輪郭パラメータηijを計算する。
この結果を基にエッジ情報の補間割合を示す境界パラメータξijを数式80によって計算する。なおα、β、ηmin、ηmaxは適当な正の定数である。
ここでは非線形振動子としてファン・デル・ポールの場合を説明したが、この他にブラッセレータ及びintegrate−and−fire型振動子のようなリミットサイクルで安定する非線形振動子や、ローレンツアトラクタ及びレスラー方程式のアトラクタを 発生するカオス振動子など、引き込み現象を起こす任意の非線形振動子でも動作可能である。その場合はパラメータφijとψijを各々の非線形振動子のパラメータで置き換えるなり追加すれば良い。その際に少なくとも1つのパラメータに近傍入力合計σijと外乱ρijが加えられるだけである。
数式71から数式80までを用いることにより、物体/背景分離手段16を実装することができるデータ処理装置110の全ての配列演算ユニット100のアルゴリズムを記述することができる。以下では、データ処理装置110中の任意の配列演算ユニット100のアルゴリズムを用いて、物体/背景分離手段16について説明する。
第56図に示すように、データ処理装置110によって実現される物体/背景分離手段16が、三角形のエッジ情報151及びこの三角形のエッジ情報151に対する重複情報131を用いて三角形の内側領域152と三角形の外側領域153に分離するために、格子状に配列された配列演算ユニット100は同期して並列に動作する。格子上i行j列に配置された配列演算ユニット100をAOUijとすると、AOUijのアルゴリズムは第57図のようになる。
ステップ1601で、AOUijを格子上のi行j列に配置する。
ステップ1602で、数式72及び73に基づいて近傍同士ωijとωi1を結合値τijklで接続する。
ステップ1603で、非線形振動子のパラメータφijとψijに適当な初期値を設定する。
ステップ1604で、順次入力される形成エッジ情報画像115が無くなったかどうか判断する。もし形成エッジ情報画像115が無ければ(ステップ1604:YES)、アルゴリズムを終了する。もし形成エッジ情報画像115があれば(ステップ1604:NO)、ステップ1605に移行する。ただし特定の帯域数及び画像サイズのみに対して配列演算ユニット100を実装する場合には、無限ループにしても良い。
ステップ1605で、形成エッジ情報画像115及び重複情報画像132のi行j列の画素を帯域数分入力する。これは、AOUijが形成エッジ情報画像115及び重複情報画像132のi行j列の画素を一括して処理するためである。このためAOUijは少なくとも帯域数分の画像データを記憶するメモリ102を必要とする。
ステップ1606で、形成エッジ情報画像115のi行j列の画素と重複情報画像132のi行j列の画素を分離し、それぞれζij及びζ’ijとする。これは、AOUijが形成エッジ情報画像115のi行j列の画素と重複情報画像132のi行j列の画素を 各々独立した画像の画素として処理するためである。もし形成エッジ情報画像115のi行j列の画素と重複情報画像132のi行j列の画素が初めから分離されて入力されていれば、それぞれζij及びζ’ijとするだけである。
ステップ1607で、重複情報131ζ’ijから数式74に従って外乱ρijを計算する。
ステップ1608で、近傍集合Ωij(qa)中の非線形振動子ωklがある配列演算ユニット100のAOUklからζkl、ξkl、ψklを入力して、合計値σijを数式75に従って計算する。
ステップ1609で、非線形振動子のパラメータφij、ψijを数式76及び77に従って計算する。即ち、これらの数式に示す微分方程式をルンゲ・クッタ法で解く。
ステップ1610で、非線形振動子の出力λijを数式78に従って計算する。ここで、ψij≧θであればλij=1とし、それ以外であればλij=0とする。
ステップ1611で、近傍集合Ωij(qb)中の非線形振動子ωklがある配列演算ユニット100のAOUklからλklを入力して、輪郭パラメータηijを数式79に従って計算する。
ステップ1612で、境界パラメータξijを数式80に従って計算する。即ち、この数式に示す微分方程式を差分法若しくはルンゲ・クッタ法で解く。
ステップ1613で、ステップ1608からステップ1612までの繰り返し回数を表す分離回数が指定回数に達したかどうか判断する。もし分離回数が指定回数に達していなければ(ステップ1613:NO)、ステップ1608に戻る。もし分離回数が指定回数に達していれば(ステップ1613:YES)、ステップ1614に移行する。
ステップ1614で、物体領域画像142の帯域画素値となる 非線形振動子の出力λijを出力する。その後ステップ1604に戻る。
なおステップ1613での分離回数を求めるには、次のような方法を用いることができる。物体/背景分離手段16では、画像サイズが一定であれば非線形振動子の初期状態に関わらず おおよそ全ての形成エッジ情報114において ある一定時間で分離が終了するので、事前にこの時間を計っておいてステップ1608からステップ1612までの 繰り返し回数を求めておけば良い。これは非線形振動子の初期状態が一定の範囲内にあれば、引き込み現象により非線形振動子が同期するまでの時間は あまり大差がないからである。
このように非線形振動子を計算するだけで、三角形のエッジ情報151を用いて三角形の内側領域152と三角形の外側領域153を 分離することができるのは、非線形振動子の性質である引き込み現象を利用しているからである。つまり、2つの非線形振動子を正の結合値で結合した場合は同位相になろうとし、負の結合値で結合した場合は位相差が極力大きくなろうとする。この性質を用いると、格子状に並んだ非線形振動子を近傍同士正の結合値で結合することで、 直接結合していない非線形振動子同士が同位相になる。さらに形成エッジ情報114を挟む画素の場所にある 非線形振動子同士を負の結合値で結合すると、エッジ情報の両側がお互いに位相を極力ずらし合う。このようにすることで、全ての非線形振動子を結合することもなく三角形のエッジ情報151の内側と外側とで各々異なる位相集合ができる。したがって物体/背景分離手段16は 第56図のように三角形の内側領域152と三角形の外側領域153に分離する。このとき三角形の内側領域152と三角形の外側領域153の位相差は90度を越えて可能な限り180度に近づき、三角形と背景領域が分離できる。
ここで重要なことは、本実施形態では、形成エッジ情報114が得られる度に次に示すような方法で 結合値を擬似的に変更していることである。まず数式72及び73で定めたように、非線形振動子ωklを非線形振動子ωijに結合するための結合値をτijklとする(ステップ1602参照)。形成エッジ情報114のうちζijとζklは共に、エッジがある場合には1、ない場合には0である。形成エッジ情報114のうちζijとζklを入力したら(ステップ1605参照)、配列演算ユニット100のAOUklからAOUijに形成エッジ情報114ζklが転送され、AOUijでは結合値τijkl(1−ζkl)を計算して結合値τijklの代用とする(ステップ1608参照)。この代用された結合値τijkl(1−ζkl)に対して境界パラメータξijが0から1までの倍率として作用する(ステップ1608参照)。
第58図に示す通り、形成エッジ情報114が破線状態の三角形のエッジ情報154となった場合には破線の補間をする必要がある。まず初めに破線状態の三角形のエッジ情報154を用いてシステムを動作させる(ステップ1605参照)と、 破線状態の三角形のエッジ情報154の内側と外側で位相差がおよそ90度を越えるようになるが、三角形の内側と外側の境界部分は不明確である。そこで各AOUijが非線形振動子の出力λijを計算する(ステップ1610参照)。この出力λijが1の場合、近傍の非線形振動子のうちλijklが1である非線形振動子をωklとすると、パラメータψijとψklが共にθ以上となる。つまりλijとλklはおよそ同位相であり、θが正値であれば最悪でも位相差が90度を越えることはない。この位相差の最大値はθの値によって決まり、λijとλklが共に1となる範囲でθを大きくしていくと、この位相差は0度に近づいていく。したがってλijとλklと用いると、近傍の非線形振動子うち およそ同位相であるものの数を表す輪郭パラメータηijは数式79に従って計算される (ステップ1611参照)。続いてこの輪郭パラメータηijが近傍全体のうち、およそ半分であれば結合値の倍率である境界パラメータξijを数式80に従って減少させ、それ以外であれば数式80に従って増加させる(ステップ1612参照)。例えば、8近傍182の場合は3から5の間であれば数式80に従って境界パラメータを減少させるとよい。この過程を繰り返し動作させ続けると、第58図に示す破線状態の三角形のエッジ情報154が与えられた場合、破線三角形の内側領域155と破線三角形の外側領域156に分離される。
第59図に示す通り、2つの三角形が重なりあっている場合は、前方の三角形のエッジ情報157と後方の三角形のエッジ情報158が得られる。このとき前方三角形の内側領域159と後方三角形の内側領域160と二重三角形の背景領域161の3つの領域の非線形振動子の位相がお互いにずれることにより、3つの領域に分離される。また第60図に示す通り、2つの重なった円形のエッジ情報162が破線であっても、前方円形の内側領域163と後方円形の内側領域164と二重円の背景領域165の3つに分離される。
これにより、配列演算ユニット100から構成されるデータ処理装置110を用いて、物体/背景分離手段16は形成エッジ情報画像115の形成エッジ情報114を境界として物体領域141と背景領域を分離することができる。なお、分離された複数の領域は出力λijによって時間の経過と共に順次取り出されるが、配列演算ユニット100は非線形振動子の位相を計算することにより、分離された複数の領域を位相グループとして一度に出力することができる。
さて、ここまでは主に視覚装置2のアルゴリズムについて説明してきた。そこで以下では、配列演算ユニット100のアーキテクチャ、特にLSIの回路設計について説明する。
まず配列演算ユニット(ARRAY OPERATION UNIT)100は、入力画像の1つの画素とその近傍画素を用いることにより、出力画像の1つの画素を生成する。そこで第11図に示すように、配列演算ユニット100を入力画像のサイズに合わせて格子状に配列することにより、データ処理装置110は入力画像から出力画像を生成することができる。なお第11図において、配列演算ユニット100をAOUと略記する。次に配列演算ユニット100は専用ハードウェアによって実装されても良いし、汎用コンピュータ上でソフトウェアによって実装することもできる。つまりデータ処理装置110が入力画像から出力画像を生成することができれば、配列演算ユニット100の実装手段は制限されない。以下では、配列演算ユニット100が専用ハードウェアによって実装された場合について説明した後、仮想配列演算ユニット(VIRTUAL ARRAY OPERATION UNIT)105が専用ハードウェアによって実装された場合について説明する。
配列演算ユニット100は第61図に示す通り、 画像処理における数式を計算するためのプロセッサ(PROCESSOR)101と、数式で使われる全てのパラメータ、定数、関数及びオペレータを記憶するためのメモリ(MEMORY)102と、近傍の配列演算ユニット100と通信するためのコントローラ(CONTROLLER)103から構成され、プロセッサ101はアドレスバス51で指定したアドレス(ADDRESS)によりメモリ102及びコントローラ103の任意のメモリ素子及びレジスタを選択することができる。またプロセッサ101はデータバス52を介してメモリ102及びコントローラ103と双方向に通信できるように接続され、アドレスバス51で指定された任意のメモリ素子及びレジスタのデータ(DATA)にアクセスすることができる。コントローラ103が1つ以上の入力画素から構成される前入力データ群(FRONT INPUT DATA SET)を入力すると、プロセッサ101は前入力データ群をメモリ102に記憶させる。またコントローラ103は、プロセッサ101によって計算された メモリ102中の計算データ(CALCURATION DATA)を隣接する配列演算ユニット100に送信すると共に、プロセッサ101は、コントローラ103が隣接する配列演算ユニット100から受信した計算データをメモリ102に記憶させる。さらに必要ならば、プロセッサ101はこの計算データを、この計算データを送信した配列演算ユニット100とは別の配列演算ユニット100に転送する。最終的にコントローラ103は、出力画像の画素を結果データ(RESULT DATA)として出力する。
このように配列演算ユニット100の各々にコントローラ103を搭載する理由は、配列演算ユニット100同士が通信している間にプロセッサ101が動作できるので、プロセッサ101は通信による待ち時間中にも計算することができて高速処理が実現できるからと、近傍の配列演算ユニット100の数を変化させてもハードウェアを変更する必要もないからと、コントローラ103が画像の辺縁処理、つまり画像中の縁の画素に対する例外処理を自動的に行えるので、プロセッサ101のプログラムは辺縁処理をする必要がなくなり極めて単純になるからである。
コントローラ103のブロック図は第62図に示す通りである。アドレスバッファ(ADDRESS BUFFER)53は アドレスバス(ADDRESS BUS)51を介してプロセッサ101からアドレス(ADDRESS)を受取り、アドレスデコーダ(ADDRESS DECODER)54によって各レジスタ及びその他の機能ブロックを選択する。データバッファ(DATA BUFFER)55はデータバス(DATA BUS)52を介してプロセッサ101からデータ(DATA)を受取り、アドレスデコーダ54で選択されたレジスタと内部データバス56を介して排他的に通信する。通信方向は読み出し(READ)によって指定される。アドレスが フラグレジスタ(FLAG REGISTER)57を 指定した場合、データはフラグレジスタ57に記憶され、フラグデコーダ(FLAG DECODER)58によってデコードされ、複数信号(SIGNALS)として隣接する配列演算ユニット100に送信される。なお複数信号の詳細は第63図及び第64図で示す。複数信号はフラグエンコーダ(FLAG ENCODER)59によって受信され、 解析された後にステータスレジスタ(STATUS REGISTER)60に記憶され、また受領(RECEIVE)(出力)として送信元の配列演算ユニット100に返信される。受領(出力)は複数信号の送信元のフラグエンコーダ59で受信され、結果として複数信号の送信完了が確認される。アドレスによってステータスレジスタ60が選択されると、ステータスレジスタ60の内容がデータバス52を介してデータとしてプロセッサ101に送信される。1つ以上の入力画像(INPUT IMAGE) に対応した1つ以上の前入力送達(FRONT INPUT SEND)をフラグエンコーダ59が受信すると1つ以上の入力画像からなる前入力データ群(FRONT INPUT DATA SET)が必要な記憶容量分用意された前入力データレジスタ(FRONT INPUT DATA REGISTER)61に読み込まれる。アドレスによって前入力データレジスタ61が選択されると、前入力データレジスタ61の内容がデータとしてプロセッサ101に送信される。プロセッサ101が計算を完了したら、アドレスによって 結果データレジスタ(RESULT DATA REGISTER)62 が選択され、結果データレジスタ62が結果データ(RESULT DATA)を読み込む。これと同時に、フラグエンコーダ59が結果送達(RESULT SEND)を送信する。
近傍の配列演算ユニット100が計算データを受信できるようになったら、プロセッサ101は出力データレジスタ(OUTPUT DATA REGISTER)63のアドレスに計算データを書き込み、コントローラ103はこの計算データを出力データレジスタ63に格納する。その後、コントローラ103は、隣接する全ての配列演算ユニット100にこの計算データを送信する。上側の配列演算ユニット100から複数信号(SIGNALS)を受信したら既に上側の配列演算ユニット100から受信している計算データを上入力データレジスタ(UPPER INPUT DATA REGISTER)64に格納する。その後、アドレスにより上入力データレジスタ64が選択されたら、上入力データレジスタ64の計算データがプロセッサ101に出力される。下側、左側、右側の配列演算ユニット100から複数信号を受信した場合も同様であり、下入力データレジスタ65、左入力データレジスタ66、右入力データレジスタ67が同様に動作する。
各種バッファ、各種レジスタ及びアドレスデコーダ54の各ブロックは汎用的な電子回路である。フラグデコーダ58及びフラグエンコーダ59はそれぞれ具体的には第63図及び第64図に示すような入出力信号を有する。
種別(TYPE)は出力データレジスタ(OUTPUT DATA REGISTER)63に読み込まれた内容の種類を1ビット以上で表す。このビット数は、配列演算ユニット100が転送すべき全ての計算データを区別できるように決定される。カウント−X(COUNT-X)及びカウント−Y(COUNT-Y)は各々1ビット以上の符号なし整数 であり、それぞれ二次元格子状に配列された配列演算ユニット100の間の水平方向の転送回数及び垂直方向の転送回数を示す。配列演算ユニット100が計算データを最初に送信する場合にはカウント−X及びカウント−Yは0となる。配列演算ユニット100が計算データを水平方向に転送する毎に、カウント−Xに1が加算され、配列演算ユニット100が計算データを垂直方向に転送する毎に、カウント−Yに1が加算される。プロセッサ101が 上下左右のうちどの方向に出力データレジスタ63の内容を送信するかをフラグレジスタ57の送達フラグ(SEND FLAG)に指定した後で、出力データレジスタ63を指定するアドレスデコーダ54の中央デコーディング(CENTRAL DECODING)をフラグデコーダ58が受信すると、フラグデコーダ58が 送達(SEND)を送達フラグの指定方向に合わせて出力する。送達フラグは4ビットで表される。配列演算ユニット100が計算データを上側に転送する場合はプロセッサ101が送達フラグに1000を設定し、下側に転送する場合は0100を設定し、左側に転送する場合は0010を設定し、右側に転送する場合は0001を設定する。また配列演算ユニット100が計算データを 四方の配列演算ユニット100に送信する場合にはプロセッサ101が送達フラグに1111を設定する。
この他に、結果データレジスタ62に結果データが読み込まれると同時にフラグデコーダ58は、結果デコーディング(RESULT DECODING)を受信し、結果送達(RESULT SEND)を送信する。
フラグエンコーダ59は四方の配列演算ユニット100のうちいずれかからでも送達(入力)を受信したら、直ちに受信方向に受領(出力)を1にして送信する。その後フラグエンコーダ59は 受信方向の計算データの種別、カウント−X及びカウント−Yを入力し、その部分のステータスレジスタ60の内容を更新する。送信元の配列演算ユニット100のフラグエンコーダ59では 受領(入力)が1になったら ステータスレジスタ60の受領ステータス(RECEIVE STATUS)を更新する。これにより各配列演算ユニット100ではプロセッサ101がステータスレジスタ60の受領ステータスを検査するだけで、どの入力データレジスタに有効な計算データが記憶されているか判断することができる。そこで例えば右入力データレジスタ67に 計算データが読み込まれていれば、プロセッサ101がアドレスを指定することにより右入力データレジスタ67から計算データを読み込むことができる。さらにアドレスデコーダ54から右デコーディング(RIGHT DECODING)が フラグエンコーダ59に送信され、受領ステータスのうち右方向が0に戻され、右側に向いた受領(出力)が0として送信される。上下左側の場合も同様に動作する。
この他に、フラグエンコーダ59が1つでも入力画像用の前入力送達を受信したら、ステータスレジスタ60のうち 受信した前入力送達に対応する入力画像用の前入力送達ステータス(FRONT INPUT SEND STATUS)を1にする。またプロセッサ101が入力画像用の前入力データレジスタ61から計算データを読み込むとき、アドレスデコーダ54が フラグエンコーダ59に前デコーディング(FRONT DECODING)を送信し、受信した前入力送達に対応する前入力送達ステータスを0にする。プロセッサ101はステータスレジスタ60の内容を読み込むことにより、前入力データレジスタ61に最新の入力画像が記憶されているかどうか判断することができる。
なおこの配列演算ユニット100は、主に1つ以上の入力画像から1つの出力画像を生成することを前提に記述したが、 用途に応じては計算途中の計算データを出力できるように回路が変更される必要がある。 その際には、 出力すべき結果データの数だけ フラグデコーダ58の結果送達を増やし、結果データレジスタ62に読み込まれた結果データに対応する結果送達のみを1にするようにプログラムが変更されるだけで良い。
以下では、具体的な回路図を用いて、フラグデコーダ58、フラグレジスタ57、フラグエンコーダ59及びステータスレジスタ60について説明する。
フラグレジスタ57に 型番74LS377のデジタル回路402が用いられた場合、フラグデコーダ58及びフラグレジスタ57の回路図は第65図のようになる。ただし書き込み(WRITE)はクロック信号(CLK)と同期しており、さらに書き込みが立ち上がり時に、フラグレジスタ57は内部データバス56を介してフラグを格納するものとする。また第65図では、結果送達に関する回路が省略されている。第65図では、書き込みと中央デコーディングの両方がアクティブになってから1クロック後に 送達(出力)が1クロックの時間だけ出力され、一方でフラグレジスタ57がフラグを格納したら、計算データの種別、カウント−X及びカウント−Yを直ちに出力する。もしフラグデコーダ58の設計者が 送達(出力)を送信するタイミングを変更したければ、送達用フリップフロップ81の数を変更するか、又は送達用フリップフロップ81のトリガーの論理を反転するだけで良い。
ステータスレジスタ60に型番74ALS573のデジタル回路402が用いられた場合、フラグエンコーダ59及びステータスレジスタ60のブロック図は第66図のようになる。ただし読み込み(READ)はクロック信号と同期しており、さらに読み込みがアクティブであり、かつクロック信号が立ち上がり時に、プロセッサ101は 内部データバス56を介してステータスを読み込むものとする。また第66図では、前入力送達に関する回路が省略されている。4近傍の配列演算ユニット100に対する入力端子にはプルダウン抵抗が取り付けられている。左右の配列演算ユニット100の各々から受信した 送達(入力)、計算データの種別、カウント−X及びカウント−Yは水平方向用ステータス回路82に入力され、上下の配列演算ユニット100の各々から受信した送達(入力)、計算データの種別、カウント−X及びカウント−Yは垂直方向用ステータス回路83に入力される。水平方向用ステータス回路82及び垂直方向用ステータス回路83が出力した4つの受領(出力)は、4近傍の配列演算ユニット100から受信した4つの受領(入力)と共に1個のステータスレジスタ60に非同期に格納される。これにより、プロセッサ101はこのステータスレジスタ60からステータスを読み込むだけで、4近傍の配列演算ユニット100との通信状況を把握することができる。
右側の配列演算ユニット100に接続された配列演算ユニット100の 水平方向用ステータス回路82の回路図は第67図のようになる。もし水平方向用ステータス回路82が1である送達(入力)を受信すれば、送達入力用ラッチ回路85が非同期に送達(入力)を記憶する。これにより水平方向用ステータス回路82に右入力デコーディングが入力されるまで、 受領(出力)は1であり続ける。さらに水平方向用ステータス回路82は、 右側の配列演算ユニット100に1である受領(出力)を直ちに返信することができるので、右側の配列演算ユニット100は、クロック信号の半周期以内に1である送達(出力)を送信してから1である受領(入力)を受信することが可能となる。したがって右側の配列演算ユニット100では、プロセッサ101は、フラグレジスタ57に送達フラグを書き込んでからステータスレジスタ60から受領ステータスを読み込む間、待たなくても良い。また水平方向用ステータス回路82は複数のカウント用半加算器84を用いて受信したカウント−Xに1を加算すると共に、送達(入力)が1である間に計算データの種別、カウント−X及びカウント−Yがステータスレジスタ60に非同期に格納される。このとき計算データもこの送達(入力)を用いて右入力データレジスタ67に非同期に格納される。読み込み及びステータスレジスタ右デコーディングが共にアクティブになると、ステータスレジスタ60は内部データバス56を介して計算データの種別、カウント−X及びカウント−Yをプロセッサ101に出力する。なお左側の配列演算ユニット100に接続された水平方向用ステータス回路82の回路図では、右入力デコーディング及びステータスレジスタ右デコーディングの代りにそれぞれ左入力デコーディング及びステータスレジスタ左デコーディングが 用いられる。また垂直方向用ステータス回路83の回路図は、複数のカウント用半加算器84を用いて、受信したカウント−Yに1を加算する。
ここまではコントローラ103を1個しか備えていない配列演算ユニット100について説明してきた。しかしながら配列演算ユニット100が1個のコントローラ103しか備えていないと、転送効率が低下する可能性がある。そこで複数のコントローラ103を備えた配列演算ユニット100について説明する。
第68図に示すように、配列演算ユニット100は複数のコントローラ103を備えることができる。第68図の場合、配列演算ユニット100は対角線上に配置された5個のコントローラ103を備え、各々のコントローラ103は アドレスバス51及びデータバス52に接続されている。プロセッサ101が5個のコントローラ103を識別できるように、各々のコントローラ103のアドレスデコーダ54には異なるアドレスが割り当てられる。各々のコントローラ103は 前入力データレジスタ61及び結果データレジスタ62を備えているので、全てのコントローラ103は独立に前入力データ群を入力し、及び結果データを出力することができる。さらに各々のコントローラ103が、隣接する配列演算ユニット100の5個のコントローラ103のうち異なる1個と接続することにより、配列演算ユニット100は通信帯域を最大5倍まで広げることができる。 これにより、配列演算ユニット100が多数の計算データを転送する場合でも、コントローラ103の数を増やせば転送効率が低下しなくなる。
なお配列演算ユニット100が複数のコントローラ103を備える場合、プロセッサ101は全てのコントローラ103のステータスレジスタ60中のステータスを監視しなければならない。監視スケジューリングには主にラウンドロビン方式が用いられる。
ラウンドロビン方式では、コントローラ103が論理的に環状に並び、プロセッサ101が 環状に沿って順番にコントローラ103にアクセスする。もしコントローラ103が計算データを受信していれば、プロセッサ101はこの計算データをこのコントローラ103から読み込む。その後プロセッサ101は 次の順番のコントローラ103に移動する。したがって全てのコントローラ103は対等に扱われる。配列演算ユニット100が短時間に転送するデータ量に比べて コントローラ103の通信帯域が狭い場合、この方法は有効である。
この他に、コントローラ103に優先度という相異なる番号を付けて、プロセッサ101が 毎回最も高い優先度から順番にコントローラ103にアクセスする優先度方式を用いることもできる。配列演算ユニット100が短時間に転送するデータ量に比べてコントローラ103の通信帯域が広い場合、この方法は有効である。
一般に配列演算ユニット100は 少ない数のコントローラ103しか備えていないと考えられるので、データ処理装置110が局所並列画像処理を実行する場合、ラウンドロビン方式の方が優先度方式に比べて有利である。しかしながら 多量の計算データを転送しなければならない関数を含む局所並列画像処理をデータ処理装置110が高速に実行するために、配列演算ユニット100が十分な数のコントローラ103を備えた場合、残りの関数が4近傍又は8近傍182の計算データだけを参照するのであれば、ラウンドロビン方式の通信効率は下がってしまう。このような場合には優先度方式の方が有利である。勿論全てのコントローラ103及びプロセッサ101が 割り込み機能を実装すれば、プロセッサ101が 各々のコントローラ103のステータスレジスタ60中のステータスを 定期的に監視する必要はない。
さて、コントローラ103をLSI(大規模集積回路)の実装平面に並べた場合、主に、LSIの実装面積が膨大になること、 コントローラ103間の配線が複雑で長くなること、及びコントローラ103の数を容易に増やせないこと、 の3つが問題となる。しかしながら三次元LSI技術を用いると、LSI設計者はこれらの問題を容易に解決することができる。以下では三次元LSI技術を用いた配列演算ユニット100について説明する。
第69図に示すように、コントローラ103は三次元LSI技術を用いることにより配列演算ユニット100内で積み重ねられている。第69図の場合、5個のコントローラ103がプロセッサ101及びメモリ102の上に積み重ねられており、各々のコントローラ103は垂直に配線されたアドレスバス51及びデータバス52によってプロセッサ101及びメモリ102と接続されている。第69図から明らかなように、コントローラ103の数を増やしても、各層の実装面積は増大しないし、またコントローラ103は 同じ層内において隣接するコントローラ103と接続すれば良い。さらにLSI設計者は、コントローラ103の数を増やしたければコントローラ103を実装した層を必要な数だけ増やせば良く、しかもアドレスバス51さえ適切に設計されていれば、LSI設計者は下敷となる層に一切手を加える必要がない。当然のことながら各層のコントローラ103はアドレスデコーダ54以外全て同じ回路で構成されるので、新たに積み重ねる層のコントローラ103の設計は極めて簡単になる。
さて、第68図及び第69図に示すように、配列演算ユニット100が複数のコントローラ103を備えることにより、配列演算ユニット100は、隣接する配列演算ユニット100との間の通信帯域を広げられるばかりでなく、どのコントローラ103からどの計算データを受け取ったかということを識別できるようになる。そこで以下では、複数のコントローラ103を用いることにより、連続する複数の配列演算ユニット100を1つのグループにまとめ、しかもこのグループ中の配列演算ユニット100がプロセッサ101及びメモリ102を共有するデータ処理装置110について説明する。
まず、第70図に示すように、二次元格子状に配列された配列演算ユニット100は適当な大きさの矩形のグループにまとめられる。このグループを仮想配列演算ユニット105と呼ぶ。第70図の場合、仮想配列演算ユニット105は 4×4の配列演算ユニット100を1つのグループにまとめたものである。次に第61図、第68図及び第69図に示すように、仮想配列演算ユニット105はプロセッサ101、メモリ102、及び配列演算ユニット100の縦と横の個数の最大値以上のコントローラ103を備える。第70図の場合、仮想配列演算ユニット105は少なくとも4個のコントローラ103を必要とする。なお、コントローラ103の各々は第67図のような 水平方向用ステータス回路82を持つものとする。これらのコントローラ103には便宜上1から4までの番号が付けられるものとする。例えコントローラ103の数が4個を越えたとしても、これらのコントローラ103には1から4までの番号が付けられる。これにより特定の配列演算ユニット100に複数のコントローラ103が割り当てられることになる。さらに、第71図に示すように、配列演算ユニット100の通信路にも コントローラ103と同じように1から4までの番号が付けられる。ただし、上下と左右の各々の通信路に対して、向い合う番号が同じになるようにする。最後に、プロセッサ101が16個の配列演算ユニット100を実行できるようなプログラムがメモリ102に記憶される。ただし、配列演算ユニット100が 隣接する仮想配列演算ユニット105の配列演算ユニット100と通信する場合には、必ず通信路に付けられた番号と一致するコントローラ103のうち相異なる1個を介するようにプログラムが実装されるものとする。これにより、仮想配列演算ユニット105は、どの配列演算ユニット100からどの配列演算ユニット100に向けて計算データが送信されたのか識別することができる。
ところで仮想配列演算ユニット105はコントローラ103の数を増やしただけでは完全に複数の配列演算ユニット100を実装することができない。というのも、仮想配列演算ユニット105は、別の仮想配列演算ユニット105から前入力データ群を入力したり、別の仮想配列演算ユニット105に結果データを出力しなければならないからである。第68図のように コントローラ103が二次元平面上に実装される場合、もしコントローラ103の数が十分にあれば、計算データと同様にコントローラ103に番号を付けることにより、この問題はプログラムによって解決される。しかしながら第71図の場合でも、 コントローラ103は16個必要となる。したがって仮想配列演算ユニット105に含まれる配列演算ユニット100の数が増えた場合、この方法は非常に非効率となる。まして第69図のようにコントローラ103が積層される場合、前入力データ群及び結果データ用の通信路を確保することが非常に難しくなる。そこで以下では、コントローラ103の前入力データレジスタ61だけを変更することにより、この問題を解決する方法について説明する。
まず、コントローラ103が別のコントローラ103から前入力データ群の1つの前入力データとして結果データを、さらに前入力送達として結果送達を入力する場合を考える。このとき第72図に示すように、前入力データレジスタ61は、仮想配列演算ユニット105中の配列演算ユニット100の数と等しい数のレジスタから構成される前入力シフトレジスタ68と、前入力カウンタ69を備える。前入力カウンタ69は、レジスタの数を初期値とするダウンカウンタであり、前入力カウンタ69のカウント数が0になったときに、前入力カウンタ69は前入力ステータスを出力する。その後前入力データが入力されると、前入力カウンタ69は初期値に初期化される。第72図では、前入力シフトレジスタ68は16個のレジスタから構成されていて、前入力シフトレジスタ68に16個の前入力データが入力されると、前入力ステータスが出力される。次に、前入力シフトレジスタ68の各々のレジスタと前入力カウンタ69はトリガー信号として前入力送達を入力する。 さらに、アドレスデコーダ54は、アドレスをデコードして、前入力シフトレジスタ68のレジスタのうち1個を選択する。これにより、プロセッサ101が前入力シフトレジスタ68のうち適当なレジスタのアドレスを指定すると、各々のレジスタはデータバス52に前入力データを出力することができる。なお第72図では、アドレスデコーダ54の他の信号線は省略されている。そこで仮想配列演算ユニット105が16個の配列演算ユニット100の前入力データを一定の順番に出力すると、これらの前入力データは出力順に前入力シフトレジスタ68のレジスタに記憶される。したがって前入力カウンタ69が出力する前入力ステータスがステータスレジスタ60に記憶された時点で プロセッサ101が各レジスタにアクセスすれば、プロセッサ101は特定の配列演算ユニット100の前入力データを獲得することができる。
なお、第73図に示すように計算データを反時計回りに転送することにより、配列演算ユニット100は、計算データを効率良く転送することができる。勿論、配列演算ユニット100は、計算データを時計回りに転送しても良い。このとき、メモリ102及びプロセッサ101がスタック及び循環バッファなどを備えれば、配列演算ユニット100は予め転送すべき計算データだけをこのスタック及びこの循環バッファに蓄えることができる。したがって、配列演算ユニット100が 計算データをコントローラ103に書き込む際に、この配列演算ユニット100は、この計算データだけを短時間に参照することができる。 同様に、第74図に示すように、計算データを反時計回り及び時計回りに転送することにより、仮想配列演算ユニット105も、計算データを効率良く転送することができる。
さて、ここまでは、コントローラ103が計算データを転送する度に、プロセッサ101がこのコントローラ103から計算データを読み込んだり、又はこのコントローラ103に計算データを書き込んだりするような 幾つかの方法について説明してきた。 このような方法では、計算データを転送するために必要な計算をプロセッサ101がすることにより、1個のコントローラ103のハードウェア量は少なくなるので、配列演算ユニット100及び仮想配列演算ユニット105は、多数のコントローラ103を備えることができる。しかしながら、コントローラ103が計算データを転送する度に、プロセッサ101がこのコントローラ103と計算データを通信しなければならないので、プロセッサ101の通信時間が長くなるばかりか、プロセッサ101は、計算データの転送を終了するために、計算データの転送回数を判定しなければならない。そこで以下では、プロセッサ101がコントローラ103と計算データを通信する回数が少なく、しかもプロセッサ101が計算データの転送回数を判定しなくても良い方法について説明する。
第77図〜第80図に示す視覚装置2の実装形態では、配列演算ユニット100が備える2個以上のコントローラ103に対して連続した番号が割り当てられ、さらに番号が割り当てられた全てのコントローラ103の各々が、隣接する配列演算ユニット100のコントローラ103のうち、番号が1つだけずれているコントローラ103に計算データを送信できるように、複数の信号線が配線される。例えば、第77図〜第80図では、1個の配列演算ユニット100が4個のコントローラ103を備え、それぞれ0〜3の番号が割り当てられている。第77図は、全ての配列演算ユニット100の各々のコントローラ103が上側の配列演算ユニット100の4個のコントローラ103のうち、番号が1つだけ小さいものに計算データを送信することを表す。なお、0番のコントローラ103が受信した計算データは破棄されるものとする。 第78図は、 全ての配列演算ユニット100の各々のコントローラ103が下側の配列演算ユニット100の4個のコントローラ103のうち、番号が1つだけ大きいものに計算データを送信することを表す。なお、3番のコントローラ103が受信した計算データは破棄されるものとする。第79図は、全ての配列演算ユニット100の各々のコントローラ103が左側の配列演算ユニット100の4個のコントローラ103のうち、番号が1つだけ大きいものに計算データを送信することを表す。なお、3番のコントローラ103が受信した計算データは破棄されるものとする。第80図は、全ての配列演算ユニット100の各々のコントローラ103が右側の配列演算ユニット100の4個のコントローラ103のうち、番号が1つだけ小さいものに計算データを送信することを表す。なお、0番のコントローラ103が受信した計算データは破棄されるものとする。第77図〜第80図に示された計算データの流れに従って、各々のコントローラ103が計算データを転送することにより、この計算データの転送回数は3回以内になる。しかもプロセッサ101が 任意の番号のコントローラ103に計算データを書き込むことにより、この計算データはこのコントローラ103の番号に関連した回数だけ転送される。例えば第77図の場合、2番のコントローラ103に計算データが書き込まれたならば、この計算データは上側に2回だけ転送される。同様に第78図の場合、2番のコントローラ103に計算データが書き込まれたならば、この計算データは下側に1回だけ転送される。これにより、プロセッサ101が最初に計算データの転送回数を計算した後、このプロセッサ101は転送回数を判定する必要がなくなるばかりか、プロセッサ101が最初に計算データを1個のコントローラ103に書き込んだ後、 複数の上側の配列演算ユニット100の各々において、プロセッサ101はこの計算データを読み込むだけで良く、このプロセッサ101が再度この計算データを書き込む必要はない。つまり、各々の配列演算ユニット100のプロセッサ101は複数のコントローラ103へのアクセス回数を低減することができる。なお、第77図〜第80図には、複数の配列演算ユニット100が格子状に配列されているが、勿論、複数の仮想配列演算ユニット105が格子状に配列されている場合でも 同様である。また第81図に示すように、複数のコントローラ103が積層されている場合でも同様である。
ところで、第77図〜第80図に示された方法では、計算データは上下左右のうち1方向に決められた回数しか転送されない。そこで第73図〜第76図に示すような渦巻き状に反時計回り及び時計回りに計算データを転送するためには、 第82図に示すように、上下左右のうち2方向の転送が組み合わされば良い。なお、第82図は、48近傍の配列演算ユニット100に計算データを反時計回りに転送するために、この計算データを3個の右側の配列演算ユニット100に転送すると共に、3個の右側の配列演算ユニット100の各々において、この計算データを3個の上側の配列演算ユニット100に転送する場合を表している。このとき、破線で示されているように、3個の右側の配列演算ユニット100の各々において、コントローラ103が受信した計算データが3番のコントローラ103に転送されている。この転送のことを再転送(retransmit)と呼ぶ。なお、この再転送は一般にプロセッサ101によって実行される。この理由は、計算データが転送される近傍のサイズによってコントローラ103が受信した計算データが書き込まれるコントローラ103の番号は変化する、つまり、再転送の組み合せの数は最大でコントローラ103の数の自乗になるからである。加えて、配列演算ユニット100が多数のコントローラ103を備えたとしても、プロセッサ101は任意のコントローラ103間で計算データを再転送することができる。そこで第83図に示すように、複数(ここでは8個)のコントローラ103を4個ずつ2組に分け、それぞれ0〜3及び0’〜3’の番号を割り当てるものとする。さらに0〜3番のコントローラ103を転送用に割り当て、0’〜3’番のコントローラ103を再転送用に割り当てるものとする。勿論、多数のコントローラ103を適当な数の組に分け、さらにそれぞれの組を転送用及び再転送用に割り当てても良い。このとき、プロセッサ101が、転送用のコントローラ103が受信した計算データを再転送用のコントローラ103に再転送することにより、計算データは転送用のコントローラ103を介して6個の水平方向の配列演算ユニット100及び6個の垂直方向の配列演算ユニット100に転送され、その後 再転送用のコントローラ103を介して48近傍の配列演算ユニット100に転送される。この方法では、複数の再転送前の計算データ及び複数の再転送後の計算データが1方向に転送される際に、複数の再転送前の計算データ及び複数の再転送後の計算データが、それぞれ転送用のコントローラ103及び再転送用のコントローラ103によって別々に転送されるので、プロセッサ101は効率よく再転送を実行することができる。
さて、ここまではコントローラ103間の計算データの流れと再転送について説明してきた しかしながら第62図に示すような コントローラ103では、このような転送方法を実行することはできない。そこで以下では、計算データの転送機能を有する新たなコントローラ103について説明する。なお、内部データバス56の幅は自由に決定することができるが、以下では説明を簡単にするために、内部データバス56の幅が16ビットであるものとする。また、以下では配列演算ユニット100を用いて説明するが、特に指示がない限り、仮想配列演算ユニット105の場合でも同様である。
まず、第84図に示すように、コントローラ103は、アドレスバッファ53、データバッファ55、アドレスデコーダ54、4個の転送回路(TRANSMIT CIRCUIT)801、1個以上の前入力回路(FRONT INPUT CIRCUIT)802、1個以上の結果出力回路(RESULT OUTPUT CIRCUIT)803及び通信ステータスバッファ(COMMUNICATION STATUS BUFFER)804を含む。なお、信号x’は信号xの負論理を表し、太線は複数の信号線の束を表すものとする。このとき4個の転送回路801は、それぞれ下から上へ、上から下へ、右から左へ、及び左から右へ、計算データ及び計算ステータスを転送するものとする。したがって、第77図に示された計算データの流れを実現するためには、各々のコントローラ103のうち、下から上へ計算データを転送する転送回路801同士が接続される。同様に、第78図〜第80図の場合も、それぞれ上から下へ、左から右へ、及び右から左へ、計算データを転送する転送回路801同士が接続される。転送回路801の詳細は後で説明する。
次に、アドレスバッファ53、データバッファ55及びアドレスデコーダ54は従来と同様である。ただし、アドレスデコーダ54は必要に応じてデコーディング信号を生成するものとする。
次に、通信ステータスバッファ804は、第85図にしめすような、4個の転送回路801、前入力回路802 及び結果出力回路803が出力する、上下左右の各方向への送達ステータス、上下左右の各方向への受領ステータス、前入力ステータス、結果ステータスを内部データバス56に出力する。この通信ステータスバッファ804には、一般的なラインバッファが用いられる。なお、第85図から明らかなように、16ビット幅の内部データバス56の場合、通信ステータスバッファ804は前入力ステータス及び結果ステータスを それぞれ最大で7つまで増やすことができる。したがって、コントローラ103の設計者は、必要に応じて前入力回路802及び結果出力回路803を増やすことができる。
次に、第86図に示すように、前入力回路802では、前入力送達が立ち上がる度に、前入力データ入力レジスタ831が 複数(ここでは16個)の前入力データを順次記憶する。勿論、前入力送達が立ち下がる時に前入力データ入力レジスタ831が複数(ここでは16個)の前入力データを順次記憶することもできる。さらに前入力データカウンタ836が、前入力送達の立ち上がり回数を数え、この立ち上がり回数が一定の回数(ここでは16回)に達したら、カウント最小’が0として出力される。なお、第86図では、前入力データカウンタ836のカウンタ部分に 型番74LS169が用いられているが、勿論他のカウンタが用いられても良い。また、カウント最小’が0となると、前入力回路用コントローラ835によって複数(ここでは16個)の前入力データが 前入力データ出力レジスタ833に記憶される。これにより、さらに前入力データが入力されても前入力データ出力レジスタ833に記憶された複数の前入力データが変更されることはない。その後、前入力デコーディング0’が0になる度に、 前入力データ出力レジスタ833に記憶された複数の前入力データがシフトされ、前入力データラインバッファ834を介して1個ずつ内部データバス56に出力される。
ここで、前入力回路用コントローラ835の状態遷移図は第87図のようになる。以下、この状態遷移図について説明する。
状態841は待ち状態(01)であり、 前入力ステータスを0に設定し、 ロードを1に設定し、更新可能’を1に設定する。リセット’がアクティブであれば、状態841に移動する。またカウント最小’が0であれば、状態842に移行する。さもなくば、状態841に移行する。
状態842はロード状態(00)であり、前入力ステータスを0に設定し、ロードを1に設定し、更新可能’を0に設定する。 その後、状態843に移行する。
状態843はシフト準備状態(11)であり、前入力ステータスを1に設定し、ロードを0に設定し、更新可能’を1に設定する。前入力デコーディング0’が0であれば、状態844に移行する。前入力デコーディング1’が0であれば、状態841に移行する。さもなくば、状態843に移行する。
状態844はシフト中状態(10)であり、前入力ステータスを1に設定し、ロードを0に設定し、更新可能’を0に設定する。その後、状態843に移行する。
なお、各々の状態に割り当てられた番号は変更可能である。
また、第86図では、前入力データ入力レジスタ831が内部データバス56の幅に合わせて前入力データを入力しているが、勿論前入力データを1ビットずつ入力しても良い。この場合は、前入力データカウンタ836の最大カウント数が一定の回数(ここでは15回)と内部データバス56のビット数の積になる。このように前入力データを1ビットずつ入力することにより、LSI設計者は、視覚装置2を三次元LSIに実装する際に垂直信号線278の数を大幅に減らすことができる。したがってLSI設計者は、実装面積が大きいビアなどの数を減らすことができ、三次元LSIの実装が容易になる。
次に、第88図に示すように、結果出力回路803では 結果デコーディング0’が選択され、さらに書き込み’が立ち上がる度に、結果データ入力レジスタ851が内部データバス56を介して複数(ここでは16個)の結果データをシフトしながら記憶する。その後、結果デコーディング1’がアクティブになったり、さらに書き込み’が立ち上がるとき、結果ステータスが1になる。結果出力回路用コントローラ854は、結果データ入力レジスタ851から結果データマルチプレクサ852を介して結果データ出力レジスタ853に複数の結果データを移動させると共に、結果データマルチプレクサ852を介して結果データ出力レジスタ853中の複数の結果データを順番にシフトする。このとき結果送達が1と0を繰り返す。さらに結果データカウンタ856が、 結果データの出力回数を数え、この回数が一定の回数(ここでは16回)に達したら、結果ステータスが0として出力される。なお、第88図では、結果データカウンタ856のカウンタ部分に型番74LS169が用いられているが、勿論他のカウンタが用いられても良い。
ここで、結果出力回路用コントローラ854の状態遷移図は第89図のようになる。以下、この状態遷移図について説明する。
状態861は待ち状態(111)であり、結果リセット’を1に設定し、カウント可能’を1に設定し、更新可能’を1に設定する。リセット’がアクティブであれば、状態861に移動する。また結果ステータスが1であれば、状態862に移行する。さもなくば、状態861に移行する。
状態862はロード状態(110)であり、結果リセット’を1に設定し、カウント可能’を1に設定し、更新可能’を0に設定する。カウント最大’が0であれば、状態864に移行する。さもなくば、状態863に移行する。
状態863はシフト中状態(100)であり、結果リセット’を1に設定し、カウント可能’を0に設定し、更新可能’を0に設定する。カウント最大’が0であれば、状態864に移行する。さもなくば、状態863に移行する。
状態864はシフト終了状態(011)であり、結果リセット’を0に設定し、カウント可能’を1に設定し、更新可能’を1に設定する。
なお、各々の状態に割り当てられた番号は 変更可能である。
また、第88図では、結果データ出力レジスタ853及び結果データマルチプレクサ852が内部データバス56の幅に合わせて結果データをシフトしているが、勿論結果データを1ビットずつシフトしても良い。この場合は、結果データカウンタ856の最大カウント数が一定の回数(ここでは15回)と内部データバス56のビット数の積になる。このように結果データを1ビットずつ出力することにより、LSI設計者は、視覚装置2を三次元LSIに実装する際に垂直信号線278の数を大幅に減らすことができる。したがってLSI設計者は、実装面積が大きいビアなどの数を減らすことができ、三次元LSIの実装が容易になる。
さて、ここまでは、新たなコントローラ103のうち、転送回路801を除いた部分について説明してきた。以下では転送回路801について説明する。
第90図に示すように、各々の転送回路801は、正論理転送回路用コントローラ811a、正論理送達ラッチ812a、送達ステータス生成回路813、計算データ受信ラッチ814a、計算ステータス受信ラッチ814b、計算データラインバッファ815a、計算ステータスラインバッファ815b、計算データ送信レジスタ816a、計算ステータス送信レジスタ816b、計算データマルチプレクサ817a、及び計算ステータスマルチプレクサ817bを含む。なお、必要に応じて、入力端子にはプルアップ抵抗及びプルダウン抵抗が取り付けられるものとする。隣接する配列演算ユニット100の1個のコントローラ103から受信した計算データ及び計算ステータスは、送達(入力)がアクティブのときに、それぞれ計算データ受信ラッチ814a 及び計算ステータス受信ラッチ814bに記憶される。受領計算データデコーディング’がアクティブであり、かつ読み込み’がアクティブであるときに、この計算データは計算データラインバッファ815aを介して内部データバス56に出力される。また、受領計算ステータスデコーディング’がアクティブであり、かつ読み込み’がアクティブであるときに、この計算ステータスは計算ステータスラインバッファ815bを介して 内部データバス56に出力される。一方で、内部データバス56を介してプロセッサ101によって書き込まれた計算データ及び計算ステータスは、送達計算データデコーディング’がアクティブであり、かつ書き込み’が立ち上がるときに、それぞれ計算データ送信レジスタ816a 及び計算ステータス送信レジスタ816bに記憶される。計算データマルチプレクサ817aは、送達/転送スイッチに従って、計算データ受信ラッチ814a及び計算データ送信レジスタ816aの いずれかから計算データを選択し、隣接する配列演算ユニット100の1個のコントローラ103に送信する。計算ステータスマルチプレクサ817bは、送達/転送スイッチに従って、計算ステータス受信ラッチ814b及び計算ステータス送信レジスタ816bのいずれかから計算ステータスを選択し、隣接する配列演算ユニット100の1個のコントローラ103に送信する。このとき送達(出力)がアクティブになる。 正論理送達ラッチ812aは、送達(入力)がアクティブであるときに受領(出力)をアクティブにすると共に、受領ステータス及び転送ステータスを1に設定する。なお、受領計算ステータスデコーディング’がアクティブであるときに、受領ステータスは0になるが、受領計算データデコーディング’がアクティブであるときに、受領ステータスが0になっても良い。また転送リセット’がアクティブであるときに、転送ステータスは0になる。送達ステータス生成回路813は、計算ステータス送信レジスタ816bに計算ステータスが書き込まれたときに、 送達ステータスを1に設定する。なお、送達ステータス生成回路813は、計算データ送信レジスタ816aに計算データが書き込まれたときに、送達ステータスを1に設定しても良い。送達リセット’がアクティブであるときに、送達ステータスは0になる。正論理転送回路用コントローラ811aは、受領(入力)を入力して、送達(出力)を出力すると共に、送達ステータス及び転送ステータスを入力して、送信/転送スイッチ、送達リセット及び転送リセットを出力する。
ここで、正論理転送回路用コントローラ811aの状態遷移図は第91図のようになる。以下、この状態遷移図について説明する。
状態821は待ち状態(01100)であり、送信リセット’を1に設定し、転送リセット’を1に設定し、送達(出力)を0に設定し、送信/転送スイッチを0に設定する。リセット’がアクティブであれば、状態821に移動する。受領(入力)が0であり、かつ転送ステータスが1であれば、状態822に移行する。受領(入力)が0であり、かつ転送ステータスが0であり、かつ送信ステータスが1であれば、状態825に移行する。さもなくば、状態821に移行する。
状態822は転送開始状態(11110)であり、送信リセット’を1に設定し、転送リセット’を1に設定し、送達(出力)を1に設定し、送信/転送スイッチを0に設定する。その後、状態823に移動する。
状態823は転送中状態(11010)であり、送信リセット’を1に設定し、転送リセット’を1に設定し、送達(出力)を0に設定し、送信/転送スイッチを0に設定する。受領(入力)が0であれば、状態824に移行する。さもなくば、状態823に移行する。
状態824は転送終了状態(11000)であり、送信リセット’を1に設定し、転送リセット’を0に設定し、送達(出力)を0に設定し、送信/転送スイッチを0に設定する。その後、状態821に移行する。
状態825は送信開始状態(11111)であり、送信リセット’を1に設定し、転送リセット’を1に設定し、送達(出力)を1に設定し、送信/転送スイッチを1に設定する。その後、状態826に移動する。
状態826は送信中状態(11101)であり、送信リセット’を1に設定し、転送リセット’を1に設定し、送達(出力)を0に設定し、送信/転送スイッチを1に設定する。 受領(入力)が0であれば、状態827に移行する。さもなくば、状態826に移行する。
状態827は送信終了状態(10101)であり、送信リセット’を0に設定し、転送リセット’を1に設定し、送達(出力)を0に設定し、送信/転送スイッチを1に設定する。その後、状態821に移行する。
なお、各々の状態に割り当てられた番号は変更可能である。
第90図には、送達(入力)、送達(出力)、受領(入力)及び受領(出力)が正論理である転送回路801が示されているが、勿論第92図に示すように、送達(入力)、送達(出力)、受領(入力)及び受領(出力)は負論理であっても良い。 この場合、必要に応じて送達用インバータ818などを用いることにより、送達(入力)、送達(出力)、受領(入力)及び受領(出力)の論理が反転される。
さらに、第93図に示すように、 負論理送達ラッチ812b、計算データ受信ラッチ814a 及び計算ステータス受信ラッチ814bの代りに、それぞれ負論理送達レジスタ812c、計算データ受信レジスタ814c 及び計算ステータス受信レジスタ814dが用いられる。加えて、送達(入力)’が立ち上がったときに、受領(出力)’がアクティブになると共に、隣接する配列演算ユニット100の1個のコントローラ103から受信した計算データ及び計算ステータスがそれぞれ計算データ受信レジスタ814c 及び計算ステータス受信レジスタ814dに記憶される。
さて、ここまでは視覚装置2について説明してきた。そこで以下では、本発明の連動式カウンタ401の実施形態を挙げ、図面を参照して説明する。
まず、第96図に示す連動式カウンタ401の実施形態は、同期式カウンタ411、終り値判定用論理ゲート412及びイネーブル信号用論理ゲート416から構成されるカウンタ部分と、連動信号増幅用論理ゲート413、連動信号用ラッチ回路414及び連動信号用論理ゲート415から構成される連動部分と、から構成される。また第96図では、連動式カウンタ401が他の3つの連動式カウンタ401から連動信号BLK1’、BLK2’及びBLK3’を入力するものとする。なお、信号X’は信号Xの負論理を表すものとする。また第96図において、終り値判定用論理ゲート412にはANDゲートが用いられ、イネーブル信号用論理ゲート416及び連動信号用ラッチ回路414にはNANDゲートが用いられ、連動信号増幅用論理ゲート413にはNOTゲートが用いられ、連動信号用論理ゲート415にはORゲートが用いられているが、勿論他の論理ゲートが用いられても良い。
カウンタ部分では、同期式カウンタ411、終り値判定用論理ゲート412及びイネーブル信号用論理ゲート416が環状に配線される。すなわち、同期式カウンタ411はイネーブル信号Pを入力して、カウント数を出力する。終り値判定用論理ゲート412はカウント数を入力して、連動信号BLK0を出力する。イネーブル信号用論理ゲート416は少なくとも1つの入力端子に連動信号BLK0を入力して、イネーブル信号Pを出力する。
例えば第97図の場合、同期式カウンタ411は3つのJKフリップフロップを備え、これらのJKフリップフロップの出力QA、QB及びQCを用いて0から7までのカウント数を出力する。また、これらのJKフリップフロップはそれぞれ出力QA、QB及びQCの負論理出力QA’、QB’及びQC’も出力することができる。クロック信号はカウンタ用論理ゲート422cによって反転された後、分岐点D1及びD2において、3つのJKフリップフロップのクロック端子に分配される。これらのJKフリップフロップはクロック信号CLKの立ち上がりのエッジで動作する。分岐点E1において、イネーブル信号Pは左のJKフリップフロップのJ端子及びK端子に分配される。これにより、イネーブル信号Pの電圧がHighレベルであるとき、このJKフリップフロップのJ端子とK端子の両方の電圧がHighレベルになる。したがって、クロック信号CLKが立ち上がる度に、このJKフリップフロップの出力QA及びQA’の電圧が反転する。同様に、分岐点E2において、イネーブル信号Pは、カウンタ用論理ゲート422a及びbそれぞれの入力端子のうちの少なくとも1つに分配される。また分岐点Fにおいて、出力信号QAは カウンタ用論理ゲート422a及びbそれぞれの入力端子のうちの少なくとも1つに分配される。さらに出力信号QBは カウンタ用論理ゲート422bの入力端子のうちの少なくとも1つに分配される。カウンタ用論理ゲート422a及びbの出力端子は、それぞれ中央と右のJKフリップフロップのJ端子及びK端子に接続される。これにより、イネーブル信号Pの電圧がHighレベルであるとき、出力信号QAの電圧がHighレベルであれば、中央のJKフリップフロップのJ端子とK端子の両方の電圧が Highレベルになる。したがって、クロック信号CLKが立ち上がる度に、このJKフリップフロップの出力信号QB及びQB’の電圧が反転する。さらに、イネーブル信号Pの電圧がHighレベルであるとき、 出力信号QA及びQBの電圧が共にHighレベルであれば、 右のJKフリップフロップのJ端子とK端子の両方の電圧が Highレベルになる。したがって、クロック信号CLKが立ち上がる度に、このJKフリップフロップの出力信号QC及びQC’の電圧が反転する。つまり、イネーブル信号Pの電圧がHighレベルである場合、クロック信号CLKが立ち上がる度に、同期式カウンタ411が出力するカウント数は1つずつ増える。
さて、第96図において、終り値判定用論理ゲート412が連動信号BLK0を出力するために、終り値判定用論理ゲート412の複数(ここでは3つ)の入力端子に出力信号QA、QB及びQCが入力される。これにより、同期式カウンタ411が出力するカウント数が7であれば、出力QA、QB及びQCの電圧が全てHighレベルになるので、連動信号BLK0の電圧はHighレベルになる。分岐点U1において、連動信号BLK0はイネーブル信号用論理ゲート416の入力端子のうちの少なくとも1つに入力される。これにより、もし連動信号BLK0がLowレベルであれば、イネーブル信号PはHighレベルになる。したがって、カウント数が7に到達するまで同期式カウンタ411はカウント数を1つずつ増やし、カウント数が7に到達すると、同期式カウンタ411は停止する。
なお、第97図には、クロック信号CLKに同期した3つのJKフリップフロップから構成される2進3桁の同期式カウンタ411が示されているが、JKフリップフロップの数をN個用いることにより、2進N桁の同期式カウンタ411に変更することは容易である。またカウンタ用論理ゲート422a及びbが、 出力信号QA及びQBの代りに、それぞれ出力信号QA’及びQB’を入力することにより、同期式カウンタ411はダウンカウンタに変更される。
連動部分では、連動信号増幅用論理ゲート413が連動信号BLK0を増幅して、連動信号BLK0’を出力すると共に、 外部から入力される 連動信号BLK1’、BLK2’及びBLK3’に従い、連動信号用論理ゲート415及び連動信号用ラッチ回路414がイネーブル信号用論理ゲート416を制御する。すなわち、連動信号BLK0の電圧がHighレベルであれば、連動信号増幅用論理ゲート413は連動信号BLK0’の電圧をLowレベルにする。さもなくば、連動信号BLK0’の電圧はHighレベルである。また、複数(ここでは3つ)の連動信号用ラッチ回路414a〜414cの1つの入力端子に、それぞれ連動信号BLK1’、BLK2’及びBLK3’が入力されると共に、分岐点U2及びU3において、連動信号BLKOは連動信号用ラッチ回路414a〜414cのもう1つの入力端子に分配される。さらに連動信号用ラッチ回路414a〜414cの出力信号QG1’、QG2’及びQG3’が連動信号用ラッチ回路414の複数(ここでは3つ)の入力端子に入力され、連動信号用ラッチ回路414の出力信号G’がイネーブル信号用論理ゲート416の少なくとも1つの端子に入力される。したがって、連動信号BLK0がHighレベルであり、かつ連動信号BLK1’、BLK2’及びBLK3’の全てがLowレベルである場合、つまり連動信号BLK0’、BLK1’、BLK2’及びBLK3’の全てがLowレベルである場合、連動信号用ラッチ回路414a〜414cの出力信号QG1’、QG2’及びQG3’は全てLowレベルになる。さらにイネーブル信号もLowレベルになることができる。しかも連動信号BLK0がHighレベルである場合、連動信号BLK1’、BLK2’及びBLK3’のいずれかが一旦Lowレベルになり、その後Highレベルに戻ったとしても、 出力信号QG1’、QG2’及びQG3’のうち 対応するものはLowレベルのままである。 つまり、連動信号BLK0がHighレベルであれば、連動信号BLK1’、BLK2’及びBLK3’が一斉にLowレベルにならなくても、イネーブル信号はLowレベルになることができる。ただし、連動信号BLK0がLowレベルになれば、連動信号用ラッチ回路414a〜414cの出力信号QG1’、QG2’及びQG3’は全てHighレベルになる。しかも連動信号BLK0が再度Highレベルになっても、連動信号用ラッチ回路414a〜414cの出力信号QG1’、QG2’及びQG3’はHighレベルのままである。これにより、連動部分は、連動信号BLK0’の位相と周期を、連動信号BLK1’、BLK2’、BLK3’及びBLK4’のうちの位相が最も遅れているものの位相と周期に合わせることができる。
なお、第96図では、連動式カウンタ401が 3つの連動式カウンタ401から連動信号を入力する場合を示したが、接続される連動式カウンタ401の数に応じて連動信号用論理ゲート415の入力端子数を変更するか、さもなくば 連動信号用論理ゲート415の入力端子のうち不必要なものをプルダウンすれば良い。
さて、第96図に示した同期式カウンタ411において、カウント数の初期値は0に、終り値は7に固定されていた。しかしながらLSIの仕様によってはカウント数の初期値及び終り値が変更される場合もある。そこで第98図に示すように、本発明に対応する連動式カウンタ401の実施形態は、市販の同期式カウンタ411のような同期式クリア手段及び同期式ロード手段を有する 同期式カウンタ411を用いることにより、任意の初期値及び終り値を設定することができる。
例えば第98図に示すように、同期式カウンタ411が同期クリア手段を有する場合、カウンタ部分では、同期式カウンタ411、終り値判定用論理ゲート412及びイネーブル信号用論理ゲート416が環状に配線されると共に、初期化信号用論理ゲート417の出力端子が同期式カウンタ411のクリア端子に接続される。すなわち、同期式カウンタ411はイネーブル信号Pと初期化信号INITを入力し、カウント数を出力する。終り値判定用論理ゲート412はカウント数を入力して、連動信号BLK0を出力する。イネーブル信号用論理ゲート416は少なくとも1つの入力端子に連動信号BLK0を入力して、イネーブル信号Pを出力する。初期化信号用論理ゲート417は 連動信号BLK0及びイネーブル信号Pを入力し、初期化信号INITを出力する。
例えば第99図の場合、同期式カウンタ411は型番74163のアップカウンタを備え、出力信号QA〜QDを用いて0から15までのカウント数を出力する。また、カウンタ用論理ゲート422a〜422cが、それぞれ出力信号QA〜QCの負論理出力QA’〜QC’を出力する。イネーブル端子Tはプルアップされ、ロード端子LOADはプルアップされ、初期値用端子A〜Dはプルダウンされている。これにより、イネーブル信号Pの電圧がHighレベルであり、かつクリア信号CLRがHighレベルである場合、クロック信号CLKが立ち上がる度に、同期式カウンタ411が出力するカウント数は1つずつ増える。さらに、イネーブル信号Pの電圧に関係なく、クリア信号CLRがLowレベルである場合、クロック信号CLKが立ち上がるならば、同期式カウンタ411が出力するカウント数は0になる。それ以外の場合、同期式カウンタ411は動作しない。
そこで第98図に示すように、同期式カウンタ411のカウント数が5である場合、終り値判定用論理ゲート412は 連動信号BLK0の電圧をHighレベルにする。さもなくば、連動信号BLK0の電圧はLowレベルである。分岐点U1において、連動信号BLK0はイネーブル信号用論理ゲート416の入力端子のうちの 少なくとも1つに入力される。これにより、もし連動信号BLK0がLowレベルであれば、イネーブル信号PはHighレベルになる。したがって、カウント数が5に到達するまで同期式カウンタ411はカウント数を1つずつ増やし、カウント数が5に到達すると、同期式カウンタ411は停止する。分岐点U4において、連動信号BLK0は初期化信号用論理ゲート417の入力端子のうち少なくとも1つに入力される。 さらに分岐点Vにおいて、イネーブル信号Pは 初期化信号用論理ゲート417の入力端子のうち少なくとも1つに入力される。これにより、もし連動信号BLK0及びイネーブル信号Pが共にHighレベルであれば、初期化信号用論理ゲート417は初期化信号INITはLowレベルになる。したがって、同期式カウンタ411が停止し、連動信号BLK1’、BLK2’及びBLK1’が一旦LOWレベルになれば、同期式カウンタ411はカウント数を0にして、動作を再開する。
ここまでは連動式カウンタ401単体の回路構成について説明してきた。以下では複数の連動式カウンタ401が接続された場合に連動式カウンタ401がお互いにどのように連動するのか、タイミングチャートを用いて説明する。
まず第100図に示すように、3つの連動式カウンタ401a〜401c が接続された場合を考える。なお第100図において、連動式カウンタ401a〜401cをICUと略記する。各々の連動式カウンタ401a〜401cの連動信号BLK0’は残りの連動式カウンタ401a〜401cの連動信号用論理ゲート415に入力される。したがって連動信号用論理ゲート415は2入力論理ゲートであれば良い。これら3つの連動式カウンタ401a〜401cが安定して動作しているとき、連動式カウンタ401aのタイミングチャートを第101図に示す。なお、全ての連動式カウンタ401a〜401cは対称的なので、残りの連動式カウンタ401b及び401cのタイミングチャートも同様である。
第101図から明らかなように、連動式カウンタ401a〜401cのカウント数が 一致している場合には、イネーブル信号用論理ゲート416の出力が一瞬Highレベルになるが、直ぐにLowレベルに戻るため、同期式カウンタ411は連続してカウントすることができる。したがって、連動式カウンタ401a〜401cは 同じカウント数を出力し続けることができる。
第102図に示すように、連動信号BLK1’の位相が何らかの理由により進んだ場合、連動式カウンタ401は連動信号BLK1’に関係なく動作する。したがって連動信号BLK1’はカウント数に対して影響しない。なお連動信号BLK1’を生成する連動式カウンタ401は連動信号BLK1’を連動信号BLK0’及びBLK2’の位相に合わせるように動作する。
第103図に示すように、連動信号BLK2’の位相が何らかの理由により遅れた場合、連動式カウンタ401は 連動信号BLK0’の位相を連動信号BLK2’の位相に合わせるように動作する。したがって連動信号BLK2’がLレベルになるまで、連動式カウンタ401はカウント数として終り値を出力し続ける。
第104図に示すように、連動信号BLK1’の位相が何らかの理由により進み、連動信号BLK2’の位相が何らかの理由により遅れた場合、連動式カウンタ401は 連動信号BLK0’の位相を連動信号BLK2’の位相に合わせるように動作する。したがって連動信号BLK2’がLレベルになるまで、連動式カウンタ401はカウント数として終り値を出力し続ける。
上記より、3つの連動式カウンタ401a〜401cは最もカウントが遅れているものにカウント数を合わせることが判る。このことは、終り値が異なる連動式カウンタ401が接続された場合にも成り立つ。したがって電源投入時、3つの連動式カウンタ401a〜401cのカウント数が異なっていても、クロック信号の周期に終り値の最大数を掛け合わせた時間以内に3つの連動式カウンタ401a〜401cのカウント数が 一致する。
さて、第96図及び第98図に示す連動式カウンタ401の実施形態では、クロック信号CLKは外部から供給される。したがって、第100図から明らかなように、各々の連動式カウンタ401は空間的に離れているので、各々の連動式カウンタ401に供給されるクロック信号CLKは、伝搬遅延時間のために必ずしも同時に立ち上がるとは限らない。特に複数連動式カウンタ401がLSIの広範囲に配置される場合、各々の連動式カウンタ401に供給されるクロック信号CLKの位相は 確実にずれる。そこで以下では、クロック信号CLKを外部から供給する代りに、連動式カウンタ401が自らクロック信号CLKを生成することにより、クロック信号CLKの位相を調整する方法について説明する。
第105図に示す連動式カウンタ401の実施形態は、図96に示す連動式カウンタ401の実施形態と同期式発振回路418から構成される。同様に、第106図に示す連動式カウンタ401の実施形態は、図98に示す連動式カウンタ401の実施形態と 同期式発振回路418から構成される。第105図の場合、分岐点Vにおいて、イネーブル信号Pは同期式発振回路418のSYNC端子に分配されると共に、同期式発振回路418が生成するクロック信号CLKがCLK端子から同期式カウンタ411に供給される。第106図の場合、分岐点V1において、イネーブル信号Pは同期式発振回路418のSYNC端子に分配されると共に、同期式発振回路418が生成するクロック信号CLKが CLK端子から同期式カウンタ411に供給される。同期式発振回路418は、SYNC端子の電圧に応じてクロック信号CLKの位相を変更するものである。以下では、同期式発振回路418について詳細に説明する。
まず、第107図に示す同期式発振回路418は、リング発振器の変形であり、同期信号用ラッチ回路431、2個の発振用論理ゲート432a、432b、及びクロック信号増幅用論理ゲート433から構成される。なお、同期信号用ラッチ回路431はDラッチであり、発振用論理ゲート432a、432b、及びクロック信号増幅用論理ゲート433はNOTゲートである。 同期信号用ラッチ回路431 及び発振用論理ゲート432a、432bは 環状に配線される。すなわち、 同期信号用ラッチ回路431のQ’端子は 発振用論理ゲート432aの入力端子に接続され、発振用論理ゲート432aの出力端子は発振用論理ゲート432bの入力端子に接続され、発振用論理ゲート432bの出力端子は、分岐点Hを介して同期信号用ラッチ回路431のD端子に接続される。同期式発振回路418のSYNC端子が同期信号用ラッチ回路431のG端子に接続される。また発振用論理ゲート432bの出力端子は、分岐点Hを介してクロック信号増幅用論理ゲート433の入力端子に接続され、クロック信号増幅用論理ゲート433がクロック信号CLKを出力する。なお、クロック信号増幅用論理ゲート433の入力端子は、同期信号用ラッチ回路431、及び発振用論理ゲート432a、432bのうちのいずれの出力端子に接続されても良い。また必要に応じて複数のクロック信号増幅用論理ゲート433が用いられても良い。もしSYNC端子がHighレベルであれば、同期信号用ラッチ回路431のD端子とQ’端子はそれぞれNOTゲートの入力端子及び出力端子として機能する。つまり同期信号用ラッチ回路431のQ’端子が出力する信号QS’は発振用論理ゲート432bの出力信号を反転する。さもなくば、同期信号用ラッチ回路431のQ’端子は同期信号用ラッチ回路431のD端子の電圧に関わらず現在の電圧を維持する。信号QS’は発振用論理ゲート432bの出力信号を遅延する。したがって、 第108図に示すように、SYNC端子がHighレベルである場合、同期式発振回路418は自励発振をする。一方SYNC端子がLowレベルである場合、同期式発振回路418は自励発振を停止する。
ところで、第107図に示す同期式発振回路418の場合、自励発振の周期は同期信号用ラッチ回路431、及び発振用論理ゲート432a、432bのスイッチング時間に依存するので、複数の同期式発振回路418が生成するクロック信号CLKの周期が全て一致するとは限らない。そこで同期信号用ラッチ回路431、及び発振用論理ゲート432a、432bにCMOS(相補形金属酸化膜半導体)が用いられた場合、第109図に示すように、分岐点I及びJの間を発振用抵抗434aが接続し、分岐点J及びHの間を発振用コンデンサ435が接続することによって、同期式発振回路418は一定の周期で自励発振をすることができる。なお、発振用抵抗434aの抵抗値をRオームとし、発振用コンデンサ435の容量をCファラッドとする。また発振用抵抗434bは保護抵抗であり、発振用抵抗434bの抵抗値をR0オームとする。
次に、第110図に示す同期式発振回路418は、非安定マルチバイブレータの変形であり、同期信号用ラッチ回路431、発振用論理ゲート432、2個の発振用抵抗434a、434b、2個の発振用コンデンサ435a、435b、及びクロック信号増幅用論理ゲート433から構成される。なお、同期信号用ラッチ回路431はDラッチであり、発振用論理ゲート432はNANDゲートであり、クロック信号増幅用論理ゲート433はNOTゲートである。同期信号用ラッチ回路431、発振用論理ゲート432及び発振用コンデンサ435a、435bは環状に配線される。すなわち、同期信号用ラッチ回路431のQ’端子は分岐点Hを介して発振用コンデンサ435bの1つの端子に接続され、発振用コンデンサ435bのもう1つの端子は 分岐点Jを介して発振用論理ゲート432の全ての入力端子に接続され、発振用論理ゲート432の出力端子は 分岐点K1及びK2を介して発振用コンデンサ435aの1つの端子に接続され、発振用コンデンサ435aのもう1つの端子は 分岐点Lを介して同期信号用ラッチ回路431のD端子に接続される。さらに分岐点L及びHの間を発振用抵抗434aが接続し、分岐点J及びK2の間を発振用抵抗434bが接続する。なお、発振用抵抗434a、434bの抵抗値を共にRオームとし、発振用コンデンサ435a、435bの容量を共にCファラッドとする。同期式発振回路418のSYNC端子が同期信号用ラッチ回路431のG端子に接続される。また発振用論理ゲート432の出力端子は、分岐点K1を介してクロック信号増幅用論理ゲート433の入力端子に接続され、クロック信号増幅用論理ゲート433がクロック信号CLKを出力する。なお、クロック信号増幅用論理ゲート433の入力端子は、同期信号用ラッチ回路431 及び発振用論理ゲート432のいずれの出力端子に接続されても良い。また必要に応じて複数のクロック信号増幅用論理ゲート433が用いられても良い。この同期式発振回路418のタイミングチャートは第108図と同様である。
ここまでは、SYNC端子の電圧を変化させることにより自励発振と停止を繰り返すいくつかの同期式発振回路418について説明してきた。これらの同期式発振回路418は、クロック信号CLKに対して不要なパルスを発生することがないので、連動式カウンタ401が同期回路を制御するのには都合が良い。しかしながら、クロック信号CLKの周期がこれらの同期式発振回路418の自励発振の周期に比べて極めて長くなる場合があるので、クロック信号CLKのジッターが問題となるような電子回路にとってこのようなクロック信号CLKは大変都合が悪い。そこで最後に、自励発振を継続するような同期式発振回路418について説明する。
第111図に示す同期式発振回路418は、同期信号用フリップフロップ回路436、同期信号増幅器437、ループフィルタ438、電圧制御発振器439及びクロック信号増幅用論理ゲート433から構成される。なお、同期信号用フリップフロップ回路436はDフリップフロップであり、同期信号増幅器437及びクロック信号増幅用論理ゲート433はNOTゲートであり、ループフィルタ438はラグ形ループフィルタであり、電圧制御発振器439は、水晶振動子443を用いたコルピッツ形発振回路の変形である。
同期信号用フリップフロップ回路436は、クロック信号増幅用論理ゲート433が出力するクロック信号CLKに同期して、D端子に入力された同期式発振回路418のSYNC端子の電圧を記憶し、信号QSとして出力する。同期信号増幅器437は信号QSを反転して、信号SA’を出力する。
ループフィルタ438はループフィルタ用抵抗441及びループフィルタ用コンデンサ442から構成される。信号SA’に含まれる高周波ノイズがループフィルタ用コンデンサ442によって除去され、ループフィルタ438は分岐点Nから信号VCを出力する。なお、ループフィルタ用抵抗441の抵抗値をR3とし、ループフィルタ用コンデンサ442の容量をC3とする。また、除去されるノイズの周波数帯は時定数R3C3によって決定される。
電圧制御発振器439は、発振用論理ゲート432、水晶振動子443、可変容量ダイオード444、3個の発振用抵抗434a〜434c、及び2個の発振用コンデンサ435a、435bから構成される。水晶振動子443、発振用コンデンサ435a、435b、及び可変容量ダイオード444は環状に配線される。すなわち、可変容量ダイオード444のアノード端子がグラウンドに接続され、可変容量ダイオード444のカソード端子が分岐点Hにおいて発振用コンデンサ435aの1つの端子と接続され、発振用コンデンサ435aのもう1つの端子が分岐点J1において水晶振動子443の1つの端子と接続され、水晶振動子443のもう1つの端子が 分岐点Kにおいて発振用コンデンサ435bの1つの端子と接続され、発振用コンデンサ435bのもう1つの端子がグラウンドに接続される。これによりLC回路が形成される。水晶振動子443の1つの端子が分岐点J1及びJ2において発振用論理ゲート432の入力端子と接続され、発振用抵抗434bが、分岐点L及びKにおいて 発振用論理ゲート432の出力端子と水晶振動子443のもう1つの端子を接続する。これにより水晶振動子443の発振が増幅される。発振用抵抗434aが 分岐点L及びJ2において 発振用論理ゲート432の出力端子と入力端子を接続する。これにより発振用論理ゲート432の出力端子から発振用論理ゲート432の入力端子、水晶振動子443及び発振用コンデンサ435aに電流が供給される。発振用抵抗434cの1つの端子が信号VCを入力し、 発振用抵抗434cのもう1つの端子が 分岐点Hにおいて可変容量ダイオード444のカソード端子と接続される。発振用抵抗434cは保護抵抗であり、信号VCの電圧を 可変容量ダイオード444のカソード端子に加えることができる。したがって、信号VCの電圧が高ければ、可変容量ダイオード444の容量は小さくなるので、電圧制御発振器439の自励発振の周波数は高くなり、信号VCの電圧が0ボルトに近ければ、可変容量ダイオード444の容量は大きくなるので、 電圧制御発振器439の自励発振の周波数は低くなる。なお、発振用抵抗434a〜434cの抵抗値を、それぞれR1、R2及びR0オームとし、発振用コンデンサ435a、435bの容量をそれぞれC1及びC2ファラッドとする。
クロック信号増幅用論理ゲート433は電圧制御発振器439が出力する自励振動の波形を 分岐点Lから入力し、矩形波に増幅されたクロック信号CLKを出力する。クロック信号CLKは分岐点Mにおいて同期信号用フリップフロップ回路436のクロック端子に分配される。必要に応じて複数のクロック信号増幅用論理ゲート433が用いられても良い。
そこで第112図に示すように、SYNC端子の電圧が高いときに、第111図の同期式発振回路418はクロック信号CLKの周期を短くすることができるので、この同期式発振回路418はクロック信号CLKの位相を細かく調整することができる。もし電圧制御発振器439が周波数を2倍にすることができれば、隣接する連動式カウンタ401が生成するクロック信号CLKの位相差はπラジアン、つまりクロック信号CLKの半周期以内に収めることができる。なお、第111図ではループフィルタ438としてラグ形ループフィルタが用いられているが、ラグ形ループフィルタの代りに、ラグ・リード形ループフィルタ及びその変形が用いられても良い。また第111図に示された電圧制御発振器439の代りに、色々な電圧制御発振器439が用いられ得る。この場合、電圧制御発振器439を制御する電圧の範囲に応じて、同期信号増幅器437の出力電圧が変更されなければならない。第111図では同期信号増幅器437としてNOTゲートが用いられているが、必要ならばOPアンプが用いられる。
さて、図96、98、105、106に示す連動式カウンタ401の実施形態は、必ずしも第100図のように他の全ての連動式カウンタ401と接続される必要はない。そこで以下では、連動式カウンタ401が規則的に配列された場合について説明する。
第113図に示す連動装置の実施形態は、正方格子状に配列された連動式カウンタ401を隣接同士接続したネットワークである。この場合、連動信号用ラッチ回路414の個数は4となる。なお辺縁の連動式カウンタ401において、接続先のない連動信号用ラッチ回路414の入力はプルダウンされる。連動式カウンタ401を正方格子状に配列する代りに、第114図に示すように六角格子状に配列して隣接同士することもできる。このように連動式カウンタ401が配置されることにより、全ての連動信号用信号線の長さがほぼ等しくなるので、連動式カウンタ401は互いに連動し易くなる。したがって、パイプライン処理装置、DSP(Digital Signal Processor)、シストリックアレイ、データフロープロセッサ、及び並列画像処理装置のように大規模で規則的なデジタル回路402に対して、これらの二次元連動装置は、連動式カウンタ401のカウント数、つまりクロック信号CLKの分周信号を容易に供給することができる。
さらに、第116図に示すように、三次元連動装置は、上述の正方格子状及び六角格子状に配列された連動式カウンタ401を、三次元LSI技術を用いて複数重ね合わせたネットワークである。連動式カウンタ401が正方格子状に配列した場合には、連動信号用ラッチ回路414の個数は6となり、連動式カウンタ401が六角格子状に配列した場合には、 連動信号用ラッチ回路414の個数は8となる。第116図の場合、正方格子状に配列された連動式カウンタ401のネットワークが3個積層されており、各々の連動式カウンタ401の連動信号が実線で表されている。なお、各々の連動式カウンタ401の連動信号用ラッチ回路414の入力端子のうち、隣接する連動式カウンタ401と接続されていないものは、 プルアップ又はプルダウンされているものとする。第116図から明らかなように、各層の連動式カウンタ401が重なり合うことにより、層間の連動信号の信号線の長さは等しく、しかも最短になる。したがって層間の配線材料を変更したり、 又はディレイラインなどを用いることにより、層を跨ぐ連動信号の伝搬遅延時間は、層内の連動信号の伝搬遅延時間と等しくなるように容易に調整され得るので、異なる層の連動式カウンタ401は互いに同期することができる。
さらに、第117図に示すように、カウント数を分配するための連動装置は、正方格子状及び六角格子状に配列された連動式カウンタ401のネットワークと、プロセッサ101及び演算回路などのデジタル回路402と、フォトダイオード及びA/D変換回路204などのアナログ回路403と、を三次元LSIの異なる層に実装する。第117図の場合、 正方格子状に配列された連動式カウンタ401が第2層及び第5層に実装され、デジタル回路402が第1層、第3層及び第4層に実装され、 アナログ回路403が第6層に実装されている。なお、第117図において、実線は連動信号を表し、破線はカウント数を表す。また連動信号及びカウント数以外の信号線は省略されている。第2層及び第5層に実装された連動式カウンタ401のうち、重なり合ったもの同士は互いの連動信号を入力するので、第2層及び第5層にある全ての連動式カウンタ401は同じカウント数を生成することができる。さらに連動式カウンタ401のネットワークが デジタル回路402及びアナログ回路403と異なる層に実装され得るので、デジタル回路402及びアナログ回路403の配置によって連動式カウンタ401の配置がずれることもなく、しかも連動信号の信号線が迂回することもない。さらに三次元LSIの各層の間にノイズ対策を施すことにより、連動式カウンタ401はデジタル回路402及びアナログ回路403のノイズに影響されないので、連動式カウンタ401は安定に動作する。同様に、デジタル回路402及びアナログ回路403は、これらの配置場所に関係なく、最短距離の連動式カウンタ401から カウント数を入力することができる。このことは、LSI設計者がデジタル回路402及びアナログ回路403の実装層内でカウント数の信号線を 引き回す必要がないことを意味するので、このLSI設計者は、デジタル回路402及びアナログ回路403を任意の場所に配置しても、カウント数の伝搬遅延時間を一定範囲内に収めることができる。したがって、デジタル回路402及びアナログ回路403の設計も容易になる。特に、第117図に示すような連動式カウンタ401のネットワークは、正方格子状及び六角格子状に配列されたプロセッサ101が一斉に処理したデータを垂直方向に向かってパイプライン処理するような、シストリックアレイ及び並列画像処理装置に対して 効率よくカウント数、つまりクロック信号CLKの分周信号を供給することができる。
ところで、三次元連動装置及び カウント数を分配するための連動装置を用いると、全ての連動式カウンタ401はLSI全体に渡って同じカウント数を供給することができる。つまりこのカウント数を用いることにより、適当な信号がLSI全体に同時に分配されるように 連動式信号分配回路が設計され得る。
第118図に示すように、連動式信号分配回路は、信号分配用デコーダ451によって連動式カウンタ401のカウント数を復号することにより、複数の復号結果を生成する。さらにこれらの復号結果のうちの2つがそれぞれ計時開始時刻及び計時終了時刻を表すとすると、信号分配用ラッチ回路452が適当な信号SIGINを入力した場合、信号分配用ラッチ回路452は入力時刻から計時終了時刻まで信号SIGINを記憶し、信号分配用論理ゲート453が、計時開始時刻にだけ、信号分配用ラッチ回路452によって記憶された信号SIGINを信号分配用フリップフロップ回路454に出力し、信号分配用フリップフロップ回路454がクロック信号CLKに同期した信号SIGOUT及び信号SIGOUT’を出力する。これにより、連動式信号分配回路は、任意の時間遅延した信号SIGINから、クロック信号CLKに同期し、しかもクロック信号CLKの周期の整数倍の時間だけアクティブである信号SIGOUTを生成する。
例えば第118図の場合、信号分配用デコーダ451は、0から7までのカウント数を表す連動式カウンタ401の3つの出力QA〜QCと、それらの負論理出力QA’〜QC’と、を入力し、8つのNORゲートを用いて、0から7までのカウント数からそれぞれ8つの復号結果を生成する。すなわち、8つのNORゲートはそれぞれ複数(ここでは3つ)の入力端子を備え、分岐マトリクスXにおいて、連動式カウンタ401の出力QA、QB及びQCは、復号結果0を出力するNORゲートに分配され、連動式カウンタ401の出力QA’、QB及びQCは、復号結果1を出力するNORゲートに分配され、連動式カウンタ401の出力QA、QB’及びQCは、復号結果2を出力するNORゲートに分配され、連動式カウンタ401の出力QA’、QB’及びQCは、復号結果3を出力するNORゲートに分配され、連動式カウンタ401の出力QA、QB及びQC’は、復号結果4を出力するNORゲートに分配され、連動式カウンタ401の出力QA’、QB及びQC’は、復号結果5を出力するNORゲートに分配され、連動式カウンタ401の出力QA、QB’及びQC’は、復号結果6を出力するNORゲートに分配され、連動式カウンタ401の出力QA’、QB’及びQC’は、復号結果7を出力するNORゲートに分配される。そこで、復号結果0〜7までの中から任意の2つを選んで、それぞれ計時開始時刻及び計時終了時刻とすることにより、 計時開始時刻がHighレベルになってから計時終了時刻がHighレベルになるまでの時間は、クロック信号CLKの周期の0倍から7倍となる。さらに8つのNOTゲートが、それぞれ復号結果0から復号結果7までを入力し、それぞれ負論理復号結果0’〜7’までを出力する。したがって、負論理復号結果0’〜7’までを用いることにより、計時開始時刻及び計時終了時刻は負論理で表すこともできる。
さて、第118図の場合、計時開始時刻は負論理復号結果3’であり、計時終了時刻は復号結果5である。そこで連動式信号分配回路が、負論理復号結果3’と復号結果5を用いて任意の時間遅延した信号SIGINから信号SIGOUTを生成するために、まず信号分配用ラッチ回路452は、2つの入力端子のうちの1つに信号SIGINを入力し、信号QS’を出力する。信号分配用論理ゲート453は、2つの入力端子に出力信号QS’及び負論理復号結果3’を入力し、信号J3を出力する。信号分配用フリップフロップ回路454は、J端子に信号J3を入力し、K端子に復号結果5を入力する。また信号分配用フリップフロップ回路454のクロック端子にクロック信号CLKを入力しているので、信号分配用フリップフロップ回路454は、クロック信号CLKの立ち下がりに同期しながら、Q端子から信号SIGOUTを出力し、Q’端子から信号SIGOUT’を出力する。最後に、分岐点Yにおいて、信号SIGOUTが 信号分配用ラッチ回路452の2つの入力端子のうちのもう1つに分配される。以下では、第119図のタイミングチャートを参照しながら、第118図に示された連動式信号分配回路について説明する。
まず、信号SIGINがHighレベルになると、信号分配用ラッチ回路452は信号QS’をLowレベルにする。その後、信号SIGINがLowレベルになったとしても、信号SIGOUTがHighレベルになるまで、信号QS’はLowレベルのままである。信号QS’がLowレベルになった後、負論理復号結果3’がLowレベルの場合にのみ、信号分配用論理ゲート453は信号J3をHighレベルにする。つまり信号SIGOUTがHighレベルになった後、連動式カウンタ401のカウント数が3になったならば、信号J3はHighレベルになる。このとき信号分配用フリップフロップ回路454のJ端子がHighレベルになるので、信号SIGOUTはクロック信号CLKの立ち下がり時にHighレベルになる。また、信号SIGOUTが信号分配用ラッチ回路452に入力されるので、信号分配用ラッチ回路452はリセットされ、信号QS’はHighレベルになる。この状態で連動式カウンタ401のカウント数が4になったとしても、信号分配用フリップフロップ回路454のJ端子及びK端子が 共にLowレベルになるので、信号SIGOUTはHighレベルのままである。しかしながら、連動式カウンタ401のカウント数が5になると、復号結果5がHighレベルになり、信号分配用フリップフロップ回路454のK端子も Highレベルになる。つまり信号SIGOUTはクロック信号CLKの立ち下がり時にLowレベルになる。第119図から明らかなように、信号SIGINが入力されると、復号結果3’がLowレベルである際にクロック信号CLKが立ち下がった時刻から 復号結果5がHighレベルである際にクロック信号CLKが立ち下がった時刻まで信号SIGOUTが出力されている。そこでデジタル回路402がLSIの何処に配置されようとも、復号結果5の立ち上がり時にデジタル回路402は信号SIGOUTを確実に入力することができる。このような機能はリセット信号、割込信号及び入出力信号など、既に設計されているデジタル回路402を殆んど変更することなく1つのシステムLSIを組み込む場合には必要不可欠である。
この他に、第120図に示すように、連動式信号分配回路は、分岐点Zにおいて、復号結果5が信号分配用ラッチ回路452の2つの入力端子のうちのもう1つに分配されても良い。第118図に示された連動式信号分配回路の場合、信号分配用ラッチ回路452は信号SIGOUTによってリセットされる。したがって、信号SIGOUTがHighレベルである際に信号SIGINがHighレベルになったとしても、信号分配用ラッチ回路452は信号SIGINを記憶することができない。これに対して、第120図に示された連動式信号分配回路の場合、信号分配用ラッチ回路452は復号結果5によってリセットされる。したがって、信号SIGOUTがHighレベルである際に信号SIGINがHighレベルになったとしても、復号結果5がHighレベルでなければ、信号分配用ラッチ回路452は信号SIGINを記憶することができる。つまり、復号結果5がHighレベルからLowレベルに変った直後に信号SIGINがHighレベルになったならば、信号分配用ラッチ回路452は信号SIGINを記憶することができる。そこで復号結果5の代りに、信号分配用ラッチ回路452の2つの入力端子のうちのもう1つに復号結果4を入力すれば、信号SIGOUTがHighレベルであったとしても、信号分配用ラッチ回路452は信号SIGINを記憶することができるようになる。
なお、第118図及び第120図の信号分配用デコーダ451、信号分配用ラッチ回路452及び信号分配用論理ゲート453にはNORゲートが用いられているが、NANDゲートなどが用いられても良い。また、第118図及び第120図では、 計時開始時刻及び計時終了時刻を表すためにそれぞれ負論理復号結果3’及び復号結果5が用いられているが、勿論他の復号結果及び負論理復号結果が用いられても良い。外部から適当な信号SIGINが入力されると、信号分配用ラッチ回路452がこの信号を一旦記憶した後、信号分配用論理ゲート453によって計時開始時刻に信号分配用フリップフロップ回路454に入力される。信号分配用フリップフロップ回路454はクロック信号に同期して入力信号を記憶し、 計時終了時刻にリセットされる。これにより入力信号の伝搬遅延時間に関わらず、連動式信号分配回路は計時開始時刻前に到達した入力信号を 計時開始時刻から計時終了時刻まで出力することができる。なお入力信号の論理が反転している場合には信号分配用ラッチ回路452の前に論理ゲートを加えることにより、連動式信号分配回路は正常に動作することができる。
さて、ここまでは連動装置について説明してきた。そこで以下では、本発明のイメージセンサ251の実施形態を挙げ、図面を参照して説明する。
第121図及び第122図に示すように、本発明におけるイメージセンサ251は複数のセンサモジュール252を備え、しかもこれらのセンサモジュール252の各々が画素信号を出力する。つまり、このイメージセンサ251はセンサモジュール252の数だけ画素信号を並列に出力することができる。ここで、もしこれらのセンサモジュール252の各々が1つの画素信号しか出力しなければ、このイメージセンサ251は従来の画素並列型と同等になる。なお、第121図及び第122図において、1個のセンサモジュール252はSMと略記され、隣接するセンサモジュール252同士の間隔は、 見易くするために広くなっている。また、第121図では、複数のセンサモジュール252が格子状に配列されており、第122図では、複数のセンサモジュール252が六角格子状に配列されている。この他に、複数のセンサモジュール252が直線状及び円形状に配列されても良いし、複数のセンサモジュール252が 任意の場所に配置されても良い。そこで以下では、イメージセンサ251が電荷結合素子263を用いる場合と、イメージセンサ251がCMOS技術だけで製造される場合と、の両方において、1個のセンサモジュール252が複数の画素信号を順次出力する方法について説明する。
まず、イメージセンサ251が電荷結合素子263を用いる場合、第123図に示すように、1画素を撮影する画素セル253は 少なくとも受光素子261及び電荷転送ゲート262から構成される。受光素子261にはフォトダイオード、フォトトランジスタ及びHARP(High−gain Avalanche Rushing amorphous Photoconductor)膜が用いられ、必要に応じて電荷を蓄積するコンデンサ及び半導体スイッチが受光素子261に付加される。電荷転送ゲート262は半導体スイッチであり、画素セル253に行選択信号が入力されたとき、電荷転送ゲート262は導通する。これにより、受光素子261が蓄えた電荷が画素セル253から取り出される。そこで、第124図に示すイメージセンサ251の実施形態において、センサモジュール252は複数の画素セル253を格子状に配列する。 第124図では、全ての画素セル253を一筆書でなぞるように電荷結合素子263がS字状に配置され、これらの画素セル253の各々において、電荷転送ゲート262の出力端子が電荷結合素子263に接続されている。また、電荷転送用駆動装置264が、少なくとも1本の行選択信号線265を介して、全ての画素セル253の電荷転送ゲート262に行選択信号を供給すると共に、少なくとも1本の電荷転送信号線266を介して、電荷結合素子263に電荷転送信号を供給し、少なくとも1個の受光素子261から電荷結合素子263に転送された電荷を、バケツリレー式にいずれか一端に転送させる。電荷結合素子263が転送した電荷は順次出力増幅器267に入力される。出力増幅器267は入力した電荷を電圧に変換した後、画素信号として出力する。なお電荷転送用駆動装置264は、イメージセンサ251の用途に応じて、1度に1つの行選択信号だけをアクティブにすることもできるが、ここでは主に、電荷転送用駆動装置264が全ての行選択信号を一斉にアクティブにする。これにより、電荷結合素子263は全ての受光素子261が蓄えた電荷をバケツリレー式に順次転送することができるので、センサモジュール252は全ての受光素子261から短時間に、しかも容易に電荷を取り出し、画素信号として順次出力することができる。さらに、電荷転送用駆動装置264が、少なくとも1本の電荷転送信号線266を介して、電荷結合素子263に電荷転送信号を供給した後、この電荷転送用駆動装置264は画素同期信号を出力する。これにより、全てのセンサモジュール252の外部から、全てのセンサモジュール252の各々が画素信号を出力していることが判別され得る。
ところで、第124図では、電荷結合素子263がS字状に配置されていたが、第125図に示すように、電荷結合素子263は渦巻き状に配置されても良い。さらに複数の画素セル253が六角格子状に配列された場合、電荷結合素子263は第126図に示すように渦巻き状に配置され得る。なお、第126図では、1個の画素セル253はPCと略記されている。 これらのセンサモジュール252では、電荷結合素子263が センサモジュール252の辺縁に位置する画素セル253の受光素子261か、又は中心に位置する画素セル253の受光素子261か、から順番に電荷を取り出すことができるので、センサモジュール252から複数の画素信号を受け取る電子回路が受け取る画素信号の数を制限するだけで、イメージセンサ251は解像度を容易に変更することができる。
次に、イメージセンサ251がCMOS技術だけ製造される場合、第127図に示すように、1画素を撮影する画素セル253は 少なくとも受光素子261、電荷増幅器271及び行選択ゲート272から構成される。受光素子261にはフォトダイオード、フォトトランジスタ及びHARP膜が用いられ、必要に応じて電荷を蓄積するコンデンサ及び半導体スイッチが受光素子261に付加される。行選択ゲート272は半導体スイッチであり、画素セル253に行選択信号が入力されたとき、行選択ゲート272は導通する。これにより、受光素子261が蓄えた電荷が画素セル253から取り出される。そこで、第128図に示すイメージセンサ251の実施形態において、センサモジュール252は複数の画素セル253を格子状に配列する。第128図から明らかなように、このセンサモジュール252の構成は一般的なCMOS技術を用いたイメージセンサ251の構成と同等である。第128図では、9個の画素セル253は3行3列の行列に配列される。また、垂直シフトレジスタ273及び水平シフトレジスタ274には3段の1ビット循環シフトレジスタが用いられ、それぞれ1つの出力だけがアクティブになる。さらに水平シフトレジスタ274が一巡した場合、垂直シフトレジスタ273が1回シフトする。したがって、垂直シフトレジスタ273及び水平シフトレジスタ274の組み合せにより、9個の画素セル253の中から1個を選択することができる。詳しくは以下の通りである。
まず、垂直シフトレジスタ273が第1行の行選択信号をアクティブにした場合、第1行に位置する3個の画素セル253の行選択ゲート272が 導通するので、3個の画素セル253の各々において、受光素子261に蓄えられた電荷は電荷増幅器271によって電圧に変換され、この電圧が行選択ゲート272の出力端子から出力される。したがって、第1行に位置する3個の画素セル253が出力した電圧だけがそれぞれ3本の垂直信号線278を介して、3個のノイズキャンセラ275に入力される。一方で、第2行及び第3行に位置する6個の画素セル253の各々では、受光素子261が電荷を蓄えている。各列のノイズキャンセラ275には、同じ列に位置する3個の画素セル253の電荷増幅器271及び行選択ゲート272が発生するノイズを抑えるために、CDS(相関二重サンプリング)回路が用いられる。水平シフトレジスタ274が 第1列の列選択信号をアクティブにした場合、第1列に位置するノイズキャンセラ275が出力した電圧が 出力増幅器267に入力され、この出力増幅器267がこの電圧を増幅した後、この出力増幅器267は第1行第1列の画素セル253に対応する画素信号を出力する。同様に、水平シフトレジスタ274が第2列及び第3列の列選択信号をアクティブにした場合、出力増幅器267はそれぞれ第1行第2列及び第1行第3列の画素セル253に対応する画素信号を出力する。なお、水平シフトレジスタ274は1つの列を選択した後に、画素同期信号を出力する。これにより、出力増幅器267が画素信号を出力していることがこのセンサモジュール252の外部から判別され得る。次に、水平シフトレジスタ274の出力が一巡したら、垂直シフトレジスタ273は第2行の行選択信号をアクティブにする。最後に、垂直シフトレジスタ273は第3行の行選択信号をアクティブにして、その後水平シフトレジスタ274の出力が一巡したら、垂直シフトレジスタ273は第1行の行選択信号をアクティブにする。これにより、垂直シフトレジスタ273及び水平シフトレジスタ274は全ての画素セル253を順次選択することができるので、センサモジュール252は全ての画素信号を出力することができる。
なお、第128図では、9個の画素セル253が格子状に配列されているが、勿論複数の画素セル253が六角格子状に配列されても良い。この場合、行選択信号線265及び列選択信号線277と、垂直信号線278及び水平信号線279は、それぞれ、これらの画素セル253の配置に合わせてジクザグに配線されるか、又は120度の角度で交わるように配線される。
最後に、1個のセンサモジュール252を90度回転させることにより、このセンサモジュール252の行及び列が入れ替わる。勿論、垂直シフトレジスタ273及び水平シフトレジスタ274も同様に入れ替わる。したがって、図124及び図128に対応するイメージセンサ251の実施形態には、行と列が入れ替わったイメージセンサ251も含まれる。
ここまでは、複数のセンサモジュール252がLSIの実装面に実装される場合について説明してきた。当然のことながら、これらのセンサモジュール252の各々から出力される画素信号用の信号線及び画素同期信号用の信号線も同一実装面に配線される。しかしながら、この場合、これらのセンサモジュール252が実装されるイメージセンサ251の場所によって、画素信号用の信号線の配線長及び画素同期信号用の信号線の配線長はそれぞれ異なり、しかも全ての受光素子261の開口率が低くなる。そこで以下では、三次元LSI技術を用いて、全ての画素信号及び画素同期信号がイメージセンサ251の裏面に出力されるイメージセンサ251について説明する。
まず、第129図及び第130図に示すように、全てのセンサモジュール252の各々は、イメージセンサ251の背面から画素信号及び画素同期信号を出力する。この画素信号用の信号線及び画素同期信号用の信号線の配線は、イメージセンサ251の基板に穴を開け、さらにその穴の中に銅などの金属を充填する三次元LSI技術を用いて実現される。第129図及び第130図 から明らかなように、イメージセンサ251の設計者は、全てのセンサモジュール252から出力される全ての画素信号用の信号線の配線長及び全ての画素同期信号用の信号線の配線長を、それぞれ等しくすることができる。しかもこの設計者は、センサモジュール252の実装面に画素信号用の信号線及び画素同期信号用の信号線を配線する必要がないので、この設計者は、センサモジュール252の実装面積を小さくし、さらに隣接するセンサモジュール252同士の間隔を狭くすることができる。したがって、この設計者は、イメージセンサ251に多数のセンサモジュール252を配列することができる。
ところで、三次元LSI技術を用いることにより、1個のセンサモジュール252自体が複数の層から構成され得る。例えば、第131図に示すように、1個のセンサモジュール252は、電荷結合素子263がS字状に配置された第1層と、格子状に配列された複数(ここでは9個)の電荷転送ゲート262、電荷転送用駆動装置264 及び出力増幅器267が実装された第2層と、 複数(ここでは9個)の受光素子261が格子状に配列された第3層と、から構成される。このセンサモジュール252において複数の信号線が以下のように配線される。なお、第131図では、電源線、グラウンド線、クロック信号線及びリセット信号線などは省略されている。
まず第2層では、複数(ここでは3本)の行選択信号線265が、それぞれ各行に位置する複数(ここでは3個)の電荷転送ゲート262を貫くように配線され、少なくとも1本の電荷転送信号線266が全ての電荷転送ゲート262に沿ってS字状に配線される。次に第1層では、電荷結合素子263が電荷転送ゲート262に沿ってS字状に配置されている。このとき、電荷転送信号線266が電荷結合素子263と重なるように、第2層が第1層に積層され、電荷転送信号線266から電荷結合素子263の上面に向けて、複数の信号線が配線され、さらに複数の電荷転送ゲート262の各々から電荷結合素子263の側面に向けて、信号線が配線される。次に、第1層の電荷結合素子263の末端から第2層の出力増幅器267に向けて信号線が配線され、出力増幅器267が出力する画素信号用の信号線が第1層を貫く。同様に、 電荷転送用駆動装置264が出力する 画素同期信号用信号線が第1層を貫く。最後に、全ての受光素子261の各々が、対応する電荷転送ゲート262と重なるように、第3層が第2層に積層され、全ての受光素子261の各々から対応する電荷転送ゲート262に向けて信号線が配線される。これにより、1個のセンサモジュール252において、信号線の総配線長が短くなるばかりか、受光素子261の開口率が高くなり、しかもイメージセンサ251において、全ての受光素子261が均等に配置され得る。
なお、第131図に示すように、受光素子261及び電荷転送用駆動装置264などが実装された層と異なる層に、電荷結合素子263が実装されることにより、イメージセンサ251の設計者は複数のLSI製造技術を容易に組み合せることができる。しかも検査済の複数のセンサモジュール252をイメージセンサ251の基板の上に格子状に積層することにより、この設計者はイメージセンサ251の歩留まりを上げることもできる。さらに、全ての電荷転送信号線266にディレイラインが用いられ、出力増幅器267が接続された電荷結合素子263の末端から電荷転送用駆動装置264がパルス信号を供給することにより、出力増幅器267が接続された電荷結合素子263の末端からもう一方の末端に向けて電荷転送信号が順番に伝搬するので、電荷結合素子263に蓄えられた電荷は、出力増幅器267が接続された電荷結合素子263の末端に向けて、バケツリレー式に転送される。
加えて、第132図に示すように、1個のセンサモジュール252は、格子状に配列された複数(ここでは9個)の行選択ゲート272、垂直シフトレジスタ273、水平シフトレジスタ274、複数(ここでは3個)のノイズキャンセラ275、複数(ここでは3個)の列選択ゲート276及び出力増幅器267が実装された第1層と、複数(ここでは9個)の電荷増幅器271が格子状に配列された第2層と、複数(ここでは9個)の受光素子261が格子状に配列された第3層と、から構成される。 このセンサモジュール252において 複数の信号線が以下のように配線される。なお、第132図では、電源線、グラウンド線、クロック信号線及びリセット信号線などは省略されている。
まず第1層では、複数(ここでは3本)の行選択信号線265が、垂直シフトレジスタ273から、 それぞれ各行に位置する複数(ここでは3個)の行選択ゲート272を貫くように配線され、複数(ここでは3本)の垂直信号線278が、それぞれ各列に位置する複数(ここでは3個)の行選択ゲート272を貫くように、それぞれ複数のノイズキャンセラ275に向けて配線されている。次に、これらのノイズキャンセラ275からそれぞれ各列に位置する複数の列選択ゲート276に向けて 複数の信号線が配線され、さらに水平シフトレジスタ274からこれらの列選択ゲート276に向けて複数(ここでは3本)の列選択信号線277が配線される。また、水平信号線279がこれらの列選択ゲート276を貫くように、出力増幅器267に向けて配線される。このとき、全ての電荷増幅器271の各々が、対応する行選択ゲート272と重なるように、第2層が第1層に積層され、これらの電荷増幅器271の各々から対応する行選択ゲート272の上面に向けて信号線が配線される。次に、出力増幅器267が出力する画素信号用の信号線が第1層の背面に達する。同様に、水平シフトレジスタ274が出力する画素同期信号用の信号線が第1層の背面に達する。最後に、全ての受光素子261の各々が、 対応する電荷増幅器271と重なるように、第3層が第2層に積層され、全ての受光素子261の各々から対応する電荷増幅器271に向けて、信号線が配線される。これにより、1個のセンサモジュール252において、信号線の総配線長が短くなるばかりか、受光素子261の開口率が高くなり、しかもイメージセンサ251において、全ての受光素子261が均等に配置され得る。
さて、ここまでは、三次元LSI技術を用いて、全てのセンサモジュール252が背面から 複数の画素信号及び複数の画素同期信号を出力するイメージセンサ251について説明してきた。以下では、全てのセンサモジュール252が出力する複数の画素信号を複数のデジタル回路402が並列に処理した後、これらのデジタル回路402が複数の画素データに変換するイメージセンサ251について説明する。
第133図に示すイメージセンサ251の実施形態は、二次元格子状に配列された複数のデジタル回路402が実装された第1層と、二次元格子状に配列された複数のA/D変換回路204が実装された第2層と、二次元格子状に配列された複数のセンサモジュール252が実装された第3層と、から構成され、全てのA/D変換回路204が、それぞれ対応するデジタル回路402の上に積層され、さらに全てのセンサモジュール252が、それぞれ対応するA/D変換回路204の上に積層される。また、全てのセンサモジュール252の各々から、対応するA/D変換回路204に向けて、画素信号用の信号線が配線され、全てのA/D変換回路204の各々から、対応するデジタル回路402に向けて、nビットの画素データを送信するn本の信号線が配線され、全てのセンサモジュール252の各々から、対応するデジタル回路402に向けて、画素同期信号用の信号線が配線される。したがって、これらの信号線は全て交差せず、しかも全てのA/D変換回路204が常時独立に画素信号をnビットの画素データに変換する。 なお第133図では、全てのデジタル回路402、全てのA/D変換回路204 及び全てのセンサモジュール252が、それぞれ格子状に配列されているが、勿論これらは六角格子状に配列されても良い。加えて、第133図では、電源線、グラウンド線、クロック信号線、リセット信号線及び割り込み信号線などは省略されている。
さて、クロック信号がイメージセンサ251全体に供給される場合、全てのデジタル回路402の各々は、シフトレジスタ及びシリアル/パラレル変換回路などを用いることにより、画素同期信号に合わせて、対応するセンサモジュール252が順番に出力する全ての画素信号を 画素データとして受信することができる。最後に、このデジタル回路402は、画像処理を行った結果を結果データとして出力することができる。このとき、このデジタル回路402が、隣接するデジタル回路402と少なくとも1つの画素データを通信すれば、このデジタル回路402は複雑な画像処理を行うことができる。
ところで、全てのセンサモジュール252の各々が多数の受光素子261を有するならば、対応するデジタル回路402の実装面積は大きくなるので、このデジタル回路402は、プロセッサ101及び1組の大容量のメモリ102を有することができる。したがって、全てのデジタル回路402の各々において、1組のメモリ102は、対応するセンサモジュール252が生成した全ての画素信号を画素データとして記憶することができ、しかもプロセッサ101は、これらの画素データを参照して画像処理をすることができる。この際、プロセッサ101がこれらの画素データから、メモリ書き換え用同期信号、記憶データ及びメモリアドレスを 生成することができれば、プロセッサ101は 1組のメモリ102中の記憶データを容易に変更することもできる。したがって、イメージセンサ251中の全てのセンサモジュール252に、メモリ書き換え用同期信号、記憶データ及びメモリアドレスを含む光が照射されれば、全てのデジタル回路402において1組のメモリ102中の記憶データが一斉に書き換えられ得る。そこで以下では、少なくとも1個のセンサモジュール252にメモリ書き換え用同期信号、記憶データ、メモリアドレスの情報を含む光が照射されることにより、少なくとも1個のデジタル回路402において、プロセッサ101が1組のメモリ102中の記憶データを変更する方法について説明する。
まず、第134図に示すように、イメージセンサ251中の全てのデジタル回路402の各々が、プロセッサ101、1組のメモリ102及び外部と通信をするためのコントローラ103を備え、プロセッサ101が アドレスバス51を介して1組のメモリ102及びコントローラ103を選択し、データバス52を介して1組のメモリ102及びコントローラ103と通信するものとする。このとき、プロセッサ101及びコントローラ103にはクロック信号が供給され、さらにプロセッサ101は読み出し(READ)信号及び書き込み(WRITE)信号のような制御信号を1組のメモリ102及びコントローラ103に送信する。なお、プロセッサ101及び1組のメモリ102には汎用品が用いられても良い。勿論、1組のメモリ102は三次元LSI技術を用いて積層された多数のメモリ素子から構成されても良い。特に、このメモリ102の少なくとも1部にフラッシュメモリ及びMRAM(Magnetic Random Access Memory)のような不揮発性メモリが用いられた場合、このメモリ102のこの部分は常時プログラムを記憶しておくことができる。
一方で、第135図に示すように、コントローラ103は、アドレスバッファ53、アドレスデコーダ54、データバッファ55、フラグエンコーダ59、ステータスレジスタ60、前入力データレジスタ61、結果データレジスタ62、前入力シフトレジスタ68及び前入力カウンタ69を有する。アドレスバッファ53はアドレスバス51を介してプロセッサ101からアドレスを受信する。アドレスデコーダ54はこのアドレスを復号することにより、前入力データレジスタ61及びステータスレジスタ60を選択する。データバッファ55はデータバス52を介してプロセッサ101とデータを通信する。プロセッサ101が読み出し信号を出力したときだけ、このデータバッファ55は内部データバス56からデータバス52にデータを出力する。コントローラ103が複数の画素データを入力した場合、前入力シフトレジスタ68が 画素同期信号に同期しながら、これらの画素データを順次格納すると共に、前入力カウンタ69が画素同期信号の数を数える。ただし、この前入力カウンタ69はアップカウンタでもダウンカウンタでも良い。前入力シフトレジスタ68が 全て(ここでは9つ)の画素データを格納したときに、前入力カウンタ69は前入力送達(FRONT INPUT SEND)を1にし、フラグエンコーダ59に出力する。このフラグエンコーダ59は、前入力送達を含むステータス(STATUS)信号を常時生成し、さらにステータスレジスタ60に出力すると共に、クロック信号に同期しながら、前入力データレジスタ61及びステータスレジスタ60にトリガー信号を出力する。これにより、前入力データレジスタ61中の全て(ここでは9個)のレジスタは、このトリガー信号に同期しながら、それぞれ9個の画素データを格納すると共に、ステータスレジスタ60は、このトリガー信号に同期しながら、ステータス信号を格納する。そこでアドレスデコーダ54が プロセッサ101からアドレスを受信したとき、アドレスデコーダ54は、前入力データレジスタ61中の全てのレジスタ及びステータスレジスタ60のうちの1つを選択することができ、この選択されたレジスタから内部データバス56に向けて 画素データ又はステータスが出力される。したがって、プロセッサ101は画素データ又はステータスを読み込むことができる。なお、アドレスデコーダ54が ステータスレジスタ60を選択した場合、フラグエンコーダ59がステータス中の前入力送達を一端0にする。これにより、プロセッサ101がステータス中の前入力送達を検査するだけで、コントローラ103が全ての画素データを入力したかどうかプロセッサ101は判別することができる。最後に、プロセッサ101がコントローラ103に結果データを書き込む場合、プロセッサ101は、結果データレジスタ62のアドレスをアドレスバス51に出力し、さらに結果データをデータバス52に出力する。アドレスデコーダ54がこのアドレスを復号して結果データレジスタ62を選択することにより、結果データレジスタ62は内部データバス56から結果データを入力することができる。ここでプロセッサ101が書き込み信号を出力することにより、フラグエンコーダ59がこの書き込み信号を入力し、トリガー信号を生成するので、結果データレジスタ62は、入力した結果データを保持することができる。保持された結果データは結果データレジスタ62から外部に出力される。なお、フラグエンコーダ59は、トリガー信号を生成した後、必要に応じて結果送達(RESULT SEND)を出力することができるものとする。この結果送達は、画素同期信号と同様に、結果データが出力されていることを示すものである。
さて、第136図に示すように、全てのセンサモジュール252が実装されたイメージセンサ251の表面に、ディスプレイ及びレーザ装置のような光源291が光を照射する。これにより、全てのデジタル回路402の各々において、コントローラ103が、画素同期信号に合わせて、対応するセンサモジュール252の全ての受光素子261が受光した光を複数の画素データとして順次入力する。さらに、少なくとも1個のデジタル回路402において、プロセッサ101が これらの画素データを1組のメモリ102に記憶した後、プロセッサ101が、これらの画素データからメモリ書き換え用同期信号、記憶データ及びメモリアドレスを生成し、さらにこのメモリ書き換え用同期信号に応じて、このメモリアドレスにこの記憶データを格納する。プロセッサ101が1組のメモリ102中の1つの記憶データを書き換えるためのメモリ書き換えルーチンは 第137図のようになる。以下、このメモリ書き換えルーチンについて説明する。
ステップ8001で、プロセッサ101は、プロセッサ101のレジスタ中のデータを1組のメモリ102に退避して、プロセッサ101のレジスタを初期化する。
ステップ8002で、プロセッサ101は、コントローラ103からステータスを入力する。
ステップ8003で、プロセッサ101は、ステータス中の前入力送達を判定する。もし前入力送達が1であれば(ステップ8003:YES)、ステップ8004に移行する。さもなくば(ステップ8003:NO)、ステップ8010に移行する。
ステップ8004で、プロセッサ101は、コントローラ103から全ての画素データを1つずつ読み込んで、1組のメモリ102に順次格納する。
ステップ8005で、プロセッサ101は、1組のメモリ102に格納された複数の画素データから 少なくとも1ビットのメモリ書き換え用同期信号を生成する。
ステップ8006で、プロセッサ101は、メモリ書き換え用同期信号を判定する。もしメモリ書き換え用同期信号が1であれば(ステップ8006:YES)、ステップ8007に移行する。さもなくば(ステップ8006:NO)、ステップ8010に移行する。
ステップ8007で、プロセッサ101は、1組のメモリ102に格納された複数の画素データから少なくとも1ビットの記憶データを生成する。
ステップ8008で、プロセッサ101は、1組のメモリ102に格納された複数の画素データから 少なくとも1ビットのメモリアドレスを生成する。
ステップ8009で、プロセッサ101は、生成された記憶データを生成されたメモリアドレスに格納する。このとき、このメモリアドレスには適当なオフセットアドレスが加えられても良い。
ステップ8010で、プロセッサ101は、1組のメモリ102に退避されたデータをプロセッサ101のレジスタに復元し、このメモリ書き換えルーチンを終了する。
なお、ステップ8005において、プロセッサ101が2ビット以上のメモリ書き換え用同期信号を生成できる場合、複数のデジタル回路402の各々に適当な識別番号が割り振られるものとする。このときステップ8006において、これらのデジタル回路402が、 それぞれメモリ書き換え用同期信号と自分の識別番号を比較することにより、これらのデジタル回路402は、現在照射されている光が自分用の記憶データを含んでいるのか判断することができる。したがって、全てのセンサモジュール252の受光素子261に光源291から同じ光が照射されたとしても、特定のデジタル回路402の1組のメモリ102に記憶された記憶データだけを変更することができる。
この他に、第136図では、格子状に配列された複数のセンサモジュール252、格子状に配列された複数のA/D変換回路204及び格子状に配列された複数のデジタル回路402が積層されているが、勿論、1個のセンサモジュール252、1個のA/D変換回路204及び1個のデジタル回路402がLSI中の任意の位置に配置されても良い。さらにこれらがLSIの1つの実装面に配置されても良い。
ところで、第137図に示されたメモリ書き換えルーチンの場合、少なくとも1個のデジタル回路402において、プロセッサ101は定期的にコントローラ103を監視しなければならない。したがって、常に光信号が入力されるような受信装置として イメージセンサ251が利用される場合、このメモリ書き換えルーチンは適しているけれども、常にメモリ102中のプログラムを書き換える必要がない一般的なイメージセンサ251の用途では、このメモリ書き換えルーチンのオーバーヘッドが大きくなるばかりか、入力された画像によってメモリ書き換え信号が勝手に生成されてしまう可能性もある。しかしながら、もしプロセッサ101が少なくとも1つのメモリ書き換え信号を入力することができれば、メモリ書き換えルーチンのオーバーヘッドは小さくなるし、さらに入力された画像によってメモリ書き換え信号が勝手に生成されることはない。そこで、少なくとも1つのメモリ書き換え信号がイメージセンサ251に入力された際に、全てのセンサモジュール252が実装されたイメージセンサ251の表面に、ディスプレイ及びレーザ装置のような光源291が光を照射する。ただし、1つのメモリ書き換え信号が 全てのデジタル回路402のプロセッサ101に入力されても良いし、複数のイメージ書き換え信号のうちいずれか1つが複数のデジタル回路402のプロセッサ101に入力されても良い。メモリ書き換え信号は一種の割り込み信号であり、このメモリ書き換え信号がプロセッサ101に入力されたときに、プロセッサ101は、1組のメモリ102中に記憶されたメモリ書き換えルーチンに従って、プログラムなど1組のメモリ102中の記憶データを書き換える。これにより、少なくとも1つのメモリ書き換え信号を入力した1個のデジタル回路402では、プロセッサ101が、これらの画素データからメモリ書き換え用同期信号、記憶データ及びメモリアドレスを生成し、さらにこのメモリ書き換え用同期信号に応じて、このメモリアドレスにこの記憶データを格納する。メモリ書き換え信号がプロセッサ101に入力された際に、プロセッサ101が1組のメモリ102中の少なくとも1つの記憶データを書き換えるためのメモリ書き換えルーチンは第138図のようになる。以下、このメモリ書き換えルーチンについて説明する。
ステップ8101で、プロセッサ101は、プロセッサ101のレジスタ中のデータを1組のメモリ102に退避して、プロセッサ101のレジスタを初期化する。
ステップ8102で、プロセッサ101は、コントローラ103からステータスを入力する。
ステップ8103で、プロセッサ101は、ステータス中の前入力送達を判定する。もし前入力送達が1であれば(ステップ8103:YES)、ステップ8104に移行する。さもなくば(ステップ8103:NO)、ステップ8102に移行する。
ステップ8104で、プロセッサ101は、コントローラ103から全ての画素データを1つずつ読み込んで、1組のメモリ102に順次格納する。
ステップ8105で、プロセッサ101は、1組のメモリ102に格納された複数の画素データから少なくとも1ビットのメモリ書き換え用同期信号を生成する。
ステップ8106で、プロセッサ101は、メモリ書き換え用同期信号を判定する。もしメモリ書き換え用同期信号が1であれば(ステップ8106:YES)、ステップ8107に移行する。さもなくば(ステップ8106:NO)、ステップ8102に移行する。
ステップ8107で、プロセッサ101は、1組のメモリ102に格納された複数の画素データから少なくとも1ビットの記憶データを生成する。
ステップ8108で、プロセッサ101は、1組のメモリ102に格納された複数の画素データから少なくとも1ビットのメモリアドレスを生成する。
ステップ8109で、プロセッサ101は、生成された記憶データを生成されたメモリアドレスに格納する。このとき、このメモリアドレスには適当なオフセットアドレスが加えられても良い。
ステップ8110で、プロセッサ101は、メモリ書き換え信号を判定する。もしメモリ書き換え信号が1であれば(ステップ8110:YES)、ステップ8102に移行する。さもなくば(ステップ8110:NO)、ステップ8111に移行する。
ステップ8111で、プロセッサ101は、1組のメモリ102に退避されたデータをプロセッサ101のレジスタに復元し、このメモリ書き換えルーチンを終了する。
さて、ここまでは、プロセッサ101が1組のメモリ102中の少なくとも1つの記憶データを書き換えるためのメモリ書き換えルーチンについて説明してきた。上述のように、このメモリ書き換えルーチンのステップ8005、8007及び8008において、プロセッサ101は1組のメモリ102中の複数の画素データから、それぞれメモリ書き換え用同期信号、記憶データ及びメモリアドレスを生成しなければならない。そこで以下では、1個のセンサモジュール252が3×3の受光素子261を有する際に、対応するデジタル回路402のプロセッサ101が1組のメモリ102中の複数の画素データから2ビットのデジタル情報を生成する方法について説明する。
まず、プロセッサ101は、光源291からこのセンサモジュール252に照射された光を 二値の画素データとして扱うものとする。したがって、対応するデジタル回路402の1組のメモリ102に格納される9つの画素データの組み合せの数は2の9乗=512通りである。次に、光源291がセンサモジュール252の9個の受光素子261にそれぞれ異なる強さの光を照射できるように、光源291とセンサモジュール252が配置されるものとする。したがって、対応するデジタル回路402の1組のメモリ102には、実際に512パターンの画素データが格納され得る。最後に、光源291がセンサモジュール252に照射する光は縞模様であるものとする。したがって、センサモジュール252が受光する縞の幅は、0〜3画素となる。このとき、センサモジュール252が、光源291が照射する光を横倒しや上下逆さまに受光したとしても、さらに1組のメモリ102に格納される9つの画素データのうち1つが間違ったとしても、プロセッサ101は正確にデジタル情報を生成しなければらない。そこでプロセッサ101が、1組のメモリ102に格納された9つの画素データを、第139図及び第140図に示す74パターンの画素データと比較することにより、プロセッサ101は1である画素データの割合が0、1/3、2/3及び1である4グループの中から1つを正確に選ぶことができる。つまりプロセッサ101は2ビットのデジタル情報を生成することができる。なお、第139図及び第140図では、黒い四角が0を表し、白い四角が1を表すものとする。 また第139図(a)は1である画素データの割合が0である1つのパターンの画素データを示し、第139図(b)〜(i)は1である画素データの割合が1/3である36パターンの画素データを示し、 第140図(a)〜(h)は1である画素データの割合が2/3である36パターンの画素データを示し、第140図(i)は1である画素データの割合が1である1つのパターンの画素データを示す。
なお、ここではプロセッサ101が光源291から照射された光を二値の画素データとして扱う場合について説明したが、 勿論プロセッサ101が この光を複数ビットの画素データとして扱うことができるように、光源291及びセンサモジュール252が配置されることにより、プロセッサ101は2ビット以上のデジタル情報を生成することができる。さらに光源291が、正方形、三角形、十字のように縞模様よりも複雑なパターンを出力することにより、プロセッサ101は2ビット以上のデジタル情報を生成することができる。特にセンサモジュール252が多数の受光素子261を有すれば、プロセッサ101は、位置ずれ及びノイズによる誤動作を防ぎながら、2ビット以上のデジタル情報を生成することができる。
ところで、センサモジュール252は、原色フィルタを用いることにより、赤、緑及び青を検知したり、さらには補色フィルタを用いることにより、シアン、マジェンダ、イエロー及び緑を検知することができる。この他に、受光素子261に焦電素子を用いることにより、センサモジュール252は赤外線を検知することもできる。そこでカラー映像のような複数の帯域を含む光を 光源291がセンサモジュール252に照射することにより、対応するデジタル回路402の1組のメモリ102は、 受光素子261の数に帯域数を掛け合わせた数の画素データを 格納することができる。例えば、3×3の受光素子261を有するセンサモジュール252に原色フィルタが取り付けられた場合、プロセッサ101は、前述の方法に従い、 6ビットのデジタル情報を生成することができる。勿論、赤、緑及び青の3つの帯域がそれぞれメモリ書き換え用同期信号、記憶データ及びメモリアドレスに割り当てられることにより、プロセッサ101は2ビットのメモリ書き換え用同期信号、2ビットの記憶データ及び2ビットのメモリアドレスを生成することもできる。
さて、第136図に示したように、ディスプレイのような光源291を用いた場合、第139図 及び第140図のようなパターンの光をイメージセンサ251の全てのセンサモジュール252に照射するためには、この光源291は高解像度の画像を表示しなければならない。しかしながら、もし光源291が干渉縞を発生させることができれば、この光源291は、第139図及び第140図のようなパターンの光を簡単にイメージセンサ251の全てのセンサモジュール252に照射することができる。例えば、第141図に示すように、透過型の回折格子293が用いられた場合、 光源291によって照射された単波長の光は、レンズ292により平行波に変換され、さらにこの回折格子293に照射されることにより、この回折格子293は、各々の縞の幅が極めて細い干渉縞を発生させることができる。したがって、イメージセンサ251の全てのセンサモジュール252は、縞の幅が同じ光を受光することができる。なお、光の波長が変更されるか、光の入射角度が変更されるか、又は回折格子293のスリットの幅が変更されることにより、干渉縞の各々の縞の幅は変更される。第142図に示すように、反射型の回折格子293が用いられた場合でも、イメージセンサ251の全てのセンサモジュール252は縞の幅が同じ光を受光することができる。さらに第143図に示すように、ハーフミラーなどを用いて 光導波路294中に回折格子293が形成された場合、光源291が発生したレーザ光線のような同位相の光が 光導波路294に入射することにより、この回折格子293は、縞の幅が極めて細い干渉縞を発生させることができる。したがって、イメージセンサ251の全てのセンサモジュール252は縞の幅の同じ光を受光することができる。
以上、本実施形態を説明したが、本発明は上述の実施形態には限定されることはなく、当業者であれば種々なる態様を実施可能であり、本発明の技術的思想を逸脱しない範囲において本発明の構成を適宜改変できることは当然であり、このような改変も、本発明の技術的範囲に属するものである。
産業上の利用可能性
請求項1及び2記載の発明によれば、配列演算ユニット100は、受信した計算データを最大でも2方向にしか転送せず、しかもその多くは1方向だけで良い。つまりプロセッサ101が計算データをコントローラ103に書き込む際に、プロセッサ101がコントローラ103に待たされる確率は低くなる。しかも配列演算ユニット100は計算データの転送負荷を分散させることができるので、配列演算ユニット100は計算データを効率よく転送することができる。
請求項3及び4記載の発明によれば、仮想配列演算ユニット105は、受信した計算データを最大でも2方向にしか転送せず、しかもその多くは1方向だけで良い。つまりプロセッサ101が計算データをコントローラ103に書き込む際に、プロセッサ101がコントローラ103に待たされる確率は低くなる。さらに仮想配列演算ユニット105に含まれる配列演算ユニット100の数が増えれば増えるほど、プロセッサ101は計算データをコントローラ103に書き込まなくなるので、仮想配列演算ユニット105は計算データを効率よく転送することができる。
【図面の簡単な説明】
第1図は、デジタル画像中の少なくとも1個の物体のおおよその輪郭の位置、大きさ及び形を認識する視覚装置のブロック図である。
第2図は、デジタル画像中の1個の物体の領域を背景から分離する視覚装置のブロック図である。
第3図は、デジタル画像中の1個の物体の色を認識する視覚装置のブロック図である。
第4図は、デジタル画像中の1個の物体のパターンを認識する視覚装置のブロック図である。
第5図は、デジタル画像中の1個の物体の位置、大きさ及び傾きを検出する視覚装置のブロック図である。
第6図は、デジタル画像中の1個の物体を認識する視覚装置のブロック図である。
第7図は、少なくとも1個の物体を表すデジタル画像を理解する視覚装置のブロック図である。
第8図は、移動カメラを制御して物体を探索する視覚装置のブロック図である。
第9図は、レンズ光軸を中心にして移動カメラを回転した場合の画像座標の説明図である。
第10図は、移動カメラを制御して物体を探索し、物体の数を数える視覚装置のブロック図である。
第11図は、格子状に配置された配列演算ユニットのブロック図である。
第12図は、反時計回りに順番付けられた8近傍の番号の説明図である。
第13図は、本実施形態の画像記憶手段のアルゴリズムを示すフローチャートである。
第14図は、デジタル画像中の特定の色に対して色情報を生成する場合の説明図である。
第15図は、本実施形態の色情報生成手段のアルゴリズムを示すフローチャートである。
第16図は、デジタル画像を用いて粗エッジ情報を生成する場合の説明図である。
第17図は、本実施形態のエッジ情報生成手段のアルゴリズムを示すフローチャートである。
第18図は、デジタル画像を用いて粗エッジ情報を形成エッジ情報に形成する場合の説明図である。
第19図は、本実施形態のエッジ情報形成手段のアルゴリズムを示すフローチャートである。
第20図は、低解像度デジタル画像から生成された低解像度粗エッジ情報を形成エッジ情報に形成する場合の説明図である。
第21図は、低解像度デジタル画像から生成された低解像度粗エッジ情報の領域を切り出してから形成エッジ情報に形成する場合の説明図である。
第22図は、エッジ情報画像中の物体の位置及び大きさを検出する場合の説明図である。
第23図は、本実施形態の位置/大きさ検出手段のアルゴリズムを示すフローチャートである。
第24図は、物体領域画像中の物体の位置及び大きさを検出する場合の説明図である。
第25図は、エッジ情報画像中の物体の位置、大きさ及び傾きを検出する場合の説明図である。
第26図は、本実施形態の位置/大きさ/傾き検出装置のアルゴリズムを示すフローチャートである。
第27図は、物体領域画像中の物体の位置、大きさ及び傾きを検出する場合の説明図である。
第28図は、移動元重複情報の例の説明図である。
第29図は、色情報画像中のテクスチャの位置、大きさ及び傾きを検出する場合の説明図である。
第30図は、エッジ情報画像中の物体の位置、大きさ及び傾きを検出し、傾き大きさ情報を出力する場合の説明図である。
第31図は、形成エッジ情報画像中の線分の法線方向を検出する場合の説明図である。
第32図は、形成エッジ情報画像中の十字形の法線方向を検出する場合の説明図である。
第33図は、形成エッジ情報画像中の三角形を構成する複数の線分の法線方向を検出する場合の説明図である。
第34図は、形成エッジ情報画像中の四角形を構成する複数の線分の法線方向を検出する場合の説明図である。
第35図は、形成エッジ情報画像中の菱形を構成する複数の線分の法線方向を検出する場合の説明図である。
第36図は、形成エッジ情報画像中の円形を構成する曲線の法線方向を検出する場合の説明図である。
第37図は、線分を含む形成エッジ情報画像及び傾き大きさ情報画像から移動元傾き重複情報画像を生成する場合の説明図である。
第38図は、三角形を含む形成エッジ情報画像及び傾き大きさ情報画像から移動元傾き重複情報画像を生成する場合の説明図である。
第39図は、四角形を含む形成エッジ情報画像及び傾き大きさ情報画像から移動元傾き重複情報画像を生成する場合の説明図である。
第40図は、菱形を含む形成エッジ情報画像及び傾き大きさ情報画像から移動元傾き重複情報画像を生成する場合の説明図である。
第41図は、円形を含む形成エッジ情報画像及び傾き大きさ情報画像から移動元傾き重複情報画像を生成する場合の説明図である。
第42図は、本実施形態の位置/大きさ/形検出装置のアルゴリズムを示すフローチャートである。
第43図は、三角形の形成エッジ情報画像を入力して、移動元傾き重複情報画像を出力する場合の説明図である。
第44図は、不完全な三角形の形成エッジ情報画像を入力して、移動元傾き重複情報画像を出力する場合の説明図である。
第45図は、第40図は、三角形の形成エッジ情報画像を入力して、形大きさ情報画像を出力する場合の説明図である。
第46図は、顔パーツの形成エッジ情報画像を入力して、形大きさ情報画像を出力する場合の説明図である。
第47図は、テクスチャの形成エッジ情報画像を入力して、形大きさ情報画像を出力する場合の説明図である。
第48図は、デジタル画像の分離物体領域を正規化する場合の説明図である。
第49図は、本実施形態の領域正規化手段のアルゴリズムを示すフローチャートである。
第50図は、画素間の補間を省略した場合における本実施形態の領域正規化手段のアルゴリズムを示すフローチャートである。
第51図は、分離物体領域画像を用いてデジタル画像からマスク画像を生成する場合の説明図である。
第52図は、本実施形態のマスク手段のアルゴリズムを示すフローチャートである。
第53図は、本実施形態の画像保持手段のアルゴリズムを示すフローチャートである。
第54図は、入力画像に対してテンプレート画像の中からパターンマッチングをする場合の説明図である。
第55図は、本実施形態のパターンマッチング手段のアルゴリズムを示すフローチャートである。
第56図は、三角形の形成エッジ情報画像及び重複情報画像から物体領域画像を生成する場合の説明図である。
第57図は、本実施形態の物体/背景分離手段のアルゴリズムを示すフローチャートである。
第58図は、破線状態の三角形のエッジ情報が破線三角形の内側領域と外側領域に分離する状態を示す説明図である。
第59図は、三角形を2つ重ねたエッジ情報が2つの三角形領域と背景領域に分離する状態を示す説明図である。
第60図は、2つの円形物体領域を重ねた時の破線状態のエッジ情報が2つの円形領域と背景領域に分離した状態を示す説明図である。
第61図は、配列演算ユニットの内部構造のブロック図である。
第62図は、コントローラのブロック図である。
第63図は、フラグデコーダの入出力信号を示す説明図である。
第64図は、フラグエンコーダの入出力信号を示す説明図である。
第65図は、フラグデコーダ及びフラグレジスタの回路図である。
第66図は、フラグエンコーダ及びステータスレジスタのブロック図である。
第67図は、右配列演算ユニットと通信するフラグエンコーダとステータスレジスタの回路図である。
第68図は、5個のコントローラを平面上に配置した場合の配列演算ユニットの説明図である。
第69図は、5個のコントローラを積み重ねた場合の配列演算ユニットの説明図である。
第70図は、16個の配列演算ユニットを1個の仮想配列演算ユニットと見なした場合の説明図である。
第71図は、1個の仮想配列演算ユニットに含まれる16個の配列演算ユニットにコントローラ用の割り当て番号を付けた場合の説明図である。
第72図は、16個の配列演算ユニットが出力した16個の前入力データを順次記憶するシフトレジスタの説明図である。
第73図は、配列演算ユニットが120近傍に反時計回りでデータを転送する場合の転送ルートの説明図である。
第74図は、配列演算ユニットと一致する仮想配列演算ユニットが120近傍に反時計回りでデータを転送する場合の転送ルートの説明図である。
第75図は、4×4の配列演算ユニットを含む仮想配列演算ユニットが120近傍に反時計回りでデータを転送する場合の原理的な転送ルートの説明図である。
第76図は、4×4の配列演算ユニットを含む仮想配列演算ユニットが120近傍に反時計回りでデータを転送する場合の実際の転送ルートの説明図である。
第77図は、配列演算ユニットの4個のコントローラの各々が、上側の配列演算ユニットのコントローラのうち、割り当られた番号が1つ小さいものにデータを送信する場合の配線の説明図である。
第78図は、配列演算ユニットの4個のコントローラの各々が、下側の配列演算ユニットのコントローラのうち、割り当られた番号が1つ大きいものにデータを送信する場合の配線の説明図である。
第79図は、配列演算ユニットの4個のコントローラの各々が、左側の配列演算ユニットのコントローラのうち、割り当られた番号が1つ大きいものにデータを送信する場合の配線の説明図である。
第80図は、配列演算ユニットの4個のコントローラの各々が、右側の配列演算ユニットのコントローラのうち、割り当られた番号が1つ小さいものにデータを送信する場合の配線の説明図である。
第81図は、配列演算ユニットにおいて垂直に配置された4個のコントローラの各々が、右側の配列演算ユニットのコントローラのうち、割り当られた番号が1つ小さいものにデータを送信する場合の配線の説明図である。
第82図は、転送用のコントローラを備えた配列演算ユニットが反時計回りにデータを転送する場合の右上方向の転送ルートの説明図である。
第83図は、転送用と再転送用のコントローラを備えた配列演算ユニットが反時計回りにデータを転送する場合の右上方向の転送ルートの説明図である。
第84図は、4個の転送回路を備えたコントローラの説明図である。
第85図は、通信ステータスバッファのビット毎の割当の説明図である。
第86図は、16個の前入力データを入力する前入力回路の説明図である。
第87図は、前入力回路用コントローラの状態遷移図である。
第88図は、16個の結果データを出力する結果出力回路の説明図である。
第89図は、結果出力回路用コントローラの状態遷移図である。
第90図は、正論理の送達と受領を通信し、送達がアクティブの時に計算データを記憶する転送回路の説明図である。
第91図は、正論理の送達と受領を通信する転送回路用コントローラの状態遷移図である。
第92図は、負論理の送達と受領を通信し、送達がアクティブの時に計算データを記憶する転送回路の説明図である。
第93図は、負論理の送達と受領を通信し、送達の立ち上がり時に計算データを記憶する転送回路の説明図である。
第94図は、計算ステータスのビット毎の割当の説明図である。
第95図は、仮想配列演算ユニットに含まれる4×4個の配列演算ユニットのポジションの説明図である。
第96図は、基本的な連動式カウンタの回路図である。
第97図は、3つのフリップフロップを用いた同期式カウンタの回路図である。
第98図は、同期式カウンタが5まで数える連動式カウンタの回路図である。
第99図は、型番74163を用いた同期式カウンタの回路図である。
第100図は、3つの連動式カウンタから構成されるネットワークのブロック図である。
第101図は、3つの連動式カウンタが同期した場合のタイミングチャートである。
第102図は、3つの連動式カウンタのうち1つの位相が進んだ場合のタイミングチャートである。
第103図は、3つの連動式カウンタのうち1つの位相が遅れた場合のタイミングチャートである。
第104図は、3つの連動式カウンタの位相が異なる場合のタイミングチャートである。
第105図は、同期式発振回路を備えた連動式カウンタの回路図である。
第106図は、同期式発振回路を備え、同期式カウンタが5まで数える連動式カウンタの回路図である。
第107図は、リング発振器を用いた場合の同期式発振回路の回路図である。
第108図は、第107図のタイミングチャートである。
第109図は、CMOSゲートから構成されるリング発振器を用いた場合の同期式発振回路の回路図である。
第110図は、TTLゲートから構成される非安定マルチバイブレータを用いた場合の同期式発振回路の回路図である。
第111図は、ループフィルタ及び電圧制御発振器を用いた場合の同期式発振回路の回路図である。
第112図は、第111図のタイミングチャートである。
第113図は、正方格子状に配列された連動式カウンタから構成されるネットワークのブロック図である。
第114図は、六角格子状に配列された連動式カウンタから構成されるネットワークのブロック図である。
第115図は、互いの距離が等しくなるように配列された連動式カウンタから構成されるネットワークのブロック図である。
第116図は、格子が重なるように連動式カウンタを積層した場合の説明図である。
第117図は、連動式カウンタ、デジタル回路及びアナログ回路を積層した場合の説明図である。
第118図は、信号分配用フリップフロップ回路の出力によって信号分配用ラッチ回路がリセットされる場合において、信号分配用デコーダの出力のうち3番及び5番を用いて出力信号を生成する連動式信号分配回路の回路図である。
第119図は、信号分配用デコーダの出力のうち3番及び5番を用いて出力信号を生成する連動式信号分配回路のタイミングチャートである。
第120図は、信号分配用デコーダの出力によって信号分配用ラッチ回路がリセットされる場合において、信号分配用デコーダの出力のうち3番及び5番を用いて出力信号を生成する連動式信号分配回路の回路図である。
第121図は、格子状に配列された複数のセンサモジュールが並列に画素信号を出力する場合の説明図である。
第122図は、六角格子状に配列された複数のセンサモジュールが並列に画素信号を出力する場合の説明図である。
第123図は、受光素子及び電荷転送ゲートから構成される画素セルの説明図である。
第124図は、センサモジュールが、S字状に配置された電荷結合素子及び電荷転送用駆動装置を用いて、格子状に配列された複数の画素セルから順次画素信号を取り出す場合の説明図である。
第125図は、センサモジュールが、渦巻き状に配置された電荷結合素子及び電荷転送用駆動装置を用いて、格子状に配列された複数の画素セルから順次画素信号を取り出す場合の説明図である。
第126図は、センサモジュールが、渦巻き状に配置された電荷結合素子を用いて、六角格子状に配列された複数の画素セルから順次画素信号を取り出す場合の説明図である。
第127図は、受光素子、電荷増幅器及び行選択ゲートから構成される画素セルの説明図である。
第128図は、センサモジュールが、垂直シフトレジスタ及び水平シフトレジスタを用いて、格子状に配列された複数の画素セルから順次画素信号を取り出す場合の説明図である。
第129図は、格子状に配列された複数のセンサモジュールの各々が、上方から光を受光し、下方に画素信号を出力する場合の説明図である。
第130図は、六角格子状に配列された複数のセンサモジュールの各々が、上方から光を受光し、下方に画素信号を出力する場合の説明図である。
第131図は、複数の受光素子が実装された層と、電荷転送用駆動装置、複数の電荷転送ゲート及び出力増幅器が実装された層と、電荷結合素子が実装された層と、が積層された場合の説明図である。
第132図は、複数の受光素子が実装された層と、複数の電荷増幅器が実装された層と、垂直シフトレジスタ、水平シフトレジスタ、複数の行選択ゲート、複数のノイズキャンセラ、複数の列選択ゲート及び出力増幅器が実装された層と、が積層された場合の説明図である。
複第133図は、数のセンサモジュールが実装された層と、複数のA/D変換回路が実装された層と、複数のデジタル回路が実装された層と、が積層された場合の説明図である。
第134図は、プロセッサ、1組のメモリ及びコントローラを備えたデジタル回路のブロック図である。
第135図は、前入力シフトレジスタが画素データを順次入力し、前入力データレジスタが画素データを保持し、アドレスデコーダが画素データを選択するコントローラのブロック図である。
第136図は、光源からデジタル回路を備えたイメージセンサに光を照射する場合の説明図である。
第137図は、プロセッサがコントローラを監視しながら、1組のメモリ中の記憶データを書き換えるためのメモリ書き換えルーチンのフローチャートである。
第138図は、プロセッサがメモリ書き換え信号を入力した際に、1組のメモリ中の記憶データを書き換えるためのメモリ書き換えルーチンのフローチャートである。
第139図は、3×3の受光素子のうち0又は3個が光を受光する場合に1組のメモリに格納される9つの画素データの説明図である。
第140図は、3×3の受光素子のうち6又は9個が光を受光する場合に1組のメモリに格納される9つの画素データの説明図である。
第141図は、透過型回折格子を用いてイメージセンサに干渉縞を照射する場合の説明図である。
第142図は、反射型回折格子を用いてイメージセンサに干渉縞を照射する場合の説明図である。
第143図は、光導波路中に形成された回折格子を用いてイメージセンサに干渉縞を照射する場合の説明図である。
Claims (4)
- 二次元格子状に配列された複数の配列演算ユニットを含む視覚装置において、
複数の前記配列演算ユニットの各々が、
前記配列演算ユニットにおいて計算された計算データを4近傍の前記配列演算ユニットに送信する手段と、
前記4近傍のうち左側の前記配列演算ユニットから受信した前記計算データを右側及び上側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、
前記4近傍のうち下側の前記配列演算ユニットから受信した前記計算データを上側及び左側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、
前記4近傍のうち右側の前記配列演算ユニットから受信した前記計算データを左側及び下側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、
前記4近傍のうち上側の前記配列演算ユニットから受信した前記計算データを下側及び右側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、
を備えることにより、
前記配列演算ユニットの前記計算データの各々が二次元格子状に配列された複数の前記配列演算ユニット間を反時計回りに転送されることを特徴とする視覚装置。 - 二次元格子状に配列された複数の配列演算ユニットを含む視覚装置において、
複数の前記配列演算ユニットの各々が、
前記配列演算ユニットにおいて計算された計算データを4近傍の前記配列演算ユニットに送信する手段と、
前記4近傍のうち左側の前記配列演算ユニットから受信した前記計算データを右側及び下側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、
前記4近傍のうち下側の前記配列演算ユニットから受信した前記計算データを上側及び右側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、
前記4近傍のうち右側の前記配列演算ユニットから受信した前記計算データを左側及び上側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、
前記4近傍のうち上側の前記配列演算ユニットから受信した前記計算データを下側及び左側のうち少なくとも1個の前記配列演算ユニットに転送する手段と、
を備えることにより、
前記配列演算ユニットの前記計算データの各々が二次元格子状に配列された複数の前記配列演算ユニット間を時計回りに転送されることを特徴とする視覚装置。 - 二次元格子状に配列された複数の仮想配列演算ユニットを含む視覚装置において、
複数の前記仮想配列演算ユニットの各々が、
前記仮想配列演算ユニットにおいて計算された計算データを4近傍の前記仮想配列演算ユニットに送信する手段と、
前記4近傍のうち左側の前記仮想配列演算ユニットから受信した前記計算データを右側及び上側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、
前記4近傍のうち下側の前記仮想配列演算ユニットから受信した前記計算データを上側及び左側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、
前記4近傍のうち右側の前記仮想配列演算ユニットから受信した前記計算データを左側及び下側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、
前記4近傍のうち上側の前記仮想配列演算ユニットから受信した前記計算データを下側及び右側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、
を備えることにより、
前記仮想配列演算ユニットの前記計算データの各々が二次元格子状に配列された複数の前記仮想配列演算ユニット間を反時計回りに転送されることを特徴とする視覚装置。 - 二次元格子状に配列された複数の仮想配列演算ユニットを含む視覚装置において、
複数の前記仮想配列演算ユニットの各々が、
前記仮想配列演算ユニットにおいて計算された計算データを4近傍の前記仮想配列演算ユニットに送信する手段と、
前記4近傍のうち左側の前記仮想配列演算ユニットから受信した前記計算データを右側及び下側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、
前記4近傍のうち下側の前記仮想配列演算ユニットから受信した前記計算データを上側及び右側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、
前記4近傍のうち右側の前記仮想配列演算ユニットから受信した前記計算データを左側及び上側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、
前記4近傍のうち上側の前記仮想配列演算ユニットから受信した前記計算データを下側及び左側のうち少なくとも1個の前記仮想配列演算ユニットに転送する手段と、
を備えることにより、
前記仮想配列演算ユニットの前記計算データの各々が二次元格子状に配列された複数の前記仮想配列演算ユニット間を時計回りに転送されることを特徴とする視覚装置。
Applications Claiming Priority (15)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001069886 | 2001-03-13 | ||
JP2001069886 | 2001-03-13 | ||
JP2001134921 | 2001-05-02 | ||
JP2001134921 | 2001-05-02 | ||
JP2001160172 | 2001-05-29 | ||
JP2001160172 | 2001-05-29 | ||
JP2001176755 | 2001-06-12 | ||
JP2001176755 | 2001-06-12 | ||
JP2001229174 | 2001-07-30 | ||
JP2001229174 | 2001-07-30 | ||
JP2001321614 | 2001-10-19 | ||
JP2001321614 | 2001-10-19 | ||
JP2001388967 | 2001-12-21 | ||
JP2001388967 | 2001-12-21 | ||
PCT/JP2002/002110 WO2002073538A1 (fr) | 2001-03-13 | 2002-03-07 | Dispositif visuel, compteur asservi et capteur d'images |
Related Child Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008163569A Division JP4589987B2 (ja) | 2001-03-13 | 2008-06-23 | 連動式カウンタ及び連動装置 |
JP2008163232A Division JP2008259244A (ja) | 2001-03-13 | 2008-06-23 | イメージセンサ |
JP2008163764A Division JP4625513B2 (ja) | 2001-03-13 | 2008-06-23 | 視覚装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2002073538A1 JPWO2002073538A1 (ja) | 2004-07-02 |
JP4202146B2 true JP4202146B2 (ja) | 2008-12-24 |
Family
ID=27567025
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002572118A Expired - Fee Related JP4202146B2 (ja) | 2001-03-13 | 2002-03-07 | 視覚装置 |
JP2008163232A Pending JP2008259244A (ja) | 2001-03-13 | 2008-06-23 | イメージセンサ |
JP2008163569A Expired - Fee Related JP4589987B2 (ja) | 2001-03-13 | 2008-06-23 | 連動式カウンタ及び連動装置 |
JP2008163764A Expired - Fee Related JP4625513B2 (ja) | 2001-03-13 | 2008-06-23 | 視覚装置 |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008163232A Pending JP2008259244A (ja) | 2001-03-13 | 2008-06-23 | イメージセンサ |
JP2008163569A Expired - Fee Related JP4589987B2 (ja) | 2001-03-13 | 2008-06-23 | 連動式カウンタ及び連動装置 |
JP2008163764A Expired - Fee Related JP4625513B2 (ja) | 2001-03-13 | 2008-06-23 | 視覚装置 |
Country Status (6)
Country | Link |
---|---|
US (5) | US20040051795A1 (ja) |
EP (1) | EP1378862B1 (ja) |
JP (4) | JP4202146B2 (ja) |
CN (1) | CN1301491C (ja) |
DE (1) | DE60238041D1 (ja) |
WO (1) | WO2002073538A1 (ja) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100419668C (zh) * | 2003-05-23 | 2008-09-17 | 日本电信电话株式会社 | 并行处理设备和并行处理方法 |
GB2403799B (en) * | 2003-07-11 | 2006-04-12 | Rolls Royce Plc | Image-based measurement |
JP4428067B2 (ja) * | 2004-01-28 | 2010-03-10 | ソニー株式会社 | 画像照合装置、プログラム、および画像照合方法 |
US7733298B2 (en) * | 2004-10-19 | 2010-06-08 | Hewlett-Packard Development Company, L.P. | Display device |
GB2431717A (en) * | 2005-10-31 | 2007-05-02 | Sony Uk Ltd | Scene analysis |
JP2009049979A (ja) * | 2007-07-20 | 2009-03-05 | Fujifilm Corp | 画像処理装置、画像処理方法、画像処理システム、及びプログラム |
JP4636130B2 (ja) * | 2008-06-27 | 2011-02-23 | ソニー株式会社 | 画像処理装置、撮像装置、画像処理方法、およびプログラム |
US8405720B2 (en) * | 2008-08-08 | 2013-03-26 | Objectvideo, Inc. | Automatic calibration of PTZ camera system |
JP4702440B2 (ja) * | 2008-11-27 | 2011-06-15 | ソニー株式会社 | 情報処理装置、表示切替方法、及びプログラム |
JP4748270B2 (ja) * | 2009-01-30 | 2011-08-17 | 株式会社ニコン | 画像処理装置および画像処理プログラム |
US8184804B2 (en) * | 2009-04-30 | 2012-05-22 | Apple Inc. | Hash function using a piling-up process |
JP5656370B2 (ja) * | 2009-07-01 | 2015-01-21 | キヤノン株式会社 | 画像処理装置、画像処理システム、画像処理方法、およびプログラム |
US9129409B2 (en) * | 2009-07-29 | 2015-09-08 | Qualcomm Incorporated | System and method of compressing video content |
US9106925B2 (en) * | 2010-01-11 | 2015-08-11 | Ubiquity Holdings, Inc. | WEAV video compression system |
JP2013530415A (ja) * | 2010-04-22 | 2013-07-25 | クォルコム・メムズ・テクノロジーズ・インコーポレーテッド | 一体型プロセッサおよびメモリユニットを有するアクティブマトリクス画素 |
US8654226B2 (en) | 2011-03-16 | 2014-02-18 | Analog Devices, Inc. | Clock gated power saving shift register |
US9257468B2 (en) | 2012-11-21 | 2016-02-09 | Olympus Corporation | Solid-state imaging device, imaging device, and signal reading medium that accumulates an amplified signal without digitization |
JP5820627B2 (ja) | 2011-06-09 | 2015-11-24 | オリンパス株式会社 | 固体撮像装置、撮像装置、および信号読み出し方法 |
US9013615B2 (en) * | 2011-09-21 | 2015-04-21 | Semiconductor Components Industries, Llc | Image sensor with flexible interconnect capabilities |
WO2013049333A1 (en) * | 2011-09-28 | 2013-04-04 | Panavision Imaging | System and method for delayed clock distribution in column-parallel a/d architectures used in cmos image sensors |
JP5893417B2 (ja) * | 2012-01-24 | 2016-03-23 | キヤノン株式会社 | 解析装置、制御方法、およびプログラム |
WO2013153657A1 (ja) * | 2012-04-12 | 2013-10-17 | 株式会社 日立製作所 | 三相同期電動機駆動装置 |
CN104737527B (zh) * | 2012-09-19 | 2018-06-22 | 富士胶片株式会社 | 图像处理装置、摄像装置及图像处理方法 |
US9854138B2 (en) * | 2012-09-20 | 2017-12-26 | Gyrus Acmi, Inc. | Fixed pattern noise reduction |
JP6404101B2 (ja) * | 2013-12-05 | 2018-10-10 | Ckd株式会社 | 配管継手、流体供給制御装置、及び配管接続構造 |
US10049469B2 (en) | 2013-12-16 | 2018-08-14 | Stc.Unm | System and methods for computing forward and inverse discrete periodic radon transform |
JP6355397B2 (ja) * | 2014-04-10 | 2018-07-11 | キヤノン株式会社 | 固体撮像素子その制御方法、電子機器、プログラム、記憶媒体 |
CN104218165A (zh) * | 2014-08-20 | 2014-12-17 | 京东方科技集团股份有限公司 | 一种有机发光二极管器件及显示装置 |
JP2018101165A (ja) * | 2015-04-27 | 2018-06-28 | 国立大学法人 奈良先端科学技術大学院大学 | 色画像処理方法、色画像処理プログラム、物体認識方法及び装置 |
CN107637064A (zh) | 2015-06-08 | 2018-01-26 | 深圳市大疆创新科技有限公司 | 用于图像处理的方法和设备 |
US9809720B2 (en) * | 2015-07-06 | 2017-11-07 | University Of Massachusetts | Ferroelectric nanocomposite based dielectric inks for reconfigurable RF and microwave applications |
US11275582B2 (en) * | 2017-01-06 | 2022-03-15 | Montana Systems Inc. | Event-driven design simulation |
US10839992B1 (en) | 2019-05-17 | 2020-11-17 | Raytheon Company | Thick film resistors having customizable resistances and methods of manufacture |
Family Cites Families (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1258595A (ja) * | 1969-06-23 | 1971-12-30 | ||
US3671875A (en) * | 1971-05-20 | 1972-06-20 | Bell Telephone Labor Inc | Digitally operated signal regenerator and timing circuit |
GB1454781A (en) * | 1973-04-03 | 1976-11-03 | Marconi Co Ltd | Counter synchronization circuit |
US4635292A (en) * | 1983-12-19 | 1987-01-06 | Matsushita Electric Industrial Co., Ltd. | Image processor |
JPS60179871A (ja) * | 1984-02-27 | 1985-09-13 | Nippon Telegr & Teleph Corp <Ntt> | アレイプロセツサ |
JPS6238677A (ja) * | 1985-08-13 | 1987-02-19 | Mitsubishi Electric Corp | 固体撮像素子 |
US4805026A (en) * | 1986-02-18 | 1989-02-14 | Nec Corporation | Method for driving a CCD area image sensor in a non-interlace scanning and a structure of the CCD area image sensor for driving in the same method |
JPS63174356A (ja) | 1987-01-14 | 1988-07-18 | Agency Of Ind Science & Technol | 画像処理用半導体装置 |
US5129092A (en) * | 1987-06-01 | 1992-07-07 | Applied Intelligent Systems,Inc. | Linear chain of parallel processors and method of using same |
US4908751A (en) * | 1987-10-15 | 1990-03-13 | Smith Harry F | Parallel data processor |
US5144447A (en) * | 1988-03-31 | 1992-09-01 | Hitachi, Ltd. | Solid-state image array with simultaneously activated line drivers |
US4918742A (en) * | 1988-04-22 | 1990-04-17 | The Boeing Company | Image processing using multi-pass convolution with small kernels |
JPH01283677A (ja) * | 1988-05-11 | 1989-11-15 | Fujitsu Ltd | 視覚認識装置 |
JPH01286620A (ja) * | 1988-05-13 | 1989-11-17 | Nec Corp | n進カウンタ回路 |
US4920158A (en) * | 1989-10-11 | 1990-04-24 | Medipro Sciences Limited | Hydrogel-forming wound dressing or skin coating material |
US4972495A (en) * | 1988-12-21 | 1990-11-20 | General Electric Company | Feature extraction processor |
GB8901200D0 (en) * | 1989-01-19 | 1989-03-15 | Eev Ltd | Camera using imaging array |
JPH03227120A (ja) * | 1990-01-31 | 1991-10-08 | Nec Corp | カウンタ回路 |
US5577262A (en) * | 1990-05-22 | 1996-11-19 | International Business Machines Corporation | Parallel array processor interconnections |
KR930005746B1 (ko) * | 1990-10-13 | 1993-06-24 | 금성일렉트론 주식회사 | 지그재그 인터라인 고체 촬상소자 |
US5131054A (en) * | 1991-01-09 | 1992-07-14 | Thinking Machines Corporation | Character recognition system using massively parallel computer that identifies a query character using degree of similarity with plurality of training characters of known identity |
JPH04280677A (ja) * | 1991-03-08 | 1992-10-06 | Sony Corp | 積層型固体撮像装置 |
US5274476A (en) * | 1991-08-14 | 1993-12-28 | Gold Star Electron Co., Ltd. | CCD image sensor with photodiodes in a zig-zag pattern and particular transfer gate electrodes formed over channel stop regions and VCCD regions |
JPH05121713A (ja) * | 1991-10-28 | 1993-05-18 | Olympus Optical Co Ltd | 増幅型光素子を用いた3次元集積回路装置 |
JPH05324954A (ja) * | 1991-11-28 | 1993-12-10 | Nec Corp | 駐車台数計数装置 |
JP3173851B2 (ja) * | 1992-04-13 | 2001-06-04 | 三菱電機株式会社 | Csd方式の固体撮像装置 |
JPH05327479A (ja) * | 1992-05-18 | 1993-12-10 | Oki Micro Design Miyazaki:Kk | 半導体集積回路装置 |
DE4322343C2 (de) * | 1992-07-06 | 1996-10-02 | Mitsubishi Electric Corp | Mittel zum Erfassen eines Bewegungsvektors und Verfahren zum Bestimmen eines Bewegungsvektors |
DE4225388C2 (de) * | 1992-07-31 | 1996-08-14 | Siemens Ag | Schaltungsanordnung zur Synchronisierung von dezentralen Zählern |
US5530650A (en) * | 1992-10-28 | 1996-06-25 | Mcdonnell Douglas Corp. | Computer imaging system and method for remote in-flight aircraft refueling |
JPH07177435A (ja) * | 1993-12-17 | 1995-07-14 | Nippon Steel Corp | 高速視覚センサ装置 |
JP3247228B2 (ja) * | 1993-12-17 | 2002-01-15 | 東京瓦斯株式会社 | 流体の画像処理解析装置 |
JPH07192663A (ja) * | 1993-12-27 | 1995-07-28 | Hitachi Ltd | 撮像装置 |
US5454018A (en) * | 1993-12-30 | 1995-09-26 | Sgs-Thomson Microelectronics, Inc. | Counter circuit with automatic reset |
JP3163215B2 (ja) * | 1994-03-07 | 2001-05-08 | 日本電信電話株式会社 | 直線抽出ハフ変換画像処理装置 |
JP3308770B2 (ja) | 1994-07-22 | 2002-07-29 | 三菱電機株式会社 | 情報処理装置および情報処理装置における計算方法 |
JP3639014B2 (ja) * | 1994-10-21 | 2005-04-13 | 松下電器産業株式会社 | 信号処理装置 |
JP3424360B2 (ja) * | 1994-12-08 | 2003-07-07 | 株式会社日立製作所 | 固体撮像装置 |
KR970705894A (ko) * | 1995-06-23 | 1997-10-09 | 요트.게.아.롤페즈 | CCD 이미저를 동작시키는 방법과 이러한 방법을 수행시키기에 적합한 CCD 이미저(Method Of operating a CCD imager, and CCD imager suitable for the imple-mentation of such a method) |
JP2785782B2 (ja) * | 1995-12-27 | 1998-08-13 | 日本電気株式会社 | 固体撮像装置 |
JP3436629B2 (ja) * | 1996-01-08 | 2003-08-11 | シャープ株式会社 | 表示および撮像のための装置 |
JPH09247535A (ja) * | 1996-03-12 | 1997-09-19 | Toshiba Corp | 固体撮像装置 |
US6037577A (en) * | 1997-03-11 | 2000-03-14 | Kabushiki Kaisha Toshiba | Amplifying solid-state image pickup device and operating method of the same |
US6337713B1 (en) * | 1997-04-04 | 2002-01-08 | Asahi Kogaku Kogyo Kabushiki Kaisha | Processor for image-pixel signals derived from divided sections of image-sensing area of solid-type image sensor |
US6023753A (en) * | 1997-06-30 | 2000-02-08 | Billion Of Operations Per Second, Inc. | Manifold array processor |
JP3260663B2 (ja) * | 1997-07-23 | 2002-02-25 | 沖電気工業株式会社 | ホール内表面の組成分布検出方法 |
JP3619352B2 (ja) * | 1997-08-28 | 2005-02-09 | 株式会社ルネサステクノロジ | 半導体集積回路装置 |
JPH11353288A (ja) * | 1998-06-04 | 1999-12-24 | Toshiba Corp | 並列計算機及びメモリ装置 |
DE69935437T2 (de) * | 1998-09-10 | 2007-11-15 | Ecchandes Inc., Gamagori | Visuelle vorrichtung |
JP3632461B2 (ja) * | 1998-09-21 | 2005-03-23 | 松下電器産業株式会社 | 画像認識方法 |
JP3439699B2 (ja) * | 1998-11-05 | 2003-08-25 | 松下電器産業株式会社 | 増幅型固体撮像装置およびその駆動方法 |
JP2000184282A (ja) * | 1998-12-15 | 2000-06-30 | Canon Inc | 撮像装置、撮像装置の駆動方法、画像処理方法、情報記録媒体、及び画像処理システム |
US6970196B1 (en) * | 1999-03-16 | 2005-11-29 | Hamamatsu Photonics K.K. | High-speed vision sensor with image processing function |
JP2000278605A (ja) * | 1999-03-29 | 2000-10-06 | Canon Inc | 撮像装置および画像処理システム |
JP3987232B2 (ja) * | 1999-04-14 | 2007-10-03 | 日本放送協会 | Ccd型撮像素子の駆動方法およびccd型撮像装置 |
US6985182B1 (en) * | 1999-11-22 | 2006-01-10 | Matsushita Electric Industrial Co., Ltd. | Imaging device with vertical charge transfer paths having appropriate lengths and/or vent portions |
JP2001238435A (ja) * | 2000-02-25 | 2001-08-31 | Nec Corp | 電圧変換回路 |
WO2001069919A1 (en) * | 2000-03-10 | 2001-09-20 | Datacube, Inc. | Image processing system using an array processor |
JP4589562B2 (ja) * | 2000-05-11 | 2010-12-01 | 株式会社エッチャンデス | 連動式カウンタ、カウンタネットワーク及び連動式信号分配回路 |
US6518805B2 (en) * | 2000-10-04 | 2003-02-11 | Broadcom Corporation | Programmable divider with built-in programmable delay chain for high-speed/low power application |
-
2002
- 2002-03-07 WO PCT/JP2002/002110 patent/WO2002073538A1/ja active Application Filing
- 2002-03-07 JP JP2002572118A patent/JP4202146B2/ja not_active Expired - Fee Related
- 2002-03-07 DE DE60238041T patent/DE60238041D1/de not_active Expired - Lifetime
- 2002-03-07 CN CNB028048334A patent/CN1301491C/zh not_active Expired - Fee Related
- 2002-03-07 EP EP02702788A patent/EP1378862B1/en not_active Expired - Fee Related
-
2003
- 2003-03-07 US US10/471,555 patent/US20040051795A1/en not_active Abandoned
-
2007
- 2007-07-17 US US11/778,957 patent/US20080025593A1/en not_active Abandoned
- 2007-07-17 US US11/778,988 patent/US20080025567A1/en not_active Abandoned
- 2007-07-17 US US11/779,017 patent/US20080024667A1/en not_active Abandoned
- 2007-07-17 US US11/779,002 patent/US7664220B2/en not_active Expired - Fee Related
-
2008
- 2008-06-23 JP JP2008163232A patent/JP2008259244A/ja active Pending
- 2008-06-23 JP JP2008163569A patent/JP4589987B2/ja not_active Expired - Fee Related
- 2008-06-23 JP JP2008163764A patent/JP4625513B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1503959A (zh) | 2004-06-09 |
EP1378862A4 (en) | 2009-06-17 |
JP4589987B2 (ja) | 2010-12-01 |
EP1378862B1 (en) | 2010-10-20 |
US20040051795A1 (en) | 2004-03-18 |
CN1301491C (zh) | 2007-02-21 |
JP2008289179A (ja) | 2008-11-27 |
US20080024639A1 (en) | 2008-01-31 |
US20080024667A1 (en) | 2008-01-31 |
EP1378862A1 (en) | 2004-01-07 |
US20080025593A1 (en) | 2008-01-31 |
JPWO2002073538A1 (ja) | 2004-07-02 |
DE60238041D1 (de) | 2010-12-02 |
JP2008259244A (ja) | 2008-10-23 |
US20080025567A1 (en) | 2008-01-31 |
JP2008243233A (ja) | 2008-10-09 |
WO2002073538A1 (fr) | 2002-09-19 |
US7664220B2 (en) | 2010-02-16 |
JP4625513B2 (ja) | 2011-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4202146B2 (ja) | 視覚装置 | |
RU2623806C1 (ru) | Способ и устройство обработки стереоизображений | |
EP3384466B1 (en) | Quasi-parametric optical flow estimation | |
US9532030B2 (en) | Integrated three-dimensional vision sensor | |
WO1998047061A9 (en) | Data processing system and method for determining and analyzing correspondence information for a stereo image | |
CN108073857A (zh) | 动态视觉传感器dvs事件处理的方法及装置 | |
Fan et al. | F-C3D: FPGA-based 3-dimensional convolutional neural network | |
CN106125086A (zh) | 用于使用单次曝光的渡越时间测量的系统和方法 | |
US20220058820A1 (en) | Stereo image processing | |
WO2017096384A1 (en) | Quasi-parametric optical flow estimation | |
JP5939572B2 (ja) | データ処理装置 | |
Schmidt et al. | An optimized FPGA implementation for a parallel path planning algorithm based on marching pixels | |
JP2020140497A (ja) | 演算装置、視差算出方法 | |
RU168781U1 (ru) | Устройство обработки стереоизображений | |
Schmidt et al. | A smart camera processing pipeline for image applications utilizing marching pixels | |
JP2001184498A (ja) | イメージセンサー | |
JP2001242023A (ja) | タッチセンサ | |
JP2002209206A (ja) | 情報収集システム、人工眼球、視覚装置、イメージセンサ及び連動装置 | |
TW498290B (en) | Information collection system, mechanical eyeball, vision device, image sensor, and interlocking device | |
Coslado et al. | Hardware platform for region extraction in foveal images | |
Jin et al. | Pipelined virtual camera configuration for real-time image processing based on FPGA | |
JPH06318194A (ja) | 並列データ処理方式 | |
JP2001148023A (ja) | 視覚装置及び視覚方法 | |
JP2001043385A (ja) | 多帯域動画像中の移動物体のエッジ情報生成装置及び多帯域動画像中の移動物体のエッジ情報生成方法 | |
CN113496461A (zh) | 点云数据的处理方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080422 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080623 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080925 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081008 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111017 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |