(58)【調査した分野】(Int.Cl.,DB名)
前記露光条件調整部は、前記露光条件を切り替えて取得された複数の前記距離画像のうち、前記有効画素数が最も大きくなる前記露光条件を前記基準露光条件として設定する請求項1に記載の3次元撮影装置。
前記距離画像取得部が、前記露光条件毎に、視差を有する2枚の2次元画像を取得し、該2次元画像間の一致度を画素毎に評価し、該一致度が所定の閾値よりも高い画素に距離値を与えることにより前記距離画像を取得する請求項1から請求項3のいずれかに記載の3次元撮影装置。
前記基準有効画素数または前記合計有効画素数が前記第1閾値よりも大きくなった場合に、前記露光条件調整部により設定された全ての前記露光条件毎に取得された前記距離画像に基づいて合成距離画像を生成する距離画像合成部を備える請求項4に記載の3次元撮影装置。
【発明を実施するための形態】
【0008】
本開示の第1実施形態に係る3次元撮影装置1および3次元撮影条件調整方法について、図面を参照して以下に説明する。
本実施形態に係る3次元撮影装置1は、
図1に示されるように、距離画像を取得する距離画像取得部2と、距離画像取得部2に接続され、取得された距離画像に基づいて撮影条件を調整する撮影条件調整部3と、取得された距離画像を合成する距離画像合成部4とを備えている。
【0009】
距離画像取得部2は、3次元センサ5と画像処理部6とを備えている。
3次元センサ5は、光軸に交差する方向に間隔をあけて配置され、重複する視野範囲を備える2つの2次元カメラ7,8と、両2次元カメラ7,8の視野範囲に照明光を照射するプロジェクタ9とを備えている。
プロジェクタ9は計測対象物Oの表面にパターンを投影する。
【0010】
画像処理部6は、プロセッサおよびメモリにより構成され、3次元センサ5から出力された2枚の2次元画像G1,G2を処理して、各画素の距離値を算出することにより距離画像を生成する。
3次元センサ5の2つの2次元カメラ7,8は、
図2に示されるように、画像G1,G2の縦方向をx、横方向をyとして、x位置を完全に一致させた相対位置に配置されている。2つの2次元カメラ7,8によって同一の計測対象物Oを撮影すると、画像G1,G2上において、計測対象物Oは、y位置のみが視差dyだけ異なる位置に配置される。
【0011】
これにより、3次元センサ5から計測対象物Oまでの距離が、視差dyを用いて下式の通りに算出することができる。
距離=2次元カメラ7,8の光軸のy方向間隔×焦点距離/視差dy
【0012】
画像処理部6においては、2つの2次元カメラ7,8によって同一の計測対象物Oを撮影することにより取得された2枚の2次元画像G1,G2が入力されてくると、これら2枚の2次元画像G1,G2間で対応領域の探索が行われる。
対応領域は、一方の2次元画像G1,G2内の小領域の画像をテンプレートとして、テンプレートと同じパターンの対応領域を他方の2次元画像G1,G2の探索領域から探索するテンプレートマッチングを用いて探索される。
【0013】
上述したように、2つの2次元画像G1,G2はx位置を完全に一致させた2つの2次元カメラ7,8によって取得されているので、探索領域は、
図3に示されるように、テンプレートとなる小領域を含みy方向に延びる領域となる。
本実施形態においては、SAD(Sum of Absolute Difference)を用いて一致度の評価を行う。SADは小領域と対応領域との誤差の絶対値の和である。したがって、探索領域中においてSADが最も小さい領域を対応領域として抽出することができる。
【0014】
ここでは、SADの閾値を予め設定しておき、探索領域内においてSADが最小となり、かつ、SADが閾値を下回る対応領域のみが距離値を有する対応領域として出力される。一方の2次元画像G1において設定する小領域を縦横に1画素ずつ移動させながら全画素を網羅することにより、画像全体の距離値が算出され、距離画像が生成される。
【0015】
撮影条件調整部3は、プロセッサおよびメモリにより構成されている。撮影条件調整部3は、画像処理部6において生成された距離画像において距離値を有する有効画素の数である有効画素数を算出する有効画素数算出部10と、距離値を有しない無効画素を特定する無効画素特定部11とを備えている。また、撮影条件調整部3は、計測対象物Oの撮影に使用される露光条件を設定する露光条件調整部12と、設定された露光条件を記憶する露光条件記憶部13とを備えている。
【0016】
露光条件調整部12は、新規の露光条件を設定する旨の指令を外部から入力されることにより、
図4および
図5のフローチャートによって示される露光条件調整方法に従って、計測対象物Oの距離画像の取得に使用される露光条件を設定する。
最初に、基準となる露光条件である基準露光条件を設定する。
【0017】
基準露光条件の設定は、露光条件を切り替えて、各露光条件のもとで、3次元センサ5により距離画像を取得することにより行われる。露光条件としては、プロジェクタ9からの照明光の光量Iを複数段階に切り替えるとともに、2次元カメラ7,8の露光時間Eを複数段階に切り替えて、照明光の光量Iと露光時間Eとの全ての組み合わせからなる複数の露光条件を実現する。
【0018】
具体的には、露光条件調整部12は、
図4に示されるように、3次元センサ5のプロジェクタ9の光量Iを最小値I
0に設定し(ステップS1)、2次元カメラ7,8の露光時間Eを最小値E
0に設定する(ステップS2)。
設定された露光条件において、距離画像取得部2により距離画像が取得される(ステップS3)。
【0019】
距離画像取得部2において取得された距離画像は、露光条件調整部12に送られる。露光条件調整部12は、距離画像を有効画素数算出部10に送る。有効画素数算出部10においては、送られてきた距離画像が有効な距離値を有するか否かが画素毎に判定され、有効な距離値を有する有効画素の数である有効画素数が算出される(ステップS4)。
【0020】
距離画像および算出された有効画素数は露光条件に対応付けられて、露光条件調整部12内に記憶される(ステップS5)。そして、露光条件調整部12は、2次元カメラ7,8の露光時間Eが最大値であるか否かを判定し(ステップS6)、最大値ではない場合には、露光時間Eを1段階(例えば、ΔE=+1%)増大させて(ステップS7)、露光時間Eが最大値となるまで、ステップS3からの工程を繰り返す。
【0021】
ステップS6において、露光時間Eが最大値となった場合には、プロジェクタ9の光量Iが最大値であるか否かが判定され(ステップS8)、最大値ではない場合には、光量Iを1段階(例えば、ΔI=+1%)増大させて(ステップS9)、光量Iが最大値となるまで、ステップS2からの工程を繰り返す。
これにより、照明光の光量Iと露光時間Eとの全て組み合わせからなる複数の露光条件についての距離画像と有効画素数とが取得され、それぞれ露光時間Eに対応付けられて記憶される。
【0022】
全ての露光条件に対応する距離画像および有効画素数が取得された時点で、露光条件調整部12は、記憶された露光条件の中で、対応する有効画素数が最も大きな露光条件を抽出し、基準露光条件として露光条件記憶部13に記憶する(ステップS10)。これにより基準露光条件が設定される。
【0023】
次に、基準露光条件において取得された距離画像である基準距離画像における有効画素数(基準有効画素数)Nsが所定の閾値(第1閾値)Th以下であるか否かが判定される(ステップS11)。
【0024】
ステップS11において基準有効画素数Nsが閾値Thよりも大きい場合には、露光条件の調整処理が終了する。この場合、計測対象物Oの距離画像を取得する際に使用される露光条件は基準露光条件のみとなる。
ステップS11において基準有効画素数Nsが閾値Th以下である場合には、追加の露光条件の設定が行われる。
【0025】
追加の露光条件の設定は、具体的には、
図5に示されるように、合計有効画素数の初期値N
T0をゼロに設定し(ステップS12)、既に設定された露光条件とは異なるいずれかの露光条件を選択する(ステップS13)。そして、選択された露光条件において取得された距離画像と基準距離画像との論理和である合計距離画像を生成する(ステップS14)。その後、生成された合計距離画像を有効画素数算出部10に入力し、合計距離画像の有効画素数(合計有効画素数N
T)を算出させる(ステップS15)。
【0026】
合計有効画素数N
Tが初期値N
T0よりも大きいか否かが判定され(ステップS16)、合計有効画素数N
Tが初期値N
T0より大きい場合には、選択された露光条件が一時的に記憶され(ステップS17)、合計有効画素数N
Tが新たな初期値N
T0に置き換えられる(ステップS18)。そして、全ての露光条件が終了したか否かが判定され(ステップS19)、終了していない場合には、ステップS13からの工程が繰り返される。
【0027】
ステップS16において、合計有効画素数N
Tが初期値N
T0以下である場合には、ステップS19からの工程が実行される。そして、ステップS19において全ての露光条件が終了したと判定された場合には、最終的に記憶されていた露光条件が追加露光条件として露光条件記憶部13に記憶(追加設定)される(ステップS20)。
このとき、追加露光条件において取得された追加距離画像と基準距離画像との論理和である合計距離画像の合計有効画素数N
Tが最も大きくなる。
【0028】
さらに、合計有効画素数N
Tが閾値Th以下であるか否かが判定され(ステップS21)、合計有効画素数N
Tが閾値Th以下である場合には、合計距離画像が新たな基準距離画像に置き換えられて(ステップS22)、ステップS12からの工程が繰り返される。
【0029】
そして、ステップS21において、合計有効画素数N
Tが閾値Thよりも大きい場合には、露光条件の調整処理が終了し、露光条件記憶部13に記憶された基準露光条件を含む2以上の露光条件が、計測対象物Oの距離画像を取得する際に使用される露光条件となる。
【0030】
露光条件が設定された後には、実際の計測対象物Oの距離画像の取得の指令が入力されると、3次元撮影装置1は、設定された1以上の露光条件において距離画像を取得し、取得された距離画像を距離画像合成部4において合成する。これにより、基準露光条件のみでは距離値を取得できなかった画素を含め、より多くの有効画素を有する合成距離画像を出力することができる。
【0031】
このように、本実施形態に係る3次元撮影装置1および撮影条件調整方法によれば、計測対象物Oの距離画像を取得する前に、使用する露光条件を設定することができ、その後の計測対象物Oの距離画像を短時間で取得することができる。すなわち、従来、計測対象物Oの距離画像を、露光時間Eを網羅的に切り替えながら計測対象物Oの距離画像を取得していたのと比較して、計測に要する時間を大幅に短縮することができるという利点がある。
【0032】
なお、本実施形態においては、基準露光条件として、有効画素数Nsが最も大きくなる露光条件を選択したが、これに限定されるものではない。例えば、露光条件を切り替えながら、有効画素数Nsが第2閾値を超えた任意の露光条件を基準露光条件として設定してもよい。第2閾値を適当に設定しておくことにより、全ての露光条件について有効画素数を検出することなく、短時間で基準露光条件を設定することができる。
【0033】
また、有効画素であるか否かを判定する際に、有効画素である場合には、その画素のSAD値を対応付けて記憶しておいてもよい。そして、距離画像合成部4における合成距離画像の生成に際して、合成しようとする距離画像の有効画素が重複する場合には、より小さいSAD値を有する距離値、すなわち、一致度が高い方の距離値を合成距離画像の画素値として採用することにしてもよい。これにより、より信頼性の高い距離値を有する合成距離画像を取得することができる。
【0034】
次に、第2実施形態に係る3次元撮影装置21について、図面を参照して以下に説明する。
本実施形態の説明において、上述した第1実施形態に係る3次元撮影装置1と構成を共通とする箇所には同一符号を付して説明を省略する。
【0035】
本実施形態に係る3次元撮影装置21は、
図6に示されるように、距離画像取得部2と、撮影条件調整部22と、距離画像合成部4とを備えている。
【0036】
距離画像取得部2および距離画像合成部4は第1実施形態と同様である。
撮影条件調整部22は、プロセッサおよびメモリにより構成されている。
撮影条件調整部22は、露光条件調整部12と、露光条件記憶部13と、各露光条件において取得された複数の距離画像における、距離画像から画像処理にて計測対象物Oの位置を認識した際の計測対象物Oの位置のばらつきを露光条件毎に算出する位置精度算出部23とを備えている。
【0037】
露光条件調整部12は、新規の露光条件を設定する旨の指令を外部から入力されることにより、
図7および
図8のフローチャートによって示される露光条件調整方法に従って、計測対象物Oの距離画像の取得に使用される露光条件を設定する。
最初に、基準となる露光条件である基準露光条件を設定する。
【0038】
基準露光条件の設定は、露光条件を切り替えて、各露光条件のもとで、3次元センサ5により距離画像を取得することにより行われる。露光条件としては、プロジェクタ9からの照明光の光量Iを複数段階に切り替えるとともに、2次元カメラ7,8の露光時間を複数段階に切り替えて、照明光の光量Iと露光時間Eとの全ての組み合わせからなる複数の露光条件を実現する。
【0039】
具体的には、露光条件調整部12は、
図7に示されるように、3次元センサ5のプロジェクタ9の光量Iを最小値I
0に設定し(ステップSA1)、2次元カメラ7,8の露光時間Eを最小値E
0に設定する(ステップSA2)。また、撮影回数Nが初期化される(ステップSA3)。
設定された露光条件において、距離画像取得部2により距離画像が取得される(ステップSA4)。
【0040】
取得された距離画像は位置精度算出部23に送られて記憶される(ステップSA5)。
撮影回数Nが所定値である所定回数Naに達したか否かが判定され(ステップSA6)、所定回数Naに達していない場合には、撮影回数Nが1回インクリメントされ(ステップSA7)、ステップSA4からの工程が繰り返される。
【0041】
位置精度算出部23は、所定回数Naの撮影によるNa個の距離画像が送られてきた場合には、これらの距離画像に基づいて距離のばらつき(繰り返し認識精度)を算出する(ステップSA8)。
距離のばらつきは、例えば、以下の通りに算出する。
例えば、予め計測対象物Oの形状をモデルとして登録しておき、距離画像取得部2によって取得した距離画像に対してパターンマッチングを行ってモデルと同じ形状を探索する。探索した結果、認識された計測対象物Oの画像上での位置を一時的に記憶する。Na回の撮像、探索および位置の記憶を繰り返す。そして、記憶したNa個の位置からばらつきを算出する。好ましくは、計測対象物Oの位置(X,Y,R)のそれぞれの成分ごとに標準偏差を計算し、ばらつきの評価を行う。
【0042】
算出された距離のばらつきは露光条件に対応付けられて、露光条件調整部12内に記憶される(ステップSA9)。そして、露光条件調整部12は、2次元カメラ7,8の露光時間Eが最大値であるか否かを判定し(ステップSA10)、最大値ではない場合には、露光時間Eを1段階(例えば、ΔE=+1%)増大させて(ステップSA11)、露光時間Eが最大値となるまで、ステップSA3からの工程を繰り返す。
【0043】
ステップSA7において、露光時間Eが最大値となった場合には、プロジェクタ9の光量Iが最大値であるか否かが判定され(ステップSA12)、最大値ではない場合には、光量Iを1段階(例えば、ΔI=+1%)増大させて(ステップSA13)、光量Iが最大値となるまで、ステップSA2からの工程を繰り返す。
これにより、照明光の光量Iと露光時間Eとの全て組み合わせからなる複数の露光条件についての距離画像の距離のばらつきが算出され、それぞれ露光時間Eに対応付けられて記憶される。
【0044】
全ての露光条件に対応する距離画像および距離のばらつきが取得された時点で、露光条件調整部12は、記憶された露光条件の中で、対応するばらつきが最も小さな露光条件を抽出し、基準露光条件として露光条件記憶部13に記憶する(ステップSA14)。これにより基準露光条件が設定される。
【0045】
次に、基準露光条件において取得された距離画像である基準距離画像におけるばらつきである基準ばらつきBsが所定の閾値Th以下であるか否かが判定される(ステップSA15)。
【0046】
ステップSA12において基準ばらつきBsが閾値Th以下である場合には、露光条件の調整処理が終了する。この場合、計測対象物Oの距離画像を取得する際に使用される露光条件は基準露光条件のみとなる。
ステップSA12において基準ばらつきBsが閾値Thよりも大きい場合には、追加の露光条件の設定が行われる。
【0047】
追加の露光条件の設定は、具体的には、
図8に示されるように、ばらつきの初期値B
T0を任意の値(例えば、ばらつきの範囲ではありえないような大きな値)Mに設定し(ステップSA16)、既に設定された露光条件とは異なるいずれかの露光条件を選択する(ステップSA17)。そして、選択された露光条件において取得された距離画像と基準距離画像とを合成して合成距離画像を生成する(ステップSA18)。その後、生成された合成距離画像を位置精度算出部23に入力し、合成距離画像のばらつきである合成ばらつきB
Tを算出させる(ステップSA19)。
【0048】
合成ばらつきB
Tが初期値B
T0以下であるか否かが判定され(ステップSA20)、合成ばらつきB
Tが初期値B
T0以下である場合には、選択された露光条件が一時的に記憶され(ステップSA21)、合成ばらつきB
Tが新たな初期値B
T0として置き換えられる(ステップSA22)。そして、全ての露光条件が終了したか否かが判定され(ステップSA23)、終了していない場合には、ステップSA17からの工程が繰り返される。
【0049】
ステップSA20において、合成ばらつきB
Tが初期値B
T0よりも
大きい場合には、ステップSA23からの工程が実行される。そして、ステップSA23において全ての露光条件が終了したと判定された場合には、最終的に記憶されていた露光条件が追加露光条件として露光条件記憶部13に記憶(追加設定)される(ステップSA24)。
【0050】
さらに、合成ばらつきB
Tが閾値Th以下であるか否かが判定され(ステップSA25)、合成ばらつきB
Tが閾値Th
以下である場合には、合成距離画像が新たな基準距離画像に置き換えられて(ステップSA26)、ステップSA16からの工程が繰り返される。
【0051】
そして、ステップSA25において、合成ばらつきB
Tが閾値Th
よりも大きい場合には、露光条件の調整処理が終了し、露光条件記憶部13に記憶された基準露光条件を含む2以上の露光条件が、計測対象物Oの距離画像を取得する際に使用される露光条件となる。
【0052】
本実施形態に係る3次元撮影装置21および撮影条件調整方法によっても、計測対象物Oの距離画像を取得する前に、使用する露光条件を設定することができ、その後の計測対象物Oの距離画像を短時間で取得することができる。すなわち、従来、計測対象物Oの距離画像を、露光時間Eを網羅的に切り替えながら計測対象物Oの距離画像を取得していたのと比較して、計測に要する時間を大幅に短縮することができるという利点がある。
【0053】
また、計測対象物Oの位置のばらつきの小さい距離画像を取得可能な露光条件を選択しているので、見つけたいもの、すなわち、計測対象物Oの距離を精度よく測定した距離画像を得ることができる。
【0054】
なお、本実施形態においては、基準露光条件として、計測対象物Oの位置のばらつきが最も小さくなる露光条件を選択したが、これに限定されるものではない。例えば、露光条件を切り替えながら、ばらつきが所定の閾値未満の任意の露光条件を基準露光条件として設定してもよい。閾値を適当に設定しておくことにより、全ての露光条件についてばらつきを検出することなく、短時間で基準露光条件を設定することができる。
【0055】
また、距離画像を生成する際に、各画素のSAD値を画素毎に記憶しておいてもよい。そして、距離画像合成部4における合成距離画像の生成に際して、合成しようとする距離画像の有効画素が重複する場合には、より小さいSAD値を有する距離値、すなわち、一致度が高い方の距離値を合成距離画像の画素値として採用することにしてもよい。これにより、より信頼性の高い距離値を有する合成距離画像を取得することができる。