JP4458678B2 - 高速視覚センサ装置 - Google Patents

高速視覚センサ装置 Download PDF

Info

Publication number
JP4458678B2
JP4458678B2 JP2000575295A JP2000575295A JP4458678B2 JP 4458678 B2 JP4458678 B2 JP 4458678B2 JP 2000575295 A JP2000575295 A JP 2000575295A JP 2000575295 A JP2000575295 A JP 2000575295A JP 4458678 B2 JP4458678 B2 JP 4458678B2
Authority
JP
Japan
Prior art keywords
light receiving
transfer
receiving element
shift register
arithmetic
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
Application number
JP2000575295A
Other languages
English (en)
Inventor
晴義 豊田
正俊 石川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hamamatsu Photonics KK
Original Assignee
Hamamatsu Photonics KK
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hamamatsu Photonics KK filed Critical Hamamatsu Photonics KK
Application granted granted Critical
Publication of JP4458678B2 publication Critical patent/JP4458678B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N3/00Scanning details of television systems; Combination thereof with generation of supply voltages
    • H04N3/10Scanning details of television systems; Combination thereof with generation of supply voltages by means not exclusively optical-mechanical
    • H04N3/14Scanning details of television systems; Combination thereof with generation of supply voltages by means not exclusively optical-mechanical by means of electrically scanned solid-state devices
    • H04N3/15Scanning details of television systems; Combination thereof with generation of supply voltages by means not exclusively optical-mechanical by means of electrically scanned solid-state devices for picture signal generation
    • H04N3/1575Picture signal readout register, e.g. shift registers, interline shift registers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/70SSIS architectures; Circuits associated therewith
    • H04N25/71Charge-coupled device [CCD] sensors; Charge-transfer registers specially adapted for CCD sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/70SSIS architectures; Circuits associated therewith
    • H04N25/76Addressed sensors, e.g. MOS or CMOS sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N25/00Circuitry of solid-state image sensors [SSIS]; Control thereof
    • H04N25/70SSIS architectures; Circuits associated therewith
    • H04N25/76Addressed sensors, e.g. MOS or CMOS sensors
    • H04N25/767Horizontal readout lines, multiplexers or registers

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Transforming Light Signals Into Electric Signals (AREA)
  • Solid State Image Pick-Up Elements (AREA)
  • Studio Devices (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Description

本発明は、画像処理機能を備えた高速視覚センサ装置に関する。
FAシステム等でロボットを高速で動作させるためには、高速の画像処理が必要とされる。例えば、視覚センサとアクチュエータの間でフィードバックループを形成するロボットの場合、アクチュエータはミリ秒単位で制御可能であるため、本来はこれに対応した画像処理速度が必要になる。ところが、現状のビジョンシステムでは画像処理速度がビデオフレームレートに限られているため、この画像処理速度に合わせた低速動作しかできず、ロボットの性能を十分に活かしきれていなかった。
一方、高速CCDカメラの中には1ミリ秒程度で画像を撮像できるものもあるが、これらは撮像した画像をいったんメモリに貯えて、後から読み出して処理を行う機構になっているため、画像解析などの用途には使えるが、実時間性はほとんどなく、ロボット制御などの用途には適用できなかった。
このような問題を解決するため、画像の取込部と処理部を一体として取り扱うビジョンチップの研究が進んでおり、マサチューセッツ工科大学、カリフォルニア工科大学、三菱電機などの研究が知られている(”An Object Position and Orientation IC with Embedded Imager”、David L. Standley (“Solid State Circuits”, Vol. 26, No. 12, Dec. 1991, pp. 1853-1859, IEEE)、”Computing Motion Using Analog and Binary Resistive Networks”、James Hutchinson, et al.(“Computer”, Vol. 21, March 1988, pp.52 - 64, IEEE)、及び、”Artificial retinas -fast, versatile image processors”、Kazuo Kyuma et al., (“Nature”, Vol. 372, 10 November 1994)。しかし、これらは主として集積化の容易なアナログの固定回路を用いており、出力信号の後処理が必要であったり、画像処理の内容が特定用途に限定されていて汎用性がないなどの問題点があった。
これらに対して汎用的な画像処理を行うことができるビジョンチップとしては、特開平10−145680号公報に開示された技術が知られている。この技術は、受光素子と1対1に対応させて演算素子を設け、A/D変換器を受光素子の列毎に設けているため、並列処理により演算時間を短縮するとともに、受光素子と演算素子間の伝送線を少なくすることができ、両者の集積度を最適にすることができるといった利点がある。
しかしながら、この技術では、各演算素子へのデータ転送に演算素子そのものを利用する構成となっているため、画像転送時には演算処理を行うことができない。また、物体の形状認識や動きの認識には、複数の画像間での画像演算が必要とされるが、従来は、一旦複数の画像をメモリに読み込んで演算処理を行う方法がとられていたため、リアルタイムの処理ができなかった。
そこで、本発明は、こうした問題点に鑑みて、簡単な回路構成で、複数の画像間に対しても効率的に高速演算処理が可能な多画素数の高速視覚センサ装置を提供することを課題としている。
上記課題を解決するために本発明の高速視覚センサ装置は、複数の受光素子が複数の行及び列に2次元状に配列されて構成された少なくとも一つの受光素子アレイと、複数のA/D変換器が該少なくとも一つの受光素子アレイの該複数の行に1対1に対応して1次元状に配列されて構成され、各A/D変換器が、該対応する1行中の受光素子から順次読み出された出力信号をアナログ・デジタル変換するA/D変換器アレイと、複数の演算素子が、該少なくとも一つの受光素子アレイの該複数の受光素子と1対1に対応して複数の行及び列に2次元状に配列され、該受光素子の複数の行が該演算素子の複数の行に対応し、各演算素子が該A/D変換器アレイから転送されたデジタル信号について所定の演算を行う並列演算素子アレイと、該複数の演算素子行の各々に対応して少なくとも1ラインの転送用シフトレジスタを備え前記転送用シフトレジスタが、対応する受光素子行に所属する該受光素子の出力信号に相当するデジタル信号を、対応する行に所属する所定の演算素子に順次転送する転送用シフトレジスタアレイとからなる並列処理機構と、該受光素子アレイと該A/D変換器アレイとを制御して一つのフレームについてのデジタル信号を出力させ、該転送用シフトレジスタアレイを制御して該並列演算素子アレイへ該一つのフレームのデジタル信号を転送させた後、該並列演算素子アレイを制御して該一つのフレームに対する該所定の演算を行わせると同時に、該受光素子アレイと該A/D変換器アレイとを制御して次のフレームについてのデジタル信号を出力させ、該転送用シフトレジスタアレイを制御して該並列演算素子アレイへ該次のフレームのデジタル信号を転送させるための制御回路とを備えることを特徴とする。
本発明によれば、受光素子と1対1に対応させて演算素子が設けられているので、画像処理演算を並列処理により高速で行うことができる。さらに、演算処理への転送を専用のシフトレジスタにより行うことで転送中でも演算処理を行うことが可能である。したがって、転送処理、演算処理とも待ち時間を少なくして効率良く行うことができ、全体の処理時間を短縮できる。この結果、パイプライン的な動作が可能となり、高速での画像処理、特に実時間的な処理が可能となる。また、A/D変換器を各列毎に設けることで伝送路の本数が少なくて済むという利点もある。
少なくとも1つの受光素子アレイとして複数個の受光素子アレイを有している場合は、転送用シフトレジスタアレイが、演算素子の各行に対応して、受光素子アレイの個数に等しい数の複数ラインの前記転送用シフトレジスタを備えていることが好ましい。
これによれば、複数の演算素子行の各々に対し、複数の受光素子アレイの対応する受光素子行のデータを転送するための複数ラインの転送用シフトレジスタが備えられることになる。このため、複数個の受光素子アレイがある場合でも、それぞれの受光素子アレイの画像信号を独立して転送できるので、転送処理に要する時間は受光素子アレイが一つのときと同一になる。したがって、演算処理を含めた画像処理を高速化できる。
これら複数個の受光素子アレイは、互いに異なる位置に配置されており、制御回路は、当該複数の受光素子アレイの各々から出力される異なる位置での撮像画像を、対応するラインの前記転送用シフトレジスタにて転送させ、前記並列処理機構に、該複数の受光素子アレイから得られる画像信号に基づいて、撮像対象の該複数の受光素子アレイによる撮像画像間の位置ずれ量を求める演算を行わせる並列処理制御部と、該求められた位置ずれ量と各受光素子アレイの位置及び撮像方向の情報とを基にして、該撮像対象の3次元位置情報を求める演算を行う演算部とを有することを特徴とするものでもよい。
複数個の受光素子アレイを異なる位置に配置して、同一の対象を撮像すると、それぞれの受光素子アレイから得られる画像は、対象物の所定方向への投影画像に相当する。それぞれの画像における対象物の同一部分の位置を基にして三角法により物体の3次元的な位置が求まる。この処理のためには、最低でも2個の受光素子アレイが必要であるが、精度の向上と死角を減らすため、3個以上の受光素子アレイを用いることもできる。
さらに、3次元的な位置を求める場合は、複数個の受光素子アレイは、それぞれの受光素子のデータ転送方向である行方向を互いに同一の方向に合わせ、かつ、各受光素子アレイが、それぞれの対応する受光素子が該データ転送方向にずれるように配置されており、並列処理制御部が、並列処理機構に対して、該複数の受光素子アレイから得られる画像信号に基づいて該複数の受光素子アレイによる撮像画像間の該データ転送方向における位置ずれ量を求める演算を行わせることが好ましい。
これにより、全受光素子アレイのデータ転送方向が一致し、各受光素子の対応する受光素子位置は、このデータ転送方向にずれた位置に配置されることになる。このため、複数の受光素子アレイで検出された画像間では、画像の一致する位置にずれが生ずることになる。この位置ずれの方向は、受光素子アレイのずれの方向、すなわちデータ転送方向と同一になる。転送方向と位置ずれの方向が同一になるため、一方の画像に対して他方の画像をずらすことはデータ転送の際の転送量を制御することで容易に実現できるため、同一部分の検索がより容易になり、3次元的な位置情報の検出が容易になる。
そして、複数個の受光素子アレイで撮像した複数の画像について並列処理機構により求めたデータ転送方向における位置ずれ量を蓄積する画素ずれ量記憶装置をさらに備え、並列処理制御部が、蓄積された位置ずれ量に基づいて、該各ラインの転送用シフトレジスタが画像信号を転送する前記演算素子の転送位置を制御することが好ましい。
これにより、前のフレームで演算した位置ずれ量を基準点として演算を行なうことができるので、位置ずれ量の計算、さらには同一部分の認識をより高速で行なうことができる。
あるいは、これら複数個の受光素子アレイにそれぞれ独立した撮像タイミングで撮像を行わせる撮像タイミング制御手段と、複数個の受光素子アレイに撮像対象の同一方向からの像を撮像させるビームスプリット手段とを備え、制御回路が、複数の受光素子アレイの各々から出力される異なる時刻での撮像画像を、対応するラインの転送用シフトレジスタにて転送させることにより、演算素子に異なる時刻の画像間での演算を行わせる並列処理制御部を有することを特徴とするものでもよい。
複数個の受光素子アレイの撮像タイミングを独立して制御しその画像取得時期を制御すると共に、これら複数個の受光素子アレイに撮像対象を同一方向から撮像させることにより、それぞれの受光素子アレイは短い時間間隔で異なる時刻の画像を取得できることになる。この異なる時刻に取得した画像を対応する別のラインの転送用シフトレジスタで転送することで、フレームごとに取得時期の異なる複数の画像を取得することができる。これらの画像間の演算により、高速で移動する物体、あるいは動きの認識を容易に行うことができる。
または、これら複数個の受光素子アレイに対し撮像対象の同一方向からの互いに異なる色分解画像を撮像させるためのフィルタリング/ビームスプリット手段を備え、制御回路が、複数の受光素子アレイの各々から出力される異なる色分解撮像画像を、対応するラインの転送用シフトレジスタにて転送させることにより、前記演算素子に各色分解画像に対する演算を行わせる並列処理制御部を有することを特徴とするものでもよい。
このようにすれば、各受光素子アレイから各色に分解された画像データが演算素子に送られることになる。したがって、色調整や色補正などの画像処理演算を容易に高速で行うことができる。
また、画像処理演算に必要な所定のデータを供給するデータ供給手段を備え、転送用シフトレジスタが、A/D変換器アレイからの出力信号及び該データ供給手段から供給される該所定のデータを、対応する演算素子行中の所定の前記演算素子に順次転送し、制御回路が、受光素子アレイ、A/D変換器アレイ、並列処理機構、及び、データ供給手段を制御することを特徴とするのでもよい。
これにより、受光素子から演算素子への画像データ転送のみならず、演算に必要な各種のデータの演算素子へのデータ転送をも、専用のシフトレジスタにより行うので、演算処理とこれらのデータ転送を並行して行うことが可能である。
このデータ供給手段は、A/D変換器アレイからの出力信号と所定のデータとを時分割混合する時分割混合ユニットを備えていることが好ましい。画像データと演算に必要な所定のデータを時分割混合することによって、1ラインの転送用シフトレジスタで両方のデータを効率良く確実に転送することが可能である。
あるいは、並列処理機構が、さらに、前記転送用シフトレジスタアレイとは別に、複数行の演算素子の各行に対応して所定データ転送用シフトレジスタを備え、該所定データ転送用シフトレジスタが、対応する行の各演算素子に所定のデータを供給することを特徴とするのでもよい。
この場合は、入力画像データを転送する転送用シフトレジスタ群と、画像処理演算に必要な所定のデータを転送する所定データ転送用シフトレジスタ群とを別々に設けている。これにより、演算素子による演算処理と、入力画像データの転送処理、及び、画像処理演算に必要なその他のデータの転送処理のそれぞれを並行してパイプライン的に処理することが可能となり、高速での画像処理、特に実時間的な処理が可能となる。
また、少なくとも1個の受光素子アレイとして複数個の前記受光素子アレイを有している場合には、転送用シフトレジスタアレイが複数の演算素子行の各々に対応して単一ラインの前記転送用シフトレジスタを備え、該単一ラインの転送用シフトレジスタを時分割使用して複数個の受光素子アレイからの出力信号を転送することが好ましい。
第1図は、本発明の第1の実施形態に係る高速視覚センサ装置のブロック図である。 第2図は、第1の実施形態に係る高速視覚センサ装置の概略構成図である。 第3(A)図は、第1の実施形態に係る高速視覚センサ装置の備える制御回路の構成ブロック図である。 第3(B)図は、第1の実施形態に係る高速視覚センサ装置の備える制御回路の機能ブロック図である。 第4図は、第1の実施形態に係る高速視覚センサ装置の備える受光素子アレイ、及び、A/D変換器アレイの回路構成図である。 第5図は、第4図のA/D変換器アレイの備える積分回路の詳細回路構成図である。 第6図は、第1の実施形態に係る高速視覚センサ装置の備える演算素子及び転送用シフトレジスタのブロック図である。 第7(A)図は、第6図の演算素子の備えるレジスタマトリックスの回路図である。 第7(B)図は、第6図の演算素子の制御タイミングチャートである。 第8図は、第1の実施形態に係る高速視覚センサ装置の動作フロー図である。 第9図は、第8図中の工程S200の動作フロー図である。 第10図は、比較例による転送処理、演算処理のタイミングチャートである。 第11図は、第1の実施形態による転送処理、演算処理のタイミングチャートである。 第12図は、本発明の第2の実施形態による立体視用高速視覚センサ装置の概略構成図である。 第13図は、第2の実施形態の高速視覚センサ装置の全体ブロック図である。 第14(A)図は、第2の実施形態による左右のカメラの配置状態を説明する図である。 第14(B)図は、左右のカメラによる撮像図と撮像対象の位置関係を説明する図である。 第15図は、第2の実施形態に係る高速視覚センサ装置の動作フロー図である。 第16図は、第15図中の工程S400の動作フロー図である。 第17図は、複数のカメラを有するシステムの比較例による転送処理、演算処理のタイミングチャートである。 第18図は、複数のカメラを有するシステムの本実施形態による転送処理、演算処理のタイミングチャートである。 第19図は、本発明の第3の実施形態による色画像認識用高速視覚センサ装置の概略構成図である。 第20図は、第3の実施形態の高速視覚センサ装置の全体ブロック図である。 第21図は、第3の実施形態に係る高速視覚センサ装置の動作フロー図である。 第22図は、第21図中の工程S600の動作フロー図である。 第23図は、本発明の第4の実施形態による移動物体認識用高速視覚センサ装置の概略構成図である。 第24図は、第3の実施形態の高速視覚センサ装置の全体ブロック図である。 第25図は、第4の実施形態に係る高速視覚センサ装置の動作フロー図である。 第26図は、第25図中の工程S800の動作フロー図である。 第27図は、本発明の第5の実施形態による高速視覚センサ装置のブロック図である。 第28図は、第5の実施形態に係る概略構成図である。 第29図は、第5の実施形態に係る演算素子のブロック図である。 第30図は、第5の実施形態に係る高速視覚センサ装置の動作フロー図である。 第31図は、比較例の並列処理機構の処理タイミングを示す図である。 第32図は、第6の実施形態の並列処理機構の処理タイミングを示す図である。 第33図は、本発明の第6の実施形態に係る高速視覚センサ装置のブロック図である。 第34図は、第6の実施形態に係る演算素子のブロック図である。 第35図は、第6の実施形態の並列処理機構の処理タイミングを示す図である。 第36図は、本発明に係る高速視覚センサ装置の変更例のブロック図である。
本発明の実施形態に係る高速視覚センサ装置を第1図〜第36図に基づき説明する。
なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
まず、本発明の第1の実施形態に係る高速視覚センサ装置1を第1図〜第11図に基づき説明する。
第1図は、本実施形態に係る高速視覚センサ装置10のブロック図である。
まず、図1により、センサ装置10全体の構成を簡単に説明する。本実施形態の高速視覚センサ装置10は、受光素子アレイ11と、A/D変換器アレイ13と、並列処理機構14と、制御回路15、及び、インストラクション/コマンドバス16とから構成されている。
受光素子アレイ11には、N1個xN2個の受光素子120が2次元状(すなわち、N2行xN1列)に配置されている。すなわち、受光素子アレイ11は、N1個の受光素子120が水平方向(x方向)に並んで構成された水平受光部110が、N2個、水平方向(x方向)に直交する垂直方向(y方向)に配列されて構成されている。
A/D変換器アレイ13には、N2個のA/D変換器210が1次元状(垂直方向(y方向))に配列されている。当該N2個のA/D変換器210は、受光素子アレイ11内のN2個の水平受光部110に1対1に対応しており、対応する水平受光部110に所属する受光素子120から出力された電荷を順次電圧信号に変換しさらにA/D変換するためのものである。
並列処理機構14には、N1個xN2個の演算素子(PE(processing element))400が、受光素子120と1対1に対応して、2次元状(すなわち、N2行xN1列)に配置されて構成された演算素子アレイ40が設けられている。この演算素子アレイ40には、N2個の演算素子行に1対1に対応して、N2個の転送用シフトレジスタライン(画像転送用シフトレジスタライン)420が付加されている。各転送用シフトレジスタライン420は、対応する行の演算素子400の個数(N1)に等しいN1個の転送用シフトレジスタ(画像転送用シフトレジスタ)410が直列接続されて構成されている。各転送用シフトレジスタ410が、対応する行内の対応する演算素子400に接続されている。
制御回路15は、本センサ装置10の回路全体に命令信号等を送って制御するためのものである。インストラクション/コマンドバス16は、制御回路15からの信号を各回路に送るためのものである。
本センサ装置10は上記構成となっているため、並列処理機構14と受光素子アレイ11との間を、N2本のデータラインで接続することができる。したがって、第2図に示されるように受光素子アレイ11と並列処理機構14とを別々の基板に形成し、個々の動作を確認できる構成とすることで、センサ装置10の安定した生産が可能となっている。また、このように、受光素子アレイ11と並列処理機構14とを別々の基板に形成することで、双方を高集積化することが可能であり、また、それぞれの装置の特性に合わせた加工工程を採用できる点からも、安定した生産が可能となっている。なお、第2図では、並列処理機構14を複数領域に分割してボード上に配置しているが、分割しなくても良い。また、本センサ装置10の各構成要素は、全てCMOSプロセスによって作成可能であるため、すべての構成要素を1チップ化することも可能であり、これにより大幅なコストダウンを図ることもできる。
続いて、各回路の内部構成について説明する。
第3(A)図は、制御回路15の構成ブロック図である。制御回路15は、CPU150,メモリ151,画像取り込み制御部300(第4図)、及び、外部との入出力インターフェース152等が、インストラクション/コマンドバス16で接続されて構成されている。メモリ151には、CPU150によって実行される後述の視覚センサ処理プログラム(第8図)、及び、当該視覚センサ処理プログラム内の画像処理ステップ(第8図のS200)において並列処理機構14の画像並列処理を制御するためのプログラム(例えば、第9図)が格納されている。これら視覚センサ処理プログラムや画像処理プログラムは、外部装置(例えば、外部コンピュータ)1000より、入出力インターフェース152を介して、メモリ151に書き込まれる。
CPU150は、メモリ151内の視覚センサ処理プログラム(第8図)に基づいて、画像取り込み制御部300を介して受光素子アレイ11とA/D変換器アレイ13とを制御すると共に並列処理機構14を制御する他、画像処理ステップ(S200)において並列処理機構14が求めた画像処理演算結果に基づいて、撮像対象物の重心や変位量、速度等の全体特徴量の演算を行う。こうして得られた全体特徴量は、入出力インターフェース152を介して、外部装置(例えば、外部コンピュータや外部アクチュエータ)1000に出力される。
第3(B)図は、制御回路15の機能ブロック図である。制御回路15は、第8図の視覚センサ処理プログラムを実行するCPU150の機能に基づき、プログラム制御部15Aと演算処理部15Bとを有する。プログラム制御部15Aは、第8図の視覚センサ処理プログラムを実行することにより、画像取り込み制御部300を介して受光素子アレイ11とA/D変換器アレイ13とを制御すると共に,並列処理機構14を制御する。ここで、プログラム制御部15Aは、画像取り込み処理制御部360(第8図のS101)と並列処理制御部350(第8図のS102〜S106)とを有する。画像取り込み処理制御部360は、画像取り込み制御部300(第4図)を制御して、受光素子アレイ11とA/D変換器アレイ13に画像の取り込みを行わせる。並列処理制御部350は、並列処理機構14内の転送用シフトレジスタ410によるデータ転送と演算素子400による演算とを制御することで、SIMD(single instruction and multi data stream)型の並列演算処理を行う。演算処理部15Bは、プログラム制御部15Aによる視覚センサ処理プログラムの実行中、必要な演算を行ったり、視覚センサ処理プログラム結果に基づいて、画像の重心や面積等の全体特徴量の演算や判別動作を行う。演算処理部15Bは、さらに、外部装置1000たる外部コンピュータとの通信を行ったり、別の外部装置1000たる外部アクチュエータを制御したりする。
次に、画像取込部たる受光素子アレイ11とA/D変換器アレイ13の構成を、第4図及び第5図を参照して詳細に説明する。
受光素子アレイ11は、光を検出する受光部として機能し、 A/D変換器アレイ13は、当該受光部11からの出力信号を電流/電圧変換し、さらに、A/D変換処理する信号処理部として機能する。制御回路15の画像取り込み制御部300が、受光素子アレイ11とA/D変換器アレイ13に接続されており、当該受光部11及び信号処理部13に動作タイミングの指示信号を通知するタイミング制御部として機能する。
まず、受光素子アレイ(受光部)11の構成を説明する。
第4図に示すように、受光素子アレイ11では、各受光素子120が、入力した光強度に応じて電荷を発生する光電変換素子130と、光電変換素子130の信号出力端子に接続され、水平走査信号Vi(i=1〜N1)に応じて光電変換素子130に蓄積された電荷を出力するスイッチ素子140を1組として構成されている。この受光素子120が水平方向(x方向)に沿ってN1個配置され、各受光素子120のスイッチ素子140が電気的に接続されて水平受光部110を構成している。そして、この水平受光部110を水平方向に直交する垂直方向(y方向)に沿ってN2個配列することにより受光部11が構成されている。したがって、受光部11には、受光素子120i,j(i=1〜N1、j=1〜N2)が2次元状にN1列xN2行、配列されている。
次に、同じく第4図により、信号処理部たるA/D変換器アレイ13の構成を説明する。
A/D変換器アレイ13は、A/D変換器210j(j=1〜N2)をN2個配置して構成されている。各A/D変換器210j(j=1〜N2)は、対応する水平受光部110j(j=1〜N2)から転送されてきた電荷を個別に取り出して処理し、この電荷強度に対応するデジタル信号を出力するためのものである。
各A/D変換器210jは、チャージアンプ221jを含む積分回路220jと、比較回路230j、及び、容量制御機構240jの3つの回路から構成されている。
積分回路220jは、水平受光部110jからの出力信号を入力として、この入力信号の電荷を増幅するチャージアンプ221jと、チャージアンプ221jの入力端子に一方の端が接続され、出力端子に他方の端が接続された可変容量部222jと、チャージアンプ221jの入力端子に一方の端が接続され、出力端子に他方の端が接続されたスイッチ素子223jとからなる。スイッチ素子223jは、画像取り込み制御部300からのリセット信号Rに応じてON、OFF状態となり、積分回路220jの積分、非積分動作を切り替えるためのものである。
第5図は、積分回路220の詳細構成図である。本図は、4ビットつまり16階調の分解能を持つA/D変換機能を備える積分回路の例であり、以下、この回路構成により説明する。
可変容量部222は、チャージアンプ221の水平受光部110からの出力信号の入力端子に一方の端子が接続された容量素子C1〜C4と、容量素子C1〜C4の他方の端子とチャージアンプ221の出力端子との間に接続され、容量指示信号C11〜C14に応じて開閉するスイッチ素子SW11〜SW14と、容量素子C1〜C4とスイッチ素子SW11〜SW14との間に一方の端子が接続され、他方の端子がGNDレベルと接続されて、容量指示信号C21〜C24に応じて開閉するスイッチ素子SW21〜SW24とから構成されている。なお、容量素子C1〜C4の電気容量C1〜C4は、
1=2C2=4C3=8C4
0=C1+C2+C3+C4
の関係を満たす。ここで、C0は積分回路220で必要とする最大電気容量であり、受光素子130(第4図参照)の飽和電荷量をQ0、基準電圧をVREFとすると、
0=Q0/VREF
の関係を満たす。
再び、第4図に戻り、A/D変換器210jの積分回路220j以外の回路を説明する。比較回路230jは、積分回路220jから出力された積分信号VSの値を基準値VREFと比較して、比較結果信号VCを出力する。容量制御機構240jは、比較結果信号VCの値から積分回路220j内の可変容量部222jに通知する容量指示信号Cを出力すると共に、容量指示信号Cに相当するデジタル信号D1を出力する。
なお、以上、A/D変換器アレイ13が4ビットつまり16階調の分解能を持つ場合について説明したが、A/D変換器アレイ13は、6ビット、8ビット等、他のビット構成の分解能を持つ構成であってもよい。
上記構成の画像取り込み部11及び13は、制御回路15内の画像取り込み制御部300により、画像取り込みのタイミングを制御される。第4図に示すように、画像取り込み制御部300は、全回路11及び13のクロック制御を行う基本タイミングを発生する基本タイミング部310と、基本タイミング部310から通知された水平走査指示に従って水平走査信号Viを発生する水平シフトレジスタ320と、リセット指示信号Rを発生する制御信号部340とから構成されている。
次に、並列処理機構14を構成する演算素子400と転送用シフトレジスタ410の構成を説明する。
既述のように、並列処理機構14には、第1図に示すように、受光素子アレイ11のN2個の水平受光部110(j=1〜N2)及びA/D変換器アレイ13のN2個のA/D変換器210(j=1〜N2)に対応して、N2個の転送用シフトレジスタライン420(j=1〜N2)が設けられている。各転送用シフトレジスタライン420(j=1〜N2)には、複数ビット(この場合、4ビット)の転送用シフトレジスタ410i,jが、N1個、直列接続されている。第6図に示すように、コントローラ15内の並列処理制御部350が、各転送用シフトレジスタ410i,j(i=1〜N1、j=1〜N2)に接続されている。並列処理制御部350は、転送開始信号を各シフトレジスタ410i,jに出力することより、A/D変換器アレイ13からのデータを必要な演算素子400の位置まで転送させる。
また、並列処理機構14には、N1個xN2個の受光素子120i,j(i=1〜N1,j=1〜N2)に1対1に対応して、演算素子400i,j(i=1〜N1,j=1〜N2)がN1xN2個2次元状に配列されている。各演算素子400 i,j(i=1〜N1,j=1〜N2)は、対応するシフトレジスタライン420(j=1〜N2)の対応する転送用シフトレジスタ410i,j(i=1〜N1,j=1〜N2)に接続されている。第6図に示すように、並列処理制御部350が、各演算素子400 i,jに接続されており、当該演算素子400における演算処理を制御する。
以下、演算素子400の構造について、第6図に示すブロック図を参照して、より詳細に説明する。
演算素子400は、各素子が共通の制御信号で制御されるSIMD型の並列処理を行う構造になっており、1素子あたりのトランジスタ数を削減し、並列処理機構14の集積化を図り、素子数を増やすことができるようになっている。
演算素子400は、4x8ビットのランダムアクセス可能な1ビットシフトのレジスタマトリックス401と、Aラッチ402、Bラッチ403、及び、演算論理ユニット(ALU)404とで構成されている。レジスタマトリックス401は、データ保持と入出力のためのものである。より詳しくは、レジスタマトリックス401は、対応する受光素子120の出力信号に相当するデジタル信号D1をシフトレジスタ410から入力し収容するためのものである。レジスタマトリックス401はまた、4近傍の演算素子400中のレジスタマトリックス401と直接接続しており、これらに収容されているデジタル信号をも収容することができる。ALU404は、下位ビットから1ビットずつ順次演算する順次ビットシリアル演算を行うためのものである。Aラッチ402、Bラッチ403は、レジスタマトリックス401に保持されている信号を収容し、ALU404での演算に供するためのものである。
以上の構成により、演算素子400では、Aラッチ402、Bラッチ403がそれぞれレジスタマトリクス401内の任意のレジスタからデータを読み込み,ALU404がそのデータをもとに演算を行なう。演算結果は、再び、レジスタマトリクス401内の任意のレジスタに書き込まれる。演算素子400は、この作業を1サイクルとして繰り返し行うことで、さまざまな演算を実行できるようになっている。
より詳しくは、ALU404は、1ビットの演算器で、論理積(AND),論理和(OR),排他的論理和(XOR),加算(ADD)、Carryつき加算などの演算機能を有している。1度に実行できるのは1ビットの演算だけであり,多ビット演算は1ビットずつシリアルに演算を行なうことで実行する。複雑な演算は上記演算機能の組み合わせとして記述できるため、ALU404に対し上記演算機能の中から毎回一つずつを選択させながら繰り返し演算を行わせることで、複雑な演算を実現するようになっている。例えば、乗算は加算の組み合わせとして記述できるため、加算を複数回繰り返し行うことで実現する。減算は、引こうとする数をビット反転して1を足すことで負の数とし、これを足し算することで実現できる。割り算については、例えば、割る数を8,4,2というような数字にして、ビットシフトする(例えば、「割る数が8」の場合、ビットを3ビット右にシフトする)ことにより実現する。さらに、絶対値を求めるためには、マイナスの数(サインビットが1)に対して、符号反転、すなわち、ビット反転して1を足すことで、実現する。
レジスタマトリックス401は、第7(A)図に示すように、ランダムにアクセスできる1ビットのレジスタ4010を24個並べ、さらに、外部や近傍演算素子400との入出力用に8個の機能レジスタ4012を並べた構成となっており、これら全体が1つのアドレス空間として扱われる。第6図において、各レジスタ4010、4012内に記載されている数は、当該レジスタに割り当てられたアドレスを示す。具体的には、24個のレジスタ4010にアドレス「0」〜「23」が割り振られ、8個の機能レジスタ4012にアドレス「24」〜「31」が割り振られている。かかる構成により、レジスタ内のデータを読み書きするのと同じ方法で入出力データとアクセスできるようになっている。
第7(A)図に示すように、レジスタマトリックス401は、これら32個のレジスタ4010,4012に接続された1個のOR回路4014をさらに備えており、レジスタ4010,4012は、すべて、このOR回路4014を介して、Aラッチ402及びBラッチ403に接続されている。レジスタ4010,4012の内の一つのアドレスが選択されると、選択されたレジスタのみがその内容を出力し,選択されていないレジスタは全て0を出力する。全てのレジスタのORをとったものが、レジスタマトリックス401全体の出力として、Aラッチ402またはBラッチ403に出力される。
機能レジスタ4012は主に入出力に用いられる。具体的には、アドレス「30」の機能レジスタ4012は、対応する転送用シフトレジスタ410に接続されており、当該転送用シフトレジスタ410からの入力に用いられる。また、アドレス「24」の機能レジスタ4012は、上下左右の4近傍の演算素子400のレジスタマトリックス401への出力に用いられる。アドレス「24」〜「27」の機能レジスタ4012は、それぞれ、当該4近傍の演算素子400のレジスタマトリックス401からの入力に用いられる。アドレス「28」の機能レジスタ4012は演算処理部15Bへの出力に用いられる。なお、アドレス「28」の機能レジスタ4012は、読み込み時には常に0を読み込むようになっており、アドレス「29」の機能レジスタ4012は常に1を読み込むようになっている。
並列処理制御部350がレジスタマトリクス401へのアクセスとALU404の演算処理を制御することにより、演算素子400における演算及び入出力の全処理を制御する。例えば、転送用シフトレジスタ410からの入力をレジスタマトリックス401のアドレス「0」に書き込みたいときは,0(レジスタアドレス「28」)とセンサ入力(レジスタアドレス「30」)のORをとってレジスタアドレス「0」に書き込む命令を演算素子400に出力する。なお、並列処理制御部350は、第7(B)図に示すように,基本クロックCLKの4倍を1サイクルとし,この間に、各種クロックCLK2,CLK4を供給しながら、Aラッチの読み込み、Bラッチの読み込み,演算結果の書き込みを順に行なう。かかる処理を複数サイクル繰り返し行うことで、レジスタマトリックス401への必要な入出力とALU404による演算を行う。
次に、第4図〜第6図を参照して、本実施形態の動作について説明する。
まず、画像取り込み部11及び13の動作について説明する。
画像取り込み制御部300は、まず、リセット信号Rを有為に設定し、第5図に示す可変容量部222のSW11〜SW14を全て「ON」、SW21〜SW24を全て「OFF」状態にする。これにより、チャージアンプ221の入力端子と出力端子間の容量値をC0に設定する。それと同時に、第4図に示す全てのスイッチ素子140を「OFF」状態とし、水平走査信号Viをいずれの受光素子120i,jも選択しない状態に設定する。この状態から、リセット指示信号Rを非有為に設定し、各積分回路220での積分動作を開始させる。
積分動作を開始させると、第4図に示すN2個の各水平受光部110jにある第1番目の受光素子1201,jのスイッチ素子140のみを「ON」とする水平走査信号V1が出力される。スイッチ素子が「ON」になると、それまでの受光によって光電変換素子130に蓄積された電荷Q1は、電流信号として受光部11から出力される。つまり、光電変換素子の信号を読み出すことができる。電荷Q1は容量値C0に設定された可変容量部222に流入する。
次に、第5図により積分回路220内部の動作を説明する。容量制御機構240(第4図参照)は、SW12〜SW14を開放した後、SW22〜24を閉じる。この結果、積分信号VSは、
S=Q/C1
で示す電圧値として出力される。積分信号VSは、比較回路230に入力して、基準電圧値VREFと比較される。ここで、VSとVREFの差が、分解能の範囲以下、すなわち±(C4/2)以下の時は、一致したものとみなし、更なる容量制御は行わず、積分動作を終了する。分解能の範囲で一致しないときは、更に容量制御を行い、積分動作を続ける。
例えば、VS>VREFであれば、容量制御機構240は、更に、SW22を開放した後に、SW12を閉じる。この結果、積分信号VSは、
S=Q/(C1+C2
で示す電圧値となる。この積分信号VSは、後続の比較回路230(第4図)に入力して、基準電圧値VREFと比較される。
また、VS<VREFであれば、容量制御機構240は、更に、SW11及びSW22を開放した後に、SW12及びSW21を閉じる。この結果、積分信号VSは、
S=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として、演算素子アレイ14に出力する。以上述べたように、この装置では、デジタル信号D1の各ビット値は、MSB側からLSB側へ1ビットずつ順に定まる。
このように、容量C1〜C4が一つずつONされながら、比較電圧VREFとの比較が行われ、その比較結果が出力デジタル信号D1として出力される。すなわち、まず、容量C1がオンとされ、積分信号V=Q/C1となり、このVがVREFと比較される。Vが大きければ“1”、小さければ“0”となり、これがMSB(最上位ビット)として出力される。次に、C2がオンとされ、V=Q/(C1+C2)(MSB=1の時)、または、V=Q/C2(MSB=0の時)が得られ、VREFと比較される。Vが大きければ“1”、小さければ“0”となり、これが2ビット目として出力される。以上の処理が必要なビット数まで繰り返されることで、A/D変換が実行される。
第1番目の受光素子1201,jの光電出力に相当するデジタル信号の送出が終了すると、リセット信号Rが有為とされ、再び、非有為にして、可変容量部222jの容量値を初期化した後に、各水平受光部110jの第2番目の受光素子1202,jのスイッチ素子140のみを「ON」とする水平走査信号V2を出力し、上述と同様の動作により、第2番目の受光素子1202,jの光電出力を読み出し、これに相当するデジタル信号を送出する。以下、水平走査信号を切り替えて、全受光素子120の光電出力を読み出し、相当するデジタル信号を並列処理機構14に出力する。
次に、演算素子400の動作を第6図により説明する。
A/D変換されたデジタル信号は、転送用のシフトレジスタ410を介してそれぞれの受光素子120i,jに対応する演算素子400i,jのレジスタマトリックス401に送られる。この転送は、対応する転送用シフトレジスタライン420内において、転送用シフトレジスタ410に格納された信号を順次隣の画素の転送用シフトレジスタ410に転送することによって行われる。転送用シフトレジスタ410を備えることにより、演算素子400での演算処理と独立して転送用シフトレジスタでの転送処理を行うことができる。したがって、演算素子400において処理演算を行わせている間に、転送用シフトレジスタ410に次のデータを転送させるパイプライン的な処理が可能となり、演算素子400におけるより高速なフレームレートでの演算処理が可能となる。また、転送用シフトレジスタ410は、並列処理制御部350からの転送開始の信号に基づいて、A/D変換されたデータの転送を開始し、(行内素子数(N1個)xアナログレベル)分だけビットシフトによる転送を行った後、「データ転送完了」の信号を並列処理制御部350に送り返すことで効率的な転送を行うことができる。このように、演算処理と転送処理を並列していわゆるパイプライン処理を行うことにより、両処理においてフレーム毎の処理の間の待ち時間を減らすことができ、より高速な画像処理が可能となる。
演算素子400内部での画像処理演算は、以下の通りである。すなわち、必要に応じて、各演算素子400間でそれぞれのレジスタマトリックス401に収容された信号の転送を行い、演算に必要な信号をレジスタマトリックス401からAラッチ402とBラッチ403に読み出し、ALU404で所定の演算を行い、計算結果をレジスタマトリックス401を介して演算処理部15Bに出力する。並列処理機構14では、上記画像処理演算を全演算素子400において同時に並列処理するため、極めて高速の演算が可能である。演算処理部15Bは、並列処理機構14の計算結果に基づき、必要な画像特徴量を演算し、演算結果を外部回路1000に出力する。なお、並列処理機構14による計算結果は、直接、外部装置1000たる外部コンピュータや他の外部機器へ出力するようにしてもよい。例えば、当該計算結果を、外部機器のオン/オフ信号として利用するようにしてもよい。
次に、第8図〜第9図を参照して、本センサ装置10による画像入力から、転送、及び、演算終了までの一連の視覚センサ処理について説明する。
制御回路15のCPU150は、画像取り込み制御部300(第4図)を制御することで、リセット信号Rの有為/非有為と水平同期信号Viを順次切り替え、もって、受光素子アレイ11の各行j(j=1,…N2)において、各受光素子120i,j(以下、受光素子120(x、y)という)から出力された画像データ(フレームデータ:以下、I(x,y)という)を順番に対応するA/D変換器210を介して並列処理機構14に入力させる(S101)。
送られて来たデータは、対応する各行j内の転送用シフトレジスタ410を次々に転送されていく(S102)。そして、受光素子120に対応する位置(i,j)(以下、(x、y)という)の転送用シフトレジスタ410i,jにデータが転送されるまでこの転送処理を続ける(S103)。
転送が終了したら、転送用シフトレジスタ410から対応する演算素子400i,j(以下、演算素子400(x、y)という)のレジスタマトリックス401へと、当該画素のデータI(x,y)を転送する(S104)。具体的には、第6図に示されるように、複数ビット(この場合、4ビット)で構成されている転送用シフトレジスタ410からレジスタマトリックス401へと1ビットずつ順番にデータを格納していく。次に、S200において、各演算素子400を制御することにより、必要な画像処理を行う。
各演算素子400へとデータを転送した転送用シフトレジスタ410は、各演算素子400がS200の演算処理を行っている間に、次のフレームの処理へと移り(S105)、S101〜S103を実施する。一方、各演算素子400も、その演算処理(S200)が終了すると、次のフレームの処理へと移行し(S106)、次のフレームの画像データが各転送用シフトレジスタ410から演算素子400のレジスタマトリックス401へと転送される(S104)。これを繰り返すことにより、演算素子400は、転送用シフトレジスタ410が次のフレームのデータを転送している間(S101〜S103)に演算処理(S200)を行うことができ、それぞれ無駄な待ち時間を減らすことができる。
次に、各演算素子400が行う画像処理(S200)の実行動作を、「エッジ抽出」を例にとり詳細に説明する。
「エッジ抽出」は画像処理において最も頻繁に利用される処理である。最も簡単に演算する場合は、左方向に隣接する1個の画素の強度値との差分による2近傍演算が用いられる。具体的には、位置(x,y)における入力画像強度をI(x,y)とすると、求めるエッジ抽出画像の画像強度データの値I‘(x,y)は、以下の式で表わされる。
I‘(x、y)= |I(x、y) − I(x−1,y)|
かかるエッジ抽出を行う場合には、S200の画像処理ステップでは、第9図に示すようなエッジ抽出工程が行われる。なお、この画像処理工程は、全演算素子400において同時に並列処理される。
まず、4近傍入力端子から左隣の隣接画素のデータI(x−1,y)を本演算素子(x、y)のレジスタマトリックス401へと転送/格納する(S210)。次に、レジスタマトリックス401に現在格納されているI(x,y)とI(x−1,y)のデータをそれぞれ下位ビットからAラッチ402とBラッチ403にそれぞれ転送し(S211)、ALU404により両者の差分を計算する(S212)。計算結果は一旦レジスタマトリックス401に格納する(S213)。計算完了後、計算結果を再びAラッチ402へと読み出して(S214)、差分の絶対値をALU404で求める(S215)。計算結果を再度レジスタマトリックス401へと格納する(S216)。絶対値の計算が完了したら、レジスタマトリックス401に格納された計算結果を、制御回路15の演算処理部15Bに出力し、画像処理工程を終了する(S217)。以上の計算処理は全ての演算素子400で同時に並列処理されるため、演算処理が非常に高速に行われる。
計算結果を取得した演算処理部15Bは、当該計算結果に基づき、撮像対象物の重心や変位量、速度、などの全体特徴量の演算を行い、その演算結果に基づいて良否判定を行ったり、その演算結果自体を、外部装置1000たる外部アクチュエータ等への制御信号として出力したりする。
以上のように、本センサ装置10では、画像処理の演算(画像の和、差、積、マッチング)については並列処理機構14で行い、対象物の重心や変位量、速度、などの全体特徴量の演算を制御回路15の演算処理部15Bで行う。
第10図及び第11図は、比較例と本実施形態における、転送処理と演算処理のタイムチャートを比較して示している。比較例では、転送用シフトレジスタ410を設けず演算素子400自身で転送処理を行わせるとすると、第10図に示すように、転送処理を行ったあと演算処理を行い、次の転送処理は演算処理終了まで待機する必要がある。つまり、1フレームの処理を行うのに、(転送処理に要する時間)+(画像処理に要する時間)以上の時間が必要である。これに対して、本実施形態では、転送処理と演算処理にそれぞれ専用の回路を用いて両者を独立して行えるように構成されているので、第11図に示されるように、転送処理後にこのデータの画像処理を行っている間に次の転送処理を実施することができる。すなわち、1フレームの処理を行うのに要する時間は、(転送処理に要する時間)か(画像処理に要する時間)のうち長いほうの時間でほぼ足りることになる。つまり、パイプライン処理による演算処理及び転送処理の高速化が図れる。
上記構成の演算素子400によれば、画像処理ステップS200においては、上記エッジ抽出の他、様々な画像処理を行うことができる。
例えば、4近傍エッジ抽出の場合、位置(x,y)における入力画像強度をI(x,y)とすると、求める4近傍エッジ抽出画像の画像強度データの値I‘(x,y)は、以下の式で表せる。
I‘(x、y)=I(x、y−1)+I(x、y+1)+I(x−1,y)+I(x+1,y)―4I(x、y)
また、4近傍平滑化の場合、求める4近傍平滑画像の画像強度データの値I‘(x,y)は、以下の式で表せる。
I‘(x、y)=(4I(x、y)+ I(x−1,y)+ I(x+1,y) +I(x、y−1)+I(x、y+1))/8
上記アルゴリズムの他、画像処理でよく用いられるアルゴリズムのいくつかについて、本実施形態により演算を行った場合のステップ数、処理時間の例を表1に示す。
Figure 0004458678
表1から明らかなように、本実施形態では、一般的な画像処理(例えば、平滑化、細線化、コンボリューション、相関、マスク処理)演算を完全並列処理により、非常に高速で行うことができる。表1に示される演算時間は、転送用シフトレジスタ410による画像データの転送時間は含んでいない。転送用シフトレジスタ410を設けていない場合は、この演算時間に加えて画像データを各演算素子400に転送する時間が余分に必要となる。転送データ速度は、A/D変換器210の変換スピードによって制限されるが、これを例えば、1ビット当たり1マイクロ秒とすると、128x128画素x8ビットの画像データを128列で並列転送する場合に要する時間は、128(画素)x8(ビット)x1(マイクロ秒/ビット)=1ミリ秒となり、演算処理に要する時間と比較して数倍の時間が必要となることから、リアルタイムでの画像処理が困難になる。本実施形態では、この転送を演算処理と並行して行うことにより、この画像データについても1ミリ秒程度での処理が可能となる。したがって、これまでの視覚センサ装置では演算処理速度、転送速度が遅いために制限されていたFAロボット制御などの分野への応用が可能になる。
本実施形態が目指しているのは、実用的な高速性と十分な解像度を有する画像処理システムである。FAシステムにおけるロボット制御には、受光素子120を128x128個以上配列する解像度が必要とされる。本実施形態によれば、受光素子アレイ11と並列処理機構14を分離でき、それぞれの集積度を高められるため、この解像度を十分に実現できる。また、処理速度の目安としては、ロボットのアクチュエータの速度(1〜10ミリ秒)が必要である。本実施形態では、この処理速度は、前述したようにA/D変換器210におけるA/D変換処理速度によって決まるが、以下に述べるように、十分に高速化が可能である。
例えば、本実施形態での1画素あたりのA/D変換速度は、1ビットあたり1マイクロ秒となる。例えば、入力アナログ信号を6ビット(64階調)でデジタル変換する場合には、1行分の128個の受光素子120の出力信号をデジタル変換するのに必要な時間は、6マイクロ秒x128=0.768ミリ秒となる。画像処理については、各受光素子に1対1に対応して演算素子が配置され、全演算素子で並列処理されるため、表1に示すように、0.4ミリ秒以下でほとんどの演算処理が行える。さらに、演算処理と転送処理を並行して行えるので、それぞれの処理の空き時間を減らすことができ、処理全体の時間を短縮することができる。
また、前述したように本実施形態のA/D変換器210は、最上位ビットからA/D変換を行う。したがって、所望のビット数まで変換した時点で、リセット信号Rを送出し、次の光信号のA/D変換に移ることにより、A/D変換の階調を変更することができる。これにより、より高速で、複雑な処理を行うことが可能となる。例えば、移動物体のトラッキングをするような場合に、物体が高速で移動している場合は、画像を1ビットの2値レベルで演算処理するように制御すれば、転送時間は、前述の6ビットの時の6分の1の0.128ミリ秒に短縮され、高速フィードバック制御に適用できる。逆に、低速で動いている場合には、階調を上げることにより、より精度を向上させて、追従させることができる。
ただし、A/D変換器から出力されるビット長を可変にする場合は、転送用シフトレジスタでは入力データのビット長を調整して固定長にする必要がある。なぜなら、例えば、通常のデータ長が8ビットの場合の転送用シフトレジスタラインには、固定長で8ビットx行内画素数(N1)のシフトレジスタが用いられる。そして、8ビットずつ区切った個々のシフトレジスタがそれぞれの位置に対応する各画素用の転送用シフトレジスタとして機能する。したがって、ビット長を8ビットに合わせておかないと、画像データが対応する位置の転送用シフトレジスタに正しく転送されないことになるからである。このため、転送用シフトレジスタに送る時点でダミー信号を加えて合計8ビットになるようにすることでデータが正しく転送される。
以上説明したように、本実施形態のセンサ装置10では、受光素子アレイ11の各行の受光素子120に対して1個のA/D変換器210を対応させたA/D変換器アレイ13と、受光素子120と1対1に対応する演算素子400と転送用シフトレジスタ410とからなる並列処理機構14とを備えている。このように受光素子120と1対1に対応する演算素子400を有しているので、並列処理により近傍画素間の画像処理演算を高速で行うことができる。さらに、転送用シフトレジスタ410を演算素子400に対応して設けているので、転送処理と独立して演算処理が行え、演算処理及び転送処理を効率良く行うことができる。また、転送処理と演算処理を並列に行うことができることから、各処理の待ち時間を減らし、より高速の画像処理を行うことができる。
さらに、A/D変換器210を1行ごとに設けているので、A/D変換器210を受光素子120毎に設けた場合に比較して、受光素子120と演算素子400間の伝送線の数が少なくて済み、受光素子120と演算素子400とを別々に製造、配置することが容易にできる。このため、両者とも集積度を最適にすることができ、多画素数の高速視覚センサ装置10を容易に製作できる。なお、このようにA/D変換器210を行ごとに設けたため、A/D変換の処理速度により、全体の処理速度が制限を受けるが、FAロボット制御に十分な画素数といわれる128x128画素の映像を64階調で処理する場合でも、ほとんどの画像処理が1ミリ秒以下で終了し、従来にない高速処理が可能である。したがって、本実施形態の多画素数/高速視覚センサ装置10は、簡単な回路構成を有しながらも、複数の画像間でも効率的に高速演算処理が可能となっている。
次に、第12図〜第18図を参照して、本発明の第2の実施形態について説明する。
第1の実施形態では、受光素子アレイ10を1つ用いているが、第2の実施形態では、複数の受光素子アレイ10を用い、当該複数の受光素子アレイ10からの信号を一つの並列処理機構14に導いて演算処理を行うようにしている。
第12図は、2個の受光素子アレイを用いて立体視を行う本実施形態の高速視覚センサ装置10の概略図であり、第13図は、その詳細ブロック図である。
第12図に示されるように、対象物2000aの像は、異なる位置に配置されたレンズ501L、501Rを介して、それぞれ、左目に対応する受光素子アレイ11Lと右目に対応する受光素子アレイ11Rに導かれ、単一の並列処理機構14により処理されるようになっている。ここで、それぞれの受光素子アレイ11L、11Rは、図中に矢印Tで示されているデータ転送方向が一致し、かつ、データ転送方向に対応する画素の位置を、水平方向に、光学基線長bだけずらして配置されている。すなわち、第13図に示すように、受光素子アレイ11L及び11Rとは、互いの各水平受光部110が同一の水平方向に延びるように、配置されている。
より詳しくは、第14(A)図に示すように、ワールド座標系(X、Y、Z)において、右目用受光素子アレイ11Rの前方に右目用レンズ501Rが配置されており、両者により右目用カメラ500Rが構成されている。同様に、左目用受光素子アレイ11Lの前方に左目用レンズ501Lが配置されており、両者により左目用カメラ500Lが構成されている。レンズ501Rと501Lとは、その焦点距離fが等しく、その光軸(Z方向)が互いに平行になるように、XY平面上に配置されている。なお、レンズ501Lのレンズ中心をワールド座標系(X、Y、Z)の原点とする。これらレンズ501R及び501Lは、X方向に互いにbだけずれて配置されている。また、受光素子アレイ11L及び11Rが、対応するレンズ501L、501Rの後方にfだけ離れて配置されている。したがって、これら受光素子アレイ11L、11Rも、上記XY平面に平行に、かつ、互いにX方向にbだけずれて配置されている。また、受光素子アレイ11L及び11Rの転送方向Tは、共に、X方向に向くように配置されている。
制御回路15には、第12図に示すように、一つのフレームで両受光素子アレイ11L、11Rが取得した画像間の位置ずれ量J(並列処理機構14により演算した結果)を蓄積記憶しておく画素ずれ量記憶装置15Cが備えられている。
第13図に示すように、受光素子アレイ11R及び11Lは、それぞれ、第1実施形態の受光素子アレイ11と同一の構成を有している。同様に、A/D変換器アレイ13R及び13Lも、それぞれ、第1実施形態のA/D変換器アレイ13と同一の構成を有している。
並列処理機構14には、第1の実施形態同様、各受光素子アレイ11R、11LのN1個xN2個の受光素子120i,j(i=1〜N1,j=1〜N2)に1対1に対応して、演算素子400i,j(i=1〜N1,j=1〜N2)が、N1列xN2行、2次元状に配列されている。このN2個の演算素子行j(j=1〜N2)に1対1に対応して、N2個の右用転送用シフトレジスタライン420R(j=1〜N2)と、N2個の左用転送用シフトレジスタライン420L(j=1〜N2)とが設けられている。
ここで、N2個の右用転送用シフトレジスタライン420Rは、それぞれ、A/D変換器アレイ13RのN2個のA/D変換器210に接続されている。また、N2個の左用転送用シフトレジスタライン420Lは、それぞれ、A/D変換器アレイ13LのN2個のA/D変換器210に接続されている。
また、第1実施形態の転送用シフトレジスタライン410と同様、各右用転送用シフトレジスタライン420Rには、複数ビット(この場合、4ビット)の右用転送用シフトレジスタ410Ri,j(i=1〜N1)が、N1個、直列接続されている。同様に、各左用転送用シフトレジスタライン420Lには、複数ビット(この場合、4ビット)の左用転送用シフトレジスタ410Li,j(i=1〜N1)が、N1個、直列接続されている。各演算素子400i,j(i=1〜N1,j=1〜N2)が、当該対応する右用転送用シフトレジスタ410Ri,j(i=1〜N1,j=1〜N2)、及び、対応する左用転送用シフトレジスタ410Li,j(i=1〜N1,j=1〜N2)の両方に接続されている。
このように、本実施形態においては、並列処理機構14には、それぞれの受光素子アレイ11R及び11Lの受光素子120R、120Lに1対1に対応する左用及び右用転送用シフトレジスタ410R、410Lを備えており、対応する受光素子120Rと120Lのペアに対して1個の演算素子400が対応する形で配置されている。したがって、各々の演算素子400に対して、左及び右用転送用シフトレジスタ410L、410Rが1組ずつ配置されている形になる。制御回路15、インストラクション/コマンドバス16の構成は、制御回路15に画素ずれ量記憶装置15Cが追加されている点、及び、制御回路15が各転送用シフトレジスタ410R、410Lの転送動作を制御する点を除き、基本的に第1図に示される実施形態と同一である。
この実施形態では、右目用受光素子アレイ11Rの各受光素子120Rで得られた画像信号は、A/D変換器210Rを経て右目画像転送用シフトレジスタ410Rに送られる。一方、左目用受光素子アレイ11Lの各受光素子120Lで得られた画像信号は、A/D変換器210Lを経て左目画像転送用シフトレジスタ410Lに送られる。この転送動作は独立して行われ、各転送用シフトレジスタ410L、410Rに転送された左目と右目の画像信号は演算素子400によって処理される。ここで、各受光素子120R、120Lの位置情報等を基にして所定の演算を行うことにより、対象物2000aの3次元計測を行うことができる。
ステレオ視による3次元計測では、奥富正敏著「ステレオ視」(「コンピュータビジョン」、松山他編、新技術コミュニケーションズ、1998年6月発行、123〜124頁)に開示されているように、画像マッチングと三角測量の原理に基づいて演算を行なう。
以下、この立体視システムによる計測物体までの距離の求め方の概略を説明する。
まず、画像マッチング処理を行い、右目画像PRと左目画像PL中の画像の一致点を求める。ここで、右目画像PRと左目画像PLのそれぞれのワールド画像座標系(xR、yR)及び(xL、yL)を、第14(A)図のワールド座標系(X、Y、Z)に対して、第14(B)図のように定める。なお、撮像対象2000aが、当該ワールド座標系(X、Y、Z)において第14(B)のように位置しているとする。次に、右目画像PRのワールド座標系で表したある位置(xR,yR)を中心とした所定の小領域(xR±wxR,yR±wyR)を定め、左目画像PL中からこれと同じ大きさの小領域を切り出し、両画像について差を求め、最も差が小さくなる領域のワールド座標系で表した中心位置(x、y)を求める。これが右目画像PRの位置(xR,yR)に対する左目画像PLの一致点である。このときのそれぞれの領域の差、つまり位置ずれ量(xR−x、yR−y)が視差dとなる。ここで、カメラのずれ方向と垂直な方向については、この位置ずれはほとんど生じないので、本実施形態のように、x方向に左右のカメラをずらした場合は、yRはyにほぼ等しく、従って、視差dはxR−xにほぼ等しくなる。この場合、空間中にある1点P(X、Y、Z)が、各々の画像上で、(x、y)、(xR、yR)に投影されていることになり、以下の数式が成立する。
Z=bf/d
ここで、fは焦点距離、bは基線長(左右のカメラ500L、500R間の距離)、及び、dは視差(xR−x)である。したがって、f、bが既知の条件では、撮像対象のもとの3次元位置を再現することができる。
このように、両方のカメラの焦点距離をf、光学中心間の距離である基線長をbとすると、計測する物体までの距離ZがZ=bf/dにより求められることがわかる。
ここで、複数のカメラ500L、500Rのそれぞれで取得した画像中から一致する画像を如何に効率良く探し出せるかが、3次元計測における処理速度向上の上で問題となる。本実施形態によれば、第12図に示されるように、左右の受光素子アレイ11L、11Rの位置は、対応する画素たる受光素子120が、データ転送方向(左右(行)方向)Tと同一の方向に沿ってずらされて配置されている。この結果、左右の受光素子アレイで取得した画像中の画面における特定の画像の位置は、それぞれの画像中では左右にずれた位置に配置されることになる。したがって、一方の画像を左右方向にずらしていきながら、両画像の差分をとり、その差が最も小さい位置、つまりマッチングがとれる画素ずれ量を検出することで、3角法により対象物の位置検出を行なうことが可能である。
さらに、本実施形態では、左右の画像がそれぞれ独立の転送用レジスタ410L、410Rにより転送されるので、差分の演算中に次の演算用に画像をずらしておくことができ、演算処理を効果的に行なうことができる。
さらに、前のフレームでの位置ずれ量の演算結果Jを画素ずれ量記憶装置15Cに保持しておき、例えば、前回のフレーム演算の際に左右の画素で15画素分の位置ずれが検出されている場合は、この15画素分の位置ずれJを基準として、今回のフレーム演算での位置ずれ量は15画素近傍であると推定して、その範囲から先に差分演算を行なうことが好ましい。この際に、左右の画像に所定の画素ずれを起こさせるためには、(1)左右のカメラのタイミングをずらす(2)カメラと並列処理機構の間にバッファを設ける(3)転送用レジスタを制御して一方の画像のみ画素ずれをおこさせた状態で転送を行なう、といった手法を採ることができる。これにより、前フレームでマッチングがとれた状態から演算をスタートさせることができるので、次のフレームでの正確な画素ずれ量を求めるまでの演算時間を短縮することが可能となる。
以下、本実施形態のセンサ装置10の動作の一例を、第15図〜第16図のフローチャートを参照して、説明する。なお、この例では、左右の画像に前回のフレームで検出された所定の画素ずれを起こさせるために、上記(3)転送用レジスタを制御して一方の画像のみ画素ずれをおこさせた状態で転送を行なう手法が採られている。
まず、S301において、左右の画像L、Rをそれぞれの受光素子アレイ11L、11Rで取得し、対応するA/D変換器アレイ13L、13Rにてデジタルデータに変換する。次に、S302において、左画像Lを、左用転送シフトレジスタ410Lで、対応する位置(x、y)まで転送する。すなわち、左転送用シフトレジスタ410Lに、転送開始信号により左画像データの転送を開始させ、(行内全素子数(N1)xアナログレベル)分だけビットシフトによる転送を行わせる。同時に、右画像Rを、右用転送シフトレジスタ410Rで、前フレームで得られた画素ずれ値J(画素ずれ量記憶装置15Cに記憶されたもの)分ずれた位置(x−J、y)まで転送する。すなわち、右転送用シフトレジスタ410Rに、転送開始信号により右画像データの転送を開始させ、((行内全素子数(N1)―J)xアナログレベル)分だけビットシフトによる転送を行わせる。
次に、S303において、上記転送位置で、左右画像データL(x、y)及びR(x−J、y)を両転送用シフトレジスタ410L、410Rから対応する位置(x、y)の演算素子400のレジスタマトリックス401へデータ転送する。
次に、S400において、左右画像間のマッチング処理を行う。
当該左右画像マッチング処理では、第16図に示すように、まず、j=Jと初期化した(S410)後、左画像のうちの一つのブロック(例えば、3x3画素や、8x8画素等)を参照画像として、右画像の中のどの部分と一致度が高いかを、右画像内の現在の対応ブロックとの相関値C(j)(最初はj=J)を演算することで求める。
ここで、相関値C(j)は、以下の式で表される。
C(j)=Σ|L(x、y)−R(x−j、y)|
なお、x、yはブロックに含まれる全ての画素点である。
すなわち、S411で、各画素点(x、y)の演算素子400が、現在格納しているL(x、y)とR(x−j、y)との差分演算を行い(第9図のS211〜S213と同様の処理)、その差分結果の絶対値(以下、D(x、y)とする)を求める(第9図のS214〜S216と同様)。さらに、ブロック内についての総和演算を行い、最終的な相関値C(j)を得る。この総和演算では、各演算素子400は、データ転送(近傍のレジスタマトリックス401間のデータ転送)と和算を繰り返し行う。
例えば、ブロックが3x3画素(8近傍)とすると、総和演算では、まず、左列の差分絶対値データD(x−1,y)を転送し、D(x−1,y)+D(x、y)を演算する。なお、SIMDにより、当該演算が全演算素子400で行われる。次に、右列の差分絶対値データD(x+1,y)を転送し、D(x−1,y)+D(x、y)+D(x+1,y)を演算する。次に、上行のデータを転送して和を求め、 D(x−1,y―1)+D(x、y―1)+D(x+1,y―1)+D(x−1,y)+D(x、y)+D(x+1,y)が得られる。さらに、下行のデータを転送して、D(x−1,y―1)+D(x、y―1)+D(x+1,y―1)+D(x−1,y)+D(x、y)+D(x+1,y)+D(x−1,y+1)+D(x、y+1)+D(x+1,y+1)が求められる。これが、最終的な相関値C(j)となる。ブロックが8x8画素の場合には、さらに上下左右方向からのデータ転送を行いながら上記総和演算を続けることにより最終的な相関値C(j)を求める。
得られた相関値C(j)を、制御回路15の演算処理部15Bに転送格納する。
次に、jを検索範囲内で変更する(S412でNo、S413)。具体的には、右画像のデータRを近傍演算素子400のレジスタマトリックス401間で、右または左方向に転送する。
再び、S411にて、上記相関値C(j)の演算を行う。こうして、右画像のデータRを近傍演算素子400間で転送しながら、全検索範囲について相関値C(j)の演算を繰り返す(S412でNo、S413)。なお、当該検索範囲は、対象物2000aの予測される最高速度、レンズ501R、501Lの縮小倍率、受光素子アレイ11のピクセルピッチなどの条件より定めるが、フレームレートが高速であることから、初期値Jに対し、例えば、左右方向に±1、±2等、小さい範囲とすることができる。
全検索範囲について相関値C(j)が得られると(S412にてyes)、S414に移行する。S414では、演算処理部15Bに現在格納されている全相関値C(j)(例えば、j=J、J−1,J+1)の内の最小値C(j)を選択し、その値jを求める。求められた値jが、当該左画像ブロックの右画像ブロック中のマッチング位置を示す。
こうして、左右画像マッチング処理S400を終了する。
次に、第15図に示すように、S305にて、上記左右画像マッチング処理S400にて得られたj値を、現フレームに対する画素ずれ量Jと設定し、画素ずれ格納装置15Cに格納する。次に、S306で、該左ブロック画像が示す対象物の距離Z=bf/Jを演算する。ここで、bは、左右のカメラ間距離、fはカメラ焦点距離である。
なお、上記左右マッチング処理工程S400のうち、S411〜S413の工程は、プログラム制御部15Aが演算素子400を並列処理制御することにより行われる。一方、S414、S305,S306では、演算処理部15Bが対応する演算を行う。また、上記左右画像マッチング処理S400を受光面11L、11R中の全ブロックについてそれぞれ行うことにより、S305〜S306で、各ブロックイメージが示す対象物までの距離がそれぞれ求められる。
各演算素子400へとデータを転送した右及び左転送用シフトレジスタ410R、410Lは、各演算素子400及び演算処理部15BがS400〜S306の演算処理を行っている間に、次のフレームの処理へと移り(S304)、S301〜S302を実施する。一方、各演算素子400及び演算処理部15Bも、その演算処理(S400〜S306)が終了すると、次のフレームの処理へと移行し(S307)、次のフレームの左右画像データが各転送用シフトレジスタ410L、410Rから演算素子400のレジスタマトリックス401へと転送される(S303)。これを繰り返すことにより、演算素子400及び演算処理部15Bは、転送用シフトレジスタ410L、410Rが次のフレームの左右画像データを転送している間(S301〜S302)に演算処理(S400〜S306)を行うことができ、それぞれ無駄な待ち時間を減らすことができる。
以上のように、本実施形態によるセンサ装置10によれば、前回のフレームで検出された画素ずれ値Jを格納しておくことによって、検索を前フレームのずれ量の位置からはじめることで、探索範囲を小さくして、効率的に探すことが可能となっている。特に、本センサ装置10のように非常に高速なフレームレート(例えば1ミリ秒)にマッチングを行うことが可能なシステムでは、フレーム間で物はほとんど動かない。例えば、時速150kmの対象が4cm動くにすぎない。そのため、左右の画像のずれ量があらかじめわかっていれば、その位置から左右数点のずれた位置を探すことで対象は見つけることができるからである。
また、もし、転送用シフトレジスタ401R、410Lを用いないとすると、演算素子400で両方の受光素子アレイ11R、11Lの画像情報を転送する時間が必要になり、受光素子アレイが1個の場合に比べて転送処理に要する時間が倍以上になり、高速での画像処理が困難になる。しかし、本実施形態によれば、演算素子400で演算処理を行っている間にも、転送用シフトレジスタ410L、410Rにより並列して転送処理を行うことが可能なので、前述の受光素子アレイが1個の場合と同様に高速での画像処理が可能である。受光素子アレイの個数は2個に限られるものではなく、3個以上であってもよい。この場合は、受光素子アレイのそれぞれに対して専用の転送用シフトレジスタを3個以上、それぞれの演算素子に対応させて設ける必要がある。3個以上の受光素子アレイを用いると、死角を減らす効果や、精度を高める効果がある。
第17図、第18図は、複数、ここでは3個の受光素子アレイ(カメラ)11を用いた場合において、転送用シフトレジスタ410を用いない場合(比較例)の転送処理、演算処理のタイムチャートと、本実施形態による転送処理、演算処理のタイムチャートをそれぞれ示している。第17図に示される比較例では、演算素子で画像信号の転送を行うため、各画像信号の転送をそれぞれ行った後に、演算処理を行う必要がある。つまり、(a)のカメラ1の画像信号の転送が終了してから、(b)のカメラ2の画像信号の転送を行い、それが終了した後に(c)のカメラ3の画像信号の転送を行って、全ての転送処理が終了した後に(d)の演算処理を行う。次のフレームの画像信号の転送は、この演算処理が終了するまで行うことはできない。したがって、1フレームの処理に要する時間は、(1つのカメラの転送処理に要する時間)x3+(演算処理に要する時間)以上になる。
一方、本実施形態による場合は、それぞれの演算素子に対して転送用シフトレジスタを受光素子アレイ、つまりカメラに応じた数、(この場合、3個)有するので、それぞれの転送処理を同時に行うことができ、また、演算処理も独立して行うことができる。第18図(a)〜(c)に示されるように、転送用シフトレジスタによるカメラ1〜3の画像信号の転送は同時に行われる。転送されたデータは、演算素子により演算処理される。この演算処理が行われている間に、転送用シフトレジスタは次のフレームの画像データの転送処理を行う。したがって、演算素子は、演算処理を終えて間もなく次のフレームの演算処理を行うことができる。したがって、1フレームの処理に要する時間は、(1つのカメラの転送処理に要する時間)または(演算処理に要する時間)の長いほうの処理時間で足りることになる。本実施形態によれば、多数のカメラを用いた場合でも、処理時間の長時間化を防止でき、高速化が図れる。
次に、複数の受光素子アレイを用いた別の実施形態(第3の実施形態)について、第19図〜第22図を参照して説明する。
第19図は、本実施形態による色画像を認識するための高速視覚センサ装置10の概略構成図であり、第20図はその詳細ブロック図である。
対象物2000bからの画像は、レンズ501を経て、クロスダイクロイックプリズム502によりRGB3原色に分解され、さらにそれぞれの色用のフィルタ503b、503g、503rによって余分な波長信号を取り除かれて、各色用の受光素子アレイ11b、11g、11rに導かれるようになっている。
第20図に示すように、第2の実施形態と同様、受光素子アレイ11r、11g、及び、11bは、第1実施形態の受光素子アレイ11と同一の構成を有しており、A/D変換器アレイ13r、13g、13bも、第1実施形態のA/D変換器アレイ13と同一の構成を有している。第2の実施形態と同様、本実施形態の並列処理機構14にも、各受光素子アレイ11r、11g、11bのN1個xN2個の受光素子120に1対1に対応して、演算素子400が、N1列xN2行、2次元状に配列されている。本実施形態では、このN2個の演算素子行に1対1に対応して、N2個のr用転送用シフトレジスタライン420rと、N2個のg用転送用シフトレジスタライン420g、及び、N2個のb用転送用シフトレジスタライン420bが設けられている。各転送用シフトレジスタライン420r、420g、420bは、それぞれ、対応するA/D変換器アレイ13r、13g、13bに接続されている。また、第2実施形態同様、各転送用シフトレジスタライン420rには複数ビット(この場合、4ビット)のr転送用シフトレジスタ410rが、N1個、直列接続され、各転送用シフトレジスタライン420gには複数ビット(この場合、4ビット)のg転送用シフトレジスタ410gが、N1個、直列接続され、各転送用シフトレジスタライン420bには複数ビット(この場合、4ビット)のb転送用シフトレジスタ410bが、N1個、直列接続されている。各演算素子400が、対応するr転送用シフトレジスタ410r、g転送用シフトレジスタ410g、及び、b転送用シフトレジスタ410bに接続されている。
各受光素子アレイ11r、11g、11bで得られた画像信号は、それぞれ対応するA/D変換器アレイ13r、13g、13bによりデジタル信号に変換された後に、単一の並列処理機構14に導かれて演算処理される。並列処理機構14内では、各演算素子400に対し、3個の転送用シフトレジスタ410r、410g、410bが、対応する受光素子アレイ11r、11g、11bで取得された画像信号を専用に転送する。このようにすることで、第2実施形態の立体視システムと同様に各色用の受光素子アレイ11から送られる画像信号を演算処理に並列して独立して転送処理することができ、高速での画像処理が行える。
本実施例の場合は、演算素子400にはRGBの各色に分離されたデジタル信号が送られてくるので、色補正や色変換等の画像処理を容易かつ高速に行うことができる利点がある。また、RGB以外にも異なる波長領域の画像を取得するフィルタ503等を設けた受光素子アレイ11を複数配置することで、波長特性の分析などにも用いることが可能である。かかる色画像認識は、色情報を持った物体の認識に利用できる。例えば、印刷物のリアルタイム良否判定や、道路から白線を抽出することによる自動走行への応用などが考えられる。本実施形態により、現在の入力画像がテンブレート画像と同一かどうかの判定も高速に実現することができる。
以下、本実施形態の色画像認識の動作について、第21図〜第22図のフローチャートを参照して説明する。
まず、S501にて、RGB画像r(x、y)、g(x、y)、b(x、y)をそれぞれの受光素子アレイ11r、11g、11bの各位置(x、y)から取得し、対応するA/D変換器アレイ13r、13g、13bにてデジタル信号に変換する。次に、S502,S503にて、RGB画像r(x、y)、g(x、y)、b(x、y)を、並列処理機構14内の対応する位置(x、y)まで、RGB用転送レジスタ410r、410g、410bにて転送する。すなわち、各転送用シフトレジスタ410r、410g、410bに対し、転送開始信号により、対応する色画像データの転送を開始させ、(行内全素子数(N1)xアナログレベル)分だけビットシフトによる転送を行わせる。次に、S504にて、転送位置(x、y)で、RGB画像データr(x、y)、g(x、y)、b(x、y)を対応する演算素子400のレジスタマトリックス401へデータ転送する。
次に、S600にて、RGBテンプレートマッチング処理を行う。
なお、各RGB用の参照画像データTr(x、y)、Tg(x、y)、Tb(x、y)が、予め、対応する画素(x、y)の演算素子400のレジスタマトリックス401に格納されている。この参照画像データは、理想的な対象物(例えば印刷物)を撮影して得られたフレーム画像(テンプレート)である。RGBテンプレートマッチング処理では、この参照データに対し入力画像データのマッチング位置を求める。
具体的には、当該RGBテンプレートマッチング処理S600では、第22図に示すように、まず、S610において、各RGB毎に、参照画像のうちの一つのブロック(例えば3x3画素)と入力画像内の現在の対応ブロックとの相関値C(m 、n)(最初はm=0、n=0)を演算する。ここで、r、g、b成分について、相関値Cr(m、n)、Cg(m、n)、Cb(m、n)は、それぞれ、以下の式で表される。
Cr(m,n)=Σ|r(x、y)−Tr(x+m、y+n)|
Cg(m,n)=Σ|g(x、y)−Tg(x+m、y+n)|
Cb(m,n)=Σ|b(x、y)−Tb(x+m、y+n)|
ここで、x、yはブロックに含まれる全ての画素点である。また、これら相関値は、各演算素子400において、第2実施形態における相関値C(j)を求めるのと同様の演算により、求められる。
S610においては、さらに、これらrgb成分の相関値の総和Call(m、n)を求める。ここで、相関総和値Call(m、n)は以下の式で表される。
Call(m、n)= Cr(m、n)+Cg(m、n)+Cb(m、n)
なお、この相関総和値Call(m,n)もまた、演算素子400にて求められる。また、得られた相関総和値Call(m,n)を演算処理部15Bに転送格納する。
次に、mまたはnを検索範囲内で変更する(S611でNo、S612)。具体的には、参照画像データTr、Tg、Tbを近傍演算素子400のレジスタマトリックス401間で、上下左右方向のいずれかに転送する。
そして、再び、S610において、上記相関値Call(m、n)の演算を行う。こうして、参照画像Tr、Tg、Tbを近傍演算素子400間で転送しながら、全検索範囲について相関値Call(m、n)の演算を繰り返す(S611でNo、S612)。なお、検索範囲は、対象物の予測される最高画像ずれ、レンズ501の縮小倍率、受光素子アレイ11のピクセルピッチなどの条件より定める。
全検索範囲について相関値Call(m、n)が得られると(S611にてyes)、S613で、現在演算処理部15B内に格納されている全相関値Call(m、n)の中の最小値であるCall(m、n)に対する(m、n)を求める。求められた値(m、n)がマッチング位置を示す。以上により、S600のRGBテンプレートマッチング処理を終了する。
次に、第21図に示すように、S506において、得られたm、nに基づいて、画像ずれ量(m+n1/2を演算する。このずれ量が、当該ブロック内の対象画像の理想位置からの位置ずれ量である。なお、上記RGBテンプレートマッチング処理工程S600のうち、S610〜S612の工程は、プログラム制御部15Aが演算素子400を並列処理制御することにより行われる。一方、S613、S506では、演算処理部15Bが対応する演算を行う。また、上記RGB画像マッチング処理S600を、受光面11r、11g、11b中の全ブロックについてそれぞれ行うことにより、各ブロックイメージが示す対象画像の位置ずれ量を求めることができる。
各演算素子400へとデータを転送したr、g、b転送用シフトレジスタ410r、410g、410bは、各演算素子400及び演算処理部15BがS600〜S506の演算処理を行っている間に、次のフレームの処理へと移り(S505)、S501〜S503を実施する。一方、各演算素子400及び演算処理部15Bも、その演算処理(S600〜S506)が終了すると、次のフレームの処理へと移行し(S507)、次のフレームのrgb画像データが各転送用シフトレジスタ410r、410g、410bから演算素子400のレジスタマトリックス401へと転送される(S504)。これを繰り返すことにより、演算素子400及び演算処理部15Bは、転送用シフトレジスタ410r、410g、410bが次のフレームのrgb画像データを転送している間(S501〜S503)に演算処理(S600〜S506)を行うことができ、それぞれ無駄な待ち時間を減らすことができる。
以下、複数の受光素子アレイを用いた更に別の実施形態(第4の実施形態)について、第23図〜第26図を参照して説明する。
第23図は、本実施形態による高速での移動物体の認識を行うシステム10の概略構成図であり、第24図はその詳細ブロック図である。
移動物体2000cからの映像は、レンズ501を経てビームスプリッタ504で2方向に分岐され、それぞれシャッタ505A、505Bを介して受光素子アレイ11A、11Bに導かれるようになっている。制御回路15によりシャッタ505A、505Bを制御することにより、各受光素子アレイ11A、11Bでは、異なる時刻(異なるフレーム)における移動物体2000cの映像が取得されるようになっている。具体的には、受光素子アレイ11Aでは時刻t(フレームt)における画像P(t)が、受光素子アレイ11Bでは時刻t+Δt(フレームt+Δt)における画像P(t+Δt)が取得される。シャッタ505A、505Bを制御することで、Δt(フレームレート)を非常に短い時間に設定することができる。
第24図に示されるように、本実施形態では、第2の実施形態と同様、受光素子アレイ11A及び11Bは、第1実施形態の受光素子アレイ11と同一の構成を有しており、A/D変換器アレイ13A及び13Bも、第1実施形態のA/D変換器アレイ13と同一の構成を有している。第2の実施形態と同様、本実施形態の並列処理機構14にも、各受光素子アレイ11A及び11BのN1個xN2個の受光素子120に1対1に対応して、演算素子400が、N1列xN2行、2次元状に配列されている。このN2個の演算素子行に1対1に対応して、N2個の受光素子アレイ11A用転送用シフトレジスタライン420AとN2個の受光素子アレイ11B用転送用シフトレジスタライン420Bとが設けられている。転送用シフトレジスタライン420A、420Bは、それぞれ、対応するA/D変換器アレイ13A、13Bに接続されている。また、第2実施形態同様、各転送用シフトレジスタライン420Aには複数ビット(この場合、4ビット)の受光素子アレイ11A用転送用シフトレジスタ410Aが、N1個、直列接続されており、各転送用シフトレジスタライン420Bには、複数ビット(この場合、4ビット)の受光素子アレイ11B用転送用シフトレジスタ410Bが、N1個、直列接続されている。各演算素子400が、対応する転送用シフトレジスタ410A及び転送用シフトレジスタ410Bに接続されている。
かかる構成のもと、受光素子アレイ11A及び11Bで取得された二つの画像は、それぞれ、対応するA/D変換器アレイ13A,13Bでデジタル信号に変換された後、単一の並列処理機構14に送られ、それぞれ専用の転送用シフトレジスタ410A、410Bを用いて、演算素子400へ転送された後に、所定の演算処理が行われる。これにより、従来のフレームレートで取得した画像間では認識が困難であった高速での移動物体の動きを認識することが可能である。さらに、従来のフレームレート以上の遅れのない画像処理が可能となる。
以下、本実施形態の動作について、第25図〜第26図のフローチャートを参照して、説明する。
なお、本実施の形態では、あるフレームにおいて当該時刻tの画像を転送し、つぎのフレーム(t+Δt)を転送している間に、時刻t及びその前の時刻(t―Δt)の二つの画像を演算して、時刻tでの移動物体の速度を求める。そして、その次のフレーム(t+2Δt)を転送している間に、時刻(t+Δt)及び時刻tの2つの画像を演算して時刻t+Δtでの速度を求めるようになっている。
具体的には、まず、S701で、時刻tにおいて、tフレーム画像t(x、y)を、対応するカメラ11Aから取得する。次に、S702、S703において、t時刻フレーム画像を、対応する転送シフトレジスタ410Aにて、対応する位置(x、y)の演算素子400まで転送する。次に、S704で、当該転送位置(x、y)で、画像データt(x、y)を転送シフトレジスタ410Aから演算素子400へデータ転送する。なお、当該演算素子400には、すでに、前回のフレーム、すなわち、t―Δt時刻においてカメラ11Bにて取得されたt―Δt時刻フレーム画像t‘(x、y)が、対応する転送シフトレジスタ410Bにて転送され格納されている。
次に、S800にて、Δt時間画像間マッチング処理を行う。
第26図に示すように、Δt時間画像間マッチング処理では、t時刻画像のうちの一つのブロック(例えば3x3画素)が、t―Δt時刻画像の中のどの部分と一致度が高いかを、t―Δt時刻画像内の対応ブロックとの相関値C(m、n)(最初はm=0、n=0)を演算することで求める。
ここで、C(m,n)は以下の式で表される。
C(m、n)=Σ|t‘(x、y)−t(x+m、y+n)|
ここで、x、yはブロックに含まれる全ての画素点である。なお、相関値C(m、n)は、第2実施形態の相関値C(j)と同様に演算することができる。得られた相関値C(m、n)を、演算処理部15Bに転送格納する。
次に、m、nを検索範囲内で変更する(S811でNo,S812)。具体的には、t時刻画像データを近傍演算素子400のレジスタマトリックス401間で、上下左右方向のいずれかに転送する。
そして、S810において、再び、上記相関値C(m、n)の演算を行う。こうして、t時刻画像データを近傍演算素子400間で転送しながら、全検索範囲について相関値C(m、n)の演算を繰り返す(S811でNo,S812)。なお、検索範囲は、対象物の予測される最高速度、レンズ501の縮小倍率、受光素子アレイ11A,11Bのピクセルピッチなどの条件より定めるが、本機構が高速フレームレートを実現できること、すなわち、シャッタ時間間隔Δtを短く設定することにより、例えば、m、nとも、―1,0,+1という小さい範囲とすることができる。
全検索範囲について相関値C(m、n)が得られると(S811にてyes)、S813にて、演算処理部15Bに現在格納されている全相関値C(m、n)(m=―1,0,+1,n=−1,0,+1)の中で最小値であるC(m、n)に対する(m、n)を求める。求められた値(m、n)が、当該t時刻画像中のブロックのt―Δt時刻画像中のマッチング位置を示す。
こうして、Δt時間画像間マッチング処理(S800)が終了する。
次に、第25図に示すように、S706において、得られたm、nに基づいて、ずれ量(m+n1/2を演算する。このずれ量が当該ブロック内の対象画像のずれ量である。当該ずれ量より、対象物体の速度を演算する。なお、上記Δt時間画像間マッチング処理工程S800のうち、S810〜S812の工程は、プログラム制御部15Aが演算素子400を並列処理制御することにより行われる。一方、S813、S706では、演算処理部15Bが対応する演算を行う。また、上記Δt時間画像間マッチング処理(S800)を、受光面中の全ブロックについてそれぞれ行うことにより、S706において各ブロックイメージが示す対象のΔt間の位置ずれ量及び速度を求めることができる。
以上のようにS800〜S706で、時刻t及び時刻t―Δtの画像間の演算処理が行われている間、受光部11B及び対応する転送用シフトレジスタ410Bは、次のフレーム(時刻t+Δt)の処理へと移り(S705)、S701〜S703を実施することで、時刻t+Δtにおける画像の並列処理機構14への転送を行う。一方、各演算素子400及び演算処理部15Bも、その時刻t及び時刻t―Δt画像間の演算処理(S800〜S706)が終了すると、次のフレーム(時刻t+Δt)の処理へと移行し(S707)、次のフレーム(時刻t+Δt)の画像データが対応する転送用シフトレジスタ410Bから演算素子400のレジスタマトリックス401へと転送される(S704)と、時刻t及び時刻t+Δtの画像間の演算処理を行う(S800〜S706)。このように、受光素子アレイ11A,11Bでフレーム画像入力を交互に繰り返しつつ、同時に、連続する2つのフレーム画像間の演算処理を繰り返すようになっている。このため、演算素子400及び演算処理部15Bは、転送用シフトレジスタ410Aまたは410Bが次のフレーム(時刻)の画像データを転送している間(S701〜S703)に演算処理(S800〜S706)を行うことができ、それぞれ無駄な待ち時間を減らすことができる。
上記本実施形態のセンサ装置10は、例えば、自動追尾システムに応用可能で、マッチングした画像の位置に対して受光アレイ11A,11Bを載置したカメラ台(外部機器)1000を制御するようにすることができる。
なお、上記説明では、2個の受光素子アレイを用いる場合について説明したが、もちろん受光素子アレイは3個以上あってもよい。その場合は、並列処理機構14には、それぞれの受光素子アレイ専用の転送用シフトレジスタを設ける必要がある。
以上、第2〜第4実施形態のセンサ装置10によれば、複数の受光素子アレイ11を用いる場合、それぞれの受光素子アレイ11に対して専用の転送用シフトレジスタ410を設けたため、それぞれの受光素子アレイで取得した各画像の転送処理と演算処理を並列して行うことができ、効率的に転送を行うことができる。したがって、上述のように、立体視、色画像処理、高速移動物体認識の処理などに特に好適となっている。
以下、本発明の第5の実施形態について第27図〜第32図を参照して説明する。
各種の画像処理においては、入力画像と異なる画像データや画像処理のパラメータなど、入力画像の画像データとは別のデータが必要とされる。本実施形態は、かかる別のデータの転送をも含めた各種の画像処理演算を、より高速に処理することを可能としたものである。
第27図に、本実施形態の高速視覚センサ装置10の構成図を示す。本実施形態の高速視覚センサ装置10は、第1実施形態の高速視覚センサ装置10(第1図)とは、データバッファ/データ生成装置17を備えた点、及び、当該データバッファ/データ生成装置17からの情報を各演算素子400に転送するための情報転送用シフトレジスタ411を並列処理機構14内に備えた点を除き、同一である。
より詳しくは、本実施形態の並列処理機構14では、N2個の演算素子行に1対1に対応して、N2個の画像転送用シフトレジスタライン420の他に、N2個の情報転送用シフトレジスタライン430が設けられている。当該N2個の情報転送用シフトレジスタライン430は、データバッファ/データ生成装置17に接続されている。また、画像転送用シフトレジスタライン420同様、各情報転送用シフトレジスタライン430には、複数ビット(この場合、4ビット)の情報転送用シフトレジスタ411が、N1個、直列接続されている。各演算素子400が、対応する画像転送用シフトレジスタ410の他、当該対応する情報転送用シフトレジスタ411に接続されている。
データバッファ/データ生成装置17は、制御回路15の指示により、画像処理演算に必要な所定の外部データ(演算データ及び/または制御データ)を情報転送用シフトレジスタ411に送受信するためのものである。ここで、演算データとは、例えば、係数データ等、画像処理演算に必要なデータである。制御データとは、例えば、ある演算をする/またはしないといった、演算の制御内容を示すデータである。情報転送用シフトレジスタ411は、対応する演算素子400に、データバッファ/データ生成装置17から受信した外部データを転送する。
なお、データバッファ17は、第28図に示したように、並列処理機構14と同一の基板上に形成しても、あるいは、制御回路15と同一の基板上に形成してもよく、あるいはいずれかとともに集積化してもよい。
本実施形態によれば、第29図に示すように、各演算素子400に対し、画像データ転送用シフトレジスタ410とは別に情報転送用シフトレジスタ411が設けられている。したがって、データバッファ/データ生成装置17は、制御回路15からの指示により、処理内容に応じた制御用データ及び/又は演算用データを準備し、画像データの転送と並行して、これらのデータを転送用シフトレジスタ411を介して、それぞれの受光素子120に対応する演算素子400のレジスタマトリックス401へと転送する。転送用シフトレジスタ411自体の動作は、転送用シフトレジスタ410とほぼ同じであるので、その詳細な説明は省略する。
本実施形態では、第1〜4の実施形態と同様、すべての演算素子400において同等の演算を行うSIMDと呼ばれる方式のほか、制御データ転送用のシフトレジスタ411を用いて、各演算素子400に一律でない制御データを転送することにより、演算素子ごと、つまり画素ごとに違う演算をさせて、より柔軟性のある処理を行うことが可能である。
以下に、こうした制御データ転送用のシフトレジスタ411を用いた処理の実例を詳細に説明する。例えば、人間の目の機能として「画像の中心部分は高解像度で観察し、周辺部分は低解像度で観察したい」という機能があるが、これに相当する画像処理を行う場合を例に説明する。
こうした処理は、中心部分と周辺部分で処理内容を変えたり、重みづけを変えたりすることで実現できる。
例えば、解像度を周辺部分で低くするには、スムージングという下記の4近傍演算を行うことが考えられる。
Figure 0004458678
ここで、I(x,y)は画素位置(x,y)の入力画像データであり、I‘(x,y)が処理後の画素位置(x,y)の画像データである。D1〜D6は、重み付け平均の重み変数である。これらの重み変数を各画素毎に変えることでスムージングの度合を変えることができる。つまり、スムージングの必要がない中心部分では、例えば、D1=1、D2〜D5=0とし、周辺部分では強いスムージングをするため、例えば、D1=2、D2〜D5=1とする。そして、滑らかなスムージングが行われるよう画素位置に応じて重み変数を設定してデータバッファ17に格納しておく。計算時には、これらの変数を制御データ転送用シフトレジスタ411を介して各演算素子400に転送することで、画素毎に異なる演算を行わせることができる。
このように、各画素毎に異なったフィルタ関数を用いた演算が可能となるため、解像度よりも高速演算を重視する場合には、例えば、2x2=4画素毎に画像データを加算平均した後、縦方向エッジ、横方向エッジ、右斜め、左斜めのエッジ抽出を4画素にそれぞれ行わせて、四方向のエッジ検出を同時に検出することも可能となる。
以下、本実施形態のセンサ装置10の動作を、第30図のフローチャートを参照して説明する。
まず、S901では、受光素子アレイ11からの画像データを、A/D変換器アレイ13を介して、並列処理機構14へ出力させる。同時に、データバッファ/データ生成装置17に、演算コマンドを並列処理機構14へ出力させる。
ここで、演算コマンドは、3x3マスクの重み付けを示しており、例えば、中心部分は高解像度、周辺部分は低解像度なフィルタリングをさせたい場合、中心部に転送すべき重み付けマスクは、自分自身の画素のみ8倍するものであり、周辺部に転送すべき重み付けマスクは、上下左右の画素とのスムージングを行うものとする。具体的には、データバッファ/データ転送装置17は、予め、2種類のマスクデータ:マスクA=(0,0,0,0,8,0,0,0,0)、及び、マスクB=(0,1,0,1,4,1,0,1,0)を準備している。マスクAは、自分自身の画素のみ8倍するものであり、マスクBは、上下左右の画素とのスムージングを行うものである。並列処理機構14が128x128個の演算素子400を有しているとする。すなわち、各演算素子の座標(x、y)が、x=0〜127,y=0〜127であるとする。この場合、マスクAは、並列処理機構14の中央部分に配列されている演算素子400、具体的には、その座標位置(x、y)がx=32〜95かつy=32〜95である演算素子400に対して使用されることになる。一方、マスクBは、並列処理機構14の周辺部分、具体的には、座標位置(x、y)がx=0〜31または96〜127かつy=0〜31または96〜127の演算素子400に対して使用されることになる。
S902〜S903では、A/D変換器アレイ13からの画像データI(x,y)が、転送用シフトレジスタ410を次々と転送され、対応する位置(x、y)の演算素子400の位置まで転送される。同時に、データバッファ/データ生成装置17からのマスクA及びマスクBが、情報転送用シフトレジスタ411を次々と転送され、対応する位置(x、y)の演算素子400の位置まで転送される。ここで、マスクAは、座標位置(x、y)(32≦x≦95かつ32≦y≦〜95)に転送され、マスクBは、座標位置(x、y)(0≦x≦31または96≦x≦127、かつ、y=0≦y≦31または96≦y≦〜127)に転送される。
上記転送が終了すると、S904において、画像データI(x,y)が、転送用シフトレジスタ410から対応する演算素子400のレジスタマトリックス401へ転送される。次に、S905において、マスクデータAまたはBが、情報転送用シフトレジスタ411から対応する演算素子400のレジスタマトリックス401へ転送される。
次に、S907で、各演算素子400は、8近傍の入力画像データI(x−1,y−1)、I(x,y−1)、I(x+1,y−1)、I(x−1,y)、I(x+1,y)、I(x−1,y+1)、I(x,y+1)、及び、I(x+1,y+1)を受け取った後、S905で転送格納されたマスクAまたはBを使用して、これら8近傍入力画像データと自身の入力画像データI(x、y)に対して、以下の演算を行う。
I‘(x,y)= mask(0)xI(x−1,y−1)
+ mask(1)xI(x,y−1)
+ mask(2)xI(x+1,y−1)
+ mask(3)xI(x−1,y)
+ mask(4)xI(x,y)
+ mask(5)xI(x+1,y)
+ mask(6)xI(x−1,y+1)
+ mask(7)xI(x,y+1)
+ mask(8)xI(x+1,y+1)
I“(x,y)= I‘(x,y)/8
ここで、中央部分に位置する演算素子400では、マスクA=(0,0,0,0,8,0,0,0,0)が転送されているので、 mask(0)〜 mask(3)= mask(5)〜 mask(8)=0,及び、mask(4)=8として演算が行われる。また、周辺部分に位置する演算素子400では、マスクB=(0,1,0,1,4,1,0,1,0)が転送されているので、 mask(0)、mask(2)、mask(6)、mask(8)=0, mask(1)、mask(3)、mask(5)、mask(7)=1,及び、mask(4)=4として、演算が行われる。このように、本実施形態では、画素毎に異なるマスク演算係数を設定した画像処理演算が実現できる。
なお、8近傍入力画像データのうち、4近傍入力画像データI(x,y−1)、I(x−1,y)、I(x+1,y)、及び、I(x,y+1)は4近傍の演算素子400のシフトレジスタマトリックスから直接転送される。一方、残りの8近傍入力画像データI(x−1,y−1)、I(x+1,y−1)、I(x−1,y+1)、及び、I(x+1,y+1)は、4近傍の演算素子間の転送を2回繰り返すことで転送される。
得られた処理画像I“(x,y−1)は、演算素子400より演算処理部15Bに出力され、演算処理部15Bにおいて必要な画像処理演算に供される。処理画像I“(x,y)は、中心部は入力画像そのまま、周辺部はスムージングされてぼかされた画像となっている。したがって、この画像を利用すれば、たとえば、人間の目の処理のように、周辺部分をぼけてマッチングさせることが可能となる。このため、演算処理部15Bでは、当該処理画像I“(x,y)に基づいて、画像中の周辺部にある物について大まかなマッチングでおおよその位置と形の把握を行い、その結果に基づいて、受光部11を載置したカメラ載置台たる外部機構1000を移動し当該物をカメラの中心部に持っていき、今度は細かいマッチングを行うことを可能とするような制御動作を行うことができる。
また、各演算素子400へと画像データ及びマスクを転送した転送用シフトレジスタ410及び411は、各演算素子400がS907の演算処理を行っている間に、次のフレームの処理へと移り(S906)、S901〜S903を実施する。一方、各演算素子400も、その演算処理(S907)が終了すると、次のフレームの処理へと移行し(S908)、次のフレームの画像データが転送用シフトレジスタ410から演算素子400のレジスタマトリックス401へと転送され、マスクデータが情報転送用シフトレジスタ411から演算素子400のレジスタマトリックス401へと転送される(S904、S905)。これを繰り返すことにより、演算素子400は、転送用シフトレジスタ410及び411が次のフレーム用のデータを転送している間(S901〜S903)に演算処理(S907)を行うことができ、それぞれ無駄な待ち時間を減らすことができる。
第31図、第32図は、シフトレジスタ410、411を有していない比較例の並列処理機構と、本実施形態の並列処理機構における転送・演算処理の処理タイミングを比較した図である。シフトレジスタ410、411を有しておらず、演算素子で転送処理も行う比較例の並列処理機構では、第31図に示されるように、時分割で画像転送、演算・制御信号転送、画像演算を行う必要がある。したがって、ある画像の処理開始から次の画像の処理開始までの時間である1フレームは、最低でも(画像転送時間)+(演算・制御信号転送時間)+(画像演算時間)が必要となる。
これに対して、本実施形態の並列処理機構では、第32図に示されるように、画像転送、演算・制御信号転送、画像演算のそれぞれを個別に並列して処理することが可能なため、1フレームは、(画像転送時間)、(演算・制御信号転送時間)、(画像演算時間)のうち最も時間のかかる処理時間まで短縮することが可能である。このため、実時間処理を実現することが可能となる。
以上、本実施形態によれば、転送用シフトレジスタ410,411で、それぞれ、入力画像データ、演算・制御データを転送することで転送と演算を並列処理することにより、外部からデータ転送の必要な演算処理も高速で行うことができる。
以下、第6の実施形態について、第33図〜第35図を参照して説明する。
第33図は、本実施形態に係る高速視覚センサ装置10を示すブロック図であり、第34図は、その演算素子400と転送用シフトレジスタ412部分の構成図である。この装置においては、第27図、第29図に示される第5の実施形態と異なり、並列処理機構14の各演算素子行jに対して、1ライン構成の画像データ/コマンド転送用シフトレジスタ440を設けている。すなわち、本実施形態では、N2個の演算素子行に1対1に対応して、N2個の画像データ/コマンド転送用シフトレジスタライン440が設けられている。さらに、それぞれのA/D変換器210から送られてきた入力画像データを一時的に保持する画像バッファ601をN2個配列させた画像バッファアレイ18と、画像バッファ601からの信号とデータバッファ/データ生成装置17からの信号を時分割混合する時分割混合器602をN2個配列させた混合器アレイ19とを備えている。N2個の画像データ/コマンド転送用シフトレジスタライン440は、それぞれ、混合器アレイ19のN2個の時分割混合器602に1対1に対応して接続されている。また、各画像データ/コマンド転送用シフトレジスタライン440には、複数ビット(この場合、4ビット)の情報転送用シフトレジスタ412が、N1個、直列接続されている。各演算素子400が、対応する画像データ/コマンド転送用シフトレジスタ412に接続されている。
この実施形態では、第5の実施形態が画像データと演算・制御データとを別々のシフトレジスタ410、411で転送していたのとは異なり、両者を時分割混合器602で時分割混合して単一のシフトレジスタ412で転送することを特徴としている。現在のシステム全体の速度を決めているのはA/D変換器210の変換速度(1Mbps(bit-per-second))であり、転送用シフトレジスタ412の転送速度(10-100Mbps)から考えれば、1フレーム内での多重転送は十分可能だからである。
第35図に本実施形態の並列処理機構における転送・演算処理の処理タイミングを示す。本実施形態も第32図に処理タイミングを示す第5の実施形態と同様に、画像演算と転送とをパイプライン的に並行処理することが可能なので、第31図に処理タイミングを示した比較例の並列処理機構と異なり、(画像・演算・制御信号転送時間)、(画像演算時間)のうち最も時間のかかる処理時間まで処理時間を短縮することが可能である。このため、実時間処理を実現することが可能となる。
以上のように、第5及び第6実施形態によれば、画像データだけでなく、データバッファ17に格納された演算・制御データを、転送用シフトレジスタを通じて演算素子400に転送することで、高速な演算、適応的な演算が実現できる。演算・制御データは、第5実施形態のように専用の転送用シフトレジスタを用いて転送しても、第6実施形態のように画像データと共通のシフトレジスタを用いて転送を行ってもよい。
本発明に係る高速視覚センサ装置は、前述した実施形態に限定されず、種々の変更が可能である。
例えば、第2〜第4実施形態においても、複数の受光素子アレイ11からの画像データを、複数の転送用シフトレジスタ410を使用して転送する代わりに、第6実施形態の変更例のように、画像バッファアレイ18と時分割混合器アレイ19とを用いて、単一の転送用シフトレジスタ412を時分割使用して転送するようにしても良い。
また、上述の第1〜第6実施形態では、A/D変換器210がチャージアンプ221を含む構成となっているが、 A/D変換器210とチャージアンプ221とを別体とし、第36図のように、N2個のチャージアンプ221からなるアンプアレイ12を受光素子アレイ11に接続させ、 さらに、N2個のA/D変換器210からなるA/D変換器アレイ13を当該アンプアレイ12と並列処理機構14との間に設けるようにしても良い。この場合には、アンプアレイ12内の各アンプ220は、受光素子アレイ11の対応する行110上の計N1個の受光素子120から出力される電荷を順次電圧信号に変換し、得られたアナログ電圧信号を、A/D変換器アレイ13内の対応するA/D変換器210に出力する。 A/D変換器210は、当該チャージアンプ221からのアナログ電圧信号を順次A/D変換し、並列処理機構14に供給する。
また、第5及び第6実施形態の構成を、第2〜4実施形態のような受光素子アレイ11を複数個備える構成に適用しても良い。
本発明に係る高速視覚センサ装置は、FAロボット制御の他、立体視、色画像処理、高速移動物体認識処理などの視覚認識処理に幅広く用いられる。

Claims (11)

  1. 複数の受光素子が複数の行及び列に2次元状に配列されて構成された少なくとも一つの受光素子アレイと、
    複数のA/D変換器が該少なくとも一つの受光素子アレイの該複数の行に1対1に対応して1次元状に配列されて構成され、各A/D変換器が、該対応する1行中の受光素子から順次読み出された出力信号をアナログ・デジタル変換するA/D変換器アレイと、
    複数の演算素子が、該少なくとも一つの受光素子アレイの該複数の受光素子と1対1に対応して複数の行及び列に2次元状に配列され、該受光素子の複数の行が該演算素子の複数の行に対応し、各演算素子が該A/D変換器アレイから転送されたデジタル信号について所定の演算を行う並列演算素子アレイと、該複数の演算素子行の各々に対応して少なくとも1ラインの転送用シフトレジスタを備え前記転送用シフトレジスタが、対応する受光素子行に所属する該受光素子の出力信号に相当するデジタル信号を、対応する行に所属する所定の演算素子に順次転送する転送用シフトレジスタアレイとからなる並列処理機構と、
    該受光素子アレイと該A/D変換器アレイとを制御して一つのフレームについてのデジタル信号を出力させ、該転送用シフトレジスタアレイを制御して該並列演算素子アレイへ該一つのフレームのデジタル信号を転送させた後、該並列演算素子アレイを制御して該一つのフレームに対する該所定の演算を行わせると同時に、該受光素子アレイと該A/D変換器アレイとを制御して次のフレームについてのデジタル信号を出力させ、該転送用シフトレジスタアレイを制御して該並列演算素子アレイへ該次のフレームのデジタル信号を転送させるための制御回路と、
    を備える高速視覚センサ装置。
  2. 前記少なくとも1つの受光素子アレイとして複数個の前記受光素子アレイを有しており、前記転送用シフトレジスタアレイが、前記演算素子の各行に対応して、前記受光素子アレイの個数に等しい数の複数ラインの前記転送用シフトレジスタを備えていることを特徴とする請求項1記載の高速視覚センサ装置。
  3. 前記複数個の受光素子アレイは互いに異なる位置に配置されており、
    前記制御回路は、前記複数の受光素子アレイの各々から出力される異なる位置での撮像画像を、対応するラインの前記転送用シフトレジスタにて転送させ、前記並列処理機構に、該複数の受光素子アレイから得られる画像信号に基づいて、撮像対象の該複数の受光素子アレイによる撮像画像間の位置ずれ量を求める演算を行わせる並列処理制御部と、該求められた位置ずれ量と各受光素子アレイの位置及び撮像方向の情報とを基にして、該撮像対象の3次元位置情報を求める演算を行う演算部とを有することを特徴とする請求項2記載の高速視覚センサ装置。
  4. 前記複数個の受光素子アレイは、それぞれの受光素子のデータ転送方向である行方向を互いに同一の方向に合わせ、かつ、各受光素子アレイが、それぞれの対応する受光素子が該データ転送方向にずれるように配置されており、
    前記並列処理制御部が、前記並列処理機構に対して、該複数の受光素子アレイから得られる画像信号に基づいて該複数の受光素子アレイによる撮像画像間の該データ転送方向における位置ずれ量を求める演算を行わせることを特徴とする請求項3記載の高速視覚センサ装置。
  5. さらに、前記複数個の受光素子アレイで撮像した複数の画像について前記並列処理機構により求めた前記データ転送方向における位置ずれ量を蓄積する画素ずれ量記憶装置を備え、前記並列処理制御部は、蓄積された位置ずれ量に基づいて、該各ラインの転送用シフトレジスタが画像信号を転送する前記演算素子の転送位置を制御することを特徴とする請求項4記載の高速視覚センサ装置。
  6. さらに、前記複数個の受光素子アレイにそれぞれ独立した撮像タイミングで撮像を行わせる撮像タイミング制御手段と、前記複数個の受光素子アレイに撮像対象の同一方向からの像を撮像させるビームスプリット手段とを備え、
    前記制御回路は、前記複数の受光素子アレイの各々から出力される異なる時刻での撮像画像を、対応するラインの前記転送用シフトレジスタにて転送させることにより、前記演算素子に異なる時刻の画像間での演算を行わせる並列処理制御部を有することを特徴とする請求項2記載の高速視覚センサ装置。
  7. さらに、前記複数個の受光素子アレイに対し撮像対象の同一方向からの互いに異なる色分解画像を撮像させるためのフィルタリング/ビームスプリット手段を備え、
    前記制御回路は、前記複数の受光素子アレイの各々から出力される異なる色分解撮像画像を、対応するラインの前記転送用シフトレジスタにて転送させることにより、前記演算素子に各色分解画像に対する演算を行わせる並列処理制御部を有することを特徴とする請求項2記載の高速視覚センサ装置。
  8. さらに、画像処理演算に必要な所定のデータを供給するデータ供給手段を備え、
    前記転送用シフトレジスタが、前記A/D変換器アレイからの出力信号及び該データ供給手段から供給される該所定のデータを、対応する演算素子行中の所定の前記演算素子に順次転送し、
    前記制御回路が、前記受光素子アレイ、前記A/D変換器アレイ、前記並列処理機構、及び、前記データ供給手段を制御することを特徴とする請求項1記載の高速視覚センサ装置。
  9. 前記データ供給手段は、前記A/D変換器アレイからの出力信号と前記所定のデータとを時分割混合する時分割混合ユニットを備えていることを特徴とする請求項8記載の高速視覚センサ装置。
  10. 前記並列処理機構が、さらに、前記転送用シフトレジスタアレイとは別に、前記複数行の演算素子の各行に対応して所定データ転送用シフトレジスタを備え、該所定データ転送用シフトレジスタが、対応する行の各演算素子に所定のデータを供給することを特徴とする請求項1記載の高速視覚センサ装置。
  11. 前記少なくとも1個の受光素子アレイとして複数個の前記受光素子アレイを有しており、前記転送用シフトレジスタアレイが前記複数の演算素子行の各々に対応して単一ラインの前記転送用シフトレジスタを備え、該単一ラインの転送用シフトレジスタを時分割使用して該複数個の受光素子アレイからの出力信号を転送することを特徴とする請求項1記載の高速視覚センサ装置。
JP2000575295A 1998-10-07 1999-10-07 高速視覚センサ装置 Expired - Fee Related JP4458678B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP28556598 1998-10-07
JP7011599 1999-03-16
PCT/JP1999/005546 WO2000021284A1 (fr) 1998-10-07 1999-10-07 Capteur de vision ultra-rapide

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2010007149A Division JP2010136413A (ja) 1998-10-07 2010-01-15 高速視覚センサ装置

Publications (1)

Publication Number Publication Date
JP4458678B2 true JP4458678B2 (ja) 2010-04-28

Family

ID=26411272

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2000575295A Expired - Fee Related JP4458678B2 (ja) 1998-10-07 1999-10-07 高速視覚センサ装置
JP2010007149A Pending JP2010136413A (ja) 1998-10-07 2010-01-15 高速視覚センサ装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2010007149A Pending JP2010136413A (ja) 1998-10-07 2010-01-15 高速視覚センサ装置

Country Status (6)

Country Link
US (1) US6608296B1 (ja)
EP (1) EP1126698B1 (ja)
JP (2) JP4458678B2 (ja)
AU (1) AU6005599A (ja)
DE (1) DE69913560T2 (ja)
WO (1) WO2000021284A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000021284A1 (fr) * 1998-10-07 2000-04-13 Hamamatsu Photonics K. K. Capteur de vision ultra-rapide
WO2000055810A1 (fr) * 1999-03-16 2000-09-21 Hamamatsu Photonics K. K. Capteur de vision ultra-rapide
US7123759B1 (en) * 1999-06-30 2006-10-17 Fuji Photo Film Co., Ltd. Image transfer and output method and system using the same
JP2002094886A (ja) * 2000-09-13 2002-03-29 Hamamatsu Photonics Kk 高速画像処理装置
JP2002334338A (ja) * 2001-05-09 2002-11-22 National Institute Of Advanced Industrial & Technology 物体追跡装置及び物体追跡方法並びに記録媒体
JP3833088B2 (ja) * 2001-09-05 2006-10-11 独立行政法人科学技術振興機構 画像検出処理装置
JP3902741B2 (ja) 2002-01-25 2007-04-11 株式会社半導体理工学研究センター 半導体集積回路装置
US6683293B1 (en) * 2002-04-26 2004-01-27 Fairchild Imaging TDI imager with target synchronization
US7488926B2 (en) * 2006-01-06 2009-02-10 Microsoft Corporation Pixel array with shared pixel output lines
JP2008219773A (ja) * 2007-03-07 2008-09-18 Toshiba Corp 送信装置,受信装置,および光通信方法
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US9559235B2 (en) 2010-12-17 2017-01-31 Semiconductor Energy Laboratory Co., Ltd. Photoelectric conversion device
JP6003259B2 (ja) * 2011-06-29 2016-10-05 コニカミノルタ株式会社 画像処理装置及びプログラム
GB201120801D0 (en) * 2011-12-01 2012-01-11 E2V Tech Uk Ltd Detector
US8605114B2 (en) * 2012-02-17 2013-12-10 Igt Gaming system having reduced appearance of parallax artifacts on display devices including multiple display screens
CN109089061B (zh) * 2012-06-08 2022-01-21 株式会社尼康 拍摄元件和拍摄装置
US9936151B2 (en) * 2015-10-16 2018-04-03 Capsovision Inc Single image sensor for capturing mixed structured-light images and regular images
KR101941892B1 (ko) 2017-03-23 2019-01-28 고려대학교 산학협력단 대비 감도 향상을 위한 인공 망막 시스템
JP6976798B2 (ja) 2017-09-29 2021-12-08 キヤノン株式会社 撮像装置、撮像システム、移動体、回路チップ
CN107992100B (zh) * 2017-12-13 2021-01-15 中国科学院长春光学精密机械与物理研究所 基于可编程逻辑阵列的高帧频图像跟踪方法和系统
US20230194677A1 (en) * 2021-12-16 2023-06-22 Waymo Llc Multi-Chip Daisychain for Output Aggregation

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2583602B1 (fr) 1985-06-18 1988-07-01 Centre Nat Rech Scient Retine integree a reseau de processeurs
JPH0762866B2 (ja) * 1986-04-21 1995-07-05 工業技術院長 パターン信号処理用lsi
JPH06195480A (ja) * 1992-10-13 1994-07-15 Nec Corp 並列処理装置
JPH0757075A (ja) * 1993-08-13 1995-03-03 Nippon Steel Corp パターン処理用1チップ並列処理装置のプロセッサ要素
JPH0785260A (ja) * 1993-09-14 1995-03-31 Nippon Steel Corp 2次元センサ装置
JPH08235149A (ja) 1995-02-24 1996-09-13 Sumitomo Metal Ind Ltd 単一命令・多データ型並列計算機の命令生成・分配装置
JP3834113B2 (ja) * 1996-11-08 2006-10-18 浜松ホトニクス株式会社 高速視覚センサ装置
JPH10266462A (ja) * 1997-03-28 1998-10-06 Kondo Kozai Kk 溶接部を平坦にした溶接閉鎖型フープ
JP2916620B1 (ja) * 1998-03-19 1999-07-05 東京大学長 サンプリング制御機構搭載型イメージセンサ
WO2000021284A1 (fr) * 1998-10-07 2000-04-13 Hamamatsu Photonics K. K. Capteur de vision ultra-rapide

Also Published As

Publication number Publication date
EP1126698A4 (en) 2003-01-08
DE69913560T2 (de) 2004-09-30
US6608296B1 (en) 2003-08-19
EP1126698A1 (en) 2001-08-22
EP1126698B1 (en) 2003-12-10
AU6005599A (en) 2000-04-26
WO2000021284A1 (fr) 2000-04-13
JP2010136413A (ja) 2010-06-17
DE69913560D1 (de) 2004-01-22

Similar Documents

Publication Publication Date Title
JP2010136413A (ja) 高速視覚センサ装置
EP1164544B1 (en) High-speed vision sensor
US8830340B2 (en) System and method for high performance image processing
JP4592243B2 (ja) 高速画像処理カメラシステム
MX2007002073A (es) Dispositivo de captacion de imagen, metodo de procesamiento de resultado de captacion de imagen y circuito integrado.
EP2914001B1 (en) Image processing device
CN108833812A (zh) 一种图像传感器及图像动态信息处理方法
KR20110070780A (ko) 촬상 장치 및 촬상 방법
JP3833088B2 (ja) 画像検出処理装置
WO2020040521A1 (ko) 라이트 필드의 중간 뷰 합성 방법, 라이트 필드의 중간 뷰 합성 시스템과 라이트 필드 압축 방법
JP4334672B2 (ja) 高速視覚センサ装置
JP3834113B2 (ja) 高速視覚センサ装置
JP2015148676A (ja) 撮像装置及び撮像装置の制御方法
JP2001175878A (ja) 画像特徴抽出装置、画像特徴抽出方法、監視検査システム、半導体露光システム、およびインターフェースシステム
JP3920659B2 (ja) Af評価値算出装置
CA3095218A1 (en) Cross-row time delay integration method, apparatus and camera
US7362363B2 (en) Sensor device with sensor elements and read-out unit which reads partial measurements
CN1441314A (zh) 多镜头数码立体相机
US9286535B2 (en) Image processing device, image processing method, and imaging device
US7092021B2 (en) Frame shuttering scheme for increased frame rate
JP2000299820A (ja) 高速視覚センサ装置
EP0856990A2 (en) Frame transfer readout correction
JPS61157080A (ja) 電子カメラ
JPH0456461A (ja) イメージリーダ
Gallagher Vision systems for quality control

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100115

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: 20100209

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: 20100209

R150 Certificate of patent or registration of utility model

Ref document number: 4458678

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130219

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130219

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140219

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees