(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024003698
(43)【公開日】2024-01-15
(54)【発明の名称】情報処理システム、情報処理装置、及び情報処理プログラム
(51)【国際特許分類】
G06T 15/08 20110101AFI20240105BHJP
G01S 17/89 20200101ALI20240105BHJP
G06T 15/06 20110101ALI20240105BHJP
【FI】
G06T15/08
G01S17/89
G06T15/06
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022103022
(22)【出願日】2022-06-27
(71)【出願人】
【識別番号】000006633
【氏名又は名称】京セラ株式会社
(74)【代理人】
【識別番号】110001106
【氏名又は名称】弁理士法人キュリーズ
(72)【発明者】
【氏名】尾形 卓美
【テーマコード(参考)】
5B080
5J084
【Fターム(参考)】
5B080AA13
5B080AA17
5B080CA00
5B080FA17
5B080GA06
5J084AA04
5J084AD01
5J084BA03
(57)【要約】
【課題】基準データを用いることなく、3Dデータの欠損を検出できるようにした情報処理システム、情報処理装置、及び情報処理プログラムを提供する。
【解決手段】一態様に係る情報処理システムは、対象物の3Dデータを取得する3Dデータ取得装置と、処理部と、を有する情報処理システムである。前記処理部は、3Dデータに基づいて、仮想空間上に対象物の一次モデルを構築するモデル構築部を含む。また、前記処理部は、仮想空間上の任意の点に光源を配置し、当該光源から光を放射する光源放射部を含む。更に、前記処理部は、前記光源から放出される光線の軌跡を取得し、光線が一次モデル上の物体に衝突するか否かを検出し、光線のうち物体に衝突しない第1光線が存在するとき、第1光線の経路上に3Dデータの欠損点が存在すると判定する欠損判定部を含む。
【選択図】
図4
【特許請求の範囲】
【請求項1】
対象物の3Dデータを取得する3Dデータ取得装置と、
処理部と、を有する情報処理システムであって、
前記処理部は、
前記3Dデータに基づいて、仮想空間上に前記対象物の一次モデルを構築するモデル構築部と、
前記仮想空間上の任意の点に光源を配置し、当該光源から光を放射する光源放射部と、
前記光源から放出される光線の軌跡を取得し、前記光線が前記一次モデル上の物体に衝突するか否かを検出し、前記光線のうち前記物体に衝突しない第1光線が存在するとき、前記第1光線の経路上に前記3Dデータの欠損点が存在すると判定する欠損判定部と、を有する
情報処理システム。
【請求項2】
前記欠損判定部は、前記第1光線により前記物体に対して第1衝突点座標が存在せず、かつ、前記光線のうち第2光線が前記物体に衝突することで発生する第2衝突点座標が前記第1衝突点座標の周囲に存在するとき、前記第1光線の経路上に前記欠損点が存在すると判定する、
請求項1記載の情報処理システム。
【請求項3】
前記対象物の画像データを取得する撮像装置と、
表示部と、を更に有し、
前記3Dデータ取得装置は、レーザー光を照射して反射光を検出することで前記3Dデータを取得するLiDAR(Light Detection and Ranging)方式の装置であり、
前記欠損判定部は、前記画像データに基づいて、透明物体、黒色物体、及び鏡面状の鏡面物体のいずれかの物体が前記欠損点に存在するか否かを判定し、いずれかの前記物体が前記欠損点に存在しないとき、前記欠損点が存在する前記一次モデルを前記表示部に表示させる、
請求項1記載の情報処理システム。
【請求項4】
前記欠損判定部は、前記透明物体、前記黒色物体、及び鏡面状の前記鏡面物体のいずれかの前記物体が前記欠損点に存在するとき、前記欠損点に当該物体が存在する二次モデルを構築し、
前記表示部は、前記二次モデルを表示する、
請求項3記載の情報処理システム。
【請求項5】
前記光源放射部は、前記仮想空間上の全ての物体に光が照射されるように複数の前記光源を設定する、
請求項1記載の情報処理システム。
【請求項6】
前記欠損判定部は、前記複数の光源からの光線の全てが前記仮想空間上の全ての物体に衝突するとき、前記3Dデータの欠損点が存在しないと判定する
請求項5記載の情報処理システム。
【請求項7】
前記欠損判定部は、レイトレーシング法を用いて前記光線の軌跡を取得する、
請求項1記載の情報処理システム。
【請求項8】
3Dデータ取得装置から3Dデータを取得し、前記3Dデータに基づいて仮想空間上に一次モデルを構築するモデル構築部と、
前記仮想空間上の任意の点に光源を配置し、当該光源から光を放射する光源放射部と、
前記光源から放出される光線の軌跡を取得し、前記光線が前記一次モデル上の物体に衝突するか否かを検出し、前記光線のうち前記物体に衝突しない第1光線が存在するとき、前記第1光線の経路上に前記3Dデータの欠損点が存在すると判定する欠損判定部と、を有する
情報処理装置。
【請求項9】
情報処理システムに、
3Dデータ取得装置から3Dデータを取得し、前記3Dデータに基づいて仮想空間上に一次モデルを構築する処理と、
前記仮想空間上の任意の点に光源を配置し、当該光源から光を放射する処理と、
前記光源から放出される光線の軌跡を取得し、前記光線が前記一次モデル上の物体に衝突するか否かを検出し、前記光線のうち前記物体に衝突しない第1光線が存在するとき、前記第1光線の経路上に前記3Dデータの欠損点が存在すると判定する処理と、を実行させる
情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理装置、及び情報処理プログラムに関する。
【背景技術】
【0002】
昨今、3D(Dimensions)データは、製造業における製品設計及び評価以外にも、障害物検知のために自動運転技術に用いられたり、医療又は教育などの現場においてコンテンツとして利用されたりしている。例えば、LiDAR(Light Detection and Ranging)方式の計測装置を利用して、対象物にレーザー光を照射し、その反射光を検出することで、3Dデータを取得することができる。
【0003】
しかしながら、対象物の材質の影響などにより、3Dデータに欠落が生じる場合がある。例えば、対象物が黒色の場合、計測装置からのレーザー光を吸収する。そのため、計測装置では、反射光を取得することができず、3Dデータを取得できない場合がある。
【0004】
3Dデータに欠落が生じると、3Dデータを活用することができない場合がある。そのため、3Dデータを利用するユーザは、計測装置を利用して3Dデータを再測定したり、欠落部分のある3Dデータを加工したりするなど、ユーザに負担を生じさせてしまう場合がある。
【0005】
3Dデータの欠落に対して、以下のような技術がある。すなわち、撮像ユニットにより対象物を撮像することで取得した計測データと、欠落点のない対象物の基準データ(例えば、CADデータ)とを比較することで、計測データの欠落範囲を抽出する三次元形状計測装置がある(例えば、以下の特許文献1)。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、上述した三次元形状計測装置は、基準データを予め用意する必要がある。そのため、上述した三次元形状計測装置では、基準データを用意しない場合と比較して、ユーザ負担が大きくなる。
【0008】
そこで、本開示は、基準データを用いることなく、3Dデータの欠損を検出できるようにした情報処理システム、情報処理装置、及び情報処理プログラムを提供することにある。
【課題を解決するための手段】
【0009】
第1の態様に情報処理システムは、対象物の3Dデータを取得する3Dデータ取得装置と、処理部と、を有する情報処理システムである。前記処理部は、3Dデータに基づいて、仮想空間上に対象物の一次モデルを構築するモデル構築部を含む。また、前記処理部は、仮想空間上の任意の点に光源を配置し、当該光源から光を放射する光源放射部を含む。更に、前記処理部は、前記光源から放出される光線の軌跡を取得し、前記光線が一次モデル上の物体に衝突するか否かを検出し、光線のうち物体に衝突しない第1光線が存在するとき、第1光線の経路上に3Dデータの欠損点が存在すると判定する欠損判定部を含む。
【0010】
第2の態様に係る情報処理装置は、3Dデータ取得装置から3Dデータを取得し、前記3Dデータに基づいて仮想空間上に一次モデルを構築するモデル構築部を含む。また、前記情報処理装置は、仮想空間上の任意の点に光源を配置し、当該光源から光を放射する光源放射部を含む。更に、前記情報処理装置は、前記光源から放出される光線の軌跡を取得し、前記光線が一次モデル上の物体に衝突するか否かを検出し、光線のうち物体に衝突しない第1光線が存在するとき、第1光線の経路上に3Dデータの欠損点が存在すると判定する欠損判定部を含む。
【0011】
第3の態様に係る情報処理プログラムは、情報処理システムに、3Dデータ取得装置から3Dデータを取得し、前記3Dデータに基づいて仮想空間上に一次モデルを構築する処理を実行させる。また、前記情報処理プログラムは、前記情報処理システムに、仮想空間上の任意の点に光源を配置し、当該光源から光を放射する処理を実行させる。更に、前記情報処理プログラムは、前記情報処理システムに、前記光源から放出される光線の軌跡を取得し、前記光線が一次モデル上の物体に衝突するか否かを検出し記光線のうち物体に衝突しない第1光線が存在するとき、第1光線の経路上に3Dデータの欠損点が存在すると判定する処理を実行させる。
【発明の効果】
【0012】
本開示によれば、基準データを用いることなく、3Dデータの欠損を検出できるようにした情報処理システム、情報処理装置、及び情報処理プログラムを提供できる。
【図面の簡単な説明】
【0013】
【
図1】
図1は、第1実施形態に係る情報処理システムの構成例を表す図である。
【
図2】
図2(A)は第1実施形態に係る現実空間の例、
図2(B)は第1実施形態に係る仮想空間の例を夫々表す図である。
【
図3】
図3は、第1実施形態に係る欠損部の例を表す図である。
【
図4】
図4は、第1実施形態に係る動作例を表す図である。
【
図5】
図5(A)と
図5(B)は、第1実施形態に係る仮想空間の表示例を表す図である。
【
図6】
図6(A)と
図6(B)は、第1実施形態に係る仮想空間の表示例を表す図である。
【
図7】
図7(A)と
図7(B)は、第1実施形態に係る仮想空間の表示例を表す図である。
【発明を実施するための形態】
【0014】
[第1実施形態]
図面を参照して実施形態について説明する。図面の記載において、同一又は類似の部分には同一又は類似の符号を付している。
【0015】
(情報処理システムの構成例)
最初に、第1実施形態に係る情報処理システムの構成例について説明する。
図1は、情報処理システム10の構成例を表す図である。
【0016】
図1に示すように、情報処理システム10は、3Dデータ取得装置100と、処理部200と、表示部300とを有する。情報処理システム10は、更に、サーバ500を有してもよい。また、情報処理システム10は、更に、ステレオカメラ400を有してもよい。以下では、情報処理システム10は、3Dデータ取得装置100と、処理部200と、表示部300とを有するものとして説明する。
【0017】
3Dデータ取得装置100は、3Dデータを取得する。3Dデータ取得装置100は、現実空間の対象物に対して、レーザー光を照射して、当該レーザー光に対する反射光を検出することで、対象物に対する3Dデータを取得する。3Dデータ取得装置100は、例えば、LiDAR(Light Detection and Ranging)方式の装置である。3Dデータ取得装置100は、3Dデータを取得できれば、LiDAR方式以外の装置であってもよく、例えば、ToF(Time of Flight)方式を利用して3Dデータを取得する装置、又は2つのカメラの視差を利用して3Dデータを取得するステレオカメラであってもよい。以下では、3Dデータ取得装置100は、LiDAR方式の装置であるとして説明する。
【0018】
なお、3Dデータ取得装置100では、LiDAR方式により反射光を検出すると、3次元上の点の集まりである「点群データ」を取得する。そして、3Dデータ取得装置100では、「点群データ」を多角形(又はポリゴン)の集合である「3Dデータ」(又はメッシュデータ)に変換し、当該「3Dデータ」を出力する。以下では、「点群データ」と「3Dデータ」とを特に区別することなく同じ意味で用いる場合がある。第1実施形態では、処理部200により、3Dデータの欠損点を検出するが、「点群データ」の欠損点を検出することと、「3Dデータ」の欠損点を検出することとは、同じ意味で用いる場合がある。
【0019】
図2(A)は、第1実施形態に係る現実空間の例を表す図である。
図2(A)では、現実空間に存在する対象物として、部屋の例を表している。具体的には、部屋の各壁が対象物となる。3Dデータ取得装置100は、部屋の中で、レーザー光を照射する。部屋の各壁においてレーザー光が反射される。3Dデータ取得装置100は、反射光を検出することで、部屋という現実空間に存在する対象物に対する3Dデータを取得する。
【0020】
図1に戻り、処理部200は、演算処理を行う装置である。処理部200は、情報処理装置でもよい。処理部200は、少なくとも1つのプロセッサを含む。処理部200は、CPU(Central Processing Unit)、MCU(Micro Control Unit)、FPGA(Field Programmable Gate Array)、及びGPU(Graphics Processing Unit)のいずれかのプロセッサを含んでもよい。また、処理部200は、メモリ240を含む。メモリ240は、ROM(Read Only Memory)及びRAM(Random Access Memory)を含んでもよい。処理部200は、プロセッサとメモリ240とを含むコンピュータを含んでもよい。処理部200は、パーソナルコンピュータに含まれてもよい。
【0021】
処理部200は、各種の処理及び制御を実行する。例えば、処理部200は、3Dデータ取得装置100から出力された3Dデータに対して、各種の処理及び制御を実行する。また、処理部200は、表示部300に各種表示を表示させるよう制御する。
【0022】
処理部200は、メモリ240に記憶されたプログラムを読み出して、当該プログラムを実行することで、モデル構築部210と、光源放射部220と、欠損判定部230との各機能を実現する。
【0023】
モデル構築部210は、3Dデータ取得装置100から出力された3Dデータに基づいて、仮想空間上に存在する対象物についての一次モデルを構築する。例えば、モデル構築部210は、3Dデータに対して、所定座標系への変換処理を施すことで、仮想空間上に一次モデルを構築することができる。モデル構築部210は、表示部300を制御して、一次モデルを表示部300に表示させることができる。
図2(B)は、モデル構築部210が構築した一次モデルの例を表す図である。モデル構築部210は、例えば、
図2(A)に示す現実空間の3Dデータに基づいて、
図2(B)に示す一次モデルを構築する。
図1に戻り、モデル構築部210は、一次モデルのデータを光源放射部220へ出力する。モデル構築部210は、メモリ240を介して、一次モデルのデータを光源放射部220へ出力してもよい。すなわち、モデル構築部210は、一次モデルのデータをメモリ240へ記憶する。そして、光源放射部220は、メモリ240から一次モデルのデータを読み出してもよい。
【0024】
光源放射部220は、モデル構築部210で構築された一次モデルに対して、仮想空間上の任意の点に光源を配置し、当該光源から光を放射する。このとき、光源放射部220は、仮想空間上に存在する全ての対象物に対して光が照射されるよう、ステレオカメラ400で取得した対象物の座標データに基づいて、1又は複数の光源を仮想空間上に配置する。光源放射部220は、光が放射した後の一次モデルのデータを、欠損判定部230へ出力する。光源放射部220は、メモリ240を介して当該データを欠損判定部230へ出力してもよい。すなわち、光源放射部220は当該データをメモリ240に記憶し、欠損判定部230がメモリ240から当該データを読み出してもよい。
【0025】
欠損判定部230は、光源から放出される光線の軌跡をレイトレーシング(Ray Tracing)法等を用いて取得し、光線が一次モデル上の物体に衝突するか否かを検出する。そして、欠損判定部230は、当該光線のうち、当該物体に衝突しない第1光線が存在するとき、第1光線の経路上に3Dデータの欠損点が存在すると判定する。以下において、欠損判定部230がレイトレーシング法を用いて光線の軌跡を取得するケースについて主として説明するが、欠損判定部230が用いる手法はレイトレーシング法に限定されるものではなく、光線の速度及び進行方向に基づいて光線の軌跡を算出する手法であればどのような手法を用いてもよい。
【0026】
レイトレーシング法とは、光線などを追跡することで、ある点で観測される像などをシミュレートする手法である。レイトレーシング法では、ある点に到達する光線を逆に辿ることで、その点における画像を描画することができる。レイトレーシング法では、物体の反射率又は透明度などに基づいて、画素単位で光線経路を計算できるため、現実に即した写実的な画像を描画することができる。レイトレーシング法においては、光線以外にも、電波又は音波が用いられてもよい。
【0027】
ここで、光源からの光線が一次モデル上の物体に衝突するか否かの検出について説明する。当該検出は、レイトレーシング法における交差判定(又は衝突判定)を用いて検出できる。例えば、欠損判定部230は、ユーザ視点からのレイ(又は半直線)を表すベクトル方程式と、一次モデル上の物体(平面又は球など)を表すベクトル方程式とを設定し、2つのベクトル方程式による連立方程式を解く。欠損判定部230では、当該連立方程式を解くことで、当該物体上に当該レイと交点が存在するか否か、すなわち、光源からの光線が物体に衝突するか否かを判定できる。
【0028】
欠損判定部230は、レイトレーシング法に基づき、光源からの光のうち、一次モデル上の物体に衝突しない第1光線が存在すれば、第1光線の経路上に3Dデータの欠損点が存在すると判定する。一方、欠損判定部230は、レイトレーシング法に基づき、光源からの光線が全て一次モデル上の物体に衝突するときは、3Dデータには欠損点が存在しないと判定する。
【0029】
図3は、第1実施形態に係る欠損点の例を表す図である。
図3に示すように、光源が部屋の内部に存在する。一次モデル上の面Bでは、光源からの光は衝突する。一方、一次モデル上の面Aでは、光源からの光は衝突することなく、そのまま通過する。欠損判定部230は、面Bでは光源からの光が衝突しないため、面Aは欠損点であると判定する。
【0030】
なお、欠損判定部230では、3Dデータの欠損点に対して、ステレオカメラ400で取得した画像データと照合し、欠損点となっている部分に所定物体が存在するか否かを判定する。所定物体とは、透明物体、黒色物体、及び鏡面状の鏡面物体(又は光沢のある物体)のいずれかの物体である。所定物体は、3Dデータ取得装置100においてLiDAR方式が利用される場合、3Dデータを取得することができない物体である。そのため、欠損判定部230は、ステレオカメラ400で取得した画像データと欠損点とを照合して、所定物体の有無を検出する。
【0031】
欠損判定部230では、当該欠損点に所定物体が存在すると判定したとき、当該欠損点に含まれる、ステレオカメラ400からの画像データ(又は画素値)を利用して、欠損点に所定物体が存在する二次モデルを構築する。一方、欠損判定部230では、当該欠損点に所定物体が存在しないと判定したとき、欠損点が存在する一次モデルを表示部300に表示させる。欠損点が存在する一次モデルが表示部300に表示されることで、ユーザに3Dデータの欠損点の存在を通知できる。
【0032】
なお、欠損点には、単一の欠損点だけではなく、複数の欠損点が含まれてもよい。1又は複数の欠損点により、所定の大きさを有する領域が形成されてもよい。以下では、欠損点を「欠損部」と称する場合がある。
【0033】
表示部300は、欠損判定部230の制御により、欠損部が存在する一次モデルを表示する。また、表示部300は、欠損判定部230の制御により、欠損部に所定物体が存在する二次モデルを表示することもできる。更に、表示部300は、モデル構築部210で構築された一次モデルを表示することもできる。表示部300は、例えば、液晶ディスプレイ又は有機EL(Electro Luminescence)ディスプレイを含み、タッチパネル方式のディスプレイを含んでもよい。
【0034】
ステレオカメラ400は、3Dデータ取得装置100における3Dデータ取得対象となる対象物を撮像する。そのため、ステレオカメラ400は、例えば、3Dデータ取得装置100とほぼ同じ位置で当該対象物を撮像することができる。なお、3Dデータ取得装置100がステレオカメラである場合、3Dデータ取得装置100とステレオカメラ400とは、同一のステレオカメラであってもよい。ステレオカメラ400は、例えば、左右の2つのカメラの視差に基づいて、3次元のカメラデータを取得し、当該カメラデータをサーバ500へ送信する。なお、カメラデータには、対象物の位置を表す座標データと、対象物を含む3次元の画像データとが含まれる。
【0035】
サーバ500は、メモリ510を含む。メモリ510は、ステレオカメラ400から出力されたカメラデータを記憶する。サーバ500は、光源放射部220からの要求に応じて、メモリ510に記憶されたカメラデータのうち座標データを適宜読み出し、当該座標データを光源放射部220へ送信する。また、サーバ500は、欠損判定部230からの要求に応じて、メモリ510に記憶されたカメラデータのうち画像データを適宜読み出し、当該画像データを欠損判定部230へ送信する。サーバ500は、インターネットなどのコンピュータネットワークを介してコンピュータ資源をサービスの形式で提供するクラウドサーバでもよい。
【0036】
(第1実施形態に係る動作例)
図4は、第1実施形態に係る動作例を表す図である。
【0037】
図4に示すように、ステップS10において、情報処理システム10は処理を開始する。
【0038】
ステップS11において、3Dデータ取得装置100は、3Dデータを取得する。また、ステップS11において、ステレオカメラ400は、カメラデータを取得する。
【0039】
図5(A)は、第1実施形態に係る現実空間の例を表す図である。
図5(A)では、現実空間として工場内の様子が示されている。3Dデータ取得装置100は、
図5(A)に示す工場内において、レーザー光を照射し、工場内における機械、通路、及び壁などの対象物からの反射光を検出することで、3Dデータを検出する。また、ステレオカメラ400は、
図5(A)に示す工場内において、工場内を撮像することで、カメラデータを取得する。なお、
図5(A)は、ステレオカメラ400で撮像した画像(の画像データ)の例を示している。
【0040】
図4に戻り、ステップS12において、ステレオカメラ400は、取得したカメラデータをサーバ500へ送信する。サーバ500では、メモリ510にカメラデータを記憶する。
【0041】
ステップS13において、モデル構築部210は、3Dデータ取得装置100で取得した3Dデータを仮想空間へ移動させ、一次モデルを構築する。なお、
図5(B)は、仮想空間上に構築された一次モデルの例を表している。
【0042】
図4に戻り、ステップS14において、光源放射部220は、カメラデータのうち座標データをサーバ500から受信し、当該座標データに基づいて、一次モデル上の全ての物体(又は構造物)に光が照射されるように光源をNカ所(Nは1以上の整数)設定する。
【0043】
例えば、
図5(B)の例では、光源放射部220は、仮想空間上における機械、通路、及び壁などの全ての物体に対して、光源からの光が照射されるように、座標データに基づいて、光源の位置を設定する。例えば、光源放射部220は、以下のようにして光源の位置を設定してもよい。
【0044】
すなわち、光源放射部220は、座標データに基づき設定した第1光源に対して、当該第1光源からの光線を表すベクトル方程式と、仮想空間上の第1物体を表すベクトル方程式とを設定し、2つのベクトル方程式を解くことで、第1光源からの光線と第1物体とに交点が存在するか否かを判定する。これにより、当該第1光源からの光が仮想空間上の第1物体に照射されているか否かを判定できる。光源放射部220では、交点が存在すると、第1物体とは異なる第2物体に対しても交点が存在するか否かを判定する。光源放射部220では、第1物体に対して交点が存在しなかったり、第2物体に対して交点が存在しなかったりする場合、座標データに基づき、光源の位置を変更し、変更後の光源に対して、当該光源からの光が第1物体又は第2物体に照射されているか否かを判定する。以降、これを繰り返すことで、光源放射部220は、仮想空間上の全ての物体に対して光を照射することのできる、1又は複数の光源を設定する。
【0045】
図4に戻り、ステップS15において、光源放射部220は、仮想空間上において、全ての光源(N個の光源)からの光を放射したか否かを判定する。ステップS15において、光源放射部220が全ての光源からの光を放射したとき(ステップS15でYes)、処理はステップS18へ移行する。一方、ステップS15において、光源放射部220が全ての光源からの光を放射していないとき(ステップS15でNo)、処理はステップS16へ移行する。
【0046】
ステップS16において、光源放射部220は、仮想空間上において、光源(例えば、N=1の第1光源)からの光を全方位に放射する。
図6(B)は、仮想空間上において、ある光源からの光が放射された例を表している。なお、
図6(A)は、
図5(A)と同一の画像であり、ステレオカメラ400で撮像した画像(の画像データ)の例を示している。
【0047】
図4に戻り、ステップS17において、欠損判定部230は、光の伝搬履歴をメモリ240に記憶する。具体的には、欠損判定部230は、(1)光源(例えば、N=1の第1光源)からの光に対する衝突点の有無と、(2)衝突点の座標と、(3)光の伝搬経路とを、光の伝搬記録として記憶する。衝突点の有無は、上述したように、レイトレーシング法等を用いて、光源から放出された光が仮想空間上の各物体に衝突するか否かを検出することにより判定される。衝突点が存在する場合、当該衝突点の座標が記録される。光の伝搬経路は、光源から光線を表すベクトル方程式により表されてもよい。
図6(B)に示す例では、光源からの光が、仮想空間上の機械及び壁(天井)などの物体に反射しており、このような反射点が衝突点の座標として記録される。なお、
図6(B)では、衝突点のない空洞部分が仮想空間上に存在する例が示されている。
【0048】
図4に戻り、光源放射部220と欠損判定部230では、全光源からの光についての伝搬履歴を記憶するまで(又は光源がNとなるまで)、ステップS15からステップS17を繰り返す。
【0049】
ステップS18において、欠損判定部230は、全ての光で衝突点座標を確認できたか否かを判定する。欠損判定部230は、ステップS17で記憶した光の伝搬履歴を確認することで、全ての光で衝突点座標を確認できたか否かを判定すればよい。欠損判定部230において全ての光で衝突点座標を確認できたとき(ステップS18でYes)、ステップS19において、情報処理システム10は、一連の処理を終了する。全ての光で衝突点座標が確認できた場合とは、仮想空間上の一次モデルに空洞(例えば
図6(B)で表される空洞)が存在しない場合であり、3Dデータにおいて欠損部が存在しない場合でもある。このような場合は、情報処理システム10は一連の処理を終了するようにしている。
【0050】
一方、ステップS18において、欠損判定部230は、全ての光で衝突点座標を確認できなかったとき(ステップS18)、処理はステップS20へ移行する。
【0051】
ステップS20において、欠損判定部230は、「衝突点座標が記録されていない光の伝搬経路」と「周辺の衝突点座標」とから3Dデータの欠損部を検出する。
図6(B)の例では、空洞部分では光源からの光が反射することなく、光が通り抜けるため、衝突点座標が存在しない。一方で、空洞部分となっている周囲には、光源からの光が物体に反射して反射点、すなわち、衝突点座標が存在する。このように、欠損判定部230では、光源からの光について衝突点座標が存在することなく、その周囲において衝突点座標が存在する場合、3Dデータの欠損点が存在すると判定する。具体的には、欠損判定部230は、第1光線(例えば、反射しない光線)により物体に対して第1衝突点座標が存在せず、かつ、光線のうち第2光線(例えば、反射する光線)が物体に衝突することで発生する第2衝突点座標が第1衝突点座標の周囲に存在するとき、第1光線の経路上に欠損点が存在すると判定する。或いは、欠損判定部230は、連続して3Dデータが存在するもののある一部において3Dデータが存在しないとき、3Dデータに欠損部があると判定してもよい。
【0052】
ステップS21において、欠損判定部230は、3Dデータの欠損部に対して、ステレオカメラ400の画像データと照合する。欠損判定部230は、3Dデータの欠損部の座標位置において、当該画像データと照合する。
【0053】
ステップS22において、欠損判定部230は、欠損部に透明物体が存在するか否かを判定する。欠損判定部230は、例えば、以下のようにして判定してもよい。すなわち、欠損判定部230は、欠損部の位置と同じ位置に存在する画像データの全てが所定閾値以上(又は所定閾値以下)のとき、欠損部と同じ位置に、全体的に白く透明な画像値を有する画像データ(すなわち、透明物体を表す画像データ)が存在するものとして、透明物体が存在すると判定してもよい。ステップS22において、欠損部に透明物体が存在するとき(ステップS22でYes)、処理はステップS23へ移行する。一方、ステップS22において、欠損部に透明物体が存在しないとき(ステップS22でNo)、処理はステップS24へ移行する。
【0054】
ステップS23において、欠損判定部230は、欠損部に透明物体が存在する二次モデルを仮想空間上に構築する。例えば、欠損判定部230は、仮想空間上における欠損部の位置の画像データを、ステレオカメラ400から取得した、当該位置に存在する画像データに置き換えることで、二次モデルを構築する。そして、ステップS19において、情報処理システム10は一連の処理を終了する。
図7(B)と
図7(C)は、欠損部の位置の画像データを、当該位置に存在する、ステレオカメラ400で取得した画像データとした場合の例を表す図である。
図7(B)に示すように、欠損判定部230では、表示部300を制御して、画像データの置き換え前に、「データを置き換えますか?(Yes/No)」の文字を、一次モデルとともに表示する。ユーザによって、「Yes」が選択されると、欠損判定部230は、表示部300を制御して、
図7(C)に示すように、置き換え後の仮想空間、すなわち、二次モデルを表示させるようにする。なお、
図7(A)は、
図5(A)と同一の画像であり、ステレオカメラ400で撮像した画像(の画像データ)の例を示している。
【0055】
一方、ステップS24において、欠損判定部230は、3Dデータの欠損部を含む一次モデルを仮想空間上に表示する。すなわち、欠損判定部230は、欠損部には透明物体が存在しないため、欠損部が存在する一次モデルを仮想空間上に表示するように表示部300を制御する。
【0056】
ステップS25において、欠損判定部230は、ユーザへ通知する。欠損判定部230は、欠損部が存在する一次モデルを表示部300に表示させることで、ユーザへの通知を行ってもよい。なお、欠損判定部230は、ステップS25の処理の後に、
図7(B)及び
図7(C)に示す処理を行ってもよい。この場合、例えば、ユーザは、「データを置き換えますか?」について、「No」を選択し、欠損判定部230は、「No」が選択されたことに応じて、欠損部が存在する一次モデルを表示部300に表示させる。
【0057】
そして、ステップS19において、情報処理システム10は一連の処理を終了する。
【0058】
(第1実施形態における効果)
このように、第1実施形態では、欠損判定部230において、光源からの光線が一次モデル上の物体に衝突するか否かを検知し、光線のうち物体に衝突しない第1光線が存在するとき、第1光線上の経路上に、3Dデータの欠損点が存在すると判定している(例えば
図3)。よって、欠損判定部230では、欠損点のない基準データを用いることなく、3Dデータの欠損を検出することができる。
【0059】
また、欠損判定部230では、第1光線により物体に対して第1衝突点座標が存在せず、かつ、光線のうち第2光線が物体に衝突することで発生する第2衝突点座標が第1衝突点座標周囲に存在するとき、第1光線の経路上に前記欠損点が存在すると判定する(例えば、
図4のステップS20)。このように、欠損判定部230では、周囲の衝突点座標との比較により、欠損点を判定している。そのため、情報処理システム10では、周囲の衝突点座標を比較することなく欠損点の有無を判定する場合と比較して、精度よく欠損点の有無を判定できる。
【0060】
更に、欠損判定部230では、欠損部が存在したとしても、欠損部が存在する位置に、ステレオカメラ400で撮像した透明物体が存在すれば、透明物体の画像データに修正した二次モデルを表示させることができる(ステップS23)。そのため、欠損部が生じても、ユーザによって欠損部を再加工するなどの手間を省くことができる。よって、情報処理システム10では、欠損部が発生することで生じるユーザ負担を抑制させることができる。
【0061】
なお、情報処理システム10において、3Dデータの対象となる現実空間(又は仮想空間)は、閉空間が望ましいが、これに限定されず、開空間であってもよい。例えば、空中に存在する物体の3Dデータの例で説明する。この場合、仮想空間上において、空中部分では光源からの光は衝突点が存在しない。一方、物体そのものに対しては衝突点が存在する場合がある。物体の衝突点に着目して、ある部分に衝突点がなく、その周囲に衝突点があれば、欠損判定部230では、物体については3Dデータの欠損部が存在することを判定できる。一方、空中部分では、その周囲に衝突点が存在しないため、3Dデータの欠損部は存在しないと判定できる。このように、空中部分が存在するような開空間であっても、欠損判定部230では、3Dデータの欠損部を判定できる。
【0062】
(第1実施形態の変形例1)
次に、第1実施形態の変形例1について説明する。変形例1では、主に、第1実施形態との相違点を中心に説明する。
【0063】
第1実施形態では、欠損判定部230において、透明物体を判定する例について説明した(
図4のS22)がこれに限定されない。例えば、欠損判定部230は、透明物体の判定に代えて、黒色物体の判定を行ってもよい。欠損判定部230では、以下の処理により、黒色物体の判定を行ってもよい。
【0064】
すなわち、欠損判定部230では、欠損部の位置と同じ位置に存在する画像データが全て黒色を表す画素値(例えば、「0」)となっているとき、黒色物体であると判定する(ステップS22でYes)。この場合、欠損判定部230では、3Dデータを修正し、欠損部に黒色物体を含む二次モデルを構築する(ステップS23)。一方、欠損判定部230は、欠損部の位置と同じ位置に存在する画像データが全て黒色を表す画素値とはなっていないとき(ステップS22でNo)、欠損部を含む一次モデルを仮想空間上に表示させる(ステップS24)。
【0065】
(第1実施形態に係る変形例2)
次に、第1実施形態の変形例2について説明する。変形例2では、主に、第1実施形態との相違点を中心に説明する。
【0066】
第1実施形態では、透明物体を判定する例について説明した(
図4のS22)がこれに限定されない。例えば、欠損判定部230は、透明物体の判定に代えて、鏡面物体(又は光沢のある物体)の判定を行ってもよい。欠損判定部230では、例えば、以下の処理により鏡面物体の判定を行ってもよい。
【0067】
すなわち、欠損判定部230では、欠損部の位置と同じ位置に存在する画像データに含まれる画素値が全て所定閾値以下(又は所定閾値以上)のとき、欠損部と同じ位置に、全体的に白く光沢のある画像値を有する画像データ、すなわち、鏡面物体を表す画像データが存在するものとして、鏡面物体が存在すると判定してもよい。この場合、欠損判定部230は、3Dデータを修正し、欠損部に鏡面物体を含む二次モデルを構築する(ステップS23)。一方、欠損判定部230は、欠損部の位置と同じ位置に存在する画像データに含まれる画素値が全て所定閾値以下(又は所定閾値以上)ではないとき、欠損部が存在する一次モデルを仮想空間上に表示させる(ステップS24)。
【0068】
(第1実施形態の変形例3)
次に、第1実施形態の変形例3について説明する。変形例3では、主に、第1実施形態との相違点を中心に説明する。
【0069】
第1実施形態では、処理部200は、情報処理装置であったり、パーソナルコンピュータに含まれたりする例について説明したがこれに限定されない。例えば、処理部200はサーバ500に含まれてもよい。この場合、サーバ500は、クラウドサーバとして、処理部200で行われる機能を、クラウドサーバに接続された機器に提供してもよい。当該機器としては、スマートフォン、タブレット端末、及びパーソナルコンピュータのいずれかであってもよい。当該機器には、表示部300が含まれる。表示部300によって、第1実施形態と同様に、仮想空間上での一次モデル又は二次モデルを表示させることが可能となる。
【0070】
[その他の実施形態]
上述した実施形態に係る各処理をコンピュータに実行させるプログラム(例えば、情報処理プログラム)が提供されてもよい。又は、上述した実施形態に係る各処理を情報処理システム10に実行させるプログラム(例えば、情報処理プログラム)が提供されてもよい。プログラムは、コンピュータ読取り可能媒体に記録されていてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにプログラムをインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD-ROMやDVD-ROM等の記録媒体であってもよい。このような記録媒体は、処理部200に含まれるメモリ240であってもよい。
【0071】
以上、図面を参照して実施形態について詳しく説明したが、具体的な構成は上述のものに限られることはなく、要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。また、矛盾しない範囲で、各実施形態、各動作例、又は各処理を組み合わせることも可能である。
【0072】
(付記)
(付記1)
対象物の3Dデータを取得する3Dデータ取得装置と、
処理部と、を有する情報処理システムであって、
前記処理部は、
前記3Dデータに基づいて、仮想空間上に前記対象物の一次モデルを構築するモデル構築部と、
前記仮想空間上の任意の点に光源を配置し、当該光源から光を放射する光源放射部と、
前記光源から放出される光源の軌跡を取得し、前記光線が前記一次モデル上の物体に衝突するか否かを検出し、前記光線のうち前記物体に衝突しない第1光線が存在するとき、前記第1光線の経路上に前記3Dデータの欠損点が存在すると判定する欠損判定部と、を有する
情報処理システム。
【0073】
(付記2)
前記欠損判定部は、前記第1光線により前記物体に対して第1衝突点座標が存在せず、かつ、前記光線のうち第2光線が前記物体に衝突することで発生する第2衝突点座標が前記第1衝突点座標の周囲に存在するとき、前記第1光線の経路上に前記欠損点が存在すると判定する、
付記1記載の情報処理システム。
【0074】
(付記3)
前記対象物の画像データを取得する撮像装置と、
表示部と、を更に有し、
前記3Dデータ取得装置は、レーザー光を照射して反射光を検出することで前記3Dデータを取得するLiDAR(Light Detection and Ranging)方式の装置であり、
前記欠損判定部は、前記画像データに基づいて、透明物体、黒色物体、及び鏡面状の鏡面物体のいずれかの物体が前記欠損点に存在するか否かを判定し、いずれかの前記物体が前記欠損点に存在しないとき、前記欠損点が存在する前記一次モデルを前記表示部に表示させる、
付記1又は付記2記載の情報処理システム。
【0075】
(付記4)
前記欠損判定部は、前記透明物体、前記黒色物体、及び鏡面状の前記鏡面物体のいずれかの前記物体が前記欠損点に存在するとき、前記欠損点に当該物体が存在する二次モデルを構築し、
前記表示部は、前記二次モデルを表示する、
付記1乃至付記3のいずれかに記載の情報処理システム。
【0076】
(付記5)
前記光源放射部は、前記仮想空間上の全ての物体に光が照射させるように複数の前記光源を設定する、
付記1乃至付記4のいずれかに記載の情報処理システム。
【0077】
(付記6)
前記欠損判定部は、前記複数の光源からの光線の全てが前記仮想空間上の全ての物体に衝突するとき、前記3Dデータの欠損点が存在しないと判定する
付記1乃至付記5のいずれかに記載の情報処理システム。
【0078】
(付記7)
前記欠損判定部は、レイトレーシング法を用いて前記光線の軌跡を取得する、
付記1乃至付記6のいずれかに記載の情報処理システム。
【0079】
(付記8)
3Dデータ取得装置から3Dデータを取得し、前記3Dデータに基づいて仮想空間上に一次モデルを構築するモデル構築部と、
前記仮想空間上の任意の点に光源を配置し、当該光源から光を放射する光源放射部と、
前記光源から放出される光線の軌跡を取得し、前記光線が前記一次モデル上の物体に衝突するか否かを検出し、前記光線のうち前記物体に衝突しない第1光線が存在するとき、前記第1光線の経路上に前記3Dデータの欠損点が存在すると判定する欠損判定部と、を有する
情報処理装置。
【0080】
(付記9)
情報処理システムに、
3Dデータ取得装置から3Dデータを取得し、前記3Dデータに基づいて仮想空間上に一次モデルを構築する処理と、
前記仮想空間上の任意の点に光源を配置し、当該光源から光を放射する処理と、
前記光源から放出される光線の軌跡を取得し、前記光線が前記一次モデル上の物体に衝突するか否かを検出し、前記光線のうち前記物体に衝突しない第1光線が存在するとき、前記第1光線の経路上に前記3Dデータの欠損点が存在すると判定する処理と、を実行させる
情報処理プログラム。
【符号の説明】
【0081】
10 :情報処理システム 100 :3Dデータ取得装置
200 :処理部 210 :モデル構築部
220 :光源放射部 230 :欠損判定部
240 :メモリ 300 :表示部
400 :ステレオカメラ 500 :サーバ
510 :メモリ