[第1の実施形態]
図1は、第1の実施形態に係る距離計測装置の機能的構成を示す図である。
図1に示すように、本実施形態の距離計測装置1は、情報取得部110と、点群作成部120と、点群補正部130と、出力部140と、記憶部190とを備える。
情報取得部110は、複合センサ装置2の撮像装置210で撮像した画像、及び複合センサ装置2の深度センサ220で検出した深度データを取得する。撮像装置210は、撮像範囲内に存在する物体の表面の輝度や色に関する画素情報を含む画像を撮像する。深度センサ220は、検出範囲内に存在する物体の表面までの深度(距離)を検出する。情報取得部110は、例えば、画像及び深度データの取得を指示する情報を含む信号を入力装置3から受信したときに、撮像装置210に画像を撮像させるとともに、深度センサ220に深度データを検出させる。その後、情報取得部110は、撮像装置210から画像を取得するとともに、深度センサ220から深度データを取得する。情報取得部110は、取得した画像及び深度データを点群作成部120に渡す。また、情報取得部110は、取得した画像及び深度データを記憶部190に記憶させる。図1の記憶部190における画像データ193は、撮像装置210から取得した画像と、深度センサ220から取得した深度データとを含む。本実施形態では、撮像装置210で撮像する画像は、画像上の各点(画素)が赤色(R)、緑色(G)、及び青色(B)の三成分の輝度を含む情報を持つ画像(以下RGB画像という)とする。情報取得部110は、物体の画像と、該物体の表面における複数の点のそれぞれまでの深度(距離)の情報とを取得する取得部の一例である。
点群作成部120は、RGB画像と、深度(距離)データと、記憶部190の変換情報191とに基づいて、RGB画像内の複数の点(画素)を要素とするRGBD点群を作成する。変換情報191とは、深度データの各点における深度値と、物体の表面の位置との対応関係を示す情報である。RGBD点群における複数の要素(点)は、それぞれ、RGB画像における輝度を示すRGB情報と、位置情報Dとを含む。位置情報Dは、三次元空間内における位置を示す情報である。点群作成部120は、変換情報191と、深度データとに基づいて、計測空間内における物体表面の三次元位置を算出し、該三次元位置に基づいてRGBD点群(RGB画像)における各点の位置情報Dを算出する。なお、本実施形態の距離計測装置1における点群作成部120は、RGB画像内の複数の点のうちの、深度センサにより深度を検出することのできない領域(死角領域)内の点についての位置情報Dを、不定であることを示す情報(NULL)とする。点群作成部120は、物体の画像と距離の情報とに基づいて、画像における複数の点のそれぞれと対応する三次元位置を算出し、画像における画素の情報と三次元位置を示す位置情報とを含む点情報を対応づけて登録した点群を作成する作成部の一例である。
点群補正部130は、記憶部190の物体のモデル情報192に基づいて、点群作成部120で作成したRGBD点群に含まれる要素(点)の位置情報Dを補正する。モデル情報192は、予め用意された物体の表面における複数の点のそれぞれの三次元位置を示す位置情報を含む。例えば、撮像装置210の撮像範囲内に存在する物体の三次元形状を示すモデルデータにおける表面の各点の三次元位置を示す情報を含む。本実施形態の距離計測装置1における点群補正部130は、RGBD点群に含まれる複数の点のうちの、位置情報Dが不定(NULL)である点の位置情報Dを補正する。点群補正部130は、探索部131と、位置合わせ部132と、位置情報決定部133とを含む。探索部131は、点群作成部120で作成したRGBD点群に位置情報Dが不定(NULL)である点が含まれるか否かを探索する。位置合わせ部132は、RGBD点群における位置情報Dが不定ではない点(すなわち死角領域外の点)と、モデル情報192の点との位置合わせを行う。位置情報決定部133は、RGBD点群の点と位置合わせをしたモデル情報192における各点の三次元位置に基づいて、RGBD点群における死角領域内の点についての位置情報Dを決定して位置情報Dを変更する。例えば、位置情報決定部133は、RGBD点群における死角領域内に含まれる点毎に、位置合わせをしたモデル情報192の点のうちの対応する点を決定し、位置情報Dを、不定であることを示す情報(NULL)から、特定した点の位置情報を示す値に変更する。点群補正部130は、点群の点情報のうちの距離の情報に基づいて算出された位置情報と、予め用意された物体の表面における複数の点のそれぞれの三次元位置を示す位置情報を含むモデル情報とに基づいて、点群の点情報における位置情報を補正する補正部の一例である。
点群補正部130は、位置情報Dを補正した場合には補正後のRGBD点群を出力部140に渡し、位置情報Dを補正しなかった場合には点群作成部120から受け取ったRGBD点群を出力部140に渡す。また、点群補正部130は、例えば、出力部140に渡したRGBD点群と同一の点群情報を記憶部190に格納する。記憶部190の点群データ194は、位置情報Dを補正した場合には補正後のRGBD点群を示すデータであり、位置情報Dを補正しなかった場合には点群作成部120で作成したRGBD点群を示すデータである。
出力部140は、点群補正部130から受け取ったRGBD点群、或いは記憶部190の点群データ194から読み出したRGBD点群を表示装置4に送信する。
本実施形態の距離計測装置1は、例えば、工場等の作業ラインにおける作業用具等のレイアウトを確認する際に利用可能である。
図2は、距離計測装置の適用例を説明する図である。
図2には、作業エリア6に作業機器5を設置する作業で距離計測装置1を利用する場合の適用例を示している。
作業機器5は、作業用具501〜505を含む複数の作業用具を所定のレイアウトデータに従った配置で組み付けた機器である。作業機器5を設置する作業員11は、例えば、表示装置4に表示されたレイアウトデータを確認しながら、複数の作業用具を組み付ける作業を行う。表示装置4に表示するレイアウトデータは、例えば、距離計測装置1を利用して取得する。この場合、距離計測装置1は、例えば、図1に示していない通信部を備え、該通信部によりインターネット等のネットワーク12に接続される。距離計測装置1は、ネットワーク12を介してレイアウトデータベース13に格納されたレイアウトデータを取得し、表示装置4に表示させる。レイアウトデータベース13には、シミュレーション装置14により作成した作業機器5の三次元モデル(作業用具501〜505等のレイアウトデータ)を含む各種の三次元モデルが登録されている。シミュレーション装置14は、例えば、物体の三次元モデルを作成するComputer-Aided Design(CAD)等の三次元モデル作成機能と、作成した物体の三次元モデルの最適なレイアウトを算出するシミュレーション機能とを備えた装置である。レイアウトデータベース13に格納されたレイアウトデータは、距離計測装置1の記憶部190に記憶させたモデル情報192の基となるデータである。距離計測装置1によりレイアウトデータを取得し、表示装置4に表示させる処理は、例えば、作業員11が入力装置3を操作して所定の指示を含む情報を入力することにより行われる。
図3は、モデル情報の内容を説明する図である。
図3の(a)には、レイアウトデータベース13に格納された物体590のレイアウトデータの一例と、モデル情報の抽出方法の一例とを示している。物体590は、三次元形状がL字型の底面を持つ柱状の物体である。物体590の三次元モデルは、例えば、図2のシミュレーション装置14が備えるCAD等の三次元モデル作成機能を利用して作成される。
物体590からモデル情報192を作成する際には、物体590を作成した仮想三次元空間における物体590の表面の複数の点の座標を抽出して作成する。例えば、シミュレーション装置14において、作成した物体590の表面に複数の点Q1,Q2,Q3,・・・,Qh1,Qh2,・・・を設定して各点の三次元座標を抽出し、設定した複数の点Q1,Q2,Q3,・・・を含む点群を作成する。このとき、図3の(a)の物体590における表面590A〜590D,及び590G等の平坦な面には、所定の間隔で複数の点を設定する。物体590の表面に設定した各点の三次元座標は、例えば、図3の(b)のモデル情報192のように、所定の順番で登録してリスト化する。なお、図3の(b)のモデル情報192における番号は、図3の(a)に示した物体590の表面に設定した点Q1,Q2,Q3,・・・,Qh1,Qh2,・・・における添え字と対応している。作成したモデル情報192は、例えば、物体590の三次元モデルのデータやレイアウトデータとともにレイアウトデータベース13に登録しておく。レイアウトデータベース13に登録されたモデル情報192は、例えば、距離計測装置1がレイアウトデータベース13からレイアウトデータを取得する際に、該レイアウトデータと対応したモデル情報192を取得して記憶部190に記憶させる。
上記のモデル情報192の作成には、例えば、既知の三次元作成装置や作成プログラムに用意されている点群への変換機能を利用可能である。この種の変換機能を利用することにより、例えば、物体表面に曲面が含まれる場合でも、物体表面を適切に表現する点群(モデル情報192)を作成することが可能となる。
図2に戻り、作業員11は、レイアウトデータに従った作業機器5の設置作業とともに、作業機器5のRGB画像の撮像等に用いる複合センサ装置2の設置作業を行う。複合センサ装置2は、作業機器5における作業を阻害しない位置に設置することが好ましい。このため、複合センサ装置2は、例えば、作業機器5の上方に存在する支柱7に、作業機器5を俯瞰する向きで設置する。この場合、複合センサ装置2は、作業機器5の上方から撮像装置210によりRGB画像を撮像するとともに、深度センサ220により作業機器5の各点における深度データを検出する。
作業員11は、作業機器5及び複合センサ装置2の設置作業を終えると、入力装置3を操作して、設置した作業機器5の三次元情報を計測する指示を距離計測装置1に入力する。該入力を受け付けた距離計測装置1は、図4のフローチャートに沿った処理を行う。
図4は、第1の実施形態に係る距離計測装置が行う処理を説明するフローチャートである。
本実施形態の距離計測装置1は、まず、複合センサ装置2から計測空間のRGB画像と深度データとを取得する(ステップS1)。ステップS1の処理は、情報取得部110が行う。情報取得部110は、例えば、複合センサ装置2に対してRGB画像の撮像及び深度データの検出を指示する信号を送信し、撮像装置210で撮像したRGB画像と、深度センサ220で検出した深度データとを取得する。
次に、距離計測装置1は、RGB画像と、深度データと、変換情報191とに基づいて、RGBD点群を作成する(ステップS2)。ステップS2の処理は、点群作成部120が行う。点群作成部120は、変換情報191と深度データとに基づいて、計測空間内における物体表面の三次元情報を算出する。その後、点群作成部120は、物体表面の三次元情報に基づいて、RGB画像内の複数の点のそれぞれと対応する位置情報Dを特定し、RGB画像内の複数の点を要素とするRGBD点群を作成する。この際、点群作成部120は、RGBD点群の要素となる複数の点のそれぞれに、RGB画像におけるRGB情報と、位置情報Dとを含む点情報を持たせる。なお、位置情報Dが不定である点が存在する場合、点群作成部120は、該点の点情報における位置情報Dを、位置が不定であることを示す情報(NULL)とする。
次に、距離計測装置1は、モデル情報192に基づいてRGBD点群を補正する(ステップS3)。ステップS3の処理は、点群補正部130が行う。本実施形態の距離計測装置1における点群補正部130は、RGBD点群に位置情報Dが不定(NULL)である点が含まれる場合に、該点の位置情報Dを補正する。位置情報Dを補正する場合、点群補正部130は、例えば、まず、三次元空間内でRGBD点群に含まれる複数の点と、モデル情報192に含まれる複数の点との位置合わせを行う。その後、点群補正部130は、RGBD点群における位置情報Dが不定(NULL)である点の位置情報を、モデル情報192の対応する点の三次元位置を示す情報に置き換えて補正する。
次に、距離計測装置1は、RGBD点群を出力する(ステップS4)。ステップS4の処理は、出力部140が行う。出力部140は、例えば、ステップS1で取得したRGB画像と、作成したRGBD点群(補正をした場合には補正後のRGBD点群)とを含む表示データを表示装置4に出力する。出力部140は、例えば、作成したRGBD点群(補正をした場合には補正後のRGBD点群)に基づいて物体の表面を再現し、表面を再現した物体の画像と、レイアウトデータとを比較可能な表示データを作成して表示装置4に出力してもよい。
ステップS4の処理を終えると、距離計測装置1は、ステップS1で取得したRGB画像と深度データとに基づく計測処理を終了する。この後、作業者11が入力装置3を操作して計測処理の開始を指示する情報を距離計測装置1に入力すると、距離計測装置1は、再度ステップS1〜S4の処理を行う。
このように、本実施形態の距離計測装置1は、作業ライン等の計測空間のRGB画像とともに深度データを取得し、RGB画像に写っている作業用具501〜505等の物体の表面における複数の点の位置情報D(三次元情報)を持つRGBD点群を作成する。また、距離計測装置1は、作成したRGBD点群に位置情報Dが不定である点が含まれる場合に、RGB画像に写っている物体の三次元モデルから作成したモデル情報192を利用して位置情報Dが不定である点の位置情報を決定し、RGBD点群を補正する。
本実施形態の距離測定装置1は、RGBD点群を作成する処理として、例えば、図5のフローチャートに沿った処理を行う。
図5は、第1の実施形態におけるRGBD点群を作成する処理の内容を説明するフローチャートである。
RGBD点群を作成する処理は、距離計測装置1の点群作成部120が行う。点群作成部120は、まず、図5のように、深度データと変換情報191とに基づいて、計測空間内における物体表面の三次元位置を示す位置情報Dを算出する(ステップS211)。点群作成部120は、例えば、深度データの検出範囲と、変換情報191とに基づいて、検出した深度値と対応する測定空間内の三次元位置を算出する。変換情報191は、U×V個の深度値(距離値)を含む深度データ内の各点における深度値と、三次元空間における物体表面の位置(座標)との対応関係を示す情報である。例えば、xyz空間におけるx方向(水平方向)の計測範囲内を640分割し、y方向(垂直方向)の計測範囲を320分割した場合、深度データは、640×320個の深度値を含む。このとき、x方向の計測範囲が2θx度(正面方向を0度としたときの−θx度から+θx度まで)である場合、深度データにおける点pの深度値dと対応する物体表面のx方向の位置Xpは、下記式(1)から算出される。
Xp={x×d×tan(θpx)}/320 (1)
式(1)におけるθpxは、深度データにおけるx方向の深度値のうちの一端の方向を−θx度とし他端の方向を+θx度としたときの、水平面内での点pの方向を示す角度である。
同様に、深度データが640×320個の深度値を含み、y方向の計測範囲が2θy度(正面方向を0度としたときの−θy度から+θy度まで)である場合、深度データにおける点pの深度値dと対応する物体表面のy方向の位置Ypは、下記式(2)から算出される。
Yp={y×d×tan(θpy)}/160 (2)
式(2)におけるθpyは、深度データにおけるy方向の深度値のうちの一端の方向を−θy度とし他端の方向を+θy度としたときの、垂直面内での点pの方向を示す角度である。
次に、点群作成部120は、RGB画像内の画素を1個選択し、該選択した画素と対応する位置情報Dを探索する(ステップS212)。点群作成部120は、所定の選択規則に従って、RGB画像における全ての画素のうちのRGBD点群に含める複数の点と対応する複数の画素のなかから、1個の画素を選択する。画素を選択した後、点群作成部120は、位置情報Dを表現する三次元空間における撮像装置210と深度センサ220との位置関係と、RGB画像の撮像範囲とに基づいて、該三次元空間における撮像装置210の視点から見た選択中の画素の方向を算出する。その後、点群作成部120は、算出した方向に、ステップS211で算出した位置情報Dが存在するか否か(すなわち選択した画素に写っている物体表面の点についての位置情報Dが存在するか否か)を調べる。
ステップS212の探索を終えると、点群作成部120は、選択した画素と対応する位置情報Dが存在するか否かを判定する(ステップS213)。位置情報Dが存在する場合(ステップS213;YES)、点群作成部120は、選択した画素のRGB情報と、対応する位置情報Dとを含む点情報を、RGBD点群に登録する(ステップS214)。これに対し、位置情報Dが存在しない場合(ステップS213;NO)、点群作成部120は、選択した画素のRGB情報と、位置情報Dが不定であることを示す情報(NULL)とを含む点情報を、RGBD点群に登録する(ステップS215)。
選択した画素についての点情報をRGBD点群に登録した後(すなわちステップS214又はS215を行った後)、点群作成部120は、未選択の画素があるか否かを判定する(ステップS216)。ステップS216において、点群作成部120は、所定の選択規則により選択される複数の画素のなかに、点情報をRGBD点群に登録していない画素があるか否かを判定する。未選択の画素がある場合(ステップS216;YES)、点群作成部120は、ステップS212以降の処理を繰り返す。全ての画素が選択済みである場合(ステップS216;NO)、点群作成部120は、RGBD点群を作成する処理を終了する。
RGBD点群を作成する処理(ステップS2)を終えると、距離測定装置1は、RGBD点群を補正する処理(ステップS3)を行う。RGBD点群を補正する処理として、距離測定装置1は、例えば、図6のフローチャートに沿った処理を行う。
図6は、第1の実施形態におけるRGBD点群を補正する処理を説明するフローチャートである。
RGBD点群を補正する処理は、距離測定装置1の点群補正部130が行う。点群補正部130は、まず、RGBD点群内の各点の位置情報Dに基づいて、RGB画像において位置情報Dが不定となる領域(死角領域)を探索する(ステップS311)。ステップS311の処理は、点群補正部130の探索部131が行う。探索部131は、例えば、RGBD点群から位置情報Dが不定(NULL)である点を抽出し、RGB画像内での位置情報Dが不定である点(画素)の分布を調べる。その後、探索部131は、位置情報Dが不定である画素が連続した領域のうちの、所定の条件を満たしている領域を、死角領域として検出する。ここで、所定の条件は、例えば、位置情報Dが不定である画素が連続した領域の形状、領域内の画素の個数、RGB画像内における位置等についての、死角領域とみなす条件とする。
次に、点群補正部130は、ステップS311の処理の結果に基づいて、RGB画像内に死角領域が存在するか否かを判定する(ステップS312)。ステップS312の判定は、例えば、探索部131が行う。死角領域が存在しない場合、本実施形態の距離計測装置1における探索部131は、RGBD点群の補正は不要であると判断する。このため、死角領域が存在しない場合(ステップS312;NO)、点群補正部130は、RGBD点群を補正する処理を終了する。この場合、点群補正部130は、点群作成部120で作成したRGBD点群を出力部140に渡すとともに、記憶部190に点群データ194として記憶させる。
一方、死角領域が存在する場合(ステップS312;YES)、点群補正部130は、次に、死角領域に含まれる点についての位置情報Dを補正する処理(ステップS313〜S315)を行う。位置情報Dを補正するステップS313〜S315の処理は、点群補正部130の位置合わせ部132と、位置情報算出部133とが行う。
画像内に死角領域が存在した場合(ステップS312;YES)、点群補正部130は、位置情報Dを補正するために、まず、RGBD点群の点とモデル情報192の点との位置合わせを行う(ステップS313)。ステップS313の処理は、位置合わせ部132が行う。位置合わせ部132は、例えば、モデル情報192に含まれる、物体の三次元モデルに基づいて作成した物体表面を示す複数の点(点群)と、RGBD点群における死角領域外の点との位置合わせを行う。位置合わせ部132は、既知のマッチング方法に従って、モデル点群の点とRGBD点群の点との位置合わせを行う。例えば、位置合わせ部132は、RGBD点群を表現する三次元空間内でモデル情報192の点群を回転及び並進させながらモデル情報192の点とRGBD点群の点との一致度を算出し、算出した一致度が最大となるモデル192の点群の方位及び位置を特定する。
RGBD点群の点とモデル情報192の点との位置合わせを終えると、点群補正部130は、次に、モデル情報192に基づいて死角領域内の各点の位置情報Dを決定し、RGBD点群を補正する(ステップS314)。ステップS314の処理は、位置情報決定部133が行う。位置情報決定部133は、RGB画像における死角領域内の点(画素)の位置と、RGB画像の撮像範囲と、RGBD点群の点と位置合わせを行ったモデル点群の点の三次元位置とに基づいて、死角領域内の各点と対応する位置情報Dを決定する。言い換えると、位置情報決定部133は、ステップS314の処理として、例えば、点群作成部120が行うステップS212の処理と同様の処理を行う。ただし、ステップS314の処理では、三次元空間内における撮像装置210の視点から見たRGB画像において死角領域内の画素の方向に、モデル情報192により補完された物体表面の点の三次元位置を示す位置情報が存在する。このため、位置情報決定部133は、モデル情報192により補完された物体表面の点の三次元位置に基づいて、死角領域内の各点と対応する位置情報Dを決定する。位置情報Dを決定した後、位置情報決定部133は、死角領域内の点の位置情報Dを、不定であることを示す情報(NULL)から、決定した位置情報に置き換えてRGBD点群を補正する。
RGBD点群の補正を終えると、点群補正部130は、次に、位置情報Dを算出していない死角領域があるか否かを判定する(ステップS315)。ステップS315の判定は、例えば、位置情報決定部133が行う。位置情報決定部133は、探索部131で検出した全ての死角領域に対し、モデル情報192に基づいて位置情報Dを置き換える処理をしたか否かを判定する。位置情報Dを置き換えていない死角領域が残っている場合(ステップS315;YES)、点群補正部130は、ステップS313以降の処理を繰り返す。全ての死角領域の位置情報Dを置き換えた場合(ステップS315;NO)、点群補正部130は、RGBD点群を補正する処理を終了する。このとき、点群補正部130は、補正後のRGBD点群を出力部140に渡すとともに、記憶部190に点群データ194として記憶させる。
このように、本実施形態の距離計測装置1では、深度データに基づいて計測範囲内の物体表面の三次元位置を算出した後、該三次元位置に基づいてRGB画像内の各点(画素)に写っている物体の三次元位置を示すRGBD点群を作成する。そして、RGBD点群において三次元位置が不定である点を含む死角領域がRGB画像内に存在する場合、距離計測装置1は、RGB画像に写っている物体についてのモデル情報に基づいて、該死角領域内の点と対応する三次元位置を決定する。この際、本実施形態の距離計測装置1は、計測範囲内の物体表面のうちの深度データにより三次元位置を算出することのできない部分の三次元位置を、RGB画像に写っている物体についての三次元モデルから作成したモデル情報192に基づいて補完する。これにより、本実施形態の距離計測装置1は、撮像装置210で撮像したRGB画像に深度センサ220で深度値を検出していない死角領域が存在する場合にも、該死角領域の位置情報Dを特定することが可能となる。
図7は、RGB画像の画素と計測空間内の物体表面との関係を説明する図である。
図7には、撮像装置210で撮像範囲(計測空間)AS内を撮像したときのRGB画像8内の点(画素)と、撮像範囲AS内の物体の表面との関係を模式的に示している。
RGB画像8における複数の画素は、それぞれ、撮像装置210の視点Sから見た画素の方向から到来する光の色についての情報を含む。このため、視点Sから見て物体が存在する方向の画素は、物体表面のうちの画素の方向と対応する部分の色を示すRGB情報を持つ。従って、RGB画像8の各画素のRGB情報に基づいて、撮像装置210の視点から見た物体の方向を特定することが可能である。
例えば、RGB画像8における領域801は、撮像範囲AS内の物体551の表面551Aが写っている領域である。このとき、RGB画像8における領域801内の点PX1,Y1と対応する画素は、視点Sから見て点PX1,Y1と対応する方向に存在する物体551の表面551Aにおける点Qh1の部分の色を示すRGB情報を持つ。従って、領域801内に含まれる各点の方向を算出することで、領域801と対応する物体551の方向を特定することが可能である。
また、例えば、RGB画像8における領域802は、撮像範囲AS内の物体552の2つの表面552A,552Bが写っている領域である。このとき、RGB画像8における領域802内の点PX2,Y2と対応する画素は、視点Sから見て点PX2,Y2と対応する方向に存在する物体552の表面552Aにおける点Qh2の部分の色を示すRGB情報を持つ。従って、領域802内に含まれる各点の方向を算出することで、領域802と対応する物体552の方向を特定することが可能である。
撮像装置210の視点Sから見たRGB画像上の各点の方向は、撮像装置210の撮像範囲ASの角度範囲と、RGB画像8の画素数とにより算出可能である。ただし、RGB画像8が持つ情報のみに基づいて、該RGB画像8に写っている物体の表面までの距離(すなわち物体表面の点の位置)を算出することは非常に困難である。このため、本実施形態では、上記のように、深度データと変換情報191とに基づいて、撮像範囲AS内の物体表面551A,552A,552Bにおける各点の三次元位置を算出する。
図8は、深度データと物体表面の位置との関係を説明する図である。なお、図8には、図7におけるzx面内(水平面内)での深度データと物体表面の位置との関係を示している。
図8では、深度データ9を検出する深度センサ220の視点Tを三次元座標の原点(0,0,0)とし、z軸方向を検出範囲の中心方向としている。また、図8では、水平面内における深度値の検出範囲ATは、z軸方向を中心(0度)とした±θ度の範囲としている。
図8のように深度データ9を三次元空間におけるz=Z0の位置に配置する場合、x方向の幅(すなわち一端P0,Vから他端PU-1,Vまでの距離)は、z=Z0の位置における深度センサ220の検出範囲ATと一致させる。このとき、深度データ9における各点の深度値は、それぞれ、深度センサ220の視点Tから見た点の方向に存在する物体表面までの距離の情報を示す。例えば、深度データ9における点901の深度値は、深度センサ220の視点Tから見て点901の方向に存在する物体表面までの距離を示す情報である。このため、視点Tから見て点901の方向に物体561の表面561Aの点Rk1が存在すると、点901の深度値は、点Rk1のz方向の位置(z=Z2)となる。従って、z=Z0における点901のx方向の位置がわかれば、該x方向の位置と、値Z0と、値Z2とに基づいて、物体561の表面561Aの点Rk1のx方向の位置を算出することが可能である。同様に、z=Z0における点901のy方向の位置がわかれば、該y方向の位置と、Z0と、Z2とに基づいて、物体561の表面561Aの点Rk1のy方向の位置を算出することが可能である。すなわち、z=Z0における点901のx方向の位置及びy方向の位置がわかれば、点901と対応する物体561の表面561Aの点Rk1の三次元位置を算出することが可能である。
また、深度データ9における点901とは別の点についても同様に、z=Z0におけるx方向の位置及びy方向の位置と、Z0の値と、深度値とに基づいて、該別の点と対応する物体表面の三次元位置を算出可能である。このため、深度センサ220の視点Tと物体561との間に他の物体が存在しない場合、図8に太線で示したように、物体561における−z方向を向いた表面561Aにおける各点の三次元位置が得られる。また、検出範囲AT内に他の物体が存在する場合、該他の物体の表面における各点の三次元位置も得られる。
物体表面の点の三次元位置を示す位置情報を得た後、本実施形態の距離計測装置1は、撮像装置210の視点からRGB画像8の複数の点のそれぞれと対応する位置情報Dを探索する。このとき、距離計測装置1は、例えば、図8のzx面を含む三次元空間における撮像装置210の視点Sから見たRGB画像内の点と対応する方向に物体表面の点が存在するか否かを探索する。例えば、撮像装置210の視点SからRGB画像におけるある1つの点と対応する方向を見たときに、該方向に図8の点Rk1が存在し、かつ、視点Sと点Rk1との間に物体表面を示す他の点が存在しないとする。この場合、距離計測装置1は、RGB画像におけるある1つの点と対応する画素には、物体561の表面561Aにおける点Rk1の部分が写っていると認識する。このため、距離計測装置1は、RGB画像におけるある1つの点と対応する画素のRGB情報と、物体表面の点Rk1の三次元位置を示す位置情報Dとを含む点情報をRGBD点群に登録する。
しかしながら、図8に示したように、三次元空間における深度センサ220の視点Tと、撮像装置210の視点Sとは位置が異なる。また、撮像装置210の撮像範囲と、深度センサ220の検出範囲とは一致していなくてもよい。このため、RGB画像における複数の点のそれぞれについての位置情報Dを探索した結果、RGB画像における物体が写っている領域内に、物体表面の位置情報Dが不定である領域(死角領域)が発生することがある。
図9は、死角領域が発生する第1の要因を説明する図である。なお、図9には、図7におけるzx面内(水平面内)での撮像範囲ASと検出範囲ATと物体表面の位置との関係を示している。
図9には、RGB画像8に写っている物体562の一部分が深度センサ220の検出範囲AT内に存在し、他の部分が検出範囲AT外に存在する例を示している。この場合、物体562の表面(外周)のうちの、深度センサ220において深度値が検出される部分は、太線で示した部分のみである。すなわち、深度データにおける物体562の表面についての深度値は、撮像装置210の視点S側を向いた表面562Aのうちの深度センサ220の検出範囲AT内に含まれる部分の深度値、及び−x方向を向いた表面(左側面)562Bの深度値のみを含む。このため、RGB画像8のうちの、物体562の表面562Aにおける検出範囲AT内に含まれる部分と対応する部分範囲ASP1内の点は、対応する位置情報Dが存在する。例えば、RGB画像8の点P1と対応する画素は、物体562の表面562Aにおける点R1の部分のRGB情報を持つ。そして、物体562の表面562Aにおける点R1は、深度センサ220の検出範囲AT内に存在し、深度値が検出されている点である。このため、RGBD点群を作成する処理において、点群作成部120は、RGB画像8のうちの点P1と対応する画素のRGB情報と、物体562の表面562Aにおける点Rkの三次元位置を示す位置情報Dとを含む点情報をRGBD点群に登録する。
一方、RGB画像8のうちの、物体562の表面562Aにおける検出範囲AT外に含まれる部分と対応する部分範囲ASP2内の点は、対応する位置情報Dが存在しない。例えば、RGB画像8の点P2と対応する画素は、物体562の表面562Aにおける点R2の部分のRGB情報を持つ。しかしながら、物体562の表面562Aにおける点R2は、深度センサ220の検出範囲AT外に存在し、深度値が検出されていない点である。このため、RGBD点群を作成する処理において、点群作成部120は、RGB画像8のうちの点P2と対応する画素のRGB情報と、位置情報Dが不定であることを示す情報(NULL)とを含む点情報をRGBD点群に登録する。また、点群作成部120は、RGB画像8のうちの部分範囲ASP2内の複数の点について、位置情報Dが不定であることを示す情報を含む点情報をRGBD点群に登録する。このため、RGB画像8における物体562が写っている領域のうちの、深度センサ220の検出範囲AT外となる部分領域に含まれる点についての位置情報Dは不定となる。このように、RGB画像8に写っている物体のなかに、深度センサ220の検出範囲AT外となる部分が含まれている場合、該検出範囲AT外となる部分と対応する領域は、位置情報Dが不定である死角領域となる。
図10は、死角領域が発生する第2の要因を説明する図である。なお、図10には、図7におけるzx面内(水平面内)での撮像範囲ASと検出範囲ATと物体表面の位置との関係を示している。
図10には、RGB画像8に写っている物体563における+x方向を向いた面563Bが深度センサ220の検出範囲AT内であり、かつx方向の位置が深度センサ220の視点Tと撮像装置210の視点Sとの間となる位置に存在する例を示している。また、物体563は、全体が検出範囲AT内に存在する。この場合、物体563の表面(外周)のうちの、深度センサ220において深度値が検出される部分は、太線で示した部分のみである。すなわち、深度データにおける物体563の表面についての深度値は、撮像装置210の視点S側(−z方向)を向いた表面563Aの深度値のみを含む。
しかしながら、図10のRGB画像8には、物体563の表面のうちの、−z方向を向いた表面563Aの一部分と、+x方向を向いた表面563Bとが写る。
RGB画像8のうちの、物体563の表面563Aが写っている部分範囲ASP1内の点は、位置情報Dが存在する。例えば、RGB画像8の点P1と対応する画素は、物体563の表面563Aにおける点R1の部分のRGB情報を持つ。そして、物体563の表面563Aにおける点R1は、深度センサ220の検出範囲AT内に存在し、深度値が検出されている点である。このため、RGBD点群を作成する処理において、点群作成部120は、RGB画像8のうちの点P1と対応する画素のRGB情報と、物体563の表面563Aにおける点R1の三次元位置を示す位置情報Dとを含む点情報をRGBD点群に登録する。
一方、RGB画像8のうちの、物体563の表面563Bと対応する部分範囲ASP2内の点は、位置情報Dが存在しない。例えば、RGB画像8の点P2と対応する画素は、物体563の表面563Bにおける点R2の部分のRGB情報を持つ。しかしながら、物体563の表面563Bにおける点R2は、深度センサ220の検出範囲AT内であっても深度センサ220の視点Tからは見えない点である。すなわち、物体563の表面563Bにおける点R2は、深度値が検出されていない点である。このため、RGBD点群を作成する処理において、点群作成部120は、RGB画像8のうちの点P2と対応する画素のRGB情報と、位置情報Dが不定であることを示す情報(NULL)とを含む点情報をRGBD点群に登録する。また、点群作成部120は、RGB画像8のうちの部分範囲ASP2内の複数の点について、位置情報Dが不定であることを示す情報を含む点情報をRGBD点群に登録する。このため、RGB画像8における物体563が写っている領域のうちの、深度センサ220の視点Tからは見えない表面563Bの部分領域内の点についての位置情報Dは不定となる。このように、RGB画像8に写っている物体のなかに、深度センサ220の視点Tからは見えない部分領域がある場合、該部分領域は、位置情報Dが不定である死角領域となる。
このように、RGB画像8の物体に位置情報Dが不定である死角領域が発生した場合、該物体の表面を示すRGBD点群に欠陥が生じる。RGBD点群に欠陥が生じた場合、物体の三次元情報を正しく提示することができないため、例えば、RGB画像8における物体の配置がレイアウトデータ通りであるか否かを確認することが困難となる。このため、本実施形態の距離計測装置1では、レイアウトデータにおける物体の三次元モデルに基づいて作成したモデル情報に基づいて、RGBD点群における位置情報Dが不定である点の位置情報Dを修正する。
図11は、RGBD点群の点とモデル情報の点との位置合わせの方法を説明する図である。なお、図11には、RGBD点群を表現する三次元空間におけるzx平面でのRGBD点群の点とモデル情報の点とを示している。
図11において、中央に黒点がある丸印は、深度データと変換情報191とに基づいて位置情報Dを算出した物体565の表面の点R1,R2,R3,・・・,Rkを示している。また、図11において、物体555の輪郭に沿って配置された黒い丸印は、モデル情報192における物体555の表面の点Q1,Q2,Q3,・・・,Qh1,Q101〜Q104,・・・,Qh6,・・・を示している。ここで物体555は、シミュレーション装置14等により作成した、計測空間に配置される物体565の三次元モデルである。
例えば、物体565が配置された計測空間を撮像したRGB画像8に物体565の+x方向を向いた表面565Bが写っている場合、RGB画像8における物体565の表面565Bが写っている領域は、位置情報Dが不定である死角領域となる。このため、距離計測装置1は、モデル情報192を利用して物体565の表面565Bの点についての三次元位置の情報を補完し、RGBD点群における位置情報Dを補正する。
このとき、距離計測装置1では、位置合わせ部132が、RGBD点群における位置情報Dを持つ点と、モデル情報192の点との位置合わせを行う。位置合わせ部132は、RGBD点群を表現する三次元空間にモデル情報192の複数の点(点群)を表現し、三次元空間内でモデル情報の点群の回転操作及び並進操作を行って、点群同士の三次元位置の一致度が最大となるモデル情報の点群の位置及び向きを算出する。
例えば、位置合わせ部132は、物体555の点群を並進移動させて、物体555の表面555Aの点Q1,Q2,Q3,・・・,Qh1と、RGBD点群の点R1,R2,R3,・・・,Rkとの一致度を算出する。また、位置合わせ部132は、物体555の点群を時計回りに90度回転させた後、並進移動させて、物体555の表面555Bの点Qh1,Q101,Q102,・・・,Qh6と、RGBD点群の点R1,R2,R3,・・・,Rkとの一致度を算出する。更に、位置合わせ部132は、物体555の点群に対する回転操作及び並進操作を複数通り行い、それぞれの場合の一致度を算出する。その後、位置合わせ部132は、複数通りの操作のうちの、算出した一致度が最も高い操作を行って、RGBD点群の点とモデル情報192の点との位置合わせを終了する。図11に示した例では、物体555を時計回りに90度させた後、点Qh1が点R1と重なるよう並進移動させたときの一致度が最も大きくなる。このため、位置合わせ部132は、物体555の表面555Bの点Qh1,Q101,Q102,・・・,Qh6の位置が、RGBD点群の点R1,R2,R3,・・・,Rkの位置と重なるよう物体555の表面の点群を移動させる。このとき、物体565の+x方向を向いた表面565Bと対応する位置には、物体555における表面555Cの点Qh6,Q201〜Q204が存在する。よって、RGBD点群を作成する際に位置情報Dが不定であった物体565の+x方向を向いた表面565Bの点の三次元位置(位置情報D)が、モデル情報192の点Qh6,Q201〜Q204により補完される。これにより、RGB画像8おける死角領域(物体565の表面565Bが写っている領域)内の点についての位置情報Dを決定することが可能となる。
図12は、モデル情報の点の位置情報を利用した位置情報Dの補正方法の例を示す図である。なお、図12には、図7におけるzx面内(水平面内)での撮像範囲ASと検出範囲ATと物体表面の位置との関係を示している。
図12には、上記の第1の要因により発生した死角領域内の点についての位置情報Dの補正方法を説明する図を示している。図12において、物体562の輪郭(外周)に配置した中央に黒点のある丸印は、深度データと変換情報191とに基づいて位置情報Dを算出した物体562の表面の点を示している。また、図12において、物体562の輪郭に配置した黒い丸印は、モデル情報192における物体表面の点を示している。
本実施形態の距離計測装置1では、まず、深度データと変換情報191とに基づいて算出した物体562の表面の点の位置情報Dのなかから、RGB画像8の各点と対応する位置情報Dを探索する。この場合、物体562の一部分が深度センサ220の検出範囲AT内に存在し、他の部分が検出範囲AT外に存在すると、RGB画像8には死角領域が発生する。図12の例では、RGB画像8のうちの、視点Sから見て物体562のうちの深度センサ220の検出範囲AT内に含まれる部分と対応する部分範囲ASP1内の点は、深度データと変換情報191とに基づいて算出した位置情報Dと対応付けられる。このため、例えば、RGB画像8における部分範囲ASP1内の点P1と対応する画素のRGB情報は、物体562の表面562Aにおける点R1の位置情報DとともにRGBD点群に登録される(ステップS214)。一方、例えば、RGB画像8における部分範囲ASP2内の点P2と対応する画素のRGB情報は、位置情報Dが不定であることを示す情報(NULL)とともにRGB点群に登録される(ステップS215)。
その後、本実施形態の距離計測装置1は、RGB画像8における部分範囲ASP2と対応する領域が死角領域であると判定し、該死角領域内の点についての位置情報Dを補正する処理(ステップS313及びS314)を行う。このとき、距離計測装置1は、モデル情報192を読み出し、モデル情報192における物体表面の複数の点と、RGBD点群の点との位置合わせを行う(ステップS313)。これにより、図12に黒い丸印で示したように、物体562の表面のうちの、深度データと変換情報191とにより位置情報Dを算出することができなかった部分についての位置情報が補完される。
モデル情報192により位置情報Dを補完した後、距離計測装置1は、RGBD点群における位置情報Dが不定である点についての位置情報Dを決定する(ステップS314)。例えば、RGBD点群を作成した段階でのRGB画像8の部分範囲ASP2内の点P2についての点情報では、位置情報Dが不定であることを示す情報(NULL)となっている。このため、距離計測装置1は、RGBD点群を補正する処理において、RGBD点群のうちのRGB画像8の部分範囲ASP2内の各点についての点情報における位置情報を、不定であることを示す情報から、補完した点の位置情報に置き換える。例えば、距離計測装置1は、RGB画像8の点P2についての点情報における位置情報を、不定であることを示す情報から、物体562の表面562Aにおける点Q2の三次元位置を示す位置情報Dに置き換える。これにより、RGB画像8における物体562の表面562Aが写っている領域から位置情報Dが不定である死角領域をなくすことが可能となり、物体562の三次元情報を正しく提示することが可能となる。よって、例えば、RGB画像8やRGBD点群を見た作業者11は、RGB画像8における物体の配置がレイアウトデータ通りであるか否かを容易に判定することが可能となる。
図13は、RGBD点群を補正する前後のRGB画像における位置情報を持つ点を説明する図である。図14は、補正前のRGBD点群の例を示す図である。図15は、補正後のRGBD点群の例を示す図である。
図13における2つのRGB画像8のうちの上方のRGB画像8Aは、RGBD点群を補正する前のRGB画像8において位置情報Dを持つ点を示している。ここで、位置情報Dを持つ点は、位置情報Dが不定ではない点である。また、図13における下方の画像8Bは、RGBD点群を補正した後のRGB画像8において位置情報Dを持つ点を示している。なお、RGB画像8A,8Bにおける中央に黒点のある丸印は、深度データと変換情報191とに基づいて算出した位置情報Dを示している。また、RGB画像8Bにおける黒色の丸印は、モデル情報192の点に基づいて決定した位置情報Dを示している。更に、RGB画像8A,8Bでは、位置情報Dを持つ点の一部を省略している。
撮像装置210で計測空間内の物体を撮像した場合には、図13のRGB画像8Aのように、撮像装置210の撮像範囲内に存在する物体と対応する領域810内に右方を向いた表面と対応する部分領域810Cが含まれることがある。このとき、撮像装置210の左方に深度センサ220が配置されていると、深度センサ220は、RGB画像8Aにおける部分領域810Cと対応する物体表面についての深度値を検出しない(例えば図10を参照)。この場合、RGBD点群を作成した時点では、RGB画像8Aのように、物体と対応する領域810内のうちの、部分領域810A,810B内の点のみが位置情報Dを持ち、部分領域810C内の点は位置情報Dが不定となる。なお、RGB画像8Aにおける部分領域810A,810B内は、RGBD点群に含まれる点を示す丸印の一部を省略している。
ここで、RGBD点群は、特定のデータ形式に限定されるものではなく、適宜設定すればよい。例えば、点群作成部120が作成するRGBD点群は、図14の補正前のRGBD点群199のように、RGB画像上の位置、RGB情報、及び位置情報Dを含む点情報をテーブル化したデータであってもよい。補正前のRGBD点群199における位置情報Dの「(NULL)」は、位置情報Dが不定であることを示している。
ステップS2で作成したRGBD点群を補正せずに出力した場合、RGB画像8Aにおける1個の物体を示す領域810のうちの部分領域810C内の点については位置情報Dが不定となっている。このため、出力されたRGB画像8A及びRGBD点群を見た作業者11は、領域810に写っている物体がレイアウトデータ通りに配置されているか否かを正しく判断することが難しい。
これに対し、本実施形態の距離計測装置1では、RGBD点群において位置情報Dが不定である点についての位置情報をモデル情報192を利用して決定し、RGBD点群を補正する。このように、RGBD点群を補正することにより、RGB画像8Aにおいて位置情報が不定であった部分領域810C内の点の位置情報Dが決定する。すなわち、RGBD点群を補正することにより、図13の下方のRGB画像8Bのように、深度データから位置情報Dを決定することができなかった部分領域810C内の点についての位置情報Dが決定する。これにより、補正前のRGBD点群199において位置情報Dが「(NULL)」であった点の位置情報Dは、モデル情報192により補完された点の位置情報に置換される。例えば、図14のRGBD点群199におけるn1番,n2番,及びn3番の点の点情報における位置情報Dは、それぞれ、図15の補正後のRGBD点群194のように、モデル情報192により補完された点の三次元座標を示す位置情報Dに置換される。よって、出力されたRGB画像8B及びRGBD点群を見た作業者11は、領域810に写っている物体がレイアウトデータ通りに配置されているか否かを正しく判断することが可能となる。
なお、本実施形態の距離計測装置1は、図2を参照して説明した作業機器5の組み付け作業における作業用具等の配置の確認に限らず、種々の用途に適用可能である。例えば、距離計測装置1は、作業機器5の動作に基づいて作業用具等の配置を見直し最適化することにも適用可能である。また、距離計測装置1の設置場所は、作業機器5が設置された作業エリア6に限らず、適宜変更可能である。
図16は、距離計測装置の別の適用例を説明する図である。
本実施形態の距離計測装置1を利用して作業エリア6に設置した作業機器5の三次元情報を取得する際には、図16に示すように、距離計測装置1を作業エリア6とは異なる場所に設置してもよい。この場合、距離計測装置1における情報取得部110は、ネットワーク12に接続可能なものとし、ネットワーク12を介して複合センサ装置2からRGB画像と深度データとを取得する。また、距離計測装置1における出力部140は、ネットワーク12に接続可能なものとし、ネットワーク12を介して管理サーバ15等にRGBD点群及びRGB画像を出力する。管理サーバ15は、例えば、距離計測装置1から取得したRGBD点群及びRGB画像と、シミュレーション装置14により作成したレイアウトデータ13とに基づいて、作業エリア6の作業機器5が適切な動作をしているか否かを管理する。また、管理サーバ15は、例えば、作業機器5における作業用具501〜505等の配置に改善の余地があるか否かの管理を行う。また、管理サーバ15は、例えば、作業機器5の動作や配置に改善可能な点がある場合に、作業者11が利用するユーザ端末16に対して情報を出力する。
なお、本実施形態では、距離計測装置1とシミュレーション装置14とを別個の装置としたが、これに限らず、距離計測装置1は、シミュレーション装置14としての機能を含むものであってもよい。
また、本実施形態では、シミュレーション装置14等で作成した物体の三次元モデルにおける物体表面の点の三次元位置を示す点群を予め作成し、距離計測装置1の記憶部190にモデル情報192として記憶させておく例を説明した。しかしながら、モデル情報192は、これに限らず、例えば、RGBD点群を作成する処理において作成してもよいことはもちろんである。すなわち、距離計測装置1は、計測空間に配置する物体の三次元モデルデータを記憶部190に記憶させておき、RGBD点群を作成する際に、該三次元モデルにおける物体表面の点の三次元位置を示す点群(モデル情報192)を作成してもよい。
[第2の実施形態]
本実施形態では、図4のフローチャートにおけるRGBD点群を作成する処理(ステップS2)の別の処理内容について説明する。なお、本実施形態に係る距離計測装置1の機能的構成は、第1の実施形態で説明した機能的構成と同じでよい。
図17は、第2の実施形態におけるRGBD点群を生成する処理の内容を説明するフローチャートである。
本実施形態においても、RGBD点群を作成する処理は、距離計測装置1の点群作成部120が行う。本実施形態の距離計測装置1における点群作成部120は、まず、図17のように、RGB画像内の各画素のRGB情報に基づいて、RGB画像内の死角領域を探索する(ステップS221)。ステップS221において、点群作成部120は、画像処理の分野における既知の探索方法に従って、死角領域を探索する。例えば、点群作成部120は、撮像装置210と深度センサ220との位置関係、撮像装置210の撮像範囲と深度センサ220の検出範囲との関係、RGB画像内における物体の形状等に基づいて、死角領域を探索する。また、ステップS221において、点群作成部120は、死角領域に含まれる画素と、死角領域外の画素とを識別する情報を生成する。
次に、点群作成部120は、RGB画素内の画素を1個選択し(ステップS222)、選択した画素が死角領域内の画素であるか否かを判定する(ステップS223)。ステップS222において、点群作成部120は、所定の選択規則に従って、RGB画像における全ての画素のうちの1個の画素を選択する。画素を選択した後、点群作成部120は、ステップS221の結果に基づいて、選択した画素が死角領域内の画素であるか否かを判定する。
選択した画素が死角領域内の画素である場合(ステップS223;YES)、点群作成部120は、画素のRGB情報と、位置情報Dが不定であることを示す情報とを含む点情報をRGBD点群に登録する(ステップS224)。一方、選択した画素が死角領域外の画素である場合(ステップS223;NO)、点群作成部120は、位置情報Dを算出し、画素のRGB情報と算出した位置情報Dとを含む点情報をRGBD点群に登録する(ステップS225)。ステップS225において、点群作成部120は、深度データと変換情報とに基づいて、選択した画素と対応する物体表面の位置情報Dを算出する。点群作成部120は、第1の実施形態で説明した方法により、位置情報Dを算出する。位置情報Dを算出した後、点群作成部120は、選択中の画素のRGB情報と、算出した位置情報Dとを含む点情報を、RGBD点群に登録する。
選択した画素についての点情報をRGBD点群に登録した後(すなわちステップS224又はS225を行った後)、点群作成部120は、未選択の画素があるか否かを判定する(ステップS226)。ステップS226において、点群作成部120は、所定の選択規則により選択される複数の画素のなかに、点情報をRGBD点群に登録していない画素があるか否かを判定する。未選択の画素がある場合(ステップS226;YES)、点群作成部120は、ステップS222以降の処理を繰り返す。全ての画素が選択済みである場合(ステップS226;NO)、点群作成部120は、RGBD点群を作成する処理を終了する。
RGBD点群を作成する処理(ステップS2)を終えると、距離測定装置1は、RGBD点群を補正する処理(ステップS3)を行う。RGBD点群を補正する処理として、本実施形態の距離測定装置1は、例えば、図6のフローチャートに沿った処理を行う。
このように、本実施形態の距離測定装置1では、まず、RGB画像内の各画素のRGB情報に基づいて死角領域を探索する。その後、本実施形態の距離測定装置1は、RGB画像内の複数の点のうちの死角領域外の点(画素)についての位置情報Dを算出し、該位置情報Dを含む点情報をRGB点群に登録する。すなわち、距離測定装置1においてRGBD点群を作成する処理は、第1の実施形態で説明した手順(図5のフローチャートに沿った手順)に限らず、適宜変更可能である。しかも、本実施形態で説明したRGBD点群の作成手順も、RGBD点群を作成する処理の別の一例に過ぎない。
[第3の実施形態]
本実施形態では、図4のフローチャートにおけるRGBD点群を補正する処理(ステップS3)の別の処理内容について説明する。なお、本実施形態に係る距離計測装置1の機能的構成は、第1の実施形態で説明した機能的構成と同じでよい。
図18は、第3の実施形態におけるRGBD点群を生成する処理の内容を説明するフローチャートである。
本実施形態の距離計測装置1においても、RGBD点群を補正する処理は、距離測定装置1の点群補正部130が行う。点群補正部130は、まず、図18のように、RGBD点群の点とモデル情報192の点との位置合わせを行う(ステップS313)。ステップS313の処理は、点群補正部130の位置合わせ部132が行う。位置合わせ部132は、第1の実施形態で説明したように、RGBD点群における位置情報Dが不定ではない点と、モデル情報192の点との位置合わせを行う。
次に、点群補正部130は、RGBD点群内の各点の位置情報Dをチェックし、RGB画像において位置情報Dが不定となる領域(死角領域)を探索する(ステップS311)。ステップS311の処理は、点群補正部130の探索部131が行う。探索部131は、例えば、RGBD点群から位置情報Dが不定(NULL)である点を抽出し、RGB画像内での位置情報Dが不定である点(画素)の分布を調べる。その後、探索部131は、位置情報Dが不定である画素が連続した領域のうちの、所定の条件を満たしている領域を、死角領域として検出する。ここで、所定の条件は、例えば、位置情報Dが不定である画素が連続した領域の形状、領域内の画素の個数、RGB画像内における位置等についての、死角領域とみなす条件とする。
次に、点群補正部130は、ステップS311の処理の結果に基づいて、画像内に死角領域が存在するか否かを判定する(ステップS312)。ステップS312の判定は、例えば、探索部131が行う。
死角領域が存在する場合(ステップS312;YES)、点群補正部130は、次に、RGBD点群の点と位置合わせをしたモデル情報192に基づいて死角領域内の死角領域内の各点の位置情報Dを決定し、RGBD点群を補正する(ステップS314)。ステップS314の処理は、位置情報決定部133が行う。位置情報決定部133は、第1の実施形態で説明した手順により、死角領域内の各点と対応する位置情報Dを決定する。位置情報Dを決定した後、位置情報決定部133は、死角領域内の点の位置情報Dを、不定であることを示す情報(NULL)から決定した位置情報に置き換えてRGBD点群を補正する。
RGBD点群の補正を終えると、点群補正部130は、次に、位置情報Dを算出していない死角領域があるか否かを判定する(ステップS315)。ステップS315の判定は、例えば、位置情報決定部133が行う。位置情報決定部133は、探索部131で検出した全ての死角領域に対し、モデル情報192に基づいて位置情報Dを置き換える処理をしたか否かを判定する。位置情報Dを置き換えていない死角領域が残っている場合(ステップS315;YES)、点群補正部130は、ステップS314の処理を繰り返す。全ての死角領域の位置情報Dを置き換えた場合(ステップS315;NO)、点群補正部130は、次に、モデル情報192に基づいて、死角領域外に存在する点の位置情報Dを修正し、RGBD点群を補正する(ステップS316)。また、ステップS311の探索結果において死角領域が存在しなかった場合(ステップS312;NO)、点群補正部130は、ステップS314及びS315の処理を省略してステップS316の処理を行う。
ステップS316の処理は、点群補正部130の位置情報決定部133が行う。位置情報決定部133は、例えば、RGBD点群における位置情報Dが不定ではない点の位置情報を、RGBD点群の点と位置合わせをしたモデル情報192の点の三次元位置(位置情報)に置き換える。すなわち、本実施形態におけるRGBD点群を補正する処理では、深度データ及び変換情報191に基づいて算出した位置情報Dを含む点についての位置情報を、RGBD点群の点と位置合わせをしたモデル情報192の点の位置情報に置き換える処理も行う。
ステップS316の処理を終えると、点群補正部130は、RGBD点群を補正する処理を終了する。このとき、点群補正部130は、補正後のRGBD点群を出力部140に渡すとともに、記憶部190に点群データ194として記憶させる。
このように、本実施形態の距離計測装置1では、深度データに基づいて計測範囲内の物体表面の三次元位置を算出した後、該三次元位置に基づいてRGB画像内の各点(画素)に写っている物体の三次元位置を示すRGBD点群を作成する。そして、RGBD点群において三次元位置が不定である点を含む死角領域がRGB画像内に存在する場合、距離計測装置1は、RGB画像に写っている物体についてのモデル情報に基づいて、該死角領域内の点と対応する三次元位置を決定する。この際、本実施形態の距離計測装置1は、計測範囲内の物体表面のうちの深度データにより三次元位置を算出することのできない部分の三次元位置を、RGB画像に写っている物体についての三次元モデルから作成したモデル情報192に基づいて補完する。これにより、本実施形態の距離計測装置1は、撮像装置210で撮像したRGB画像に深度センサ220で深度値を検出していない死角領域が存在する場合にも、該死角領域の位置情報Dを特定することが可能となる。
更に、本実施形態では、RGBD点群を補正する処理において、深度データ及び変換情報191に基づいて算出した位置情報Dを含む点についての位置情報を、RGBD点群の点と位置合わせをしたモデル情報192の点の位置情報に置き換える処理も行う。深度データ及び変換情報191に基づいて算出した位置情報Dの精度は、例えば、深度値の検出精度や、深度値の検出方向を制御する際の精度の影響を受ける。このため、例えば、実際には平面である物体表面における複数の点についてのz座標にばらつきが生じる等、RGBD点群に物体表面の形状とモデル情報192における物体表面の形状とに差異が生じることがある。これに対し、本実施形態で説明したRGBD点群を補正する処理では、RGBD点群における深度データ及び変換情報191に基づいて算出した位置情報Dを、モデル情報192の各点の位置情報に置き換える。これにより、RGBD点群における各点の位置情報Dを物体の形状を正しく表現する情報に近づけることが可能となり、RGB画像内の各物体の三次元形状をより適切に表現することが可能となる。
上記の距離計測装置1は、コンピュータと、該コンピュータに実行させるプログラムとにより実現可能である。以下、図19を参照して、コンピュータとプログラムとにより実現される距離計測装置1について説明する。
図19は、コンピュータのハードウェア構成を示す図である。
図19に示すように、コンピュータ20は、プロセッサ2001と、主記憶装置2002と、補助記憶装置2003と、入力装置2004と、出力装置2005と、入出力インタフェース2006と、通信制御装置2007と、媒体駆動装置2008と、を備える。コンピュータ20におけるこれらの要素2001〜2008は、バス2010により相互に接続されており、要素間でのデータの受け渡しが可能になっている。
プロセッサ2001は、Central Processing Unit(CPU)やMicro Processing Unit(MPU)等である。プロセッサ2001は、オペレーティングシステムを含む各種のプログラムを実行することにより、コンピュータ20の全体の動作を制御する。また、プロセッサ2001は、例えば、図4、図5、及び図6のフローチャートにおける各処理を含む距離計測プログラムを実行することにより、死角領域の位置情報をモデル情報に基づいて補正したRGBD点群を作成する。なお、距離計測プログラムにおけるRGBD点群を作成する処理は、図5のフローチャートに沿った処理に限らず、例えば、図17のフローチャートに沿った処理であってもよい。また、距離計測プログラムにおけるRGBD点群を補正する処理は、図6のフローチャートに沿った処理に限らず、例えば、図18のフローチャートに沿った処理であってもよい。
主記憶装置2002は、図示しないRead Only Memory(ROM)及びRandom Access Memory(RAM)を含む。主記憶装置2002のROMには、例えば、コンピュータ20の起動時にプロセッサ2001が読み出す所定の基本制御プログラム等が予め記録されている。また、主記憶装置2002のRAMは、プロセッサ2001が、各種のプログラムを実行する際に必要に応じて作業用記憶領域として使用する。主記憶装置2002のRAMは、例えば、変換情報191、モデル情報192、画像データ193、点群データ194等の記憶に利用可能である。
補助記憶装置2003は、例えば、Hard Disk Drive(HDD)や、フラッシュメモリ等の不揮発性メモリ(Solid State Drive(SSD)を含む)等、主記憶装置2002のRAMと比べて容量の大きい記憶装置である。補助記憶装置2003は、プロセッサ2001によって実行される各種のプログラムや各種のデータ等の記憶に利用可能である。補助記憶装置2003は、例えば、図4、図5、及び図6のフローチャートにおける各処理を含む距離計測プログラムの記憶に利用可能である。また、補助記憶装置2003は、例えば、変換情報191、モデル情報192、画像データ193、点群データ194等の記憶に利用可能である。
入力装置2004は、例えば、キーボード装置やタッチパネル装置等である。入力装置2004は、例えば、図2の入力装置3として利用可能である。コンピュータ20のオペレータ(利用者)が入力装置2004に対して所定の操作を行うと、入力装置2004は、その操作内容に対応付けられている入力情報をプロセッサ2001に送信する。また、入力装置2004は、撮像装置210及び深度センサ220を備えた複合センサ装置2を含んでもよい。
出力装置2005は、例えば、液晶表示装置等の表示装置やスピーカ等の音声再生装置である。出力装置2005は、例えば、図2の表示装置4として利用可能である。
入出力インタフェース2006は、コンピュータ20と、他の電子機器とを接続する。入出力インタフェース2006は、例えば、Universal Serial Bus(USB)規格のコネクタ等を備える。入出力インタフェース2006は、例えば、コンピュータ20と、撮像装置210及び深度センサ220を備えた複合センサ装置2との接続に利用可能である。
通信制御装置2007は、コンピュータ20をインターネット等のネットワークに接続し、ネットワークを介したコンピュータ20と他の電子機器との各種通信を制御する装置である。通信制御装置2007は、例えば、ネットワーク12を介した、距離計測装置1として動作させるコンピュータ20とレイアウトデータベース13との通信に利用可能である(図2を参照)。また、通信制御装置2007は、例えば、ネットワーク12を介した、距離計測装置1として動作させるコンピュータ20と複合センサ装置2との通信に利用可能である(図16を参照)。更に、通信制御装置2007は、ネットワーク12を介した、距離計測装置1として動作させるコンピュータ20と管理サーバ15との通信に利用可能である(図16を参照)。
媒体駆動装置2008は、可搬型記録媒体21に記録されているプログラムやデータの読み出し、補助記憶装置2003に記憶されたデータ等の可搬型記録媒体21への書き込みを行う。媒体駆動装置2008には、例えば、1種類以上の規格に対応したメモリカード用リーダ/ライタが利用可能である。媒体駆動装置2008としてメモリカード用リーダ/ライタを用いる場合、可搬型記録媒体21としては、メモリカード用リーダ/ライタが対応している規格、例えば、Secure Digital(SD)規格のメモリカード(フラッシュメモリ)等を利用可能である。また、可搬型記録媒体21としては、例えば、USB規格のコネクタを備えたフラッシュメモリが利用可能である。更に、コンピュータ20が媒体駆動装置2008として利用可能な光ディスクドライブを搭載している場合、当該光ディスクドライブで認識可能な各種の光ディスクを可搬型記録媒体21として利用可能である。可搬型記録媒体21として利用可能な光ディスクには、例えば、Compact Disc(CD)、Digital Versatile Disc(DVD)、Blu-ray Disc(Blu-rayは登録商標)等がある。可搬型記録媒体21は、例えば、図4、図5、及び図6のフローチャートにおける各処理を含む距離計測プログラムの記憶に利用可能である。また、可搬型記録媒体21は、例えば、変換情報191、モデル情報192、画像データ193、点群データ194等の記憶に利用可能である。
作業者11等が入力装置2004等を操作することによりコンピュータ20に距離計測処理の開始命令が入力されると、プロセッサ2001は、補助記憶装置2003等の非一時的な記録媒体に記憶させた距離計測プログラムを読み出して実行する。距離計測プログラムを実行している間、プロセッサ2001は、距離計測装置1における情報取得部110、点群作成部120、点群補正部130、及び出力部140として機能する(動作する)。なお、距離計測装置1における出力部140の機能の一部は、コンピュータ20の通信制御装置2007や媒体駆動装置2008が担う。また、距離計測プログラムを実行している間、主記憶装置2002のRAMや補助記憶装置2003等の記憶装置は、距離計測装置1の記憶部190として機能する。
なお、距離計測装置1として動作させるコンピュータ20は、図19に示した全ての要素2001〜2008を含む必要はなく、用途や条件に応じて一部の要素を省略することも可能である。例えば、コンピュータ20は、媒体駆動装置2008が省略されたものであってもよい。
また、コンピュータ20に実行させる距離計測プログラムにおけるRGBD点群を生成する処理は、図5のフローチャートに沿った処理に限らず、図17のフローチャートに沿った処理であってもよい。更に、距離計測プログラムにおけるRGBD点群を補正する処理は、図6のフローチャートに沿った処理に限らず、図18のフローチャートに沿った処理であってもよい。
以上記載した各実施例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
物体の画像と、前記物体の表面における複数の点のそれぞれまでの距離の情報とを取得する取得部と、
前記画像と前記距離の情報とに基づいて、前記画像における複数の点のそれぞれと対応する三次元位置を算出し、前記画像における輝度の情報と三次元位置を示す位置情報とを含む点情報を登録した点群を作成する作成部と、
前記点群の点情報のうちの前記距離の情報に基づいて算出された前記三次元位置を示す位置情報と、予め用意された前記物体の表面における複数の点のそれぞれの三次元位置を示す位置情報を含むモデル情報とに基づいて、前記点群の点情報のうちの前記位置情報が不定である点の位置情報を決定して前記点群を補正する補正部と、
を備えることを特徴とする距離計測装置。
(付記2)
前記補正部は、
前記画像における複数の点のうちの、前記距離の情報と対応付けられない点を含む死角領域を探索する探索部と、
前記点群の点と前記モデル情報の点との位置合わせを行う位置合わせ部と、
位置合わせをした前記モデル情報の点により補完された前記物体の表面の点の三次元位置に基づいて、前記画像の前記死角領域内に含まれる点と対応する三次元位置を決定し、前記点群の前記死角領域内の点についての前記点情報における前記位置情報を、決定した前記三次元位置を示す情報に置き換える決定部と、
を含むことを特徴とする付記1に記載の距離計測装置。
(付記3)
前記補正部は、更に、前記モデル情報に基づいて、前記点群の点情報のうちの前記距離の情報に基づいて算出した前記位置情報を修正して前記点群を補正する、
ことを特徴とする付記1に記載の距離計測装置。
(付記4)
前記作成部は、
前記距離の情報に基づいて、該距離の情報を検出する検出範囲内での前記物体の表面の前記複数の点のそれぞれの三次元位置を算出した後、
前記距離の情報を検出する検出装置と前記画像を撮像する撮像装置との位置関係、前記検出装置の検出範囲、及び前記撮像装置の撮像範囲に基づいて、前記画像内の複数の点のそれぞれと対応する前記三次元位置を算出する、
ことを特徴とする付記1に記載の距離計測装置。
(付記5)
前記作成部は、
前記画像の各画素が持つ情報に基づいて該画像内の前記物体における前記距離の情報と対応付けられない死角領域を算出した後、
前記画像における前記複数の点のうちの前記死角領域内の点については、該点の前記輝度の情報と、位置情報が不定であることを示す情報とを含む点情報を前記点群に登録し、
前記画像における前記複数の点のうちの前記死角領域外の点については、該点の前記輝度の情報と、該点と対応付けられる前記距離の情報に基づいて算出した前記位置情報とを含む点情報を前記点群に登録する、
ことを特徴とする付記1に記載の距離計測装置。
(付記6)
前記取得部は、前記画像を撮像する撮像装置と、検出対象である空間内の深度値を検出する深度センサとを含む複合センサ装置から、前記物体の前記画像を取得するとともに、前記距離の情報として前記深度センサで検出した前記深度値を取得する、
ことを特徴とする付記1に記載の距離計測装置。
(付記7)
前記距離計測装置は、前記物体の三次元モデルから前記モデル情報を抽出する抽出部を更に備える、
ことを特徴とする付記1に記載の距離計測装置。
(付記8)
コンピュータが、
物体の画像と、前記物体の表面における複数の点のそれぞれまでの距離の情報とを取得し、
前記画像と前記距離の情報とに基づいて、前記画像における複数の点のそれぞれと対応する三次元位置を算出し、前記画像における輝度の情報と三次元位置を示す位置情報とを含む点情報を登録した点群を作成し、
前記点群の点情報のうちの前記距離の情報に基づいて算出された前記三次元位置を示す位置情報と、予め用意された前記物体の表面における複数の点のそれぞれの三次元位置を示す位置情報を含むモデル情報とに基づいて、前記点群の点情報のうちの前記位置情報が不定である点の位置情報を決定して前記点群を補正する、
処理を実行することを特徴とする距離計測方法。
(付記9)
物体の画像と、前記物体の表面における複数の点のそれぞれまでの距離の情報とを取得し、
前記画像と前記距離の情報とに基づいて、前記画像における複数の点のそれぞれと対応する三次元位置を算出し、前記画像における輝度の情報と三次元位置を示す位置情報とを含む点情報を登録した点群を作成し、
前記点群の点情報のうちの前記距離の情報に基づいて算出された前記三次元位置を示す位置情報と、予め用意された前記物体の表面における複数の点のそれぞれの三次元位置を示す位置情報を含むモデル情報とに基づいて、前記点群の点情報のうちの前記位置情報が不定である点の位置情報を決定して前記点群を補正する、
処理をコンピュータに実行させる距離計測プログラム。