図1は実施例1における三次元計測システムの構成図である。本実施例1における三次元計測システムは、照明装置1、撮像装置2、及び後述する計測装置3から構成され、計測対象物Wの三次元形状や位置・姿勢を計測する。ここでは、工場の製造ラインなどで用いられるロボットハンドによる部品選別や自動組み立てなどの作業行程を想定し、部品選別や自動組み立ての対象となる計測対象物Wの三次元計測を行う。
照明装置1は計測対象物Wに二次元パターン光を投影するパターン投影機能を有し、小型のプロジェクタなどが用いられる。撮像装置2は計測対象物W上に投影された二次元パターン光による画像を撮像し、二次元画像の取得には、CCDやCMOSのイメージセンサが用いられる。なお、照明装置1、撮像装置2はロボットアームに搭載できる小型で軽量なものが望ましい。
本実施例では、計測対象物Wが拡散反射物体や鏡面物体であることを想定しているが、二次元パターン光が透過又は半透過する物体でもよく、その場合には撮像装置2は透過光を撮像する位置に配置することになる。作業用のロボットハンドは図示を省略しているが、作業領域の省スペース化が期待される場合は、計測用のロボットアーム上に照明装置1や撮像装置2が搭載され、一体化された構成とすることが望ましい。また、作業用のロボットアーム上に照明装置1と撮像装置2の双方が搭載される構成としてもよい。
図2は三次元計測システムのブロック回路構成図であり、照明装置1、撮像装置2、計測装置3から構成されている。照明装置1は計測対象物Wに対して、パターン投影法に基づいて空間符号化法で用いる二次元パターン光を投影する。照明装置1は照明ユニット11を内蔵し、照明ユニット11は光源ユニット12、照明光学系13、表示ユニット14、投影光学系15から成っている。また、不均一補正処理部16の出力が表示ユニット14、光源制御部17に接続され、光源制御部17の出力は光源ユニット12に接続されている。
不均一補正処理部16は照明装置1が投影する二次元パターン光の投影面での不均一性を補正する。計測装置3が生成する二次元パターン画像を不均一補正処理部16で補正し、投影光学系15を介して計測対象物Wに二次元パターン光を投影することを想定している。しかし、計測装置3等の外部からのデータ入力以外に、パターン内部ロジックで生成することや、予め定められたパターンを内部メモリから読み出して使用する構成としてもよい。光源制御部17は不均一補正処理によって低下したピーク輝度を調節する。
撮像装置2は計測対象物Wを撮像する撮像光学系21と撮像デバイス22から成る撮像ユニット23を有する。撮像デバイス22の出力はAFE(アナログフロントエンド)24、カメラ画像処理部25を経て不均一補正処理部26に接続されている。撮像装置2は計測対象物Wの反射光を二次元パターン光として、撮像することを想定しているが、透明、半透明な物体に対しては透過光であってもよい。
撮像装置2で撮像した二次元パターン光は計測対象物Wの形状や表面凹凸の影響でパターン光のエッジに対して位置ずれが生ずるので、計測装置3はこの位置ずれを基に距離計測を行う。
計測装置3において撮像装置2の不均一補正処理部26の出力は距離計測処理部31に接続され、距離計測処理部31の出力は計測制御部32に接続されている。計測制御部32の出力はパターン画像生成部33を経て、照明装置1の不均一補正処理部16に接続されている。また、距離計測処理部31の出力はロボットアームの制御信号を送信する三次元計測処理部34にも接続され、記憶領域35の出力が三次元計測処理部34に接続されている。
距離計測処理部31は撮像した二次元パターン光を基に計測対象物Wの距離情報を算出し、パターン投影法を利用して奥行き方向の距離を計測する。撮像した二次元パターン光の幅方向、高さ方向の距離情報と合わせて、計測対象物Wの三次元情報を得る。距離計測は撮像装置2で生成された撮像画像を基に行われるが、光学系の位置ずれを考慮する際に、位置ずれ補正までを適用した画像を用いる場合と、適用前画像と合わせて位置ずれ量をパラメータとして使用する2つの場合が想定される。
計測制御部32は計測に必要な二次元パターン画像の生成指示や、ロボットアームが保持する位置関係情報を基に、計測対象物W、照明装置1、撮像装置2の位置関係を把握する位置関係情報取得を行う。照明装置1と撮像装置2の位置関係情報とは、任意に設定した絶対座標における位置・姿勢のことであり、計測対象物Wの位置関係情報とは、その絶対座標における位置のことである。絶対座標におけるロボットアームの位置・姿勢は、ロボットアームのキャリブレーションにより取得できる。絶対座標の基準位置は任意に設定でき、その座標系により三次元計測システムのワークエリア内の座標が特定できる。
パターン画像生成部33は計測制御部32からの指示によって、投影する二次元パターン画像を生成する。三次元計測処理部34は計測対象物Wの三次元形状、位置及び姿勢計測を行う。距離計測処理部31で計測した距離情報と二次元パターン画像を基にモデルフィッティングを行い、計測対象物Wの位置、姿勢を計測する。計測の結果得られた三次元形状、位置、姿勢の各情報は、部品のピッキングや自動組み立てを行うためのロボットアームの制御に用いられる。
記憶領域35は三次元計測処理部34でモデルフィッティングに用いるモデルデータを格納し、三次元CADの設計データや予め複数方向から撮影した画像データから生成された三次元のモデル情報が格納されている。モデルデータは計測対象物Wに合わせて外部からデータを供給し、更新することが可能である。
照明装置1、撮像装置2は、ロボットアーム上に固定搭載されていることを想定しているため、ロボットアームの位置・姿勢が分かれば、照明装置1と撮像装置2の位置・姿勢が算出でき、計測装置3により計測対象物Wの高精度な三次元計測を実現できる。
図3は三次元計測処理の動作フローチャート図である。ステップS101では、計測装置3と照明装置1、撮像装置2との通信を確立し、双方の装置の位置関係を較正するキャリブレーションを行う。位置関係の精度は最終的な計測精度に影響を与えるため、三次元計測処理時に用いる位置関係情報と同一の位置関係情報を用いてキャリブレーションすることが望ましい。
しかし、キャリブレーション時と三次元計測時で照明装置1及び撮像装置2それぞれの位置関係が異なる場合、例えばロボットアームを動作させながら三次元計測処理を行う場合には、動き予測を加味した位置関係情報を用いることで対応する。
ステップS102では、照明装置1側が投影した二次元パターン光の投影面内での輝度の不均一性を補正するために、不均一補正処理を行う。ステップS103では、ステップS102で行った不均一補正処理によって低下したピーク輝度を補償するための光源光量の調節を行う。
ステップS104では、計測対象物Wに二次元パターン光を投影する。空間符号化法を用いる場合は複数枚の二値パターン画像を投影する。ステップS105では、計測対象物Wから反射された二次元パターン光を撮像装置2で撮像する。撮像する二次元パターン光は、計測対象物Wの形状や表面凹凸の影響でパターンのエッジずれが生じている。ステップS106では、撮像装置2側の影響で生ずる輝度変化及びパターンエッジの位置ずれを、取得した二次元パターン画像に対し撮像装置2の不均一補正処理を適用して補正する。
ステップS107では、ステップS106で補正処理した二次元パターン画像を基に、計測装置3は計測対象物Wのそれぞれの測定点における奥行き方向の距離情報を取得して距離計測処理を行う。二次元パターン画像の幅方向と高さ方向の情報と合わせて、このステップS107で計測対象物Wの三次元情報を取得する。
空間符号化法においては、縞の周期が異なる複数枚の画像を用いた画像の取得を行うことが一般的である。また、特徴量となるエッジ位置の取得には、2値パターンの周期が反転したネガポジ画像を合わせて使用することで計測を行う。これら複数の補正処理された撮像画像を基に奥行き方向の距離情報を取得する。
ステップS108では三次元計測処理部34で三次元計測処理を行う。ステップS107で取得した奥行き方向の距離情報と二次元パターン画像を基に、既知の計測対象物Wのモデルデータを使用したモデルフィッティングを行い、計測対象物Wの位置、姿勢を計測する。また、この計測に合わせて、これまで取得、保持している三次元計測情報を更新する。
ステップS109では、取得・更新した三次元の計測情報をロボットのアーム制御で用いるため、三次元計測処理部34から図示しないアーム制御を行う装置又は制御部に送信する。ステップS110では、計測処理を継続するか否かを判断する。ロボットアームの位置に変動がないなど、投影や撮像の条件を変えた画像取得が不要の場合を想定して、計測処理の継続が必要か否かを判断する。計測処理を継続する場合にはステップS102の照明装置1の不均一補正処理部16による不均一補正処理に進み、継続しない場合には計測処理を終了する。
以上の処理プロセスにより、ロボットアームの制御に必要な三次元形状、位置、姿勢の各情報を取得し、部品ピッキングや自動組み立てを行うための制御が行われる。
図4は実施例1における照明ユニット11の構成図であり、照明ユニット11は光源ユニット12、照明光学系13、表示ユニット14、投影光学系15が順次に配列されて構成されている。
光源ユニット12は単数又は複数のLEDやLDなどで構成される光源デバイス41と、光源デバイス41を駆動するための光源駆動回路42から構成されている。LEDやLDでは十分な光量が得られない場合には、ハロゲンランプや水銀ランプを光源として使用し、照明装置1内に内蔵又は外部光源装置から光ファイバなどで光を供給するなどの形態とすることもできる。
光源駆動回路42は光源制御部17からの指示に従い、光源変調信号を基に強度を変調した駆動信号を生成する。また、光源駆動を時間制御する場合には、PWM信号を基に駆動信号を生成する。光源にLEDやLDが用いた場合には、光出力制御を安定化やデバイス破壊を避けるために、定電流駆動が採用される。
照明光学系13は拡散板43、偏光板44から成り、拡散板43は光源デバイス41からの光を均一化し、光源デバイス41の発光面の輝度むらを抑制し、輝度を面内で均一に保つ役割を果たす。偏光板44は空間変調器45である透過型のTFT液晶パネルの前後で偏光状態の制御を行う。拡散板43と偏光板44によって照明光学系13が構成されている。
表示ユニット14は表示デバイスとしての空間変調器45、空間変調器駆動回路46から成る。空間変調器45は二次元映像信号を画素のマトリクスによって形成され、階調処理が可能な透過型のTFT液晶パネルが使用され、空間変調器駆動回路46により駆動されている。空間変調器45で二次元パターン光のパターンを表現し、TFT液晶パネルの解像度、画素サイズ、画素ピッチなどが二次元パターン光の精度に直接影響を与える。空間変調器45としては、TFT液晶パネル、LCOSパネル、走査型のMEMSデバイスなどが用いられる。空間変調器45は透過型に限定されるものではなく、MEMSミラーを用いたDMDや反射型のLCOS等、光源からの光を反射して用いる構成であってもよい。
投影光学系15は偏光板47、投影レンズ48から成り、投影される二次元パターン光の投影面周辺部でのMTFの低下、被写界深度特性つまりぼけの特性、結像の位置ずれを生じさせるディストーションなどが、算出する距離精度に影響を与える要因となる。ここでは、投影レンズ48は模式的に1枚のレンズで表しているが、実際には複数枚のレンズ群から構成されている。
図5は照明装置1のブロック回路構成図である。計測装置3からの入力を受信するパターン画像入力部51の出力はセレクタ52に接続され、不均一補正処理部16を経て光源制御部17、表示ユニット14に接続されている。また、パターン画像生成部53の出力がセレクタ52に接続されている。更に、光源制御部17はピーク輝度検出部54、光源補正量算出部55から構成されている。
パターン画像入力部51は計測装置3から送信されるパターン画像を受信し、画像入力機能と合わせて、後述する補正処理が適用できるフォーマットへの変更機能をも有する。物理的な入力I/Fは計測に要する時間の規定、空間変調器45の解像度(画素数)及び階調数に適したものが選択されることが望ましい。
セレクタ52はパターン画像入力部51を経由して得られる外部生成されたパターン画像と、パターン画像生成部53で内部生成されるパターン画像の何れかを選択し、利用するシーンや投影するパターンによって切換えて使用することができる。
パターン画像生成部53は表示ユニット14で用いるパターン画像を内部で生成する。照明装置1では、外部からの画像入力受け付けの他に、予め定められたパターン光を照明装置1の内部で生成して、選択的に利用できるようにされている。
不均一補正処理部16において、投影されるパターン画像のピーク輝度のばらつきと空間変調器45自体に入力する信号値が0の場合の輝度である黒レベルのばらつきの双方を、空間変調器45が持つ階調表現によって補正処理する。補正処理された投影用パターン画像のデータは、空間変調器駆動回路46を経て空間変調器45上の二次元マトリクスに対応した画素上で再現される。
光源制御部17のピーク輝度検出部54は不均一補正処理適用後のパターン画像内のピーク輝度を検出し、入力又は生成されたパターン画像のピーク輝度が不均一補正処理によって、どの程度低下したかを検出する。光源補正量算出部55は低下したピーク輝度を光源ユニット12の発光量を増加することで、補償する際に必要となる光源光量を算出する。その値を基に光源ユニット12を発光し、照明光学系13、空間変調器45、及び投影光学系15を経由して、最終的には計測対象物W上に二次元の投影パターンが結像される。
以上の構成及び処理プロセスによって、三次元計測における計測精度を向上する輝度むらやエッジの位置ずれが少ない二次元パターン光を、照明装置1から投影することができる。
図6は照明装置1のハードウェア構成を示すブロック回路構成図である。バス61により、照明ユニット11、RAM62、ROM63、CPU64、I/F65、不均一補正LSI66が接続されている。
RAM62はCPU64が各種の処理を行うために用いるワークエリアや、I/Fを介して外部の計測装置3から受信したデータを一時的に記憶するためのエリア等を有する。ROM63は照明装置1における各種制御をCPU64に実行させるためのプログラムやデータの他、後述の不均一補正処理で用いる補正用テーブルの値が格納されている。
CPU64は照明装置1の初期設定を始め、各種デバイスの制御を行うプログラムを実行する。I/F65は計測装置3のインタフェースである。不均一補正LSI66は後述する輝度補正処理及び位置ずれ補正処理機能を有し、専用集積回路であるASICを想定しているが、信号処理プロセッサであるDSPによってソフト的に機能を記述し実現する構成でもよい。
計測対象物Wの奥行き方向の距離情報を得るために、二次元パターン光を用いる手法はパターン投影法と呼ばれる。このパターン投影法の内、ここで採用する空間符号化法では、周期と位相の異なる複数の二値パターンを投影する。投影するパターン光は、例えば白黒(濃淡)の2階調で表現した二値パターン、同様の二値パターンの白黒の周期が反転した二値パターンなどである。
この二次元パターン光を計測対象物Wに投影すると、計測対象物Wの表面凹凸や形状に依存してパターンの不連続点や歪みが観測できる。二値パターンでは、この不連続点がエッジの位置ずれに相当する。二値パターンを用いた場合には、三角測量の原理を利用してエッジの位置ずれから奥行き方向の距離を推定する。空間符号化法では、白黒パターンを二値情報として符号化する。符号化方法が異なる、つまり白黒パターンの並び(周期)が異なる投影像を複数回撮像し、それらの画像から計測対象物Wの奥行き方向の距離を推定する。
奥行き方向の距離を算出する際には、エッジの位置情報を用いるため、奥行き方向の距離精度は、撮像画像中のエッジの位置精度に大きく影響される。計測装置3の距離計測処理部31で行われるエッジ位置の判定は、2階調の輝度差によって行われる。二値パターンのエッジ位置精度は、輝度の変化に対して敏感で、奥行き方向の距離を計測する際の精度に影響を与える重要なパラメータとなる。
エッジ位置の近傍の階調が反転する過渡的な領域では、輝度が連続的に変化していると考えられる。二次元パターン光の意図しない輝度変化、所謂輝度むらはこの過渡的な変化経路や階調が飽和する位置を無秩序に変化させる。そのため、この輝度変化はエッジ位置の判定精度を低下させ、即ち真値との誤差を拡大し、最終的には奥行き方向の距離精度を低下させることになる。
図7は撮像装置2のブロック回路構成図である。撮像装置2は前述したように撮像ユニット23、AFE24、カメラ画像処理部25、不均一補正処理部26から成っている。撮像デバイス22は二次元像を光電変換によって電気的な物理量に変え、CCDやCMOSのイメージセンサが用いられる。結像されたパターン画像は撮像デバイス22内で光電変換され、最終的には電圧の情報となる。撮像画像としてカラー画像が所望される場合に、ここでは単板のイメージセンサの各画素にカラーフィルタが取り付けられたBayer配列のセンサを想定している。
撮像ユニット23の撮像デバイス22の映像出力は、AFE24のCDS(二重相関サンプリング回路:Correlated double sampling)71に接続されている。更に、撮像デバイスの映像出力はアナログアンプ72、AD変換器73を経てカメラ画像処理部25に接続されている。また、AFE24において、タイミングジェネレータ74の出力は、H/Vドライバ75を経て撮像ユニット23の撮像デバイス22に接続され、更にタイミングジェネレータ74の出力はカメラ画像処理部25に接続されている。
CDS71は固定パターンのノイズを除去する。アナログアンプ72はCDS71でノイズ除去されたアナログ信号のゲインを調整する。AD変換器73はアナログ信号をデジタル信号に変換する。最終段での出力が8ビットの場合に、通常は後段の処理を考慮して10〜16ビット程度に量子化されたデジタルデータに変換し出力する。変換されたセンサ出力データはRAWデータと呼ばれ、RAWデータは後段のカメラ画像処理部25で現像処理される。
タイミングジェネレータ74は撮像デバイス22のタイミング及び後段のカメラ画像処理部のタイミングを調整する信号を生成する。H/Vドライバ75は撮像デバイス22を駆動するための垂直同期信号及び水平同期信号を、センサ駆動に必要な電位に変換する。
カメラ画像処理部25においては、AFE24のAD変換器73の出力のRAMデータを黒補正部76で受信する。黒補正部76の出力は、ホワイトバランス補正部77、デモザイキング処理部78、γ補正部79、デジタルフィルタ80を経てRGBデータとして、不均一補正処理部26に送信されるようになっている。
黒補正部76は単一画素処理の1つであり、光学的に遮光した黒補正データとBayer配列の画素とで減算処理を行う。ホワイトバランス補正部77は単一画素処理の1つであり、計測対象物Wを照明する照明の色温度によりRGBのゲインを調整することによって、望ましい白色を再現する。具体的には、ホワイトバランス補正用データとの加算処理によって実現するが、単色の画像を取り扱う場合はこの処理は不要となる。
デモザイキング処理部78はBayer配列の画像データをRGB各色の全画素化を実現するための補間処理を行い、Bayer配列の各色フィルタで分解された画像に対して、周辺の同色や他色から注目画素の値を推測して補間処理する。ここでは、欠陥画素の補間処理も合わせて実現するが、撮像デバイス22にカラーフィルタがなく単色の処理となる場合は、ホワイトバランス補正部77と同様に処理は不要となる。
γ補正部79は一般的な画像表示系の階調表現特性に合わせて、逆特性を加味する処理を実施する。高輝度部の階調圧縮や暗部処理によって、人間の視覚特性に合わせた階調変換を行う。本実施例では、マシンビジョンによる計測処理を目的とした画像取得のため、後段の計測処理に適した階調変換を行う。デジタルフィルタ80は画像に含まれる高周波成分の抑制やノイズ除去及び解像感強調を実現する。
一般的なカメラ画像処理機能としては、RGB信号をYCC等の輝度色差信号に変換する色空間変換や、大容量の画像データを圧縮する処理も含まれるが、本実施例ではRGBデータを直接使用し、かつデータ圧縮を行わないものとする。また図示は省略しているが、撮像装置2の制御を行う撮像制御部が存在し、撮像デバイス22の動作制御や、シャッタ速度、フレームレートやROI(Region Of Interest)など動作タイミングの制御も合わせて行う。
不均一補正処理部26においては、カメラ画像処理部25から送信されたRGBデータをバッファ81で受信し、バッファ81の出力は周辺減光補正処理部82に接続されている。また、補正用テーブル83の出力が周辺減光補正処理部82、歪曲収差補正処理部84に接続されている。周辺減光補正処理部82の出力は歪曲収差補正処理部84とセレクタ85に並列して接続され、歪曲収差補正処理部84の出力はセレクタ85に接続されると共に、位置ずれ情報として計測装置3に出力されている。更に、セレクタ85の出力は補正画像として計測装置3に出力されている。
バッファ81はRGBの色成分を持つ画素から成る画像データを格納する。周辺減光補正処理部82は、撮像光学系21の影響によって、撮像画像周辺部の光量(輝度値)が落ちることを補正する。歪曲収差補正処理部84は同様に撮像光学系21の影響によって周辺部の結像位置のずれを、撮像画像に対して補正処理する。RGBのカラー画像を取り扱う場合は、各色の歪曲収差である倍率色収差を補正する。
また、計測装置3内の距離計測処理部31で、直接位置ずれを考慮した奥行き方向の距離計測を行う際に必要となる任意の画素の結像位置ずれ量を別途出力する。この結像位置ずれ量は歪曲収差補正の過程で算出される値である。
補正用テーブル83は周辺減光補正処理部82及び歪曲収差補正処理部84で用いる空間的な固定変動値を補正値として格納している。設計値や工場出荷時の調整値を格納することを想定しているが、キャリブレーションによって取得した補正値の更新値を反映する構成としてもよい。
セレクタ85は補正画像出力として、周辺減光補正処理適用後の画像か、歪曲収差補正処理を適用した画像の何れかを選択して出力する。
計測対象物Wからの反射光又は透過光であるパターン画像は、撮像デバイス22面上に結像し二次元パターン画像として取得される。取得されたパターン画像は、AFE24を介してデジタルの画像に変換された後に、カメラ画像処理部25でRGBのカラー画像として再構成される。その後に、計測処理に適した輝度むらや結像位置ずれの少ない画像へと各種処理の適用によって補正され、補用後の画像が計測装置3に送られる。
以上の構成及び処理のプロセスによって、輝度むらや位置ずれの少ない二次元パターン画像を撮像装置2で取得、生成することができ、三次元計測における計測精度が向上する。
図8は照明装置1内の不均一補正機構のブロック回路構成図である。不均一補正処理部16においては、画像バッファ91は映像入力信号を受信し、その出力は輝度補正処理部92を介して位置ずれ補正処理部93、セレクタ94及び光源制御部17に接続されている。位置ずれ補正処理部93の出力はセレクタ94に接続され、表示ユニット14に接続されている。
画像バッファ91は画像データを格納し、輝度補正処理部92は照明光学系13、投影光学系15、及び空間変調器45で生ずる輝度の変化を補正し、投影面上での輝度むらを抑制する。
位置ずれ補正処理部93は歪曲収差の影響によって生ずる投影面上での結像位置ずれを抑制する。セレクタ94は補正処理されたパターン画像として、輝度補正処理適用後の画像と、輝度補正処理適用画像に対して更に位置ずれ補正処理を適用した後の画像の何れかを選択し出力する。
不均一補正処理部16に入力された映像信号は、画像バッファ91を介して輝度補正処理部92に送られ、輝度むらの補正が実施される。入力信号への適用と合わせて光源光量調節用に補正値を送る。輝度補正後に、位置ずれ補正適用が必要な場合は補正処理を適用した後に表示ユニット14に送られ、空間変調器45上で画像を形成する。形成された画像は投影光学系15を介して計測対象物Wに投影される。
図9は光源光量調節機構の説明図である。図9(a)は空間変調器45上の輝度値を示し、階調制御を用いた輝度補正を適用した例、図9(b)は投影面上の輝度を、光源光量調節による光量アップの制御を組み合わせた例を示している。
図9(a)の横軸は任意の1ラインの座標を、縦軸は横軸に示された画素に対応する空間変調器45上での輝度値(階調値)を示している。(b)の横軸は(a)に対応する任意の1ラインの座標を、縦軸は計測対象物Wの投影面上での輝度の大きさを示している。
輝度補正に際して、先ず1ライン中の輝度変化を確認し、同一の輝度が所望される値に対して、投影面上で最も輝度が小さくなる画素の輝度値を均一性が補償できる最大の輝度値として設定する。次に、最大の輝度値よりも投影面上では明るくなる画素に対して、投影面上で均一となるように前ステップで把握した最大の輝度値まで下げることによって、均一性を補償する。表示輝度の低下は空間変調器45の持つ階調表現機能を用いて補償される。
ここでは、空間変調器45が8ビットの階調を持つものと仮定する。空間変調器45内では、8ビットの階調で表現できる最大値である255の値つまり図9(a)のCで示される輝度値で二値パターンの内の輝度の高いパターンを形成する。投影面では各種光学系などの影響によって、(b)のC’に示されるように1ラインの中では輝度が変化する。
この内、最も輝度が最も低下する画素位置の輝度を、空間変調器45で表現できる最大輝度値つまり図9(b)のD’として設定する。投影面上でD’の輝度を実現するためには、空間変調器45上では(a)のDのような輝度分布となる。中央部の輝度値を255(C)から200(E)に下げることで投影面上では均一なラインを投影することが可能となる。
輝度変換による補正後の最大輝度値は、投影面上ではFからD’へと下がるため、輝度のダイナミックレンジは低下する。ここでは説明の簡略化のため、任意の1ラインを取り上げたが、実際にはパターン画像を構成する全ての画素を対象とした処理を行う。
光源光量調節は投影面上で均一ながら低下した輝度D’を光源の光量をアップさせることで実現する。図9(b)における輝度D’をFに引き上げることがそれに相当する。低下した輝度のダイナミックレンジを補うために光源光量を増加し、本来空間変調器45で表現可能な最大輝度値であるCと同等の輝度Fを均一に投影させることができる。
ここまでは、最大輝度が均一となる補正の概念について説明したが、空間符号化法においては、黒レベルの均一性も重要となる。黒レベルの輝度分布も輝度の値は異なるものの、任意の1ラインの座標上ではばらつくことになる。このばらつきを抑制するために、今度は黒レベルのライン上で最も高い輝度に合わせて、低い輝度の値を階調表現によって上げることで均一性を補償する。
空間変調器45で0として表現される黒レベルは、投影面上では図9(b)のGで表される輝度分布となる。これを投影面上で均一となるH’の値とする場合に、空間変調器45上では(a)のHの輝度分布を再現すればよい。そのとき、周辺部では輝度値を0からIの値への引き上げることで、投影面上では均一なラインを投影することが可能となる。
輝度のダイナミックレンジはピーク輝度、黒レベル双方の補正処理によって図9(b)のJに示すように低下する傾向にある。しかし、光源光量の調節によって十分な輝度が確保される場合は、ピーク輝度と黒レベルKの差であるコントラスト差であるダイナミックレンジはLとなり、十分な値を確保することができる。また、照明装置1の電気系のノイズの影響を受け難い均一なパターンの投影により、位相が反転するパターンの交点であるエッジ位置の推定精度を上げることになる。
このように、照明装置1側で輝度補正を実施する際に、空間変調器45の階調制御と光源光量制御の組み合わせが有効であることを説明した。その結果、ダイナミックレンジを確保した二次元パターン投影が実現でき、2階調の輝度差、又は2階調間の輝度変化の過程からエッジの位置を推定する空間符号化においては特に有効となる。更には、黒レベルの補正も合わせて行うことで、ノイズの影響を受け難くし、結果として距離計測精度の向上を実現することができる。
図10は照明装置1内の不均一補正処理の動作フローチャート図である。ステップS201では、投影するパターンが単色か、複数色から成るカラーパターン画像かを判断する。単色の場合はステップS204に、カラーパターンの場合はステップS202にそれぞれ進む。
ステップS202では、構成される画素の情報を各色プレーン、色ごとに分離する。なお、ここではRGBの三原色で分離しているが、補正用テーブル自体が他の色のずれ量を示す補正データである場合は、RGB以外の色に分離する構成でもよい。
ステップS203では、照明光学系13、投影光学系15、空間変調器45で生ずる輝度の変化を補正し、投影面上での輝度むらを抑制する輝度補正処理を行う。処理の詳細については図13を用いて説明する。
ステップS204では、輝度補正処理に続いて位置ずれ補正処理を行うか否かを判断する。計測装置3内の距離計測処理部31においては、補正処理適用後の画像を対象に距離計測を行う場合と、輝度補正処理のみ適用された画像と位置ずれの情報を基に距離計測を行う場合とが想定される。位置ずれ補正処理を行う場合はステップS205に、行わない場合には処理を終了する。
ステップS205では、歪曲収差の影響によって投影面上での結像位置ずれを抑制する位置ずれ補正処理を行った後に処理を終了する。処理の詳細については後述する。なお、カラーパターンの場合は色結合を行ってから処理を終了する。
図11は輝度補正機構のブロック回路構成図である。不均一補正処理部16の輝度補正処理部92において、更新情報を受信する補正値更新部101の出力は輝度むら補正用テーブル102、補正値選択部103、補正値統合部104、補間処理部105を経て補正値算出部106に接続されている。また、輝度むら補正用テーブル107の出力は補正値選択部108を介して補正値統合部104に接続されている。補正値算出部106には局所変動補正用テーブル109の出力も接続されており、補正値算出部106の出力は補正処理部110に接続されると共に、ピーク輝度検出部54に接続されている。補正処理部110には画像バッファ91の出力も接続され、補正処理部110の出力は位置ずれ補正処理部93に接続されている。
補正値更新部101は光源ユニット12の輝度むらの補正値を更新し、通常では光学系で生ずる輝度むらは固定値となる。しかし、光源デバイス41が複数個で構成される場合は、光源光量を増大させる際に、選択する光源デバイス41の個数変化や各光源デバイス41の特性ばらつきが所望の光量において既定値からずれることが想定され、これらを考慮して補正値を更新する。黒レベル補正についても同様であり、以後の説明では省略する。
参照テーブルである輝度むら補正用テーブル102は、光源ユニット12及び照明光学系13に関わる輝度むらを補正するための補正値を格納し、代表点の座標(画素のアドレス)に対応する変換後の輝度値を算出するための補正値を格納する。輝度むら補正用テーブル102はカラーパターンの場合に、容量削減のため特定色の変換後の輝度値又は輝度値を算出するための補正値と、特定色を除く他色はこの特定色を基準とした差分を格納している。カラー、単色何れの場合も容量削減のため、空間変調器45の各画素に対応する輝度の補正値ではなく、サンプリングした特定の画素つまり代表点に対応した補正値を格納している。
補正値選択部103は補正値を選択し、空間変調器45の代表点を決定し、代表点上の変換されるべき輝度値(輝度の比の値)を輝度むら補正用テーブル102から読み出す。補正値選択部103では、代表点に対応する輝度変換値である補正値を読み出すことになる。
補正値統合部104は補正値選択部103及び補正値選択部108で選択された補正値を統合し、光学系では連続した滑らかな輝度変化となることを利用して、後段の補間処理によって代表点間の各画素における補正値を算出する。
補間処理部105は補正値統合部104で統合された補正値を基に、輝度変換によって補正される輝度値又は輝度値を算出するための補正値をラグランジュ(Lagrange)補間により演算する。ラグランジュ補間式を用いた補間演算の詳細については後述する。
補正値算出部106はラグランジュ補間によって算出した各画素の補正値と局所変動補正用テーブル109から読み出した補正値を統合する。ここで得られた補正値を基に、入力されたパターン画像に対して補正処理を適用する。各画素の補正値はベースとなる入力データに対する割合として算出される。本来のピーク輝度がどの程度まで下がるかを判断するための値として、ピーク輝度検出部にも送る。
輝度むら補正用テーブル107は投影光学系15に関わる輝度むらを補正するための補正値を格納している。補正値選択部108は投影光学系15の輝度むらを補正するための補正値を選択し、その読み出し方は補正値選択部103と同様である。
局所変動補正用テーブル109は空間変調器45の画素間の特性変動を補正するための補正値を格納している。空間変調器45の画素間の変動は小さいものの、高精度の三次元計測を実現する上で無視し得ない値となる場合もある。空間変調器45は光学系と異なり画素間の関連が薄いため、上述した代表点の指定とその間を補間処理によって補う構成は取ることができない。従って、空間変調器45の全ての画素、又は特に値の異なる画素に対して、アドレス座標(x,y)と補正値をペアにして格納する構成としている。
補正処理部110は補正値算出部106で得られた補正値を基に、入力されたパターン画像の輝度むらを補正する。補正値が入力値に対する比で表せる場合は、入力データに対して補正値を乗算し、最終的な輝度値を決定し、補正処理は全ての画素に対して適用される。
このように輝度補正処理部92では、光源ユニット12、照明光学系13、投影光学系15の各補正値を統合し、ラグランジュ補間によって代表点以外の画素における輝度むら補正の補正値を演算する。その後に、局所変動補正用テーブル109の値と統合して最終的な各画素の輝度むらを補正するための補正量を得る。得られた補正量を基に、空間変調器45の全画素に対して輝度むらの補正を適用することで、ピーク輝度、黒レベルとも計測対象物W上の投影面で均一となるパターン投影を行う。
図12はラグランジュ補間曲線のグラフ図である。図12(a)はラグランジュ多項式の三次補間式で表される曲線の他、比較用の補間曲線及び直線を示している。軸上の補間点xは画素間隔で正規化した値であり、波線で示すMは線形補間(一次補間)の直線、一点鎖線で示すNは三次補間曲線の中でも尖鋭度の高いバイキュービック(bicubic)補間曲線、実線で示すOは対象のラグランジュ補間曲線である。周囲の参照点と新たなポイントである補間点xにおける補間値yの関係式は、それぞれ次式の定義する数式で表される。なお、補間演算の概念については後述する。
線形補間直線(リニア、周囲4点から直線補間)
[0≦x≦1] y=1−x ・・・(1)
[1≦x≦2] y=0 ・・・(2)
バイキュービック補間曲線(周囲16点から双三次補間)
[0≦x≦1] y=1−2x2+x3 ・・・(3)
[1≦x≦2] y=4−8x+5x2−x3 ・・・(4)
ラグランジュ補間曲線(周囲16点から双三次補間)
[0≦x≦1] y=(1/2)(x−1)(x+1)(x−1)
=1−(1/2)x−x2+(1/2)x3 ・・・(5)
[1≦x≦2] y=−(1/6)(x−3)(x−2)(x−1)
=1−(11/6)x+x2−(1/6)x3・・・(6)
図12に示すように、同じ双三次補間曲線であるバイキュービック補間曲線Nと比べて、ラグランジュ補間曲線Oは線形補間に近いカーブを描く曲線となっている。これは画像に対して、この補間曲線を適用した補間処理を行った場合には尖鋭度が低くなる、つまりぼけた画像になることを示し、バイキュービック補間曲線Nとして有名なsinc関数に近い軌跡を描く。
図12(b)は画像に対して適用した際の尖鋭度と対象となる曲線と線形補間直線とに囲まれる部分の面積との関係を示している。ここでは、例としてバイキュービック補間曲線を示し、斜線で示すPは各軸と線形補間直線とに囲まれる部分で、面積は0.5である。
これに対してバイキュービック補間曲線Nは補間点xが1までの間では直線より上に、1と2の間では直線より下に軌跡を描く。このとき、0≦x≦1の範囲で曲線と直線に囲まれる部分の面積をQ、1≦x≦2の範囲で曲線と直線に囲まれる部分の面積をRとすると、それぞれの面積は各区間内の定積分として求めることができる。
以下にバイキュービック補間曲線Nとラグランジュ補間曲線Oにおける面積の計算式とその値を示す。
バイキュービック補間曲線(周囲16点から双三次補間)
[0≦x≦1]
ラグランジュ補間曲線(周囲16点から双三次補間)
[0≦x≦1]
この結果から分かるように、バイキュービック補間、ラグランジュ補間は、それぞれ面積QとRは同じ面積となる。
面積Q及びRの値が大きいほど、画像に対する補間処理においては尖鋭効果を生む結果となる。逆に、座標変換時の補間処理のように連続性が求められる処理においては、数値が大きいほど変換誤差が大きくなる傾向にある。何れの曲線、直線もx=1に変曲点を持つが、三次曲線では比較的滑らかに繋がる。
線形補間直線は変換誤差の点では理想的に見えるが、変曲点による不連続さによって変換誤差が局所的に大きくなる傾向がある。総じて、三次曲線を含めた変曲点を滑らかに繋ぐ、自由曲線の方が変換の誤差が小さくなる。
以上2つの傾向により、変換誤差が小さくなるのは線形補間直線の値に近く、かつ変曲点において滑らかな繋がりを持つ曲線となる。この場合に、ラグランジュ補間曲線は理想的である。
なお、他の三次補間曲線は尖鋭度及びx=0のときの値によって、次のように分類できる。
Bicubic,sinc: 尖鋭度 高、x=0のときy=1
Lanczos,Hermit: 尖鋭度 中、x=0のときy=1
Michell,Bell,B-Spline: 尖鋭度 小、x=0のときy≠1
このように数ある補間曲線の内で、光学系の補間処理に用いて変換精度を最も小さくできる傾向を示す曲線は、ラグランジュ補間曲線である。
シミュレーションの結果として、レンズの光学設計値を用いた各種補間曲線採用時の座標変換誤差を、代表点の間隔を変えたもので比較すると、次表のようになる。
補間曲線(直線) 代表点間隔 変換誤差(10-4画素間隔)
平均値 最大値
線形(リニア) 32×32 389 1397
64×64 1613 5204
バイキュービック 32×32 1276 8174
64×64 3126 17826
スプライン 32×32 76 253
64×64 292 929
ラグランジュ 32×32 3 34
64×64 36 168
多項式(12次) − 39 139
この表に示すように、サンプリング間隔である代表点の間隔を広げると、急激に変換精度が低下するのが通常であるが、ラグランジュ補間曲線においては、変換誤差を小さくした状態を維持していることが明らかである。ここでは比較対象として、12次の係数を持つ多項式近似による結果も付記しているが、64画素間隔、つまり通常使用できる範囲の4倍程度の間隔でも、この多項式近似と同程度の変換誤差を実現できる。
このように、座標変換時の補間処理にラグランジュ補間曲線を採用することで、同一の代表点間隔であれば圧倒的に変換誤差を小さくすることが、また同一の変換誤差であれば代表点間隔を大きく広げることが可能である。その結果、補正用テーブルサイズの削減、即ちメモリ容量を大幅に少なくすることができると同時に、メモリアクセス頻度も少なくなることから、設計の自由度、回路規模の低減、ひいては消費電力を下げ、小型化に寄与することが可能となる。
補間位置における新たな画素値を算出する補間処理として、三次補間の概念を説明する。ここでは画素値をアドレス座標として、後述する位置ずれ補正の座標変換を例とする。輝度変換の場合の画素値は輝度値又は輝度比となる。
二次元座標系における表示中心座標(x0,y0)を原点とするレンズの歪曲収差情報、色収差情報及び解像度情報により、二次元座標系における各画素のそれぞれの位置における位置ずれ量を求める。即ち、座標変換処理は位置ずれ量だけ、補正するためのx軸方向、y軸方向のそれぞれの座標変換量を画素毎に求める。
座標変換した各画素各色の位置と色情報を基に、二次元座標系における各画素の本来の位置の画素データつまりRGBの各値を補間演算によって求める。補間演算においては、補間画素Sの座標(sx,sy)を指定し、先ず参照点と補間画素との正規化された距離pxとpyが求める。その後に、得られた距離pxとpyを用いた重み係数を各座標(x,y)において求める。その際に使用する三次関数は、前述した各三次式による補間曲線となり、バイキュービック補間であれば、前述の式(3)及び式(4)、ラグランジュ補間であれば式(5)及び式(6)が該当する三次補間式となる。
x、yのそれぞれの座標に対して上記三次式にpxとpyの値を代入し、参照点の重み係数を算出する。なお、pxとpyは正規化を行っており、例えば参照点である代表点の間隔が16画素おきであれば、16画素の距離で正規化を行うことになる。
補間画素Sの周囲の点線で囲まれた部分が正規化された1の領域とすると、yとy+1の軸及びxとx+1の軸上に存在する4つの参照点と補間画素との距離px、pyは、共に1よりも小さくなる。
逆に、その周りの12画素は1と2の間の値とする。最近傍4画素の重み付け係数演算の際に使用する三次式は、バイキュービック補間であれば式(3)に、ラグランジュ補間であれば式(5)となる。外周12画素の重み付け係数演算の債に使用する三次式は、バイキュービック補間であれば式(4)に、ラグランジュ補間であれば式(6)となる。これらの重み係数をx方向、y方向それぞれ求めた後に、参照点の画素値とこれらxとyの重み係数を掛け合わせたものを周囲16画素で加算した値が、補間画素における新たな画素値となる。
なお、ここでは色収差補正を前提に各色で座標を求め、補間演算を行うことを想定しているが、歪曲収差のみ、つまり歪みの補正を行う場合も同様である。その場合は各色を分離せず、1つの画素として補間演算処理を行うことになる。
本実施例の特徴である輝度変換の場合は、変換する値が座標ではなく輝度の変化量となる。補正値としては位置ずれ量の代りに、低下する輝度値(差分)、低下後の輝度値(絶対値)、又は低下前後の輝度値の比を使用する。
図13は実施例1における輝度補正処理の動作フローチャート図である。ステップS301では、光源光量変動に伴って、光源ユニット12で生ずる輝度むらの補正値を変更する必要があるか否かを判断する。変更する必要がある場合はステップS302に、必要がない場合はスキップしてステップS304にそれぞれ進む。
ステップS302では、更新された光源ユニット12で生ずる輝度むらの補正値を取得する。ステップS303では、ステップS302で取得した更新値によって、照明光学系13で生ずる輝度むらの補正値と統合して補正値を更新する。
ステップS304では、光源ユニット12及び照明光学系13に関わる輝度むらを補正するための補正値を選択する。空間変調器45の全画素の中から代表点を決定し、代表点上の変換される輝度値(実際には輝度比や輝度差)である補正値を、参照テーブルである輝度むら補正用テーブル102から読み出す。
ステップS305では、投影光学系15に関わる輝度むらを補正するための補正値を選択する。なお、ステップS304とステップS305は処理の順番が入れ換わってもよい。
ステップS306では、光源ユニット12、照明光学系13、及び投影光学系15で生ずる輝度むらを補正するための各補正値を統合する。ステップS307では、統合された補正値を基に、ラグランジュ補間による補間演算によって輝度変換後の輝度値を算出するための補正値を得る。算出の基となる補正値は代表点のものであり、代表点の間に存在する各画素の補正値をラグランジュ補間によって演算する。
ステップS308では、空間変調器45の画素間の特性変動を補正するための補正値を格納した局所変動補正用テーブル109から補正値を取得する。
ステップS309では、ラグランジュ補間によって算出した各画素の補正値と局所変動補正用テーブル109から読み出した補正値を統合する。ここで統合した補正値は、光源制御部17内のピーク輝度検出部54においても使用する。
ステップS310では、ステップS309で得られた補正値を基に、入力されたパターン画像の輝度むらを補正する。例えば、補正値が輝度変換処理の適用時の輝度の比を表す場合は、入力データに対して補正値を乗算し、最終的な輝度値を決定する。この補正処理は全ての画素に対して適用される。
図14は位置ずれ補正機構のブロック回路構成図である。位置ずれ補正処理部93において、収差補正用テーブル111の出力は補正値選択部112を経て座標値算出部113に接続されている。座標値算出部113の出力は画素補間処理部114に接続すると共に、位置ずれ量情報として出力している。また、画素補間処理部114には輝度補正処理部92の出力も接続され、画素補間処理部114の出力はセレクタ94に出力されている。
収差補正用テーブル111は歪曲収差を補正するためのものであり、参照点の座標に対応する変換後の座標値を算出するための補正値を格納している。カラーパターンの場合には、容量削減のため特定色の変換後の座標と、特定色を除く他色はこの特定色を基準とした差分を格納しているものとする。カラー、単色何れの場合も容量削減のため、空間変調器45の各画素に対応する輝度の補正値ではなく、サンプリングした特定の画素に対応した補正値を格納している。
補正値選択部112は位置ずれ補正のための補正値を選択し、表示する画素の代表点を決定し、代表点が変換される座標を参照テーブルである収差補正用テーブル111から読み出す。補正値選択部112では、代表点の元座標と対応する変換座標を算出するための補正値を読み出す。
座標値算出部113は補正値選択部112で選択された補正値を基に、変換後の座標を演算するラグランジュ補間し、座標値算出部113ではラグランジュ補間式を用いた補間演算によって変換後の各座標を求める。
画素補間処理部114は座標値算出部113で得られた変換後の各座標と、入力画像の各画素それぞれの輝度値を基に、補間位置における新たな輝度情報を算出する。なお、ここで云う補間位置は、空間変調器45面上の画素の位置を示す。
図15は位置ずれ補正処理の動作フローチャート図である。ステップS401では、構成される画素の情報を各色プレーン、色ごとに分離する。なお、ここではRGBの三原色で分離しているが、補正用テーブル自体が他の色のずれ量を示す補正データである場合は、RGB以外の色に分離する構成でもよい。色分離を必要としない単色画像の場合は処理をスキップする。ステップS402では、座標変換用の代表点の補正値を取得する。
ステップS403では、各画素の結像点がどの位置にずれるのか、又は理想的な結像点に導くためにどこに画素を配置すればよいのかを示す変換後の座標を算出する。ここでも、これまでと同様に、三次補間式としてラクランジュ補間を想定している。座標変換の詳細については後述する。
ステップS404では、補間処理に必要な入力画像内の参照画素の輝度値とステップS403で算出した変換後の座標を取得する。ステップS405では、ステップS404で得られた変換座標と参照画素が持つ画素情報を基に新たな補間位置における画素の値を画素補間によって再構成する。
ステップS406では、色毎に座標変換、画素補間を行ってきた画素の色情報を基に、新たな画素の色情報の再結合を行う。単色画像の場合は処理をスキップする。
撮像光学系では緑色の像に対して、赤色の像は外側に、青色の像は内側に結ぶ現象が起こり、白黒の被写体であってもその像のエッジに色滲み、つまり色ずれが生ずる。カラー画像の被写体であっても、境界領域等の色味が変わるエッジ部分では同様な色滲みが生ずる。
実レンズにおける結像においては画像が歪み、色によって結像位置(倍率)が異なる現象が生ずる。単色における前者を歪曲収差と呼び、色の違いによる倍率の差を倍率色収差と呼ぶ。
光の屈折は波長が短いほど顕著で、上述の凸レンズをイメージした撮像光学系では外側に赤色がずれるが、拡大光学系である表示光学系では逆に青色が外側にずれることになる。電子的な収差補正処理では、ずれ方向と逆方向にずれるように補正を行うことになる。例えば、投影光学系15の収差補正であれば、青色を内側に、赤色を外側に配置するような画像を形成することで、光学系の収差と相殺して、瞳位置では各色のずれのない好ましい画像を得ることができる。
図16は収差補正用テーブルの説明図であり、収差補正用テーブル111には、変換前座標である参照位置のアドレスと変換後の座標アドレスの差分値が組として格納されている。参照するアドレスにより、所望の画素のXY座標を指定することによって、基準色(本実施例ではG:緑)は変換後の座標を、基準色以外の他色(R:赤とB:青)については基準色との差分値(テーブル格納値)を得ることができる。Rの座標は格納されているGとの差分値T(Gx―Rx)とGの変換後の座標Gxから、Bの座標は格納されているGの差分値U(Bx―Gx)と同様に、Gの座標Gxからそれぞれ求めることになる。
本実施例では変換前の座標についても、テーブルとして構成する形態としているが、変換前の座標をメモリアクセス時のアドレスと対応付けることによって、変換前座標をメモリ領域にとる必要がなくなり、メモリサイズを更に削減することが可能である。
図17は座標変換処理の動作フローチャート図である。ステップS501では補間画素のアドレスとなる補間位置における座標を指定し、ステップS502では代表点である参照画素の座標を指定する。ここでは、参照画素の指定をステップS501より後段の処理としているが、ステップS501とステップS502では順番を入れ換えてもよい。
ステップS503では、代表点である参照画素の変換後のアドレスを得るために必要な補正値を収差補正用テーブル111から取得する。ステップS504では、ステップS503で得られた収差補正用テーブル111に格納されている値、即ち歪曲収差であれば画素のずれを取得する。例えば、色収差であれば各色の変換後の座標を算出するための色ずれ量を基に、代表点である参照画素におけるそれぞれの色の変換後の座標を取得する。なお、格納されている収差補正用テーブル111で示される代表点は、各画素の代表値となる間引きされた画素であるため、その間の値は補間演算によって算出することになる。この補間演算にラグランジュ補間式の三次式までを適用する。
ステップS505では、処理対象となる全画素に対して上記の座標変換処理を実行したかどうかを判断する。全画素に対して処理が終了している場合は座標変換処理を終了する。終了していない場合は先頭に戻って、対応する画素の収差を補正するための座標変換演算を繰り返し実行する。なお、画素補間処理の動作としては一般的な処理を用いる。
一般的な処理では、新たに補間を行う位置である座標の近傍に参照画素を指定し、補間曲線又は直線に新たに補間を行う位置と参照画素との距離を代入して、各参照画素の重み係数を求める。そして、各参照画素の値と座標(x,y)における重み係数の積を加算し、補間画素の値を演算する。
図18は撮像装置2内の不均一補正処理の動作フローチャート図である。ステップS701では、構成される画素の情報を各色プレーン、色ごとに分離する。なお、ここではRGBの三原色で分離しているが、補正用テーブル自体が他の色のずれ量を示す補正データである場合はRGB以外の色に分離する構成でもよい。色分離が必要のない単色画像の場合は処理をスキップする。
ステップS702では、周辺減光補正用の補正値を取得する。変換後の輝度値又は変換後の輝度の値を示す比の値を補正値として取得する。ステップS703では、減光を考慮した輝度値の補正を行うための各点の補正値を代表点からのラグランジュ補間によって算出する。代表点のみの補正値を格納しているのはメモリ容量削減のためであり、代表点間の各画素の補正値を三次補間式であるラグランジュ補間による演算で算出する。ステップS704では、入力画像から参照画素の輝度値とステップS703で算出した変換後の輝度値を取得する。
ステップS705では、ラグランジュ補間式等の三次補間式による補間演算処理によって画素の値である輝度値を算出する。ここではラグランジュ補間式を想定しているが、他の三次式でも支障はない。また、代表点の間隔が狭い場合は線形補間等で代用しても、或る程度の精度を実現することが可能である。
ステップS706では、撮像光学系21で生ずる歪曲収差の影響を補正するための位置ずれ補正処理を行う。処理の概要は図15の動作フローチャート図と同様である。ステップS707では、位置ずれ補正まで適用した画像の出力が必要か否かを判断する。適用後の画像が必要な場合はステップS708に進み、周辺減光補正処理を適用しただけの画像でよい場合はステップS709に進む。ステップS708では、位置ずれ補正の適用を受けて、ステップS708で補正処理した位置ずれ補正処理適用画像を選択し出力する。
ステップS709では、計測装置3内の距離計測処理部31において使用する情報用に、ステップS706の補正処理過程で得られた位置ずれ情報を出力する。
ステップS710では、距離計測処理部31で使用する画像として、周辺減光補正処理のみ適用した画像を選択し出力する。ステップS711では、色毎に座標変換、画素補間を行ってきた画素の色情報を基に、新たな画素の色情報の再結合を行う。単色画像の場合はこの処理をスキップする。
このように、照明ユニット11内の構成要素である光源デバイス41の階調表現機能を利用して、画素単位で輝度の不均一性を補正する際に低下する照射光量を光源光量調節で補償することで、コントラストの高いパターン投影を実現する。
特に、空間符号化法パターンによる照明時の均一性をピーク輝度と黒レベル双方の均一化によって確保し、高精度な計測を実現すると共に、精度の良い不均一補正を少ないメモリ構成で、かつ比較的簡易な回路規模で実現することができる。
図19以下は実施例2を示している。実施例1では撮像装置2の輝度むら補正、位置ずれ補正を撮像装置2内及び一部を計測装置3内で行っていたのに対して、実施例2では撮像系の各補正処理機能を照明装置側に統合し、撮像装置側は純粋に撮像機能に特化した構成としている。また、計測対象物Wの表面特性に応じた光源光量制御を加えている。
図19は実施例2の三次元計測システムのブロック回路構成図であり、実施例1の図2と対応し、同一の符号は同一の部材を示している。三次元計測システムは主として照明装置1’、撮像装置2’、計測装置3’から構成されている。照明装置1’において、不均一補正処理部16と光源制御部17の内容は実施例1と若干異なるが、構成要素としては殆ど変わりはない。
不均一補正処理部16は照明装置が投影する二次元パターン光の投影面での不均一性と撮像装置が取得する二次元パターン光の撮像画像中の不均一性とを合わせて補正する。光源制御部17は不均一補正処理によって低下したピーク輝度の調節機能と、計測対象物Wからの反射光又は透過光の強度に合わせて光源光量を調節するための機能を併せ持っている。
撮像装置2’は実施例1から不均一補正処理部26が取り除かれた構成である以外は実施例1と同様である。
計測装置3’は実施例1に対して、エッジ近傍輝度判定部121、撮像系不均一補正用テーブル122が追加されている。撮像装置2’のカメラ画像処理部25の出力は、エッジ近傍輝度判定部121に接続され、エッジ近傍輝度判定部121の出力は照明装置1’に接続されている。また、撮像系不均一補正用テーブル122の出力は照明装置1’の不均一補正処理部16に接続されている。
エッジ近傍輝度判定部121は撮像装置2’で取得したパターン画像中から、エッジ位置近傍での輝度を把握し、照明装置1’の光源光量を調節する指示を与える。計測対象物Wを撮像した画像中のエッジ近傍部から、エッジ位置が正しく取得できる画像か否かを判断し、必要に応じて画像を取得するのに適した照明装置1’の光源光量を調節するための値を算出し指示を与える。
撮像系不均一補正用テーブル122は計測システム中で使用する撮像装置2’に関わる不均一性を補正するための補正値を格納し、格納される値は任意に更新可能である。撮像装置2’を異なる性能、機能の装置と取り換える際に、補正値を予め取得できること、又はキャリブレーションによって補正値を計測前に取得できることが前提となるが、任意の撮像装置を選択し使用することが可能となる。計測対象物Wの表面特性や必要とされる計測精度に応じて、撮像装置2’を選択、交換することが可能となる。
このような構成により、反射率や透明度が異なる計測対象物Wに対しても高精度な三次元計測を実現し、また任意の撮像装置2’をシステムに取り込むことができる。
実施例2における三次元計測処理の動作は、実施例1の図3の三次元計測処理の動作フローに、光源光量調節、撮像系補正値の取得・更新処理を加え、光源光量の調節処理を変更したものである。以下では、光源光量調節の処理をS801とし、撮像系補正値取得・更新の処理をS803とし、光源光量調節の処理をS805として説明する。なお、ステップS801は図3におけるステップS101のキャリブレーション処理の直前に行い、ステップS803はステップS101のキャリブレーション処理の直後に行う。
ステップS801では、プレ計測によって取得した撮像画像中のエッジ近傍輝度から、計測対象物Wの反射率又は透過率に応じた投影パターンの輝度を、光源光量の調節によって実現する。
ステップS803では、撮像装置2’の不均一性を補正するための補正値を、計測装置3’から取得又は更新する。ステップS804では、ステップS803で取得した撮像系不均一補正値と照明装置1’の不均一性を補正するための補正値とを合わせて、計測システムとしての不均一補正を実施する。不均一補正が輝度変化補正と位置ずれ補正の各補正処理から成る点は実施例1と同様である。
ステップS805では、ステップS804で行った不均一補正処理によって低下したピーク輝度を補償するための光源光量の調節を行う。また、エッジ位置が精度良く計測できるように、計測対象物Wからの反射光又は透過光の強度に合わせて光源光量を調節する。
この処理プロセスにより、ロボットアームの制御に必要な三次元形状、位置、姿勢の各情報を取得し、部品ピッキングや自動組み立てを行うための制御に用いられる。特に、計測対象物Wの表面特性に応じて光源光量を調節する機能を追加したことと、撮像光学系21の補正処理を照明装置1’側で共に実施する点が実施例1と異なる。
表面特性に応じた光源光量調節は、計測対象を広げることに繋がると共に、最適な輝度を選択することで計測精度自体の向上にも繋がる。また、撮像系の補正処理を照明系側で共に実施することで、用途、精度に応じた撮像装置の選択自由度が広がると共に、撮像系のダイナミックレンジを計測精度に割り当てることで精度の向上に繋がる。
図20は計測対象物対応の光源光量調節処理の動作フローチャート図である。ステップS901では、計測対象物Wが未知な対象か、それとも既知の対象かを判断する。計測対象物Wが既知の場合はステップS912に、計測対象物Wが未知の場合はステップS902にそれぞれ進む。
ステップS902では、計測対象物Wが未知であることを受けて、予め登録、設定されている規定の光源光量で二値パターンを照明装置1’により投影する。ステップS903では、投影された二値パターン画像を撮像装置2’で撮像する。ステップS904では、ステップS903で取得した撮像画像内のパターンの変化点近傍、即ちエッジ近傍における輝度の分布を取得、把握する。
ステップS905では、ステップS904で取得した輝度分布情報から、ピーク輝度が所定値以上か、それとも下回るかを判断する。ピーク輝度が所定値と等しいか上回る場合はステップS906に、下回る場合はステップS908にそれぞれ進む。
ステップS906では、エッジ近傍の所定領域内の輝度差が予め定められた所定値以上か、それとも下回るかを判断する。エッジ近傍の輝度差が所定値と等しいか上回る場合はステップS907に、下回る場合はステップS911にそれぞれ進む。
ステップS907では、ピーク値が所定値以上でかつエッジ近傍の輝度差が所定値以上、つまりエッジ位置が十分に計測できる状況にあることを受けて、以後のキャリブレーション、本計測で使用する光源光量の値を現在使用している値で設定する。一度もループをしていない場合は、ステップS902で設定した規定値がそのまま設定値となる。
ステップS908では、ピーク値輝度が所定値を下回ることを受けて、光源光量を上げる設定を行う。その後に、この値を用いてステップS902と同様の二値パターンを、今回新たに設定した値で制御した光量を用いて投影する。更に、ステップS910で投影パターンを撮像し、以下ステップS904からの処理を繰り返す。
ステップS911では、ピーク値が所定値以上で、かつエッジ近傍の輝度差が所定値を下回ること、つまり光量が十分過ぎてハレーションを起こし、エッジ位置が計測できる状況にないことを受けて、光源光量を下げる設定を行う。その後の処理ステップS908以下は同様である。
このように、プレ計測で撮像画像中のエッジ近傍の輝度分布を把握し、計測に適した光量なのかを事前に把握する。ステップS912では、計測対象物Wが既知であることを受けて、光源光量の基本値又は計測対象物Wに合った設定値を選択する。
ステップS913では、ステップS912で選択された光源光量の設定値を照明装置1’に送信する。ステップS914では、送信された設定値を照明装置1’側で受信する。ステップS915では、受信した設定値を不均一補正処理が適用される前の基本光源光量として設定する。
図21は実施例2における照明装置1’のブロック回路構成図であり、実施例1の図5に対応している。また、図5と同一の符号は同一の部材を示している。撮像系補正値取得部131の出力は不均一補正処理部16を介して、表示ユニット14と光源制御部17に接続されている。また、光源制御部17には計測装置3’からの光量値を受信する計測対象物対応光量値取得部132が設けられ、この計測対象物対応光量値取得部132の出力は光源光量算出部133に接続され、更に光源ユニット12に接続されている。更に、光源補正量算出部55の出力が光源光量算出部133に接続されている。
不均一補正処理部16では、先に説明したように照明装置1’と撮像装置2’双方の不均一補正を照明装置1’側で実施し、照明装置1’内には撮像装置2’の輝度補正及び位置ずれ補正に必要な補正値を外部から取得するようにされている。
撮像系補正値取得部131は不均一補正処理部16で参照する撮像装置2’の不均一補正に使用する補正値を外部装置である計測装置3’から取得する。
計測対象物対応光量値取得部132は計測対象物Wの表面特性に合わせて、光源光量を変化させる基本となる光量値を外部装置である計測装置3’から取得する。計測対象物Wの反射率や透過率等表面特性に合わせた光源光量調節の考え方については、既に図20で説明した通りである。
光源光量算出部133は計測対象物対応光量値取得部132で取得した光源光量の基本設定値と、不均一補正処理によって低下する光源光量を補償するための光源補正量算出部55で算出された補正値とを統合する。
パターン画像入力部51又はパターン画像生成部53何れかの二次元パターン画像の選択をセレクタ52で行う。不均一補正処理部16で投影されるパターン画像のピーク輝度のばらつきと黒レベルのばらつきの双方を、空間変調器45が持つ階調表現によって補正処理する。補正処理された投影用パターン画像データは、空間変調器駆動回路46を経て、空間変調器45上の二次元マトリクスに対応した画素上で再現される。
不均一補正処理部16で補正処理が適用された結果、低下することになるピーク輝度をピーク輝度検出部54で検出、把握し、取得した値を基に光源光量を増大させるための補正量を光源補正量算出部55で算出する。
また、計測対象物Wの表面特性を考慮した光源光量の基本設定値を計測装置3’との連携によって把握、取得し、この値をベースに光源補正量算出部55で算出された補正量と合わせて光源光量調節を行う。最終的に算出された調節値を基に、光源ユニット12を発光させ、照明光学系13、空間変調器45及び投影光学系15を経由して、計測対象物W上に二次元の投影パターンが結像される。
以上の構成によって、三次元計測における計測精度を向上するために、輝度むらやエッジの位置ずれが少ない二次元パターン光を計測対象物Wに投影することができる。
図22は実施例2における輝度補正機構のブロック回路構成図であり、実施例1の図11で説明した機能ブロックに対して、撮像光学系21の補正値取得及び補正の統合処理が追加、変更された点が異なる。即ち、輝度補正処理部92において、図1の補正値算出部106の代りに補正値算出部141が設けられ、補正値算出部141には撮像系局所変動補正用テーブル142、照明系局所変動補正用テーブル143の出力が接続されている。また、輝度むら補正用テーブル144の出力が補正値選択部108に接続されている。
輝度補正処理部92は不均一補正処理部16の一部であり、照明装置1’及び撮像装置2’の撮像光学系21及び表示、撮像デバイスに起因する輝度変化を補正する。位置ずれ補正処理部93は投影光学系及び撮像光学系の歪曲収差の影響によって生ずる撮像面上での結像位置ずれを抑制する。
輝度むら補正用テーブル144は撮像装置2’の撮像光学系21に関わる輝度むらを補正するための補正値を格納している。
補正値選択部108は投影光学系15の輝度むらを補正するための補正値と、撮像光学系21の輝度むらを補正するための補正値を対応する点上でそれぞれ選択する。撮像デバイス22上の代表点を決定し、代表点上の変換されるべき輝度値(輝度の比の値)を参照テーブルである輝度むら補正用テーブル107、143から読み出す。補正値選択部108では、代表点に対応する輝度変換値である補正値を読み出すことになる。
撮像系局所変動補正用テーブル142は撮像デバイス22の各撮像画素間の特性変動を補正するための補正値を格納し、撮像デバイス22の画素間の変動は小さいものの、高精度の三次元計測を実現する上で無視し得ない値となる場合もある。撮像デバイス22の全ての画素、又は特に値の異なる画素に対して、アドレス座標(x,y)と補正値をペアにして格納する構成をとる。
照明系局所変動補正用テーブル143は空間変調器45の画素間の特性変動を補正するための補正値を格納し、構成については実施例1の図11の局所変動補正用テーブル109と同様である。
補正値算出部141はラグランジュ補間によって算出した各画素の補正値と、撮像光学系21と照明光学系13の各局所変動補正用テーブル142、143から読み出した補正値を統合する。ここで得られた補正値を基に、入力されたパターン画像に対して補正処理を適用する。本来のピーク輝度がどの程度まで下がるかを判断するための値として、ピーク輝度検出部54にも送ることも実施例1と同様である。
照明装置1’内の光源ユニット12、照明光学系13及び投影光学系15の各補正値と、撮像装置2’内の撮像光学系21の補正値とを統合し、ラグランジュ補間によって代表点以外の撮像面上の各画素における輝度むら補正の補正値を演算する。その後に、撮像光学系21と照明光学系13の各局所変動補正用テーブル142、143の値と統合して最終的な各画素の輝度むらを補正するための補正量を得る。得られた補正量を基に、空間変調器45の全画素に対して輝度むらの補正を適用することで、計測対象物Wからの反射又は透過パターン光を撮像した撮像画像内でピーク輝度、黒レベルとも均一となるパターン像が得られる。
図23は輝度補正処理の動作フローチャート図である。なお、ステップS1001〜S1005、S1007、S1009、S1010の各ステップの処理内容は、実施例1の図13の輝度補正処理の動作フローチャート図のステップS301〜S305、S307、S308、S309の処理内容と同様である。
ステップS1006では、撮像装置2’内の撮像光学系21に関わる輝度むらを補正するための補正値を選択する。撮像デバイス22の全画素の中から代表点を決定し、代表点上の変換される輝度値(実際には輝度比や輝度差)である補正値を参照テーブルである輝度むら補正用テーブル144から読み出す。ステップS304とステップS305及びステップS1006は処理の順番が入れ換わってもよい。
ステップS1007では、照明装置1’内の光源ユニット12、照明光学系13、投影光学系15、及び撮像装置2’内の撮像光学系21で生ずる輝度むらを補正するための各補正値を統合する。
ステップS1009では、空間変調器45の画素間の特性変動を補正するための補正値を格納した局所変動補正用テーブル143から補正値を取得する。処理自体は実施例1の図13のステップS308と同様である。
ステップS1010では、撮像デバイス22の画素間の特性変動を補正するための補正値を格納した局所変動補正用テーブル142から補正値を取得する。
ステップS1011では、ラグランジュ補間によって算出した光学系に関わる各画素の補正値と、撮像光学系21と照明光学系13を合わせた補正値算出部141から読み出した補正値を統合する。ここで統合した補正値は、光源制御部17内のピーク輝度検出部54においても使用する。
図24は実施例2における位置ずれ補正機構のブロック回路構成図であり、実施例1の図14に対応している。位置ずれ補正処理部93は、不均一補正処理部16の一部であり、実施例1の図14で説明した機能ブロックに対して、撮像光学系21の補正値取得及び補正の統合処理が追加、変更された点が異なる。
位置ずれ補正処理部93において、照明系収差補正用テーブル151の出力は補正値選択部112に接続されている。補正値選択部112には撮像系収差補正用テーブル152の出力も接続され、補正値選択部112の出力は座標値算出部113に接続されている。座標値算出部113の出力は画素補間処理部114に接続されると共に、位置ずれ情報として外部に出力されている。
また、画素補間処理部114には輝度補正処理部92の出力が接続され、画素補間処理部114の出力はセレクタ94に出力されている。
照明系の収差補正用テーブル151は照明装置1’内の照明光学系13で生ずる歪曲収差を補正するためのものである。参照点の座標に対応する変換後の座標値を算出するための補正値を格納する。カラーパターンの場合に、容量削減のため特定色の変換後の座標と、特定色を除く他色はこの特定色を基準とした差分を格納しているものとする。カラー、単色何れの場合も容量削減のため、空間変調器45の各画素に対応する輝度の補正値ではなく、サンプリングした特定の画素に対応した補正値を格納しているものとする。
撮像系収差補正用テーブル152は撮像装置2’内の撮像光学系21で生ずる歪曲収差を補正するためのものである。参照点の座標に対応する変換後の座標値を算出するための補正値を格納するのは、照明系収差補正用テーブル151と同様である。撮像光学系21の補正値は計測装置3’等から取得するが、計測前のキャリブレーションによって補正値を得る構成でもよい。
補正値選択部112は位置ずれ補正のための補正値を選択し、選択は照明系と撮像系の各収差補正用テーブル151、152を対象とする。照明光学系13に関しては、表示する画素の代表点を決定し、代表点が変換される座標を参照テーブルである照明系収差補正用テーブル151から読み出す。補正値選択部112では、代表点の元座標と対応する変換座標を算出するための補正値を読み出す。
撮像光学系21に関しては、撮像する画素の代表点を決定し、代表点が変換される座標を参照テーブルである撮像系収差補正用テーブル152から読み出す。その際に、最終的には撮像デバイス22上での位置ずれを対象とするため、照明装置1’側で取り扱う投影面上の位置ずれは、撮像デバイス22上での位置ずれに換算して補正値を統合処理する。
図25は実施例2における位置ずれ補正処理の動作フローチャート図である。ステップS1101、S1105〜S1108の処理内容は、実施例1の図15の位置ずれ補正処理の動作フローチャート図のステップS401、S403〜S406と同様である。
ステップS1102では、照明装置1’の位置ずれ補正に使用する座標変換用の代表点の補正値を取得する。ステップS1103では、撮像装置2’の位置ずれ補正に使用する座標変換用の代表点の補正値を取得する。ステップS1104では、ステップS1102及びステップS1103で取得した各補正値を統合し、撮像デバイス22上の代表点における補正値(位置ずれ量)を算出する。
以後のラグランジュ補間による座標値の算出、三次補間式に代表される補間演算による画素値の算出については図15の位置ずれ補正と同様の処理によって行われる。
このように、本実施例2によれば照明ユニット11内の構成要素である表示ユニット14の階調表現機能を利用して、撮像装置2’と照明装置1’の双方で生ずる輝度の不均一性を補正する。この際に、低下する照射光量を光源光量調節で補償することで、照明時にコントラストの高いパターン投影を実現する。
特に、計測対象物Wに合わせて光源光量の基本設定値を変更する構成を取ることで、計測システムとしてのロバスト性、環境変動への対応力を上げることができる。また、撮像装置2’側の均一性も表示ユニット14の輝度補正で実現するため、より撮像系のダイナミックレンジを他の処理、例えば距離計測処理に割り当てられることができ、その結果より高精度化を実現することが可能となる。
実施例1、2では、輝度補正用テーブルの構成について特に言及しなかった。投影光学系15、撮像光学系21に関しては装置構成により一意的に決まるが、光源ユニット12の構成やこの特性に応じて変化が予想される照明光学系13については、光源光量調節や制御に応じてテーブルに格納されている補正値を更新する構成を説明した。照明光学系13に関して想定できる補正値が予め定められている場合は、それぞれの補正値を収めた複数のテーブルを備え、その中から選択して使用する構成でもよい。
同様に、実施例1、2では、光源光量調節や制御で使用する光量値や補正値をその都度更新して使用する構成として説明した。予め、変動の範囲が想定でき、離散的な代表値で十分補正が可能な場合には、調節値や設定値を複数備える構成とし、調節の条件に従って複数の値の中から選択して使用する構成でもよい。
また実施例2では、撮像系の不均一補正処理を照明装置1’の内部で実施する構成としたが、計測システムを構成する他の装置でまとめて、又は分散して不均一補正処理が実施できることは云うまでもない。即ち、照明光学系13の不均一補正処理の一部を撮像装置2’の内部で実施する構成や、照明光学系と撮像光学系21を合わせた不均一補正処理の一部を、計測装置3’内で実施する構成がこれに該当する。
更には、実施例1、2で説明してきた構成を互いに組み合わせて使用できることは云うまでもない。各実施例における様々な技術を適宜組み合わせて新たなシステムを構成することは、当業者であれば容易に相当し得るものであるので、このような様々な組み合わせによるシステムもまた、本発明の範疇内に属するものである。
本発明においては、前述したフローチャート図の全部又は一部を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータなどが記録媒体に格納されたプログラムコードを読み出し実行する。この場合に、記録媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づいて、コンピュータ上で稼働しているオペレーティングシステム(OS)などが、実際の処理の一部又は全部を行う。その処理によって、前述した実施例の機能が実現される場合も含まれることは云うまでもない。
更に、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後に、そのプログラムコードの指示に基づいて、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。