以下に、本発明の実施の形態にかかるシミュレーション装置、シミュレーション方法およびシミュレーションプログラムを図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
実施の形態1.
図1は、本発明の実施の形態1にかかるシミュレーション装置10の機能構成を示す図である。シミュレーション装置10は、計測条件取得部101と、仮想撮影画像生成部102と、三次元計測演算部103と、出力部104とを有する。
シミュレーション装置10は、アクティブステレオ法を用いて、計測対象物の表面の三次元位置を計測する三次元計測装置の計測条件を示す計測条件情報に基づいて、三次元計測装置の計測結果をシミュレーションする機能を有する。ここで想定している三次元計測装置は、光を計測対象物に投影する投影装置と、投影装置からの投影光が照射された計測対象物を含む撮影空間を撮影する撮像装置とを備える。投影装置からの投影光は、三次元計測に用いる投影パターンを示している。以下、「投影光」という場合、投影パターンを示す光を指す。三次元計測装置は、撮像装置の出力する撮影画像に含まれる投影パターンに基づいて、計測対象物の表面の三次元位置を計測する三次元計測処理を行うことができる。また、シミュレーション装置10は、三次元計測装置を利用するシステムの出力結果をシミュレーションしてもよい。
計測条件取得部101は、三次元計測装置の計測条件を示す計測条件情報を取得する。計測条件情報の詳細については、後述する。計測条件取得部101は、取得した計測条件情報を仮想撮影画像生成部102に入力する。
仮想撮影画像生成部102は、計測条件取得部101から入力される計測条件情報に基づいて、三次元計測装置に含まれる撮像装置が出力する撮影画像を再現したCG(Computer Graphics)画像である仮想撮影画像を生成する。仮想撮影画像生成部102は、生成した仮想撮影画像を三次元計測演算部103に入力する。
三次元計測演算部103は、仮想撮影画像生成部102から入力される仮想撮影画像を用いて、三次元計測装置が実行する三次元計測処理を実行し、計測値を取得する。三次元計測演算部103は、取得した計測値を出力部104に入力する。
出力部104は、三次元計測演算部103から入力される計測値を含むシミュレーション結果を出力する。
図2は、図1に示すシミュレーション装置10の動作を示すフローチャートである。シミュレーション装置10の計測条件取得部101は、計測条件情報を取得する(ステップS101)。計測条件取得部101は、取得した計測条件情報を仮想撮影画像生成部102に入力する。
仮想撮影画像生成部102は、計測条件情報に基づいて、仮想撮影画像を生成する(ステップS102)。仮想撮影画像生成部102は、生成した仮想撮影画像を三次元計測演算部103に入力する。
三次元計測演算部103は、仮想撮影画像を用いて、三次元計測の演算を実行し、計測値を取得する(ステップS103)。三次元計測演算部103は、取得した計測値を出力部104に入力する。出力部104は、計測値を含むシミュレーション結果を出力する(ステップS104)。
シミュレーション装置10は、三次元計測装置の計測条件情報に基づいて、撮像装置が出力する撮影画像を再現した仮想撮影画像を生成し、仮想撮影画像を用いて、三次元計測処理を実行することができる。このような構成をとることで、実際に投影装置および撮像装置を設置して実データを取得することなく、シミュレーション上で三次元計測の検証が可能になる。このため、現場に三次元計測装置を設置する作業、三次元計測装置のハードウェアおよびソフトウェアの調整作業、および計測対象物の実データを収集する作業を行う必要がなく、作業にかかる時間を短縮することができ、人的および物的コストを抑制することが可能になる。このため、三次元計測装置の計測条件を様々に設定しながらシミュレーションを行うことで、適切な計測条件を特定することができる。したがって、三次元計測装置の設計期間、三次元計測装置を現場に導入して稼働するまでに行う試行錯誤の検証期間を短縮することが可能である。
図3は、図1に示す計測条件取得部101の詳細な機能構成を示す図である。計測条件取得部101は、三次元計測装置の計測条件を示す計測条件情報を取得する。計測条件取得部101は、投影条件情報取得部201と、撮影条件情報取得部202と、計測対象物情報取得部203と、非計測対象物情報取得部204とを有する。
投影条件情報取得部201は、投影装置の投影条件を示す投影条件情報を取得する。投影条件情報は、投影装置の性能および使用状態の少なくとも1つを特定可能な情報を含むことができる。投影装置の性能は例えば解像度、画角であり、投影装置の状態は例えば投影装置の位置姿勢、ピントの状態である。また、投影条件情報は、投影パターンを示す情報を含むことができる。投影パターンを示す情報は、投影パターンの模様を示す情報を含む。なお、投影パターンが複数ある場合は、投影パターンを示す情報は、さらに投影パターンの枚数を示す情報を含んでもよい。投影パターンの模様は、投影パターンごとに予め定められた太さの縞を一定の規則に従って並べたストライプ模様、不規則な配置で並べられたドット状の模様、投影パターン中で投影光の強度を滑らかに変化させたグラデーション模様、もしくはこれらの組み合わせであってもよい。上記の模様は一例であり、あらゆる模様の投影パターンを用いることができる。投影パターンの枚数は1枚以上の任意の枚数である。また、投影パターンの模様を示す情報は、例えば、模様の種類を示す情報であってもよいし、所定の投影面における光の強度分布を示す情報であってもよい。
撮影条件情報取得部202は、撮像装置の撮影条件を示す撮影条件情報を取得する。撮影条件情報は、撮像装置の性能および使用状態の少なくとも1つを特定可能な情報を含むことができる。撮像装置の性能は例えば解像度、画角であり、撮像装置の状態は例えば、撮像装置の位置姿勢、ピントの状態である。
計測対象物情報取得部203は、計測対象物に関する情報、例えば、計測対象物の形状、位置姿勢などの状態、特性を示す情報である計測対象物情報を取得する。計測対象物の特性は、例えば、計測対象物の反射特性である。計測対象物の反射特性を示す情報は、例えば、計測対象物の色、拡散反射率、および鏡面反射率の少なくとも1つを含む。
非計測対象物情報取得部204は、撮影空間内に存在する、計測対象物以外の物体または投影光以外の環境光である非計測対象物に関する情報である非計測対象物情報を取得する。非計測対象物は、例えば、計測対象物を保持する容器、架台、冶具である。なお、非計測対象物は、上記の例に限定されず、実際の撮影装置が撮影する撮影画像に映り込みうる計測対象物以外の物体、例えば、壁、窓、その他の風景、および上記の物体を照射する照明光などの光も含まれる。非計測対象物情報は、非計測対象物の位置、形状および特性と、環境光の状態を示す情報とのうち少なくとも1つを含むことができる。
なお、計測対象物情報および非計測対象物情報に含まれる物体の形状を示す情報は、3D-CAD(3Dimensional-Computer-Assisted Drawing)のようなメッシュの組み合わせ、球または直方体といったプリミティブもしくはその集合体として表現することができる。物体の反射特性は、光が当たったときの物体の見え方を再現するために用いられる。環境光の状態を示す情報は、実際に撮像装置で撮影した画像のような陰影効果を得るために用いられる。また、物体は宙に浮いている状態であってもよいし、床面および物体を納める箱を設定して、箱の内部に物体が存在するようにしてもよい。床面および箱についても物体と同様に反射特性を設定できることが好ましい。
上記の通り、投影装置および撮像装置の解像度、画角といった性能を含む投影条件情報および撮影条件情報をそれぞれ個別に設定可能であるため、現実の三次元計測装置で起こり得る計測誤差をより正確に再現することが可能である。例えば、撮像装置の解像度が投影装置の解像度よりも低い場合、投影装置の投影パターンをより精細にしても、投影パターンを撮影した画像からは精細に投影パターンの模様を判別することができないため、三次元計測の誤差、欠損の原因となる。仮想撮影画像生成部102は、撮像装置の解像度に基づいて仮想撮影画像を生成するため、仮想撮影画像を解析することで、撮像装置の判別可能な投影パターンの細かさが分かる。これにより、撮像装置で判別可能な投影パターンの細かさの限界値を、投影装置の解像度の上限値として見積もることができる。或いは、投影装置の解像度に見合った撮像装置の性能を検討することもできる。つまり、三次元計測装置が有する投影装置および撮像装置は、互いに見合った性能のものを使用する必要があるため、シミュレーション結果を用いて、投影装置および撮像装置の性能を検討することが好ましい。
仮想撮影画像生成部102は、計測条件情報に基づいて、撮像装置が出力する撮影画像を再現した仮想撮影画像を生成する。仮想撮影画像生成部102は、計測条件情報に含まれる計測対象物情報および非計測対象物情報に基づいて、撮影空間内に存在する物体の配置を仮想の撮影空間内で再現し、撮影条件情報に基づいて、仮想撮影画像が示す撮影空間内の部分を特定することができる。さらに仮想撮影画像生成部102は、投影条件情報、計測対象物情報および非計測対象物情報に基づく反射モデルを用いて、撮影空間内で投影光により生じる陰影を再現することができる。仮想撮影画像生成部102は、撮像装置が出力する撮影画像における投影光によって生じる陰影の境界を示す位置を画素値で再現することができる。ここで、陰影の境界を示す位置に含まれる誤差は、撮影画像中で光の視認性を低下させる。光の視認性の低下とは、投影光が撮影空間内で照射される三次元位置と、撮影画像上における投影光の照射位置の検出結果とが整合しなくなることや、投影装置が二次元の投影パターンを投影する場合において、光の陰影境界、例えば、投影光が照射される領域と投影光が照射されない領域との境界であるパターン境界が正しく検出できなくなることを意味する。このため、光の視認性が低下すると、三次元計測の計測結果に誤差が生じたり、計測不可能な状態となったりして、三次元計測の品質が低下する。
撮影画像における光の陰影境界の位置に誤差が生じる要因には、投影装置に起因するものと、撮像装置に起因するものとが含まれうる。投影装置に起因する誤差要因としては、投影装置からの投影光が第1の面で反射した後、第2の面に入射して第2の面を照らす相互反射、投影装置のピントが合わないことによる光のボケなどが考えられる。第2の面は、第1の面と異なる物体の表面であってもよいし、第1の面と同じ物体の異なる部位であってもよい。
撮像装置に起因する誤差要因としては、撮像装置が有するレンズの歪曲収差などによる画像ひずみ、画像に規則性なく出現するランダムノイズ、撮像装置のピントが合っていないことによる画像ボケなどが考えられる。なお、誤差要因として扱われる現象は、上記に限定されず、光の投影状態が変化したり、撮影される画像が変化したりする原因となるあらゆる現象を含めてよい。
上述の相互反射が生じやすい状況の一例としては、2以上の物体が近接して配置されている場合が挙げられる。投影装置から照射される光線が、撮影空間中の第1の物体の表面で反射して、反射光が第1の物体と異なる第2の物体を照らす場合がある。また、撮影空間に存在する第1の物体の部位Xで反射した光が、同じ第1の物体の部位Xと異なる部位Yを照らす場合も考えられる。
相互反射は、投影装置からの投影光だけでなく、室内照明および屋外からの日光といった環境光においても同様に生じうる。また、光線の反射は一度とは限られず、複数回の反射も起こり得る。ただし、光は反射のたびにエネルギーが吸収されるため、反射回数を重ねると、撮像装置の観測感度を下回り、撮影画像に影響を及ぼさなくなることが多い。このため、予め定めた回数以上の反射光による相互反射は無視してもよい。
相互反射による光の強度は、仮想撮影画像を生成するときと同様の反射モデルに加えて、反射前の光の強度と反射点の反射特性および光の進行経路に基づいて決定することができる。
相互反射が生じると、画像上で観測されるべきパターン境界以外にも光の陰影境界が観測されることがある。パターン境界以外の境界が観測された部分においては、光の照射方向を正しく計算することができず、三次元計測の際に計測誤差の原因となる。
仮想撮影画像生成部102は、光の相互反射の影響を考慮して、仮想撮影画像を生成するため、三次元計測演算部103が出力する計測値には、実際に相互反射が生じ得る計測対象物に対して三次元計測を行った際に生じ得る計測誤差が再現されている。このため、計測誤差の大きさや出現傾向を、実際に三次元計測装置を構成する前に把握することが可能になる。計測誤差の出現傾向を事前に把握することができれば、投影装置および撮像装置の位置関係または計測対象物の配置方法などの計測条件を変更することで、相互反射の影響を低減する方法を検討することもできる。したがって、三次元計測の精度を向上させることが可能である。
投影装置のピントずれが生じると、光の陰影境界のボケが生じ、パターン境界がぼやけるため、光の照射方向を特定する目的で、撮影画像上における投影パターンの解析精度が低下し、光の照射方向が誤って算出される可能性がある。撮影空間が一定以上の奥行を有する場合、投影装置のピントを撮影空間の全体に合わせることができないことも考えられる。このような場合、投影装置のピントずれが生じた場合でも精度よく投影パターンを解析できるような計算方法を検討することが必要となる。しかしながら、実際に投影装置および撮像装置を動作させて計測対象物を観測したデータである実データを用いて投影パターンの解析方法を検証しようとしても、実データにおけるパターン境界の真の位置を知ることは困難である。このため、検証結果が正しいかどうかを厳密に判断することはできない。これに対して、シミュレーション装置10では、計測条件情報に基づいてパターン境界の真の位置を取得することができ、投影装置のピントずれに起因するパターン境界のボケを再現した仮想撮影画像を生成する。そのため、投影パターンの解析方法を改良した結果として、パターン境界の検出結果が改善しているかどうかを容易に判定することが可能になる。したがって、三次元計測に要する投影パターンの解析アルゴリズムの開発を効率化することが可能になる。
また、投影装置のピントずれの度合と三次元計測の計測結果との関係をシミュレーションすることができるため、どの程度のピントずれであれば計測結果の誤差が許容範囲内となるかを検証することができ、投影装置のピントがあう奥行の範囲といった要求性能を見積もることが可能になる。したがって、シミュレーション装置10は、三次元計測装置の設計を容易にすることができるという効果を奏する。
また、仮想撮影画像生成部102は、撮像装置のレンズによる歪曲収差の効果として、画像ひずみを計算することができる。画像ひずみのモデルの一例として、画像にひずみが生じる前後の画素の対応は、下記の数式(1)を用いて求めることができる。
ここで、(xu,yu)は、ひずみのない画像における画像座標であり、(xd,yd)は、ひずみのある画像における画像座標であり、Kは、ひずみの度合を示す係数であり、rは、画像中心から注目画素までの距離である。注目画素は、ひずみのある画像の任意の座標(xd,yd)の画素である。仮想撮影画像生成部102は、注目画素として、ひずみのある画像のすべての画素を順次選択してもよい。画像ひずみは、簡略化したモデルから詳細なモデルまで多数提案されている。シミュレーション装置10は、画像ひずみの計算式として、数式(1)を含む任意のモデルを用いることができる。
仮想撮影画像生成部102は、画素ごとまたは画像上の一定領域ごとに、ノイズの出現確率および強度を設定することで、ランダムノイズを再現することができる。仮想撮影画像生成部102は、出現確率を用いて画素または領域にノイズを付与するか否かを判定し、付与すると判定した場合には、設定した強度に基づいて画素または領域の色を変化させる。強度の指定の方法としては、元の画素または領域の色に対する変化率としてもよいし、整数値としてもよい。強度は、固定の変化率または整数値を用いて示してもよいし、一定の範囲を有するものとしてもよい。また、強度は、画素の輝度の上昇を意味する正の値と、輝度の下降を意味する負の値の両方を取り得る。
仮想撮影画像生成部102は、注目画素の周囲の画素の色情報を用いて、撮像装置のピントずれに起因する画像ボケを再現することができる。注目画素としては、画像上の任意の画素を選択してよい。画像ボケが生じた後の色の計算方法としては、注目画素とその周囲の画素における色の平均値とする方法、注目画素に近い画素ほど高い比率で合成するガウシアン平滑化などがある。ガウシアン平滑化を用いることで、平均値をとる方法よりも正確に画像ボケを再現することができるという利点がある。また、平均値をとる方法は、ガウシアン平滑化を用いる方法よりも処理時間が早いという利点がある。また、画像ボケは、撮像装置から物体までの距離によっても変化する。ピントが合っている物体はボケが少なく、ピントがあっていない物体はより大きくぼやけた像として撮像される。距離によるボケの度合の変化とピントが合っている距離といった情報をさらに用いることで、仮想撮影画像生成部102は、より実際の撮影画像に近いボケを再現することが可能である。該情報は、計測条件情報として取得してもよいし、計測条件情報に含まれる他の情報から計算により求めてもよい。なお、仮想撮影画像生成部102が誤差要因を再現する具体的な方法については、一例を実施の形態2および3で説明するが、再現方法はこれらに限定されない。
三次元計測演算部103は、仮想撮影画像を入力として、三次元計測処理を実行する。三次元計測演算部103が実行する三次元計測処理は、三次元計測装置が実環境で撮影した撮影画像を用いて行う三次元計測処理と同じであってよい。三次元計測処理は、計測対象物に照射された投影パターンの識別処理と、距離計測処理とを含む。投影パターンの識別処理は、複数枚の撮影画像から同じ位置の画素の輝度情報を取得し、それぞれの画素が投影装置によって照らされているかどうかを判定し、その組み合わせを取得する。パターン識別処理としては、上記の他にも、注目画素の周囲のローカルな投影パターンの模様を解析する方法がある。ローカルな投影パターンがパターン全体においても独自性があるように設計されていれば、投影装置から投光されている投影パターン全体のうち、注目画素周辺に照射されている部分がどこに位置するかを特定することができる。いずれのパターン識別方法においても、投影装置から注目画素までのベクトルを一意に求めることが目的である。
投影パターンの識別処理によって、投影装置から注目画素までのベクトルを求めると、三次元計測演算部103は、計測条件情報に含まれる、投影装置および撮像装置の位置および姿勢といった配置条件を示すセンサ情報に基づいて、三角測量の原理で距離計測処理を行う。距離計測処理の詳細は、使用する投影パターンによって異なる。シミュレーション装置10が使用する投影パターンは任意の投影パターンであってよいため、距離計測処理は、使用する投影パターンに合わせて選択される。
図4は、図1に示すシミュレーション装置10が出力する表示画面20の一例を示す図である。表示画面20は、処理結果表示領域21と、計測条件表示領域22と、計測条件のリスト表示領域23と、表示内容選択領域24と、実行ボタン25と、保存ボタン26と、終了ボタン27とを含む。処理結果表示領域21には、シミュレーション結果が表示される。計測条件表示領域22には、個別の計測条件が表示されるとともに、表示された計測条件の変更入力ができるようになっている。計測条件のリスト表示領域23には、保存済みの計測条件がリスト表示される。リスト表示領域23に表示された計測条件のリストの中から1つが選択されると、選択された計測条件が計測条件表示領域22に表示される。表示内容選択領域24には、処理結果表示領域21に表示する内容を選択するための操作部が表示され、ここでは、仮想撮影画像生成部102が再現した撮影画像と、計測データとが選択肢として表示されている。
実行ボタン25は、計測条件表示領域22に表示されている計測条件を使用して、シミュレーション処理を実行するための操作部である。保存ボタン26は、計測条件表示領域22に表示されている計測条件を保存するための操作部である。終了ボタン27は、三次元計測のシミュレーション処理を終了するための操作部である。
計測条件取得部101は、実行ボタン25が操作されると、計測条件表示領域22に表示されている計測条件を取得して仮想撮影画像生成部102に入力する。仮想撮影画像生成部102が仮想撮影画像を生成して三次元計測演算部103に入力し、三次元計測演算部103が三次元計測処理を実行して計測結果を出力部104に入力すると、出力部104は、仮想撮影画像、計測値といったシミュレーション処理の過程で得られる処理結果、計測条件情報などシミュレーション処理への入力データなどを処理結果表示領域21に出力する。
ユーザにとって見やすい出力となるように、出力部104は、注目箇所を強調する、コントラストを調整する、ノイズを除去するなどの処理を行ってもよい。図4に示す表示画面20は一例であり、図4の例に限定されない。図4に示す表示画面20を用いることで、ユーザは、計測条件を逐次調整しながら、繰返しシミュレーション結果を確認することができる。
以上説明したように、本発明の実施の形態1によれば、実際の撮像装置が出力する撮影画像を再現した仮想撮影画像が生成され、仮想撮影画像に基づいて、三次元計測処理が行われる。このような構成をとることで、実際に三次元計測装置を構成することなく、三次元計測の計測結果を得ることができる。また、シミュレーション装置10は、実際の三次元計測装置で取得される撮影画像に含まれる光の位置の誤差を再現することができる。誤差は、例えば、歪曲収差による画像ひずみ、ランダムノイズ、画像ボケ、相互反射などに起因して生じる。実際に三次元計測装置を構成した場合に、実際の撮影画像に後からこれらの誤差を付加するのは難しいが、仮想撮影画像上でこれらの誤差を再現することで、三次元計測のシミュレーション結果の精度を向上することができる。また、仮想撮影画像に再現性よく投影パターンおよび誤差を再現することができれば、三次元計測処理は通常の処理を用いることが可能である。
実施の形態2.
図5は、本発明の実施の形態2にかかる仮想撮影画像生成部102の機能構成を示す図である。仮想撮影画像生成部102は、光学再現画像生成部301と、画質劣化処理部302とを有する。なお、図示していないが、図5に示す仮想撮影画像生成部102を備え、図1に示すシミュレーション装置10と同様の構成を示す装置を、実施の形態2にかかるシミュレーション装置12と称する。シミュレーション装置12は、仮想撮影画像生成部102以外の構成については、図1に示す実施の形態1と同様であるため、ここでは詳細な説明を省略する。以下、実施の形態1と同様の構成要素については、図1に示す符号を用いて説明し、実施の形態1と異なる部分について主に説明する。
光学再現画像生成部301は、計測条件情報に基づいて、光学的なシミュレーションを行い、撮影画像を再現した光学再現画像を生成する。画質劣化処理部302は、光学再現画像に対して、誤差要因に応じた画質の劣化処理を施す。仮想撮影画像生成部102は、劣化処理後の画像を仮想撮影画像とする。
図6は、図5に示す仮想撮影画像生成部102を有するシミュレーション装置12の動作を示すフローチャートである。計測条件取得部101は、計測条件情報を取得する(ステップS201)。計測条件取得部101は、取得した計測条件情報を仮想撮影画像生成部102に入力する。
仮想撮影画像生成部102の光学再現画像生成部301は、計測条件情報に基づいて、光学再現画像を生成する(ステップS202)。光学再現画像生成部301は、生成した光学再現画像を画質劣化処理部302に入力する。
画質劣化処理部302は、光学再現画像に対して、画質劣化処理を実行する(ステップS203)。画質劣化処理部302は、画質劣化処理後の画像を仮想撮影画像として三次元計測演算部103に入力する。
三次元計測演算部103は、仮想撮影画像を用いて、三次元計測処理を行い、計測結果を得る(ステップS204)。三次元計測演算部103は、計測結果を出力部104に入力する。出力部104は、計測結果を含むシミュレーション結果を出力する(ステップS205)。
光学再現画像生成部301は、画像中の各画素に対応する撮影空間内の撮像位置を計算し、計算した撮像位置に投影光が照射されているかどうか、つまり、投影装置の投影光が撮像位置に到達しているか否かを判定する。まず、光学再現画像生成部301は、センサ情報と、撮影空間内に存在する物体の配置および特性を示す情報とに基づいて、撮像装置の光学中心Ocamから各画素を通るベクトルVcamを計算する。光学再現画像生成部301は、ベクトルVcamと最初に交差する物体の表面上の点Pobjを検出する。このような計算によって、各画素に撮像されている物体を把握することができる。
続いて、光学再現画像生成部301は、物体の表面上の点Pobjが投影装置によって照らされているかどうかを判定する。光学再現画像生成部301は、まず、投影装置の光学中心Oprojから点Pobjに向かうベクトルVprojを計算する。光学再現画像生成部301は、センサ情報と、投影装置の投影パターンを示すパターン情報とを用いて、投影装置から投影パターンが照射される範囲にベクトルVprojが含まれているか否かを判定する。含まれる場合、物体の表面上の点Pobjは、投影装置に照らされていると判定することができる。
光学再現画像生成部301は、上記の計算結果に加えて、計測条件情報に含まれる反射特性および環境光の状態を示す情報を用いて、各画素の色を決定することができる。色を決定するために用いられる代表的な反射モデルとしては、拡散反射においてはランバート反射、鏡面反射においてはフォンの反射モデルが挙げられる。しかしながら、光学再現画像生成部301が使用する反射モデルはこれらに限定されず、任意の反射モデルを使用することができる。
なお、光学再現画像の生成において、画像は離散的な画素の集合体であるため、ひとつの画素に撮像される範囲に、物体の境界、投影装置の投影パターンの境界部分が含まれることがある。その場合は、境界を構成する2つ以上の物体の色が混ざった色を画素の色とする方が自然である。しかし、上述のベクトルVcamは、撮影空間中の1点の交差点しか検出することができない。このため、境界を構成する物体のうち、ベクトルVcamと交差する物体の色のみが画素の色として決定されてしまう。結果として、物体や投影パターンの境界が不自然に見える画像が生成される可能性がある。これはいわゆる量子化誤差に起因する現象の一種であり、画像処理の分野においてはしばしば問題となる現象である。
量子化誤差に起因する現象の問題を解決するために、光学再現画像を仮想撮影画像の解像度よりも高い解像度で作成しておき、画質劣化処理において画像サイズになるように画像を縮小する処理を加えることで、仮想撮影画像を生成する方法がある。例えば、光学再現画像生成部301は、最終的に出力する仮想撮影画像の解像度の4倍の解像度で光学再現画像を生成する。この場合、仮想撮影画像の各画素の色は、光学再現画像におけるその画素にもっとも近い4画素分の色情報を用いて決定することができる。これにより、物体および投影パターンの境界付近の表現が自然な仮想撮影画像を生成することができる。
光学再現画像生成部301は、誤差要因のうち、例えば、投影装置に起因する誤差要因である相互反射および投影装置のピントずれの情報を用いて、光学再現画像を生成する。これらは投影パターンの投影状態に影響するため、例えば、ピントずれが生じる場合には、光学再現画像生成部301は、光学再現画像におけるパターン境界を含む光の陰影境界をぼやけさせる。光学再現画像生成部301は、例えば、第1の面で反射した反射光が第2の面に入射する入射点を含む画素の輝度を、相互反射の影響を考慮しないときの輝度よりも高くすることで、相互反射を再現することができる。また、光学再現画像生成部301は、光の陰影境界に対応する画素の輝度を調整することで、光の陰影境界のボケを再現することができる。相互反射を再現する具体的な方法、および、投影装置のピントずれに起因する光の陰影境界のボケを再現する具体的な方法については、例えば、実施の形態3で説明する方法を用いることができる。
画質劣化処理部302は、例えば、撮像装置に起因する誤差要因である画像ひずみ、ランダムノイズおよび撮像装置のピントずれの情報を用いて、光学再現画像の画質を劣化させる。例えば、画質劣化処理部302は、画像中の輝度変化を平坦化するフィルタリング処理を行って、物体の輪郭、光の陰影境界などをぼやけさせたり、ランダムに選択した位置の画素の輝度を変化させたりすることで、光学再現画像の画質を劣化させることができる。
本発明の実施の形態2にかかるシミュレーション装置12によれば、光学シミュレーションによって、光が物体に遮蔽されることによる影を含めた光学的な効果を再現した画像である光学再現画像を得ることができる。さらに、光学再現画像に画質の劣化処理を施すことで、実際の撮影画像を精度よく再現することが可能になる。
また、光学的な現象を再現する処理と画質の劣化を再現する処理とを明示的に分けることで、三次元計測の誤差要因をそれぞれ独立して分析することが容易になる。三次元計測装置の実機を用いて三次元計測の計測誤差を検証する場合、各誤差要因がどれくらいの比率で影響しているのかを切り分けることは困難であるが、シミュレーション装置12を用いることで、投影装置に起因して生じる計測誤差と、撮像装置に起因して生じる計測誤差とを切り分けて検証することができる。したがって、三次元計測装置の設計や、投影装置および撮像装置などの機器の性能の検討を正確に行うことができる。また、実環境で三次元計測装置の実機を用いて検証するためには、様々な計測条件に対応する機器および計測対象物をそろえる必要があるため、多大な費用および時間がかかる。シミュレーション装置12によれば、シミュレーションによって検討を実施することができるため、より多くの計測条件で三次元計測装置を評価することができ、製品保証が容易になるという効果がある。
実施の形態3.
図7は、本発明の実施の形態3にかかるシミュレーション装置13の機能構成を示す図である。シミュレーション装置13は、計測条件取得部101と、仮想撮影画像生成部102と、三次元計測演算部103と、出力部104と、誤差情報取得部105とを有する。以下、シミュレーション装置12と異なる部分について主に説明する。
シミュレーション装置13は、シミュレーション装置12の構成に加えて、誤差情報取得部105を有する。誤差情報取得部105は、仮想撮影画像で表現する誤差要因を示す誤差情報を外部から取得する。誤差情報には、誤差要因の種類ごとの誤差の強度および付加順のうち少なくとも1つが含まれる。誤差情報取得部105は、取得した誤差情報を仮想撮影画像生成部102に入力する。
図8は、図7に示す仮想撮影画像生成部102の機能構成を示す図である。シミュレーション装置13において、仮想撮影画像生成部102は、光学再現画像生成部301と、画質劣化処理部302と、誤差要因決定部303とを有する。
誤差要因決定部303は、誤差情報に基づいて、光学再現画像を生成して画質の劣化処理を施す誤差要因付加処理の強度および付加順の少なくとも1つを含む誤差要因付加処理の処理条件を決定する。誤差要因決定部303は、決定した処理条件を光学再現画像生成部301に入力する。
光学再現画像生成部301は、計測条件情報と誤差情報と誤差要因決定部303から入力される処理条件とに基づいて、光学再現画像を生成する。画質劣化処理部302は、計測条件情報と誤差情報とに基づいて、光学再現画像に対して画質の劣化処理を施す。
図9は、図7に示すシミュレーション装置13の動作を示すフローチャートである。計測条件取得部101は、計測条件情報を取得する(ステップS301)。計測条件取得部101は、取得した計測条件情報を仮想撮影画像生成部102に入力する。
誤差情報取得部105は、誤差情報を取得する(ステップS302)。誤差情報取得部105は、取得した誤差情報を仮想撮影画像生成部102に入力する。なお、ステップS301の処理とステップS302の処理とは同時並行で行われてよい。
仮想撮影画像生成部102の誤差要因決定部303は、誤差要因の強度および付加順の少なくとも1つを含む、誤差要因付加処理の処理条件を決定する(ステップS303)。誤差要因決定部303は、決定した処理条件を光学再現画像生成部301に入力する。
光学再現画像生成部301は、処理条件と、計測条件情報とに基づいて、光学的なシミュレーションによって光学再現画像を生成する(ステップS304)。光学再現画像生成部301は、生成した光学再現画像を画質劣化処理部302に入力する。
画質劣化処理部302は、計測条件情報と誤差情報とに基づいて、光学再現画像の画質劣化処理を実行する(ステップS305)。画質劣化処理部302は、画質劣化処理後の画像を仮想撮影画像として三次元計測演算部103に入力する。
三次元計測演算部103は、仮想撮影画像を用いて、三次元計測処理を実行し、計測結果を得る(ステップS306)。三次元計測演算部103は、計測結果を出力部104に入力する。出力部104は、計測結果を含むシミュレーション結果を出力する(ステップS307)。
図10は、図9に示すステップS304の詳細を示すフローチャートである。光学再現画像生成部301は、まず、誤差要因を含まない光学再現画像を生成する(ステップS401)。上記の通り、光学再現画像生成部301は、投影光によって直接照らされる領域である投影領域と、照らされない領域である非投影領域とを判別し、投影領域を非投影領域よりも明るい色で描画する。
続いて光学再現画像生成部301は、誤差情報から誤差要因の付加順を取得する(ステップS402)。さらに光学再現画像生成部301は、誤差情報から誤差要因の種類および種類ごとの強度を取得する(ステップS403)。以下、光学再現画像生成部301は、ステップS402で取得した付加順に従って、光学再現画像に誤差を付加するか否かを判断していく。光学再現画像生成部301は、誤差情報に基づいて、まず、光学再現画像に相互反射を付加するか否かを判断する(ステップS404)。
相互反射を付加する場合(ステップS404:Yes)、光学再現画像生成部301、光学再現画像に相互反射を付加する(ステップS405)。具体的には、相互反射が生じる場合、物体の第1の面で反射した反射光が、第2の面に入射する。このとき光学再現画像生成部301は、第2の面に反射光が入射する入射点を含む画素の輝度を、相互反射によって輝度が増加する画素とする。光学再現画像生成部301は、輝度の増加量を、第1の面を含む物体および第2の面を含む物体の位置姿勢と、第1の面および第2の面の表面特性とに基づいて決定する。光学再現画像の各画素の輝度は、相互反射の影響を考慮しないときの画素の第1の輝度に、相互反射による輝度の増加量を加えた第2の輝度となる。
なお、光学再現画像生成部301は、ステップS405の処理において、必ずしも全ての光の反射において相互反射による輝度増加を計算しなくてもよい。例えば、光の鏡面反射率が低い面については、輝度増加量は画像の分解能よりも小さくなることがあるため、閾値以下の鏡面反射率を有する面については、相互反射による輝度の増加はないものとみなすことができる。
光学再現画像生成部301は、ステップS405の相互反射を付加する処理を終えると、誤差付加処理が終了であるか否かを判断する(ステップS406)。誤差付加処理が終了である場合(ステップS406:Yes)、光学再現画像生成部301は、誤差付加処理を終了して、光学再現画像を画質劣化処理部302に入力する。誤差付加処理が終了でない場合(ステップS406:No)、光学再現画像生成部301は、ステップS403の処理に戻る。
相互反射を付加しない場合(ステップS404:No)、光学再現画像生成部301は、投影装置の光ボケを付加するか否かを判断する(ステップS407)。
投影装置の光ボケを付加する場合(ステップS407:Yes)、光学再現画像生成部301は、投影装置の光ボケを光学再現画像に付加する(ステップS408)。光の陰影境界のボケは、画素の輝度で表現することができる。具体的には、光学再現画像生成部301は、計測条件情報に基づき、光学再現画像においてピントずれがないと仮定した場合に光が投影される領域である第1の領域と、同じく投影装置のピントずれがないと仮定した場合に光が投影されない領域である第2の領域とを判別する。光学再現画像生成部301は、判別結果に基づいて、第1の領域と第2の領域との境界から予め定められた距離以内の画素を特定する。これらの画素の最大輝度は、光が投影される領域の輝度であり、最小輝度は、光が投影されない領域の輝度である。画素の輝度は、境界付近において、注目画素と境界との距離に基づいて決定されてよい。画素の輝度は、注目画素が第1の領域に近いほど最大値の輝度に近くなり、注目画素が第2の領域に近いほど最小値の輝度に近くなるように決定されてもよい。このようにして注目画素と第1の領域との最短距離に基づいて輝度を変化させることで、投影装置のピントがずれた状態を再現することが可能である。
光学再現画像生成部301は、ステップS408の処理を終えると、ステップS406に進む。投影装置の光ボケを付加しない場合(ステップS407:No)、光学再現画像生成部301は、環境光を光学再現画像に付加するか否かを判断する(ステップS409)。
環境光を付加する場合(ステップS409:Yes)、光学再現画像生成部301は、環境光を光学再現画像に付加する(ステップS410)。環境光は、画素の輝度および色の少なくとも一方で表現される。光学再現画像生成部301は、ステップS410の処理を終えると、ステップS406に進む。また、環境光を付加しない場合(ステップS409:No)、光学再現画像生成部301は、誤差付加処理を終了する。
図11は、図9に示すステップS305の詳細を示すフローチャートである。画質劣化処理部302は、まず、誤差情報に基づいて、誤差要因の付加順を取得する(ステップS501)。画質劣化処理部302は、誤差情報に基づいて、さらに、誤差要因の種類と誤差の強度とを取得する(ステップS502)。以下、画質劣化処理部302は、ステップS501で取得した付加順に従って、誤差を付加するか否かを判断する。
まず画質劣化処理部302は、画像ひずみを付加するか否かを判断する(ステップS503)。画像ひずみを付加すると判断した場合(ステップS503:Yes)、画質劣化処理部302は、光学再現画像に画像ひずみを付加する(ステップS504)。画像ひずみを付加した後、画質劣化処理部302は、画質劣化処理を終了するか否かを判断する(ステップS505)。画質劣化処理を終了すると判断した場合(ステップS505:Yes)、画質劣化処理部302は処理を終了する。画質劣化処理を終了しないと判断した場合(ステップS505:No)、画質劣化処理部302は、ステップS502の処理に戻る。
画像ひずみを付加しないと判断した場合(ステップS503:No)、画質劣化処理部302は、続いて、ランダムノイズを付加するか否かを判断する(ステップS506)。ランダムノイズを付加すると判断した場合(ステップS506:Yes)、画質劣化処理部302は、光学再現画像にランダムノイズを付加する(ステップS507)。ステップS507の処理が終わると、画質劣化処理部302は、ステップS505の処理に進む。
ランダムノイズを付加しないと判断した場合(ステップS506:No)、画質劣化処理部302は、画像ボケを付加するか否かを判断する(ステップS508)。画像ボケを付加しないと判断した場合(ステップS508:No)、画質劣化処理部302は処理を終了する。画像ボケを付加すると判断した場合(ステップS508:Yes)、画質劣化処理部302は、光学再現画像に画像ボケを付加する(ステップS509)。ステップS509の処理が終わると、画質劣化処理部302は、ステップS505の処理に進む。
なお、画質劣化処理部302は、1つの種類の誤差要因だけを光学再現画像に付加してもよいし、同じ誤差要因を複数回、光学再現画像に付加してもよい。例えば、ランダムノイズの付加と画像ボケの付加を交互に複数回実行すると、対象の物体の見え方に色ムラが生じたような効果を得ることができる。このように誤差要因の付加順と強度の組み合わせによって、さまざまな画質効果を再現することができる。
図12は、図7に示すシミュレーション装置13が出力する表示画面30の一例を示す図である。表示画面30は、処理結果表示領域21と、計測条件表示領域22と、計測条件のリスト表示領域23と、表示内容選択領域24と、実行ボタン25と、保存ボタン26と、終了ボタン27と、誤差要因設定領域28とを有する。
表示画面30は、実施の形態1で説明した表示画面20の構成要素に加えて、誤差要因設定領域28を有する。以下、表示画面20と同様の部分については説明を省略し、表示画面20と異なる部分について主に説明する。
誤差要因設定領域28は、誤差要因の種類ごとに、誤差の強度および誤差の付加順を設定するための領域である。ユーザは、誤差要因設定領域28に対して、誤差の強度および付加順を入力して設定することができる。誤差情報取得部105は、実行ボタン25が操作されたときに誤差要因設定領域28に表示されている誤差情報を取得することができる。
以上説明したように、本発明の実施の形態3にかかるシミュレーション装置13は、誤差情報取得部105によって、ユーザが設定した誤差情報を反映したシミュレーションを実行することができる。このような構成をとることで、ユーザは、所望の動作条件において実行された三次元計測の評価を行うことができる。また、誤差要因の種類、誤差を光学再現画像に付加する付加順および強度を選択することができるため、再現可能な画質のバリエーションを増やすことができるという効果がある。動作条件や使用環境をランダムに変化させて試験することも可能であるため、設計者が事前に想定できなかった条件の組み合わせでの試験をすることもでき、試験内容が網羅的となるため、結果的に三次元計測装置の信頼性が高まるという効果も期待できる。
実施の形態4.
図13は、本発明の実施の形態4にかかる光学再現画像生成部301の機能構成を示す図である。光学再現画像生成部301は、センサ視点データ生成部401と、マップ生成部402と、画像合成部403とを有する。
なお、図13に示す光学再現画像生成部301を備え、図7に示すシミュレーション装置13と同様の構成を有する不図示の装置を、実施の形態4にかかるシミュレーション装置14と称する。シミュレーション装置14は、図7に示すシミュレーション装置13と同様の構成を有し、仮想撮影画像生成部102の光学再現画像生成部301の構成がシミュレーション装置13と異なる。以下、シミュレーション装置13と同様の構成要素については説明を省略し、シミュレーション装置13と異なる部分について主に説明する。
センサ視点データ生成部401は、撮像装置から見える撮影空間を示す第1画像と、撮像装置および投影装置のそれぞれから撮影空間内の物体までの距離データとを含むセンサ視点データを生成する。センサ視点データ生成部401は、生成したセンサ視点データをマップ生成部402に入力する。
図14は、図13に示すセンサ視点データ生成部401の詳細な機能構成を示す図である。センサ視点データ生成部401が生成する第1画像は、投影光が照射されたときの明るさで撮影空間の全体が表現された明画像と、撮影空間に投影光が照射されていない暗画像とを含む。センサ視点データ生成部401は、明画像を生成する明画像生成部501と、暗画像を生成する暗画像生成部502と、距離データを生成する距離データ生成部503とを有する。
センサ視点データ生成部401は、明画像生成部501が生成した明画像と、暗画像生成部502が生成した暗画像とを含む第1画像と、距離データ生成部503が生成する距離データとを含むセンサ視点データを出力する。
図13の説明に戻る。センサ視点データ生成部401が出力するセンサ視点データは、マップ生成部402に入力される。マップ生成部402は、計測条件情報に基づいて、投影装置からの光が照らされる第1領域と、投影装置からの光が照らされない第2領域とを異なる数値で示すマップである照射マップを生成する。例えば、照射マップは、第1領域を「1」、第2領域を「0」で表すことができる。マップ生成部402は、生成した照射マップを画像合成部403に入力する。
図15は、図13に示すマップ生成部402の詳細な機能構成を示す図である。マップ生成部402は、照射領域算出部601と、照射マップ生成部602と、光ボケ再現部603と、反射領域算出部604と、反射マップ生成部605とを有する。
照射領域算出部601は、計測条件情報に基づいて、投影装置からの光が照らされ得る領域を算出する。照射領域算出部601は、算出した領域を示す情報を照射マップ生成部602に入力する。
照射マップ生成部602は、照射領域算出部601からの情報と、計測条件情報とを用いて、投影装置からの光が照らされる第1領域と投影装置からの光が照らされない第2領域とを異なる数値で示すマップである照射マップを生成する。照射マップ生成部602は、生成した照射マップを光ボケ再現部603に入力する。
反射領域算出部604は、計測条件情報とセンサ視点データとを用いて、投影装置から照射された光が一度撮影空間内の物体に反射して光線の強度および方向が変化した光である反射光線によって照らされる点の三次元位置と、第1画像上の座標とを対応づけることによって、第1画像において反射光線によって照らされる領域である反射領域を算出する。反射領域算出部604は、算出した反射領域を示す情報を反射マップ生成部605に入力する。反射マップ生成部605は、反射領域を示す情報と計測条件情報とを用いて、投影装置が投影パターンごとに、反射領域と反射光に照らされない領域とを異なる数値で示すマップである反射マップを生成する。例えば、反射マップは、反射領域を「1」、反射光に照らされない領域を「0」で表すことができる。反射マップ生成部605は、生成した反射マップを光ボケ再現部603に入力する。
光ボケ再現部603は、照射マップに光のボケの効果を再現する。具体的には、光ボケ再現部603は、光の陰影境界のボケの度合によって照射マップの値を0から1の実数に調整する。光ボケ再現部603は、反射マップについても照射マップと同様に光のボケの効果を再現する。具体的には、光ボケ再現部603は、光の陰影境界のボケの度合によって照射マップの値を0から1の実数に調整する。光ボケ再現部603は、値を調整した後の照射マップおよび反射マップを出力する。
画像合成部403は、照射マップおよび反射マップの情報に基づいて第1画像に含まれる明画像と暗画像とを合成することで光学再現画像を生成する。具体的には、画像合成部403は、光学再現画像の各画素の輝度を、照射マップの値に基づいて、明画像または暗画像における同じ位置の画素から取得した輝度とすることで、明画像と暗画像とを合成する。また、画像合成部403は、光ボケ再現部603によって照射マップおよび反射マップの値が調整されている場合、調整後の値に基づいて各画素の輝度を重みづけすることができる。
仮想撮影画像の枚数は、投影パターンの数に等しい。したがって、投影パターンが増えると、仮想撮影画像を作成するための処理時間が長くなるという問題がある。そこで、異なる投影パターンの照射において仮想撮影画像を作成する際に共通する処理を、1回だけ行えばよいように実装することが有効である。共通する処理の例としては、撮像装置視点から見た撮影空間の明画像および暗画像の作成、撮像装置および投影装置から撮影空間に存在する物体までの距離データの計算などが挙げられる。
投影装置からの投影光によって照らされる領域の計算は、投影パターンが異なると計算結果が異なる。しかし、物体の陰になって投影光が遮蔽されて陰になる領域の計算については、投影パターンによらず一定であるため、共通処理として抜き出すことができる。
投影装置のピントが合っていない場合、シーンに投影されるパターンがボケるため、パターンの認識精度が低下し、結果的に3次元計測の精度が低下する可能性がある。パターン光のボケは、撮像装置の撮影の際に生じるものではなく、投影装置からのパターン投光の際に生じるものである。したがって、仮想撮影画像に対してボケを付加する方法では、現象を再現することはできない。
そこで、仮想撮影画像において投影光によって照らされる領域を示す照射マップを作成する。照射マップは、仮想撮影画像と同じ要素数を持つ2次元配列として定義でき、各要素は0から1までの実数の値を持つ。投影光によって照らされている領域は1、投影光が届かない領域は0、投影光のボケの影響を受けて通常よりも低い強度で照らされている領域は0より大きく1より小さい値として表現できる。これを数式で表すと、以下の数式(2)のようになる。
ここで、Ii,jは、仮想撮影画像の画像座標(i,j)における輝度であり、Pi,jは、照射マップの座標(i,j)における値であり、Bi,jは、明画像の画像座標(i,j)における輝度であり、Si,jは、暗画像の画像座標(i,j)における輝度である。
照射マップを作成する際には、まず投影装置のピントが合っている状態、すなわち投影光のボケがない状態を仮定し、投影パターンで照らされる領域を計算する。この時点では照射マップの各要素が持つ値は、0または1である。この照射マップに対して、ガウシアン平滑化などの平滑化フィルタを施すことによって、投影光のボケを再現する。ガウシアン平滑化を施すことにより、パターン光によって照らされる領域と照らされない領域の境界付近における照射マップの値の変化が滑らかになる。境界部分の値の変化が滑らかになることで、投影光の境界がぼやける効果が得られ、投影光のボケを再現することが可能である。
図16は、本発明の実施の形態4にかかるシミュレーション装置14の動作を示すフローチャートである。センサ視点データ生成部401は、明画像生成部501および暗画像生成部502において、明画像および暗画像を生成する(ステップS601)。センサ視点データ生成部401は、ステップS601と同時並行で、距離データ生成部503において、各視点の距離データを生成する(ステップS602)。センサ視点データ生成部401は、生成した明画像、暗画像および距離データを含むセンサ視点データをマップ生成部402に入力する。
マップ生成部402は、照射領域算出部601において、照射領域を算出する(ステップS603)。続いてマップ生成部402は、照射マップ生成部602において照射マップを生成する(ステップS604)。
マップ生成部402は、誤差要因の付加順を取得する(ステップS605)。続いてマップ生成部402は、誤差要因の種類と強度を取得する(ステップS606)。マップ生成部402は、相互反射を付加するか否かを判断する(ステップS607)。相互反射を付加すると判断した場合(ステップS607:Yes)、マップ生成部402は、反射領域算出部604に反射領域を算出させ(ステップS608)、反射マップ生成部605に反射マップを生成させる(ステップS609)。
相互反射を付加しないと判断した場合(ステップS607:No)、ステップS608およびステップS609の処理は省略される。続いてマップ生成部402は、光ボケを付加するか否かを判断する(ステップS610)。光ボケを付加すると判断した場合(ステップS610:Yes)、マップ生成部402の光ボケ再現部603は、照射マップに光ボケを再現する(ステップS611)。
光ボケを付加しないと判断した場合(ステップS610:No)、ステップS611の処理は省略される。続いてマップ生成部402は、環境光を付加するか否かを判断する(ステップS612)。環境光を付加すると判断した場合(ステップS612:Yes)、マップ生成部402の照射マップ生成部602は、照射マップに環境光を付加する(ステップS613)。環境光を付加しないと判断した場合(ステップS612:No)、ステップS613の処理は省略される。
マップ生成部402は、誤差付加処理を終了するか否かを判断する(ステップS614)。誤差付加処理を終了しないと判断した場合(ステップS614:No)、ステップS606の処理に戻る。誤差付加処理を終了すると判断した場合(ステップS614:Yes)、画像合成部403は、画像合成処理を実行する(ステップS615)。
以上説明したように、本発明の実施の形態4にかかるシミュレーション装置14によれば、光学的な現象を個別に再現した画像である第1画像、照射マップ、反射マップを作成することで、複数の投影パターンを用いる場合の光学再現画像を生成する処理およびデータ構造を簡素化することができる。また、照射マップを用いてピントずれに起因する光の陰影境界のボケ効果を表現し、反射マップを用いて相互反射の効果を表現することで、簡易な演算処理によって投影装置のピントずれ、相互反射といった複雑な光学現象が複合した撮影画像を再現することができるという効果を奏する。
実際の三次元計測装置を構成して評価を行う場合、光学的な現象が全て混在した状態の結果しか得ることができない。これに対してシミュレーション装置14によれば、複数の種類の光学的な現象のそれぞれを個別に再現することができる。このため、三次元計測によって生じる計測誤差がどの要因によって引き起こされたかをより詳細に知ることができる。このような構成をとることで、三次元計測装置の設計および性能評価が容易になるという効果を奏する。
実施の形態5.
実施の形態5にかかる不図示のシミュレーション装置15は、図7に示すシミュレーション装置13と同様の構成を有する。シミュレーション装置15は、出力する表示画面がシミュレーション装置13と異なる。以下、シミュレーション装置13と同様の部分については説明を省略し、シミュレーション装置13と異なる部分について主に説明する。
図17は、本発明の実施の形態5にかかるシミュレーション装置15が出力する表示画面40の一例を示す図である。シミュレーション装置15は、計測条件情報の少なくとも一部と、仮想撮影画像とのうち少なくとも一方をさらに含むシミュレーション結果を出力することができる。
表示画面40は、調整項目表示領域41と、保存ボタン42と、終了ボタン43と、計測結果表示領域44とを含むことができる。調整項目表示領域41は、調整対象の項目の設定値がリスト表示される領域である。計測結果表示領域44は、調整対象の計測条件の項目をリスト表示されたそれぞれの設定値に設定したときの計測値を表示する領域である。保存ボタン42は、計測結果を保存する操作を行うための操作部であり、終了ボタン43は、処理を終了させる操作を行うための操作部である。
表示画面40では、調整対象の計測条件の項目の設定値と、処理結果である計測値と、中間結果として処理過程で得られる仮想撮影画像、照射マップなどが並べて表示される。また、いずれかの設定値における処理結果を基準とした差分結果を併せて表示したり、処理結果の差異が大きい部分を強調表示したりしてもよい。
以上説明したように、本発明の実施の形態5にかかるシミュレーション装置15によれば、計測値とあわせて、計測条件情報および仮想撮影画像などを出力することにより、ユーザが、計測条件ごとの三次元計測結果の過程を確認することができる。このとき、複数の計測条件に対応する処理結果および中間結果を並べて表示することで、計測条件の設定値を比較して検討することが可能になる。したがって、投影装置および撮像装置の配置、性能の検討が容易になるという効果を奏する。
実施の形態6.
図18は、本発明の実施の形態6にかかるシミュレーション装置16の機能構成を示す図である。シミュレーション装置16は、計測条件取得部101と、仮想撮影画像生成部102と、三次元計測演算部103と、出力部104と、誤差情報取得部105と、評価基準データ生成部106と、計測評価部107とを有する。
シミュレーション装置16は、シミュレーション装置13の構成に加えて、評価基準データ生成部106と、計測評価部107とを有する。以下、シミュレーション装置13と同様の構成については詳細な説明を省略し、シミュレーション装置13と異なる部分について主に説明する。
評価基準データ生成部106は、計測条件情報を用いて、シミュレーション結果の評価基準となる評価基準データを生成する。評価基準データ生成部106は、生成した評価基準データを計測評価部107に入力する。計測評価部107は、評価基準データを用いてシミュレーション結果を評価し、シミュレーション評価を取得する。出力部104は、シミュレーション結果に加えて、シミュレーション評価結果も出力する。
図19は、図18に示すシミュレーション装置16の動作を示すフローチャートである。図19に示す動作は、ステップS301からステップS307までは、図9と同様であるため詳細な説明を省略する。本実施の形態では、三次元計測処理が終わった後、評価基準データ生成部106が評価基準データを生成する(ステップS701)。続いて、計測評価部107は、シミュレーションによって得られた計測データと評価基準データとを比較して定量的な評価値を算出する計測評価処理を行う(ステップS702)。出力部104は、シミュレーション評価を出力する(ステップS703)。
評価基準データとしては、センサ視点データに含まれる、撮像装置からの距離データ、誤差要因を付加する前の仮想撮影画像を入力とした場合の三次元計測の処理結果、照射マップのような処理の過程で得られるデータ、実際に計測対象物を計測して得られる実計測データが考えられる。
シミュレーション評価としては、理論上、計測データが得られうる領域である計測可能領域に対する、計測データが得られない欠損領域の割合、評価基準データと比較した場合の計測誤差などを用いることが考えられる。計測可能領域は、例えば、誤差要因を付加する前の仮想撮影画像を入力として得られる計測データにおいて、欠損が生じていない領域とすることができる。また、評価基準データとシミュレーション結果とを比較して得られる、平均値、分散、標準偏差、最大値といった統計量を評価指標として用いてもよい。
実計測データを評価基準データとして用いる場合、よりシミュレーション評価がよくなるように、すなわち実計測データとシミュレーション結果の間の差異が小さくなるようにフィードバックをすることも有用である。
フィードバックの方法としては、例えば、複数の異なるシミュレーション結果を生成し、最もシミュレーション評価が良い設定値を取得することが考えられる。複数のシミュレーション結果を得るためには、例えば、計測条件における計測対象物の表面特性の値を変化させたり、誤差要因の強度を変化させたりする方法がある。
シミュレーション評価が最もよくなるときの、計測対象物の表面特性、誤差要因の強度といったパラメータが、最適なシミュレーション設定として定義できる。この最適なシミュレーション設定をユーザに提供することによって、より正確な検証実験が実施できるようになる。
図20は、図18に示すシミュレーション装置16の表示画面50の一例を示す図である。表示画面50は、表示画面40の構成要素に加えて、評価基準データ表示領域51を含む。
表示画面50では、計測条件の調整対象項目の複数の設定値と並んで、評価基準データが表示される。また、基準値を使用した三次元計測処理のシミュレーションから得られる中間結果も表示してもよい。また、表示画面50は、シミュレーション評価をさらに表示することもできる。
以上説明したように、本発明の実施の形態6にかかるシミュレーション装置16では、シミュレーション結果に加えて、評価基準データを得ることができる。評価基準データは、シミュレーション結果を評価する際に基準となるデータであって、実計測データなどである。シミュレーション装置16は、シミュレーション結果に含まれる計測値と、評価基準データとを並べて表示することで、シミュレーション結果の検討を容易にすることができる。
また、シミュレーション装置16は、評価基準データを用いてシミュレーション結果を評価したシミュレーション評価を得ることができる。このような構成をとることで、計測誤差および欠損を定量的に把握することができる。このため、撮影装置および投影装置の性能検討、計測対象物ごとに三次元計測の適不適を判定するなどの作業が容易になる。また、性能評価方法が規格で定められている場合、その性能評価方法を使用してシミュレーション評価を得ることで、容易に適不適の判定を行うことが可能になる。
実施の形態7.
図21は、本発明の実施の形態7にかかるシミュレーション装置17の機能構成を示す図である。シミュレーション装置17は、実施の形態6にかかるシミュレーション装置16の構成に加えて、物体認識処理部108および認識評価部109を有する。以下、シミュレーション装置16と異なる部分を主に説明する。
物体認識処理部108は、三次元計測演算部103が出力するシミュレーション結果と、計測条件取得部101が出力する計測条件情報とを入力として、撮影空間内に存在する物体の位置姿勢と、物体を把持可能な位置である把持位置とのうち少なくとも1つを含む認識結果を取得する。物体認識処理部108は、認識結果を認識評価部109に入力する。
認識評価部109は計測条件情報に基づいて、認識結果を評価する。具体的には、認識評価部109は、認識結果に含まれる位置姿勢の推定精度と、把持位置の推定精度のうち少なくとも1つを含む認識評価結果を取得する。認識評価部109は、物体の認識結果および認識評価結果を出力部104に入力する。出力部104は、シミュレーション結果およびシミュレーション評価に加えて、認識結果および認識評価結果を出力する。
図22は、図21に示すシミュレーション装置17の動作を示すフローチャートである。ステップS301からステップS307,ステップS701からステップS703の動作は、図19と同様であるためここでは説明を省略する。以下、図19と異なる部分について主に説明する。
ステップS306に示す三次元計測処理が終わると、物体認識処理部108は、物体認識処理を実行して認識結果を取得する(ステップS801)。認識結果が得られると、認識評価部109は、認識結果を評価する認識評価処理を実行する(ステップS802)。認識評価結果が得られると、出力部104は、認識評価結果を出力する(ステップS803)。ここでステップS803において、認識評価結果に加えて、認識結果を出力してもよい。
物体の三次元計測を行う目的の1つとして、計測対象物の位置姿勢などの認識が挙げられる。例えばロボットに物体を把持させるアプリケーションプログラムが該当する。把持対象となる物体の位置姿勢があらかじめ分かっていない場合には、その場で対象物をセンシングし、対象物の位置姿勢もしくはロボットが把持可能な位置を認識する必要がある。
そこで本発明の実施の形態7では、三次元計測のシミュレーション結果を入力として、物体認識処理を行う物体認識処理部108を備える。物体認識処理部108における物体認識のためのアルゴリズムは任意のアルゴリズムを使用してよい。物体認識アルゴリズムは、三次元計測の結果を三次元空間における点の集合として扱う三次元点群を入力としてもよいし、三次元計測結果を二次元画像で表現したデプス画像を入力としてもよい。
さらに、物体認識の結果を用いて、認識した物体の位置姿勢の推定精度や把持位置の推定精度といった認識結果の評価も行う。物体の位置姿勢を認識するアルゴリズムを評価する際、多くのケースで問題となるのは、物体の位置姿勢の真値が分からないことである。真値が分からないため、物体の位置姿勢の認識結果が出力されても、その良し悪しを定量的に判断することは難しい。しかし、シミュレーションにおいては物体の位置姿勢が既知であるため、認識結果を定量的に評価することが可能である。
以上説明したように、本発明の実施の形態7にかかるシミュレーション装置17によれば、シミュレーション結果を用いて物体認識の検証を行うことが可能になる。このような構成をとることで、実際に三次元計測装置を構成することなく物体認識の性能評価が可能になる。シミュレーション空間において、認識対象物の位置姿勢は既知であるため、物体認識結果を真値と比較することができ、物体認識性能の定量的な評価が容易になるという効果を奏する。
ロボットで認識した物体を把持するシステムでは、物体認識の精度が十分であるか否かを定量的に評価することが非常に重要である。ロボットによる把持が成功するかどうかは物体認識の精度に大きく影響されるためである。しかしながら、例えば複数の物体が規則性なく積まれたばら積み状態からの把持を想定すると、ばら積みされた物体の位置姿勢の真値を知ることは困難である。そのため三次元計測装置およびロボットを含む実機を用いて試験を行ったとしても、物体認識の厳密な精度を定量的に把握することができない。本発明によれば、シミュレーションによって容易に真値を取得して、物体認識の精度を定量的に評価することができるという利点がある。
実施の形態8.
図23は、本発明の実施の形態8にかかるシミュレーション装置18の機能構成を示す図である。シミュレーション装置18は、実施の形態7にかかるシミュレーション装置17の構成に加えて、物体把持評価部110を有する。
以下、シミュレーション装置17と同様の構成については説明を省略し、シミュレーション装置17と異なる部分について主に説明する。
物体把持評価部110は、計測条件取得部101が出力する計測条件情報と、三次元計測演算部103が出力するシミュレーション結果と、物体認識処理部108が出力する認識結果とに基づいて、物体の把持成功確率を評価した物体の把持評価結果を取得する。物体把持評価部110は、把持評価結果を出力部104に入力する。出力部104は、把持評価結果も出力する。
図24は、図23に示すシミュレーション装置18の動作を示すフローチャートである。ステップS301からステップS307,ステップS701からステップS703,ステップS801からステップS803の動作は図22と同様であるため、ここでは説明を省略する。以下、図22と異なる部分について主に説明する。
物体認識結果が得られると、物体把持評価部110は、物体把持評価を実行する(ステップS901)。物体把持評価部110は、把持評価結果を出力部104に入力する。出力部104は、把持評価結果を出力する(ステップS902)。ステップS901の動作は、認識評価処理と同時並行で実行することができる。
物体の認識結果を用いることで、ロボットハンドがどの位置で物体を把持するかの情報を得ることができる。その情報を用いることで、ロボットハンドを把持位置まで移動させ、把持動作を実行した場合に、物体と接触する位置や、ロボットハンドあるいは物体に生じる力の大きさと方向をシミュレーションすることができる。
ロボットハンドおよび物体に生じる力の大きさと方向が分かれば、把持が成功するかどうかを推定することが可能である。例えば、ロボットハンドが2本の爪を有する平行ハンドである場合を考える。把持に失敗するのは、ロボットハンドの爪の隙間から把持物体が外れてしまうケースである。このケースに該当する状況としては、把持物体に対して、平行ハンドが閉じる方向に対して垂直な方向にかかる力が、ロボットハンドと把持物体との間の摩擦力よりも大きいときが考えられる。したがって、ロボットハンドおよび把持物体の表面の摩擦係数、把持物体の重量、ロボットハンドの把持力といった情報があれば把持が成功するか否かの判定が可能である。
ただし、把持の成功確率を評価する方法は、ロボットハンドと把持物体との間に生じる力を推定する方法だけでなく、任意の評価方法を用いて良い。本発明の実施の形態8では、このようなロボットによる物体把持のシミュレーション機能を備えた物体把持評価部110を有する。実施の形態8における出力画面例を図25に示す。図25は、図23に示すシミュレーション装置18が出力する表示画面60の一例を示す図である。表示画面60は、表示画面30の表示内容に加えて、認識および把持評価結果表示領域61を有する。認識結果および把持評価結果の出力方法としては、認識や把持の成否を成功の場合と失敗の場合とで異なる記号を出力してもよいし、失敗時には失敗の原因を出力してもよいし、評価に用いる何らかの定量値を表示してもよい。
以上説明したように、本発明の実施の形態8にかかるシミュレーション装置18によれば、シミュレーション上で把持成功率が評価できるため、ロボットシステムを構築する前の事前検証が容易になるという効果がある。
ロボット実機を用いて物体の認識から把持までの一連の動作が可能なシステムを構築するためには、3次元計測装置の設置から物体認識のソフトウェア調整、およびロボットの動作調整など、多大な期間とコストを要する。さらに、実空間で物体の把持を繰り返し行う試験にも長い時間と試行錯誤を要する。本発明によれば、シミュレーション上で把持試験が可能になるため、従来よりも短期間で試験を行うことができる。
また、実際のロボットシステムを用いて把持試験を行い、把持失敗の原因分析をしようとした場合、3次元計測の誤差からロボットの動作調整ミスまで、あらゆる失敗要因が混在した状態で把持成功か把持失敗かの結果だけが得られることになる。そのため、どこを修正すれば把持の成功率が向上するかを解析するのは困難である。本発明ではシミュレーションによって失敗要因を切り分けて検証することができるため、短期間で原因究明および改善を行うことができる。
続いて、本発明の実施の形態1~8にかかるシミュレーション装置10,12,13,14,15,16,17,18のハードウェア構成について説明する。計測条件取得部101、仮想撮影画像生成部102、三次元計測演算部103、出力部104、誤差情報取得部105、評価基準データ生成部106、計測評価部107、物体認識処理部108、認識評価部109および物体把持評価部110は、処理回路により実現される。これらの処理回路は、専用のハードウェアにより実現されてもよいし、CPU(Central Processing Unit)を用いた制御回路であってもよい。
上記の処理回路が、専用のハードウェアにより実現される場合、これらは、図26に示す処理回路90により実現される。図26は、本発明の実施の形態1~8にかかるシミュレーション装置10,12,13,14,15,16,17,18の機能を実現するための専用のハードウェアを示す図である。処理回路90は、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、またはこれらを組み合わせたものである。
上記の処理回路が、CPUを用いた制御回路で実現される場合、この制御回路は例えば図27に示す構成の制御回路91である。図27は、本発明の実施の形態1~8にかかるシミュレーション装置10,12,13,14,15,16,17,18の機能を実現するための制御回路91の構成を示す図である。図27に示すように、制御回路91は、プロセッサ92と、メモリ93とを備える。プロセッサ92は、CPUであり、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)などとも呼ばれる。メモリ93は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable ROM)、EEPROM(登録商標)(Electrically EPROM)などの不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD(Digital Versatile Disk)などである。
上記の処理回路が制御回路91により実現される場合、プロセッサ92がメモリ93に記憶された、各構成要素の処理に対応するプログラムを読み出して実行することにより実現される。また、メモリ93は、プロセッサ92が実行する各処理における一時メモリとしても使用される。
また、本発明の実施の形態1~8にかかるシミュレーション装置10,12,13,14,15,16,17,18の機能は、図28に示す構成のハードウェアを用いて実現することもできる。図28は、本発明の実施の形態1~8にかかるシミュレーション装置10,12,13,14,15,16,17,18の機能を実現するためのハードウェア構成の一例を示す図である。本発明の実施の形態1~8にかかるシミュレーション装置10,12,13,14,15,16,17,18の機能は、プロセッサ92およびメモリ93に加えて、入力装置94および出力装置95を用いて実現することができる。入力装置94は、キーボード、マウス、タッチセンサなどユーザからの入力操作を受け付ける入力インタフェースである。出力装置95は、例えば表示装置であり、ユーザに対して出力画面を表示することができる。なお、タッチパネルを用いる場合、タッチパネルの表示装置が出力装置95であり、表示装置に重畳されたタッチセンサが入力装置94である。
例えば、シミュレーション装置10,12,13,14,15,16,17,18の計測条件取得部101および出力部104の機能は、プロセッサ92だけによって実現されてもよいし、プロセッサ92と入力装置94または出力装置95、もしくはそれらとのインタフェースとによって実現されてもよい。
以上の実施の形態に示した構成は、本発明の内容の一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、本発明の要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
例えば、本発明の実施の形態1~8にかかるシミュレーション装置10,12,13,14,15,16,17,18の機能は、1台のハードウェア上で実現されてもよいし、複数のハードウェアで分散処理されてもよい。
また、上記で示した表示画面20,30,40,50,60は一例であり、様々な変更を加えることが可能である。