(57)【特許請求の範囲】
【請求項１】
光電変換を行う光検出器と、
上記光検出器からの信号をデジタル信号に変換する回路と、順序回路の出力と上下左右隣の画像検出処理要素の変換器の出力との論理和を演算する論理和回路と、上記デジタル信号と上記論理和回路からの信号との論理積を演算して出力する論理積回路と、上記論理積回路の出力を入力とする上記順序回路とを有し、上記順序回路の出力を出力する変換器と、
上記デジタル信号を入力可能とし、上記変換器の出力と直列に接続された前段の第１の加算器の出力とに基づいた算術和を算出して出力する半加算器を有する第１の加算器と、
からなる複数の画像検出処理要素が行方向と列方向とからなる平面上に行列配列されてなる画像検出処理装置であって、
上記行方向の上記第１の加算器の各々が直列に接続され、
上記第１の加算器の各々は、上記行方向に直列に接続された前段の上記第１の加算器の出力信号に基づいて算術和を算術して、上記行方向に直列に接続された後段の上記第１の加算器に上記算術和を出力し、
上記行方向に直列に接続された最終段の上記第１の加算器は、上記行方向に直列に接続された上記第１の加算器の各々が算術した前記算術和の累積和を出力する第１の累積加算器と、
上記各行の最終段の上記第１の加算器の出力を入力とした上記各行に対応した第２の加算器の各々が上記列方向に直列に接続され、
上記第２の加算器の各々は、上記列方向に直列に接続された前段の第２の加算器の出力信号に基づいて算術和を算術して、上記列方向に直列に接続された後段の第２の加算器に上記算術和を出力し、
上記列方向に直列に接続された最終段の第２の加算器は、上記列方向に直列に接続された第２の加算器が算術した前記算術和の累積和を処理データとして出力する第２の累積加算器と、
上記複数の画像検出処理要素の上記デジタル信号を選択的に上記第１の累積加算器に入力せしめる制御回路と、
上記第２の累積加算器から出力される上記処理データが供給される出力部と
を備えていることを特徴とする画像検出処理装置。
【請求項２】
上記制御回路によって上記画像検出処理要素の上記デジタル信号の全てを上記第１の累積加算器に入力せしめ、上記第２の累積加算器から出力される処理データを、上記画像検出処理要素に結像される結像画像の０次モーメントとすることを特徴とする請求項１に記載の画像検出処理装置。
【請求項３】
上記制御回路によって上記画像検出処理要素の上記デジタル信号から選択される幾つかを上記第１の累積加算器に入力せしめ、上記第２の累積加算器から出力される処理データを、上記画像検出処理要素に結像される結像画像のＮ（Ｎは１以上の整数）次モーメントを求めるための部分和とすることを特徴とする請求項１に記載の画像検出処理装置。
【請求項４】
上記変換器を第１のクロック信号に従い作動させて上記デジタル信号を発生させ、上記第１及び第２の累積加算器を上記第１のクロック信号とは異なる第２のクロック信号に従い動作させ、上記第２の累積加算器から上記処理データをその下位桁から順次出力させることを特徴とする請求項１に記載の画像検出処理装置。
【請求項５】
全ての要素が１チップに形成されていることを特徴とする請求項１乃至４のいづれかに記載の画像検出処理装置。
【発明の詳細な説明】
【０００１】
【発明の技術分野】
本発明は、各種の制御機器や認識装置、情報入力装置に用いる画像検出処理装置に関し、さらに詳しくは、移動する対象物体の画像処理を高速処理するのに適した画像検出処理装置である。
【０００２】
【従来の技術】
従来、各種の制御機器や認識装置、情報入力装置に用いる画像処理装置は、ビデオカメラ等に用いられるＣＣＤ受光センサと外部の処理プロセッサなどを組み合わせてその機能を実現していた。ＣＣＤ受光センサにより得られた画像データを別設の記憶装置に転送して格納し、別説の処理プロセッサを介して対象物体（ターゲット）の重心計算等の画像処理を行っていた。
【０００３】
また、研究段階のものとしては、日本ロボット学会誌１３巻３号（１９９５年４月）３３３頁乃至３３８頁に示されているように、ワンチップに受光センサと並列信号処理回路とを一体化させ、エッジ抽出、細線化等の信号処理をセンサ側で行い、その結果を順次出力するという構成が提案されていた。
【０００４】
【発明が解決しようとする課題】
従来のものは、ＣＣＤ受光センサからの信号転送スピードが制限されたり（１／６０秒以上）、外部の処理プロセッサなどが大規模になったりするという課題があった。
【０００５】
また、研究段階のものにおいても、汎用性の高い並列系列処理のアーキテクチャを採用することで、多用な画像処理が可能である反面、限られたチップ面積上に多くの画素を配列するのが困難であった。また、センサから出力される画像データの転送に思いのほか時間がかかるという課題があった。
【０００８】
本発明による画像検出処理装置は、光電変換を行う光検出器と、上記光検出器からの信号をデジタル信号に変換する回路と、順序回路の出力と上下左右隣の画像検出処理要素の変換器の出力との論理和を演算する論理和回路と、上記デジタル信号と上記論理和回路からの信号との論理積を演算して出力する論理積回路と、上記論理積回路の出力を入力とする上記順序回路とを有し、上記順序回路の出力を出力する変換器と、上記デジタル信号を入力可能とし、上記変換器の出力と直列に接続された前段の第１の加算器の出力とに基づいた算術和を算出して出力する半加算器を有する第１の加算器と、からなる複数の画像検出処理要素が行方向と列方向とからなる平面上に行列配列されてなる画像検出処理装置であって、上記行方向の上記第１の加算器の各々が直列に接続され、上記第１の加算器の各々は、上記行方向に直列に接続された前段の上記第１の加算器の出力信号に基づいて算術和を算術して、上記行方向に直列に接続された後段の上記第１の加算器に上記算術和を出力し、上記行方向に直列に接続された最終段の上記第１の加算器は、上記行方向に直列に接続された上記第１の加算器の各々が算術した前記算術和の累積和を出力する第１の累積加算器と、上記各行の最終段の上記第１の加算器の出力を入力とした上記各行に対応した第２の加算器の各々が上記列方向に直列に接続され、上記第２の加算器の各々は、上記列方向に直列に接続された前段の第２の加算器の出力信号に基づいて算術和を算術して、上記列方向に直列に接続された後段の第２の加算器に上記算術和を出力し、上記列方向に直列に接続された最終段の第２の加算器は、上記列方向に直列に接続された第２の加算器が算術した前記算術和の累積和を処理データとして出力する第２の累積加算器と、上記複数の画像検出処理要素の上記デジタル信号を選択的に上記第１の累積加算器に入力せしめる制御回路と、上記第２の累積加算器から出力される上記処理データが供給される出力部とを備えている。
【０００９】
また、上記制御回路によって上記画像検出処理要素の上記デジタル信号の全てを上記第１の累積加算器に入力せしめ、上記第２の累積加算器から出力される処理データを、上記画像検出処理要素群に結像される結像画像の０次モーメントとする画像検出処理装置を構成することも好ましい。
【００１０】
上記制御回路によって上記画像検出処理要素の上記デジタル信号から選択される幾つかを上記第１の累積加算器に入力せしめ、上記第２の累積加算器から出力される処理データを、上記画像検出処理要素群に結像される結像画像のＮ（Ｎは１以上の整数）次モーメントを求めるための部分和とすることも好ましい。
【００１１】
また、上記変換器を第１のクロック信号に従い作動させて上記デジタル信号を発生しさせ、上記第１及び第２の累積加算器を上記第１のクロック信号とは異なる第２のクロック信号に従い動作させ、上記第２の累積加算器から上記処理データをその下位桁から順次出力することも好ましい。
【００１３】
また、全ての要素が１チップに形成されていることも好ましい。
【００１４】
【実施例】
次に図面を用いて本発明の実施例を詳細に説明する。図１は本発明による画像検出処理装置の一例を説明するための説明図である。本例の画像検出処理装置は例えば、ロボットの視覚センサや自動車の衝突防止センサ、半導体検査装置等において、検出される画像から、動作対象物体、前方車両、半導体基板上の特定パターン等のターゲットの画像を抽出し、その位置情報、軌跡情報等を得る処理に用いるものであり、画像データを転送とともに、例えばターゲット画像の重心位置特定に用いられる０次モーメント、１次モーメントの算出に必要な処理デ−タに加工して出力するものである。外部の処理プロセッサは当該前加工された処理データを用いて位置情報、軌跡情報等を得るため、全体として処理速度の向上が可能となる。
【００１５】
図１において、１−１〜１−６４は画像検出処理要素で、８×８個のアレイ構造として平面的に配置してある。各画像検出処理要素は、後述するように、光検出器と光検出器からの信号をデジタル信号に変換する変換部とを備えている。
【００１６】
各画像検出処理要素は、その上下左右に隣接する４個の画像検出処理要素要素に対して上記デジタル信号をターゲット画像信号として出力する。例えば、画像検出処理要素１−１１は画像検出処理要素１−３、１−１０、１−１２、１−１９に対して、ターゲット画像信号を出力する。また、画像検出処理要素では、その４個の画像検出処理要素からのターゲット画像信号とそれ自身のターゲット画像信号とに基づいてターゲットを背景から抽出するためのウィンド画像信号を生成する。詳しくは後述するが、ウィンドウ画像に含まれる画像が新たなターゲット画像とし、ターゲットを背景から抽出するのである。また、各画像検出処理要素は後述する第１の加算器を含み、各画像検出処理要素の第１の加算器はその右隣の画像検出処理要素の第１の加算器と接続され、例えば、画像検出処理要素１−１１の第１の加算器の出力は画像検出処理要素１−１２の第１の加算器に入力される。このように行毎の画像検出処理要素の要素の第１の加算器は順次接続されて第１の累積加算器を構成している。
【００１７】
各画像検出処理要素に対しては、共通信号としてＣＬＯＣＫ１、ＣＬＯＣＫ２、ＬＯＡＤ、ＳＥＬの各信号が入力される。クロック信号ＣＬＯＣＫ１、信号ＬＯＡＤは初期画像設定用の信号である。例えば、クロック信号ＣＬＯＣＫ１は周波数20MHz〜100MHz程度のクロック信号である。クロック信号ＣＬＯＣＫ２、信号ＳＥＬは画像演算用の信号であり、例えば、クロック信号ＣＬＯＣＫ２は周波数1MHz〜10MHz程度のクロック信号である。この画像検出処理要素の構成の詳細については図２に示してあり、追って説明する。
【００１８】
２−１〜２−８は第２の加算器としての直列型加算器で、画像検出処理要素の行ごとに配置され、対応する画像検出処理要素からの出力を一方の入力に受ける。また、各直列型加算器の出力は順次隣接する直列型加算器の他方の入力に接続されて第２の累積加算回路を構成する。本例では、画像検出処理要素１−１〜１−８に対して直列型加算器２−１が対応し、画像検出処理要素１−８の出力が直列型加算器２−１の一方の入力に接続される。直列型加算器２−１の出力は、直列型加算器２−２の他方の入力に接続される。直列型加算器２−８の出力が全体の出力信号となっており、光検出器によって検出される画像データに基づく処理データが供給される出力部を構成する。それぞれの直列型加算器の構成の詳細については図３に示してあり、追って説明する。
【００１９】
３は行デコーダ回路で、本例では、図示しないが４本の行選択信号により、Ｙ０〜Ｙ７までの出力信号を制御する。図４に入力信号の組合せ例を示す。４は列デコーダ回路で、本実施例では、図示しないが４本の列選択信号により、Ｘ０〜Ｘ７までの出力信号を制御するものであり、選択信号の設定は行デコーダ３と同様である。これら行デコーダ３、列デコーダ４は画像検出処理要素のターゲット画像信号を選択的に第１の累積加算器に入力せしめる制御回路を構成する。本例では画像検出処理要素の選択は、図示しない外部のホストから行デコーダ３、列デコーダ４に選択パターンをダウンロードすることによって行うこととするが、これに限るものではない。例えば、画像検出処理要素と共にＲＯＭを１チップに集積化し、ＲＯＭに目的の画像演算に応じた選択パターンを記憶させて画像検出処理要素の選択に用いても良いし、外部からの制御信号に応答して選択パターンを発生させるデコーダを設けても良い。
【００２０】
次に各画像検出処理要素の構成の詳細について図２を参照しながら説明する。
５は光検出器としての光電変換部であり、フォトダイオードからなり、入射した光の強さに応じた信号を出力する。６は２値化回路であり、コンパレータからなり、光電変換部５からの信号を２値化する。本例では、光電変換部５に入力した光量に応じて、所定のしきい値より明るいときに“Ｈ”の信号を出力し、暗いときに“Ｌ”の信号を出力するものとする。本例では２値データを出力することとするが、本発明はこれに限るものではなく、諧調を持たせた多値データを処理させるようにしても良い。その場合、第１の加算器には全加算器を用いる。７は論理積（ＡＮＤ）回路であり、２値化回路６からの信号と後述する５入力論理和（ＯＲ）回路１２からの信号が共に“Ｈ”であったとき、“Ｈ”の信号を出力する。８はマルチプレクサであり、本例では、図１の信号ＬＯＡＤが“Ｈ”のとき、論理積回路７からの信号を出力し、“Ｌ”のとき、後述の論理積回路１１からの信号を出力する。９はフリップフロップ回路でマルチプレクサ８の信号を図１のクロック信号ＣＬＯＣＫ１により取り込んで出力する。２値化回路６、論理積回路７、マルチプレクサ８、フリップフロップ回路９、５入力論理回路１２から変換器が構成される。
【００２１】
１０は論理積回路であり、フリップフロップ回路９の出力と後述する論理積回路１１の出力が共に“Ｈ”であったときに“Ｈ”の信号を出力する。１１は論理積回路であり、行デコーダ３の出力と列デコーダ４の出力が共に“Ｈ”であったとき、“Ｈ”の信号を出力する。例えば、画像検出処理要素１−１１では、行デコーダ３の出力Ｙ１と列デコーダ４の出力Ｘ２がともに“Ｈ”であった場合に“Ｈ”の信号を出力する。１２は５入力論理和回路で、自身のフリップフロップ回路９の出力および上下左右隣の画像検出処理要素の各フリップフロップ回路９の出力から論理和を出力する。例えば、画像検出処理要素１−１１では、画像検出処理要素１−３、１−１０、１−１２、１−１９内の各フリップフロップ回路９の出力と画像検出処理要素１−１１自身のフリップフロップ回路９の出力が入力となり、どれかひとつ以上が“Ｈ”のときに出力が“Ｈ”となる。
【００２２】
１３はマルチプレクサで、この実施例では、図１の信号ＳＥＬが“Ｈ”のとき、論理積回路１０からの信号を出力し、“Ｌ”のときに後述するフリップフロップ回路１４の信号を出力する。１４はフリップフロップ回路であり、後述する加算回路１５のＣＡＲＲＹ信号を図１のクロック信号ＣＬＯＣＫ２により取り込んで出力する。１５は半加算器からなる加算回路で、マルチプレクサ１３の出力と隣接する画像検出処理要素の半加算回路のＳＵＭ信号との算術和を算出し、ＳＵＭ信号とＣＡＲＲＹ信号を出力する。例えば、画像検出処理要素１−１１では、マルチプレクサ１３の出力と画像検出処理要素１−１０における加算回路１５のＳＵＭ信号とが、共に“Ｌ”であればＳＵＭ信号及びＣＡＲＲＹ信号がともに“Ｌ”となり、一方が“Ｌ”で他方が“Ｈ”であればＳＵＭ信号が“Ｈ”、ＣＡＲＲＹ信号が“Ｌ”となり、共に“Ｈ”であればＳＵＭ信号が“Ｌ”、ＣＡＲＲＹ信号が“Ｈ”となる。論理積回路１０、１１、マルチプレクサ１３、フリップフロップ１４、加算回路１５から第１の加算器が構成される。
【００２３】
次に直列型加算器の構成の詳細について図３を参照しながら説明する。１６は全加算器からなる加算回路で、上記画像検出処理要素のＳＵＭ信号と後述するフリップフロップ回路１７と前段の加算回路１６のＳＵＭ信号との算術加算演算を行い、ＳＵＭ信号とＣＡＲＲＹ信号とを出力する。例えば、直列型加算器２−２の場合、画像検出処理要素１−１６の出力と直列型加算器２−１の出力とフリップフロップ回路１７の出力とを入力とし、ＳＵＭ信号は２−３の直列型加算器に出力され、ＣＡＲＲＹ信号はフリップフロップ回路１７に出力される。加算回路１６は３つの入力の状態が、すべて“Ｌ”のときにはＳＵＭ信号及びＣＡＲＲＹ信号がともに“Ｌ”となり、何れか一つだけ“Ｈ”のときにはＳＵＭ信号が“Ｈ”、ＣＡＲＲＹ信号が“Ｌ”となり、二つが“Ｈ”のときにはＳＵＭ信号が“Ｌ”、ＣＡＲＲＹ信号が“Ｈ”となり、全てが“Ｈ”のときにはＳＵＭ信号及びＣＡＲＲＹ信号がともに“Ｈ”となる。１７はフリップフロップ回路であり、加算回路１６のＣＡＲＲＹ信号を上述のクロック信号ＣＬＯＣＫ２により取り込んで出力する。
【００２４】
【本例の動作説明】
まず、内部回路の初期化を行うため、行デコーダ３、列デコーダ４をすべて非選択となるように設定し、信号ＳＥＬでマルチプレクサ１３から画素選択信号が出力されるように設定する。この状態でクロック信号ＣＬＯＣＫ２が１クロック以上入力されると各画像検出処理要素内のラッチ回路１４はクリアされる。また、この状態を維持したまま更にクロック信号ＣＬＯＣＫ２を６クロック以上入力すると、各直列加算器内のラッチ回路１７も同様にクリアされる。
【００２５】
次にウインドウ画像信号の設定を行う。ウィンドウ画像信号は背景からターゲットの画像を分離するためのものである。信号ＬＯＡＤでマルチプレクサ８から画素選択信号が出力されるように設定し、行デコーダ３、列デコーダ４の設定することでウインドウ画像の初期設定を行う。行デコーダ３、列デコーダ４がそれぞれすべての出力が選択されるように設定すると、ウインドウ画像の初期値は画面全体となる。
【００２６】
次に画像の取り込みが行われる。適切な結像光学系を用いて対象物体の像を、平面状に配列された画像検出処理要素上に結像させる。結像光学系は、デジタルスチルカメラ等に用いられているようなレンズ光学系のもので良い。それぞれの画像検出処理要素では、まず、光電変換部５において、対象物体の明暗の情報を、結像された画像の光量に応じたアナログ信号に変換する。このアナログ信号は２値化回路６によって、“Ｌ”あるいは“Ｈ”の値を持つ２値画像信号に変換される。
【００２７】
２値画像信号は、論理積回路７において上記のウインドウ画像信号との論理積演算をおこないターゲット画像信号に変換される。ターゲット画像信号はマルチプレクサ８を介してフリップフロップ９に出力され、クロック信号ＣＬＯＣＫ１のタイミングで取り込まれる。フリップフロップ９に取り込まれたターゲット画像信号は次のクロック信号ＣＬＯＣＫ１のタイミングでのウインドウ信号を生成するために５入力論理和回路１２に入力される。
【００２８】
フリップフロップ９の出力は、同じ画像検出処理要素内の５入力論理和回路１２に出力されるとともに隣接する４個の画像検出処理要素内の５入力論理和回路１２にも出力されており、５入力論理和回路１２からウインドウ画像信号が出力される。この様子を図５に示す。図５において（ａ）はウインドウ画像を生成する元となる２値化画像であり、各セルは図１に示した画像検出処理要素１−１〜１−６４に対応している。（ｂ）は（ａ）から生成されたウインドウ画像であり、各画像要素内において５入力論理和回路１２に４個のフリップフロップ９の出力により、元となる２値化画像に対して上下左右に広がったものとなる。このウインドウ画像（ｂ）と、次のフレームにおいて変換された画像信号つまり次のフレームでの２値化画像（ａ）との間で論理積演算をおこなったものがターゲット画像となる。すなわち、フレーム毎にターゲット画像信号の移動に追従してウィンド画像が若干の広がりをもって形成され、これに含まれる画像が新たなターゲット画像信号として得られる。この時、次のフレームとの間隔が十分短い場合、ターゲットの移動距離は十分短く、本実施例のように簡便な回路によってもターゲットトラッキングの動作が実現できる。
【００２９】
次に画像演算動作について説明する。まず、ターゲット画像を構成する画素の総数は、ターゲット画像の面積（０次モーメント）と見なすことができ、このような０次モーメントを求める動作について説明する。それぞれの画像検出処理要素内の論理積回路１０以降の部分と直列加算器の部分とをまとめて、６４入力加算器アレイとしての動作を説明する。フリップフロップ９から出力されるターゲット画像信号は、論理積回路１０で、画素選択信号が“Ｈ”のときのみ１３のマルチプレクサ１３に入力される。ここでは、全ての画像演算回路１−１〜１−６４が選択されている場合について説明する。図６において（ａ）はターゲット画像の状態を表わす。ここでは、“Ｈ”の画素の総数が８となっている。
【００３０】
まず、信号ＳＥＬを“Ｈ”にして、論理積回路１０の出力がマルチプレクサ１３により選択されるようにする。これにより、各画像検出処理要素の半加算器１５にはターゲット画像に応じた“Ｈ”もしくは“Ｌ”の信号が入力される。図６においてターゲット画像（ａ）に対応する各画像検出処理要素の加算器と直列形加算器の状態を（ｂ）に示す。図６の（ｂ）において、ＣＡＲＲＹ、ＳＵＭはそれぞれ各加算器のＣＡＲＲＹ信号、ＳＵＭ信号を示してある。画像検出処理要素１−２０に入力される論理積回路１０の出力が“Ｈ”となっており、その加算回路１５のＳＵＭ信号“Ｈ”は後段の画像検出処理要素１−２１〜画像検出処理要素１−２４迄順次出力され、これらの加算回路１５のＳＵＭ信号を“Ｈ”としている。
【００３１】
これを受ける直列型加算器２−３では画像検出処理要素１−２４からのＳＵＭ信号“Ｈ”と前段の直列型加算器２−２の加算回路１６のＳＵＭ信号“Ｌ”とを加算し、ＳＵＭ信号を“Ｈ”、ＣＡＲＲＹ信号を“Ｌ”としている。また、画像検出処理要素１−２７、１−２８、１−２９の論理積回路１０の出力は何れも“Ｈ”となっており、画像検出処理要素１−２８の加算回路１５ではその論理積回路１０の出力“Ｈ”と前段の画像検出処理要素１−２７のＳＵＭ信号“Ｈ”とを加算してＳＵＭ信号を“Ｌ”、ＣＡＲＲＹ信号を“Ｈ”としている。画像検出処理要素１−２９の加算回路１５のＳＵＭ信号“Ｈ”により後段の画像検出処理要素１−３０〜画像検出処理要素１−３２迄順次出力され、これらの加算回路１５のＳＵＭ信号を“Ｈ”としている。
【００３２】
これを受ける直列型加算器２−４では、画像検出処理要素１−３２からのＳＵＭ信号“Ｈ”と前段の直列型加算器２−３の加算回路１６のＳＵＭ信号“Ｈ”とを加算し、ＳＵＭ信号を“Ｌ”ＣＡＲＲＹ信号を“Ｈ”としている。また、画像検出処理要素１−３５、１−３６、１−３７の論理積回路１０の出力は何れも“Ｈ”となっており、画像検出処理要素１−３６の加算回路１５ではその論理積回路１０の出力“Ｈ”と前段の画像検出処理要素１−３５のＳＵＭ信号“Ｈ”とを加算してＳＵＭ信号を“Ｌ”、ＣＡＲＲＹ信号を“Ｈ”としている。画像検出処理要素１−３７の加算回路１５のＳＵＭ信号“Ｈ”により後段の画像検出処理要素１−３０〜画像検出処理要素１−３２迄順次出力され、これらの加算回路１５のＳＵＭ信号を“Ｈ”としている。
【００３３】
これを受ける直列型加算器２−５では、画像検出処理要素１−４０からのＳＵＭ信号“Ｈ”と前段の直列型加算器２−４の加算回路１６のＳＵＭ信号“Ｌ”とを加算し、ＳＵＭ信号を“Ｈ”ＣＡＲＲＹ信号を“Ｌ”としている。また、画像検出処理要素１−４４の加算回路１５ではその論理積回路１０の出力“Ｈ”と前段の画像検出処理要素１−４３のＳＵＭ信号“Ｌ”を加算してＳＵＭ信号を“Ｈ”、ＣＡＲＲＹ信号を“Ｌ”としている。
【００３４】
同様にして画像検出処理要素１−４４の加算回路１５のＳＵＭ信号“Ｈ”は後段の画像検出処理要素１−４５〜画像検出処理要素１−４８迄順次出力されている。これを受ける直列型加算器２−６では画像検出処理要素１−４８からのＳＵＭ信号“Ｈ”と前段の直列型加算器２−５の加算回路１６のＳＵＭ信号“Ｈ”とを加算し、ＳＵＭ信号を“Ｌ”ＣＡＲＲＹ信号を“Ｈ”としている。直列型加算器２−６の加算回路１６のＳＵＭ信号“Ｌ”は、後段の直列型加算器２−７、２−８に順次出力される。このとき、直列型加算器２−８の出力からは、ターゲット画像を構成する画素の総数を２進数で表現した場合の最下位桁の値が出力されており、ターゲット画像（ａ）に対しては、０に対応する“Ｌ”レベルの信号が出力される。
【００３５】
この状態で、クロック信号ＣＬＯＣＫ２が入力されるとフリップフロップ回路１４にＣＡＲＲＹ信号が取り込まれる。信号ＳＥＬを“Ｌ”にして、半加算器１５に、論理積回路１０の出力に代わりフリップフロップ回路１４に格納されたＣＡＲＲＹ信号が入力される。この場合の各画像検出処理要素と直列型加算器の状態を（ｃ）に示す。（ｂ）に示したように画像検出処理要素１−２８、１−３６においてフリップフロップ１４に格納されたＣＡＲＲＹ信号は“Ｈ”であり、画像検出処理要素１−２９〜１−３２、１−３７〜１−４０の加算回路１５はＳＵＭ信号“Ｈ”、ＣＡＲＲＹ信号“Ｌ”としている。
【００３６】
直列型加算器２−４の加算回路１６では前段のＳＵＭ信号“Ｌ”、画像検出処理要素１−３２からのＳＵＭ信号“Ｈ”、フリップフロップ回路１７に格納されたＣＡＲＲＹ信号“Ｈ”を加算して、ＳＵＭ信号を“Ｌ”、ＣＡＲＲＹ信号を“Ｈ”とする。直列型加算器２−５の加算回路１６では前段のＳＵＭ信号“Ｌ”、画像検出処理要素１−４０からのＳＵＭ信号“Ｈ”、フリップフロップ回路１７に格納されたＣＡＲＲＹ信号“Ｌ”を加算して、ＳＵＭ信号を“Ｈ”、ＣＡＲＲＹ信号を“Ｌ”とする。直列型加算器２−６の加算回路１６では前段のＳＵＭ信号“Ｈ”、画像検出処理要素１−４８からのＳＵＭ信号“Ｌ”、フリップフロップ回路１７に格納されたＣＡＲＲＹ信号“Ｈ”を加算して、ＳＵＭ信号を“Ｌ”、ＣＡＲＲＹ信号を“Ｈ”とする。直列型加算器２−７、２−８の加算回路１６ではＳＵＭ信号“Ｌ”、ＣＡＲＲＹ信号“Ｌ”とする。このとき、直列型加算器２−８の出力からは、ターゲット画像を構成する画素の総数を２進数で表現した場合の最下位＋１桁目の値が出力される。ターゲット画像（ａ）に対しては、０に対応する“Ｌ”レベルの信号が出力される。
【００３７】
以下、同様にクロック信号ＣＬＯＣＫ２が入力される毎に各画像検出処理要素と直列型加算器の状態は順次（ｄ）、（ｅ）に示すようになる。クロック信号ＣＬＯＣＫ２が３クロック入力された状態（ｅ）において、直列型加算器２−８の出力から“Ｈ”が出力され、ターゲット画像を構成する画素の総数を２進数で表現した場合の最下位＋３桁目の値が出力され、ＳＥＬ信号“Ｈ”の入力後に直列型加算器２−８から得られた値は“１０００”となり、ターゲット画像（ａ）を構成する画素の総数８に相当する２進数値が得られる。この後クロック信号ＣＬＯＣＫ２が入力されても、何れのフリップフロップ回路にもＣＡＲＲＹ信号は格納されておらず、直列型加算器２−８の出力からは“Ｌ”が出力される。
【００３８】
以上のようにクロック信号ＣＬＯＣＫ２が入力される毎にターゲット画像を構成する画素の総数が下位桁から順次出力される。本例ではＳＥＬ信号の入力後、クロック信号ＣＬＯＣＫ２を７クロック入力することでターゲット画像（ａ）を構成する画素の総数を７桁の２進数値で得ることができる。本例では少ないクロック数にてターゲット画像を構成する画素の総数、すなわち、ターゲット画像の面積（０次モーメント）を求めることができる。従来では画素の状態をクロック毎に１つずつ読み出した後、ターゲット画像の面積を求めており、画素数６４とすれば６４クロック以上を要していたが、本例では７クロックで済む。
【００３９】
次に１次モーメントを求める場合の動作について説明する。１次モーメントを求める場合は、行デコーダ３及び列デコーダ４にて適当な画素を選択して、数種の部分和を求め、外部にてその部分和の総和を計算する。この様子を図７に示す。図７において、（ａ）は対象となる画像である。（ｂ）、（ｃ）は列デコーダの選択パターン例とそれに対応する部分和の値である。ここでは、画像検出処理要素アレイの縦方向をＹ軸とし、座標位置を上から０、１、・・、７、横方向をＸ軸とし、座標位置を左から右へ０、１、・・、７とする。Ｘ軸、Ｙ軸の１次モーメントはそれぞれ軸方向の総和に荷重値として座標位置の値を乗じたものの総和で表わされる。例えば、Ｙ軸方向の１次モーメントを求めるには、まず、行デコーダ３の設定において一番下の列のみ選択されるようにして、上述の方法によりターゲット画像を構成する画素の総和を求める。図示しない外部処理プロセッサ（または本例画像検出処理装置とともに集積化された処理プロセッサ）により、この列のＹ座標は７なので、得られた値に７を乗じる。次に下から二番目の列のみ選択されるようにして、総和を求める。得られた値に荷重値として６を乗じて、先に求めた値に加算する。同様にして、順次、荷重値の係数を乗じて各列ごとの部分和を加算することで、１次モーメントの値が得られる。
【００４０】
荷重値に関しては例えば、７＝４＋２＋１、６＝４＋２、５＝４＋１、４＝４、３＝２＋１、２＝２、１＝１のように分離できることから、行デコーダ３の設定を（ｃ）に示すように、Ｙ軸の座標位置７、５、３、１に対応する列をまとめて指定してこれらに含まれるターゲット画像を構成する画素の総和を求めて荷重値１を乗じ、次にＹ軸の座標位置７、６、３、２に対応する行をまとめて指定して総和を求めて荷重値２を乗じ、次にＹ軸の座標位置７、６、５、４に対応する行をまとめて指定して総和を求めて荷重値４を乗じるようにしても１次モーメントを求めることが可能である。このようにすれば、３回の部分和計算で１次モーメント計算が可能になるので、更に少ない計算時間で１次モーメントを求めることができる。
【００４１】
Ｘ軸方向の１次モーメントについても同様に列デコーダ４の設定を制御することで容易に計算することができる。また、より高次のモーメントについても各デコーダの設定および荷重値の係数を適当に選択することで容易に実現できる。また、得られた１次モーメントを面積（０次モーメント）で割ることで、容易に重心の座標を求めることができる。
【００４２】
本例によれば、画像検出処理装置において、重心計算等の画像処理に必要な処理データをデータ転送時に生成可能となり、外部処理プロセッサと共同で行われる画像処理の高速化が可能となる。また、フレーム間隔の制限を受けず演算子処理が行え、この点も高速処理に適している。ひいては、ロボットの視覚センサ、自動車の衝突防止センサ等に用いた場合、装置全体の処理速度の向上が可能となる。例えば図８に示すような物体８１を掴む動作を行うアームロボットの視覚センサ８２に本例の画像検出処理装置に組み込んだ場合、物体８１、アーム８３双方を画像として取り込み、その画像データに基づく処理データ８４を上述の動作で処理プロセッサ８５に出力し、処理プロセッサ８５において、物体８１、アーム８３の重心位置、軌跡等を画像処理により得て、その結果をアーム８３の制御８６及び視覚センサ８２のターゲットトラッキング制御８７にフィードバックさせることも高速処理可能となる。また、視覚センサからの情報のみによっても十分高速な制御が可能となり、必要な各種センサ数を削減でき、装置規模の縮小も可能となる。
【００４３】
また、演算結果を出力する回路系と、ビデオカメラ等と同様なアナログのビデオ信号を出力する回路を同時に構成することも容易である。
【００４４】
本例では、画像データとして２値データ（２階調のデータ）を用いることとししたが、本発明はこれに限るものではなく、画像検出処理要素内の第１の加算器として全加算器を用いることにより、画像データを多諧調とした場合にも適応できる。その場合、各画像検出処理要素の回路規模が大きくなるものの、画像データが階調を持っている場合に、その階調によって荷重値演算できるという利点がある。第１の加算器に全加算器を用いた場合の構成の変更点については後述する。
【００４５】
さらに、第１の加算器に全加算器を用いた場合には、画像データとして２値データを用いた場合に特徴量の演算をより高速にできる。例えば、図９に示すような構成により実現できる。同図に示す画像検出処理要素では、加算回路１５に代わり全加算器からなる加算回路１８を設け、マルチプレクサ１３に代わり論理積回路１９を設けてある。この他の構成は図２に示す画像検出処理要素示と同様のものである。加算回路１８は論理積回路１９を介して画像検出処理要素内のターゲット画像信号を受ける。このターゲット画像信号の入力は上記のものと同様ＳＥＬ信号で制御される。また、加算回路１８はフリップフロップ回路１４からの出力と前段の画像検出処理要素の加算回路１８からの出力とを受けており、動作的には図３に示した直列加算器と同様のものである。このような構成により、１次モーメントを計算する際に、行デコーダあるいは列デコーダを順次選択することで、ｎ×ｎ画素の場合、３ｎ−１クロックの演算で１次モーメントを算出することができる。例えば８×８画素の構成の場合、８クロックで１次モーメントを選出できる。
【００４６】
次に本発明のモーメント演算処理を数学的にまとめておく。
【００４７】
画像のサイズは、画像検出処理要素をＮ２（Ｎ＝２ｎ）個であるとする。画像データの諧調はＭ＝２ｍであるとする。Ｘ軸上の座標位置ｘ、Ｙ軸上の座標位置ｙにある画像検出処理要素の画像データをＩ（ｘ，ｙ）とする。実行時間は画像検出処理要素でのクロック数（本例におけるクロック信号ＣＬＯＣＫ２）で示す。
画像Ｉ（ｘ，ｙ）に対する一般モーメント量ｍｉjは次の式で定義される。
【数１】
0004523104.tif 000002
０次モーメントｍ００は次のように表される。
【数２】
0004523104.tif 000003
これは、画像データの総和であり、演算に必要なクロック数はｌｏｇ２（出力の最大値）となり、ｌｏｇ２（Ｎ２（Ｍ−１））≒（２ｎ＋ｍ）である。本例では階調が２であり、画像検出処理要素の数が６４であるから、上述したように７クロックとなる。
【００４８】
１次モーメントについては次のように表される。ｍ１０は行方向の１次モーメントであり、ｍ０１は列方向の１次モーメントである。
【数３】
0004523104.tif 000004
【数４】
0004523104.tif 000005
本例の画像検出処理要素では、乗算機能を設けていないため各行、各列毎の荷重値（ｘ，ｙ）は外部処理プロセッサで乗ずる。画像検出処理要素にこの乗算機能を持たせた場合、ｘＩ（ｘ，ｙ）およびｙＩ（ｘ，ｙ）を各画像検出処理要素内部で計算し、それに対して総和を計算すればよいので演算に必要なクロック数は、ｌｏｇ２（Ｎ２（Ｎ−１）（Ｍ−１）／２）≒（３ｎ＋ｍ）である。
【００４９】
しかしながら、画像検出処理要素に乗算機能を持たせることは回路規模の制限から難しい。これに対して本例では選択パターンと画像検出処理要素内のデータとの論理積を取って総和演算をする機能（すなわち、各画像検出処理要素を選択する機能）と、荷重値をビットプレーンに展開する（２進数で展開する）こととにより、１次以上のモーメント量の計算速度の向上を図ることができる。
ｘの２進数表現をｘｎｘｎ−１．．．．ｘ１とする。
【数５】
0004523104.tif 000006
１次モーメントｍ１０は次のように表すことができる。
【数６】
0004523104.tif 000007
【００５０】
ｓｋは図７の（ｃ）に示すような選択パターンと各画像検出処理要素内のデータとの論理積を取るとこにより得られるものであり、図７の（ｃ）に示す選択パターンは行と列の違いこそあるが左からｋ＝１、２、３に対応している。ｓｋを得るのに必要なクロック数はｌｏｇ２（Ｎ２（Ｍ−１）／２）≒（２ｎ＋ｍ−１）である。したがってｍ１０は、ｓｋをＫ＝１からｎまで繰り返し、外部処理プロセッサでそれらをビットシフトしながら足し合わせることで計算され、それを得るのに必要なクロック数はｎ（２ｎ＋ｍ−１）となる。
【００５１】
本例のように画像データが１、０の２階調（以下、バイナリと言う）である場合に限り、画像データの方を選択パターンとみなし、列、行デコーダを順次選択してビットシリアルに総和演算することにより１次モーメント得られる。これに必要なクロック数は、ｌｏｇ２（Ｎ２（Ｎ−１）／２）≒（３ｎ−１）である。この演算には図９に示したように第１の加算器として全加算器を用いる必要がある。
１次モーメントｍ０１も同様にして求められる。
【００５２】
また、２次モーメントｍ２０、ｍ０２は次のように表される。
【数７】
0004523104.tif 000008
【数８】
0004523104.tif 000009
【００５３】
画像検出処理要素に乗算機能を持たせた場合、ｘ２Ｉ（ｘ，ｙ）およびｙ２Ｉ（ｘ，ｙ）を各画像検出処理要素内部で計算し、それに対して総和を計算すればよいので演算に必要なクロック数は、ｌｏｇ２（Ｎ２（Ｎ−１）（Ｎ−１）（Ｍ−１）／６）≒（４ｎ＋ｍ−１）である。本例のように乗算機能を持たせないものではｘ２、ｙ２についてもビットプレーンに展開した選択パターンを用いれば、演算に必要なクロック数は、２ｎｌｏｇ２（Ｎ２（Ｍ−１））≒２ｎ（２ｎ＋ｍ）である。画像データがバイナリの場合、演算に必要なクロック数は、ｌｏｇ２Ｎ２（Ｎ−１）（２Ｎ−１）／６≒（４ｎ−１）である。
【００５４】
もう一方の２次モーメントｍ１１は次のように表される。
【数９】
0004523104.tif 000010
【００５５】
画像検出処理要素に乗算機能を持たせた場合、演算に必要なクロック数は、ｌｏｇ２（Ｎ２（Ｎ−１）２（Ｍ−１）／４）≒（４ｎ＋ｍ−２）である。本例のように乗算機能を持たせないものでも、上述したように選択パターンによってｓｋｌはｌｏｇ２（Ｎ２（Ｍ−１））≒（２ｎ＋ｍ）クロックで得られる。ｍ１１は、ｓｋｌの計算をｎ２回繰り返し、外部処理プロセッサでそれらをビットシフトさせながら足し合わせることで計算できる。この場合、演算に必要なクロック数は、ｎ２（２ｎ＋ｍ）以下となる。画像データがバイナリの場合、ｓｋはｌｏｇ２（Ｎ２（Ｍ−１）／２）≒（３ｎ−１）クロックで得られ、これをｎ回繰り返すことにより、ｍ１１はｎ（３ｎ−１）クロックで得られる。
【００５６】
モーメント演算処理に要するクロック数と実行時間の関係は下記の表に示すとおりである。
【表１】
0004523104.tif 000011
ここで、（Ａ）に画像検出処理要素が乗算機能を持つ場合を示し、（Ｂ）に本例のように画像検出処理要素が乗算機能を持たない場合を示す。ここで、外部処理プロセッサでの実行時間は含まない。また、最短のクロック周期は加算器の遅延時間に依存するので、加算器ひとつあたりの遅延時間を１ｎｓとして、全体で２Ｎｎｓ(Ｎは、画像検出処理要素の行列数とする。）をクロック周期とし、
実行時間を算出した。本例によれば、画像検出処理要素に乗算機能を持つものに対して実行時間の差を１桁程度に抑えることが可能である。
【００５７】
また、本発明によれば、モーメントだけでなく、次の式に示される任意の特徴量を高速に演算することが可能である。
【数１０】
0004523104.tif 000012
【００５８】
【発明の効果】
本発明によれば、画像検出処理装置において、重心計算等の画像処理に必要な処理データをデータ転送時に生成可能となり、高速処理が可能となる。
【００５９】
また、画像検出処理要素を行列配置とし、行毎に加算器を直列に接続し、第１の累積加算器を構成し、行毎の第１の累積加算器最終段の出力を累積加算する第２の累積加算器を設けて、制御回路により、上記第デジタル信号を選択的に上記第１の累積加算器に入力せしめることにより、上記画像の０次モーメント、上記画像のＮ（Ｎは１以上の整数）次モーメントをもとめるための部分和等所望の処理データを高速で出力することが可能となる。
【００６０】
また、画像取り込みと累積加算動作とを別のクロックで行うので、画像取り込みによる速度の制限を受けずに処理データの生成が可能となる。
【００６１】
また、画像検出処理要素は隣接する画像検出処理要素からのデジタル信号と上記光検出器からの出力とに基づいて当該画像検出処理要素のデジタル信号を生成するため、背景からターゲットの分離処理等の簡単な処理を画像検出処理装置側で行うことが可能となる。
【図面の簡単な説明】
【図１】本発明の画像検出処理装置の構成を説明するための説明図。
【図２】図１の要部、画像検出処理要素の構成を説明するための説明図。
【図３】図１の要部、直列型加算器の構成を説明するための説明図。
【図４】図１の要部、行デコーダの動作を説明するための説明図。
【図５】図１の動作説明のための説明図。
【図６】図１の動作説明のための説明図。
【図７】図１の動作説明のための説明図。
【図８】本発明の画像検出処理装置を用いたロボットの構成を説明する説明図。
【図９】図１の要部、画像検出処理要素の構成を説明するための説明図。
【符号の説明】
１−１〜１−６４  画像検出処理要素
２−１〜２−８  直列型加算器（第２の累積加算器）
３  行デコーダ（制御回路）
４  列デコーダ（制御回路）
５  光電変換部（光検出器）
６  ２値化回路（変換器）
７  論理積回路（変換器）
８  マルチプレクサ（変換器）
９  フリップフロップ回路（変換器）
１０  論理積回路（第１の加算器、第１の累積加算器）
１１  論理積回路（第１の加算器、第１の累積加算器）
１２  ５入力論理和回路（変換器）
１３  マルチプレクサ（第１の加算器、第１の累積加算器）
１４  フリップフロップ回路
１５  加算回路（第１の加算器、第１の累積加算器）
１６  加算回路（第２の加算器、第２の累積加算器）
【図１】
0004523104.tif 000013
【図２】
0004523104.tif 000014
【図３】
0004523104.tif 000015
【図４】
0004523104.tif 000016
【図５】
0004523104.tif 000017
【図６】
0004523104.tif 000018
【図７】
0004523104.tif 000019
【図８】
0004523104.tif 000020
【図９】
0004523104.tif 000021