本発明の実施形態に係る高速画像処理カメラシステムを第1図〜第27図に基づき説明する。
なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
まず、本発明の第1の実施形態に係る高速画像処理カメラシステムを第1図〜第16図に基づき説明する。
第1図に、本発明の第1の実施の形態に係る高速画像処理カメラシステム1のブロック図を示す。
本実施形態のカメラシステム1は、N1個×N2個の2次元状に配置された受光素子120からなる受光素子アレイ11と、受光素子アレイ11の1行ごとに対応して受光素子から出力された電荷を電圧信号に変換し、更に、A/D変換するN2個のA/D変換器210からなるA/D変換器アレイ13と、複数個(この例の場合、3個)の処理回路400からなる演算素子アレイを備える画像演算機構14と、回路全体に命令信号等を送って制御する制御回路15と、制御回路15からの信号を各回路に送るインストラクション/コマンドバス16と、演算素子アレイ14から送られてきたデータ信号を、選択的に、蓄積し、あるいは、表示画像信号に変換するための信号変換器17と、信号変換器17による信号蓄積及び信号変換を制御するための信号変換制御部19と、変換した表示画像信号により画像表示を行うモニタ18とから構成されている。モニタ18は、例えば、テレビモニターであり、その画像を利用して目視検査を行うものである。あるいは、モニタ18に替えてコンピュータを接続し、信号変換器17で選択的に変換された信号を出力信号としてコンピュータに直接出力してもよい。この場合は、コンピュータにより、画像演算機構14の演算処理結果に対して、従来の画像処理技術による画像処理を施すことができる。
第2図は、本実施形態の高速画像処理カメラシステム1の構成例を示したものである。受光素子アレイ11、A/D変換器アレイ13、画像演算機構14、信号変換器17、信号変換制御部19,制御回路15などの半導体チップを1つの基板の上にボンディングした図である。チップを直接基板にボンディングするため高集積化が可能であり、また、それぞれの装置の特性に合わせた加工工程を採用できるため、安定した生産が可能となる。将来的にはプロセス技術の向上により1チップ上に全ての機能を集積することも可能である。
続いて、各回路の内部構成について説明する。
第3図は、画像入力部の詳細構成を示している。画像入力部は、光を検出する受光部100(第1図に示す受光素子アレイ11に相当)、受光部100からの出力信号を処理する信号処理部200(第1図に示すA/D変換器アレイ13に相当)、受光部100及び信号処理部200に動作タイミングの指示信号を通知するタイミング制御部300(第1図に示す制御回路15の一部に相当)を備えている。
最初に、第3図により、第1図の受光素子アレイ11に相当する受光部100の構成を説明する。
1個の受光素子120が、入力した光強度に応じて電荷を発生する1個の光電変換素子130と、光電変換素子130の信号出力端子に接続され、水平走査信号Vi(i=1〜N1)に応じて光電変換素子130に蓄積された電荷を出力する1個のスイッチ素子140とを、1組として構成されている。この受光素子120が第1の方向(以下、水平方向と呼ぶ)に沿ってN1個配置され、各受光素子120のスイッチ素子140が電気的に接続されて水平受光部110を構成している。そして、この水平受光部110を水平方向に直交する垂直方向に沿ってN2個配列することにより受光部100が構成されている。
次に、同じく第3図により、A/D変換器アレイ13に相当する信号処理部200の構成を説明する。
信号処理部200は、対応する水平受光部110j(j=1〜N2)から転送されてきた電荷を個別に取り出して処理し、この電荷強度に対応するデジタル信号を出力するA/D変換器210jを、N2個配置して構成されている。A/D変換器210jは、チャージアンプ221jを含む積分回路220jと、比較回路230jと、容量制御機構240jの3つの回路から構成される。
このうち、積分回路220jは、水平受光部110jからの出力信号を入力として、この入力信号の電荷を増幅するチャージアンプ221jと、チャージアンプ221jの入力端子に一方の端が接続され、出力端子に他方の端が接続された可変容量部222jと、チャージアンプ221jの入力端子に一方の端が接続され、出力端子に他方の端が接続され、リセット信号Rに応じてON、OFF状態となることで積分回路220jの積分、非積分動作を切り替えるスイッチ素子223jからなる。
ここで、第4図は、この積分回路220の詳細構成図である。本図は、4ビットつまり16階調の分解能を持つA/D変換機能を備える積分回路の例であり、以下、この回路構成により説明する。可変容量部222は、チャージアンプ221の水平受光部からの出力信号の入力端子に一方の端子が接続された容量素子C1〜C4と、容量素子C1〜C4の他方の端子とチャージアンプ221の出力端子の間に接続され、容量指示信号C11〜C14に応じて開閉するスイッチ素子SW11〜SW14と、容量素子C1〜C4とスイッチ素子SW11〜SW14の間に一方の端子が接続され、他方の端子がGNDレベルと接続されて、容量指示信号C21〜C24に応じて開閉するスイッチ素子SW21〜SW24により構成されている。なお、容量素子C1〜C4の電気容量C1〜C4は、
C1=2C2=4C3=8C4
C0=C1+C2+C3+C4
の関係を満たす。ここで、C0は積分回路220で必要とする最大電気容量であり、受光素子130(第3図参照)の飽和電荷量をQ0、基準電圧をVREFとすると、
C0=Q0/VREF
の関係を満たす。
再び、第3図に戻り、A/D変換器210jの積分回路220j以外の回路を説明する。比較回路230jは、積分回路220jから出力された積分信号VSの値を基準値VREFと比較して、比較結果信号VCを出力する。容量制御機構240jは、比較結果信号VCの値から積分回路220j内の可変容量部222jに通知する容量指示信号Cを出力すると共に、容量指示信号Cに相当するデジタル信号D1を、データ転送ライン250に出力する。こうして、各受光素子120(i,j)において得られた光電出力は、当該素子(i,j)における画像情報を示す生画像信号であるデジタル信号D(x、y)(ここで、(x、y)=(i,j))に変換される。
各A/D変換器210jの容量制御機構240jの出力端は、対応するデータ転送ライン250jに接続されている。したがって、信号処理部200(A/D変換アレイ13)全体の出力端には、N2個のデータ転送ライン250jが接続されている。第1図に示すように、このデータ転送ライン250jが画像演算機構14に接続されている。このデータ転送ライン250jは、また、生画像データバッファ460にも接続されている。生画像データバッファ460の出力端には、N2個のデータ転送ライン500jが接続されている。生画像データバッファ460は、データ転送ライン250jから順次入力した生画像データであるデジタル信号D1を、所定期間格納し、その後、対応するデータ転送ライン500jを介して、信号変換器17へ順次転送する。
なお、以上、A/D変換器アレイ13が4ビットつまり16階調の分解能を持つ場合について説明したが、A/D変換器アレイ13は、6ビット、8ビット等、他のビット構成の分解能を持つ構成であってもよい。
続いて、第3図に示すタイミング制御部300の構成を説明する。タイミング制御部300は、全回路のクロック制御を行う基本タイミングを発生する基本タイミング部310と、基本タイミング部310から通知された水平走査指示に従って、水平走査信号Viを発生する水平シフトレジスタ320と、リセット指示信号Rを発生する制御信号部340とから構成されている。
画像演算機構14は、複数の処理回路400をカスケードあるいはパラレル接続することにより、A/D変換器アレイ13から行j毎に最上位ビット(MSB)より順次転送出力されてくるデジタル信号に対して所定の画像処理を行うものである。
各処理回路400としては、画像処理演算をハードウェア的に行うもの、ソフトウェア的に行うものの両方を採用することができる。本実施形態では、ハードウェア的に演算処理を行う処理回路を採用している。
より詳しくは、本実施形態では、各処理回路400として、二値化回路401と、重心演算処理回路402と、エッジ抽出処理回路403とを設けている。各処理回路401、402、403は、それぞれ、演算処理内容に合わせた特有の回路構成を有している。ここで、各画像処理のハードウェアを簡易に開発実装できるFPGA(Field Programable
Gate Array)などを利用することにより、演算対象に応じた処理をハードウェア化する作業を効率的に行うことができる。さらに、HDL(ハードウェア記述言語)によりソフトウェアによって回路設計が可能となっているため、従来のノウハウの活用が容易に行うことができる。
第5図に示すように、画像演算機構14と生画像データバッファ460とは、N2個のスイッチ20を介して、信号変換器17に接続されている。このスイッチ20により、画像演算機構14内の処理回路400による処理結果と生画像データとが合成されて、信号変換器17に供給される。
以下、画像演算機構14内の二値化処理回路401、重心演算処理回路402,及び、エッジ抽出処理回路403の具体的構成を説明する。なお、本実施形態の場合、二値化処理回路401の後段に、重心演算処理回路402とエッジ抽出処理回路403とがパラレルに接続されている。
まず、二値化処理回路401について、第6図を参照して説明する。二値化回路401には、N2個のビット比較器405jが、受光素子アレイ11のN2個の行に1対1に対応して配置されている。各比較器405jの一つの入力端は、A/D変換器アレイ13からの対応するデータ転送ライン250jに接続されている。各比較器405jのもう一つの入力端は、インストラクション/コマンドバス16を介して、制御回路15と接続されており、比較対象のデータ信号が入力されるようになっている。各比較器405jの出力端は、データ転送ライン440jに接続されている。各比較器405jは、その比較結果を、対応するデータ転送ライン440jに出力する。このようにして、各データ転送ライン440jは、A/D変換アレイ13を介して、受光素子アレイ11中の対応する行jの各画素ラインに接続されている。
第6図に示すように、重心演算を行う重心演算処理回路402は、二値化回路401からのN2個のデータ転送ライン440jに接続されている。重心演算処理回路402は、画像処理において基本的な演算の一つである重心演算を行うためのものである。重心演算処理回路402は、重心検出回路409と重心画像データ生成回路425とからなる。
重心検出回路409の構成について、第7図を参照して、詳細に説明する。
重心検出回路409は、受光素子アレイ11のN2個の行、すなわち、N2個のA/D変換器210jに対応して、N2個の加算器410jを有している。すなわち、二値化回路401からのN2個のデータ転送ライン440jが、N2個の加算器410jに、それぞれ接続されている。各加算器410jは、対応する1個の乗算器411jの一つの入力端に接続されている。各乗算器411jのもう一つの入力端には、行位置データ供給回路412が接続されている。全N2個の乗算器411jの出力端は、共通の1個の加算器413が有するN2個の入力端に、それぞれ、接続されている。加算器413の出力端は、割算器414の被除数入力端に接続されている。
二値化回路401からのN2個のデータ転送ライン440jは、更に、1個の加算器415が有するN2個の入力端に、それぞれ、接続されている。この加算器415の出力端は、別の加算器418の一つの入力端と、乗算器416の入力端に接続されている。乗算器416のもう一つの入力端には、列位置データ供給回路417が接続されている。乗算器416の出力端は、加算器419の入力端に接続されている。この加算器419の出力端は、割算器420の被除数入力端に接続されている。そして、割算器414、420のそれぞれの除数入力端には加算器418の出力端が接続されている。割り算器414と420の割り算結果は、N1xN2個の入力信号D(x、y)が示す一つのフレーム画像の重心位置(Px、Py)のy座標とx座標を示す。割り算器414と420の出力端には、それぞれ、データ転送ライン510y、510xが接続されている。割り算器414と420は、それぞれ、対応するデータ転送ライン510y、510xを介して、重心位置データPy及びPxを出力する。
第6図に示すように、割り算器414と420からのデータ転送ライン510y、510xは、インストラクション/コマンドバス16を介して制御回路15に接続されており、重心位置データ(Px、Py)を制御回路15へ出力するようになっている。データ転送ライン510y、510xは、また、重心画像データ生成回路425にも接続されている。
重心画像データ生成回路425は、割り算器414と420の割り算結果、すなわち、入力画像データの重心位置(Px、Py)に基づき、当該重心位置の点を示す重心画像データP(x、y)を生成するためのものである。重心画像データ生成回路425の出力端には、N2個のデータ転送ライン520jが接続されている。重心画像データ生成回路425は、重心のy方向位置Pyに対応するデータ転送ライン520jに対して、重心のx方向位置Pxに対応するタイミングで2値データ(1)を出力することで、重心位置(Px、Py)の点を表示する重心画像データP(x、y)を生成する。
次に、エッジ抽出処理回路403について説明する。第6図に示すように、エッジ抽出処理回路403も、二値化回路401からのN2個のデータ転送ライン440jに接続されている。
本実施形態においては、エッジ抽出処理回路403は、3×3マスク演算を行う回路構成となっており、近傍画素の画素データを用いてエッジ抽出演算を行うことができるようになっている。エッジ抽出回路403は、第6図に示すように、受光素子アレイ11のN2個の行、すなわち、N2個のA/D変換器210jに対応して、N2個の積和演算器430jを備えている。そして、二値化回路401からのN2個のデータ転送ライン440jが、このN2個の積和演算器430jに、それぞれ接続されている。各積和演算器430jは、対応する行jのデータ転送ライン440jと共に、当該対応する行jの上下の行j、j+1のデータ転送ライン440j−1、440j+1にも接続されている。
第8図に示すように、各積和演算器430j内には、9個の乗算器431(0)〜431(8)と1個の加算器432とが配置され、各乗算器431の出力が加算器432の対応する入力端に接続されている。乗算器431(0)〜431(8)のうち、乗算器431(0)〜431(2)が、データ転送ライン440j−1に接続され、乗算器431(3)〜431(5)がデータ転送ライン440jに接続され、乗算器431(6)〜431(8)が、データ転送ライン440j+1に接続されている。各行j−1,j、j+1では、各乗算器431が、対応するデータ転送ライン440からの画像データを、順次、後段の乗算器431へ転送できるようになっている。このデータの転送に伴って、所定の受光素子120とそれを囲む8つの受光素子の画像データがそれぞれの入力端に入力される構成になっている。なお、第1行(j=1)に対応する積和演算器4301については、j−1行がないため、乗算器431(0)〜431(2)にはデータ転送ライン440は接続されない。したがって、乗算器431(0)〜431(2)には、常に、画像データ(0)が入力されることになる。同様に、第N2行(j=N2)に対応する積和演算器430N2については、j+1行がないため、乗算器431(6)〜431(8)にはデータ転送ライン440は接続されない。したがって、乗算器431(6)〜431(8)には、常に、画像データ(0)が入力されることになる。
各乗算器431(0)〜431(8)の他の入力端は、マスクデータ供給回路450に接続されており、演算内容を規定するマスク情報(この場合、エッジ抽出を行うためのマスク情報)が送られるようになっている。
かかる構成を有する各積和演算器430jの加算器432の出力端には、データ転送ライン530jが接続されており、加算機432の加算結果である処理画像データD‘(x、y)(ここで、y=j)が出力される。このため、エッジ抽出処理回路403全体の出力端には、N2個のデータ転送ライン530jが接続されている。第6図に示すように、このN2個のデータ転送ライン530jは、処理画像データバッファ433に接続されている。処理画像データバッファ433の出力端には、N2個のデータ転送ライン540jが接続されている。処理画像データバッファ433は、データ転送ライン530jから順次受け取る処理画像データD’(x、y)を、所定期間格納し、その後、対応するデータ転送ライン540jにて、信号変換器17へ順次転送する。
第9図に示すように、生画像データバッファ460からのN2個のデータ転送ライン500j、重心画像データ生成回路425からのN2個のデータ転送ライン520j、及び、処理画像データバッファ433からのN2個のデータ転送ライン540jは、それぞれ、対応するN2個のスイッチ20jを介して、信号変換器17に接続されている。
信号変換器17内には、一行分(N1画素分)の合成画像データを所定の画面数(例えば、n画面数、ここで、nは正の整数)分蓄積するデータバッファ171jがN2個配列されている。各データバッファ171jは、対応するスイッチ20jを介して、生画像データバッファ460からの対応するデータ転送ライン500j、重心画像データ生成回路425からの対応するデータ転送ライン520j、及び、処理画像データバッファ433からの対応するデータ転送ライン540jに、接続されている。各スイッチ20jが、所定のタイミングで切り替えられることにより、各行j毎に、生画像データD(x、y)と重心画像データP(x、y)と処理画像データD‘(x、y)とが合成された合成画像データが、対応する各データバッファ171jに入力される。
また、これらのデータバッファ171jには、D/A変換器172と同期信号混合器173とが接続されている。D/A変換器172は、合成画像データであるデジタル画像信号をアナログ信号に変換するためのものである。また、同期信号混合器173は、D/A変換器172からのアナログ信号に、モニタ18(又は後段の汎用画像処理装置=コンピュータ)のフレームレートに合った適切な同期信号を付加することにより、必要なフレームレートの画像信号を生成するためのものである。
制御回路15は、図示しないCPU及びメモリ等からなり、本実施形態のカメラシステム1全体を、インストラクション/コマンドバス及び信号変換制御部19を介して制御するためのものである。制御回路15は、メモリに格納した後述の制御プログラム(第12図)を実行することで、カメラシステム1全体を制御する。信号変換制御部19は、図示しないCPU及びメモリ等からなり、制御回路15からの指示に基づいて、信号変換器17を制御し、生画像データと処理画像データの蓄積や、これらデータの信号変換を行わせるためのものである。制御回路15と信号変換制御部19とは、同一のCPUにより構成してもよい。
次に、本実施形態のカメラシステム1の動作を、第10図を参照して説明する。
本実施形態のカメラシステム1は、画像演算として、二値化処理、重心演算処理、エッジ抽出処理を行い、処理結果を元の画像と重ね合わせた表示を行う。
まず、リセット信号Rを有為に設定し、第4図に示す可変容量部222のSW11〜SW14を全て「ON」、SW21〜SW24を全て「OFF」状態にする。これにより、チャージアンプ221の入力端子と出力端子間の容量値をC0に設定する。それと同時に、第3図に示す全てのスイッチ素子140を「OFF」状態とし、水平走査信号Viをいずれの受光素子120も選択しない状態に設定する。この状態から、リセット指示信号Rを非有為に設定し、各積分回路220での積分動作を開始させる。
積分動作を開始させると、第3図に示すN2個の各水平受光部110jにある第1番目の受光素子1201,jのスイッチ素子140のみを「ON」とする水平走査信号V1が出力される。スイッチ素子が「ON」になると、それまでの受光によって光電変換素子130に蓄積された電荷Q1は、電流信号として受光部100から出力される。つまり、第9図に示される対象物900を撮像した生画像901に該当する信号を読み出すことができる。電荷Q1は容量値C0に設定された可変容量部222に流入する。
次に、第4図により積分回路220内部の動作を説明する。容量制御機構240(第3図参照)は、SW12〜SW14を開放した後、SW22〜24を閉じる。この結果、積分信号VSは、
VS=Q/C1
で示す電圧値として出力される。積分信号VSは、比較回路230に入力して、基準電圧値VREFと比較される。ここで、VSとVREFの差が、分解能の範囲以下、すなわち±(C4/2)以下の時は、一致したものとみなし、更なる容量制御は行わず、積分動作を終了する。分解能の範囲で一致しないときは、更に容量制御を行い、積分動作を続ける。
例えば、VS>VREFであれば、容量制御機構240は、更に、SW22を開放した後に、SW12を閉じる。この結果、積分信号VSは、
VS=Q/(C1+C2)
で示す電圧値となる。この積分信号VSは、後続の比較回路230(同)に入力して、基準電圧値VREFと比較される。
また、VS<VREFであれば、容量制御機構240は、更に、SW11及びSW22を開放した後に、SW12及びSW21を閉じる。この結果、積分信号VSは、
VS=Q/C2
で示す電圧値となる。この積分信号VSは、後続の比較回路230に送出され、基準電圧値VREFと比較される。
以後、同様にして、積分回路220→比較回路230→容量制御機構240→積分回路220のフィードバックループによって、積分信号VSが基準電圧値VREFと分解能の範囲で一致するまで、比較及び容量設定(SW11〜SW14及びSW21〜SW24のON/OFF制御)を順次繰り返す。積分動作が終了した時点のSW11〜SW14のON/OFF状態を示す容量指示信号C11〜C14の値は、電荷Q1の値に対応したデジタル信号であり、最上位ビット(MSB)の値がC11、最下位ビット(LSB)の値がC14である。こうしてA/D変換が行われ、これらの値をデジタル信号D1として、データ転送ライン250を介して、演算素子アレイ14に出力する。
以上述べたように、この装置では、デジタル信号D1の各ビット値は、MSB側からLSB側へ1ビットずつ順に定まる。
このように、容量C1〜C4が一つずつONされながら、比較電圧VREFとの比較が行われ、その比較結果が出力デジタル信号D1として出力される。すなわち、まず、容量C1がオンとされ、積分信号VS=Q/C1となり、このVSがVREFと比較される。VSが大きければ“1”(=C11)、小さければ“0” (=C11)となり、これがMSB(最上位ビット)として出力される。次に、C2がオンとされ、VS=Q/(C1+C2)(MSB=1の時)、または、VS=Q/C2(MSB=0の時)が得られ、VREFと比較される。VSが大きければ“1” (=C12)、小さければ“0”(=C12)となり、これが2ビット目として出力される。以上の処理が必要なビット数まで繰り返されることで、A/D変換が実行される。
第1番目の受光素子1201,jの光電出力に相当するデジタル信号の送出が終了すると、リセット信号Rが有為とされ、再び、非有為にして、可変容量部222jの容量値を初期化した後に、各水平受光部110jの第2番目の受光素子1202,jのスイッチ素子140のみを「ON」とする水平走査信号V2を出力し、上述と同様の動作により、第2番目の受光素子1202,jの光電出力を読み出し、これに相当するデジタル信号を送出する。以下、水平走査信号を切り替えて、全受光素子120の光電出力を読み出し、相当するデジタル信号を演算素子アレイ14に出力する。
この結果、第11(a)図に示すように、各データ転送ライン250jには、対応するj行目における全受光素子1201,j〜120N1,jからの出力が、この順番で、送出される。しかも、各受光素子120i,jの出力は、その最上位ビット(MSB)から最下位ビット(LSB)まで、その順番で、送出される。こうして送出された各受光素子120i,jからの4ビット生画像データD(x、y)=901(第10図)は、二値化処理回路401に送出されるのみならず、生画像データバッファ460に格納され、所定期間保持される。
かかる本実施形態のA/D変換器アレイ13の構成によれば、1画素あたりのA/D変換速度は、1ビットあたり約1マイクロ秒となる。したがって、例えば、入力アナログ信号を8ビット(128階調)でデジタル変換する場合には、1行分の128個の受光素子120の出力信号をデジタル変換するのに必要な時間は、8マイクロ秒x128=1.024ミリ秒となる。すなわち、各フレーム画像を、約1ミリ秒にて取得することができる。したがって、約1000フレーム/秒の高速フレームレートにて、連続する画像フレームを取得することができる。
次に、画像演算機構14の動作を第1図および第6図〜第10図により説明する。
まず、第6図に示される二値化処理回路401が二値化演算を行う。
具体的には、各比較回路405jには、対応するA/D変換器210jより画像データ901(第10図)が入力される。ここで、画像データ901は、前述したように、MSBより入力されてくるデジタル信号であるため、制御回路15からも、比較される信号列がMSBより順次入力されてくる。コンパレータ405が、これら入力データについて、順次比較を行い、画像信号が比較信号と一致又は大きいときにのみ1を出力し、小さいときは0を出力する。したがって、各比較回路405jからは、対応するデータ転送ライン440jを介して、1ビットの2値画像データが出力される。この結果、第10図に示されるような生画像901に対する2値画像902が得られる。この2値画像データは、データ転送ライン440jを介して、重心演算処理回路402及びエッジ抽出処理回路403に送出される。
続いて、この2値化画像データをもとにして重心情報とエッジ抽出画像が求められる。
重心情報は、第7図の構成を有する重心演算回路402によって、以下のように計算される。
ここで、入力されてくる2値画像データをD(x,y)とすると、x方向、y方向の重心座標(Px,Py)は以下の式により求められる。
本演算回路402では、(a)(b)式に共通する分母とそれぞれの分子を、重心検出回路409により、並列的に演算する。
すなわち、各加算器410jには、対応する行j内の全画素の2値化画像データが、対応するデータ転送ライン440jを介して、入力されてくる。したがって、各加算器410jは、対応する行j内の全N1個の画素の2値画像データを加算する。対応する乗算器411jは、この加算結果を、行位置データ供給回路412から送られくる対応する行位置情報yと掛け合わせ、その結果を、加算器413にて、全N2行分加算することにより、(b)式の分子の値を得る。
一方、加算器415には、全データ転送ライン440jが接続されている。このため、加算器415は、各列iの2値画像データを全N2行分一斉に加算する。各列iについての加算結果は、さらに、全N1列分、加算器418で、加算されることで、(a)(b)式のそれぞれの分母の値が得られる。
加算器415にて各列i毎に加算された2値画像データの値は、乗算器416にも送られる。乗算器416は、この各列iの加算結果を、列位置データ供給回路412から送られてくる対応する列位置情報xと掛け合わせ、その結果を加算器419に出力する。加算器419は、乗算器416による演算結果を、全N1列分加算することで、(a)式の分子の値を得る。
割算器414は、こうして得られた行位置情報yで重み付けした画像データの総和値を、加算器418から出力された画像データの総和値で割ることにより、Pyに相当する出力を得る。また、割算器420は、列位置情報xで重み付けした画像データの総和値を、加算器418から出力された画像データの総和値で割ることにより、Pxに相当する出力を得る。
この重心結果データ(Px、Py)は、データ転送ライン510x、510y、及び、インストラクション/コマンドバス16を介して、制御回路15に送出される。
重心画像データ生成回路425は、データ転送ライン510x、510yを介して、重心結果データ(Px、Py)を受け取ると、重心位置(Px、Py)の点のみが1で残りの全ての画素(x、y)(1≦x≦N1、x≠Px、1≦y≦N2、y≠Py)で0である重心画像データP(x、y)を生成して、データ転送ライン520jを介して、出力する。すなわち、Py以外に対応する全データ転送ライン520j(ここで、j≠Py)にデータ0を出力し続け、Pyに対応するデータ転送ライン520j(ここで、j=Py)には、Pxに対応するタイミングでのみデータ1を出力し、残りの全てのタイミングでデータ0を出力することで、重心画像データP(x、y)を出力する。
こうして得られた重心画像データP(x、y)は、第10図に示される画像904のように、画像内に表示した円中の×印の交点として示した重心位置のみに点が示された画像となる。
次にエッジ抽出処理について説明する。エッジ抽出は、第8図の構成を有する3×3積和演算器430jをN2個備えるエッジ抽出処理回路403によって行われる。
各3×3積和演算器430
jは、次式で示される画像処理演算を行う。
ここで、D(i,j)(=D(x、y))は入力2値画像データである。より詳しくは、D(i−1、j)、D(i、j)、D(i+1,j)は、データ転送ライン440jから送出されてくる互いに隣り合う3つの画素の2値データである。同様に、D(i−1、j―1)、D(i、j―1)、D(i+1,j―1)は、データ転送ライン440j―1から送出されてくる互いに隣り合う3つの画素の2値データである。さらに、D(i−1、j+1)、D(i、j+1)、D(i+1,j+1)は、データ転送ライン440j+1から送出されてくる互いに隣り合う3つの画素の2値データである。
D’(x,y)が、処理結果である出力画像データであり、maskは、マスクデータ供給回路405から供給されるマスクデータである。
エッジ抽出処理においては、maskの値を以下のように設定してラプラシアン演算を行う。
2値画像データD(x,y)は、データ転送ライン440を介して転送されてくる。この結果、各乗算器431には、近傍3×3画素の画像データD(i±1,j±1)がそれぞれ入力される。一方、マスクデータ供給回路450からは、式(d)に示されるマスクデータが各乗算器431へ入力される。すなわち、乗算器431(0)〜431(3)と431(5)〜431(8)には、1、乗算器431(4)には、−8が入力される。こうして入力されたマスクデータと画像データの乗算結果は、加算器432に送られて加算され、得られた演算結果データD‘(x、y)、つまり、エッジ抽出結果が出力される。これが、第10図に示されるエッジ抽出画像903である。
こうして、各3x3積和演算器430にて得られたエッジ抽出結果D‘(i、j)は、対応するデータ転送ライン530jに出力され、処理画像データバッファ433にて所定時間格納された後、対応するデータ転送ライン540jに出力される。
以上の計算処理は、行毎の並列演算を採用して、計算時間を短縮して高速化して行われているため、A/D変換レートで定まる高速フレームレートで取得した画像を、リアルタイムで処理することができる。
次に、処理画像と画像データの重ね合わせについて第9図〜第11(c)図を参照して説明する。
既に述べたように、生画像の画像データ901は、第11(a)図に示されるように、各行jにおいて、1行分の信号が、ビットシリアル信号としてMSBより順次出力される。各画素のデータは、例えば、4ビットで構成され、各々の画素データの間には、アンプやA/Dのリセットのための無信号時間が存在する。そこで、第9図に示すように、各行jに対応するスイッチ20jを制御し、対応するデータバッファ171jへの信号の入力先を、画像演算機構14からのライン520j及び540jと、画像演算機構14を回避するA/D変換器アレイ13からのライン500jとの間で切り替えることで、第11(b)図に示されるように、画像処理結果(この場合、重心画像データとエッジ抽出画像データ)を生画像の画素データ間のこの無信号時間部分に埋め込んで、生画像データ4ビット+処理結果画像データ2ビット(重心画像データ1ビット+エッジ抽出画像データ1ビット)=6ビットのデータを生成する。
こうして、各行jに対応するスイッチ20jは、A/D変換器アレイ13(生画像データバッファ450)からのライン500jと、重心画像データ生成回路425からのライン520jと、エッジ抽出回路403(処理画像データバッファ433)からのライン540jとの間で、順番に切り替わることで、生画像データと重心画像データとエッジ抽出画像データとを合成する。
このように、各行jにおいて、各画素iに対し、生画像データ4ビットの後または前に、処理結果として得られた重心画像データ1ビット(0もしくは1)とエッジ抽出画像データ1ビット(0もしくは1)を追加するのである。但し、重心演算処理回路402による重心画像処理にはある程度の時間がかかることを考慮し、生画像データをいったん生画像データバッファ450に保持し、エッジ抽出処理画像データもいったん処理画像データバッファ433に保持するようにしている。重心画像データ生成回路425によって重心画像データが生成されるタイミングに合わせて、これら生画像データとエッジ抽出処理画像データを、対応するデータバッファ450、433から出力するようにしている。
例えば、第11(b)図に示すように、生画像の4ビットデータの後に、重心情報、エッジ抽出画像信号をそれぞれ1ビットずつ、この順序で挿入する。この結果、第10図に示されるような生画像のエッジを強調して重心位置が表示される重ね合わせ画像905が生成される。
なお、データバッファ450、433は設けなくてもいい。その場合には、重心画像データについては、生画像データ及びエッジ抽出処理画像データに対して1フレーム後にずれたタイミングにおいて、対応する画素の位置に挿入すれば良い。
また、後段の表示装置や演算装置の制約から出力画像データを4ビット長に維持する必要がある場合は、生画像の最下位あるいは最上位ビットの代わりに、処理結果を最下位あるいは最上位ビットに入れればよい。例えば、第11(c)図に示すように、生画像の下位2ビットの代わりに、重心情報、エッジ抽出画像信号をそれぞれ1ビットずつ、この順序で挿入してもいい。この場合にも、第10図に示されるような生画像のエッジを強調して重心位置が表示される重ね合わせ画像905が生成される。
こうして各行jに対して得られた合成画像データ905は、対応するデータバッファ171jに格納される。なお、各データバッファ171jは、格納する合成画像データ905のビット数に合わせた容量を有している。例えば、合成画像データ905が、第11(b)図のように、各画素6ビットで形成される場合には、各データバッファ171jは、6ビットx(各行jの画素数N1)x(フレーム数n)の容量を有するように構成される。また、合成画像データ905が、第11(c)図のように、各画素4ビットで形成される場合には、各データバッファ171jは、4ビットx(各行jの画素数N1)x(フレーム数n)の容量を有するように構成される。したがって、全N2個のデータバッファ171jにより、nフレーム分の合成画像データ905を保持することができる。
本実施の形態のカメラシステム1によれば、連続する複数のフレーム画像901を、A/D変換器アレイ13のA/D変換レートで定まる高速フレームレートで繰り返し取得していく。そして、各フレームの合成画像データ905を繰り返し生成し保持していく。そして、所望の時点で得られた合成画像を所望のフレームレートに変換して、モニター18に表示する。
ここで、所望の時点とは、例えば、重心検出回路409にて求められた重心位置(Px、Py)が、所望の設定位置に一致した場合である。制御回路15は、1フレームの画像が得られる度に、重心検出回路409から重心位置データ(Px、Py)を受け取り、それが設定値(X、Y)に一致しているかを判断する。一致していない場合には、信号変換制御部19を介して、今回のフレームについての合成画像データをデータバッファ171に格納させる。一方、あるフレームおいて、重心位置データ(Px、Py)が設定値(X、Y)に一致したと判断されると、制御回路15は、信号変換制御部19に対し、モニタ表示処理の指示を出力する。表示処理が指示された信号変換制御部19は、信号変換器17を制御し、データバッファ171に既に格納されているn個分のフレームの合成画像データを、古いものから順番に読みだして、モニター表示に適した画像信号に変換して、モニター18に表示させる。さらに、現在のフレームについても同一の処理を行い、表示させる。さらに、今後順次得られるn個分のフレームについても、その合成画像データについて同一の処理を行い、表示させる。こうして、信号変換器17は、信号変換制御部19からの指示により、重ね合わせ画像信号を、モニタ18で表示するのに適した画像信号に変換して、モニタ18に表示させる。
本実施形態のカメラシステム1では、以上の処理を、制御回路15による制御の下、第12図に示すフローチャートに従って行う。
すなわち、まず、S10において、制御回路15は、受光素子アレイ11及びA/D変換器アレイ13を制御して、1フレームの生画像データD(x、y)(1≦x≦N1、1≦y≦N2)を取得する。その結果、生画像データD(x、y)が、データ転送ライン250jを介して、画像演算機構14に転送されると共に、生画像データバッファ460に格納される。
次に、S20において、制御回路15は、画像演算機構14を制御して、演算処理を行わせる。すなわち、まず、二値化回路401を制御して、データ転送ライン250jからの生画像データを2値化して、2値画像データを生成する。さらに、重心演算回路402を制御して、2値画像データに基づき、現在のフレームにおける重心位置(Px、Py)を演算させる。演算結果は、制御回路15に送信されると共に、重心画像データ生成回路425に送出され、重心画像データが作成される。また、エッジ抽出処理回路403を制御して、2値画像データに基づき、エッジ抽出画像データを生成する。エッジ抽出画像データは、処理画像データバッファ433に格納される。
次に、S30にて、制御回路15は、現在のフレームについて受け取った重心位置データ(Px、Py)を、設定データ(X、Y)と比較する。重心位置データ(Px、Py)と設定データ(X、Y)とが一致していない場合(S40にてNo)には、制御回路15は、信号変換制御部19を介して、信号変換器17に対し、現在のフレームについて、合成画像データを生成させデータバッファ171に蓄積させる。すなわち、制御回路15は、スイッチ20jを制御することにより、生画像データバッファ460の生画像データと、重心画像データ生成回路425からの重心画像データと、処理画像データバッファ433のエッジ抽出画像データとを合成し、データバッファ171に格納させる。そして、次のフレームの取得/処理(S10)に進む。なお、ここで、nフレーム分の合成画像データがデータバッファ171に既に蓄積されていた場合には、最も古いフレームについての合成画像データを捨てて、最も新しい今回のフレームの合成画像データを蓄積させる。
一方、現在のフレームについて受け取った重心位置データ(Px、Py)が設定データ(X、Y)と一致した場合(S40にてYes)には、制御回路15は、S60にて、信号変換制御部19に対し、モニタ表示処理を開始するよう指示する。なお、制御回路15は、かかる指示をした後、S10に戻り、次のフレームの取得/処理を開始する。
モニタ表示処理の指示を受けた信号変換制御部19は、S70にて、データバッファ171に既に格納されている合成画像データと、今回のフレームの合成画像データと、今後n個分のフレームの合成画像データとを順次表示するよう、信号変換器17への制御を開始する。具体的には、信号変換制御部19は、まず、データバッファ171から、現在蓄積されている全フレーム(n個分のフレーム)を、最も古いフレームから順に読みだし、D/A変換器172でアナログ信号に変換し、さらに、同期信号混合器173にて同期信号と混合してモニター18に表示する。さらに、今回のフレームについての合成画像データについても同一の処理により表示をし、さらに、今後得られるn個分のフレームに対しても同一の処理を行い表示をする。
なお、以上の制御は、ある表示すべき瞬間の前後の画像を表示する場合についてのものだが、ある表示すべき瞬間のフレームとそれ以後のフレームについての画像のみを表示すればいい場合には、S50では、画像の蓄積を行わなくていい。S40にてYesとなった場合のみ、そのフレームとそれ以降の数フレーム分について、画像の蓄積と表示とを行うようにすれば良い。
以上のように、本実施の形態によれば、A/D変換器アレイ13は、受光素子アレイ11の各行の受光素子120に対応して1個のA/D変換器210を備えている。画像演算機構14は、複数の処理回路400を備えており、高速での画像演算を行う。信号変換器17は、A/D変換器アレイ13の出力信号と画像演算機構14の出力信号とを合成する。信号変換器17は、さらに、制御回路15及び信号変換制御部19の制御の下、重要なタイミングにおいて、合成信号を、モニタ18の表示に適したフレームレートにダウンコンバートして、モニタ18に表示させる。したがって、高速フレームレートで取得し処理した画像の内、本当に必要なフレームのみを抜き出して、信号変換して表示することができる。
従来技術4の装置では、画像表示を行うための画像センサのフレームレートが30ミリ秒と制限されており、しかも、第13(b)図に示されるように、画像表示のタイミングに合わせて画像転送、処理演算を行う必要があるため、高速での画像処理演算は不可能であった。これに対して、本実施形態の装置では、画像転送、画像演算をフレームレート1000ミリ秒という高速で行い、任意のタイミングの映像をデータバッファ171に蓄積しておいてD/A変換器172、同期信号混合器173によりモニタ18側のフレームレートに合わせた映像信号を生成して出力することで、第13(a)図にタイミングチャートを示すように、所定のタイミングの映像を抽出して時間的に引き延ばして表示することが可能となっている。
本実施形態のカメラシステム1によれば、例えば、第14(a)〜(c)図に示すように、既にチップ51、52が実装されている基板50上にさらにチップ53を装置54を用いて実装する瞬間の画像を抽出することができる。第14(b)図が所望のチップ53が実装される瞬間の画像であり、第14(a)図、第14(c)図は、それぞれ、その前後のタイミングで取得された画像である。
このチップ53が実装される瞬間の画像を抽出するため、本実施形態のカメラシステム1は、入力画像の中から、特徴抽出演算によって対象画像であるチップ53を抽出し、その対象が基板の所定の位置に実装されるタイミングで画像を出力することができる。
具体的には、まず、入力画像D(x,y)が画像演算機構14に転送され、重心およびエッジ抽出が行われ、処理画像が生成される。重心演算結果に基づき、チップ53の位置を高速(フレームレートの速度)に把握する。そして、チップ53の位置が基板50の所定位置に達した所定のタイミングにおいて、信号変換制御部19から信号変換器17に対して画像信号の変換を指示することにより、このタイミングの画像(第14(b)図に示されるタイミングの画像)前後の映像をモニタ18に表示させる。
さらに、本機能を用いることで、「ドリルが加工対象に接触する瞬間」や「バットがボールにぶつかる瞬間」とその前後等、最も重要な情報を含む画像列を抽出してモニター画像出力することが可能となる。従来の画像処理演算のほとんどが同様な手法でハードウェア化可能であるため、高速対象物の画像処理を実現できる。
さらに、3x3のマスク演算を行うエッジ抽出回路403によれば、式(c)で用いるマスクデータを変更することで、エッジ抽出以外にも様々な演算を行うことが可能である。例えば、スムージングであれば、maskとして{1,1,1,1,8,1,1,1,1}を、縦線検出であれば、maskとして{−1,0,1,−1,0,1,−1,0,1}を、横線検出であれば、maskとして{−1,−1,−1,0,0,0,1,1,1}をそれぞれ用いればよい。
以上の説明では、生画像と処理画像を重ね合わせて表示する実施形態について説明してきたが、表示画面を2つに分けて、一方に生画像を他方に処理画像を同時に表示してもよい。例えば、生画像と処理画像とを左右に並べて同時表示する場合は、第9図に示されるデータバッファ171への信号転送の際に、表示画像のうち生画像が表示される画素に対応するバッファ領域にはA/D変換器アレイ13からの信号を転送し、処理画像が表示される画素に対応するバッファ領域には画像演算機構14からの信号が転送されるようにスイッチ20を切り替えればよい。
また、スイッチ20を任意のタイミングで切り替えることで、生画像のみを出力させたり、処理画像のみ(重心画像のみ、または、エッジ抽出画像のみ)を出力させたり、処理画像の合成画像(重心画像とエッジ抽出画像の合成画像)のみを出力させたりすることができる。したがって、ユーザの望む形態の画像を出力させることができる。
2値化回路401は、生画像データをそのまま通すようにし、2値化演算結果を、この生画像データの最下位ビットの後に挿入するようにしても良い。同様に、エッジ抽出回路403も、生画像データをそのまま通す構成としても良い。この場合には、A/D変換器アレイ13から画像演算機構14を回避してスイッチ20に到るデータ転送ライン500jが不要となる。
より詳しくは、第15図に示すように、二値化処理回路401の各ビット比較器405jは、受け取った生画像データを2値化すると、そのデータ転送ライン440jに対し、生画像データに2値画像データを追加して出力するようにする。さらに、第8図において点線で示すように、エッジ抽出回路403を構成する各積和演算回路430jの乗算器431(5)の出力端に、対応する行jからの生画像データD(x、y)をそのまま後段へ出力するためのデータ転送ライン550jを接続する。この場合には、第15図のように、全N2個の積和演算回路430の出力端には、全N2個のデータ転送ライン530jと全N2個のデータ転送ライン550jとの両方が接続される。この場合には、生画像データバッファ(ここでは、生画像データバッファ435とする)を、この全N2個のデータ転送ライン550jに接続する。生画像データバッファ435の出力端に、N2個のデータ転送ライン560jを接続させる。かかる構成によれば、A/D変換器アレイ13からのデータ転送ライン250jに、画像演算機構14を迂回して伸びる部分を設ける必要がなくなる。すなわち、第16図に示すように、各行jに対応するスイッチ20jは、生画像データバッファ435からの対応するデータ転送ライン560jと、処理画像データバッファ433からの対応するデータ転送ライン540jと、重心画像データ生成回路425からの対応するデータ転送ライン520jとを、切り替えながら、対応するデータバッファ171jに接続することにより、合成画像データを生成することができる。
また、以上の説明では、重心位置を二値化画像から求めたが、生画像から同様の計算式によって求めることで、演算量は大きくなるもののより高い精度で重心位置を求めることも可能である。同様に、エッジ抽出処理も、生画像データに基づき行うのでもよい。
モニター18の代わりに、コンピュータ等の演算処理装置を信号変換器17に接続してもいい。この場合には、抽出されたフレームの合成画像データのみが、所望のフレームレートで演算処理装置に出力されることになる。したがって、演算処理装置は、必要な演算処理を必要な画像に対して容易に施すことができる。
本実施形態が目指しているのは、高速画像処理された結果から、所望のタイミングの画像を抽出して処理結果を実画像と合わせて出力したりモニターしたりする機能を有する画像センサ装置である。処理速度の目安としては、FAロボットの制御においては、対象物の移動速度とロボットのアクチュエータの速度(1〜10ミリ秒)から必要な処理速度が決まる。本実施形態では、この処理速度は、A/D変換器210におけるA/D変換処理速度によって決まるが、A/D変換器からの出力のビット数は可変であるため、より高速演算が必要な場合には、ビット数を減らすことによって高速化が可能である。例えば、8ビット変換に10μ秒かかっているような場合、4ビットにデータ長を削減することで、ほぼ2倍の変換速度が実現できることになる。
上記の実施形態では、信号変換器17に複数の画面分のデータバッファ171を有する例について説明してきたが、特定のタイミングの静止映像のみを取得すれば充分である場合には、データバッファ171を省略することでより簡易な装置構成とすることも可能である。
また、上記のシステムにおいて、さらに高速なフレームレートで処理を行いたい場合には、A/D変換器210における階調を少なくすることで、単位時間あたりにデータを転送する画素数を増やして高速化を実現できる。例えば、1画素あたりのデータ量を8ビット(256値)から1ビット(2値)まで可変とすることで、高速化が実現できる(8ビットを1ビットにすることで8倍の高速化が可能となる)。具体的には、第3図に示されるA/Dコンバータにおいて、最上位ビットから順に比較演算を行い、希望のビット数まで変換を終了した時点で、リセットを行い、次の画素の変換に処理を移すことで、そのままのハードウェアによって、任意の階調でのA/D変換を行うことが可能となる。本システムでは、少ない接続配線で並列処理を行わせるため、ビットシリアル転送(1本の配線を用いてA/D変換器から出力される上位ビットから順に転送する)を利用しているので、ビット数の変更に対しても、有効なビット数分の演算を行うだけで容易に対応できる。
また、高速なフレームレートで処理を行いたい場合のもう1つの方法としては、解像度を少なくして情報量を少なくした状態で演算を行う方法もある。これは、第1図、第3図に示される受光素子アレイ11において隣接する複数の受光素子120の出力信号を同時に読み出すことにより、例えば128×128画素の画像を、64×128画素(横方向に2点ずつ同時)、32×128画素(横方向に4点ずつ同時)として読み出すことで、画像のデータ量をそれぞれ50%、25%に減少させて、演算速度を2倍、4倍に向上させることが可能である。このように、複数のピクセルの電流和を取って、高速処理を実現する手段をビニングという。
対象に合わせて、上記の2つの機能を組み合わせて用いれば、通常の監視状態では、アナログ階調の少ない画像や解像度の荒い画像を取得して高速なフレームレートで対象を追従していき、希望するタイミングに近づいたところで、多階調又は高解像度な画像を取得するのに切り替えて、細かい検査を行う、といった適応的な画像処理を行うことが可能となる。
次に、本発明の第2の実施形態に係る高速画像処理カメラシステムを第17図〜第20図に基づき説明する。
第17図は、本発明の第2の実施形態に係る高速画像処理カメラシステム1の構成図である。なお、第1の実施形態の高速画像処理カメラシステムと同一又は同等な構成部分には同一符号を付し、その説明は省略する。
本実施形態では、第1の実施形態とは異なり、2値化回路401の代わりに、雑音除去を行う画像前処理回路1401が設けられている。また、重心演算処理回路402とエッジ抽出処理回路403とからなる画像後処理回路1403が設けられている。さらに、画像後処理回路1403と画像前処理回路1401との間に、画像比較処理回路1402が備えられている。
本実施形態の画像演算機構14では、これら画像処理回路1401〜1403からなる演算素子アレイに、データ制御装置1404とデータバッファ1405とが接続されている。ここで、データバッファ1405は、画像比較処理回路1402に接続されており、画像比較処理回路1402に供給するための背景画像データを格納している。また、データ制御装置1404は、データバッファ1405から画像比較処理回路1402への背景画像データの転送を制御するためのものである。
このように、本実施形態では、画像演算機構14は、画像前処理回路1401、画像比較処理回路1402、画像後処理回路1403、データ制御装置1404、及び、データバッファ1405から構成されている。
なお、本実施形態の場合、制御回路15は、インストラクション/コマンドバス16を介して、これらデータバッファ1405やデータ制御装置1404、画像前処理回路1401,画像比較処理回路1402、画像後処理回路1403に接続されており、これらを制御するようになっている。
また、本実施形態では、第1の実施形態とは異なり、A/D変換器アレイ13からのN2本のデータ転送ライン250jには、画像演算機構14を回避する分岐部分は形成されておらず、生画像データバッファ460も設けられていない。
したがって、本実施形態では、前処理として雑音除去、比較処理として背景除去、後処理としてエッジ抽出と重心演算を行う。
第18図は、これら前処理回路1401、比較処理回路1402、後処理回路1403の全体構成を示したブロック図である。
雑音除去を行う前処理回路1401は、受光素子アレイ11の各行j毎に、1つずつのビット比較器1407jが配置されて構成されている。すなわち、前処理回路1401には、全N2個のビット比較器1407jが配置されており、各ビット比較器1407jの入力端が、対応するA/D変換器210jからのデータ転送ライン250jに接続されている。各比較器1407jのもう一つの入力端は、インストラクション/コマンドバス16を介して、制御回路15と接続されている。各比較器1407jの出力端には、データ転送ライン1440jが接続されている。こうして、前処理回路1401全体からは、全N2個のデータ転送ライン1440jが出力されている。
比較処理回路1402は、受光素子アレイ11の各行j毎に、1つずつの減算器1408が配置されて構成されている。すなわち、比較処理回路1402には、全N2個の減算器1408jが配置されており、各減算器1408jの正入力端には、前処理回路1401の対応する比較器1407jで処理された信号が、対応するデータ転送ライン1440jを介して入力されようになっている。各減算器1408jの負入力端には、データバッファ1405から、所定の背景画像を示す信号が入力される。各減算器1408jの出力端は、データ転送ライン440jに接続されている。したがって、比較処理回路1402全体からは、全N2個のデータ転送ライン440jが出力されている。
後処理回路1403は、重心演算処理回路402とエッジ抽出処理回路403とから構成されている。第1の実施形態と同様、重心演算処理回路402は、重心検出回路409と重心画像データ生成回路425とから構成されている。また、エッジ抽出処理回路403も、受光素子アレイ11の各行jごとに1つずつ配置された積和演算器430jを備えており、3×3マスク演算を行うようになっている。さらに、重心検出回路409とエッジ抽出処理回路403とは、共に、比較処理回路402からの全N2個のデータ転送ライン440jに対し、パラレルに接続されており、雑音と背景画像が除去された生画像データに対し、重心演算とエッジ抽出処理を施すようになっている。
第1の実施形態同様、重心画像データ生成回路425の出力端には、N2個のデータ転送ライン520jが接続されている。また、エッジ抽出回路403の後段には、N2個のデータ転送ライン530jを介して処理画像データバッファ433が接続されており、この処理画像データバッファ433からN2本のデータ転送ライン540jが出力されている。
第19図に示されるように、各行jに対するスイッチ20jが、対応するデータ転送ライン520jと対応するデータ転送ライン540jとを、切り替えながら、対応するデータバッファ171jに接続するようになっている。
かかる構成を有する本実施形態のカメラシステム1によれば、第20図に示すように、受光素子アレイ11で取得された生画像データに対し、画像演算の前処理として雑音除去を行った後、比較演算として背景除去を行い、さらに、後処理として重心検出とエッジ抽出を行ったうえで、処理結果である重心画像とエッジ抽出画像とを重ね合わせて表示することができる。
次に、本実施形態のカメラシステム1の動作を第20図を参照して説明する。
受光素子アレイ11及びA/D変換器アレイ13により撮像された対象物1900の生画像1901には、雑音成分が含まれている。そこで、前処理回路1401により雑音除去を行う。すなわち、各行jのコンパレータ1407jが、画像信号と、所定の閾値である比較信号との比較を行い、画像信号が比較信号と一致又は大きいときにのみ画像信号をそのまま(例えば、生画像信号が4ビットなら、その4ビットの生画像信号をそのまま)出力し、小さいときは0(例えば、生画像信号が4ビットなら、4ビットの(0000)画像信号)を出力する。これにより、比較される生画像信号が所定値以下の場合には、雑音として除去される。この結果、第20図に示されるような生画像1901の前処理(雑音除去)画像1902が得られる。
次に、比較処理回路1402が、前処理画像1902(雑音除去された生画像データ)に対して、背景除去を行う。データバッファ1405には、予め、背景画像1903の画像データが記憶されている。データ制御装置1404は、データバッファ1405から各減算器1408jへの背景画像データの転送を制御する。すなわち、各画素(x、y)についての雑音除去画像データが対応する減算器1408j(ここで、j=y)に入力されてくるタイミングに合わせて、データ制御装置1404は、同一の画素(x、y)についての背景画像データを、データバッファ1405から対応する減算器1408jに転送する。
各減算器1408jは、前処理画像1902の画像信号から、この背景画像1903の画像信号を減算することにより、前処理画像1902から背景画像1903を除去した雑音・背景除去画像1904を生成する。生成した雑音・背景除去画像1904を、対応するデータ転送ライン440jを介して、画像後処理回路1403に出力する。
生成された雑音・背景除去画像1904の画像信号は、後処理回路1403の重心演算回路402とエッジ抽出回路403とに送られる。重心演算回路402では、第1の実施形態と同様の動作が行われる。したがって、重心検出回路409により、重心位置が求められ、さらに、重心画像データ生成回路425により、重心画像データ1905が生成される。また、エッジ抽出回路1403では、エッジ抽出画像1906が生成される。
第19図に示すように、各行jに対応するスイッチ20jが、対応するデータ転送ライン520jと540jと切り替えることにより、重心画像1905とエッジ抽出画像1906とを合成して、合成画像1907を生成して、対応するデータバッファ171jに格納させる。
本実施形態では、第1の実施形態同様、制御回路15が第12図におけるフローチャートにて装置全体を制御しており、あるフレームにおいて重心検出回路409にて求められた重心位置(Px、Py)が所定の設定位置に一致した時(S40にてYes)に、表示タイミングとなり、そのフレームと前後n個のフレームについての合成画像1907が、モニタ18に適したフレームレートに変換されて、モニター18に表示される。
このように、本第2の実施の形態によれば、画像演算機構14は、前処理回路1401、比較処理回路1402、後処理回路1403、及び、データバッファ1405を備えており、高速での画像演算を行う。信号変換器17は、画像演算機構14内の後処理回路1403の出力信号を合成する。信号変換器17は、さらに、制御回路15及び信号変換制御部19の制御の下、重要なタイミングにおいて、この合成信号を、モニタ18の表示に適したフレームレートにダウンコンバートして、モニタ18に表示させる。
本実施形態では、データバッファ1405にバックグランド画像を記憶しておき、比較処理回路1402によって、取り込んだ画像からバックグランド画像の減算を行って出力画像とすることで、リアルタイムにバックグランド減算した画像を出力することが可能となっている。
なお、本実施形態でも、第1の実施形態の変形例と同様に、積和演算器430jを、第8図に点線にて示したように、入力された画像データ自体を出力するように構成してもよい。この場合には、積和演算器430jは、雑音と背景画像とが除去された生画像データ1904をそのまま出力する。この場合には、第15図、第16図を参照して説明したのと同様に、エッジ抽出回路403の後段に、処理画像データバッファ433と生画像データバッファ435とを設け、これらから、それぞれ、N2本のデータ転送ライン540jとN2本のデータ転送ライン560jとが出力されるようにする。かかる構成によれば、エッジ抽出回路404により、エッジ抽出画像1906が生成されると共に、雑音・背景除去画像1904もそのまま転送される。したがって、第16図に示したのと同様に、各行jに対するスイッチ20jを、対応するデータ転送ライン520j、540j及び560jを切り替えながら対応するデータバッファ171jに接続することにより、雑音・背景除去画像1904と重心画像1905とエッジ抽出画像1906とを合成して、合成画像1907を生成し、対応するデータバッファ171jに格納させ、所望のタイミングにて表示させることができる。
また、上記のシステムにおいて、さらに高速なフレームレートで処理を行いたい場合には、第1の実施形態において説明したように、A/Dコンバータ210において任意の階調でのA/D変換を行うようにすれば良い。この場合には、データバッファ1405にも、同様のビット数の画像を比較画像として蓄積しておけばよい。あるいは、データ制御装置1404を制御してビット数を変更して読み出してもよい。
さらに、第1の実施形態において説明したように、対象に合わせて、A/D変換の階調変更とビニングとを組み合わせて用いれば、適応的な画像処理を行うことが可能となる。但し、本実施形態の場合には、階調や解像度の違う画像について減算演算やマッチング等の比較処理を行うことになるため、それぞれの条件における比較画像(背景画像や参照画像)をデータバッファに用意し、それぞれと比較演算することが好ましい。
また、データバッファ1405に1つ前のフレームの画像を記憶しておき、比較処理回路1402によって、取り込んだ画像から前フレームの画像の減算を行って出力画像とすることで、前画像との差分画像、すなわち、移動している物体のみを抽出した画像を生成して出力することが可能となる。このとき、現フレームとの単純な減算を行うのではなく、前フレーム画像(データバッファ)と現フレームの画像との比較を行った後、後処理回路1403で、画像信号がある閾値以上の画素を「動いた画素」と判定して、最終的な出力信号とすれば、画像の中から動いているものだけを鮮明に出力したり、この画像出力を元に重心演算装置によって重心を演算することで、動いている物体の正確なトラッキングをも実現できる。
次に、本発明の第3の実施形態に係る高速画像処理カメラシステムを第21図〜第26図に基づき説明する。
第21図は、本発明の第3の実施形態に係る高速画像処理カメラシステム1の構成図である。なお、第1、2の実施形態の高速画像処理カメラシステムと同一又は同等な構成部分には同一符号を付し、その説明は省略する。
本実施形態の画像演算機構14は、前処理を行う処理回路400として、第2の実施形態と同様、雑音除去を行う画像前処理回路1401を備えている。一方、比較演算を行う処理回路400として、パターンマッチング回路2402を備えている。また、後処理を行う処理回路400として、重心演算回路402を備えている。
また、第2の実施形態同様、パターンマッチング回路2402にはデータバッファ2405が接続されている。データバッファ2405は、パターンマッチング回路2402がパターンマッチングを行う(m1xm2)参照画像データを格納している。画像演算機構14は、さらに、第2の実施形態同様、データバッファ2405からパターンマッチング回路2402への(m1xm2)参照画像データの転送を制御するためのデータ制御装置2404を備えている。
第1の実施形態同様、A/D変換器アレイ13の出力端から伸びるN2本のデータ転送ライン250jは、分岐しており、一方が、画像演算機構14に接続され、他方が、生画像データバッファ460に接続されている。生画像データバッファ460の出力端は、第1の実施形態同様、N2本のデータ転送ライン500jに接続されている。生画像データバッファ460は、生画像データを所定時間格納した後、データ転送ライン500jを介して、スイッチ20jへ出力する。
第22図に示すように、画像前処理回路1401は、第2の実施形態同様、N2個のビット比較器1407jから構成されており、その出力端には、N2本のデータ転送ライン1440jが接続されている。このN2本のデータ転送ライン1440jが、パターンマッチング回路2402に接続されている。
以下、パターンマッチング回路2402について、第22図及び第23図を参照して、説明する。
パターンマッチング回路2402は、雑音除去された生画像D(x、y)について、(m1xm2)参照画像s(p、q)とのマッチング演算を行うためのものである。
マッチングの演算アルゴリズムは数多く提案されている。例えば、画素(x、y)を左上端に有する(m1xm2)領域と(m1xm2)参照画像に対し、以下の関数Errorを求め、その値が所定のしきい値以下となった場合に、これらの領域が一致しているということができる。
本実施形態では、簡単のため、(m1xm2)参照画像として、(3x3)参照画像を採用する。すなわち、m1=m2=3である。そして、N1xN2画像内の各画素(x、y)を中心に有するN1xN2個の(3x3)領域のそれぞれに対し、(3x3)参照画像とのマッチング演算を行う。すなわち、各画素(x、y)を中心に有する(3x3)領域と(3x3)参照画像に対し、以下の関数Errorを求め、その値が所定のしきい値以下となった場合に、当該(3x3)領域と(3x3)参照画像とが一致しているとする。一致している場合には、当該中心画素(x、y)について(1)を出力し、一致していない場合には、当該中心画素(x、y)について(0)を出力することで、マッチング画像データM(x、y)を生成する。
より詳しくは、パターンマッチング回路2402は、第22図に示すように、N2本のデータ転送ライン1440jに対して、1対1に対応したN2個の差分絶対値総和比較器2430jを備えている。
第23図に示すように、各差分絶対値総和比較器2430jは、対応するデータ転送ライン1440jの他、その上下のデータ転送ライン1440j―1、1440j+1にも接続されている。すなわち、各差分絶対値総和比較器2430jは、対応するm2(=3)本のデータ転送ラインj−1,j、j+1に接続されている。各差分絶対値総和比較器2430j内には、m1xm2(=3x3=9)個の差分絶対値演算器2431(0)〜431(8)と、1個の加算器2432と、1個の比較器2433とが配置されている。
差分絶対値演算器2431(0)〜2431(8)は、m1(=3)個ずつがm2個のデータ転送ライン1440j−1、1440j、1440j+1のそれぞれに接続されている。すなわち、差分絶対値演算器2431(0)〜2431(2)は、データ転送ライン1440j−1に接続されている。差分絶対値演算器2431(3)〜2431(5)は、データ転送ライン1440jに接続されている。差分絶対値演算器2431(6)〜2431(8)は、データ転送ライン1440j+1に接続されている。各行では、各差分絶対値演算器2431が、対応するデータ転送ライン1440からの画像データを順次後段の差分絶対値演算器へ転送できるようになっている。このデータの転送に伴って、所定の受光素子120とそれを囲む8つの受光素子の画像データがそれぞれの入力端に入力される構成になっている。なお、第1行(j=1)に対応する差分絶対値総和比較器24301については、j−1行がないため、差分絶対値演算器2431(0)〜2431(2)にはデータ転送ライン1440は接続されない。したがって、差分絶対値演算器2431(0)〜2431(2)には、常に、画像データ(0)が入力されることになる。同様に、第N2行(j=N2)に対応する差分絶対値総和比較器2430N2については、j+1行がないため、差分絶対値演算器2431(6)〜2431(8)にはデータ転送ライン1440は接続されない。したがって、差分絶対値演算器2431(6)〜2431(8)には、常に、画像データ(0)が入力されることになる。
差分絶対値演算器2431(0)〜2431(8)の他の入力端は、データバッファ2405に接続されており、m1xm2(=3x3)参照画像s(p、q)が送られるようになっている。
また、各差分絶対値演算器2431の出力は、加算器2432の対応する入力端に接続されている。加算器2432の出力は、比較器2433の一方の入力端に接続されている。比較器2433の他方の入力端には、インストラクション/コマンドバス16から送信されている所定のしきい値が入力されている。
各差分絶対値演算器2431は、減算器2434と絶対値演算器2435とを備えている。減算器2434は、入力してきた雑音除去画像データから、データバッファ2405からの参照画像データを減算する。絶対値演算器2435は、この減算結果たる差分の絶対値を求める。加算器2432は、全9個の差分絶対値演算器2431(0)〜(8)からの差分絶対値の総和を求める。比較器2433は、この差分絶対値総和を、所定のしきい値と比較し、しきい値以下の場合には、(1)を出力し、しきい値より大きい場合には、(0)を出力する。この比較結果は、中心の差分絶対値演算器2431(4)に入力した雑音除去画像データD(x、y)の画素(x、y)を中心とするm1xm2(=3x3)領域の入力画像が(m1xm2)(=3x3)参照画像と同一であるかを示しており、(1)である場合には同一、(0)である場合には非同一であることを示している。
上記構成を有する各差分絶対値総和比較器2430jは、差分絶対値の演算及び演算結果のしきい値との比較を、各行j(j=y)における全N1個の素子(x、y)を中心とする(3x3)領域に対して、順次繰り返し行うことにより、対応する行jについてのマッチング画像データM(x、y)を出力する。各差分絶対値総和比較器2430jの出力端には、データ転送ライン440jが接続されている。すなわち、パターンマッチング回路2402全体の出力端には、N2本のデータ転送ライン440jが接続されている。このN2本のデータ転送ライン440jが、重心演算回路402に接続されている。
なお、比較対照とする参照画像の大きさ(m1xm2)は、(3x3)に限らず、比較しようとする対象物画像のサイズに合わせて、任意に選択することができる。各行jに設ける差分絶対値総和比較器2430jには、(m1xm2)個の差分絶対値演算器2431を、m1列xm2行に2次元状に配置すればよい。これらm2行の差分絶対値演算器2431を、対応するデータ転送ライン1440jを含む計m2本の隣り合うデータ転送ライン1440に接続させれば良い。各データ転送ライン1440に対応する各行に、m1個の差分絶対値演算器2431を配置する。
重心演算回路402は、第1の実施形態と同様、第7図に示す構成を有している。重心演算回路402内の重心検出回路409は、パターンマッチング回路2402からのN2本のデータ転送ライン440jより入力してくるマッチング画像データM(x、y)について、重心演算を行い、重心位置(Px、Py)を求め、その結果を、制御回路15に出力する。重心演算回路403内の重心画像データ生成回路425は、重心位置(Px、Py)を示す重心画像データP(x、y)を生成し、データ転送ライン520jに出力する。
第21図及び第24図に示すように、各行jに対応するスイッチ20jは、生画像データバッファ460からのデータ転送ライン500jと重心演算回路402からのデータ転送ライン520jとを切り替えて、対応するデータバッファ171jに接続するようになっている。したがって、生画像データと重心画像データとを合成してデータバッファ171jに格納することができる。
かかる構成を有する本実施形態の高速画像処理カメラシステム1は、高速フレームレートで対象物の移動をモニターし、重要な瞬間、例えば、対象物の移動状態が変化した瞬間を抽出して、その前後のnフレーム分をモニターに表示することができる。
本実施形態では、以上の処理を、制御回路15による制御の下、第25図に示すフローチャートに従って行う。
すなわち、まず、S100において、制御回路15は、受光素子アレイ11及びA/D変換器アレイ13を制御して、1フレームの生画像データを取得する。その結果、生画像データが、データ転送ライン250jを介して、画像演算機構14に転送されると共に、生画像データバッファ460に格納される。
次に、制御回路15は、画像演算機構14を制御して、演算処理を行う。すなわち、まず、S110において、画像前処理回路1401を制御して雑音除去を行い、さらに、パターンマッチング回路2402を制御して、雑音除去データに対して、対象物を示す(m1xm2)参照画像とのマッチング演算を行い、マッチング画像データM(x、y)を生成する。このマッチング画像データは、現フレーム中の対象物の位置をデータ(1)の位置により示している。
次に、制御回路15は、S120において、重心演算回路402を制御し、現在のフレームにおけるマッチング画像データM(x、y)についての重心位置(Px、Py)を演算させる。この演算結果は、現在のフレームにおける対象物の重心位置(Px、Py)を示す。この演算結果は、制御回路15に送信される。重心演算回路402では、さらに、重心画像データ生成回路425にて、重心画像データが生成される。
次に、S130で、制御回路15は、S120にて受け取った対象物の重心位置データ(Px、Py)に基づき、現在の対象物の速度の変化量を演算する。具体的には、制御回路15は、前のフレームにおける速度データと重心位置データとを格納する図示しないメモリを有している。このため、制御回路15は、今回のフレームについての対象物の重心位置データ(Px、Py)と、前回のフレームについての対象物の重心位置データとの差を演算することにより、現在の対象物の速度を求める。次に、こうして得られた現在の速度データと前回求められた速度データとの差の絶対値を演算することで、速度変化値を求める。
ついで、制御回路15は、S140にて、S130にて演算された現在の速度変化値を、所定の設定値と比較する。現在の速度変化値が設定値以下の場合(S140で、No)には、S150に以降し、現在のフレームの合成画像データを生成し、データバッファ171に蓄積させる。すなわち、スイッチ20jを制御することにより、生画像データバッファ460の生画像データと、重心画像データ生成回路425からの重心画像データとを合成し、データバッファ171に格納する。そして、次のフレームの取得/処理(S100)に進む。
一方、現在の速度変化値が設定値より大きい場合(S140にてYes)には、対象物の移動状態が変化したことが判明する。したがって、制御回路15は、S160にて、信号変換制御部19に対し、モニター表示処理を開始するよう指示する。なお、制御回路15は、かかる指示をした後、S100に戻り、次のフレームの取得/処理を開始する。
モニター表示処理の指示を受けた信号変換制御部19は、S170にて、データバッファ171に既に格納されているnフレーム分の合成画像データと、今回のフレームの合成画像データと、今後のnフレームの合成画像データとを順次表示するよう、信号変換器17への制御を開始する。すなわち、第1の実施形態におけるS70(第12図)と同様の処理を行う。
本実施形態の高速画像処理カメラシステム1は、上述のような動作を行うため、例えば、第26図に示すように、バットがスイングしている状態の画像を高速フレームレートで取得していき、対象物であるボールがバットに当る瞬間とその前後の数フレームを抽出して表示することができる。
より詳しくは、受光素子アレイ11及びA/D変換アレイ13にて、連続する複数のフレーム画像が、高速フレームレートで撮像されていく(S100)。得られた画像データは、画像演算機構14内のパターンマッチング回路2402にてパターンマッチングされる(S110)。ここで、(m1xm2)参照画像としては、対象物たるボールの画像を使用されており、そのため、ボールを抽出することができる。つづいて、抽出されたボールの重心が演算される(S120)。ボールの重心位置のデータが制御回路15に渡され、1つ前のフレームにおける位置との差から、ボールの速度が計算される(S130)。ボールがバットに当った瞬間、ボールの速度や向きが急に変化するので、その瞬間のフレームを抽出することができる(S140)。そして、そのフレームとその前後のフレームを最終出力とする(S160,S170)。
このように、バットがスイングしている状態を示す複数のフレーム画像(T=1〜6)を、高速フレームレートで連続して取得していき、対象物であるボールがバットに当る瞬間(T=4)を認識し、ボールがバットに当った瞬間(T=4)とその前後(T=3,5)の画像のみを抽出し、その画像にボールの重心位置を重ねて表示することができるのである。
このようにして、高速フレームレートで取得した膨大な画像情報の中から、対象物の観測目的に合った画像の抽出が可能となっている。
例えば、本実施形態の受光素子アレイ11及びA/D変換アレイ13の画像取得速度が例えば1000フレーム/秒とすると、時速150km/hのボールを、当該ボールが4cm進む毎に撮影する事ができる。しかも、画像演算機構14がリアルタイムの演算処理を行うことで、本当に見たいボールがバットに当たる瞬間のみを抽出し、通常のフレームレート(例えば、30フレーム/秒)にてモニター18に表示させたり、NTSCカメラ入力(約30フレーム/秒)に対応した一般の画像処理装置へ入力させることが可能となる。しかも、重心処理結果を生画像に重ね合わせる事ができるため、後段の画像処理装置への負担を著しく軽減できる。
このように、本実施形態のカメラシステム1によれば、動いている対象物を高速フレームレートでモニターしていき、観測したい瞬間を抽出し、その前後の画像のみを出力することができる。例えば、ドリルによる金属板加工時のリアルタイム検査を行う場合には、対象物であるドリルの歯が金属板に接触して打ちぬく瞬間を抽出して、その前後の画像をモニターに表示したり、その瞬間における、ドリルの歯の回転速度や移動速度、板のしなりなどを計測する事ができる。かかる計測結果は、より正確な検査や、異常の要因解明に利用できる。
なお、上述の制御では、対象物の速度を演算し、速度の変化量が所定の値より大きくなった時を抽出しているが、第1の実施形態の場合のように、対象物の位置で判断してもよい。例えば、対象物であるドリルの刃が金属板の位置に到達したことを判断しても良い。
また、本実施形態では、パターンマッチング回路2402は、全N2本のデータ転送ライン1440に接続された全N2個の差分絶対値総和比較器2430から構成されていた。しかしながら、パターンマッチング回路2402は、より少ない数の差分絶対値総和比較器2430より構成しても良い。すなわち、全M個(ここで、M<N2)の差分絶対値総和比較器2430のそれぞれの入力端に、スイッチを設けておく。制御回路15は、前回のフレームでの重心位置検出結果(Px、Py)に基づき、今回のフレームにおいて対象物とのマッチングが得られると予想される位置を含む領域に対応するM個の隣り合うデータ転送ライン1440j〜1440j+M―1に対して、これらM個の差分絶対値総和比較器2430を接続させる。パターンマッチング回路2402は、これらM個のラインj〜j+M−1についてマッチング画像データM(x、y)を出力し、他のデータ転送ラインについては0のデータを出力することで、N1xN2の全画素に対するマッチング画像データM(x、y)を生成し、重心演算回路402に入力させる。かかる構成によれば、パターンマッチング回路2402は、より簡易な構成にて、マッチング画像データを生成することができる。
次に、本発明の第4の実施形態に係る高速画像処理カメラシステムを第27(a)図及び第27(b)図に基づき説明する。
本実施形態では、取得した画像と外部データとの比較から抽出タイミングを決定する。
第27(a)図は、本発明の第4の実施形態に係る高速画像処理カメラシステム1の構成図である。本実施形態のカメラシステム1は、第2の実施形態のカメラシステム1と同様、雑音除去を行う画像前処理回路1401を有している。画像前処理回路1401の後段には、パターンマッチング回路3402が設けられている。
画像前処理回路1401は、第2の実施形態同様、N2個のビット比較器1407jから構成されており、その出力端には、N2本のデータ転送ライン1440jが接続されている。このN2本のデータ転送ライン1440jが、パターンマッチング回路3402に接続されている。
本実施形態では、パターンマッチング回路3402は、雑音除去された生画像について、(m1xm2)参照画像とのマッチング演算を行う。この例では、第3の実施形態同様、m1=m2=3である。このパターンマッチング回路3402は、第3の実施形態におけるパターンマッチング回路2402とは異なり、1個の差分絶対値総和比較器24302のみから構成されている。ここで、差分絶対値総和比較器24302は、N2本のデータ転送ライン1440jのうちの対応する一つのライン(この例では、データ転送ライン14402)とその上下のライン(この例では、データ転送ライン14401と14403)とに接続されている。
差分絶対値総和比較器24302は、第23図に示した構成と同一の構成をしているが、その比較器2433の出力端は、インストラクション/コマンドバス16を介して制御回路15に接続されている。
パターンマッチング回路3402は、さらに、画像前処理回路1401からのN2本のデータ転送ライン1440jを、そのまま、対応するデータバッファ171jに固定的に接続させている。したがって、本実施形態の場合には、画像前処理回路1401で雑音を除去された生画像データが、そのまま、他の画像データと合成されることなく、データバッファ171jに格納される。したがって、本実施形態では、スイッチ20は設けられていない。
本実施形態の場合も、データバッファ2405には、対象物を示す検索画像s(x,y)(大きさm1×m2)が予め格納されている。あるフレームにおいて入力画像D(x,y)が画像演算機構14に転送されると、このデータバッファに記憶されている検索画像s(p、q)(大きさm1×m2)が検索され、マッチング処理が行われる。
パターンマッチング回路3402は、受光素子アレイ11の第2番目のライン上の全N1個の画素のそれぞれを中心とする全N1個の(m1xm2)領域のいずれかが(m1xm2)参照画像と一致しているか否かを演算する。すなわち、差分絶対値総和比較器2430
2は、以下の差分演算を行う。
差分絶対値総和比較器24302は、さらに、得られた関数Errorの演算結果が所定のしきい値以下の場合には、(1)を出力し、しきい値より大きい場合には、(0)を出力する。
すなわち、あるフレーム画像について、第2行目の全N1個の画素(x、2)の各々を中心とする全N1個の(m1xm2)領域に対して得られた関数Errorの値のうちのいずれかが所定のしきい値以下となったフレームの瞬間が、「希望するタイミング」ということになる。
こうして、入力画像D(x,y)と比較画像s(p、q)との一致度をパターンマッチング回路3402によってリアルタイムで検出し、しきい値以下の誤差が得られたタイミングにおける画像フレームデータおよびその前後の画像フレームを出力画像とするように、信号変換制御部19から信号変換器17に対して、画像信号への変換を指示する。
すなわち、本実施形態の場合には、制御回路15は、第27(b)図のフローチャートの処理を行う。より詳しくは、制御回路15は、第1の実施形態のS10(第12(図)と同様、S210において、各フレーム画像の取得を行う。各フレーム画像について、S220において、画像前処理回路1401に雑音除去を行わせ、パターンマッチング回路3402にマッチング処理を行わせる。S230において、パターンマッチング回路3402内の差分絶対値総和比較器24302から順次送られてくるN1個の比較結果のいずれかが(1)か否かを判断する。全N1個の比較結果が(1)でない(S240でNo)場合には、現フレームの生画像の蓄積を行い(S250)、次のフレームの処理へ移行する(S210)。一方、N1個の比較結果のうちの少なくとも1個が(1)となった場合(S240でYes)には、抽出タイミングと判断して、S260に移行して、モニタ表示指示を信号変換制御部19に出力し、S270にて表示出力動作を行わせる。すなわち、現フレームと前後のフレームについて画像前処理回路1401から出力された雑音除去生画像データをモニター18に表示させる。このようにすれば、希望のタイミングの画像前後の映像をモニタ18に表示させることができる。
例えば、第14(a)図〜第14(c)図を参照して説明したチップ53が実装される瞬間の画像を抽出することもできる。すなわち、マッチング比較演算によって、入力画像のうち、基板の所定の位置を示す所定の領域(この例の場合、受光素子アレイ11の第2番目の行jの位置に対応)のいずれかが、対象画像であるチップ53を示す画像と一致したか否かを判断することで、当該チップ53が基板の当該所定の位置に実装される瞬間を抽出し、そのタイミングで画像を出力することが可能となる。
特に、本装置においては、並列受光素子アレイ11からの信号を各行について並列的に転送している。しかも、画像演算機構14が並列演算を行なうことで、高速な演算処理を行っている。すなわち、画像前処理回路1401が、各行毎に備えた複数の比較器1407jを備え、各行に対して並列的に雑音除去を行っている。また、パターンマッチング回路3402は、対応するm2個の行(上記例の場合、第1,2,3番目の行)のそれぞれに、m1個の差分絶対値演算器2431を備え、各行に対して並列的に差分絶対値を求めて、マッチング処理を行っている。高速移動物体を追跡する場合に、物体に回転や向きの変化がある場合には、従来のTVカメラのような遅いフレームレート(30Hz)では、対象物の画像上の形状が変化してしまうため、フレーム間の画像から同じ対象物を判断するために非常に複雑なアルゴリズムが必要となりリアルタイムに表示させることが困難である。しかしながら、本装置のように高いフレームレート(>1KHz)で画像が捉えられる場合には、フレーム間の画像の違いは小さいために、上記のような簡単なアルゴリズムで高速にマッチングが行なえることになり、対象物を正確に追跡することが可能となる。
本発明に係る高速画像処理カメラシステムは、前述した実施形態に限定されず、種々の変更が可能である。
また、これまで説明した実施の形態では、画像処理を行う並列演算装置14として、演算素子を各行毎に並列に用意して演算処理を行う行並列方式を採用している。こうした並列化により、画像データのように大規模な演算を必要とする処理を高速に行うことが可能となる。
並列演算の方式としては、上記の例のほかにも、受光素子アレイをいくつかのブロックに分割し、これら複数のブロックに1対1に対応して複数の処理回路400a(処理回路401、402、403に相当)を用意して並列処理を行うブロック並列型(第28図)を採用してもよい。また、2次元受光素子アレイ11の各受光素子120に1対1に対応して複数の処理回路400bを用意して完全並列処理を行う完全並列型(第29図)なども採用できる。これら並列処理の方式は、用途や集積度、演算速度に応じて選択できる。ここで、完全並列型(第29図)の場合、各処理回路400bとしては、例えば、特開平10−145680号に記載された演算素子を設ければよい。各処理回路400bが、対応する受光素子からの画像信号に基づき、総和演算、重心演算等、任意の演算を行うことで、完全並列型の処理を行うことができる。したがって、例えば、重心演算結果や総和演算結果が所定の設定値となったか否かを判断し、設定値となった時を抽出タイミングとして、その前後のフレームの画像を表示することができる。ブロック並列型は、領域毎にマッチングや重心などを効率的に求める特長を持ち、完全並列型では、高速性が最大の特長となる。いずれの方式も、行毎又はブロック毎にA/D変換器210を用意して効率的にA/D変換を行い、部分並列または完全並列とした処理回路400a、400bにおいて画像処理を高速に行うアーキテクチャを採用している。
また、前述した第1〜第3の実施形態では、複数の画像信号を合成して出力した。すなわち、第1の実施形態では、生画像信号と重心画像信号とエッジ抽出画像信号とを合成して出力した。第2の実施形態では、重心画像信号とエッジ抽出画像信号と(もしくは、更に、雑音・背景除去生画像信号)を合成して出力した。第3の実施形態では、生画像信号と重心画像信号とを合成して出力した。しかしながら、かかる合成は行わなくてもいい。すなわち、A/D変換アレイ13にて生成される生画像信号か、画像演算機構14内のいずれか一つの処理回路400にて生成される処理画像信号のうちのいずれか一つをそのまま出力するのでも良い。その場合には、スイッチ20jは不要となる。すなわち、第4の実施形態のように、各データバッファ171jを、出力しようとする画像信号が伝達されてくるデータ転送ラインに固定的に接続すればよい。
A/D変換器アレイ13では、各A/D変換器210が受光素子アレイ11の各行jに対応して設けられていたが、代わりに、第30図に示すように、各列iに対応して設けられても良い。この場合には、A/D変換器アレイ13は、N1個のA/D変換器210からなる。受光素子アレイ11では、各列iに属する全N2個の受光素子120が互いに電気的に接続されており、対応するA/D変換器210に接続されている。各列iにおいて、垂直走査信号を順次切り替えていくことにより、全N2個の受光素子120からの光電出力を順次読み出していくことができる。この場合は、画像演算機構14の各処理回路400も、各列iからの出力信号に対して演算処理を行うよう、列並列演算を行うようにすれば良い。
また、上述の実施の形態では、A/D変換器210がチャージアンプ221を含む構成となっているが、A/D変換器210とチャージアンプ221とを別体とし、第31図のように、N2個のチャージアンプ221からなるアンプアレイ12を受光素子アレイ11に接続させ、さらに、N2個のA/D変換器210からなるA/D変換器アレイ13を当該アンプアレイ12と並列処理機構14との間に設けるようにしても良い。この場合には、アンプアレイ12内の各アンプ221は、受光素子アレイ11の対応する行110上の計N1個の受光素子120から出力される電荷を順次電圧信号に変換し、得られたアナログ電圧信号を、A/D変換器アレイ13内の対応するA/D変換器210に出力する。A/D変換器210は、当該チャージアンプ221からのアナログ電圧信号を順次A/D変換し、並列処理機構14に供給する。
また、上記の実施形態では、単一の受光素子アレイ11を設けていたが、複数個設けてもよい。