(57)【要約】【課題】画像検出処理装置の重心演算を高速で処理し、演算機能を対象の重心計算に最適な小規模な回路構成とし、画像検出処理装置と同一チップ内に配置する。【解決手段】複数の画像検出処理要素を備える画像検出演算処理装置、所謂ビジョンチップにおいて、各画素データの総和又は部分を示すシリアルデータを第１のパラレルデータに変換するシフトレジスタ２１と、変換されたパラレルデータを入力して１次モーメントを示す第２のパラレルデータを出力する加算器２２と、第１、２のパラレルデータを入力してこれらの除算を行い重心座標を示すシリアルデータを出力するシリアル除算器２３とを備えることにより、小規模の回路構成により、高速処理を実現する。【選択図】          図４
2004362460.tif 000002
【特許請求の範囲】
【請求項１】
光電変換を行う光検出器と前記光検出器からの信号をデジタル信号に変換する変換器と前記デジタル信号を入力可能とした加算器とからなる画像検出処理要素の複数個が平面状に配列されてなる画像検出演算処理装置であって、
前記複数の画像検出処理要素の前記加算器を順次接続してなる累積加算器と、
前記複数の画像検出処理要素の前記デジタル信号を選択的に前記累積加算器に入力させる制御回路と、
前記光検出器によって検出される画像データに基づき前記累積加算器から出力される処理データが入力されるシリアル−パラレル変換器と、
前記シリアル−パラレル変換器によって変換された第１のパラレルデータの複数を加算して第２のパラレルデータとして出力する加算器と、
前記加算器から出力される第２のパラレルデータと前記シリアル−パラレル変換器から出力される第１のパラレルデータとの除算をするシリアル除算器と
を備えていることを特徴とする画像検出演算処理装置。
【請求項２】
光電変換を行う光検出器と前記光検出器からの信号をデジタル信号に変換する変換器と前記デジタル信号を入力可能とした第１の加算器とからなる画像検出処理要素の複数個が平面状に配列されてなる画像検出演算処理装置であって、
前記複数の画像検出処理要素の前記第１の加算器を行毎に直列に接続してなる第１の累積加算器と、
前記各行の前記第１の累積加算器の最終段の出力を入力とした前記各行に対応した第２の加算器を直列に接続してなり、前記第１の累積加算器の最終段の出力を累積加算する第２の累積加算器と、
前記複数の画像検出処理要素の前記デジタル信号を選択的に前記第１の累積加算器に入力させる制御回路と、
前記光検出器によって検出される画像データに基づき前記第２の累積加算器から出力される処理データが入力されるシリアル−パラレル変換器と、
前記シリアル−パラレル変換器によって変換された第１のパラレルデータの複数を加算して第２のパラレルデータとして出力する第３の加算器と、
前記第３の加算器から出力される第２のパラレルデータと前記シリアル−パラレル変換器から出力される第１のパラレルデータとの除算をするシリアル除算器とを備えていることを特徴とする画像検出演算処理装置。
【請求項３】
前記制御回路によって前記画像検出処理要素の前記デジタル信号から選択される幾つかの行又は列毎の組合せを順次前記第１の累積加算器に入力し、前記第２の累積加算器から出力される前記組合せ毎の処理データを順次前記シリアル−パラレル変換器に入力して前記組合せ毎の第１のパラレルデータを生成し、更に前記第３の加算器において、前記組合せ毎の第１のパラレルデータを前記組合せに毎に所定のシフト量でシフトしつつ加算してなる前記第２のパラメータを、前記画像検出処理要素群に結像される結像画像の１次モーメントとして出力することを特徴とする請求項２に記載の画像検出演算処理装置。
【請求項４】
前記制御回路によって前記画像検出処理要素の前記デジタル信号から選択される幾つかの行又は列毎の組合せを順次前記第１の累積加算器に入力し、前記第２の累積加算器から出力される前記組合せ毎の処理データを順次前記シリアル−パラレル変換器に入力して前記組合せ毎の第１のパラレルデータを生成し、更に前記第３の加算器において、前記組合せ毎の第１のパラレルデータを前記組合せに毎の所定のシフト量でシフトしつつ加算してなる前記第２のパラメータで表される前記画像検出処理要素群に結像される結像画像の１次モーメントと、前記制御回路によって前記画像検出処理要素の前記デジタル信号の全てを前記第１の累積加算器に入力し、前記第２の累積加算器から出力される処理データを、前記シリアル−パラレル変換器に入力し、当該シリアル−パラレル変換器から出力される前記結像画像の０次モーメントとを前記シリアル除算器に入力し、当該シリアル除算器は、前記１次モーメントを前記０次モーメントで除算し、前記画像検出処理要素群に結像される結像画像の重心座標情報を演算し出力することを特徴とする請求項２に記載の画像検出演算処理装置。
【請求項５】
全ての要素が１チップに形成されていることを特徴とする請求項１又は２に記載の画像検出演算処理装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、各種の制御機器や認識装置、情報入力装置に用いる画像検出処理装置に関し、更に詳しくは、移動する対象物体上の画像処理を高速処理するのに適した画像検出出力装置に関する。
【０００２】
【従来の技術】
従来、各種の制御機器や認識装置、情報入力装置に用いる画像検出処理装置は、ビデオカメラ等に用いられるＣＣＤ受光センサと外部の処理プロセッサなどを組合わせて使用していた。そして、ＣＣＤ受光センサにより得られた画像データを記憶装置に転送して格納し、処理プロセッサを介して対象物体（ターゲット）の重心計算等の画像処理を行っていた。しかし、従来のものはＣＣＤ受光センサからの信号転送速度が制限されたり、外部の処理プロセッサ等が大規模になるという欠点があった。
【０００３】
この欠点を解消し、画像処理を高速で行うようにした画像処理装置としては、特許文献１の画像検出処理装置がある。この画像検出処理装置は、複数の画像検出処理要素が平面上に配列され、この画像検出処理要素は、光電変換を行う光検出器と、光検出器からの信号をデジタル信号に変換する変換器と、デジタル信号を入力可能とした加算器とからなる。更に、複数の画像検出処理要素の加算器を順次接続した累積加算器と、複数の画像検出処理要素の前記デジタル信号を選択的に前記累積加算器に入力させる制御回路と、光検出器によって検出される画像データに基づき累積加算器から出力される処理データが供給される出力部とを備えている。
【０００４】
この画像検出処理装置では、制御回路により複数の画像検出処理要素のデジタル信号を選択的に累積加算器に入力し、画像検出処理要素の光検出器によって検出される画像データに基づき累積加算器から処理データを出力する。これにより、画像検出処理装置において、重心計算等の画像処理に必要な処理データをデータ転送時に生成可能とし、高速処理を可能としている。
この画像検出処理装置では、画像検出処理装置から対象物体（ターゲット）の重心座標を計算するには、出力部からの処理データを別設の記憶装置及び演算処理装置などによって幾つかの処理データを加算及び除算する。
【０００５】
【特許文献１】
特開２００１−１９５５６４号
【０００６】
【発明が解決しようとする課題】
しかし、この画像検出処理装置は、高速処理（例えば、重心演算周期１ｍｓ）を目的とした装置であるため、加算及び除算を行う演算処理装置は高速処理を行える高価なものを使用する必要があった。また、除算器を実装可能なＦＰＧＡなどを使用することもできるが、ＦＰＧＡ自身が高価な上、回路規模が大きくなってしまう。
【０００７】
本発明は、この画像検出処理装置において高速処理を行い、且つ別設の演算処理装置やＦＰＧＡを安価にし、または無くすことができ、さらに演算回路の演算機能を対象の重心情報を計算するのに最適な小規模な回路構成とすることで、画像検出処理装置と同一チップ内に配置できるようにすることを目的とする。
【０００８】
【課題を解決するための手段】
本発明の１態様による画像検出演算処理装置は、光電変換を行う光検出器と前記光検出器からの信号をデジタル信号に変換する変換器と前記デジタル信号を入力可能とした加算器とからなる画像検出処理要素の複数個が平面状に配列されてなる画像検出演算処理装置であって、前記複数の画像検出処理要素の前記加算器を順次接続してなる累積加算器と、前記複数の画像検出処理要素の前記デジタル信号を選択的に前記累積加算器に入力させる制御回路と、前記光検出器によって検出される画像データに基づき前記累積加算器から出力される処理データがが入力されるシリアル−パラレル変換器と、前記シリアル−パラレル変換器によって変換された第１のパラレルデータを加算して第２のパラレルデータとして出力する加算器と、前記加算器から出力される第２のパラレルデータと前記シリアル−パラレル変換器から出力される第１のパラレルデータとの除算をするシリアル除算器とを備えている。
【０００９】
本発明の画像検出処理装置は、処理データをシリアル−パラレル変換器にてシリアル−パラレル変換した第１のパラレルデータの複数を加算してなる第２のパラレルデータとシリアル−パラレル変換器から出力される第１のパラレルデータとの除算をシリアル除算器で行うので、０次モーメント、１次モーメントをそれぞれ第１、第２のパラレルデータとして内部生成し、これらから重心位置情報を演算し、出力することができる。このため、外部回路を別途必要とせずに、画像検出処理装置のみで高速に重心計算を行うことができる。
【００１０】
また、シリアル除算器を用いるので、その構成が、第２のパラメータデータの桁に応じたフリップフロップ、減算回路及びマルチプレクサ等からなるという簡易な回路構成のため、回路規模を抑えることができる。しかも、画像検出処理要素の総画素数及び対象物の最大重心座標情報の最大桁数が分かっているので、第１及び第２のパラメータデータの演算に関わるシリアル−パラレル変換器、加算器及びシリアル除算器の入力桁を最小限にし、回路規模を最小で構成することができる。特に画像検出処理装置を１チップに形成する場合は、不要なチップ面積の増大を抑えるうえで有効となる。
【００１１】
本発明の別の態様による画像検出演算処理装置は、光電変換を行う光検出器と前記光検出器からの信号をデジタル信号に変換する変換器と前記デジタル信号を入力可能とした第１の加算器とからなる画像検出処理要素の複数個が平面状に配列されてなる画像検出演算処理装置であって、前記複数の画像検出処理要素の前記第１の加算器を行毎に直列に接続してなる第１の累積加算器と、前記各行の前記第１の累積加算器の最終段の出力を入力とした前記各行に対応した第２の加算器を直列に接続してなり、前記第１の累積加算器の最終段の出力を累積加算する第２の累積加算器と、前記複数の画像検出処理要素の前記デジタル信号を選択的に前記第１の累積加算器に入力させる制御回路と、前記光検出器によって検出される画像データに基づき前記累積加算器から出力される処理データが入力されるシリアル−パラレル変換器と、前記シリアル−パラレル変換器によって変換された第１のパラレルデータの複数を加算して第２のパラレルデータとして出力する第３の加算器と、前記第３の加算器から出力される第２のパラレルデータと前記シリアル−パラレル変換器から出力される第１のパラレルデータとの除算をするシリアル除算器とを備えている。
【００１２】
この別の態様による画像検出演算処理装置も、上記１態様の画像検出演算処理装置と同様に別途外部回路を必要とせず、高速の重心計算が可能で回路規模の縮小が可能である。
【００１３】
前記制御回路によって前記画像検出処理要素の前記デジタル信号から選択される幾つかの組合せを順次前記第１の累積加算器に入力し、前記第２の累積加算器から出力される前記組合せ毎の処理データを順次、前記シリアル−パラレル変換器に入力して前記組合せ毎の第１のパラレルデータを生成し、更に前記第３の加算器において、前記組合せ毎の第１のパラレルデータを前記組合せに毎に所定のシフト量でシフトしつつ加算してなる前記第２のパラメータを、前記画像検出処理要素群に結像される結像画像の１次モーメントとして出力することが好ましい。
【００１４】
この場合、単純なシフト処理と加算によって１次モーメントが計算できるので、重心座標の高速処理と回路規模の縮小とを進めることが可能となる。しかも、１次モーメントを出力する構成を備えるので、重心座標以外の特徴量を外部回路等で演算する場合に外部回路に１次モーメントを高速に提供でき、外部回路の演算負荷を抑え、特徴量の演算処理を全体的に高速化することが可能となる。
【００１５】
前記制御回路によって前記画像検出処理要素の前記デジタル信号から選択される幾つかの行又は列毎の組合せを順次前記第１の累積加算器に入力し、前記第２の累積加算器から出力される前記組合せ毎の処理データを順次前記シリアル−パラレル変換器に入力して前記組合せ毎の第１のパラレルデータを生成し、更に前記第３の加算器において、前記組合せ毎の第１のパラレルデータを前記組合せに毎の所定のシフト量でシフトしつつ加算してなる前記第２のパラメータで表される前記画像検出処理要素群に結像される結像画像の１次モーメントと、前記制御回路によって前記画像検出処理要素の前記デジタル信号の全てを前記第１の累積加算器に入力し、前記第２の累積加算器から出力される処理データを、前記シリアル−パラレル変換器に入力し、当該シリアル−パラレル変換器から出力される０次モーメントとを前記シリアル除算器に入力し、当該シリアル除算器は、前記１次モーメントを前記０次モーメントで除算し、前記画像検出処理要素群に結像される結像画像の重心座標情報を演算し出力することが好ましい。
【００１６】
この場合も、上述したように単純なシフト処理と加算処理とによって１次モーメントが計算でき、また、単純なシフト処理と引算処理とによって重心座標情報が得られるので、重心座標の高速処理と回路規模の縮小とを進めることが可能となる。
【００１７】
全ての要素が１チップに形成されていることが好ましい。この場合も上述したように不要なチップ面積の増大を抑えることができる。
【００１８】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。図１は、本発明の実施の形態による画像検出処理装置を示す概略平面図である。本実施の形態の画像検出処理装置は、ロボットの視覚センサ等において、検出される画像から、動作対象物のターゲットの画像を抽出し、画像データを加工する。さらに、後段で画像データから０次モーメント、１次モーメントを算出し、その位置情報、軌跡情報等を得る処理を行うものである。
【００１９】
図１において、１−１乃至１−６４は画像検出処理要素で、８×８個のアレイ構造として平面的に配置してある。各画像検出処理要素は、後述するように、光検出器と、光検出器からの信号をデジタル信号に変換する変換部と、第１の加算器とを備えている。各画像検出処理要素は、その上下左右に隣接する４個の画像検出処理要素に対して、デジタル信号をターゲット画像信号として出力する。画像検出処理要素では、４個の画像検出処理要素からのターゲット画像信号とそれ自身のターゲット画像信号群に基づいて、ターゲットを背景から抽出するためのウインドー画像信号を生成する。ウインドー画像に含まれる画像が、新たなターゲット画像として背景から抽出される。
【００２０】
各画素の第１の加算器は、その右隣の画像検出処理要素の第１の加算器と接続される。例えば、画像検出処理要素１−１１の第１の加算器の出力は、画像検出処理要素１−１２の第１の加算器に入力される。このように行毎の画像検出処理要素の第１の加算器は順次接続されて、第１の累積加算器を構成している。
【００２１】
各画像検出処理要素に対しては、共通信号としてＣＬＯＣＫ１、ＣＬＯＣＫ２、ＬＯＡＤ、ＳＥＬの各信号が入力される。クロック信号ＣＬＯＣＫ１、信号ＬＯＡＤはそれぞれ画像取込用、初期画像設定用の信号である。クロック信号ＣＬＯＣＫ２、信号ＳＥＬは画像演算用の信号である。
【００２２】
２−１乃至２−８は第２の加算器としての直列加算器で、画像検出処理要素の行毎に配置され、対応する画像検出処理要素からの出力を一方の入力に受ける。また、各直列加算器の出力は順次隣接する直列型加算器の他方の入力に接続されて第２の累積加算回路を構成する。それぞれの直列型加算器については、図３により後述する。
【００２３】
本実施の形態では、画像検出処理要素１−１乃至１−８に対して直列加算器２−１が対応し、画像検出処理要素１−８の出力が直列型加算器２−１の一方の入力に接続される。直列型加算器２−１の出力は、直列型加算器２−２の他方の入力に接続される。直列型加算器２−８の出力が全体の出力信号となっており、光検出器によって検出される画像データに基づく処理データが供給される出力部を構成する。
【００２４】
図１中、３は行デコーダ回路であり、Ｙ０乃至Ｙ７の出力信号を制御する。４は列デコーダ回路であり、Ｘ０乃至Ｘ７の出力信号を制御する。第１の累積加算器では、行デコーダ３及び列デコーダ４によって選択された画像検出処理要素のみを選択して加算演算を行うことが可能である。
第２の累積加算器は、その演算結果をその下位桁からシリアルに順次出力する。
【００２５】
図２を参照して、各画像検出処理要素の構成について説明する。５は光検出器としての光電変換部であり、フォトダイオードからなり、入射した光の強さに応じた信号を出力する。６は２値化回路であり、コンパレータからなり、光電変換部５からの信号を２値化する。本例では、光電変換部５に入力した光量に応じて、所定のしきい値より明るいときにＨｉｇｈレベル（以下、Ｈレベル）の信号を出力し、暗いときにＬｏｗレベル（以下、Ｌレベル）の信号を出力する。７は論理積（ＡＮＤ）回路であり、２値化回路６からの信号と後述する５入力論理和（ＯＲ）回路１２からの信号が共にＨレベルであったとき、Ｈレベルの信号を出力する。８はマルチプレクサであり、本例では、図１の信号ＬＯＡＤがＨレベルのとき、論理積回路からの信号を出力し、Ｌレベルのとき、後述する論理積回路１１からの信号を出力する。９はフリップフロップ回路で、マルチプレクサ８の信号を図１のクロック信号ＣＬＯＣＫ１により取込んで出力する。２値化回路６、論理積回路７、マルチプレクサ８、フリップフロップ回路９、５入力論理和回路１２から変換器が構成される。
【００２６】
１０は論理積回路であり、フリップフロップ回路９の出力と後述する論理積回路１１の出力が共にＨレベルであったときにＨレベルの信号を出力する。１１は論理積回路であり、行デコーダ３の出力と列デコーダ４の出力が共にＨレベルであったとき、Ｈレベルの信号を出力する。１２は５入力論理和回路で、自身のフリップフロップ回路９の出力及び上下左右隣の画像検出処理要素の各フリップフロップ回路９の出力から論理和を出力する。
【００２７】
１３はマルチプレクサで、この実施例では図１の信号ＳＥＬがＨレベルのとき論理積回路１０からの信号を出力し、Ｌレベルのとき後述するフリップフロップ回路１４の信号を出力する。１４はフリップフロップ回路であり、後述する加算回路１５のＣＡＲＲＹ信号を図１のクロック信号ＣＬＯＣＫ２により取り込んで出力する。１５は半加算器からなる加算回路で、マルチプレクサ１３の出力と隣接する画像検出処理要素の半加算回路のＳＵＭ信号との算術和を算出し、ＳＵＭ信号とＣＡＲＲＹ信号を出力する。論理積回路１０，１１、マルチプレクサ１３、フリップフロップ回路１４、加算回路１５から第１の加算器が構成される。
【００２８】
次に、図３を参照して、直列型加算器について説明する。１６は全加算器からなる加算回路で画像検出処理要素のＳＵＭ信号と後述するフリップフロップ回路１７と前段の加算回路１６のＳＵＭ信号との算術加算演算を行い、ＳＵＭ信号とＣＡＲＲＹ信号を出力する。ＳＵＭ信号は次段の加算回路に出力され、ＣＡＲＲＹ信号はフリップフロップ回路１７に出力される。加算回路１６は３つの入力の状態が、全てＬレベルのときにはＳＵＭ信号及びＣＡＲＲＹ信号が共にＬレベルとなり、何れか１つだけがＨレベルのときにはＳＵＭ信号がＨレベル、ＣＡＲＲＹ信号がＬレベルとなり、２つがＨレベルのときＳＵＭ信号がＬレベル、ＣＡＲＲＹ信号がＨレベルとなり、全てがＨレベルのときにはＳＵＭ信号及びＣＡＲＲＹ信号が共にＨレベルとなる。１７はフリップフロップ回路であり、加算回路１６のＣＡＲＲＹ信号を上述のクロック信号ＣＬＯＣＫ２により取り込んで出力する。
【００２９】
図４は、本発明の実施の形態による重心演算回路を示す。重心演算回路は、第２の累積加算器の出力から、結像画像の重心位置を演算する。図４において、２１は画像検出処理要素の最大総和桁の記憶装置をもつシフトレジスタである。シフトレジスタ２１には、第２の累積加算器（図１）のシリアル出力ＳＯＵＴが接続され、シリアル出力ＳＯＵＴをパラレルデータに変換している。シフトレジスタ２１のパラレル出力は、第３の加算器２２と、シリアル除算器２３とに、シフトレジスタ２１の記憶装置のビット幅で接続される。すなわち、詳しくは後述するが、シリアル除算器２２を構成する記憶装置としての各Ｄフリップフロップの出力がパラレルに第３の加算器２２と、シリアル除算器２３とに接続される。
【００３０】
図５（ａ）は、図４におけるシフトレジスタ２１、第３の加算器２２、シリアル除算器２３にそれぞれ与えるクロック（インストラクション）を選択する選択回路（マルチプレクサ）２４である。マルチプレクサ２４には、クロックＣＬＫＢ、選択信号ＤＳＥＬ０、ＤＳＥＬ１が入力され、クリアクロックＣＬＥＡＲ  ＣＬＫ、シフトクロックＳＨＩＦＴ  ＣＬＫ、加算クロックＡＤＤ  ＣＬＫ、除算クロックＤＩＶ  ＣＬＫを出力する。クロックＣＬＫＢは、図１のクロック信号ＣＬＯＣＫ２に相当するものである。クリアクロックＣＬＥＡＲ  ＣＬＫは、シフトレジスタ２１、第３の加算器２２、シリアル除算器２３にそれぞれ出力され、シフトクロックＳＨＩＦＴ  ＣＬＫはシフトレジスタ２１に出力され、加算クロックＡＤＤ  ＣＬＫは第３の加算器２２に出力され、除算クロックＤＩＶ  ＣＬＫはシリアル除算器２３に出力される。
【００３１】
図５（ｂ）は、マルチプレクサ２４の入力信号と出力信号のデコード表である。マルチプレクサの動作については後述する。
【００３２】
第３の加算器２２は、シフトレジスタ２１によりパラレル変換された数パターンの１次モーメントの部分和を加算して１次モーメントを計算し、シリアル除算器２３にパラレルデータとして出力する。
シリアル除算器２３は、第３の加算器２２からの１次モーメントをシフトレジスタ２１からの０次モーメントで除算し、演算結果を上位桁から順次シリアルに外部へ出力する。
【００３３】
シフトレジスタ２１、第３の加算器２２、シリアル除算器２３のｂｉｔ数について述べる。後述するように、図１に示す８×８個のアレイ構造の実施の形態では、画像検出処理要素の最大０次モーメント（総和）は７ｂｉｔ、１次モーメントは８ｂｉｔとなる。そのため、シフトレジスタ２１は７ｂｉｔ、第３の加算器２２及びシリアル除算器２３は８ｂｉｔの記憶装置で構成されている。
【００３４】
次に画像検出処理装置の動作について説明する。なお、図１乃至図３に示した構成は特許文献１の図１乃至図３に示される画像検出処理装置と同一のものであり、直列型加算器２−８より前段の動作の詳細については特許文献１を参照されたい。まず、内部回路の初期化を行うため、行デコーダ３、列デコーダ４を全て非選択となるように設定し、信号ＳＥＬでマルチプレクサ１３から画素選択信号が出力されるように設定した後、クロック信号ＣＬＯＣＫ２を入力し、ラッチ回路１４、１７をクリアする。クロック信号ＣＬＯＣＫ２の１クロックでラッチ回路１４がクリアされ、その後の６クロック以上で総てのラッチ回路１７がクリアされる。
【００３５】
次にウィンドー画像信号の設定を行う。ウインドー画像信号は背景からターゲットの画像を分離するためのものである。信号ＬＯＡＤでマルチプレクサ８から画素選択信号が出力されるように設定し、行デコーダ３、列デコーダ４で適当な画素の選択設定をすることでウインドー画像の初期設定を行う。
【００３６】
次に画像の取込みが行われる。適切な結像光学系を用いて、対象物体の像を平面状に配列された画像検出処理要素上に結像させる。それぞれの画像検出処理要素では、まず光電変換部５において、対象物体の明暗の情報を結像された画像の光量に応じたアナログ信号に変換する。このアナログ信号は２値化回路６によって、Ｌレベル又はＨレベルの値を持つ２値画像信号に変換される。
【００３７】
２値画像信号は、論理積回路７においてウインドー画像信号と論理積演算を行い、ターゲット画像信号に変換される。ターゲット画像信号はマルチプレクサ８を介してフリップフロップ９に出力され、クロック信号ＣＬＯＣＫ１のタイミングで取り込まれる。フリップフロップ９に取り込まれたターゲット画像信号は、次のクロック信号ＣＬＯＣＫ１のタイミングにおけるウインドー信号を生成するために５入力論理和回路１２に入力される。
【００３８】
フリップフロップ９の出力は、同じ画像検出処理要素内の５入力論理和回路１２に出力されると共に、隣接する４個の画像検出処理要素内の５入力論理和回路１２にも出力されており、５入力論理和回路１２からウインドー画像信号が出力される。ウインドー画像は元となる２値化画像に対して上下左右に広がったものとなる。このウインドー画像、次のフレームでの２値化画像との間で論理積演算を行ったものがターゲット画像となる。即ち、フレームごとにターゲット画像信号の移動に追従してウインドー画像が若干の広がりをもって形成され、これに含まれる画像が新たなターゲット画像信号として得られる。
【００３９】
次に画像演算動作について説明する。まず、ターゲット画像を構成する画素の総数はターゲット画像の面積（０次モーメント）とみることができ、図１の画像検出演算処理装置の基本動作の理解のため、０次モーメントを求める動作の概要について述べる。このとき、行デコーダ３及び列デコーダ４によって総ての画像検出処理要素を選択する。フリップフロップ９から出力されるターゲット画像信号は、論理積回路１０で画素選択信号がＨレベルのときのみマルチプレクサ１３に入力される。信号”ＳＥＬ”をＨレベルにして論理積回路１０の出力がマルチプレクサ１３により選択されるようにする。これにより、各画像検出処理要素の半加算器１５には、ターゲット画像に応じたＨレベル又はＬレベルの信号が入力され、図１では左隣の画像検出処理要素からのＳＵＭ信号と加算される。その結果のＳＵＭ信号は、右隣の画像検出処理要素の半加算器１５へと出力される。このとき、各行においてＳＵＭ信号の加算結果は右端の画像検出処理要素１−８、１−１６、・・・、１−６４迄非同期的に伝送される。また、加算結果のＣＡＲＲＹ信号は自己のフリップフロップ１４に出力され、この後のクロック信号ＣＬＯＣＫ２のタイミングでフリップフロップ１４にこれを取り込む。次に信号”ＳＥＬ”をＬレベルにしてフリップフロップ１４の出力がマルチプレクサ１３により選択されるようにし、半加算器１５にてフリップフロップ１４の出力が左隣の画像検出処理要素からのＳＵＭ信号と加算され、その結果のＳＵＭ信号が上述と同様に右隣の画像検出処理要素の半加算器１５へと出力され、加算結果のＣＡＲＲＹ信号は自己のフリップフロップ１４に出力される。ここで、右端列の画像検出処理要素１−８、１−１６、・・・、１−６４はそれぞれ直列加算器２−１乃至２−８へＳＵＭ信号を出力する。
【００４０】
これを受ける直列型加算器２−１乃至２−８では、それぞれ右端列の画像検出処理要素１−８、１−１６、・・・、１−６４からのＳＵＭ信号と、前段の直列型加算器の加算回路のＳＵＭ信号と、ＣＡＲＲＹ信号とを加算し、ＳＵＭ信号と、ＣＡＲＲＹ信号とを出力する。ＣＡＲＲＹ信号は自己のフリップフロップ１７に出力され、クロック信号ＣＬＯＣＫ２のタイミングで取り込まれる。
【００４１】
クロック信号ＣＬＯＣＫ２のタイミングで直列型加算器１−８乃至１−６４の加算回路のＳＵＭ信号は、後段の直列型加算器に順次出力される。最初のクロック信号ＣＬＯＣＫ２のタイミングでは、直列型加算器の２−８の出力からは、ターゲット画像を構成する画素の総数を２進数で表現した場合の最下位桁の値が出力される。クロック信号ＣＬＯＣＫ２が入力されるごとにターゲット画像を構成する画素の総数が下位桁から順次出力される。本例では、ＳＥＬ信号の入力後、クロック信号ＣＬＯＣＫ２を７クロック入力することで、ターゲット画像を構成する画素の総数を７桁の２進数で得ることができる。本例では、少ないクロック数にてターゲット画像を構成する画素の総数、即ちターゲット画像の面積（０次モーメント）をシリアルデータとして求めることができる。
【００４２】
次に、１次モーメントを求める場合の動作の概要について説明する。１次モーメントを求める場合は、行デコーダ３、列デコーダ４にて適当な画素を選択して、数種の部分和を求め、その部分和の総和を計算する。この様子を図６に示す。図６（ａ）において、左側の図は対象となる画像である。中央の図は、列デコーダの選択パターンの例であり、右側の図は、それに対応する部分和の値である。ここでは、画像検出処理要素アレイの縦方向をＹ軸とし、座標位置を上から０，１，．．．７、横方向をＸ軸とし、座標位置を左から０，１，．．．７とする。Ｘ軸、Ｙ軸の１次モーメントは、それぞれ軸方向の総和に加重値として座標位置の値を乗じたものの総和で表される。例えば、Ｙ軸方向の１次モーメントを求めるには、まず、行デコーダ３の設定において一番下の列のみ選択されるようにして、ターゲット画像を構成する画素の総数を求め、得られた値に７を乗じる。次に下から２番目の列のみ選択されるようにして、総和を求める。同様にして順次、加重値の係数を乗じて各列ごとの部分和を加算することで、１次モーメントの値が得られる。
【００４３】
図６の（ｂ）は、本発明の実施の形態による列デコーダの選択パターンの例と、それに対応する部分和の値を表す。図６の（ｂ）において左側の図は対象となる画像である。中央の図は、本発明の実施の形態による列デコーダの選択パターンであり、右側の図は、それに対応する部分和の値である。本発明の実施の形態では、例えば、行デコーダの設定をＹ軸の座標位置７，５，３，１に対応する列をまとめて指定してこれらに含まれるターゲット画像を構成する画素の総和を求めて加重値１を乗じ、次にＹ軸の座標位置７，６，３，２に対応する列をまとめて指定してこれらに含まれるターゲット画像を構成する画素の総和を求めて加重値２を乗じ、次にＹ軸の座標位置７，６，５，４に対応する列をまとめて指定してこれらに含まれるターゲット画像を構成する画素の総和を求めて加重値４を乗じ、１次モーメントを求めるという特許文献１に開示される技術を基本としている。このようにすると、３回の部分和計算で１次モーメントの計算が可能になる。
【００４４】
Ｘ軸方向の１次モーメントについても同様に行デコーダ４の設定を制御することで同様に計算することができる。また、得られた１次モーメントを面積（０次モーメント）で割ることで、容易に重心の座標を求めることができる。
【００４５】
本例によれば、画像検出処理装置において、重心計算等の画像処理に必要な処理データを生成可能であり、更に重心演算回路で重心を演算することができ、画像処理の高速化が可能となる。
【００４６】
次に、対象の重心座標を計算する方法について、モーメント処理演算を数学的にまとめて説明する。
画像のサイズは、画像検出処理要素をＮ２（Ｎ＝２ｎ）個とする。画像データの階調はＭ＝２ｍとする。Ｘ軸上の座標位置ｘ、Ｙ軸上の座標位置ｙにある画像検出処理要素の画像データをＩ（ｘ，ｙ）とする。実行時間は画像検出処理要素でのクロック数（本例におけるクロック信号ＣＬＯＣＫ２）で示す。０次モーメントは次のように表される。
2004362460.tif 000003
2004362460.tif 000004
これは画像データの総和であり、必要なｂｉｔ数はＬｏｇ２（出力の最大値）となり、Ｌｏｇ２（Ｎ２（Ｍ−１））≒（２ｎ＋ｍ）である。本例では階調が２であり、画像検出処理要素の数が６４であるから、７ｂｉｔとなる。
【００４７】
１次モーメントは次のように表される。ｍ１０は行方向の１次モーメントであり、ｍ０１は列方向の１次モーメントである。
2004362460.tif 000005
2004362460.tif 000006
【００４８】
本例では、選択パターンと画像検出処理要素内のデータとの論理積を取って総和演算をする機能（即ち、各画像検出処理要素を選択する機能）と、加重値をビットプレーンに展開する（２進数で展開する）こととにより、１次以上のモーメント量の計算速度の向上を図ることができる。
【００４９】
ｘの２進数表現をｘｎｘｎ−１．．．ｘ１とすると、
2004362460.tif 000007
１次モーメントは次のように表すことができる。
2004362460.tif 000008
2004362460.tif 000009
2004362460.tif 000010
2004362460.tif 000011
【００５０】
ここでｓｋは、図６の（ｂ）に示すような選択パターンと各画像検出処理要素内のデータとの論理積を取ることにより得られるものであり、図６の（ｂ）に示す選択パターンは、左からｋ＝１、ｋ＝２、ｋ＝３に対応している。
【００５１】
重心座標（ｘバー，ｙバー）は、トラッキング画像の０次モーメント（総和）ｍ００と１次モーメントｍ１０，ｍ０１から以下のように求められる。ｍ１０は行方向の１次モーメントであり、ｍ０１は列方向の１次モーメントである。
2004362460.tif 000012
2004362460.tif 000013
【００５２】
本画像検出処理装置に搭載している除算器は、小数点以下の桁まで出力することが可能だが、その有効性について以下に述べる。
本画像検出処理装置は主に対象の重心座標情報を取得するために使用するが、除算器の整数項だけを重心情報とした時には、重心座標範囲が画像検出処理要素数を上回ることが無くなる。
【００５３】
図７は、重心座標の有効桁について説明する図である。図７に示す例は縦方向の重心座標ｙバーについて説明するが、横方向の重心座標ｘバーについても同様である。図７の（ａ）は画像検出処理装置に対象が２画素で認識された場合である。このときの重心座標情報ｙバーは、
2004362460.tif 000014
となり、重心座標情報は４画素目と５画素目の真中になるが、小数点以下を切り落として実数項のみとした場合は４画素目となる。
【００５４】
もう一例を図７の（ｂ）に示す。この場合は対象が４画素で認識された場合である。（ａ）と同様に重心座標情報ｙバーは、
2004362460.tif 000015
となり、重心座標情報は４画素目と５画素目の間の４画素目から５画素目に向かって１／４進んだ所が重心座標情報となるが、小数点以下を切り落として整数項のみとした場合は４画素目となる。
【００５５】
実際には小数点以下が無限に有効になるわけではなく、対象の面積の逆数以上が有効となる。例えば、図７（ａ）では対象の面積が２画素なので、小数点以下は０．５画素まで有効となり、それ以下の小数点以下の桁は無効となる。同様に図７（ｂ）では対象の面積が４画素なので、小数点以下は０．２５画素まで有効となる。
【００５６】
図１の画像検出処理要素が８×８個のアレイ構造の例では、対象面積が最大６４画素なので重心座標の有効桁は２進数表記で整数項３桁、小数点以下６桁となる。小数点以下の桁は特に画像検出処理装置の画像検出処理要素が少ない時には、対象座標の分解能を上げるために特に有効である。
【００５７】
図８は、本発明の実施の形態による重心座標演算動作を示すタイミングチャートである。以下に、図８を使用して、図１の８×８画素構成における詳細な動作を対象物体（ターゲット）の重心座標計算手順を順に説明する。各画像検出処理要素を選択する機能、第１の累積加算器、第２の累積加算器の動作については、前述した。
【００５８】
重心座標情報を計算するために、１次モーメントの部分和（選択パターンは図６（ｂ）のｋ１、ｋ２、ｋ３）を３回と、０次モーメント（全体総和）１回を第１の累積加算器及び第２の累積加算器により計算する。  図１に示す８×８画素の構成において、全画素総和の最大値は７ｂｉｔである。
【００５９】
第２の累積加算器からの出力波形、言い換えれば直列加算器２−８からの出力波形は、図９のようになる。図９の図中の信号ＣＬＫＢは第２の累積加算器のクロック信号ＣＬＯＣＫ２、信号ＳＥＬは上述した第２の累積加算器の画像演算用のパルスである。この２つの信号により第２の累積加算器は演算出力を開始し、ＣＬＫＢの立ち上がりエッジに同期して演算結果の下位桁から１ビットずつシリアルにＳＯＵＴを出力する。また、図１の第２の累積加算器の動作はＣＬＫＢの立ち上がりエッジに同期して遷移し、図４に示した重心演算回路の動作はＣＬＫＢの立ち下がりエッジに同期して遷移する。
【００６０】
前述したように、図５（ａ）において、２４は、図４におけるシフトレジスタ２１、第３の加算器２２、シリアル除算器２３にそれぞれ与えるクロック（インストラクション）を選択する選択回路（マルチプレクサ）である。図５（ｂ）はそのデコード表である。選択回路２４に選択信号ＤＳＥＬ０、ＤＳＥＬ１及び制御クロックＣＬＫＢを与えることにより、シフトレジスタ２１、第３の加算器２２、シリアル除算器２３を全てリセットと、シフトレジスタ２１のビットシフトと、第３の加算器２２の実行と、シリアル除算器２３の実行の何れかの状態を選択するように制御する。
【００６１】
以下、シフトレジスタ２１、第３の加算器２２、シリアル除算器２３の動作を順に述べる。
（１）  全記憶装置クリア
はじめに、シフトレジスタ２１、第３の加算器２２、シリアル除算器２３の記憶装置をＤＳＥＬ０，ＤＳＥＬ１共にＬレベルとして（図８の▲１▼の状態）クリアクロックＣＬＥＡＲ  ＣＬＫを発生し、‘０’にクリアする。記憶装置は具体的には、後述する図１１に示すシフトレジスタ２１のＤフリップフロップＤ−ＦＦ００乃至Ｄ−ＦＦ０６、図１２に示す第３の加算器２２のＤフリップフロップＤ−ＦＦ１０乃至Ｄ−ＦＦ１７、図１３Ａ及びＢに示すシリアル除算器２３のＤフリップフロップＤ−ＦＦ２０乃至Ｄ−ＦＦ２８及びＤ−ＦＦ３０である。
ＤＳＥＬ０，ＤＳＥＬ１共にＬレベルとしたときに（図８の▲１▼の状態）、クリアクロックＣＬＥＡＲ  ＣＬＫは、シフトレジスタ２１、第３の加算器２２、シリアル除算器２３の全ての記憶装置に同時に与えられる。
【００６２】
（２）  シフトレジスタ：選択パターンｋ１（１次モーメントの部分和）
全ての記憶装置がクリアされた後、ＤＳＥＬ０，ＤＳＥＬ１共にＨレベル（図８の▲２▼の状態）で待機する。
▲２▼の状態ではシフトレジスタ２１が第２の累積加算器のシリアル出力をＣＬＫＢに同期したＳＨＩＦＴ  ＣＬＫの立下りエッジに同期してパラレル出力に変換し続けている。ここで、各画像検出処理要素から選択パターンｋ１（図６）に対応するものを選択して、第１の累積加算器に加算演算開始信号ＳＥＬを与え、第２の累積加算器から累積加算結果（１次モーメントの部分和ｋ１）のシリアルデータを最下位ビットからシフトレジスタ２１へ出力させる。第２の累積加算器の最大値７ｂｉｔをシフトレジスタ２１が取り込んだ後、次のＣＬＫＢの立ち上がりまでにＤＳＥＬ１のみをＬレベルとする（図８の▲３▼）。
【００６３】
（３）  第３の加算器：選択パターンｋ１（１次モーメントの部分和）
図８の▲３▼の状態では、ＡＤＤＣＬＫを１クロックだけ発生させ、第３の加算器２２は、シフトレジスタ２１の７ｂｉｔと第３の加算器２２のデータを加算する。この選択パターンｋ１の場合は、第３の加算器２２内の記憶装置がクリアされているため、シフトレジスタ２１の値が第３の加算器２２にそのまま記憶される。
【００６４】
（４）  シフトレジスタ：選択パターンｋ２（１次モーメントの部分和）
第３の加算器２２が加算を行った後、ＤＳＥＬ０，ＤＳＥＬ１共にＨレベル（図８の▲４▼の状態）で待機する。
選択パターンｋ１の１次モーメント部分和を計算した時と同様に、各画像検出処理要素から選択パターンｋ２を選択して、第１の累積加算器及び第２の累積加算器に加算演算開始信号ＳＥＬを与え、第２の累積加算器から累積加算結果として１次モーメントの部分和ｋ２をシフトレジスタ２１へ出力させる。第２の累積加算器の最大値７ｂｉｔをシフトレジスタ２１が取り込み変換後、次のＣＬＫＢの立ち上がりまでにＤＳＥＬ１をＬレベルとする（図８の▲５▼）。
【００６５】
（５）  第３の加算器：選択パターンｋ２（１次モーメントの部分和）
図８の▲５▼の状態でＡＤＤＣＬＫを１クロックだけ発生させ、第３の加算器２２は、シフトレジスタ２１の７ｂｉｔと第３の加算器２２のデータを加算する。この時、第３の加算器２２に記憶してある選択パターンｋ１のデータを１ビット上位にシフトさせて８ｂｉｔとし、最下位ビットを‘０’とした値とシフトレジスタ２１の７ｂｉｔを加算する。この動作により式（２）の演算を行う、つまり選択パターンｋ１の各画素のデータに対する加重値‘４’の内の‘２’を与える。
【００６６】
（６）  シフトレジスタ：選択パターンｋ３（１次モーメントの部分和）
第３の加算器２２が加算を行った後、ＤＳＥＬ０，ＤＳＥＬ１共にＨレベル（（図８）の▲６▼の状態）で待機する。
選択パターンｋ２の１次モーメント部分和を計算した時と同様に、各画像検出処理要素から選択パターンｋ３を選択して、第１の累積加算器及び第２の累積加算器に加算演算開始信号ＳＥＬを与え、第２の累積加算から累積加算結果（１次モーメントの部分和ｋ３）をシフトレジスタ２１へ出力させる。第２の累積加算器の最大値７ｂｉｔをシフトレジスタ２１が取り込み変換した後、次のＣＬＫＢの立ち上がりまでにＤＳＥＬ１をＬレベルとする（図８の▲７▼）。
【００６７】
（７）  第３の加算器：選択パターンｋ３（１次モーメントの部分和）
図８の▲７▼の状態でＡＤＤＣＬＫを１クロックだけ発生させ、第３の加算器２２は、シフトレジスタ２１の７ｂｉｔと第３の加算器２２のデータを加算する。この時、第３の加算器２２に記憶してあるデータを１ビット上位にシフトさせて、最下位ビットを‘０’とした値とシフトレジスタの７ｂｉｔを加算する。この動作により式（２）の演算、つまり選択パターンｋ１の各画素のデータに対する加重値を‘４’とし、選択パターンｋ２の各画素のデータに対する加重値‘２’を与え、選択パターンｋ３の各画素のデータに対する加重値‘１’を与えつつこれらを加算して１次モーメントを得る。
【００６８】
（８）  シフトレジスタ：選択パターン  全画素（０次モーメント）
第３の加算器２２が加算を行った後、ＤＳＥＬ０，ＤＳＥＬ１共にＨレベル（図８の▲８▼の状態）で待機する。
各画像検出処理要素の全画素を選択して、第１の累積加算器及び第２の累積加算器に加算演算開始信号ＳＥＬを与え、第２の累積加算器から累積加算結果（０次モーメント）を出力させる。第２の累積加算器の最大値７ｂｉｔをシフトレジスタが取り込み変換した後、次のＣＬＫＢの立ち上がりまでにＤＳＥＬ０をＬレベルとし、ＤＳＥＬ１をＨレベルとする（図８の▲９▼）。
【００６９】
（９）  重心座標計算：除算
ＤＳＥＬ０をＬレベルとし、ＤＳＥＬ１をＨレベル（図８の▲９▼）とした後、シリアル除算器２３は、第３の加算器２２からの１次モーメントを、シフトレジスタ２１からの０次モーメントで除算し、外部へ演算結果を上位桁から順次シリアルに出力する。このシリアル除算器２３は、画像検出処理装置から対象物体（ターゲット）の重心座標を計算することに特化している。
【００７０】
図１０に具体的な除算方法の概要を示す。図１０中（ａ）乃至（ｃ）は除算クロックＤＩＶ  ＣＬＫの立下りに同期して推移してゆく様子である。シリアル除算器２３は、詳しくは後述するが、図１３Ａ及びＢに示すようにシフト機能つき記憶装置をなす１０個のＤフリップフロップＤ−ＦＦ２０乃至Ｄ−ＦＦ２８及びＤ−ＦＦ３０、９個の引算器ＳＵＢ０乃至ＳＵＢ８及び９個のマルチプレクサＭＵＸ０乃至ＭＵＸ８から構成される。
【００７１】
（９）の重心座標計算に示すようにＤＳＥＬ０をＬレベルとし、ＤＳＥＬ１をＨレベル（図８の▲９▼）とした後、最初のＤＩＶ  ＣＬＫの立下りによってシリアル除算器２３の記憶装置に第３の加算器２２から１次モーメントがロードされる。この状態で図１０（ａ）に示すように、８ｂｉｔの１次モーメントの最下位から２ビット上位（ｂｉｔ２）乃至最上位ビット（ｂｉｔ７）と、７ｂｉｔの０次モーメントの最下位（ｂｉｔ０）から最上位ビット（ｂｉｔ６）とで桁を揃えて大小比較が行われ、１次モーメントの上位ビットより０次モーメントが小さければ‘１’を、そうでなければ‘０’を除算出力ＤＯＵＴへ演算結果が出力される。この値は本実施の形態の重心座標では最大桁の２進数３桁目である。
【００７２】
次の除算クロックＤＩＶ  ＣＬＫの立下りに同期して、（ａ）から（ｂ）へと状態が推移するが、この時、（ａ）の演算結果が‘１’（減算が可能であった）であれば、シリアル除算器２３内部の記憶装置に１次モーメントから０次モーメントを引いた値を上位方向に１桁シフトさせて新たに記憶し、（ａ）の演算結果が‘０’であれば１次モーメントの値をそのまま上位桁へ１桁シフトする。具体的に、（ａ）で演算結果が‘１’であれば、  （ａ）の１次モーメントのｂｉｔ７乃至ｂｉｔ２からそれぞれ０次モーメントのｂｉｔ５乃至ｂｉｔ０を減算し、その結果をシフトして（ｂ）に示す（ａ）の残りのｂｉｔ７乃至ｂｉｔ２とし、その下位に１次モーメントのｂｉｔ１が添えられる。その値と０次モーメントの大小比較を行い、シリアル除算器２３内部の記憶値から０次モーメントが減算可能であれば‘１’を、減算可能でなければ‘０’を除算出力ＤＯＵＴへ演算結果が出力される。この値は重心座標を表す２進数の２桁目である。同様にして除算クロックＤＩＶ  ＣＬＫを繰り返し与えることによって全ての桁を計算する。
【００７３】
つまり、除算クロックＤＩＶ  ＣＬＫに同期して、１次モーメントの上位桁から順に０次モーメントとの大小比較を行い、０次モーメントの方が大きければ１次モーメント側を上位方向に１桁シフトさせ、０次モーメントの方が小さければ１次モーメントから０次モーメントを引いた値を上位方向に１桁シフトさせる。この動作を繰り返すことによって除算を実現することができる。図８では、３ｂｉｔ乃至−３ｂｉｔ、すなわち、整数３桁、少数点以下３桁迄求める様子を示してあるが、除算器２３に除算クロックＤＩＶ  ＣＬＫをさらに与えることにより、さらに下位の少数点以下の桁まで得ることができる。
【００７４】
次に図４の重心演算回路について、シフトレジスタ２１、第３の加算器２２、シリアル除算器２３のより詳細な回路の実施例を用いて、回路規模を最小構成にするための手法を述べる。
【００７５】
（１）  シフトレジスタ
図１１はシフトレジスタ２１の実施例を示す。図１１に示すシフトレジスタ２１は、記憶装置としてのＤフリップフロップ（Ｄ−ＦＦ  ００乃至Ｄ−ＦＦ０６）を０次モーメントの最大ビット数個だけ持ち、それぞれのＤフリップフロップの出力端子（図中Ｑ）は次のＤフリップフロップの入力端子（図中Ｄ）へシリアルに接続されており、先頭（図中左端）のＤフリップフロップＤ−ＦＦ０６の入力端子（図中Ｄ）には図１の第２の累積加算器からの処理データのシリアル出力ＳＯＵＴが接続される。ＤフリップフロップＤ−ＦＦ００乃至Ｄ−ＦＦ０６のクロック端子（図中Ｃ）には全て図５（ａ）のＳＨＩＦＴ  ＣＬＫが、リセット端子（図中Ｒ）には全て図５（ａ）のＣＬＥＡＲ  ＣＬＫが入力されている。
【００７６】
シフトレジスタ２１の動作としては、Ｄフリップフロップの動作クロックＳＨＩＦＴ  ＣＬＫと同期してＤフリップフロップＤ−ＦＦ０６の入力端子（図中Ｄ）に入力された第２の累積加算器からの処理データＳＯＵＴを１ビットずつＤフリップフロップＤ−ＦＦ０６からＤフリップフロップＤ−ＦＦ０５へ、ＤフリップフロップＤ−ＦＦ０５からＤフリップフロップＤ−ＦＦ０４へ、という様にＤフリップフロップＤ−ＦＦ００までデータをＳＨＩＦＴ  ＣＬＫによって７回シフトする。８回以上シフトクロックが入力された際には、先に入力された方のビットから破棄され、常に新しい方の７ビットを保持する。ＤフリップフロップＤ−ＦＦ００乃至Ｄ−ＦＦ０６に保持された第１のパラレルデータの最上位乃至最下位ビットはそれぞれ出力端子ＳＱ６  乃至ＳＱ０から出力され、これら出力端子は、第３の加算器２２と、シリアル除算器２３との各々に接続されている。図１４にシフトレジスタ２１の動作を示す。
【００７７】
（２）  第３の加算器
図１２は第３の加算器２２の実施例を示す。第３の加算器２２は、全加算器Ｆ−ＡＤＤを１次モーメントの最大ビット数−１個、記憶装置としてのＤフリップフロップを１次モーメントの最大ビット数だけ持つ。それぞれのＤフリップフロップＤ−ＦＦ１０乃至Ｄ−ＦＦ１６の出力端子（図中Ｑ）は、全加算器Ｆ−ＡＤＤ１乃至Ｆ−ＡＤＤ７の第１の入力端子  （図中ＩＡ）に接続されている。全加算器Ｆ−ＡＤＤ１乃至Ｆ−ＡＤＤ７の出力端子（図中ＯＵＴ）は、ＤフリップフロップＤ−ＦＦ１１乃至Ｄ−ＦＦ１７の入力端子（図中Ｄ）に接続され、先頭のＤフリップフロップＤ−ＦＦ１０の入力端子（図中Ｄ）のみシフトレジスタ２１の出力端子ＳＱ０に接続されている。全加算器Ｆ−ＡＤＤ２乃至Ｆ−ＡＤＤ７の第２の入力端子（図中ＩＢ）は、各々の前段の全加算器Ｆ−ＡＤＤ０乃至Ｆ−ＡＤＤ６のキャリー出力（図中ＣＲ）と接続され、Ｆ−ＡＤＤ１の第２の入力端子のみ常にＬレベルに保持されている。全加算器Ｆ−ＡＤＤ１乃至Ｆ−ＡＤＤ６の第３の入力端子（図中ＩＣ）は、シフトレジスタ２１の出力端子ＳＱ１乃至ＳＱ６に接続されている。全加算器Ｆ−ＡＤＤ７の第３の入力端子のみ常にＬレベルに保持されている。ＤフリップフロップＤ−ＦＦ１０乃至Ｄ−ＦＦ１７のクロック端子（図中Ｃ）には全て図５（ａ）のＡＤＤ  ＣＬＫが、リセット端子（図中Ｒ）には全て図５（ａ）のＣＬＥＡＲ  ＣＬＫが入力されている。第３の加算器２２によって求められた１次モーメントはＤフリップフロップＤ−ＦＦ１０乃至Ｄ−ＦＦ１７の出力端子ＡＱ０乃至ＡＱ７から出力され、これら出力端子は、除算器２３に接続されている。
【００７８】
第３の加算器２２の動作としては、全加算器Ｆ−ＡＤＤ１乃至Ｆ−ＡＤＤ７は、シフトレジスタ２１の出力端子ＳＱ１乃至ＳＱ６とＤフリップフロップＤ−ＦＦ１０乃至Ｄ−ＦＦ１と６の出力（図中Ｑ）を加算し、ＤフリップフロップＤ−ＦＦの動作クロックＡＤＤ  ＣＬＫと同期して上位に１ビットシフトして、ＤフリップフロップＤ−ＦＦ１１乃至Ｄ−ＦＦ１７に取り込む。つまり、動作クロックＡＤＤ  ＣＬＫの回数分だけシフトレジスタ２１からの第１のパラメータデータを加算及び上位シフト（２倍）を繰り返し、１次モーメントを演算して、シリアル除算器２３へ１次モーメント出力ＡＱ０乃至ＡＱ７の処理データを出力する。
【００７９】
第３の加算器２２の動作を図８のタイミングチャートに沿って述べると次のようになる。図８の▲３▼の状態において全加算器Ｆ−ＡＤＤ１乃至Ｆ−ＡＤＤ６はそれぞれの前段のＤフリップフロップＤ−ＦＦ１０乃至Ｄ−ＦＦ１６の内容がクリアされているため、それぞれ出力端子ＳＱ１乃至ＳＱ６のデータに値‘０’を加算し、言い換えれば、実質的に加算を行わずに出力端子ＳＱ１乃至ＳＱ６のデータをＤフリップフロップＤ−ＦＦ１１乃至Ｄ−ＦＦ１６に出力している。ここで、ＡＤＤＣＬＫを１クロック発生すると、ＤフリップフロップＤ−ＦＦ１０乃至Ｄ−ＦＦ１６にはそれぞれ出力端子ＳＱ０乃至ＳＱ６のデータが記憶される。このとき、ＤフリップフロップＤ−ＦＦ１７の内容は値‘０’を記憶する。
【００８０】
次に図８の▲５▼の状態において、全加算器Ｆ−ＡＤＤ１乃至Ｆ−ＡＤＤ６はそれぞれの前段のＤフリップフロップＤ−ＦＦ１０乃至Ｄ−ＦＦ１５に記憶された選択パターンｋ１の最下位乃至最上位より１ビット下位の各データと、新たに出力端子ＳＱ１乃至ＳＱ６から出力される選択パターンｋ２の最下位より１ビット上位乃至最上位のビットの各データとを加算してそれぞれＤフリップフロップＤ−ＦＦ１１乃至Ｄ−ＦＦ１６に出力する。ここで、ＡＤＤＣＬＫを１クロック発生すると、ＤフリップフロップＤ−ＦＦ１０乃至Ｄ−ＦＦ１７には、選択パターンｋ１のデータを１ビット上位にシフトさせて８ｂｉｔとし、最下位ビットを‘０’とした値とシフトレジスタ２１の７ｂｉｔとを加算した結果の各ビットのデータが記憶される。
【００８１】
次に図８の▲７▼の状態において、上述の動作と同様にして、全加算器Ｆ−ＡＤＤ１乃至Ｆ−ＡＤＤ６はそれぞれの前段のＤフリップフロップＤ−ＦＦ１０乃至Ｄ−ＦＦ１５に記憶された先の図８の▲５▼での加算結果の最下位乃至最上位より１ビット下位の各データと、新たに出力端子ＳＱ１乃至ＳＱ６から出力される選択パターンｋ３の最下位より１ビット上位乃至最上位のビットの各データとを加算してそれぞれＤフリップフロップＤ−ＦＦ１１乃至Ｄ−ＦＦ１６に出力する。ここで、ＡＤＤＣＬＫを１クロック発生すると、ＤフリップフロップＤ−ＦＦ１０乃至Ｄ−ＦＦ１７にはそれぞれ、選択パターンｋ１のデータを２ビット上位にシフトさせ９ｂｉｔとしたものと、選択パターンｋ２のデータを１ビット上位にシフトさせ８ｂｉｔとしたものと、選択パターンｋ３の７ｂｉｔとを加算した結果の最下位から上位８ｂｉｔまでの各ビットのデータが記憶される。これによって、図１５に示す第３の加算器２２の動作が実現される。なお、選択パターンｋ１、ｋ２、ｋ３によって選択された１次モーメントの為の部分和はそれぞれ７ｂｉｔでシフトレジスタから受けとる為、普通に考えれば９ｂｉｔのデータに成り得るが、選択パターンからも分かるように１次モーメントの部分和は全画素選択時の０次モーメントの半分を上回らないことより、部分和の最大値は６ｂｉｔを上回らず、９ｂｉｔ化によるオーバーフローの影響はない。
【００８２】
（３）  シリアル除算器
図１３Ａ及びＢはシリアル除算器２３の実施例を示す。ここに、図１３Ａはシリアル除算器２３の左側半分、図１３Ｂは右側半分を表す。シリアル除算器２３は、マルチプレクサ付き引算器ＳＵＢと、２入力１出力のマルチプレクサＭＵＸと、記憶装置Ｄ−ＦＦを１次モーメント最大ビット数＋１個持っている。図１３Ａ及びＢでは繰り返し部分が省略されているが、ＵＮＩＴ２乃至ＵＮＩＴ７は全て同じ回路構成である。マルチプレクサＭＵＸ０乃至ＭＵＸ７の入力端子（図中ＩＡ）は第３の加算器からの１次モーメントを出力する出力端子ＡＱ０乃至ＡＱ７が、もう一方の入力端子（図中ＩＢ）には前段の引算器ＳＵＢの出力端子（図中ＯＵＴ）が接続されており、選択端子（図中ＳＥＬ）によってマルチプレクサの出力端子（図中ＯＵＴ）にＩＡ、ＩＢのどちらかを選択して出力し、その出力端子（図中ＯＵＴ）は記憶装置としてのＤフリップフロップＤ−ＦＦ２０乃至Ｄ−ＦＦ２８の入力端子（図中Ｄ）へ接続されている。ここで、引算器ＳＵＢ０乃至ＳＵＢ８の入力端子ＩＡはＤフリップフロップＤ−ＦＦ２０乃至Ｄ−ＦＦ２８の出力端子Ｑに接続される。引算器ＳＵＢ０の入力端子ＩＢは接地されて常に’０’とされ、引算器ＳＵＢ１乃至ＳＵＢ８の入力端子ＩＢは前段のＣＡＲＲＹ端子ＣＲに接続される。引算器ＳＵＢ０及びＳＵＢ１の入力端子ＩＣは接地されて常に’０’とされ、引算器ＳＵＢ２乃至ＳＵＢ８の入力端子ＩＣはシフトレジスタ２１の出力端子ＳＱ０乃至ＳＱ６に接続され、シフトレジスタ２１からの０次モーメントを受ける。ＤフリップフロップＤ−ＦＦ２０乃至Ｄ−ＦＦ２８、Ｄ−ＦＦ３０のクロック端子（図中Ｃ）には全て図５（ａ）のＤＩＶ  ＣＬＫが、リセット端子（図中Ｒ）には全て図５（ａ）のＣＬＥＡＲ  ＣＬＫが入力されている。シリアル除算器によって求められた重心座標情報ＤＯＵＴは、外部回路へ出力される。
【００８３】
シリアル除算器の動作を説明する。マルチプレクサＭＵＸ０乃至ＭＵＸ７の入力端子（図中ＩＡ）は、第３の加算器からの１次モーメントＡＱ０乃至ＡＱ７が接続され、除算器動作の最初の動作クロックＤＩＶ  ＣＬＫのタイミングのみＤフリップフロップＤ−ＦＦ２０乃至Ｄ−ＦＦ２７に１次モーメントをロードする。そのときの最初のクロックを受けて端子ＳＥＬをＨレベルとしてマルチプレクサＭＵＸ０乃至ＭＵＸ７がそれ以降１次モーメントをロードせず、入力端子ＩＢを選択するように制御しているのがＤフリップフロップＤ−ＦＦ３０である。除算器動作の動作クロックＤＩＶ  ＣＬＫの２番目以降のクロックでは、ＤフリップフロップＤ−ＦＦ２０乃至Ｄ−ＦＦ２７にロードされた１次モーメントの上位桁から０次モーメントの引算を引算器ＳＵＢ０乃至ＳＵＢ８で計算し、引算器のキャリービット（図中ＤＯＵＴ）が重心座標情報の最上位の１桁目の答えとなる。この答えが１の時には次の桁を計算する際に引算を行った余りから０次モーメントを引かなければならないので、キャリービット（図中ＤＯＵＴ）がすべての引算器ＳＵＢ０乃至ＳＵＢ８の入力端子（図中ＳＵＢ）に入力され、１次モーメントの上位桁から０次モーメントを引いた値の余りを出力端子（ＯＵＴ）に出力する。これによって引算器ＳＵＢ０乃至ＳＵＢ８ではＤフリップフロップＤ−ＦＦ２０乃至Ｄ−ＦＦ２７から０次モーメントを引算した余りが次段にシフトされる。また、キャリービットが０の時には、マルチプレクサ付き引算器の入力端子（図中ＳＵＢ）に０が入力され、マルチプレクサが切り替わり、これによって引算器ＳＵＢ０乃至ＳＵＢ８ではＤフリップフロップＤ−ＦＦ２０乃至Ｄ−ＦＦ２７から０次モーメントを引算せずに次段にシフトされる。１次モーメントをそのまま出力端子（ＯＵＴ）へ出力する。これによって図１６に示すシリアル除算器２３の動作が実現する。
【００８４】
本実施例では、シリアル除算器２３の割られる数（１次モーメント）と割る数（０次モーメント）の桁合わせを行う。この手法によって回路規模を最小限に抑えることが出来る。
任意の画像検出処理要素の平面アレイでは、最大座標をそれぞれｎｘ，ｎｙ、１次モーメントをｍ１０，ｍ０１、０次モーメントをｍ００とすると、
2004362460.tif 000016
2004362460.tif 000017
が成り立つ。式（３）は、重心計算式（１）が必ず重心座標を上回らないことから明らかである。
【００８５】
例えば（割り算）に示すように図１の８×８画素の例では重心座標（ｘバー，ｙバー）が共に８以上にはならないため、整数項が３桁以上は計算しなくて良い。
この条件によって、記憶装置Ｄ−ＦＦをはじめ多くの回路を汎用の割り算器よりも少なくすることが可能となり、回路規模を小さくすることができる。
【００８６】
本実施の形態では、１次モーメントを外部に出力していないが、次に述べる１次モーメントの有効性などを考慮して、中間データの１次モーメントを出力することも可能である。
【００８７】
ここで、１次モーメントの応用例及び有効性について述べる。重心座標を求める際に使用する１次モーメントを外部に出力することで、単純な対象の重心座標情報以外の特徴量を計算することも出来る。以下に応用例の一つを示す。
本画像検出処理装置で複数物体の追跡を行う際には、物体同士の衝突・分離が問題となる。各物体の面積Ｓｉと画像全体の面積Ｓｗｈｏｌｅから、衝突か分離か以下のように判定することが出来る。
【００８８】
2004362460.tif 000018
衝突  （ｃｏｌｌｉｓｉｏｎ）          ・・・（４）
2004362460.tif 000019
分離  （ｓｅｐａｒａｔｉｏｎ）      ・・・（５）
分離の判定後、新しい物体の重心は以下のように計算できる。（ｘｉ，ｙｉ）は各物体の重心、（ｘｗｈｏｌｅ，ｙｗｈｏｌｅ）は、画像全体の重心である。
【００８９】
2004362460.tif 000020
2004362460.tif 000021
2004362460.tif 000022
2004362460.tif 000023
ここで、上式（６）、（７）中の
2004362460.tif 000024
はそれぞれｘ座標ｙ座標の１次モーメントであり、複数物体の衝突・分離において分離後の新しい物体の重心計算に非常に有効な特徴量であることが分かる。このアルゴリズムは次の論文に記載されている。
「高速対象追跡ビジョンチップを用いた複数物体のトラッキング」（日本ロボット学会創立２０周年記念学術講演会（大阪，２００２．１０．１４）講演論文集，３Ａ１６：小室孝，石井抱，  石川正俊，  吉田淳）
【００９０】
シフトレジスタ２１、第３の加算器２２及びシリアル除算器２３のビット幅を最小とした構成は、外部ＦＰＧＡなどで回路記述してもＦＰＧＡ内の回路規模を小さくすることができ、回路規模を大きくすることはない。また、シリアル除算器２３では回路規模を増大させることなく小数点以下まで計算することができる利点もある。
【００９１】
【発明の効果】
本発明により、画像検出処理装置において、重心演算の高速処理を行いつつ、別設の演算処理装置を無くすことができ、さらに演算回路の演算機能を対象の重心情報を計算するのに最適な小規模な回路構成とすることにより、画像検出処理装置と同一チップ内に配置することが可能となった。
【図面の簡単な説明】
【図１】本発明の実施の形態による画像検出処理装置を示す概略平面図。
【図２】図１の画像検出処理要素の構成を説明する図。
【図３】図１の直列型加算器の構成を説明する図。
【図４】画像検出処理装置の重心演算回路を表す図。
【図５】マルチプレクサを表す図とそのデコード表。
【図６】１次モーメントの求め方を示す図。
【図７】重心座標の有効桁について説明する図。
【図８】重心座標演算動作を示すタイミングチャート。
【図９】第２の累積加算器データの出力のタイミングチャート。
【図１０】シリアル除算器の動作を表す図。
【図１１】本発明の実施例によるシフトレジスタの回路。
【図１２】本発明の実施例による第３の加算器の回路。
【図１３Ａ】本発明の実施例によるシリアル除算器の回路の左側半分。
【図１３Ｂ】本発明の実施例によるシリアル除算器の回路の右側半分。
【図１４】シフトレジスタの動作を示す図。
【図１５】第３の加算器の動作を示す図。
【図１６】シリアル除算器の動作を示す図。
【符号の説明】
１  第１の加算器
２  第２の加算器
３  行デコーダ
４  列デコーダ
５  光電変換部
６  ２値化回路
７  論理積回路
８  マルチプレクサ
９  フリップフロップ回路
１０  論理積回路
１１  論理積回路
１２  ５入力論理回路
１３  マルチプレクサ
１４  フリップフロップ回路
１５  加算回路
１６  加算回路
１７  フリップフロップ回路
２１  シフトレジスタ
２２  第３の加算器
２３  シリアル除算器
２４  マルチプレクサ
【図１】
2004362460.tif 000025
【図２】
2004362460.tif 000026
【図３】
2004362460.tif 000027
【図４】
2004362460.tif 000028
【図５】
2004362460.tif 000029
【図６】
2004362460.tif 000030
【図７】
2004362460.tif 000031
【図８】
2004362460.tif 000032
【図９】
2004362460.tif 000033
【図１０】
2004362460.tif 000034
【図１１】
2004362460.tif 000035
【図１２】
2004362460.tif 000036
【図１３Ａ】
2004362460.tif 000037
【図１３Ｂ】
2004362460.tif 000038
【図１４】
2004362460.tif 000039
【図１５】
2004362460.tif 000040
【図１６】
2004362460.tif 000041