以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係るデータ生成装置の構成例および処理例を示す図である。
図1に示すデータ生成装置1は、記憶部1aと処理部1bを有する。記憶部1aは、例えば、データ生成装置1が備える図示しない記憶装置として実現される。処理部1bは、例えば、データ生成装置1が備える図示しないプロセッサとして実現される。
処理部1bは、複数の位置のそれぞれから撮像された撮像画像2a,2b,・・・と、撮像画像2a,2b,・・・に含まれる第1の被写体3aにおける各点の三次元位置を示す第1の三次元データ4aとを取得する(ステップS1)。処理部1bは、取得された撮像画像2a,2b,・・・と第1の三次元データ4aを、記憶部1aに格納する。
現実空間には、撮像画像2a,2b,・・・に写り得る被写体として、上記の第1の被写体3aと、第1の被写体3aからの距離が所定の閾値以下である第2の被写体3bとが存在している。第1の被写体3aは、主たる撮像対象の被写体であり、基本的には取得される撮像画像2a,2b,・・・のすべてに写っている。例えば、撮像画像2a,2b,・・・は、例えば、第1の被写体3aの周囲を周回しながらカメラ5によって第1の被写体3aを複数回撮像することによって取得される。
なお、例えば、現実空間において所定の作業が行われる場合、第1の被写体3aは、作業の対象となる物体に相当する。第2の被写体3bは、第1の被写体3aの周囲に存在する物体に相当する。
第1の三次元データ4aは、例えば、距離センサ(デプスセンサ)を用いてカメラ5の位置から第1の被写体3aまでの距離を複数回計測して得られた計測結果に基づいて、取得される。第1の三次元データ4aを用いることで、仮想空間において、第1の被写体3aの形状を立体的に描画できる。
次に、処理部1bは、取得された撮像画像2a,2b,・・・に基づき、第2の被写体3bにおける各点の三次元位置を示す第2の三次元データ4bを生成し、記憶部1aに格納する(ステップS2)。第2の三次元データ4bは、例えば、取得された撮像画像2a,2b,・・・のうち、第2の被写体3bが写っている複数の撮像画像を用い、それらの撮像画像における第2の被写体3bの特徴点の位置に基づいて算出される。第2の三次元データ4bを用いることで、仮想空間において、第2の被写体3bの形状を立体的に描画できる。
この第2の三次元データ4bが示す各点の三次元位置は、第1の三次元データ4aが示す三次元位置と同一の座標空間における三次元位置を示す。このため、第1の三次元データ4aと第2の三次元データ4bを用いることで、第1の被写体3aの三次元形状と第2の被写体3bの三次元形状との位置関係を、上記の座標空間(仮想空間)上で正確に再現できる。
以上のデータ生成装置1によれば、第1の被写体3aに対応する第1の三次元データ4aしか取得されていない状況でも、撮像画像2a,2b,・・・を用いて第2の被写体3bに対応する第2の三次元データ4bを生成できる。例えば、第2の被写体3bが、距離センサなどを用いてその三次元データを取得できない範囲であるが、第1の被写体3aからの距離が比較的近い位置にある場合が考えられる。このような場合に、データ生成装置1は、撮像画像2a,2b,・・・を用いて第2の被写体3bに対応する第2の三次元データ4bを生成できる。そして、データ生成装置1は、取得された第1の三次元データ4aと、生成された第2の三次元データ4bとを用いて、第1の被写体3aの三次元形状と第2の被写体3bの三次元形状との位置関係を正確に再現した画像を生成し、表示させることができる。
例えば、第1の被写体3aが作業の対象物である場合、第1の被写体3aの三次元形状に加えて、第1の被写体3aの周囲に存在する第2の被写体3bの三次元形状が、作業の現場とは別の場所で、仮想空間の画像として再現される。このとき、画像の閲覧者は、作業の現場とは別の場所において、作業対象である第1の被写体3aと、その周囲に存在する第2の被写体3bとの位置関係を正確に把握できるようになる。したがって、例えば作業の訓練や教育に役立てることができる有用な三次元データを生成できる。
〔第2の実施の形態〕
次に、第2の実施の形態として、図1に示したデータ生成装置1を含む情報処理システムを例示する。
図2は、第2の実施の形態に係る情報処理システムの構成例を示す図である。
図2に示す情報処理システムは、作業現場100の環境を三次元モデル化し、その三次元モデルを用いて、作業現場100の環境を仮想化した仮想空間を示す画像を遠隔地において再現するためのシステムである。図2では、遠隔地としてオフィス200が例示されている。また、この情報処理システムは、サーバ300を含む。サーバ300は、図1に示したデータ生成装置1の一例である。
作業現場100では、作業対象物に対して所定の作業が行われる。例えば、作業者の操作に応じて、クレーンやフォークリフトなどの建設機械によって荷物が昇降され、運搬される。この場合、荷物が作業対象物となる。以下、このような作業現場100での作業対象物に対する作業者の作業を「現場作業」と記載する。
また、作業現場100では、作業対象物やその周囲の環境の三次元形状を計測するための計測作業が、計測者によって行われる。図2に示すように、計測作業用のデバイスとしては、空間認識センサ101、カメラ102および位置・方向センサ103が用いられる。
空間認識センサ101は、作業現場100の空間を三次元的に認識可能なセンサである。このようなセンサとしては、例えば、物体との間のデプス(距離)を計測するデプスセンサがある。デプスセンサは、例えば、赤外線照射装置と赤外線受光装置とを備え、TOF(Time Of Flight)方式などによって画素ごとのデプスを計測する。
カメラ102は、RGB(Red Green Blue)画像を撮像可能なデバイスである。カメラ102は、その位置と方向が空間認識センサ101と可能な限り一致するように配置される。カメラ102によって撮像された画像は、主として、空間認識センサ101の計測結果に基づいて三次元モデル化された物体を、仮想空間上でよりリアルに見せるために使用される。
位置・方向センサ103は、空間認識センサ101およびカメラ102の位置および方向(姿勢)を認識可能なセンサである。このようなセンサとしては、例えば、加速度センサと角速度センサ(ジャイロ)とを組み合わせて用いることができる。また、加速度センサと角速度センサに対して、さらに方位センサが組み合わされてもよい。
作業現場100において、計測者は、例えば、作業対象物の周囲を周回しながら、上記の各センサを用いた計測作業を行う。このとき、複数の箇所において、各センサによるセンサデータが取り込まれる。この計測作業では、上記のように、空間認識センサ101とカメラ102の位置と方向が可能な限り一致するように、作業が行われる。例えば、空間認識センサ101、カメラ102および位置・方向センサ103が搭載されたヘッドマウントユニットを、計測者が頭部に装着した状態で計測作業が行われる。
このようにして得られたセンサデータは、サーバ300に送信される。サーバ300は、受信したセンサデータに基づいて、作業現場100の空間の三次元形状を示す三次元データ301を生成する。三次元データ301は、作業現場100の空間から検出された各特徴点の三次元座標を示す点群データを含む。この点群データは、各特徴点によって生成されるポリゴンの頂点の位置を示すデータであってもよい。なお、点群データは、作業現場100に配置された情報処理機器によって算出されて、サーバ300に送信されてもよい。さらに、三次元データ301は、点群データに基づく各ポリゴンに貼り付けられるテクスチャ画像のデータを含む。テクスチャ画像は、カメラ102によるセンサデータ(すなわち、画像データ)を基に生成される。
一方、オフィス200においては、閲覧者がHMD201を装着している。HMD201には、ディスプレイに加えて、閲覧者の位置と方向を検出するデバイスが搭載され、閲覧者の位置と方向がサーバ300に送信される。サーバ300は、三次元データ301と閲覧者の位置および方向とに基づいて、作業現場100の空間(現実空間)を仮想化した仮想空間を示す画像を描画し、その画像をHMD201に表示させる。
この画像表示では、閲覧者の位置と方向が仮想空間の座標上に関連づけられ、閲覧者の位置と方向の検出結果に基づき、閲覧者の視点から見た仮想空間の状況が画像上に再現される。例えば、三次元モデル化された物体は、閲覧者の位置と方向に応じた位置と姿勢で仮想空間に配置される。また、閲覧者の位置や視線方向が変化した場合、その変化に応じて仮想空間上の物体の位置や姿勢も変化する。これにより、閲覧者は、あたかも作業現場100に実際に存在し、作業現場100で移動しながらその環境を視認しているような体験をすることができる。
このような情報処理システムにより、閲覧者は、作業現場100に実際に赴くことなく、作業現場100の状況を詳しく把握できる。これにより、作業現場100における作業についての教育や訓練を、オフィス200のような作業現場100とは別の場所で閲覧者に受けさせることができる。
また、作業現場100に音声デバイス104が配置されるとともに、HMD201が音声の入出力機能を備えていてもよい。この場合、オフィス200の閲覧者が作業現場100の仮想空間を視認している間、作業現場100の作業者と音声によってコミュニケーションをとることができる。
また、オフィス200においては、それぞれHMD201を装着した複数の閲覧者が、作業現場100の仮想空間の画像を視認してもよい。この場合、サーバ300の処理により、個々の閲覧者のHMD201には閲覧者ごとの位置と方向に応じた画像が表示される。また、サーバ300の処理により、仮想空間の画像上には、他方の閲覧者の位置および方向の検出結果に応じてこの閲覧者を示すアバターが表示されてもよい。
さらに、オフィス200が複数設置されて、各オフィス200においてHMD201を装着した閲覧者が作業現場100の仮想空間の画像を視認してもよい。この場合でも、個々の閲覧者のHMD201には閲覧者ごとの位置と方向に応じた画像が表示される。また、仮想空間の画像上には、他方の閲覧者の位置および方向の検出結果に応じてこの閲覧者を示すアバターが表示されてもよい。さらに、閲覧者同士が音声によってコミュニケーションできるようにしてもよい。
このように、本実施の形態に係る情報処理システムにより、作業現場100の三次元形状が、オフィス200のような遠隔地において仮想的に再現される。これにより、例えば、作業現場100の状況を示す写真や動画像を遠隔地の閲覧者が閲覧する場合と比較して、閲覧者は作業現場100の状況を正確に把握できる。このため、この情報処理システムを遠隔地における現場作業の教育や訓練に用いることで、その教育や訓練の有用性を高めることができる。
図3は、サーバのハードウェア構成例を示す図である。サーバ300は、例えば、図3に示すようなコンピュータとして実現される。図3に示すサーバ300は、プロセッサ311、RAM(Random Access Memory)312、HDD(Hard Disk Drive)313、グラフィック処理装置314、入力インタフェース(I/F)315、読み取り装置316および通信インタフェース(I/F)317を有する。
プロセッサ311は、サーバ300全体を統括的に制御する。プロセッサ311は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはPLD(Programmable Logic Device)である。また、プロセッサ311は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
RAM312は、サーバ300の主記憶装置として使用される。RAM312には、プロセッサ311に実行させるOS(Operating System)プログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM312には、プロセッサ311による処理に必要な各種データが格納される。
HDD313は、サーバ300の補助記憶装置として使用される。HDD313には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィック処理装置314には、表示装置314aが接続されている。グラフィック処理装置314は、プロセッサ311からの命令にしたがって、画像を表示装置314aに表示させる。表示装置としては、液晶ディスプレイや有機EL(Electroluminescence)ディスプレイなどがある。
入力インタフェース315には、入力装置315aが接続されている。入力インタフェース315は、入力装置315aから出力される信号をプロセッサ311に送信する。入力装置315aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置316には、可搬型記録媒体316aが脱着される。読み取り装置316は、可搬型記録媒体316aに記録されたデータを読み取ってプロセッサ311に送信する。可搬型記録媒体316aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
通信インタフェース317は、ネットワーク317aを介して他の装置との間でデータの送受信を行う。
以上のようなハードウェア構成によって、サーバ300の処理機能を実現することができる。
図4は、情報処理システムの各装置が備える処理機能の構成例を示すブロック図である。
まず、図4を用いて、作業現場100で用いられる計測用のセンサの具体例について説明する。作業現場100には、このようなセンサとして、三次元スキャナ110と全天球カメラ120が配置される。
三次元スキャナ110は、デプスセンサ111、慣性計測ユニット(Inertial Measurement Unit:IMU)112および三次元データ計算部113を備える。デプスセンサ111は、図2の空間認識センサ101の機能を実現するデバイスであり、計測対象の物体とのデプス(距離)を画素ごとに検出する。慣性計測ユニット112は、図2の位置・方向センサ103の機能を実現するデバイスであり、加速度センサ、角速度センサ、方位センサを備えて、これらのセンサデータに基づいて三次元スキャナ110の位置と方向を検出する。
三次元データ計算部113は、例えばCPU、DSPなどのプロセッサとして実現される。三次元データ計算部113は、デプスセンサ111と慣性計測ユニット112の検出結果に基づいて、計測対象の空間の三次元モデルを示す点群データを算出する。また、三次元データ計算部113はさらに、点群データに含まれる各特徴点によってポリゴンを生成し、生成されたポリゴンを示すポリゴンデータをサーバ300に出力する。ポリゴンデータには、各ポリゴンの頂点の三次元座標が含まれる。さらに、三次元データ計算部113は、デプスセンサ111によってデプスが計測されるたびに、慣性計測ユニット112による位置と方向の検出結果をサーバ300に出力する。
全天球カメラ120は、図2のカメラ102の機能を実現するデバイスであり、所定の基準方向を中心として360°の方向の画像を撮像し、得られた全天球画像のデータをサーバ300に出力する。全天球カメラ120は、その基準方向がデプスセンサ111の計測方向と一致するように配置される。また、これらのセンサは同じ位置と見なされるように近接して配置される。また、全天球カメラ120による撮像動作は、デプスセンサ111によるデプスの計測動作と同期して行われる。これにより、全天球画像が撮像されたタイミングで慣性計測ユニット112では位置と方向とが検出されることから、検出された位置と方向を全天球画像の撮像時のカメラ位置とカメラ方向としてそれぞれ用いることが可能となる。
上記の三次元スキャナ110と全天球カメラ120は、例えば、ヘッドマウントユニットに搭載される。そして、このヘッドマウントユニットを頭部に装着した計測者によって、計測作業が行われる。この計測作業は、作業現場100に存在する物体のうち、現場作業の対象である作業対象物の三次元データを取得することを主な目的とする。このため、計測者は、作業対象物の周囲において三次元スキャナ110と全天球カメラ120を作業対象物の方向に向けながら、デプスの計測と全天球画像の撮像とを複数回行う。具体的な例としては、計測者は、作業対象物の周囲を移動しながらデプスの計測と全天球画像の撮像とを複数回行う。これにより、各撮像タイミングでの全天球画像のデータと、それらの撮像時における位置と方向のデータと、ポリゴンデータとがサーバ300に送信される。
なお、三次元データ計算部113の処理の少なくとも一部は、サーバ300において実行されてもよい。例えば、三次元データ計算部113の処理のうち、点群データの算出が三次元データ計算部113で実行され、点群データに基づくポリゴンデータの生成がサーバ300で実行されてもよい。あるいは、デプスセンサ111と慣性計測ユニット112の検出結果がサーバ300に送信され、これらの検出結果に基づく三次元データ計算部113の処理がサーバ300で実行されてもよい。
ところで、三次元スキャナ110による計測では、主にデプスセンサ111の性能から、一定以上の精度で三次元形状を計測可能な計測対象との距離の上限値が存在する。計測者による計測作業は、作業対象物がこの距離の上限値以内の範囲に確実に含まれるように行われる。このため、サーバに送信されるポリゴンデータには、作業対象物の三次元形状を示すデータが含まれているが、それより遠い位置に存在する物体の三次元形状を示すデータは含まれない。
そこで、サーバ300は、全天球画像のデータと撮像時の位置および方向のデータとに基づき、作業対象物の周囲に存在し、かつ作業対象物から一定の距離範囲内に存在する物体の三次元形状を計測する。以下、このような物体を「中間背景物」と記載する。サーバ300は、中間背景物の三次元形状を示す三次元データを生成する。
さらに、サーバ300は、仮想空間において、作業対象物から見て中間背景物よりさらに遠くの位置に、作業対象物を中心とする球形の三次元モデルを生成する。そして、サーバ300は、全天球画像のデータに基づき、現実空間における中間背景物より遠い領域の状況を示す画像を、球形の三次元モデルの内面にテクスチャ画像として貼り付ける。これにより、作業現場100の現実空間のほぼ全体についての三次元形状を示す三次元データが得られる。なお、以下の説明では、上記のような球形の三次元モデルの内面を「外周」と記載する。
以下、図4を用いて、サーバ300が備える処理機能について説明する。
サーバ300は、ポリゴンデータ取得部321、画像データ取得部322、対象物データ生成部323、中間背景物データ生成部324、外周データ生成部325、中間背景物位置補正部326、補完処理部327、三次元データ記憶部330および画像データ記憶部340を有する。
ポリゴンデータ取得部321、画像データ取得部322、対象物データ生成部323、中間背景物データ生成部324、外周データ生成部325、中間背景物位置補正部326および補完処理部327の処理は、例えば、プロセッサ311が所定のプログラムを実行することで実現される。三次元データ記憶部330および画像データ記憶部340は、例えば、RAM312やHDD313などのサーバ300が備える記憶装置の記憶領域によって実現される。
ポリゴンデータ取得部321は、三次元スキャナ110の三次元データ計算部113から、三次元スキャンの結果としてのポリゴンデータを受信する。前述のように、このポリゴンデータには、作業対象物の三次元形状を示すデータが含まれる。
画像データ取得部322は、全天球カメラ120から全天球画像のデータを受信し、画像データ記憶部340に格納する。これにより、全天球カメラ120によって撮像された全天球画像341が画像データ記憶部340に保存される。また、画像データ取得部322は、三次元スキャナ110の三次元データ計算部113から、全天球画像341のそれぞれの撮像タイミングにおける位置と方向を示すデータを受信する。画像データ取得部322は、受信した位置と方向のデータを、全天球画像341のそれぞれの撮像時のカメラ位置とカメラ方向とを示すデータとして、全天球画像341に付加して画像データ記憶部340に格納する。
対象物データ生成部323は、画像データ記憶部340に記憶された全天球画像341を用いて、ポリゴンデータ取得部321が取得したポリゴンデータの各ポリゴンに貼り付けるテクスチャ画像を生成する。対象物データ生成部323は、ポリゴンデータにテクスチャ画像のデータが付加されたテクスチャ画像付きポリゴンデータを、対象物データ331として三次元データ記憶部330に格納する。なお、この対象物データ331には、少なくとも作業対象物の三次元形状を示すポリゴンとテクスチャ画像の各データが含まれている。
中間背景物データ生成部324は、画像データ記憶部340に記憶された全天球画像341と、これらに付加されたカメラ位置およびカメラ方向に基づいて、各全天球画像341における中間背景物とカメラ位置との距離を算出する。中間背景物データ生成部324は、算出された距離とカメラ位置およびカメラ方向とに基づいて、中間背景物の三次元モデルを示す点群データを算出する。中間背景物データ生成部324は、算出された点群データに含まれる各特徴点によってポリゴンを生成するとともに、全天球画像341を用いてポリゴンに貼り付けるテクスチャ画像を生成する。中間背景物データ生成部324は、このようにして生成された中間背景物についてのテクスチャ画像付きポリゴンデータを、中間背景物データ332として三次元データ記憶部330に格納する。
外周データ生成部325は、外周(作業対象物を中心とした所定半径の球形三次元モデルの内面)のポリゴンを生成し、画像データ記憶部340に記憶された全天球画像341を用いて、外周のポリゴンに対応するテクスチャ画像を生成する。外周データ生成部325は、このようにして生成された外周についてのテクスチャ画像付きポリゴンデータを、外周データ333として三次元データ記憶部330に格納する。
中間背景物位置補正部326は、現実空間における作業対象物と中間背景物との距離に応じて、仮想空間における中間背景物の位置を補正する。
補完処理部327は、現実空間の三次元形状のうち、対象物データ331、中間背景物データ332、外周データ333のいずれによっても表されない三次元形状を補完し、補完された三次元形状を示すデータを出力する。この補完処理により、例えば、作業対象物と中間背景物との間の領域や、中間背景物と外周との間の領域の三次元形状を示すデータが、簡易的に生成される。補完処理部327は、これらの領域についてのテクスチャ画像付きポリゴンデータを、補完データ334として三次元データ記憶部330に格納する。
このようにして、三次元データ記憶部330には、作業現場100の環境を仮想空間に再現するためのデータが記憶される。三次元データ記憶部330に記憶されるこれらのデータが、図2の三次元データ301に相当する。
次に、図5、図6を用いて、作業現場100の例について説明する。
図5は、作業現場の例を示す斜視図である。また、図6は、作業現場の例を示す平面図である。図5、図6に示すように、作業現場100には、物体131~136が存在する。これらのうち、物体131が、現場作業の対象となる作業対象物である。物体132,133は、物体131から比較的近くに位置している。一方、物体134~136は、物体132,133と比較して、物体131から遠くに位置している。
図7は、計測者による計測作業について説明するための図である。
図7の左側に示すように、作業現場100において、三次元スキャナ110と全天球カメラ120とを備えたヘッドマウントユニットを頭部に装着した計測者は、作業対象物である物体131の方を見ながら、矢印141に示すように物体131の周囲を周回する。計測者は、その周回中にデプスの計測と全天球カメラ120の撮像とを略一定の間隔を置いて複数回行う。また、計測者は、例えば、ヘッドマウントユニットの高さや角度を変えながら、物体131の周囲を複数回周回して上記の計測を行ってもよい。
三次元スキャナ110の三次元データ計算部113は、各計測位置で計測されたデプス、位置および方向に基づいて、デプスを計測可能な範囲における現実空間の三次元モデル331aの点群データを算出する。三次元データ計算部113は、算出された点群データに含まれる各特徴点によってポリゴンを生成し、生成されたポリゴンを示すポリゴンデータをサーバ300に出力する。図7の右上では、生成されたポリゴンの集合としての三次元モデル331aを示している。なお、ポリゴン(パッチ)の形状は、図7の例のように四角形でなくてもよく、例えば三角形などの他の形状の多角形であってもよい。
このようにして三次元スキャナ110によって生成されたポリゴンによる三次元モデル331aは、作業対象物である物体131の三次元形状を含んでいる。そこで、以下の説明では、三次元スキャナ110によって生成されたポリゴンを、単に「作業対象物のポリゴン」と記載する。
一方、全天球カメラ120は、図7の右下に示すように、上記の各計測位置で撮像された全天球画像341a,341b,・・・を、サーバ300に出力する。前述のように、サーバ300では、画像データ取得部322の処理により、全天球画像341a,341b,・・・のそれぞれに対して、撮像時のカメラ位置とカメラ方向とが対応付けられる。
次に、図8~図10を用いて、対象物データ331の生成処理について説明する。
図8は、ポリゴンに対応するテクスチャ画像の生成について説明するための図である。前述のように、対象物データ生成部323は、画像データ記憶部340に記憶された全天球画像341を用いて、ポリゴンデータ取得部321が取得したポリゴンデータの各ポリゴンに貼り付けるテクスチャ画像を生成する。
具体的には、対象物データ生成部323は、ポリゴンを1つ選択し、そのポリゴンの各頂点の三次元座標に基づいて、ポリゴンの表面(ポリゴン面)の法線ベクトルを算出する。図8では例として、三次元モデル331aのポリゴンの中からポリゴン151が選択され、ポリゴン151のポリゴン面の法線ベクトルVが算出されている。
また、対象物データ生成部323は、画像データ記憶部340に記憶された全天球画像341の中から、ポリゴン151のポリゴン面が写っている全天球画像341を選択する。対象物データ生成部323は、ポリゴン面の中心から、選択された全天球画像341のそれぞれのカメラ位置に対するベクトルを算出する。図8の例では、カメラ位置152aに対するベクトルVaと、カメラ位置152bに対するベクトルVbと、カメラ位置152cに対するベクトルVcとが算出されている。
対象物データ生成部323は、算出されたベクトルVa,Vb,Vcの中から、法線ベクトルVとの間で方向の差が最小のベクトルを選択する。対象物データ生成部323は、選択されたベクトルに対応する全天球画像341を特定し、特定された全天球画像341におけるポリゴン151の領域の画像を、ポリゴン151に対応するテクスチャ画像とする。
このような処理がすべてのポリゴンについて実行されることで、各ポリゴンに対してテクスチャ画像が対応付けられる。図8の下側に示すように、仮想空間の画像を表示する際には、各ポリゴンに対応するテクスチャ画像が描画されることで、現実空間での見た目に近いリアルな作業対象物の画像331bが表示される。
図9、図10は、対象物データの生成処理手順を示すフローチャートの例である。
[ステップS11]ポリゴンデータ取得部321は、三次元スキャナ110から、作業対象物のポリゴンデータを受信する。また、画像データ取得部322は、全天球カメラ120から全天球画像のデータを受信するとともに、各全天球画像の撮像時における位置と方向(すなわち、カメラ位置とカメラ方向)を受信する。画像データ取得部322は、各全天球画像のデータを画像データ記憶部340に格納するとともに、カメラ位置とカメラ方向とを対応する全天球画像のデータに付加して画像データ記憶部340に格納する。
[ステップS12]対象物データ生成部323は、作業対象物のポリゴンデータから、ポリゴンを1つ選択する。
[ステップS13]対象物データ生成部323は、画像データ記憶部340に記憶された全天球画像の中から、1つを選択する。
[ステップS14]対象物データ生成部323は、ステップS12で選択されたポリゴンの表面(ポリゴン面)の部分が、ステップS13で選択された全天球画像の中に含まれるかを判定する。この判定は、ステップS12で選択されたポリゴンの各頂点の座標と、ステップS13で選択された全天球画像のカメラ位置およびカメラ方向とに基づいて行われる。対象物データ生成部323は、ポリゴン面の部分が全天球画像に含まれる場合、ステップS15の処理を実行し、含まれない場合、ステップS17の処理を実行する。
[ステップS15]対象物データ生成部323は、ステップS13で選択された全天球画像におけるポリゴン面に対応する部分の画像を、ステップS12で選択されたポリゴンに対応するテクスチャ画像候補としてRAM312に一時的に保存する。このとき、対象物データ生成部323は、テクスチャ画像候補に対して、対応する全天球画像のカメラ位置を付加しておく。
[ステップS16]対象物データ生成部323は、ステップS13で選択された全天球画像から、ステップS15でテクスチャ画像候補として特定された部分の画像を削除する。これにより、全天球画像のデータの中から、削除された部分の画像データが消去される。
[ステップS17]対象物データ生成部323は、画像データ記憶部340の中に、ステップS13で選択されていない全天球画像があるかを判定する。対象物データ生成部323は、未選択の全天球画像がある場合、処理をステップS13に進め、未選択の全天球画像の中から1つを選択する。一方、対象物データ生成部323は、すべての全天球画像が選択済みの場合、ステップS18の処理を実行する。
[ステップS18]対象物データ生成部323は、ポリゴンデータの中に、ステップS12で選択されていないポリゴンがあるかを判定する。対象物データ生成部323は、未選択のポリゴンがある場合、処理をステップS12に進め、未選択のポリゴンの中から1つを選択する。この場合、画像データ記憶部340に記憶されたすべての全天球画像がステップS13で未選択であることを示すように、全天球画像の選択ステータスがリセットされる。一方、対象物データ生成部323は、すべてのポリゴンが選択済みの場合、図10のステップS21の処理を実行する。
以下、図10を用いて説明を続ける。
[ステップS21]対象物データ生成部323は、作業対象物のポリゴンデータから、ポリゴンを1つ選択する。
[ステップS22]対象物データ生成部323は、選択されたポリゴンの各頂点の座標に基づいて、ポリゴン面fの法線ベクトルvを算出する。
[ステップS23]対象物データ生成部323は、図9のステップS15において保存された、選択されたポリゴンに対応するテクスチャ画像候補のそれぞれについて、ポリゴン面fの中心からカメラ位置に対するベクトルを算出する。このカメラ位置とは、図9のステップS15において対応するテクスチャ画像候補に付加された情報であり、このテクスチャ画像候補が抽出された全天球画像のカメラ位置を示す。
[ステップS24]対象物データ生成部323は、ステップS23で算出されたベクトルの中から、ステップS22で算出された法線ベクトルvとの間で方向の差が最小のベクトルを特定する。対象物データ生成部323は、特定されたベクトルに対応するテクスチャ画像候補を、ステップS21で選択されたポリゴンに対応するテクスチャ画像に決定する。
ステップS24の初回実行時には、対象物データ生成部323は、対象物データ331を新規に生成して三次元データ記憶部330に格納する。そして、対象物データ生成部323は、選択されたポリゴンを示すデータと対応するテクスチャ画像を示すデータとを、対象物データ331に含める。ポリゴンを示すデータには、ポリゴンの各頂点の座標データが含まれる。一方、ステップS24の2回目以降の実行時には、対象物データ生成部323は、選択されたポリゴンを示すデータと対応するテクスチャ画像を示すデータとを、既存の対象物データ331に含める。
[ステップS25]対象物データ生成部323は、ポリゴンデータの中に、ステップS21で選択されていないポリゴンがあるかを判定する。対象物データ生成部323は、未選択のポリゴンがある場合、処理をステップS21に進め、未選択のポリゴンの中から1つを選択する。一方、対象物データ生成部323は、すべてのポリゴンが選択済みの場合、対象物データ331の生成処理を終了する。
以上の処理が終了した時点では、すべてのポリゴンを示すデータと、各ポリゴンに対応するテクスチャ画像を示すデータとを含む対象物データ331が、三次元データ記憶部330に保存された状態となる。また、画像データ記憶部340に記憶された全天球画像については、対象物データ331として三次元モデル化された被写体(主に作業対象物)が写っている部分が抜き取られた状態になっている。
次に、図11~図13を用いて、中間背景物データ生成部324による中間背景物データ332の生成処理について説明する。
中間背景物データ生成部324は、まず、画像データ記憶部340に記憶された各全天球画像の方向を揃える。この処理では、各全天球画像を写したカメラの撮像位置(カメラ位置)と撮像方向(方位)が同じになるように、各全天球画像が変換される。この変換処理は、各全天球画像に付加されたカメラ位置とカメラ方向に基づいて、あるいは、全天球画像間のマッチングによって行われる。次に、中間背景物データ生成部324は、変換後の各全天球画像から特徴点を抽出し、全天球画像間での同一特徴点を示す対応点を抽出する。
各全天球画像において、中間背景物に対応する被写体は、作業対象物に対応する被写体より奥側に写っている。このため、中間背景物は、全天球カメラ120のカメラ位置からある程度離れた距離に位置している。そこで、中間背景物データ生成部324は、まず、全天球画像間の特徴点のマッチングによって対応点を抽出する。その後、中間背景物データ生成部324は、次の図11に示す処理により、抽出された対応点の中からカメラ位置に近いと推定されるものを除外し、カメラ位置からある程度離れた距離に位置する対応点だけに絞り込む。
図11は、対応点の絞り込みについて説明するための図である。図11では、カメラ位置161から撮像された画像161aと、カメラ位置162から撮像された画像162aの両方において、被写体上の特徴点163,164が写っているものとする。すなわち、特徴点163,164は、いずれも画像162aと画像163aとの間の対応点として抽出されている。また、カメラ位置161,162から特徴点163までの距離より、カメラ位置161,162から特徴点164までの距離の方が長いものとする。
ここで、通常、カメラ位置が変化すると、撮像された画像における同一の特徴点(対応点)の位置が移動する。カメラ位置の変化量が同じ場合、カメラ位置から特徴点までの距離が長いほど、画像における特徴点の移動量(位置ズレ量)が小さくなる。図11の場合では、画像161a,162aのそれぞれにおける特徴点164の位置の移動量より、画像161a,162aのそれぞれにおける特徴点163の位置の移動量の方が大きい。
そこで、中間背景物データ生成部324は、全天球画像間の対応点の移動量(二次元座標に基づく距離)が所定量以下の場合に、その対応点をそのまま残す一方、移動量が所定量を超える場合、その対応点がカメラ位置に近すぎると判断して、その対応点を除外する。これにより、対応点をカメラ位置からある程度離れた距離に位置するものだけに絞り込むことができる。全天球画像においては、作業対象物やこれに近接する物体の画像部分はすでに抜き取られているものの、このような画像部分の一部が残っている場合、上記の絞り込みによってこのような画像部分から抽出された対応点を除外できる。図11の例では、特徴点164に対応する対応点はそのまま残され、特徴点163に対応する対応点は除外される。
この後、中間背景物データ生成部324は、絞り込まれた対応点の全天球画像における位置と、全天球画像のカメラ位置およびカメラ方向とに基づいて、カメラ位置から対応点までの距離を算出する。ただし、距離の算出精度はカメラ位置から対応点までの距離が長いほど低下する。そこで、中間背景物データ生成部324は、上記の方法で絞り込まれた対応点を、さらにカメラ位置からの距離が一定値以下のものだけに絞り込む。なお、このときに除外された対応点に対応する被写体の特徴点は、外周において描画されることになる。
図12は、対応点までの距離の算出について説明するための図である。図12では、カメラ位置171aから撮像された画像と、カメラ位置171bから撮像された画像の両方に、対応点172が写っているものとする。また、カメラ位置171aとカメラ位置171bとの距離をLとする。さらに、カメラ位置171aとカメラ位置171bとを結ぶ直線と、カメラ位置171aと対応点172とを結ぶ直線とが、角度θaをなすものとする。また、カメラ位置171aとカメラ位置171bとを結ぶ直線と、カメラ位置171bと対応点172とを結ぶ直線とが、角度θbをなすものとする。
なお、距離Lは、カメラ位置171a,171bのそれぞれから撮像された全天球画像に付加されたカメラ位置に基づいて算出される。また、角度θa,θbは、カメラ位置171a,171bのそれぞれから撮像された全天球画像に付加されたカメラ位置およびカメラ方向に基づいて算出される。
中間背景物データ生成部324は、距離Lと角度θa,θbを用いて、下記の式(1)にしたがってカメラ位置から対応点172までの距離Dを算出する。中間背景物データ生成部324は、算出された距離Dに基づいて、カメラ位置171a,171bのそれぞれから対応点172までの距離を算出する。
D={(sinθa*sinθb)/sin(θa+θb)}*L ・・・(1)
中間背景物データ生成部324は、以上の手順により、対応点が写った全天球画像のカメラ位置と対応点との距離を算出する。中間背景物データ生成部324は、全天球画像に付加されたカメラ位置およびカメラ方向と対応点の距離とに基づいて、対応点の三次元位置を算出する。これにより、中間背景物の点群データが得られる。中間背景物データ生成部324は、さらに、点群データに基づく各ポリゴンに対応するテクスチャ画像を、全天球画像を用いて生成する。これにより、中間背景物についてのテクスチャ画像付きポリゴンデータが生成され、中間背景物データ332として三次元データ記憶部330に格納される。
図13は、中間背景物データの生成処理手順を示すフローチャートの例である。
[ステップS31]中間背景物データ生成部324は、画像データ記憶部340に記憶された各全天球画像の方向を揃える。この処理では、各全天球画像を写したカメラの撮像位置(カメラ位置)と撮像方向(方位)が同じになるように、各全天球画像が変換される。
[ステップS32]中間背景物データ生成部324は、ステップS31で変換された各全天球画像から特徴点を抽出し、全天球画像間での同一特徴点を示す対応点を抽出する。この処理では、多数の特徴点のそれぞれについて、2つ以上の全天球画像の間で対応点が抽出される。また、図9のステップS16の処理により全天球画像からは作業対象物に対応する画像部分が削除されている。そのため、ステップS32では、作業対象物以外の被写体における特徴点だけが抽出される可能性が高くなる。
[ステップS33]中間背景物データ生成部324は、抽出された対応点(すなわち、同一の特徴点)を1つ選択する。
[ステップS34]中間背景物データ生成部324は、全天球画像間での対応点の移動量(二次元座標に基づく距離)を算出する。この処理では、選択された対応点が写っている全天球画像の組み合わせごとに、対応点の移動量が算出される。なお、例えば、移動量の計算のためにある全天球画像に対して組み合わされる他の全天球画像としては、カメラ位置間の距離が最短のもののみが選択されればよい。
[ステップS35]中間背景物データ生成部324は、算出された移動量が所定の閾値TH1以下かを判定し、閾値TH1以下の場合はステップS36の処理を実行し、閾値TH1を超える場合はステップS38の処理を実行する。
この判定では、例えば、対応点が写っている全天球画像の組み合わせごとに算出された移動量の平均値が算出され、平均値が閾値TH1以下の場合に「移動量が閾値TH1以下」と判定される。あるいは、全天球画像の組み合わせごとに算出された移動量のうちの最長値が閾値TH1以下の場合に、「移動量が閾値TH1以下」と判定されてもよい。
[ステップS36]中間背景物データ生成部324は、対応点が写っている全天球画像のカメラ位置と対応点との距離を、上記の式(1)を用いて算出する。中間背景物データ生成部324は、カメラ位置からの対応点の距離が閾値TH2以下かを判定し、閾値TH2以下の場合はステップS37の処理を実行し、閾値TH2を超える場合はステップS38の処理を実行する。
この判定では、例えば、対応点が写っている全天球画像ごとに算出された対応点との距離の平均値が算出され、平均値が閾値TH2以下の場合に「距離が閾値TH2以下」と判定される。あるいは、全天球画像ごとに算出された距離のうちの最長値が閾値TH2以下の場合に、「距離が閾値TH2以下」と判定されてもよい。
[ステップS37]中間背景物データ生成部324は、対応点が写っている全天球画像ごとに算出された距離と、各全天球画像に付加されたカメラ位置およびカメラ方向とに基づいて、対応点の三次元座標を算出する。中間背景物データ生成部324は、対応点の三次元座標をRAM312に一時的に保存する。
[ステップS38]中間背景物データ生成部324は、ステップS33で選択されていない対応点があるかを判定する。中間背景物データ生成部324は、未選択の対応点がある場合、処理をステップS33に進め、未選択の対応点の中から1つを選択する。一方、中間背景物データ生成部324は、すべての対応点を選択済みの場合、ステップS39の処理を実行する。
上記のステップS33~S38の処理により、抽出された対応点のうち、カメラ位置から略一定の距離d1以上離れており、かつ、その距離d1より長い距離d2(閾値TH2に相当)以内の位置に存在する対応点が特定される。したがって、閾値TH1,TH2は、カメラ位置からの距離が上記の条件を満たすような対応点が特定されるように、設定される。
距離d1としては、三次元スキャナ110が一定以上の精度で三次元形状を計測可能な距離の上限値に設定可能である。この上限値は、デプスセンサ111が一定以上の精度でデプス(距離)を計測可能な距離の上限値ということもできる。この距離d1と、計測者が計測のために作業対象物を周回する際に作業対象物からどの程度離れるか、どのような間隔でデプスの計測および全天球カメラの撮像を行うかという条件とから、閾値TH1が決定されればよい。
一方、閾値TH2は、作業対象物の位置(例えば、その重心)からどの程度離れている物体を作業対象物として検出するかによって決定されればよい。これは、例えば、作業対象物に対して作業を行う際に、作業対象物からどのような距離に位置する物体がその作業に影響を与えるかによって決まる。
なお、このような点を考慮すると、ステップS35,S36では、作業対象物の位置からの対応点の距離がd1以上d2以下(ただし、d1<d2)であるか否かを擬似的に判定している、と見なすことができる。
[ステップS39]中間背景物データ生成部324は、ステップS37でRAM312に保存された各対応点の三次元座標、すなわち中間背景物の点群データに基づいて、中間背景物のポリゴンを生成する。
[ステップS40]中間背景物データ生成部324は、画像データ記憶部340に記憶された全天球画像を用いて、生成された各ポリゴンに貼り付けるテクスチャ画像を決定する。この決定処理は、各ポリゴンについて図10のステップS21~S25の処理を実行することで実行可能である。中間背景物データ生成部324は、各ポリゴンを示すデータにテクスチャ画像のデータを付加したテクスチャ画像付きポリゴンデータを、中間背景物データ332として三次元データ記憶部330に格納する。
次に、図14、図15を用いて、外周データ生成部325による外周データ333の生成処理について説明する。
図14は、外周の三次元形状の例を示す図である。図14に示すように、外周データ生成部325は、仮想空間において、作業対象物の三次元モデル331c上の所定の基準点331dを中心とした所定の半径Rを有する球形の三次元モデルを生成し、その内面を外周333aとする。基準点331dは、例えば、作業対象物の三次元モデル331c(正確には、対象物データ331に基づく三次元モデル)の重心、あるいは、この三次元モデル331cと地表面とが接している領域の中心として設定される。
半径Rは、外周333aが作業対象物の三次元モデル331cの外縁部から所定の距離(例えば、50m)だけ離れるように設定される。また、半径Rは、基準点331dを中心として上記の中間背景物が抽出される距離の上限値(すなわち、図13で説明した距離d2)より所定値だけ大きくなるように設定される。
外周データ生成部325は、外周333aの三次元モデルに基づくポリゴンを生成し、画像データ記憶部340に記憶された全天球画像を用いて、各ポリゴンに貼り付けるテクスチャ画像を生成する。外周データ生成部325は、このようにして生成された外周についてのテクスチャ画像付きポリゴンデータを、外周データ333として三次元データ記憶部330に格納する。
図15は、外周データの生成処理手順を示すフローチャートの例である。
[ステップS51]外周データ生成部325は、仮想空間において、作業対象物の三次元モデル上の基準点を中心とした所定の半径を有する球形の三次元モデルを生成する。外周データ生成部325は、生成された三次元モデルの点群データに基づき、球形の内面のポリゴン(すなわち、外周のポリゴン)を生成する。
[ステップS52]外周データ生成部325は、図13のステップS31と同様の手順で、画像データ記憶部340に記憶されている各全天球画像の方向を揃える。この処理では、各全天球画像を写したカメラの撮像位置(カメラ位置)と撮像方向(方位)が同じになるように、各全天球画像が変換される。
[ステップS53]外周データ生成部325は、方向が揃えられた全天球画像を用いて、外周の各ポリゴンに貼り付けるテクスチャ画像を決定する。
この処理では、外周データ生成部325は、ステップS52で方向が揃えられる際に基準となった全天球画像(方向が変更されなかった全天球画像)のカメラ位置とカメラ方向を特定する。このカメラ方向は、方向が揃えられた後の全天球画像のそれぞれのカメラ方向を表している。外周データ生成部325は、特定されたカメラ位置とカメラ方向に基づいて、全天球画像における各ポリゴンに対応する画像領域を、全天球画像ごとに特定する。外周データ生成部325は、ポリゴンごとに、各全天球画像から特定された画像領域のデータの論理和(OR)を計算し、その結果として算出された画像をポリゴンに対応するテクスチャ画像に決定する。
図9のステップS16および図13のステップS40の処理により、全天球画像からは作業対象物および中間背景物に対応する画像部分が削除されている。そのため、ステップS53では、全天球画像から作業対象物および中間背景物が写っている部分を抽出して削除することなく、これら以外の被写体が写っている画像だけを用いてテクスチャ画像を容易に決定できる。
外周データ生成部325は、このようにして生成された外周についてのテクスチャ画像付きポリゴンデータを、外周データ333として三次元データ記憶部330に格納する。
ここで、以上の処理によって生成された対象物データ331、中間背景物データ332および外周データ333を用いて描画した仮想空間の画像の例を、図16に示す。
図16は、仮想空間を描画した画像の例を示す図である。図16に示すように、仮想空間において、対象物データ331に基づいて、作業対象物である物体131を示す三次元モデル131aが描画される。また、中間背景物データ332に基づいて、中間背景物である物体132,133をそれぞれ示す三次元モデル132a,133aが描画される。三次元モデル131a,132a,133aは、テクスチャ画像付きの状態で表示される。一方、作業対象物から遠方にある物体134~136をそれぞれ示す像134a~136aは、外周333b(すなわち、球体の内面)に画像として貼り付けた状態で描画される。
三次元モデル131a,132a,133aは、それぞれ三次元データに基づいて描画されるので、視点の位置と方向、すなわち閲覧者の位置と方向に応じた位置と角度で表示される。したがって、閲覧者は、三次元モデル131aと三次元モデル132a,133aとの位置関係、すなわち、仮想空間での作業対象物と中間背景物との位置関係を、比較的正確に把握できる。また、外周333bに描画される物体も、視点の位置と方向に応じた位置と角度で表示される。しかし、作業対象物と中間背景物との位置関係と比較して、作業対象物と外周333bにおける物体の像との位置関係の精度は低い。したがって、外周333bの描画は、作業対象物から遠方における状況を、距離の算出などを伴わない軽負荷の処理によって簡易的に描画して、作業現場の雰囲気を再現することを目的として行われる。
ここで、本実施の形態に係る情報処理システムを現場作業の訓練や教育に利用する場合、直接的な作業対象となる作業対象物だけでなく、その周囲に存在する物体の位置や形状を把握できる方が好ましい場合がある。例えば、クレーンを操作して荷物(作業対象物)を昇降させる作業を行う場合に、クレーンの稼働範囲内に存在する荷物以外の物体との接触を防ぐためには、荷物の位置や形状を認識できるだけでは不十分である。この作業では、荷物の昇降場所の周囲の状況をできるだけ詳しく、立体的に認識できることが好ましい。
このような目的を達成する方法としては、三次元スキャナ110などの空間認識センサ101として、一定以上の精度で三次元形状を計測可能な距離の上限値が大きいものを使用する方法が考えられる。しかし、この方法では、計測用の高性能で高価なデバイスが必要となり、コストが増大してしまう。一方、周囲の状況をすべて外周333bに描画する方法では、閲覧者が移動したときに作業対象物とその周囲の物体との位置関係の再現性が低く、現場作業の訓練や教育における有用性が低下してしまう。
このような問題に対して、サーバ300の上記処理によれば、全天球カメラ120などのカメラ102を用いて撮像された画像を用いて、作業対象物の周囲に存在する中間背景物の三次元形状が計測される。これにより、空間認識センサ101として、最低限、作業対象物を含む範囲のみ三次元形状を計測可能な比較的低コストのデバイスを用いて、作業対象物の周囲の状況を立体的に認識できる。中間背景物の計測精度は、専用の空間認識センサ101を用いて計測された作業対象物の計測精度より低くなる可能性がある。しかし、中間背景物は、仮想空間において作業者に対応する閲覧者のすぐ近くに存在する物体ではないので、作業対象物ほど三次元形状や位置が正確に再現されなくてもよい。すなわち、サーバ300の処理により、閲覧者は、作業の訓練や教育のための有用性が十分得られる範囲で、作業対象物とその周囲の物体との位置関係を、立体的に認識できるようになる。
一方、作業対象物から中間背景物よりさらに遠くの物体については、外周333bにおいて簡易的に描画される。これにより、三次元データの算出や三次元モデルの描画の際の処理負荷を軽減しつつ、作業現場から遠くの状況を閲覧者に認識させ、仮想空間の画像のリアリティを高めることができる。
なお、対象物データ331を用いて描画される物体としては、作業の対象となる物体だけでなく、作業に使用される機材が含まれてもよい。例えば、クレーンを用いた作業の場合、クレーンの操作パネルや操作レバー、これらが設置された操作室などの三次元形状が、対象物データ331としてデータ化され、この対象物データ331を用いて描画されてもよい。
次に、図17、図18を用いて、中間背景物位置補正部326による中間背景物の位置補正処理について説明する。
図17は、中間背景物の位置補正処理で用いられる変換グラフの例を示す図である。外周の半径を、作業対象物の位置から中間背景物が検出される上限の距離より短く設定することができる。その場合、中間背景物位置補正部326は、仮想空間における作業対象物から中間背景物の各特徴点までの距離を、外周の半径以内に変換する。
図17は、このような変換で用いられる変換グラフの一例である。図17のグラフによれば、作業対象物の基準点(図14の基準点331dに相当する位置)から中間背景物の各特徴点までの現実空間における0m~1000mの距離が、仮想空間における0m~50mの距離に変換される。このとき、現実空間における距離を仮想空間の距離にリニアに変換するのでなく、図17の例のように現実空間の距離が長いほど変換の倍率を低くすることで、仮想空間において中間背景物を自然に見せることができる。
図18は、中間背景物の位置補正の処理手順を示すフローチャートの例である。
[ステップS61]中間背景物位置補正部326は、中間背景物が複数検出されている場合、それらの中から中間背景物を1つ選択する。
[ステップS62]中間背景物位置補正部326は、中間背景物データ332に基づき、選択された中間背景物におけるポリゴンの頂点(特徴点)を1つ選択する。
[ステップS63]中間背景物位置補正部326は、選択された頂点と、作業対象物の基準点との距離を算出する。基準点としては、図14に示した基準点331dを用いることができる。
[ステップS64]中間背景物位置補正部326は、図17に示したグラフにしたがい、算出された距離を変換する。中間背景物位置補正部326は、変換後の距離に応じて、選択された頂点の仮想空間における座標を変換する。すなわち、この変換では、選択された頂点と作業対象物の基準点との距離が、変換後の距離になるように、選択された頂点の座標を変換する。
[ステップS65]中間背景物位置補正部326は、選択された中間背景物におけるポリゴンの頂点の中に、ステップS62で未選択の頂点があるかを判定する。中間背景物位置補正部326は、未選択の頂点がある場合、処理をステップS62に進め、未選択の頂点を1つ選択する。一方、中間背景物位置補正部326は、すべての頂点を選択済みの場合、ステップS66の処理を実行する。
[ステップS66]中間背景物位置補正部326は、ステップS61で未選択の中間背景物があるかを判定する。中間背景物位置補正部326は、未選択の中間背景物がある場合、処理をステップS61に進め、未選択の中間背景物を1つ選択する。一方、中間背景物位置補正部326は、すべての中間背景物を選択済みの場合、処理を終了する。
次に、図19~図22を用いて、補完処理部327による三次元形状の補完処理について説明する。
図19は、仮想空間における三次元形状の補完領域について説明するための図である。図19Aは、仮想空間の平面図を示し、図19Bは、仮想空間の側面図を示す。
ここまでの処理で、対象物データ331、中間背景物データ332および外周データ333が生成されている。これにより、仮想空間において作業対象物、中間背景物および外周を描画できる状態となっている。図19の例では、作業対象物の三次元モデル131a、中間背景物の三次元モデル132a,133a、外周333bが描画されている。
しかし、このままでは、作業対象物と中間背景物との間や、中間背景物と外周との間に、三次元モデルが生成されていないために何も描画されない領域(データ不足領域)が発生し得る。図19の例では、データ不足領域334aを網掛けで示しており、このデータ不足領域334aで何も描画されない。そこで、補完処理部327は、現状で生成済みの対象物データ331、中間背景物データ332および外周データ333を用いて、上記のようなデータ不足領域334aの三次元モデルを簡易的に生成する。
図20は、三次元形状の補完処理についての第1の例を示す図である。図20は、仮想空間の側面図の例を示している。作業対象物の三次元モデル131aと中間背景物の三次元モデル132aとの間にデータ不足領域334bが存在し、中間背景物の三次元モデル132aと外周333bとの間にデータ不足領域334cが存在している。
補完処理部327は、作業対象物の三次元モデル131aにおける外側(三次元モデル131aの基準点に対する外側)の端部131bを通る垂線L1を引き、その端部131bから垂線L1に対して45°外側に傾けた直線L2を引く。また、補完処理部327は、中間背景物の三次元モデル132aにおける内側の端部132cを通る垂線L3を引き、その端部132cから垂線L3に対して45°内側に傾けた直線L4を引く。
そして、補完処理部327は、直線L2と直線L4で挟まれた領域においてこれらの交点P1の側に湾曲するように端部131bと端部132cとをなだらかに結ぶ曲線L5を生成する。補完処理部327は、曲線L5を通る曲面を示す三次元モデルを生成する。これにより、データ不足領域334bの三次元形状が補完される。
また、データ不足領域334cについても同様の補完処理が行われる。補完処理部327は、中間背景物の三次元モデル132aにおける外側の端部132dを通る垂線L6を引き、その端部132dから垂線L6に対して45°外側に傾けた直線L7を引く。また、補完処理部327は、外周333bにおける最も外側の端部333c(基準点を通る平面と外周との交点)を通る垂線L8を引き、その端部333cから垂線L8に対して45°内側に傾けた直線L9を引く。
そして、補完処理部327は、直線L7と直線L9で挟まれた領域においてこれらの交点P2の側に湾曲するように端部132dと端部333cとをなだらかに結ぶ曲線L10を生成する。補完処理部327は、曲線L10を通る曲面を示す三次元モデルを生成する。これにより、データ不足領域334cの三次元形状が補完される。
補完処理部327はさらに、曲線L5,L10をそれぞれ通る曲面の三次元モデルに対して貼り付けるテクスチャ画像を生成する。テクスチャ画像は、例えば、曲線の両端部の色を用い、一端から他端まで前者の色から後者の色に徐々に変化していくようなグラデーション画像として生成される。例えば、曲線L5を通る曲面の三次元モデルには、端部131bから端部132cに対し、端部131bの色から端部132cの色に徐々に変化していくようなグラデーション画像が貼り付けられる。また、曲線L10を通る曲面の三次元モデルには、端部132dから端部333cに対し、端部132dの色から端部333cの色に徐々に変化していくようなグラデーション画像が貼り付けられる。
以上の処理によって生成されたデータ不足領域の三次元モデルを示すテクスチャ画像付きポリゴンデータが、補完データ334として三次元データ記憶部330に格納される。
図21は、三次元形状の補完処理についての第2の例を示す図である。図21は、仮想空間の側面図の例を示している。図20と同様に、作業対象物の三次元モデル131aと中間背景物の三次元モデル132aとの間にデータ不足領域334bが存在し、中間背景物の三次元モデル132aと外周333bとの間にデータ不足領域334cが存在している。
作業現場を含む領域について、緯度・経度データ、標高データおよび航空写真を含む地図データが存在する場合がある。この場合には、地図データを用いてデータ不足領域の三次元形状を補完し、補完された領域のテクスチャ画像を生成できる。
補完処理部327は、データ不足領域334bに対応する緯度・経度データと標高データを用いて、データ不足領域334bのポリゴンを生成する。これにより、データ不足領域334cの三次元形状が補完される。このとき、補完処理部327は、図18に示した変換グラフを用いた方法により、作業対象物の基準点から地図上の各部の位置への距離を補正する。図21に示す曲線L11は、このようにして生成されたポリゴンの断面を示す。また、補完処理部327は、航空写真におけるポリゴンに対応する部分の画像を、生成されたポリゴンに貼り付けるテクスチャ画像に決定する。
データ不足領域334cについても、上記と同様の手順によって、ポリゴンと対応するテクスチャ画像とが生成される。図21に示す曲線L12は、生成されたポリゴンの断面を示す。補完処理部327は、このようにして生成されたデータ不足領域の三次元モデルを示すテクスチャ画像付きポリゴンデータを、補完データ334として三次元データ記憶部330に格納する。
図22は、三次元形状の補完処理の手順を示すフローチャートの例である。
[ステップS71]補完処理部327は、作業現場を含む領域についての地図データがあるかを判定する。補完処理部327は、地図データがない場合、ステップS72の処理を実行し、地図データがある場合、ステップS73の処理を実行する。
[ステップS72]補完処理部327は、既存のテクスチャ画像付きポリゴンデータ、すなわち、対象物データ331、中間背景物データ332および外周データ333を用いて、データ不足領域の三次元形状を補完する。また、補完処理部327は、グラデーション処理によって、補完された三次元形状のポリゴンに対応するテクスチャ画像を生成する。補完処理部327は、生成されたデータ不足領域の三次元モデルを示すテクスチャ画像付きポリゴンデータを、補完データ334として三次元データ記憶部330に格納する。
[ステップS73]補完処理部327は、地図データに含まれる緯度・経度データと標高データを用いて、データ不足領域の三次元形状を補完する。また、補完処理部327は、地図データに含まれる航空写真を用いて、補完された三次元形状のポリゴンに対応するテクスチャ画像を生成する。補完処理部327は、生成されたデータ不足領域の三次元モデルを示すテクスチャ画像付きポリゴンデータを、補完データ334として三次元データ記憶部330に格納する。
以上説明したサーバ300の処理によって生成された対象物データ331、中間背景物データ332、外周データ333および補完データ334を用いることで、オフィス200における閲覧者が視認する空間全体の環境が、仮想空間上に再現される。対象物データ331と中間背景物データ332によって、作業対象物と中間背景物が立体的に描画され、かつ、それらの位置関係が正確に描画される。また、外周データ333を用いて、遠景の状況が簡易な処理によって描画され、画像のリアリティが高められる。さらに、補完データ334によって、作業対象物、中間背景物、外周以外の領域の画像が簡易的に描画され、何も描画されない不自然な領域をなくすことができる。
したがって、このような仮想空間の描画を現場作業の訓練や教育に利用する場合、空間全体が描画されることで、閲覧者の違和感を軽減できる。また、閲覧者にとって重要な物体のみが立体形状で描画され、それ以外の物体や風景が簡易的に描画される。これにより、描画のための処理負荷が増大することを防止しつつ、閲覧者に対して現場作業の訓練や教育に有用な画像を閲覧させることができる。
なお、上記の各実施の形態に示した装置(例えば、データ生成装置1、サーバ300)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、磁気テープなどがある。光ディスクには、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク(Blu-ray Disc:BD、登録商標)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CDなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。