(57)【要約】【課題】物体表面までの距離を計測する際に死角により距離が不定となることを防ぐ。【解決手段】取得部が、互い異なる位置で配置関係が既知である撮像装置と深度センサにより取得された、物体の画像と物体の表面における複数の点について深度センサからの距離の情報とを取得する。作成部が、深度センサにより取得できた物体の表面における複数の点の距離に基づいて、画像内の領域のうち、複数の点それぞれについて対応する領域の三次元位置を算出し、算出した三次元位置と画像の画素情報とを含む点情報を作成する。補正部が、三次元位置を示す位置情報と、予め用意された物体の表面における複数の点の三次元位置を示す位置情報を含むモデル情報とに基づいて、深度センサで距離の情報が取得できなかった複数の点に対応する画像内の領域について、モデル情報が持つ三次元位置と画像の画素情報とを対応づけた点情報を生成する。【選択図】図１
2019090774.tif 000002
【特許請求の範囲】
【請求項１】
互い異なる位置で配置関係が既知である撮像装置と深度センサにより取得された、物体の画像と前記物体の表面における複数の点について前記深度センサからの距離の情報とを取得する取得部と、
前記深度センサにより取得できた前記物体の表面における複数の点の距離に基づいて、前記画像内の領域のうち、前記複数の点それぞれについて対応する領域の三次元位置を算出し、算出した三次元位置と前記画像の画素情報とを含む点情報を作成する作成部と、
前記三次元位置を示す位置情報と、予め用意された前記物体の表面における複数の点の三次元位置を示す位置情報を含むモデル情報とに基づいて、前記深度センサで距離の情報が取得できなかった複数の点に対応する前記画像内の領域について、前記モデル情報が持つ三次元位置と前記画像の画素情報とを対応づけた点情報を生成する補正部と、
を備えることを特徴とする距離計測装置。
【請求項２】
前記補正部は、
前記画像における物体に対応した複数の点のうち、前記深度センサにより取得された距離の情報と対応付けられない点を探索する探索部と、
前記作成部により作成された点情報と前記モデル情報の点との位置合わせを行う位置合わせ部と、
位置合わせをした前記モデル情報の点の三次元位置に基づいて、前記画像における物体に対応した複数の点のうち、前記深度センサにより取得された距離の情報と対応付けられない点の三次元位置を決定し、前記画像における物体に対応した複数の点のうち、前記深度センサにより取得された距離の情報と対応付けられない点の画像の画素情報と該決定した三次元位置を対応づけた点情報を生成する決定部と、
を含むことを特徴とする請求項１に記載の距離計測装置。
【請求項３】
前記補正部は、更に、前記モデル情報の点の三次元位置に基づいて、前記点情報のうちの前記距離の情報に基づいて算出した前記位置情報を前記モデル情報の点の三次元位置に修正して前記点情報を補正する、
ことを特徴とする請求項１に記載の距離計測装置。
【請求項４】
前記作成部は、
前記距離の情報に基づいて、該距離の情報を検出する検出範囲内での前記物体の表面の前記複数の点のそれぞれの三次元位置を算出した後、
前記距離の情報を検出する検出装置と前記画像を撮像する撮像装置との位置関係、前記検出装置の検出範囲、及び前記撮像装置の撮像範囲に基づいて、前記画像内の複数の点と対応する前記三次元位置を算出する、
ことを特徴とする請求項１に記載の距離計測装置。
【請求項５】
前記作成部は、
前記画像の各画素が持つ情報に基づいて該画像内の前記物体における前記距離の情報と対応付けられない領域を算出した後、
前記画像における前記複数の点のうちの前記画像内の前記物体における前記距離の情報と対応付けられない領域の点については、該点の前記画素の情報と、位置情報が不定であることを示す情報とを含む点情報を登録し、
前記画像における前記複数の点のうちの前記画像内の前記物体における前記距離の情報と対応付けられる点については、該点の前記画素の情報と、該点と対応付けられる前記距離の情報に基づいて算出した前記位置情報とを含む点情報を前登録する、
ことを特徴とする請求項１に記載の距離計測装置。
【請求項６】
コンピュータが、
互い異なる位置で配置関係が既知である撮像装置と深度センサにより取得された、物体の画像と前記物体の表面における複数の点について前記深度センサからの距離の情報とを取得し、
前記深度センサにより取得できた前記物体の表面における複数の点の距離に基づいて、前記画像内の領域のうち、前記複数の点それぞれについて対応する領域の三次元位置を算出し、算出した三次元位置と前記画像の画素情報とを含む点情報を作成し、
前記三次元位置を示す位置情報と、予め用意された前記物体の表面における複数の点の三次元位置を示す位置情報を含むモデル情報とに基づいて、前記深度センサで距離の情報が取得できなかった複数の点に対応する前記画像内の領域について、前記モデル情報が持つ三次元位置と前記画像の画素情報とを対応づけた点情報を生成する、
処理を実行することを特徴とする距離計測方法。
【請求項７】
互い異なる位置で配置関係が既知である撮像装置と深度センサにより取得された、物体の画像と前記物体の表面における複数の点について前記深度センサからの距離の情報とを取得し、
前記深度センサにより取得できた前記物体の表面における複数の点の距離に基づいて、前記画像内の領域のうち、前記複数の点それぞれについて対応する領域の三次元位置を算出し、算出した三次元位置と前記画像の画素情報とを含む点情報を作成し、
前記三次元位置を示す位置情報と、予め用意された前記物体の表面における複数の点の三次元位置を示す位置情報を含むモデル情報とに基づいて、前記深度センサで距離の情報が取得できなかった複数の点に対応する前記画像内の領域について、前記モデル情報が持つ三次元位置と前記画像の画素情報とを対応づけた点情報を生成する、
処理をコンピュータに実行させる距離計測プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、距離計測装置、距離計測方法、及び距離計測プログラムに関する。
【背景技術】
【０００２】
工場の作業ライン等に設置される作業機器には、複数の作業用具を所定のレイアウトデータに従って配置し、組み付けたものがある。複数の作業用具を組み付けた作業機器では、作業員が効率よく、かつ安全に作業を行えるよう作業用具の配置を最適化することが望まれる。作業用具の配置の最適化は、例えば、コンピュータシミュレーションによって行われる。コンピュータシミュレーションにより作業用具の配置を最適化する際には、各種作業用具の三次元モデルデータと、作業機器の設置スペースと、作業内容とに基づいて、最適な作業用具の配置を算出する。その後、コンピュータシミュレーションにより算出した作業用具の配置に基づいて作業エリアに作業機器を設置し、作業機器が正しく設置されたか否かを確認する。
【０００３】
作業機器が正しく配置されたか否かを確認する際には、作業機器を設置した空間における作業機器（各種作業用具）の形状を計測し、コンピュータシミュレーションにより算出した配置通りになっているか否かを確認する。作業機器の形状の計測する方法の１つとして、撮像装置で撮像した物体表面の色情報を含む画像と、深度センサ等で検出した物体表面までの距離の情報とに基づいて計測する方法がある（例えば、特許文献１を参照）。この種の計測方法では、深度センサで検出した検出範囲内の深度値に基づいて、撮像装置の視点から画像に写っている物体表面における各点までの距離を算出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−４２３９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
撮像装置と深度センサとを利用して物体表面の各点までの距離を計測する場合には、撮像装置の視点と深度センサの視点とが異なるため、撮像装置で撮像した画像における物体の領域内に、深度センサにより深度値を検出していない死角領域が含まれることがある。画像における物体の領域内に死角領域が存在する場合、該死角領域に含まれる物体表面までの距離が不定となるため、物体の形状を正しく計測することが困難となる。
【０００６】
１つの側面において、本発明は、撮影された物体表面までの距離を計測する際に、計測位置と撮影位置との違いに起因して距離が取得情報できない物体表面の領域について、距離情報を算出することを目的とする。
【課題を解決するための手段】
【０００７】
１つの態様の距離計測装置は、取得部と、作成部と、補正部とを備える。取得部は、互い異なる位置で配置関係が既知である撮像装置と深度センサにより取得された、物体の画像と物体の表面における複数の点について深度センサからの距離の情報とを取得する。作成部は、深度センサにより取得できた物体の表面における複数の点の距離に基づいて、画像内の領域のうち、複数の点それぞれについて対応する領域の三次元位置を算出し、算出した三次元位置と画像の画素情報とを含む点情報を作成する。補正部は、三次元位置を示す位置情報と、予め用意された物体の表面における複数の点の三次元位置を示す位置情報を含むモデル情報とに基づいて、深度センサで距離の情報が取得できなかった複数の点に対応する画像内の領域について、モデル情報が持つ三次元位置と画像の画素情報とを対応づけた点情報を生成する。
【発明の効果】
【０００８】
上述の態様によれば、撮影された物体表面までの距離を計測する際に、計測位置と撮影位置との違いに起因して距離が取得情報できない物体表面の領域について、距離情報を算出できる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態に係る距離計測装置の機能的構成を示す図である。
【図２】距離計測装置の適用例を説明する図である。
【図３】モデル情報の内容を説明する図である。
【図４】第１の実施形態に係る距離計測装置が行う処理を説明するフローチャートである。
【図５】第１の実施形態におけるＲＧＢＤ点群を作成する処理の内容を説明するフローチャートである。
【図６】第１の実施形態におけるＲＧＢＤ点群を補正する処理を説明するフローチャートである。
【図７】ＲＧＢ画像の画素と計測空間内の物体表面との関係を説明する図である。
【図８】深度データと物体表面の位置との関係を説明する図である。
【図９】死角領域が発生する第１の要因を説明する図である。
【図１０】死角領域が発生する第２の要因を説明する図である。
【図１１】ＲＧＢＤ点群の点とモデル情報の点との位置合わせの方法を説明する図である。
【図１２】モデル情報の点の位置情報を利用した位置情報Ｄの補正方法の例を示す図である。
【図１３】ＲＧＢＤ点群を補正する前後のＲＧＢ画像における位置情報を持つ点を説明する図である。
【図１４】補正前のＲＧＢＤ点群の例を示す図である。
【図１５】補正後のＲＧＢＤ点群の例を示す図である。
【図１６】距離計測装置の別の適用例を説明する図である。
【図１７】第２の実施形態におけるＲＧＢＤ点群を生成する処理の内容を説明するフローチャートである。
【図１８】第３の実施形態におけるＲＧＢＤ点群を生成する処理の内容を説明するフローチャートである。
【図１９】コンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１０】
［第１の実施形態］
図１は、第１の実施形態に係る距離計測装置の機能的構成を示す図である。
【００１１】
図１に示すように、本実施形態の距離計測装置１は、情報取得部１１０と、点群作成部１２０と、点群補正部１３０と、出力部１４０と、記憶部１９０とを備える。
【００１２】
情報取得部１１０は、複合センサ装置２の撮像装置２１０で撮像した画像、及び複合センサ装置２の深度センサ２２０で検出した深度データを取得する。撮像装置２１０は、撮像範囲内に存在する物体の表面の輝度や色に関する画素情報を含む画像を撮像する。深度センサ２２０は、検出範囲内に存在する物体の表面までの深度（距離）を検出する。情報取得部１１０は、例えば、画像及び深度データの取得を指示する情報を含む信号を入力装置３から受信したときに、撮像装置２１０に画像を撮像させるとともに、深度センサ２２０に深度データを検出させる。その後、情報取得部１１０は、撮像装置２１０から画像を取得するとともに、深度センサ２２０から深度データを取得する。情報取得部１１０は、取得した画像及び深度データを点群作成部１２０に渡す。また、情報取得部１１０は、取得した画像及び深度データを記憶部１９０に記憶させる。図１の記憶部１９０における画像データ１９３は、撮像装置２１０から取得した画像と、深度センサ２２０から取得した深度データとを含む。本実施形態では、撮像装置２１０で撮像する画像は、画像上の各点（画素）が赤色（Ｒ）、緑色（Ｇ）、及び青色（Ｂ）の三成分の輝度を含む情報を持つ画像（以下ＲＧＢ画像という）とする。情報取得部１１０は、物体の画像と、該物体の表面における複数の点のそれぞれまでの深度（距離）の情報とを取得する取得部の一例である。
【００１３】
点群作成部１２０は、ＲＧＢ画像と、深度（距離）データと、記憶部１９０の変換情報１９１とに基づいて、ＲＧＢ画像内の複数の点（画素）を要素とするＲＧＢＤ点群を作成する。変換情報１９１とは、深度データの各点における深度値と、物体の表面の位置との対応関係を示す情報である。ＲＧＢＤ点群における複数の要素（点）は、それぞれ、ＲＧＢ画像における輝度を示すＲＧＢ情報と、位置情報Ｄとを含む。位置情報Ｄは、三次元空間内における位置を示す情報である。点群作成部１２０は、変換情報１９１と、深度データとに基づいて、計測空間内における物体表面の三次元位置を算出し、該三次元位置に基づいてＲＧＢＤ点群（ＲＧＢ画像）における各点の位置情報Ｄを算出する。なお、本実施形態の距離計測装置１における点群作成部１２０は、ＲＧＢ画像内の複数の点のうちの、深度センサにより深度を検出することのできない領域（死角領域）内の点についての位置情報Ｄを、不定であることを示す情報（NULL）とする。点群作成部１２０は、物体の画像と距離の情報とに基づいて、画像における複数の点のそれぞれと対応する三次元位置を算出し、画像における画素の情報と三次元位置を示す位置情報とを含む点情報を対応づけて登録した点群を作成する作成部の一例である。
【００１４】
点群補正部１３０は、記憶部１９０の物体のモデル情報１９２に基づいて、点群作成部１２０で作成したＲＧＢＤ点群に含まれる要素（点）の位置情報Ｄを補正する。モデル情報１９２は、予め用意された物体の表面における複数の点のそれぞれの三次元位置を示す位置情報を含む。例えば、撮像装置２１０の撮像範囲内に存在する物体の三次元形状を示すモデルデータにおける表面の各点の三次元位置を示す情報を含む。本実施形態の距離計測装置１における点群補正部１３０は、ＲＧＢＤ点群に含まれる複数の点のうちの、位置情報Ｄが不定（NULL）である点の位置情報Ｄを補正する。点群補正部１３０は、探索部１３１と、位置合わせ部１３２と、位置情報決定部１３３とを含む。探索部１３１は、点群作成部１２０で作成したＲＧＢＤ点群に位置情報Ｄが不定（NULL）である点が含まれるか否かを探索する。位置合わせ部１３２は、ＲＧＢＤ点群における位置情報Ｄが不定ではない点（すなわち死角領域外の点）と、モデル情報１９２の点との位置合わせを行う。位置情報決定部１３３は、ＲＧＢＤ点群の点と位置合わせをしたモデル情報１９２における各点の三次元位置に基づいて、ＲＧＢＤ点群における死角領域内の点についての位置情報Ｄを決定して位置情報Ｄを変更する。例えば、位置情報決定部１３３は、ＲＧＢＤ点群における死角領域内に含まれる点毎に、位置合わせをしたモデル情報１９２の点のうちの対応する点を決定し、位置情報Ｄを、不定であることを示す情報（NULL）から、特定した点の位置情報を示す値に変更する。点群補正部１３０は、点群の点情報のうちの距離の情報に基づいて算出された位置情報と、予め用意された物体の表面における複数の点のそれぞれの三次元位置を示す位置情報を含むモデル情報とに基づいて、点群の点情報における位置情報を補正する補正部の一例である。
【００１５】
点群補正部１３０は、位置情報Ｄを補正した場合には補正後のＲＧＢＤ点群を出力部１４０に渡し、位置情報Ｄを補正しなかった場合には点群作成部１２０から受け取ったＲＧＢＤ点群を出力部１４０に渡す。また、点群補正部１３０は、例えば、出力部１４０に渡したＲＧＢＤ点群と同一の点群情報を記憶部１９０に格納する。記憶部１９０の点群データ１９４は、位置情報Ｄを補正した場合には補正後のＲＧＢＤ点群を示すデータであり、位置情報Ｄを補正しなかった場合には点群作成部１２０で作成したＲＧＢＤ点群を示すデータである。
【００１６】
出力部１４０は、点群補正部１３０から受け取ったＲＧＢＤ点群、或いは記憶部１９０の点群データ１９４から読み出したＲＧＢＤ点群を表示装置４に送信する。
【００１７】
本実施形態の距離計測装置１は、例えば、工場等の作業ラインにおける作業用具等のレイアウトを確認する際に利用可能である。
【００１８】
図２は、距離計測装置の適用例を説明する図である。
図２には、作業エリア６に作業機器５を設置する作業で距離計測装置１を利用する場合の適用例を示している。
【００１９】
作業機器５は、作業用具５０１〜５０５を含む複数の作業用具を所定のレイアウトデータに従った配置で組み付けた機器である。作業機器５を設置する作業員１１は、例えば、表示装置４に表示されたレイアウトデータを確認しながら、複数の作業用具を組み付ける作業を行う。表示装置４に表示するレイアウトデータは、例えば、距離計測装置１を利用して取得する。この場合、距離計測装置１は、例えば、図１に示していない通信部を備え、該通信部によりインターネット等のネットワーク１２に接続される。距離計測装置１は、ネットワーク１２を介してレイアウトデータベース１３に格納されたレイアウトデータを取得し、表示装置４に表示させる。レイアウトデータベース１３には、シミュレーション装置１４により作成した作業機器５の三次元モデル（作業用具５０１〜５０５等のレイアウトデータ）を含む各種の三次元モデルが登録されている。シミュレーション装置１４は、例えば、物体の三次元モデルを作成するComputer-Aided Design（ＣＡＤ）等の三次元モデル作成機能と、作成した物体の三次元モデルの最適なレイアウトを算出するシミュレーション機能とを備えた装置である。レイアウトデータベース１３に格納されたレイアウトデータは、距離計測装置１の記憶部１９０に記憶させたモデル情報１９２の基となるデータである。距離計測装置１によりレイアウトデータを取得し、表示装置４に表示させる処理は、例えば、作業員１１が入力装置３を操作して所定の指示を含む情報を入力することにより行われる。
【００２０】
図３は、モデル情報の内容を説明する図である。
図３の（ａ）には、レイアウトデータベース１３に格納された物体５９０のレイアウトデータの一例と、モデル情報の抽出方法の一例とを示している。物体５９０は、三次元形状がＬ字型の底面を持つ柱状の物体である。物体５９０の三次元モデルは、例えば、図２のシミュレーション装置１４が備えるCAD等の三次元モデル作成機能を利用して作成される。
【００２１】
物体５９０からモデル情報１９２を作成する際には、物体５９０を作成した仮想三次元空間における物体５９０の表面の複数の点の座標を抽出して作成する。例えば、シミュレーション装置１４において、作成した物体５９０の表面に複数の点Ｑ１，Ｑ２，Ｑ３，・・・，Ｑh1，Ｑh2，・・・を設定して各点の三次元座標を抽出し、設定した複数の点Ｑ１，Ｑ２，Ｑ３，・・・を含む点群を作成する。このとき、図３の（ａ）の物体５９０における表面５９０Ａ〜５９０Ｄ，及び５９０Ｇ等の平坦な面には、所定の間隔で複数の点を設定する。物体５９０の表面に設定した各点の三次元座標は、例えば、図３の（ｂ）のモデル情報１９２のように、所定の順番で登録してリスト化する。なお、図３の（ｂ）のモデル情報１９２における番号は、図３の（ａ）に示した物体５９０の表面に設定した点Ｑ１，Ｑ２，Ｑ３，・・・，Ｑh1，Ｑh2，・・・における添え字と対応している。作成したモデル情報１９２は、例えば、物体５９０の三次元モデルのデータやレイアウトデータとともにレイアウトデータベース１３に登録しておく。レイアウトデータベース１３に登録されたモデル情報１９２は、例えば、距離計測装置１がレイアウトデータベース１３からレイアウトデータを取得する際に、該レイアウトデータと対応したモデル情報１９２を取得して記憶部１９０に記憶させる。
【００２２】
上記のモデル情報１９２の作成には、例えば、既知の三次元作成装置や作成プログラムに用意されている点群への変換機能を利用可能である。この種の変換機能を利用することにより、例えば、物体表面に曲面が含まれる場合でも、物体表面を適切に表現する点群（モデル情報１９２）を作成することが可能となる。
【００２３】
図２に戻り、作業員１１は、レイアウトデータに従った作業機器５の設置作業とともに、作業機器５のＲＧＢ画像の撮像等に用いる複合センサ装置２の設置作業を行う。複合センサ装置２は、作業機器５における作業を阻害しない位置に設置することが好ましい。このため、複合センサ装置２は、例えば、作業機器５の上方に存在する支柱７に、作業機器５を俯瞰する向きで設置する。この場合、複合センサ装置２は、作業機器５の上方から撮像装置２１０によりＲＧＢ画像を撮像するとともに、深度センサ２２０により作業機器５の各点における深度データを検出する。
【００２４】
作業員１１は、作業機器５及び複合センサ装置２の設置作業を終えると、入力装置３を操作して、設置した作業機器５の三次元情報を計測する指示を距離計測装置１に入力する。該入力を受け付けた距離計測装置１は、図４のフローチャートに沿った処理を行う。
【００２５】
図４は、第１の実施形態に係る距離計測装置が行う処理を説明するフローチャートである。
【００２６】
本実施形態の距離計測装置１は、まず、複合センサ装置２から計測空間のＲＧＢ画像と深度データとを取得する（ステップＳ１）。ステップＳ１の処理は、情報取得部１１０が行う。情報取得部１１０は、例えば、複合センサ装置２に対してＲＧＢ画像の撮像及び深度データの検出を指示する信号を送信し、撮像装置２１０で撮像したＲＧＢ画像と、深度センサ２２０で検出した深度データとを取得する。
【００２７】
次に、距離計測装置１は、ＲＧＢ画像と、深度データと、変換情報１９１とに基づいて、ＲＧＢＤ点群を作成する（ステップＳ２）。ステップＳ２の処理は、点群作成部１２０が行う。点群作成部１２０は、変換情報１９１と深度データとに基づいて、計測空間内における物体表面の三次元情報を算出する。その後、点群作成部１２０は、物体表面の三次元情報に基づいて、ＲＧＢ画像内の複数の点のそれぞれと対応する位置情報Ｄを特定し、ＲＧＢ画像内の複数の点を要素とするＲＧＢＤ点群を作成する。この際、点群作成部１２０は、ＲＧＢＤ点群の要素となる複数の点のそれぞれに、ＲＧＢ画像におけるＲＧＢ情報と、位置情報Ｄとを含む点情報を持たせる。なお、位置情報Ｄが不定である点が存在する場合、点群作成部１２０は、該点の点情報における位置情報Ｄを、位置が不定であることを示す情報（NULL）とする。
【００２８】
次に、距離計測装置１は、モデル情報１９２に基づいてＲＧＢＤ点群を補正する（ステップＳ３）。ステップＳ３の処理は、点群補正部１３０が行う。本実施形態の距離計測装置１における点群補正部１３０は、ＲＧＢＤ点群に位置情報Ｄが不定（NULL）である点が含まれる場合に、該点の位置情報Ｄを補正する。位置情報Ｄを補正する場合、点群補正部１３０は、例えば、まず、三次元空間内でＲＧＢＤ点群に含まれる複数の点と、モデル情報１９２に含まれる複数の点との位置合わせを行う。その後、点群補正部１３０は、ＲＧＢＤ点群における位置情報Ｄが不定（NULL）である点の位置情報を、モデル情報１９２の対応する点の三次元位置を示す情報に置き換えて補正する。
【００２９】
次に、距離計測装置１は、ＲＧＢＤ点群を出力する（ステップＳ４）。ステップＳ４の処理は、出力部１４０が行う。出力部１４０は、例えば、ステップＳ１で取得したＲＧＢ画像と、作成したＲＧＢＤ点群（補正をした場合には補正後のＲＧＢＤ点群）とを含む表示データを表示装置４に出力する。出力部１４０は、例えば、作成したＲＧＢＤ点群（補正をした場合には補正後のＲＧＢＤ点群）に基づいて物体の表面を再現し、表面を再現した物体の画像と、レイアウトデータとを比較可能な表示データを作成して表示装置４に出力してもよい。
【００３０】
ステップＳ４の処理を終えると、距離計測装置１は、ステップＳ１で取得したＲＧＢ画像と深度データとに基づく計測処理を終了する。この後、作業者１１が入力装置３を操作して計測処理の開始を指示する情報を距離計測装置１に入力すると、距離計測装置１は、再度ステップＳ１〜Ｓ４の処理を行う。
【００３１】
このように、本実施形態の距離計測装置１は、作業ライン等の計測空間のＲＧＢ画像とともに深度データを取得し、ＲＧＢ画像に写っている作業用具５０１〜５０５等の物体の表面における複数の点の位置情報Ｄ（三次元情報）を持つＲＧＢＤ点群を作成する。また、距離計測装置１は、作成したＲＧＢＤ点群に位置情報Ｄが不定である点が含まれる場合に、ＲＧＢ画像に写っている物体の三次元モデルから作成したモデル情報１９２を利用して位置情報Ｄが不定である点の位置情報を決定し、ＲＧＢＤ点群を補正する。
【００３２】
本実施形態の距離測定装置１は、ＲＧＢＤ点群を作成する処理として、例えば、図５のフローチャートに沿った処理を行う。
【００３３】
図５は、第１の実施形態におけるＲＧＢＤ点群を作成する処理の内容を説明するフローチャートである。
【００３４】
ＲＧＢＤ点群を作成する処理は、距離計測装置１の点群作成部１２０が行う。点群作成部１２０は、まず、図５のように、深度データと変換情報１９１とに基づいて、計測空間内における物体表面の三次元位置を示す位置情報Ｄを算出する（ステップＳ２１１）。点群作成部１２０は、例えば、深度データの検出範囲と、変換情報１９１とに基づいて、検出した深度値と対応する測定空間内の三次元位置を算出する。変換情報１９１は、Ｕ×Ｖ個の深度値（距離値）を含む深度データ内の各点における深度値と、三次元空間における物体表面の位置（座標）との対応関係を示す情報である。例えば、ｘｙｚ空間におけるｘ方向（水平方向）の計測範囲内を６４０分割し、ｙ方向（垂直方向）の計測範囲を３２０分割した場合、深度データは、６４０×３２０個の深度値を含む。このとき、ｘ方向の計測範囲が２θｘ度（正面方向を０度としたときの−θｘ度から＋θｘ度まで）である場合、深度データにおける点ｐの深度値ｄと対応する物体表面のｘ方向の位置Ｘｐは、下記式（１）から算出される。
Ｘｐ＝｛ｘ×ｄ×tan（θｐｘ）｝／３２０      （１）
【００３５】
式（１）におけるθｐｘは、深度データにおけるｘ方向の深度値のうちの一端の方向を−θｘ度とし他端の方向を＋θｘ度としたときの、水平面内での点ｐの方向を示す角度である。
【００３６】
同様に、深度データが６４０×３２０個の深度値を含み、ｙ方向の計測範囲が２θｙ度（正面方向を０度としたときの−θｙ度から＋θｙ度まで）である場合、深度データにおける点ｐの深度値ｄと対応する物体表面のｙ方向の位置Ｙｐは、下記式（２）から算出される。
Ｙｐ＝｛ｙ×ｄ×tan（θｐｙ）｝／１６０      （２）
【００３７】
式（２）におけるθｐｙは、深度データにおけるｙ方向の深度値のうちの一端の方向を−θｙ度とし他端の方向を＋θｙ度としたときの、垂直面内での点ｐの方向を示す角度である。
【００３８】
次に、点群作成部１２０は、ＲＧＢ画像内の画素を１個選択し、該選択した画素と対応する位置情報Ｄを探索する（ステップＳ２１２）。点群作成部１２０は、所定の選択規則に従って、ＲＧＢ画像における全ての画素のうちのＲＧＢＤ点群に含める複数の点と対応する複数の画素のなかから、１個の画素を選択する。画素を選択した後、点群作成部１２０は、位置情報Ｄを表現する三次元空間における撮像装置２１０と深度センサ２２０との位置関係と、ＲＧＢ画像の撮像範囲とに基づいて、該三次元空間における撮像装置２１０の視点から見た選択中の画素の方向を算出する。その後、点群作成部１２０は、算出した方向に、ステップＳ２１１で算出した位置情報Ｄが存在するか否か（すなわち選択した画素に写っている物体表面の点についての位置情報Ｄが存在するか否か）を調べる。
【００３９】
ステップＳ２１２の探索を終えると、点群作成部１２０は、選択した画素と対応する位置情報Ｄが存在するか否かを判定する（ステップＳ２１３）。位置情報Ｄが存在する場合（ステップＳ２１３；ＹＥＳ）、点群作成部１２０は、選択した画素のＲＧＢ情報と、対応する位置情報Ｄとを含む点情報を、ＲＧＢＤ点群に登録する（ステップＳ２１４）。これに対し、位置情報Ｄが存在しない場合（ステップＳ２１３；ＮＯ）、点群作成部１２０は、選択した画素のＲＧＢ情報と、位置情報Ｄが不定であることを示す情報（NULL）とを含む点情報を、ＲＧＢＤ点群に登録する（ステップＳ２１５）。
【００４０】
選択した画素についての点情報をＲＧＢＤ点群に登録した後（すなわちステップＳ２１４又はＳ２１５を行った後）、点群作成部１２０は、未選択の画素があるか否かを判定する（ステップＳ２１６）。ステップＳ２１６において、点群作成部１２０は、所定の選択規則により選択される複数の画素のなかに、点情報をＲＧＢＤ点群に登録していない画素があるか否かを判定する。未選択の画素がある場合（ステップＳ２１６；ＹＥＳ）、点群作成部１２０は、ステップＳ２１２以降の処理を繰り返す。全ての画素が選択済みである場合（ステップＳ２１６；ＮＯ）、点群作成部１２０は、ＲＧＢＤ点群を作成する処理を終了する。
【００４１】
ＲＧＢＤ点群を作成する処理（ステップＳ２）を終えると、距離測定装置１は、ＲＧＢＤ点群を補正する処理（ステップＳ３）を行う。ＲＧＢＤ点群を補正する処理として、距離測定装置１は、例えば、図６のフローチャートに沿った処理を行う。
【００４２】
図６は、第１の実施形態におけるＲＧＢＤ点群を補正する処理を説明するフローチャートである。
【００４３】
ＲＧＢＤ点群を補正する処理は、距離測定装置１の点群補正部１３０が行う。点群補正部１３０は、まず、ＲＧＢＤ点群内の各点の位置情報Ｄに基づいて、ＲＧＢ画像において位置情報Ｄが不定となる領域（死角領域）を探索する（ステップＳ３１１）。ステップＳ３１１の処理は、点群補正部１３０の探索部１３１が行う。探索部１３１は、例えば、ＲＧＢＤ点群から位置情報Ｄが不定（NULL）である点を抽出し、ＲＧＢ画像内での位置情報Ｄが不定である点（画素）の分布を調べる。その後、探索部１３１は、位置情報Ｄが不定である画素が連続した領域のうちの、所定の条件を満たしている領域を、死角領域として検出する。ここで、所定の条件は、例えば、位置情報Ｄが不定である画素が連続した領域の形状、領域内の画素の個数、ＲＧＢ画像内における位置等についての、死角領域とみなす条件とする。
【００４４】
次に、点群補正部１３０は、ステップＳ３１１の処理の結果に基づいて、ＲＧＢ画像内に死角領域が存在するか否かを判定する（ステップＳ３１２）。ステップＳ３１２の判定は、例えば、探索部１３１が行う。死角領域が存在しない場合、本実施形態の距離計測装置１における探索部１３１は、ＲＧＢＤ点群の補正は不要であると判断する。このため、死角領域が存在しない場合（ステップＳ３１２；ＮＯ）、点群補正部１３０は、ＲＧＢＤ点群を補正する処理を終了する。この場合、点群補正部１３０は、点群作成部１２０で作成したＲＧＢＤ点群を出力部１４０に渡すとともに、記憶部１９０に点群データ１９４として記憶させる。
【００４５】
一方、死角領域が存在する場合（ステップＳ３１２；ＹＥＳ）、点群補正部１３０は、次に、死角領域に含まれる点についての位置情報Ｄを補正する処理（ステップＳ３１３〜Ｓ３１５）を行う。位置情報Ｄを補正するステップＳ３１３〜Ｓ３１５の処理は、点群補正部１３０の位置合わせ部１３２と、位置情報算出部１３３とが行う。
【００４６】
画像内に死角領域が存在した場合（ステップＳ３１２；ＹＥＳ）、点群補正部１３０は、位置情報Ｄを補正するために、まず、ＲＧＢＤ点群の点とモデル情報１９２の点との位置合わせを行う（ステップＳ３１３）。ステップＳ３１３の処理は、位置合わせ部１３２が行う。位置合わせ部１３２は、例えば、モデル情報１９２に含まれる、物体の三次元モデルに基づいて作成した物体表面を示す複数の点（点群）と、ＲＧＢＤ点群における死角領域外の点との位置合わせを行う。位置合わせ部１３２は、既知のマッチング方法に従って、モデル点群の点とＲＧＢＤ点群の点との位置合わせを行う。例えば、位置合わせ部１３２は、ＲＧＢＤ点群を表現する三次元空間内でモデル情報１９２の点群を回転及び並進させながらモデル情報１９２の点とＲＧＢＤ点群の点との一致度を算出し、算出した一致度が最大となるモデル１９２の点群の方位及び位置を特定する。
【００４７】
ＲＧＢＤ点群の点とモデル情報１９２の点との位置合わせを終えると、点群補正部１３０は、次に、モデル情報１９２に基づいて死角領域内の各点の位置情報Ｄを決定し、ＲＧＢＤ点群を補正する（ステップＳ３１４）。ステップＳ３１４の処理は、位置情報決定部１３３が行う。位置情報決定部１３３は、ＲＧＢ画像における死角領域内の点（画素）の位置と、ＲＧＢ画像の撮像範囲と、ＲＧＢＤ点群の点と位置合わせを行ったモデル点群の点の三次元位置とに基づいて、死角領域内の各点と対応する位置情報Ｄを決定する。言い換えると、位置情報決定部１３３は、ステップＳ３１４の処理として、例えば、点群作成部１２０が行うステップＳ２１２の処理と同様の処理を行う。ただし、ステップＳ３１４の処理では、三次元空間内における撮像装置２１０の視点から見たＲＧＢ画像において死角領域内の画素の方向に、モデル情報１９２により補完された物体表面の点の三次元位置を示す位置情報が存在する。このため、位置情報決定部１３３は、モデル情報１９２により補完された物体表面の点の三次元位置に基づいて、死角領域内の各点と対応する位置情報Ｄを決定する。位置情報Ｄを決定した後、位置情報決定部１３３は、死角領域内の点の位置情報Ｄを、不定であることを示す情報（NULL）から、決定した位置情報に置き換えてＲＧＢＤ点群を補正する。
【００４８】
ＲＧＢＤ点群の補正を終えると、点群補正部１３０は、次に、位置情報Ｄを算出していない死角領域があるか否かを判定する（ステップＳ３１５）。ステップＳ３１５の判定は、例えば、位置情報決定部１３３が行う。位置情報決定部１３３は、探索部１３１で検出した全ての死角領域に対し、モデル情報１９２に基づいて位置情報Ｄを置き換える処理をしたか否かを判定する。位置情報Ｄを置き換えていない死角領域が残っている場合（ステップＳ３１５；ＹＥＳ）、点群補正部１３０は、ステップＳ３１３以降の処理を繰り返す。全ての死角領域の位置情報Ｄを置き換えた場合（ステップＳ３１５；ＮＯ）、点群補正部１３０は、ＲＧＢＤ点群を補正する処理を終了する。このとき、点群補正部１３０は、補正後のＲＧＢＤ点群を出力部１４０に渡すとともに、記憶部１９０に点群データ１９４として記憶させる。
【００４９】
このように、本実施形態の距離計測装置１では、深度データに基づいて計測範囲内の物体表面の三次元位置を算出した後、該三次元位置に基づいてＲＧＢ画像内の各点（画素）に写っている物体の三次元位置を示すＲＧＢＤ点群を作成する。そして、ＲＧＢＤ点群において三次元位置が不定である点を含む死角領域がＲＧＢ画像内に存在する場合、距離計測装置１は、ＲＧＢ画像に写っている物体についてのモデル情報に基づいて、該死角領域内の点と対応する三次元位置を決定する。この際、本実施形態の距離計測装置１は、計測範囲内の物体表面のうちの深度データにより三次元位置を算出することのできない部分の三次元位置を、ＲＧＢ画像に写っている物体についての三次元モデルから作成したモデル情報１９２に基づいて補完する。これにより、本実施形態の距離計測装置１は、撮像装置２１０で撮像したＲＧＢ画像に深度センサ２２０で深度値を検出していない死角領域が存在する場合にも、該死角領域の位置情報Ｄを特定することが可能となる。
【００５０】
図７は、ＲＧＢ画像の画素と計測空間内の物体表面との関係を説明する図である。
図７には、撮像装置２１０で撮像範囲（計測空間）ＡＳ内を撮像したときのＲＧＢ画像８内の点（画素）と、撮像範囲ＡＳ内の物体の表面との関係を模式的に示している。
【００５１】
ＲＧＢ画像８における複数の画素は、それぞれ、撮像装置２１０の視点Ｓから見た画素の方向から到来する光の色についての情報を含む。このため、視点Ｓから見て物体が存在する方向の画素は、物体表面のうちの画素の方向と対応する部分の色を示すＲＧＢ情報を持つ。従って、ＲＧＢ画像８の各画素のＲＧＢ情報に基づいて、撮像装置２１０の視点から見た物体の方向を特定することが可能である。
【００５２】
例えば、ＲＧＢ画像８における領域８０１は、撮像範囲ＡＳ内の物体５５１の表面５５１Ａが写っている領域である。このとき、ＲＧＢ画像８における領域８０１内の点ＰX1，Y1と対応する画素は、視点Ｓから見て点ＰX1，Y1と対応する方向に存在する物体５５１の表面５５１Ａにおける点Ｑh1の部分の色を示すＲＧＢ情報を持つ。従って、領域８０１内に含まれる各点の方向を算出することで、領域８０１と対応する物体５５１の方向を特定することが可能である。
【００５３】
また、例えば、ＲＧＢ画像８における領域８０２は、撮像範囲ＡＳ内の物体５５２の２つの表面５５２Ａ，５５２Ｂが写っている領域である。このとき、ＲＧＢ画像８における領域８０２内の点ＰX2，Y2と対応する画素は、視点Ｓから見て点ＰX2，Y2と対応する方向に存在する物体５５２の表面５５２Ａにおける点Ｑh2の部分の色を示すＲＧＢ情報を持つ。従って、領域８０２内に含まれる各点の方向を算出することで、領域８０２と対応する物体５５２の方向を特定することが可能である。
【００５４】
撮像装置２１０の視点Ｓから見たＲＧＢ画像上の各点の方向は、撮像装置２１０の撮像範囲ＡＳの角度範囲と、ＲＧＢ画像８の画素数とにより算出可能である。ただし、ＲＧＢ画像８が持つ情報のみに基づいて、該ＲＧＢ画像８に写っている物体の表面までの距離（すなわち物体表面の点の位置）を算出することは非常に困難である。このため、本実施形態では、上記のように、深度データと変換情報１９１とに基づいて、撮像範囲ＡＳ内の物体表面５５１Ａ，５５２Ａ，５５２Ｂにおける各点の三次元位置を算出する。
【００５５】
図８は、深度データと物体表面の位置との関係を説明する図である。なお、図８には、図７におけるｚｘ面内（水平面内）での深度データと物体表面の位置との関係を示している。
【００５６】
図８では、深度データ９を検出する深度センサ２２０の視点Ｔを三次元座標の原点（０，０，０）とし、ｚ軸方向を検出範囲の中心方向としている。また、図８では、水平面内における深度値の検出範囲ＡＴは、ｚ軸方向を中心（０度）とした±θ度の範囲としている。
【００５７】
図８のように深度データ９を三次元空間におけるｚ＝Ｚ０の位置に配置する場合、ｘ方向の幅（すなわち一端Ｐ0，Vから他端ＰU-1，Vまでの距離）は、ｚ＝Ｚ０の位置における深度センサ２２０の検出範囲ＡＴと一致させる。このとき、深度データ９における各点の深度値は、それぞれ、深度センサ２２０の視点Ｔから見た点の方向に存在する物体表面までの距離の情報を示す。例えば、深度データ９における点９０１の深度値は、深度センサ２２０の視点Ｔから見て点９０１の方向に存在する物体表面までの距離を示す情報である。このため、視点Ｔから見て点９０１の方向に物体５６１の表面５６１Ａの点Ｒk1が存在すると、点９０１の深度値は、点Ｒk1のｚ方向の位置（ｚ＝Ｚ２）となる。従って、ｚ＝Ｚ０における点９０１のｘ方向の位置がわかれば、該ｘ方向の位置と、値Ｚ０と、値Ｚ２とに基づいて、物体５６１の表面５６１Ａの点Ｒk1のｘ方向の位置を算出することが可能である。同様に、ｚ＝Ｚ０における点９０１のｙ方向の位置がわかれば、該ｙ方向の位置と、Ｚ０と、Ｚ２とに基づいて、物体５６１の表面５６１Ａの点Ｒk1のｙ方向の位置を算出することが可能である。すなわち、ｚ＝Ｚ０における点９０１のｘ方向の位置及びｙ方向の位置がわかれば、点９０１と対応する物体５６１の表面５６１Ａの点Ｒk1の三次元位置を算出することが可能である。
【００５８】
また、深度データ９における点９０１とは別の点についても同様に、ｚ＝Ｚ０におけるｘ方向の位置及びｙ方向の位置と、Ｚ０の値と、深度値とに基づいて、該別の点と対応する物体表面の三次元位置を算出可能である。このため、深度センサ２２０の視点Ｔと物体５６１との間に他の物体が存在しない場合、図８に太線で示したように、物体５６１における−ｚ方向を向いた表面５６１Ａにおける各点の三次元位置が得られる。また、検出範囲ＡＴ内に他の物体が存在する場合、該他の物体の表面における各点の三次元位置も得られる。
【００５９】
物体表面の点の三次元位置を示す位置情報を得た後、本実施形態の距離計測装置１は、撮像装置２１０の視点からＲＧＢ画像８の複数の点のそれぞれと対応する位置情報Ｄを探索する。このとき、距離計測装置１は、例えば、図８のｚｘ面を含む三次元空間における撮像装置２１０の視点Ｓから見たＲＧＢ画像内の点と対応する方向に物体表面の点が存在するか否かを探索する。例えば、撮像装置２１０の視点ＳからＲＧＢ画像におけるある１つの点と対応する方向を見たときに、該方向に図８の点Ｒk1が存在し、かつ、視点Ｓと点Ｒk1との間に物体表面を示す他の点が存在しないとする。この場合、距離計測装置１は、ＲＧＢ画像におけるある１つの点と対応する画素には、物体５６１の表面５６１Ａにおける点Ｒk1の部分が写っていると認識する。このため、距離計測装置１は、ＲＧＢ画像におけるある１つの点と対応する画素のＲＧＢ情報と、物体表面の点Ｒk1の三次元位置を示す位置情報Ｄとを含む点情報をＲＧＢＤ点群に登録する。
【００６０】
しかしながら、図８に示したように、三次元空間における深度センサ２２０の視点Ｔと、撮像装置２１０の視点Ｓとは位置が異なる。また、撮像装置２１０の撮像範囲と、深度センサ２２０の検出範囲とは一致していなくてもよい。このため、ＲＧＢ画像における複数の点のそれぞれについての位置情報Ｄを探索した結果、ＲＧＢ画像における物体が写っている領域内に、物体表面の位置情報Ｄが不定である領域（死角領域）が発生することがある。
【００６１】
図９は、死角領域が発生する第１の要因を説明する図である。なお、図９には、図７におけるｚｘ面内（水平面内）での撮像範囲ＡＳと検出範囲ＡＴと物体表面の位置との関係を示している。
【００６２】
図９には、ＲＧＢ画像８に写っている物体５６２の一部分が深度センサ２２０の検出範囲ＡＴ内に存在し、他の部分が検出範囲ＡＴ外に存在する例を示している。この場合、物体５６２の表面（外周）のうちの、深度センサ２２０において深度値が検出される部分は、太線で示した部分のみである。すなわち、深度データにおける物体５６２の表面についての深度値は、撮像装置２１０の視点Ｓ側を向いた表面５６２Ａのうちの深度センサ２２０の検出範囲ＡＴ内に含まれる部分の深度値、及び−ｘ方向を向いた表面（左側面）５６２Ｂの深度値のみを含む。このため、ＲＧＢ画像８のうちの、物体５６２の表面５６２Ａにおける検出範囲ＡＴ内に含まれる部分と対応する部分範囲ＡＳＰ１内の点は、対応する位置情報Ｄが存在する。例えば、ＲＧＢ画像８の点Ｐ１と対応する画素は、物体５６２の表面５６２Ａにおける点Ｒ１の部分のＲＧＢ情報を持つ。そして、物体５６２の表面５６２Ａにおける点Ｒ１は、深度センサ２２０の検出範囲ＡＴ内に存在し、深度値が検出されている点である。このため、ＲＧＢＤ点群を作成する処理において、点群作成部１２０は、ＲＧＢ画像８のうちの点Ｐ１と対応する画素のＲＧＢ情報と、物体５６２の表面５６２Ａにおける点Ｒｋの三次元位置を示す位置情報Ｄとを含む点情報をＲＧＢＤ点群に登録する。
【００６３】
一方、ＲＧＢ画像８のうちの、物体５６２の表面５６２Ａにおける検出範囲ＡＴ外に含まれる部分と対応する部分範囲ＡＳＰ２内の点は、対応する位置情報Ｄが存在しない。例えば、ＲＧＢ画像８の点Ｐ２と対応する画素は、物体５６２の表面５６２Ａにおける点Ｒ２の部分のＲＧＢ情報を持つ。しかしながら、物体５６２の表面５６２Ａにおける点Ｒ２は、深度センサ２２０の検出範囲ＡＴ外に存在し、深度値が検出されていない点である。このため、ＲＧＢＤ点群を作成する処理において、点群作成部１２０は、ＲＧＢ画像８のうちの点Ｐ２と対応する画素のＲＧＢ情報と、位置情報Ｄが不定であることを示す情報（NULL）とを含む点情報をＲＧＢＤ点群に登録する。また、点群作成部１２０は、ＲＧＢ画像８のうちの部分範囲ＡＳＰ２内の複数の点について、位置情報Ｄが不定であることを示す情報を含む点情報をＲＧＢＤ点群に登録する。このため、ＲＧＢ画像８における物体５６２が写っている領域のうちの、深度センサ２２０の検出範囲ＡＴ外となる部分領域に含まれる点についての位置情報Ｄは不定となる。このように、ＲＧＢ画像８に写っている物体のなかに、深度センサ２２０の検出範囲ＡＴ外となる部分が含まれている場合、該検出範囲ＡＴ外となる部分と対応する領域は、位置情報Ｄが不定である死角領域となる。
【００６４】
図１０は、死角領域が発生する第２の要因を説明する図である。なお、図１０には、図７におけるｚｘ面内（水平面内）での撮像範囲ＡＳと検出範囲ＡＴと物体表面の位置との関係を示している。
【００６５】
図１０には、ＲＧＢ画像８に写っている物体５６３における＋ｘ方向を向いた面５６３Ｂが深度センサ２２０の検出範囲ＡＴ内であり、かつｘ方向の位置が深度センサ２２０の視点Ｔと撮像装置２１０の視点Ｓとの間となる位置に存在する例を示している。また、物体５６３は、全体が検出範囲ＡＴ内に存在する。この場合、物体５６３の表面（外周）のうちの、深度センサ２２０において深度値が検出される部分は、太線で示した部分のみである。すなわち、深度データにおける物体５６３の表面についての深度値は、撮像装置２１０の視点Ｓ側（−ｚ方向）を向いた表面５６３Ａの深度値のみを含む。
【００６６】
しかしながら、図１０のＲＧＢ画像８には、物体５６３の表面のうちの、−ｚ方向を向いた表面５６３Ａの一部分と、＋ｘ方向を向いた表面５６３Ｂとが写る。
【００６７】
ＲＧＢ画像８のうちの、物体５６３の表面５６３Ａが写っている部分範囲ＡＳＰ１内の点は、位置情報Ｄが存在する。例えば、ＲＧＢ画像８の点Ｐ１と対応する画素は、物体５６３の表面５６３Ａにおける点Ｒ１の部分のＲＧＢ情報を持つ。そして、物体５６３の表面５６３Ａにおける点Ｒ１は、深度センサ２２０の検出範囲ＡＴ内に存在し、深度値が検出されている点である。このため、ＲＧＢＤ点群を作成する処理において、点群作成部１２０は、ＲＧＢ画像８のうちの点Ｐ１と対応する画素のＲＧＢ情報と、物体５６３の表面５６３Ａにおける点Ｒ１の三次元位置を示す位置情報Ｄとを含む点情報をＲＧＢＤ点群に登録する。
【００６８】
一方、ＲＧＢ画像８のうちの、物体５６３の表面５６３Ｂと対応する部分範囲ＡＳＰ２内の点は、位置情報Ｄが存在しない。例えば、ＲＧＢ画像８の点Ｐ２と対応する画素は、物体５６３の表面５６３Ｂにおける点Ｒ２の部分のＲＧＢ情報を持つ。しかしながら、物体５６３の表面５６３Ｂにおける点Ｒ２は、深度センサ２２０の検出範囲ＡＴ内であっても深度センサ２２０の視点Ｔからは見えない点である。すなわち、物体５６３の表面５６３Ｂにおける点Ｒ２は、深度値が検出されていない点である。このため、ＲＧＢＤ点群を作成する処理において、点群作成部１２０は、ＲＧＢ画像８のうちの点Ｐ２と対応する画素のＲＧＢ情報と、位置情報Ｄが不定であることを示す情報（NULL）とを含む点情報をＲＧＢＤ点群に登録する。また、点群作成部１２０は、ＲＧＢ画像８のうちの部分範囲ＡＳＰ２内の複数の点について、位置情報Ｄが不定であることを示す情報を含む点情報をＲＧＢＤ点群に登録する。このため、ＲＧＢ画像８における物体５６３が写っている領域のうちの、深度センサ２２０の視点Ｔからは見えない表面５６３Ｂの部分領域内の点についての位置情報Ｄは不定となる。このように、ＲＧＢ画像８に写っている物体のなかに、深度センサ２２０の視点Ｔからは見えない部分領域がある場合、該部分領域は、位置情報Ｄが不定である死角領域となる。
【００６９】
このように、ＲＧＢ画像８の物体に位置情報Ｄが不定である死角領域が発生した場合、該物体の表面を示すＲＧＢＤ点群に欠陥が生じる。ＲＧＢＤ点群に欠陥が生じた場合、物体の三次元情報を正しく提示することができないため、例えば、ＲＧＢ画像８における物体の配置がレイアウトデータ通りであるか否かを確認することが困難となる。このため、本実施形態の距離計測装置１では、レイアウトデータにおける物体の三次元モデルに基づいて作成したモデル情報に基づいて、ＲＧＢＤ点群における位置情報Ｄが不定である点の位置情報Ｄを修正する。
【００７０】
図１１は、ＲＧＢＤ点群の点とモデル情報の点との位置合わせの方法を説明する図である。なお、図１１には、ＲＧＢＤ点群を表現する三次元空間におけるｚｘ平面でのＲＧＢＤ点群の点とモデル情報の点とを示している。
【００７１】
図１１において、中央に黒点がある丸印は、深度データと変換情報１９１とに基づいて位置情報Ｄを算出した物体５６５の表面の点Ｒ１，Ｒ２，Ｒ３，・・・，Ｒｋを示している。また、図１１において、物体５５５の輪郭に沿って配置された黒い丸印は、モデル情報１９２における物体５５５の表面の点Ｑ１，Ｑ２，Ｑ３，・・・，Ｑh1，Ｑ101〜Ｑ104，・・・，Ｑh6，・・・を示している。ここで物体５５５は、シミュレーション装置１４等により作成した、計測空間に配置される物体５６５の三次元モデルである。
【００７２】
例えば、物体５６５が配置された計測空間を撮像したＲＧＢ画像８に物体５６５の＋ｘ方向を向いた表面５６５Ｂが写っている場合、ＲＧＢ画像８における物体５６５の表面５６５Ｂが写っている領域は、位置情報Ｄが不定である死角領域となる。このため、距離計測装置１は、モデル情報１９２を利用して物体５６５の表面５６５Ｂの点についての三次元位置の情報を補完し、ＲＧＢＤ点群における位置情報Ｄを補正する。
【００７３】
このとき、距離計測装置１では、位置合わせ部１３２が、ＲＧＢＤ点群における位置情報Ｄを持つ点と、モデル情報１９２の点との位置合わせを行う。位置合わせ部１３２は、ＲＧＢＤ点群を表現する三次元空間にモデル情報１９２の複数の点（点群）を表現し、三次元空間内でモデル情報の点群の回転操作及び並進操作を行って、点群同士の三次元位置の一致度が最大となるモデル情報の点群の位置及び向きを算出する。
【００７４】
例えば、位置合わせ部１３２は、物体５５５の点群を並進移動させて、物体５５５の表面５５５Ａの点Ｑ１，Ｑ２，Ｑ３，・・・，Ｑh1と、ＲＧＢＤ点群の点Ｒ１，Ｒ２，Ｒ３，・・・，Ｒｋとの一致度を算出する。また、位置合わせ部１３２は、物体５５５の点群を時計回りに９０度回転させた後、並進移動させて、物体５５５の表面５５５Ｂの点Ｑh1，Ｑ101，Ｑ102，・・・，Ｑh6と、ＲＧＢＤ点群の点Ｒ１，Ｒ２，Ｒ３，・・・，Ｒｋとの一致度を算出する。更に、位置合わせ部１３２は、物体５５５の点群に対する回転操作及び並進操作を複数通り行い、それぞれの場合の一致度を算出する。その後、位置合わせ部１３２は、複数通りの操作のうちの、算出した一致度が最も高い操作を行って、ＲＧＢＤ点群の点とモデル情報１９２の点との位置合わせを終了する。図１１に示した例では、物体５５５を時計回りに９０度させた後、点Ｑh1が点Ｒ１と重なるよう並進移動させたときの一致度が最も大きくなる。このため、位置合わせ部１３２は、物体５５５の表面５５５Ｂの点Ｑh1，Ｑ101，Ｑ102，・・・，Ｑh6の位置が、ＲＧＢＤ点群の点Ｒ１，Ｒ２，Ｒ３，・・・，Ｒｋの位置と重なるよう物体５５５の表面の点群を移動させる。このとき、物体５６５の＋ｘ方向を向いた表面５６５Ｂと対応する位置には、物体５５５における表面５５５Ｃの点Ｑh6，Ｑ201〜Ｑ204が存在する。よって、ＲＧＢＤ点群を作成する際に位置情報Ｄが不定であった物体５６５の＋ｘ方向を向いた表面５６５Ｂの点の三次元位置（位置情報Ｄ）が、モデル情報１９２の点Ｑh6，Ｑ201〜Ｑ204により補完される。これにより、ＲＧＢ画像８おける死角領域（物体５６５の表面５６５Ｂが写っている領域）内の点についての位置情報Ｄを決定することが可能となる。
【００７５】
図１２は、モデル情報の点の位置情報を利用した位置情報Ｄの補正方法の例を示す図である。なお、図１２には、図７におけるｚｘ面内（水平面内）での撮像範囲ＡＳと検出範囲ＡＴと物体表面の位置との関係を示している。
【００７６】
図１２には、上記の第１の要因により発生した死角領域内の点についての位置情報Ｄの補正方法を説明する図を示している。図１２において、物体５６２の輪郭（外周）に配置した中央に黒点のある丸印は、深度データと変換情報１９１とに基づいて位置情報Ｄを算出した物体５６２の表面の点を示している。また、図１２において、物体５６２の輪郭に配置した黒い丸印は、モデル情報１９２における物体表面の点を示している。
【００７７】
本実施形態の距離計測装置１では、まず、深度データと変換情報１９１とに基づいて算出した物体５６２の表面の点の位置情報Ｄのなかから、ＲＧＢ画像８の各点と対応する位置情報Ｄを探索する。この場合、物体５６２の一部分が深度センサ２２０の検出範囲ＡＴ内に存在し、他の部分が検出範囲ＡＴ外に存在すると、ＲＧＢ画像８には死角領域が発生する。図１２の例では、ＲＧＢ画像８のうちの、視点Ｓから見て物体５６２のうちの深度センサ２２０の検出範囲ＡＴ内に含まれる部分と対応する部分範囲ＡＳＰ１内の点は、深度データと変換情報１９１とに基づいて算出した位置情報Ｄと対応付けられる。このため、例えば、ＲＧＢ画像８における部分範囲ＡＳＰ１内の点Ｐ１と対応する画素のＲＧＢ情報は、物体５６２の表面５６２Ａにおける点Ｒ１の位置情報ＤとともにＲＧＢＤ点群に登録される（ステップＳ２１４）。一方、例えば、ＲＧＢ画像８における部分範囲ＡＳＰ２内の点Ｐ２と対応する画素のＲＧＢ情報は、位置情報Ｄが不定であることを示す情報（NULL）とともにＲＧＢ点群に登録される（ステップＳ２１５）。
【００７８】
その後、本実施形態の距離計測装置１は、ＲＧＢ画像８における部分範囲ＡＳＰ２と対応する領域が死角領域であると判定し、該死角領域内の点についての位置情報Ｄを補正する処理（ステップＳ３１３及びＳ３１４）を行う。このとき、距離計測装置１は、モデル情報１９２を読み出し、モデル情報１９２における物体表面の複数の点と、ＲＧＢＤ点群の点との位置合わせを行う（ステップＳ３１３）。これにより、図１２に黒い丸印で示したように、物体５６２の表面のうちの、深度データと変換情報１９１とにより位置情報Ｄを算出することができなかった部分についての位置情報が補完される。
【００７９】
モデル情報１９２により位置情報Ｄを補完した後、距離計測装置１は、ＲＧＢＤ点群における位置情報Ｄが不定である点についての位置情報Ｄを決定する（ステップＳ３１４）。例えば、ＲＧＢＤ点群を作成した段階でのＲＧＢ画像８の部分範囲ＡＳＰ２内の点Ｐ２についての点情報では、位置情報Ｄが不定であることを示す情報（NULL）となっている。このため、距離計測装置１は、ＲＧＢＤ点群を補正する処理において、ＲＧＢＤ点群のうちのＲＧＢ画像８の部分範囲ＡＳＰ２内の各点についての点情報における位置情報を、不定であることを示す情報から、補完した点の位置情報に置き換える。例えば、距離計測装置１は、ＲＧＢ画像８の点Ｐ２についての点情報における位置情報を、不定であることを示す情報から、物体５６２の表面５６２Ａにおける点Ｑ２の三次元位置を示す位置情報Ｄに置き換える。これにより、ＲＧＢ画像８における物体５６２の表面５６２Ａが写っている領域から位置情報Ｄが不定である死角領域をなくすことが可能となり、物体５６２の三次元情報を正しく提示することが可能となる。よって、例えば、ＲＧＢ画像８やＲＧＢＤ点群を見た作業者１１は、ＲＧＢ画像８における物体の配置がレイアウトデータ通りであるか否かを容易に判定することが可能となる。
【００８０】
図１３は、ＲＧＢＤ点群を補正する前後のＲＧＢ画像における位置情報を持つ点を説明する図である。図１４は、補正前のＲＧＢＤ点群の例を示す図である。図１５は、補正後のＲＧＢＤ点群の例を示す図である。
【００８１】
図１３における２つのＲＧＢ画像８のうちの上方のＲＧＢ画像８Ａは、ＲＧＢＤ点群を補正する前のＲＧＢ画像８において位置情報Ｄを持つ点を示している。ここで、位置情報Ｄを持つ点は、位置情報Ｄが不定ではない点である。また、図１３における下方の画像８Ｂは、ＲＧＢＤ点群を補正した後のＲＧＢ画像８において位置情報Ｄを持つ点を示している。なお、ＲＧＢ画像８Ａ，８Ｂにおける中央に黒点のある丸印は、深度データと変換情報１９１とに基づいて算出した位置情報Ｄを示している。また、ＲＧＢ画像８Ｂにおける黒色の丸印は、モデル情報１９２の点に基づいて決定した位置情報Ｄを示している。更に、ＲＧＢ画像８Ａ，８Ｂでは、位置情報Ｄを持つ点の一部を省略している。
【００８２】
撮像装置２１０で計測空間内の物体を撮像した場合には、図１３のＲＧＢ画像８Ａのように、撮像装置２１０の撮像範囲内に存在する物体と対応する領域８１０内に右方を向いた表面と対応する部分領域８１０Ｃが含まれることがある。このとき、撮像装置２１０の左方に深度センサ２２０が配置されていると、深度センサ２２０は、ＲＧＢ画像８Ａにおける部分領域８１０Ｃと対応する物体表面についての深度値を検出しない（例えば図１０を参照）。この場合、ＲＧＢＤ点群を作成した時点では、ＲＧＢ画像８Ａのように、物体と対応する領域８１０内のうちの、部分領域８１０Ａ，８１０Ｂ内の点のみが位置情報Ｄを持ち、部分領域８１０Ｃ内の点は位置情報Ｄが不定となる。なお、ＲＧＢ画像８Ａにおける部分領域８１０Ａ，８１０Ｂ内は、ＲＧＢＤ点群に含まれる点を示す丸印の一部を省略している。
【００８３】
ここで、ＲＧＢＤ点群は、特定のデータ形式に限定されるものではなく、適宜設定すればよい。例えば、点群作成部１２０が作成するＲＧＢＤ点群は、図１４の補正前のＲＧＢＤ点群１９９のように、ＲＧＢ画像上の位置、ＲＧＢ情報、及び位置情報Ｄを含む点情報をテーブル化したデータであってもよい。補正前のＲＧＢＤ点群１９９における位置情報Ｄの「(NULL)」は、位置情報Ｄが不定であることを示している。
【００８４】
ステップＳ２で作成したＲＧＢＤ点群を補正せずに出力した場合、ＲＧＢ画像８Ａにおける１個の物体を示す領域８１０のうちの部分領域８１０Ｃ内の点については位置情報Ｄが不定となっている。このため、出力されたＲＧＢ画像８Ａ及びＲＧＢＤ点群を見た作業者１１は、領域８１０に写っている物体がレイアウトデータ通りに配置されているか否かを正しく判断することが難しい。
【００８５】
これに対し、本実施形態の距離計測装置１では、ＲＧＢＤ点群において位置情報Ｄが不定である点についての位置情報をモデル情報１９２を利用して決定し、ＲＧＢＤ点群を補正する。このように、ＲＧＢＤ点群を補正することにより、ＲＧＢ画像８Ａにおいて位置情報が不定であった部分領域８１０Ｃ内の点の位置情報Ｄが決定する。すなわち、ＲＧＢＤ点群を補正することにより、図１３の下方のＲＧＢ画像８Ｂのように、深度データから位置情報Ｄを決定することができなかった部分領域８１０Ｃ内の点についての位置情報Ｄが決定する。これにより、補正前のＲＧＢＤ点群１９９において位置情報Ｄが「（NULL）」であった点の位置情報Ｄは、モデル情報１９２により補完された点の位置情報に置換される。例えば、図１４のＲＧＢＤ点群１９９におけるｎ１番，ｎ２番，及びｎ３番の点の点情報における位置情報Ｄは、それぞれ、図１５の補正後のＲＧＢＤ点群１９４のように、モデル情報１９２により補完された点の三次元座標を示す位置情報Ｄに置換される。よって、出力されたＲＧＢ画像８Ｂ及びＲＧＢＤ点群を見た作業者１１は、領域８１０に写っている物体がレイアウトデータ通りに配置されているか否かを正しく判断することが可能となる。
【００８６】
なお、本実施形態の距離計測装置１は、図２を参照して説明した作業機器５の組み付け作業における作業用具等の配置の確認に限らず、種々の用途に適用可能である。例えば、距離計測装置１は、作業機器５の動作に基づいて作業用具等の配置を見直し最適化することにも適用可能である。また、距離計測装置１の設置場所は、作業機器５が設置された作業エリア６に限らず、適宜変更可能である。
【００８７】
図１６は、距離計測装置の別の適用例を説明する図である。
本実施形態の距離計測装置１を利用して作業エリア６に設置した作業機器５の三次元情報を取得する際には、図１６に示すように、距離計測装置１を作業エリア６とは異なる場所に設置してもよい。この場合、距離計測装置１における情報取得部１１０は、ネットワーク１２に接続可能なものとし、ネットワーク１２を介して複合センサ装置２からＲＧＢ画像と深度データとを取得する。また、距離計測装置１における出力部１４０は、ネットワーク１２に接続可能なものとし、ネットワーク１２を介して管理サーバ１５等にＲＧＢＤ点群及びＲＧＢ画像を出力する。管理サーバ１５は、例えば、距離計測装置１から取得したＲＧＢＤ点群及びＲＧＢ画像と、シミュレーション装置１４により作成したレイアウトデータ１３とに基づいて、作業エリア６の作業機器５が適切な動作をしているか否かを管理する。また、管理サーバ１５は、例えば、作業機器５における作業用具５０１〜５０５等の配置に改善の余地があるか否かの管理を行う。また、管理サーバ１５は、例えば、作業機器５の動作や配置に改善可能な点がある場合に、作業者１１が利用するユーザ端末１６に対して情報を出力する。
【００８８】
なお、本実施形態では、距離計測装置１とシミュレーション装置１４とを別個の装置としたが、これに限らず、距離計測装置１は、シミュレーション装置１４としての機能を含むものであってもよい。
【００８９】
また、本実施形態では、シミュレーション装置１４等で作成した物体の三次元モデルにおける物体表面の点の三次元位置を示す点群を予め作成し、距離計測装置１の記憶部１９０にモデル情報１９２として記憶させておく例を説明した。しかしながら、モデル情報１９２は、これに限らず、例えば、ＲＧＢＤ点群を作成する処理において作成してもよいことはもちろんである。すなわち、距離計測装置１は、計測空間に配置する物体の三次元モデルデータを記憶部１９０に記憶させておき、ＲＧＢＤ点群を作成する際に、該三次元モデルにおける物体表面の点の三次元位置を示す点群（モデル情報１９２）を作成してもよい。
【００９０】
［第２の実施形態］
本実施形態では、図４のフローチャートにおけるＲＧＢＤ点群を作成する処理（ステップＳ２）の別の処理内容について説明する。なお、本実施形態に係る距離計測装置１の機能的構成は、第１の実施形態で説明した機能的構成と同じでよい。
【００９１】
図１７は、第２の実施形態におけるＲＧＢＤ点群を生成する処理の内容を説明するフローチャートである。
【００９２】
本実施形態においても、ＲＧＢＤ点群を作成する処理は、距離計測装置１の点群作成部１２０が行う。本実施形態の距離計測装置１における点群作成部１２０は、まず、図１７のように、ＲＧＢ画像内の各画素のＲＧＢ情報に基づいて、ＲＧＢ画像内の死角領域を探索する（ステップＳ２２１）。ステップＳ２２１において、点群作成部１２０は、画像処理の分野における既知の探索方法に従って、死角領域を探索する。例えば、点群作成部１２０は、撮像装置２１０と深度センサ２２０との位置関係、撮像装置２１０の撮像範囲と深度センサ２２０の検出範囲との関係、ＲＧＢ画像内における物体の形状等に基づいて、死角領域を探索する。また、ステップＳ２２１において、点群作成部１２０は、死角領域に含まれる画素と、死角領域外の画素とを識別する情報を生成する。
【００９３】
次に、点群作成部１２０は、ＲＧＢ画素内の画素を１個選択し（ステップＳ２２２）、選択した画素が死角領域内の画素であるか否かを判定する（ステップＳ２２３）。ステップＳ２２２において、点群作成部１２０は、所定の選択規則に従って、ＲＧＢ画像における全ての画素のうちの１個の画素を選択する。画素を選択した後、点群作成部１２０は、ステップＳ２２１の結果に基づいて、選択した画素が死角領域内の画素であるか否かを判定する。
【００９４】
選択した画素が死角領域内の画素である場合（ステップＳ２２３；ＹＥＳ）、点群作成部１２０は、画素のＲＧＢ情報と、位置情報Ｄが不定であることを示す情報とを含む点情報をＲＧＢＤ点群に登録する（ステップＳ２２４）。一方、選択した画素が死角領域外の画素である場合（ステップＳ２２３；ＮＯ）、点群作成部１２０は、位置情報Ｄを算出し、画素のＲＧＢ情報と算出した位置情報Ｄとを含む点情報をＲＧＢＤ点群に登録する（ステップＳ２２５）。ステップＳ２２５において、点群作成部１２０は、深度データと変換情報とに基づいて、選択した画素と対応する物体表面の位置情報Ｄを算出する。点群作成部１２０は、第１の実施形態で説明した方法により、位置情報Ｄを算出する。位置情報Ｄを算出した後、点群作成部１２０は、選択中の画素のＲＧＢ情報と、算出した位置情報Ｄとを含む点情報を、ＲＧＢＤ点群に登録する。
【００９５】
選択した画素についての点情報をＲＧＢＤ点群に登録した後（すなわちステップＳ２２４又はＳ２２５を行った後）、点群作成部１２０は、未選択の画素があるか否かを判定する（ステップＳ２２６）。ステップＳ２２６において、点群作成部１２０は、所定の選択規則により選択される複数の画素のなかに、点情報をＲＧＢＤ点群に登録していない画素があるか否かを判定する。未選択の画素がある場合（ステップＳ２２６；ＹＥＳ）、点群作成部１２０は、ステップＳ２２２以降の処理を繰り返す。全ての画素が選択済みである場合（ステップＳ２２６；ＮＯ）、点群作成部１２０は、ＲＧＢＤ点群を作成する処理を終了する。
【００９６】
ＲＧＢＤ点群を作成する処理（ステップＳ２）を終えると、距離測定装置１は、ＲＧＢＤ点群を補正する処理（ステップＳ３）を行う。ＲＧＢＤ点群を補正する処理として、本実施形態の距離測定装置１は、例えば、図６のフローチャートに沿った処理を行う。
【００９７】
このように、本実施形態の距離測定装置１では、まず、ＲＧＢ画像内の各画素のＲＧＢ情報に基づいて死角領域を探索する。その後、本実施形態の距離測定装置１は、ＲＧＢ画像内の複数の点のうちの死角領域外の点（画素）についての位置情報Ｄを算出し、該位置情報Ｄを含む点情報をＲＧＢ点群に登録する。すなわち、距離測定装置１においてＲＧＢＤ点群を作成する処理は、第１の実施形態で説明した手順（図５のフローチャートに沿った手順）に限らず、適宜変更可能である。しかも、本実施形態で説明したＲＧＢＤ点群の作成手順も、ＲＧＢＤ点群を作成する処理の別の一例に過ぎない。
【００９８】
［第３の実施形態］
本実施形態では、図４のフローチャートにおけるＲＧＢＤ点群を補正する処理（ステップＳ３）の別の処理内容について説明する。なお、本実施形態に係る距離計測装置１の機能的構成は、第１の実施形態で説明した機能的構成と同じでよい。
【００９９】
図１８は、第３の実施形態におけるＲＧＢＤ点群を生成する処理の内容を説明するフローチャートである。
【０１００】
本実施形態の距離計測装置１においても、ＲＧＢＤ点群を補正する処理は、距離測定装置１の点群補正部１３０が行う。点群補正部１３０は、まず、図１８のように、ＲＧＢＤ点群の点とモデル情報１９２の点との位置合わせを行う（ステップＳ３１３）。ステップＳ３１３の処理は、点群補正部１３０の位置合わせ部１３２が行う。位置合わせ部１３２は、第１の実施形態で説明したように、ＲＧＢＤ点群における位置情報Ｄが不定ではない点と、モデル情報１９２の点との位置合わせを行う。
【０１０１】
次に、点群補正部１３０は、ＲＧＢＤ点群内の各点の位置情報Ｄをチェックし、ＲＧＢ画像において位置情報Ｄが不定となる領域（死角領域）を探索する（ステップＳ３１１）。ステップＳ３１１の処理は、点群補正部１３０の探索部１３１が行う。探索部１３１は、例えば、ＲＧＢＤ点群から位置情報Ｄが不定（NULL）である点を抽出し、ＲＧＢ画像内での位置情報Ｄが不定である点（画素）の分布を調べる。その後、探索部１３１は、位置情報Ｄが不定である画素が連続した領域のうちの、所定の条件を満たしている領域を、死角領域として検出する。ここで、所定の条件は、例えば、位置情報Ｄが不定である画素が連続した領域の形状、領域内の画素の個数、ＲＧＢ画像内における位置等についての、死角領域とみなす条件とする。
【０１０２】
次に、点群補正部１３０は、ステップＳ３１１の処理の結果に基づいて、画像内に死角領域が存在するか否かを判定する（ステップＳ３１２）。ステップＳ３１２の判定は、例えば、探索部１３１が行う。
【０１０３】
死角領域が存在する場合（ステップＳ３１２；ＹＥＳ）、点群補正部１３０は、次に、ＲＧＢＤ点群の点と位置合わせをしたモデル情報１９２に基づいて死角領域内の死角領域内の各点の位置情報Ｄを決定し、ＲＧＢＤ点群を補正する（ステップＳ３１４）。ステップＳ３１４の処理は、位置情報決定部１３３が行う。位置情報決定部１３３は、第１の実施形態で説明した手順により、死角領域内の各点と対応する位置情報Ｄを決定する。位置情報Ｄを決定した後、位置情報決定部１３３は、死角領域内の点の位置情報Ｄを、不定であることを示す情報（NULL）から決定した位置情報に置き換えてＲＧＢＤ点群を補正する。
【０１０４】
ＲＧＢＤ点群の補正を終えると、点群補正部１３０は、次に、位置情報Ｄを算出していない死角領域があるか否かを判定する（ステップＳ３１５）。ステップＳ３１５の判定は、例えば、位置情報決定部１３３が行う。位置情報決定部１３３は、探索部１３１で検出した全ての死角領域に対し、モデル情報１９２に基づいて位置情報Ｄを置き換える処理をしたか否かを判定する。位置情報Ｄを置き換えていない死角領域が残っている場合（ステップＳ３１５；ＹＥＳ）、点群補正部１３０は、ステップＳ３１４の処理を繰り返す。全ての死角領域の位置情報Ｄを置き換えた場合（ステップＳ３１５；ＮＯ）、点群補正部１３０は、次に、モデル情報１９２に基づいて、死角領域外に存在する点の位置情報Ｄを修正し、ＲＧＢＤ点群を補正する（ステップＳ３１６）。また、ステップＳ３１１の探索結果において死角領域が存在しなかった場合（ステップＳ３１２；ＮＯ）、点群補正部１３０は、ステップＳ３１４及びＳ３１５の処理を省略してステップＳ３１６の処理を行う。
【０１０５】
ステップＳ３１６の処理は、点群補正部１３０の位置情報決定部１３３が行う。位置情報決定部１３３は、例えば、ＲＧＢＤ点群における位置情報Ｄが不定ではない点の位置情報を、ＲＧＢＤ点群の点と位置合わせをしたモデル情報１９２の点の三次元位置（位置情報）に置き換える。すなわち、本実施形態におけるＲＧＢＤ点群を補正する処理では、深度データ及び変換情報１９１に基づいて算出した位置情報Ｄを含む点についての位置情報を、ＲＧＢＤ点群の点と位置合わせをしたモデル情報１９２の点の位置情報に置き換える処理も行う。
【０１０６】
ステップＳ３１６の処理を終えると、点群補正部１３０は、ＲＧＢＤ点群を補正する処理を終了する。このとき、点群補正部１３０は、補正後のＲＧＢＤ点群を出力部１４０に渡すとともに、記憶部１９０に点群データ１９４として記憶させる。
【０１０７】
このように、本実施形態の距離計測装置１では、深度データに基づいて計測範囲内の物体表面の三次元位置を算出した後、該三次元位置に基づいてＲＧＢ画像内の各点（画素）に写っている物体の三次元位置を示すＲＧＢＤ点群を作成する。そして、ＲＧＢＤ点群において三次元位置が不定である点を含む死角領域がＲＧＢ画像内に存在する場合、距離計測装置１は、ＲＧＢ画像に写っている物体についてのモデル情報に基づいて、該死角領域内の点と対応する三次元位置を決定する。この際、本実施形態の距離計測装置１は、計測範囲内の物体表面のうちの深度データにより三次元位置を算出することのできない部分の三次元位置を、ＲＧＢ画像に写っている物体についての三次元モデルから作成したモデル情報１９２に基づいて補完する。これにより、本実施形態の距離計測装置１は、撮像装置２１０で撮像したＲＧＢ画像に深度センサ２２０で深度値を検出していない死角領域が存在する場合にも、該死角領域の位置情報Ｄを特定することが可能となる。
【０１０８】
更に、本実施形態では、ＲＧＢＤ点群を補正する処理において、深度データ及び変換情報１９１に基づいて算出した位置情報Ｄを含む点についての位置情報を、ＲＧＢＤ点群の点と位置合わせをしたモデル情報１９２の点の位置情報に置き換える処理も行う。深度データ及び変換情報１９１に基づいて算出した位置情報Ｄの精度は、例えば、深度値の検出精度や、深度値の検出方向を制御する際の精度の影響を受ける。このため、例えば、実際には平面である物体表面における複数の点についてのｚ座標にばらつきが生じる等、ＲＧＢＤ点群に物体表面の形状とモデル情報１９２における物体表面の形状とに差異が生じることがある。これに対し、本実施形態で説明したＲＧＢＤ点群を補正する処理では、ＲＧＢＤ点群における深度データ及び変換情報１９１に基づいて算出した位置情報Ｄを、モデル情報１９２の各点の位置情報に置き換える。これにより、ＲＧＢＤ点群における各点の位置情報Ｄを物体の形状を正しく表現する情報に近づけることが可能となり、ＲＧＢ画像内の各物体の三次元形状をより適切に表現することが可能となる。
【０１０９】
上記の距離計測装置１は、コンピュータと、該コンピュータに実行させるプログラムとにより実現可能である。以下、図１９を参照して、コンピュータとプログラムとにより実現される距離計測装置１について説明する。
【０１１０】
図１９は、コンピュータのハードウェア構成を示す図である。
図１９に示すように、コンピュータ２０は、プロセッサ２００１と、主記憶装置２００２と、補助記憶装置２００３と、入力装置２００４と、出力装置２００５と、入出力インタフェース２００６と、通信制御装置２００７と、媒体駆動装置２００８と、を備える。コンピュータ２０におけるこれらの要素２００１〜２００８は、バス２０１０により相互に接続されており、要素間でのデータの受け渡しが可能になっている。
【０１１１】
プロセッサ２００１は、Central Processing Unit（ＣＰＵ）やMicro Processing Unit（ＭＰＵ）等である。プロセッサ２００１は、オペレーティングシステムを含む各種のプログラムを実行することにより、コンピュータ２０の全体の動作を制御する。また、プロセッサ２００１は、例えば、図４、図５、及び図６のフローチャートにおける各処理を含む距離計測プログラムを実行することにより、死角領域の位置情報をモデル情報に基づいて補正したＲＧＢＤ点群を作成する。なお、距離計測プログラムにおけるＲＧＢＤ点群を作成する処理は、図５のフローチャートに沿った処理に限らず、例えば、図１７のフローチャートに沿った処理であってもよい。また、距離計測プログラムにおけるＲＧＢＤ点群を補正する処理は、図６のフローチャートに沿った処理に限らず、例えば、図１８のフローチャートに沿った処理であってもよい。
【０１１２】
主記憶装置２００２は、図示しないRead Only Memory（ＲＯＭ）及びRandom Access Memory（ＲＡＭ）を含む。主記憶装置２００２のＲＯＭには、例えば、コンピュータ２０の起動時にプロセッサ２００１が読み出す所定の基本制御プログラム等が予め記録されている。また、主記憶装置２００２のＲＡＭは、プロセッサ２００１が、各種のプログラムを実行する際に必要に応じて作業用記憶領域として使用する。主記憶装置２００２のＲＡＭは、例えば、変換情報１９１、モデル情報１９２、画像データ１９３、点群データ１９４等の記憶に利用可能である。
【０１１３】
補助記憶装置２００３は、例えば、Hard Disk Drive（ＨＤＤ）や、フラッシュメモリ等の不揮発性メモリ（Solid State Drive（ＳＳＤ）を含む）等、主記憶装置２００２のＲＡＭと比べて容量の大きい記憶装置である。補助記憶装置２００３は、プロセッサ２００１によって実行される各種のプログラムや各種のデータ等の記憶に利用可能である。補助記憶装置２００３は、例えば、図４、図５、及び図６のフローチャートにおける各処理を含む距離計測プログラムの記憶に利用可能である。また、補助記憶装置２００３は、例えば、変換情報１９１、モデル情報１９２、画像データ１９３、点群データ１９４等の記憶に利用可能である。
【０１１４】
入力装置２００４は、例えば、キーボード装置やタッチパネル装置等である。入力装置２００４は、例えば、図２の入力装置３として利用可能である。コンピュータ２０のオペレータ（利用者）が入力装置２００４に対して所定の操作を行うと、入力装置２００４は、その操作内容に対応付けられている入力情報をプロセッサ２００１に送信する。また、入力装置２００４は、撮像装置２１０及び深度センサ２２０を備えた複合センサ装置２を含んでもよい。
【０１１５】
出力装置２００５は、例えば、液晶表示装置等の表示装置やスピーカ等の音声再生装置である。出力装置２００５は、例えば、図２の表示装置４として利用可能である。
【０１１６】
入出力インタフェース２００６は、コンピュータ２０と、他の電子機器とを接続する。入出力インタフェース２００６は、例えば、Universal Serial Bus（ＵＳＢ）規格のコネクタ等を備える。入出力インタフェース２００６は、例えば、コンピュータ２０と、撮像装置２１０及び深度センサ２２０を備えた複合センサ装置２との接続に利用可能である。
【０１１７】
通信制御装置２００７は、コンピュータ２０をインターネット等のネットワークに接続し、ネットワークを介したコンピュータ２０と他の電子機器との各種通信を制御する装置である。通信制御装置２００７は、例えば、ネットワーク１２を介した、距離計測装置1として動作させるコンピュータ２０とレイアウトデータベース１３との通信に利用可能である（図２を参照）。また、通信制御装置２００７は、例えば、ネットワーク１２を介した、距離計測装置１として動作させるコンピュータ２０と複合センサ装置２との通信に利用可能である（図１６を参照）。更に、通信制御装置２００７は、ネットワーク１２を介した、距離計測装置１として動作させるコンピュータ２０と管理サーバ１５との通信に利用可能である（図１６を参照）。
【０１１８】
媒体駆動装置２００８は、可搬型記録媒体２１に記録されているプログラムやデータの読み出し、補助記憶装置２００３に記憶されたデータ等の可搬型記録媒体２１への書き込みを行う。媒体駆動装置２００８には、例えば、１種類以上の規格に対応したメモリカード用リーダ／ライタが利用可能である。媒体駆動装置２００８としてメモリカード用リーダ／ライタを用いる場合、可搬型記録媒体２１としては、メモリカード用リーダ／ライタが対応している規格、例えば、Secure  Digital（ＳＤ）規格のメモリカード（フラッシュメモリ）等を利用可能である。また、可搬型記録媒体２１としては、例えば、ＵＳＢ規格のコネクタを備えたフラッシュメモリが利用可能である。更に、コンピュータ２０が媒体駆動装置２００８として利用可能な光ディスクドライブを搭載している場合、当該光ディスクドライブで認識可能な各種の光ディスクを可搬型記録媒体２１として利用可能である。可搬型記録媒体２１として利用可能な光ディスクには、例えば、Compact Disc（ＣＤ）、Digital Versatile Disc（ＤＶＤ）、Blu-ray Disc（Blu-rayは登録商標）等がある。可搬型記録媒体２１は、例えば、図４、図５、及び図６のフローチャートにおける各処理を含む距離計測プログラムの記憶に利用可能である。また、可搬型記録媒体２１は、例えば、変換情報１９１、モデル情報１９２、画像データ１９３、点群データ１９４等の記憶に利用可能である。
【０１１９】
作業者１１等が入力装置２００４等を操作することによりコンピュータ２０に距離計測処理の開始命令が入力されると、プロセッサ２００１は、補助記憶装置２００３等の非一時的な記録媒体に記憶させた距離計測プログラムを読み出して実行する。距離計測プログラムを実行している間、プロセッサ２００１は、距離計測装置１における情報取得部１１０、点群作成部１２０、点群補正部１３０、及び出力部１４０として機能する（動作する）。なお、距離計測装置１における出力部１４０の機能の一部は、コンピュータ２０の通信制御装置２００７や媒体駆動装置２００８が担う。また、距離計測プログラムを実行している間、主記憶装置２００２のＲＡＭや補助記憶装置２００３等の記憶装置は、距離計測装置１の記憶部１９０として機能する。
【０１２０】
なお、距離計測装置１として動作させるコンピュータ２０は、図１９に示した全ての要素２００１〜２００８を含む必要はなく、用途や条件に応じて一部の要素を省略することも可能である。例えば、コンピュータ２０は、媒体駆動装置２００８が省略されたものであってもよい。
【０１２１】
また、コンピュータ２０に実行させる距離計測プログラムにおけるＲＧＢＤ点群を生成する処理は、図５のフローチャートに沿った処理に限らず、図１７のフローチャートに沿った処理であってもよい。更に、距離計測プログラムにおけるＲＧＢＤ点群を補正する処理は、図６のフローチャートに沿った処理に限らず、図１８のフローチャートに沿った処理であってもよい。
【０１２２】
以上記載した各実施例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
物体の画像と、前記物体の表面における複数の点のそれぞれまでの距離の情報とを取得する取得部と、
前記画像と前記距離の情報とに基づいて、前記画像における複数の点のそれぞれと対応する三次元位置を算出し、前記画像における輝度の情報と三次元位置を示す位置情報とを含む点情報を登録した点群を作成する作成部と、
前記点群の点情報のうちの前記距離の情報に基づいて算出された前記三次元位置を示す位置情報と、予め用意された前記物体の表面における複数の点のそれぞれの三次元位置を示す位置情報を含むモデル情報とに基づいて、前記点群の点情報のうちの前記位置情報が不定である点の位置情報を決定して前記点群を補正する補正部と、
を備えることを特徴とする距離計測装置。
（付記２）
前記補正部は、
前記画像における複数の点のうちの、前記距離の情報と対応付けられない点を含む死角領域を探索する探索部と、
前記点群の点と前記モデル情報の点との位置合わせを行う位置合わせ部と、
位置合わせをした前記モデル情報の点により補完された前記物体の表面の点の三次元位置に基づいて、前記画像の前記死角領域内に含まれる点と対応する三次元位置を決定し、前記点群の前記死角領域内の点についての前記点情報における前記位置情報を、決定した前記三次元位置を示す情報に置き換える決定部と、
を含むことを特徴とする付記１に記載の距離計測装置。
（付記３）
前記補正部は、更に、前記モデル情報に基づいて、前記点群の点情報のうちの前記距離の情報に基づいて算出した前記位置情報を修正して前記点群を補正する、
ことを特徴とする付記１に記載の距離計測装置。
（付記４）
前記作成部は、
前記距離の情報に基づいて、該距離の情報を検出する検出範囲内での前記物体の表面の前記複数の点のそれぞれの三次元位置を算出した後、
前記距離の情報を検出する検出装置と前記画像を撮像する撮像装置との位置関係、前記検出装置の検出範囲、及び前記撮像装置の撮像範囲に基づいて、前記画像内の複数の点のそれぞれと対応する前記三次元位置を算出する、
ことを特徴とする付記１に記載の距離計測装置。
（付記５）
前記作成部は、
前記画像の各画素が持つ情報に基づいて該画像内の前記物体における前記距離の情報と対応付けられない死角領域を算出した後、
前記画像における前記複数の点のうちの前記死角領域内の点については、該点の前記輝度の情報と、位置情報が不定であることを示す情報とを含む点情報を前記点群に登録し、
前記画像における前記複数の点のうちの前記死角領域外の点については、該点の前記輝度の情報と、該点と対応付けられる前記距離の情報に基づいて算出した前記位置情報とを含む点情報を前記点群に登録する、
ことを特徴とする付記１に記載の距離計測装置。
（付記６）
前記取得部は、前記画像を撮像する撮像装置と、検出対象である空間内の深度値を検出する深度センサとを含む複合センサ装置から、前記物体の前記画像を取得するとともに、前記距離の情報として前記深度センサで検出した前記深度値を取得する、
ことを特徴とする付記１に記載の距離計測装置。
（付記７）
前記距離計測装置は、前記物体の三次元モデルから前記モデル情報を抽出する抽出部を更に備える、
ことを特徴とする付記１に記載の距離計測装置。
（付記８）
コンピュータが、
物体の画像と、前記物体の表面における複数の点のそれぞれまでの距離の情報とを取得し、
前記画像と前記距離の情報とに基づいて、前記画像における複数の点のそれぞれと対応する三次元位置を算出し、前記画像における輝度の情報と三次元位置を示す位置情報とを含む点情報を登録した点群を作成し、
前記点群の点情報のうちの前記距離の情報に基づいて算出された前記三次元位置を示す位置情報と、予め用意された前記物体の表面における複数の点のそれぞれの三次元位置を示す位置情報を含むモデル情報とに基づいて、前記点群の点情報のうちの前記位置情報が不定である点の位置情報を決定して前記点群を補正する、
処理を実行することを特徴とする距離計測方法。
（付記９）
物体の画像と、前記物体の表面における複数の点のそれぞれまでの距離の情報とを取得し、
前記画像と前記距離の情報とに基づいて、前記画像における複数の点のそれぞれと対応する三次元位置を算出し、前記画像における輝度の情報と三次元位置を示す位置情報とを含む点情報を登録した点群を作成し、
前記点群の点情報のうちの前記距離の情報に基づいて算出された前記三次元位置を示す位置情報と、予め用意された前記物体の表面における複数の点のそれぞれの三次元位置を示す位置情報を含むモデル情報とに基づいて、前記点群の点情報のうちの前記位置情報が不定である点の位置情報を決定して前記点群を補正する、
処理をコンピュータに実行させる距離計測プログラム。
【符号の説明】
【０１２３】
１  距離計測装置
１１０  情報取得部
１２０  点群作成部
１３０  点群補正部
１３１  探索部
１３２  位置合わせ部
１３３  位置情報決定部
１４０  出力部
１９０  記憶部
１９１  変換情報
１９２  モデル情報
１９３  画像データ
１９４  点群データ
２  複合センサ装置
２１０  撮像装置
２２０  深度センサ
３  入力装置
４  表示装置
５  作業機器
５０１〜５０５  作業用具
６  作業エリア
７  支柱
８  ＲＧＢ画像
９  深度データ
１１  作業員
１２  ネットワーク
１３  レイアウトデータベース
１４  シミュレーション装置
１５  管理サーバ
１６  ユーザ端末
２０  コンピュータ
２００１  プロセッサ
２００２  主記憶装置
２００３  補助記憶装置
２００４  入力装置
２００５  出力装置
２００６  入出力インタフェース
２００７  通信制御装置
２００８  媒体駆動装置
２０１０  バス
２１  可搬型記録媒体
【図１】
2019090774.tif 000003
【図２】
2019090774.tif 000004
【図３】
2019090774.tif 000005
【図４】
2019090774.tif 000006
【図５】
2019090774.tif 000007
【図６】
2019090774.tif 000008
【図７】
2019090774.tif 000009
【図８】
2019090774.tif 000010
【図９】
2019090774.tif 000011
【図１０】
2019090774.tif 000012
【図１１】
2019090774.tif 000013
【図１２】
2019090774.tif 000014
【図１３】
2019090774.tif 000015
【図１４】
2019090774.tif 000016
【図１５】
2019090774.tif 000017
【図１６】
2019090774.tif 000018
【図１７】
2019090774.tif 000019
【図１８】
2019090774.tif 000020
【図１９】
2019090774.tif 000021