以下に、実施の形態にかかる情報処理装置、情報処理方法、および情報処理プログラムを図面に基づいて詳細に説明する。
実施の形態1.
図1は、実施の形態1にかかる計測処理システムの構成の一例を示す図である。図1に示すように、実施の形態1にかかる計測処理システム100は、情報処理装置1と、計測車両2とを備える。
計測車両2は、車両本体60と、車両本体60に搭載された計測装置70とを備える。計測装置70は、車両本体60が走行中に周囲に存在する構造物を撮像したり、構造物の3次元形状を計測したりする。図1に示す例では、構造物は、道路4、トンネル5、およびガードレール6などであるが、かかる例に限定されず、例えば、看板、信号機、橋梁などであってもよい。なお、計測車両2の車両本体60は、走行路を走行する車両であり、図1に示す例では、道路4を走行路として走行する自動車であるが、レールを走行路として走行する鉄道車両であってもよい。
計測装置70は、構造物を撮像して得られる画像である撮像画像のデータを含む撮像画像データ、構造物を3次元座標系の複数の3次元点で表す3次元点群のデータを含む3次元点群データを生成する。以下において、構造物を3次元座標系の複数の3次元点で表す3次元点群を構造物の3次元点群または3次元点群と記載する場合がある。
計測装置70は、ネットワーク3を介して情報処理装置1との間でデータの送受信が可能であり、情報処理装置1へネットワーク3を介して撮像画像データおよび3次元点群データなどを送信する。ネットワーク3は、例えば、インターネットなどのWAN(Wide Area Network)であるが、LAN(Local Area Network)であってもよく、その他のネットワークであってもよい。
図2は、実施の形態1にかかる計測車両が備える計測装置の構成の一例を示す図である。図2に示すように、計測車両2が備える計測装置70は、撮像部71と、3次元計測部72と、位置検出部73と、処理部74と、通信部75とを備える。
撮像部71は、車両本体60が走行中に周囲に存在する構造物を撮像し、撮像によって得られる構造物の撮像画像のデータを処理部74へ出力する。撮像部71は、例えば、全天球カメラ、半天球カメラ、またはパノラマカメラであるが、かかる例に限定されない。
全天球カメラは、360度カメラとも呼ばれ、全天球画像のデータを撮像画像のデータとして出力し、半天球カメラは、180度カメラとも呼ばれ、半天球画像のデータを撮像画像のデータとして出力する。パノラマカメラは、例えば、水平360度のパノラマ画像または水平180度のパノラマ画像を撮像画像のデータとして出力する。
3次元計測部72は、車両本体60が走行中に周囲に存在する構造物を計測し、計測して得られる構造物の3次元点群のデータを含む3次元点群データを処理部74へ出力する。3次元計測部72は、例えば、レーザスキャナ装置を含んでおり、かかるレーザスキャナ装置によって得られる計測データから構造物の3次元点群データを生成する。
図3は、実施の形態1にかかる計測車両が備える計測装置の3次元計測部によって計測された構造物の3次元点群の一例を示す図である。図3に示す3次元点群80は、道路4の3次元点群81、トンネル5の3次元点群82、ガードレール6の3次元点群83が含まれる。3次元計測部72から出力される3次元点群データには、3次元点群80を構成する複数の3次元点の各々の座標を示すデータが含まれる。
位置検出部73は、車両本体60が走行中に撮像部71が構造物を撮像したときの計測装置70の位置を検出し、検出した位置のデータである位置データを処理部74へ出力する。位置検出部73は、GNSS(Global Navigation Satellite System)における複数の測位衛星から送信される複数の測位信号を受信し、受信した複数の測位信号に基づいて、計測装置70の位置を検出する。
位置検出部73から出力される位置データは、緯度、経度、および高度の各々のデータを含む。撮像部71の近くに配置されており、位置検出部73によって検出される計測装置70の位置は、撮像部71によって撮像された画像である撮像画像の視点位置として用いられる。
処理部74は、撮像部71から出力される撮像画像のデータと、3次元計測部72から出力される3次元点群データと、位置検出部73から出力される位置データとを取得する。処理部74は、撮像部71から出力される撮像画像のデータと、位置検出部73から出力される車両本体60の位置とに基づいて、撮像画像データを生成する。撮像画像データには、撮像画像のデータと視点位置のデータとが含まれる。
処理部74は、生成した撮像画像データと3次元計測部72から出力される3次元点群データとを通信部75へ出力する。通信部75は無線によってネットワーク3に接続されており、処理部74から取得した撮像画像データおよび3次元点群データを情報処理装置1へネットワーク3を介して送信する。なお、計測装置70と情報処理装置1との間のデータの受け渡しは、記録媒体を用いて行うこともできる。また、3次元点群データは、3次元計測部72から出力される計測データに基づいて処理部74によって生成されてもよい。
図4は、実施の形態1にかかる情報処理装置の構成の一例を示す図である。図4に示すように、情報処理装置1は、通信部10と、入力部11と、表示部12と、記憶部13と、処理部14とを備える。
通信部10は、ネットワーク3に有線または無線によって通信可能に接続され、ネットワーク3を介して、計測装置70、不図示のプリンタ、または端末装置などの外部装置との間で情報の送受信を行う。
入力部11は、例えば、マウスおよびキーボードなどを含むが、タッチパッドであってもよい。表示部12は、例えば、液晶ディスプレイ、有機EL(ElectroLuminescence)ディスプレイ、またはプロジェクタなどである。なお、図4に示す例では、入力部11と表示部12とが情報処理装置1に含まれるが、入力部11および表示部12は、情報処理装置1の外部装置として情報処理装置1に接続されてもよい。
記憶部13は、撮像画像データ記憶部20と、3次元点群データ記憶部21と、特定点データ記憶部22とを含む。撮像画像データ記憶部20は、計測装置70から送信される複数の撮像画像データを含む撮像画像データテーブルを記憶する。
図5は、実施の形態1にかかる情報処理装置の撮像画像データ記憶部に記憶される撮像画像データテーブルの一例を示す図である。図5に示す撮像画像データテーブルは、「対象ID(IDentifier)」、「画像ID」、「視点位置」、および「データファイル」を撮像画像データ毎に含む。
「対象ID」は、計測装置70による計測対象毎に固有の識別情報である。計測対象は、例えば、図1に示すような道路4、トンネル5、およびガードレール6などを含む複数の構造物であるが、道路4、トンネル5、およびガードレール6の各々を互いに異なる計測対象とすることもでき、道路4、トンネル5、およびガードレール6以外の構造物であってもよい。
「画像ID」は、撮像画像毎に固有の識別情報である。「視点位置」は、撮像画像の視点位置であり、緯度、経度、および高度で示される。撮像画像の視点位置は、撮像画像が計測装置70の撮像部71で得られたときの撮像部71の位置または撮像部71の位置に対応する位置である。
「データファイル」は、撮像画像のデータであり、撮像画像に含まれる各画素の色を示す画素データと、視点位置から撮像画像までの距離を示す距離データとを含む。色のデータは、例えば、RGBデータであり、R,G,Bの階調は、例えば、256階調である。データファイルは、例えば、JPEG(Joint Photographic Experts Group)形式またはMP(Multi Picture)4形式などのデータであるが、かかる形式に限定されない。
図5に示す撮像画像データテーブルでは、対象IDが「T001」であり且つ画像ID「IM1001」の撮像画像は、視点位置がP(x1,y1,z1)であり、データファイルが「IMGF1001」である。また、対象IDが「T001」であり且つ画像ID「IM1002」の撮像画像は、視点位置がP(x2,y2,z2)であり、データファイルが「IMGF1002」である。
図4に示す3次元点群データ記憶部21は、計測装置70から送信される複数の3次元点群データを含む3次元点群データテーブルを記憶する。図6は、実施の形態1にかかる情報処理装置の3次元点群データ記憶部に記憶される3次元点群データテーブルの一例を示す図である。
図6に示す3次元点群データテーブルは、「対象ID」および「データファイル」を3次元点群データ毎に含む。「対象ID」は、計測対象毎に固有の識別情報である。「データファイル」は、3次元点群のデータであり、3次元点群に含まれる各3次元点の輝度のデータと位置のデータとを含む。輝度のデータは、例えば、3次元計測部72がレーザスキャナ装置を含む場合、3次元点の反射強度のデータである。位置のデータは、3次元点の位置を示すデータであり、例えば、緯度、経度、および高度のデータを含む。
図6に示す3次元点群データテーブルでは、対象IDが「T001」の3次元点群は、データファイルが「DGF1001」であり、対象IDが「T002」の3次元点群は、データファイルが「DGF1002」である。
図4に示す特定点データ記憶部22は、情報処理装置1の利用者によって指定された撮像画像内の点に対応する3次元点である特定点のデータを記憶する。以下において、情報処理装置1の利用者を単に利用者と記載する場合がある。
図7は、実施の形態1にかかる情報処理装置の特定点データ記憶部に記憶される特定点データテーブルの一例を示す図である。図7に示す特定点データテーブルは、「特定点ID」と「特定点位置」とを特定点毎に含む。「特定点ID」は、計測対象毎に固有の識別情報である。「特定点位置」は、特定点の位置を示すデータであり、特定点の緯度、経度、および高度のデータが含まれる。
図7に示す特定点データテーブルでは、特定点IDが「S001」の特定点は、位置がP(x11,y11,z11)であり、特定点IDが「S002」の特定点は、位置がP(x12,y12,z12)である。
図4に戻って、情報処理装置1の説明を続ける。図4に示す処理部14は、入力受付部30と、データ取得部31と、間引き部32と、表示処理部33と、特定部34と、距離算出部35と、データ出力部36とを備える。
入力受付部30は、利用者による入力部11への入力操作を受け付ける。例えば、入力受付部30は、入力部11を介して利用者からの撮像画像の表示要求を受け付ける。撮像画像の表示要求には、例えば、表示対象となる計測対象の対象ID、視点位置、視線方向、および画角などの情報が含まれる。
また、入力受付部30は、入力部11を介して利用者からの指定操作を受け付ける。指定操作は、撮像画像内の任意の位置を利用者が指定する操作である。以下において、利用者が指定した撮像画像内の位置を指定点と記載する場合がある。また、入力受付部30は、入力部11を介して利用者からの出力要求を受け付ける。
データ取得部31は、計測車両2の計測装置70から送信されネットワーク3を介して通信部10で受信される撮像画像データおよび3次元点群データを通信部10から取得する。データ取得部31は、通信部10から取得した撮像画像データを撮像画像データ記憶部20に記憶されている撮像画像データテーブルに追加し、通信部10から取得した3次元点群データを3次元点群データ記憶部21に記憶されている3次元点群データテーブルに追加する。
また、データ取得部31は、利用者からの撮像画像の表示要求が入力受付部30によって受け付けられた場合、入力受付部30によって受け付けられた表示要求に対応する撮像画像データおよび3次元点群データを記憶部13から取得する。また、データ取得部31は、特定部34によって特定された特定点のデータである特定点データを特定点データ記憶部22に記憶されている特定点データテーブルに追加したり、特定点データテーブルに含まれる特定点データを取得したりする。
間引き部32は、表示要求に応じてデータ取得部31によって取得された3次元点群データに含まれる複数の3次元点の中から一部の3次元点を間引く処理を行う。視点位置は、表示要求に応じてデータ取得部31によって取得された撮像画像データに含まれる視点位置のデータによって特定される。
間引き部32は、例えば、指定点に対応する3次元点である特定点の判定処理に影響を与えないか影響が少ない間引き条件を満たす3次元点の一部または全部を削除することで、3次元点の間引きを行う。特定点の判定処理に影響を与えないか影響が少ない間引き条件は、例えば、視点位置からの距離が予め設定された距離以上離れた位置または3次元点の密集度が予め設定された密集度以上であるといった条件である。
例えば、間引き部32は、表示要求に応じてデータ取得部31によって取得された3次元点群データに含まれる複数の3次元点のうち、視点位置からの距離が予め設定された距離以上離れた位置にある3次元点を削除することで、3次元点の間引きを行う。
また、間引き部32は、表示要求に応じてデータ取得部31によって取得された3次元点群データに含まれる複数の3次元点であって互いに距離が予め設定された距離内に複数の3次元点が存在する場合、これら複数の3次元点の一部を削除することで、3次元点の間引きを行う。なお、間引き部32による3次元点の間引き条件は、特定点の判定処理に影響を与えないか影響が少ない間引き条件であればよく、上述した例に限定されない。
このように、間引き部32は、特定点の判定処理に影響がないまたは少ない3次元点を削除して3次元点の間引きするため、表示処理部33で扱う3次元点の数を低減することができ、表示処理部33での処理負荷を軽減することができる。
なお、間引き部32は、例えば、表示要求に応じてデータ取得部31によって取得された3次元点群データに含まれる複数の3次元点が予め設定された数未満である場合に間引き処理を行わないこともできる。また、間引き部32は、情報処理装置1の処理負荷が予め設定された負荷未満である場合に間引き処理を行わないこともできる。
また、間引き部32は、計測対象に応じて間引き処理を行うか否かの設定データが記憶部13に記憶されている場合、かかる設定データに基づいて、間引き処理を行うか否かを決定することもできる。また、間引き部32は、利用者の設定に応じて間引き処理を行うか否かを決定することもできる。
表示処理部33は、表示要求に応じてデータ取得部31によって取得された撮像画像データおよび3次元点群データに基づいて、2次元画像を生成し、生成した2次元画像を表示部12に表示させる。表示処理部33は、間引き部32で間引き処理が行われた場合、表示要求に応じてデータ取得部31によって取得された3次元点群データに代えて、間引き部32で一部の3次元点の間引き処理が行われた3次元点群データを用いて、2次元画像を生成する。
表示処理部33は、第1の表示処理部40と、第2の表示処理部41と、第3の表示処理部42とを備える。表示処理部33は、動作モードとして、第1のモードと第2のモードとを有する。
動作モードは、利用者によって変更が可能であり、利用者は、入力部11への特定操作を行うことによって、動作モードを変更することができる。この場合、利用者は、動作モードを計測対象毎に設定することもできる。
また、表示処理部33は、3次元点群データに含まれる3次元点の数に応じて動作モードを変更することができる。例えば、表示処理部33は、3次元点群データに含まれる3次元点の数が閾値以下の場合に第1の動作モードで動作し、そうでない場合には、第2の動作モードで動作する。
まず、動作モードが第1のモードである場合の第1の表示処理部40の処理について説明する。動作モードが第1のモードである場合、第1の表示処理部40は、撮像画像データで示される撮像画像と3次元点群データで示される3次元点群とを同一の3次元座標系に配置する。撮像画像は、3次元座標系において、撮像画像データで特定される視点位置を球面中心とし撮像画像データの距離データで特定される距離を半径とする球面状に配置される。また、第1の表示処理部40は、3次元点群の色を無色化して透明にする。
そして、第1の表示処理部40は、同一の3次元座標系に配置した撮像画像と3次元点群とを視点位置から見た画像であって表示要求で特定される画角の2次元画像のデータを生成し、生成した2次元画像のデータを表示部12に出力することで、表示部12に撮像画像を含む2次元画像を表示させる。3次元点群は色が透明にされるため、第1の表示処理部40によって生成される2次元画像において、利用者は3次元点群を視認することができない。以下において、視点位置から見た画像であって表示要求で特定される画角の2次元画像を視点位置から見た2次元画像と記載する場合がある。
図8は、実施の形態1にかかる情報処理装置の第1の表示処理部によって表示部に表示される撮像画像の一例を示す図である。図8に示すように、第1の表示処理部40は、表示部12に撮像画像を含む2次元画像90を表示させることができる。3次元点群は、色が透明にされるため、2次元画像90において、利用者は3次元点群を視認することができない。
次に、動作モードが第2のモードである場合の第1の表示処理部40の処理について説明する。動作モードが第2のモードである場合、第1の表示処理部40は、撮像画像データで示される撮像画像と3次元点群データで示される3次元点群とを同一の3次元座標系に配置し、3次元点群を撮像画像よりも視点位置から遠い位置に移動させる。
図9は、実施の形態1にかかる情報処理装置の第1の表示処理部による3次元点群の移動方法を説明するための図である。図9に示す例では、説明の便宜上、同一の3次元座標系に配置された撮像画像と3次元点群との平面図を示している。図9において、Z軸方向は上下方向であり、Y軸正方向は、視線方向である。
第1の表示処理部40は、撮像画像データに含まれる距離データに基づいて、視点位置から撮像画像までの距離の情報を取得する。なお、第1の表示処理部40は、例えば、3次元座標系に球面状に配置された撮像画像の球面形状から球面の半径を視点位置から撮像画像までの距離として算出することもできる。第1の表示処理部40によって取得または算出される視点位置から撮像画像までの距離は、3次元座標系におけるユークリッド距離であるが、かかる例に限定されない。
第1の表示処理部40は、3次元座標系において、視点位置から3次元点群の各3次元点までの距離が、視点位置から撮像画像までの距離よりも長くなるように、3次元点群を移動させる距離である移動距離を算出する。第1の表示処理部40は、3次元座標系において、図9に示すように、算出した移動距離だけ3次元点群を視点位置からの距離が撮像画像よりも遠くなるように移動させる。これにより、視点位置から見た3次元点群は、撮像画像の裏側になり、視点位置からは視認できない位置になる。
第1の表示処理部40は、同一の3次元座標系に配置した撮像画像と3次元点群とを視点位置から見た2次元画像のデータを生成し、生成した2次元画像のデータを表示部12に出力することで、表示部12に撮像画像を含む2次元画像を表示させる。
視点位置から見た3次元点群は、撮像画像の裏側になるため、第1の表示処理部40によって生成される2次元画像において、利用者は3次元点群を視認することができない。これにより、第1の表示処理部40は、3次元点群を無色化して透明にすることなく、撮像画像のみを利用者に視認させることができる。そのため、第1の表示処理部40は、3次元点群の色情報を変更する処理を行うことがなく、処理負荷を軽減することができる。
第2の表示処理部41は、動作モードが第1のモードである場合、第1の表示処理部40によって撮像画像と同一の3次元座標系に配置された3次元点群に含まれる複数の3次元点のうち特定点と周辺点とを撮像画像と区別可能に強調表示する。強調表示は、例えば、特定点および周辺点の色、大きさ、模様、形状を目立つように変更することによって行われる。
特定点は、特定部34によって特定された3次元点であり、周辺点は、特定点の周辺の3次元点である。特定点の周辺の3次元点は、例えば、特定点から予め設定された距離範囲内にある3次元点である。予め設定された距離範囲は、視点位置からの距離が遠くなればなるほど大きくなるが、視点位置からの距離にかかわらず、同一であってもよい。
第2の表示処理部41は、特定点と周辺点とを撮像画像と区別可能に強調表示した後、同一の3次元座標系に配置した撮像画像と3次元点群とを視点位置から見た2次元画像のデータを生成する。そして、第2の表示処理部41は、生成した2次元画像のデータを表示部12に出力することで、表示部12に撮像画像と強調表示した特定点および周辺点とを含む2次元画像を表示させる。
図10は、実施の形態1にかかる情報処理装置の第2の表示処理部によって表示部に表示される撮像画像の一例を示す図である。図10に示すように、第2の表示処理部41は、撮像画像91と強調表示した特定点93および周辺点94とを含む2次元画像90を表示部12に表示させる。利用者は、入力部11への入力操作によって、カーソル92を移動させて図10に示す2次元画像90上の点を特定することで、第2の表示処理部41に図10に示す2次元画像90を表示部12に表示させることができる。
第2の表示処理部41は、動作モードが第2のモードである場合、第1の表示処理部40によって撮像画像と同一の3次元座標系に配置された3次元点群のうち特定点と周辺点とを第1の表示処理部40による移動前の位置に戻す。そして、第2の表示処理部41は、同一の3次元座標系に配置した撮像画像と3次元点群とを視点位置から見た2次元画像のデータを生成する。このときの3次元点群は、複数の3次元点のうち特定点と周辺点とを元の位置に戻した3次元点群であり、特定点および周辺点以外の3次元点は元の位置に戻されていない。
第2の表示処理部41は、生成した2次元画像のデータを表示部12に出力することで、表示部12に撮像画像と強調表示した特定点および周辺点とを含む2次元画像を表示させる。なお、第2の表示処理部41は、各3次元点が同じ大きさで表示部12に表示されるように、視点位置からの距離に応じて3次元点の大きさを大きくすることができる。
第3の表示処理部42は、距離算出部35によって算出された距離を表示部12に表示させる。例えば、第3の表示処理部42は、距離算出部35によって算出された2つの特定点間の距離である特定点間距離を表示部12に表示させる。
特定点間距離の表示位置は、例えば、2つの特定点間を結んだ線の近くの位置、または距離計測の始点または終点のどちらかの近くの位置などであるが、利用者が容易に視認できる位置であればよく、かかる例に限定されない。距離計測の始点は、後述する第1の特定点であり、距離計測の終点は、後述する第2の特定点である。
図11は、実施の形態1にかかる情報処理装置の第3の表示処理部によって表示部に表示される特定点間距離の一例を示す図である。図11に示すように、第3の表示処理部42は、2つの特定点93間を結んだ直線95と、直線95の近くの位置に配置した特定点間距離96とを撮像画像91に重畳させた2次元画像90を表示部12に表示させることができる。
また、第3の表示処理部42は、距離算出部35によって算出された3つ以上の特定点を利用者の指定順に直線で繋いで形成される線の距離である接続線総距離を表示部12に表示させる。接続線総距離の表示位置は、例えば、3つ以上の特定点を利用者の指定順に直線で繋いだ線の近くの位置、または距離計測の始点または終点のどちらかの近くの位置である。
図12は、実施の形態1にかかる情報処理装置の第3の表示処理部によって表示部に表示される接続線総距離の一例を示す図である。図12に示すように、第3の表示処理部42は、3つ以上の特定点を利用者の指定順に直線で繋いで形成される線97と、線97の近くの位置に配置した接続線総距離98とを撮像画像91に重畳させた2次元画像90を表示部12に表示させることができる。
図4に戻って、情報処理装置1の説明を続ける。処理部14の特定部34は、撮像画像91のうち利用者によって指定された点である指定点が入力受付部30によって受け付けられた場合、3次元点群を構成する複数の3次元点の中から指定点に対応する3次元点を特定する。特定部34は、特定した3次元点のデータを特定点のデータとして特定点データ記憶部22に記憶させる処理をデータ取得部31に実行させる。
特定部34は、例えば、表示処理部33によって撮像画像と3次元群が配置される3次元座標系において、視点位置を視点位置Aとし、指定点を指定点Bとすると、視点位置Aを起点とし指定点Bに向けて直線Lを伸ばしていき、直線Lからの距離が距離d内にある最初の3次元点を特定点として決定する。特定部34は、指定点Bまで直線Lを伸ばしても直線Lからの距離が距離d内にある3次元点が見つからない場合、指定点Bを通過して直線Lをさらに伸ばしていき直線Lからの距離が距離d内にある最初の3次元点を特定点として決定する。
距離dは、パラメータとして設定されるものであり、入力部11への入力操作によって変更可能である。距離dに小さな値を設定することで、直線Lにより近い位置にある3次元点を特定点として絞り込むことができ、一方、距離dを大きな値に設定することで、3次元点が疎な状況で直線Lから多少離れていても特定点として特定することができる。
なお、特定部34は、表示処理部33によって撮像画像と同一の3次元座標系に配置した3次元点の数が多いほど距離dを短くしたり、指定点から予め設定された範囲内の3次元点の数が多いほど距離dを短くしたりすることができる。
図13は、実施の形態1にかかる情報処理装置の特定部による特定点の判定方法の一例を示す図である。図13に示す例では、説明の便宜上、同一の3次元座標系に配置された撮像画像と3次元点群との平面図を示している。図13において、Z軸方向は上下方向であり、Y軸正方向は、視線方向である。
図13に示すように、特定部34は、視点位置Aを起点とし指定点Bを通過する直線Lからの距離が距離d内にあり且つ視点位置Aに最も近い3次元点を特定点として決定する。
また、特定部34は、3次元点群を構成する複数の3次元点の中から指定点に対応する3次元点を新たに特定した場合、新たに特定した3次元点がすでに特定している特定点から予め設定された範囲内であるか否かを判定する。予め設定された範囲は、例えば、すでに特定している特定点から予め設定された範囲、またはすでに特定している特定点を中心とした予め設定された大きさの立方体内の範囲である。
特定部34は、新たに特定した3次元点がすでに特定している特定点から予め設定された範囲内であると判定した場合、すでに特定している特定点であって新たに特定した3次元点が予め設定された範囲内にある特定点を対象特定点とする。
そして、特定部34は、対象特定点のデータを特定点データ記憶部22から消去する処理をデータ取得部31に実行させ、さらに、新たに特定した3次元点のデータを特定点のデータとして特定点データ記憶部22に記憶させる処理をデータ取得部31に実行させる修正処理を行う。かかる修正処理は、特定点データ記憶部22に記憶される特定点の上書きによる処理である。
このように、特定部34は、指定点に対応する3次元点を特定した場合に、上述した対象特定点があると判定すると、対象特定点を特定点から削除して新たな特定点に置き換える修正処理を行う。これにより、特定部34は、すでに特定した3次元点の特定を解除することができ、利用者は、距離測定の対象となる特定点の位置の微調整または特定点の誤りの修正を行うことができ、特定点の修正を容易に行うことができる。そのため、情報処理装置1では、距離測定の精度を向上させることができる。
特定部34は、例えば、クリック操作またはタップ操作が行われた場合に撮像画像91上の位置を指定点として仮特定し、その後、仮特定した指定点をダブルクリック操作またはダブルタップ操作が行われた場合に、仮特定した指定点を本特定することもできる。
第2の表示処理部41は、指定点の仮特定が行われた場合に、特定部34によってすでに特定している特定点のうち仮特定が行われた指定点が予め設定された範囲内にある特定点の色、大きさ、および模様のうちの少なくとも1つを変更することによって特定点の強調表示を行うことができる。これにより、第2の表示処理部41は、指定点の仮特定が行われた場合に、特定部34によってすでに特定している特定点のうち仮特定が行われた指定点が予め設定された範囲内にあって修正対象となっている特定点を利用者に容易に把握させることができる。なお、強調表示の方法はかかる例に限定されない。
特定部34は、新たに指定点に対応する3次元点を特定した場合に、上述した対象特定点がないと判定した場合、新たに特定した指定点に対応する3次元点のデータを特定点のデータとして特定点データ記憶部22に記憶させる処理をデータ取得部31に実行させる登録処理を行う。
図4に示す距離算出部35は、測定モードとして、特定点間距離を算出する特定点間距離測定モードと、接続線総距離を算出する接続線総距離測定モードとを有し、利用者の入力部11への入力操作に応じて選択された動作モードで距離の算出を行う。
距離算出部35は、動作モードが特定点間距離測定モードである場合に、特定点データ記憶部22に記憶されたデータに基づいて、利用者によって指定された2つの点に各々対応する2つの特定点が特定部34によって特定されたか否かを判定する。2つの特定点は、第1の特定点および第2の特定点である。第1の特定点は、最初に利用者に指定された点に対応する特定点であり、第2の特定点は、次に利用者に指定された点に対応する特定点である。
距離算出部35は、第1の特定点および第2の特定点が特定部34によって特定されたと判定した場合、特定部34によって特定された第1の特定点および第2の特定点の座標に基づいて、第1の特定点と第2の特定点との間の距離を算出する。
距離算出部35は、動作モードが接続線総距離測定モードである場合に、特定点データ記憶部22に記憶されたデータに基づいて、利用者によって指定された3つ以上の点に各々対応する3つ以上の特定点が特定部34によって特定されたか否かを判定する。
距離算出部35は、3つ以上の特定点が特定部34によって特定されたと判定した場合、距離算出条件を満たすか否かを判定する。距離算出条件は、表示処理部33によって表示部12に表示されたGUI(Graphical User Interface)ボタンである不図示の距離算出ボタンが利用者の入力部11への入力操作によって操作されるという条件である。
なお、距離算出条件は、上述した例に限定されない。例えば、距離算出条件は、特定部34によって特定された特定点の数が予め設定された数に到達するという条件、または、特定部34によって3つ以上の特定点のうち最後に特定された特定点が特定されてから予め設定された時間が経過するまでに次の特定点がないという条件などであってもよい。
距離算出部35は、動作モードが接続線総距離測定モードである場合、3つ以上の特定点を対応する指定点が利用者に指定された順に直線で結び、それぞれの直線で結ばれた特定点間の距離を算出し、特定点間の距離の総計を接続線総距離として算出する。
例えば、特定点が第1の特定点、第2の特定点、および第3の特定点の3つであり、対応する指定点が指定された順番が第1の特定点、第2の特定点、および第3の特定点の順であるとする。この場合、距離算出部35は、第1の特定点と第2の特定点との間の距離と、第2の特定点と第3の特定点との間の距離とを各々算出し、これらの2つの距離を合計することで接続線総距離を算出する。
このように、距離算出部35は、3つ以上の特定点を指定順に直線で繋ぎ、直線で繋がれた特定点間の距離の総計を接続線総距離として算出することができるため、複雑な距離の計測を行うことができる。
図4に示すデータ出力部36は、入力受付部30によって利用者からの出力要求が受け付けられた場合、特定部34によって判定された特定点の座標を示すデータおよび距離算出部35によって算出された距離を示すデータを含むデータファイルを算出結果データとして出力する。距離算出部35によって算出された距離は、上述した特定点間距離または接続線総距離などである。
データ出力部36から出力される算出結果データは、例えば、csv形式のデータファイルであるが、かかる例に限定されない。例えば、算出結果データは、csv形式以外の形式のテキストデータであってもよく、図11または図12に示すような表示部12に表示される画像をキャプチャして得られるキャプチャ画像のデータなどであってもよい。
データ出力部36は、データ取得部31を介して記憶部13に記憶されたデータを取得し、取得したデータをcsv形式などのデータに整形するデータ整形を行う。例えば、2つの特定点の各々座標と、特定点間距離とをカンマ区切りで繋ぎ合わせたり、3つ以上の特定点の各々座標と、接続線総距離とをカンマ区切りで繋ぎ合わせたりして、データ整形を行う。なお、データ整形は、座標情報と距離情報とを利用者が有用なかたちで利用できる形式に整形できればよく、csv形式のデータ整形に限定されない。
データ出力部36は、例えば、算出結果データを通信部10およびネットワーク3を介して外部装置へ送信することで算出結果データを出力したり、不図示のメモリインタフェイスを介して外部メモリに算出結果データを出力したりすることができる。外部装置は、例えば、端末装置またはプリンタなどであり、外部メモリは、USB(Universal Serial Bus)メモリまたはメモリカードなどである。
つづいて、フローチャートを用いて情報処理装置1の処理部14による処理を説明する。図14は、実施の形態1にかかる情報処理装置の処理部による処理の一例を示すフローチャートである。
図14に示すように、情報処理装置1の処理部14は、表示要求があるか否かを判定する(ステップS10)。処理部14は、表示要求があると判定した場合(ステップS10:Yes)、撮像画像表示処理を行う(ステップS11)。ステップS11の撮像画像表示処理は、図15に示すステップS20~S26の処理であり、後で詳述する。
処理部14は、ステップS11の処理が終了した場合、または表示要求がないと判定した場合(ステップS10:No)、測定モードが特定点間距離測定モードであるか否かを判定する(ステップS12)。
処理部14は、測定モードが特定点間距離測定モードであると判定した場合(ステップS12:Yes)、特定点間距離測定処理を行う(ステップS13)。ステップS13の特定点間距離測定処理は、図16に示すステップS30~S40の処理であり、後で詳述する。
処理部14は、ステップS13の処理が終了した場合、または測定モードが特定点間距離測定モードではないと判定した場合(ステップS12:No)、測定モードが接続線総距離測定モードであるか否かを判定する(ステップS14)。
処理部14は、測定モードが接続線総距離測定モードであると判定した場合(ステップS14:Yes)、接続線総距離測定処理を行う(ステップS15)。ステップS15の接続線総距離測定処理は、図19に示すステップS70~S77の処理であり、後で詳述する。
処理部14は、ステップS15の処理が終了した場合、または測定モードが接続線総距離測定モードではないと判定した場合(ステップS14:No)、出力要求があるか否かを判定する(ステップS16)。
処理部14は、出力要求があると判定した場合(ステップS16:Yes)、出力処理を行う(ステップS17)。ステップS17の出力処理において、処理部14は、例えば、特定部34によって判定された特定点の座標を示すデータおよび距離算出部35によって算出された距離を示すデータを含むデータファイルを算出結果データとして出力する。
処理部14は、ステップS17の処理が終了した場合、または出力要求がないと判定した場合(ステップS16:No)、動作終了のタイミングになったか否かを判定する(ステップS18)。処理部14は、例えば、情報処理装置1の不図示の電源がオフされたと判定した場合または入力部11への動作終了の操作が行われたと判定した場合に、動作終了のタイミングになったと判定する。
処理部14は、動作終了のタイミングになっていないと判定した場合(ステップS18:No)、処理をステップS10へ移行し、動作終了のタイミングになったと判定した場合(ステップS18:Yes)、図14に示す処理を終了する。
図15は、実施の形態1にかかる情報処理装置の処理部による撮像画像表示処理の一例を示すフローチャートである。図15に示すように、処理部14は、記憶部13の撮像画像データ記憶部20から表示要求に応じた撮像画像データを取得し(ステップS20)、記憶部13の3次元点群データ記憶部21から表示要求に応じた3次元点群データを取得する(ステップS21)。
そして、処理部14は、ステップS20で取得した撮像画像データで示される撮像画像とステップS21で取得した3次元点群データで示される3次元点群とを同一の3次元座標系に配置する(ステップS22)。
次に、処理部14は、動作モードが第1のモードであるか否かを判定する(ステップS23)。処理部14は、動作モードが第1のモードであると判定した場合(ステップS23:Yes)、撮像画像と同一の3次元座標系に配置した3次元点群の色を無色化して透明にする(ステップS24)。
また、処理部14は、動作モードが第1のモードでなく第2のモードであると判定した場合(ステップS23:No)、撮像画像と同一の3次元座標系に配置した3次元点群の視点位置からの位置を撮像画像よりも遠くに移動する(ステップS25)。
処理部14は、ステップS24の処理が終了した場合、またはステップS25の処理が終了した場合、2次元画像のデータを生成し、生成した2次元画像のデータを表示部12に出力し(ステップS26)、図15に示す処理を終了する。ステップS26で生成される2次元画像のデータは、同一の3次元座標系に配置した撮像画像と3次元点群とを視点位置から見た2次元画像のデータである。
図16は、実施の形態1にかかる情報処理装置の処理部による特定点間距離測定処理の一例を示すフローチャートである。図16に示すように、処理部14は、利用者の指定操作があるか否かを判定する(ステップS30)。
処理部14は、利用者の指定操作があると判定した場合(ステップS30:Yes)、特定点判定処理を行う(ステップS31)。ステップS31の処理は、図17に示すステップS50~S52の処理であり、後で詳述する。
次に、処理部14は、第1の特定点があるか否かを判定する(ステップS32)。処理部14は、第1の特定点があると判定した場合(ステップS32:Yes)、ステップS31で判定した特定点が第1の特定点から予め設定された範囲内であるか否かを判定する(ステップS33)。
処理部14は、第1の特定点がないと判定した場合(ステップS32:No)、またはステップS31で判定した特定点が第1の特定点から予め設定された範囲内であると判定した場合(ステップS33:Yes)、ステップS31で判定した新たな特定点を第1の特定点にして第1の特定点を修正する(ステップS34)。
また、処理部14は、ステップS31で判定した特定点が第1の特定点から予め設定された範囲内ではないと判定した場合(ステップS33:No)、ステップS31で判定した新たな特定点を第2の特定点に決定する(ステップS35)。
処理部14は、ステップS34の処理が終了した場合、またはステップS35の処理が終了した場合、3次元点群処理を行う(ステップS36)。ステップS36の3次元点群処理は、図18に示すステップS60~S65の処理であり、後で詳述する。
次に、処理部14は、同一の3次元座標系に配置した撮像画像と3次元点群とを視点位置から見た2次元画像であって特定点および周辺点を強調表示した2次元画像のデータを生成し、生成した2次元画像のデータを表示部12に出力する(ステップS37)。
次に、処理部14は、第2の特定点があるか否かを判定する(ステップS38)。処理部14は、第2の特定点があると判定した場合(ステップS38:Yes)、第1の特定点と第2の特定点との間の距離を算出する(ステップS39)。そして、処理部14は、ステップS39で算出した距離を表示部12に表示させる(ステップS40)。
処理部14は、ステップS40の処理が終了した場合、利用者の指定操作がないと判定した場合(ステップS30:No)、または第2の特定点がないと判定した場合(ステップS38:No)、図16に示す処理を終了する。
図17は、実施の形態1にかかる情報処理装置の処理部による特定点判定処理の一例を示すフローチャートである。図17に示すように、処理部14は、動作モードが第1のモードであるか否かを判定する(ステップS50)。
処理部14は、動作モードが第1のモードではなく第2のモードであると判定した場合(ステップS50:No)、3次元点群の位置をステップS25で移動する前の位置に一時的に戻す(ステップS51)。
処理部14は、ステップS51の処理が終了した場合、または動作モードが第1のモードであると判定した場合(ステップS50:Yes)、指定点に対応する3次元点を特定し(ステップS52)、図17に示す処理を終了する。なお、図示していないが、処理部14は、ステップS52が終了した後、3次元点群の位置をステップS25で移動する前の位置に一時的に戻した場合、3次元点群の位置をステップS25で移動した後の位置に戻す。
図18は、実施の形態1にかかる情報処理装置の処理部による3次元点群処理の一例を示すフローチャートである。図18に示すように、処理部14は、動作モードが第1のモードであるか否かを判定する(ステップS60)。
処理部14は、動作モードが第1のモードであると判定した場合(ステップS60:Yes)、特定点からの距離が予め設定された範囲内にある3次元点を周辺点として特定する(ステップS61)。
また、処理部14は、動作モードが第1のモードではなく第2のモードであると判定した場合(ステップS60:No)、3次元点群の位置をステップS25で移動する前の位置に戻す(ステップS62)。そして、処理部14は、特定点からの距離が予め設定された範囲内にある3次元点を周辺点として特定し(ステップS63)、3次元点群のうち特定点および周辺点以外の3次元点をステップS25で移動した位置である移動後の位置に戻す(ステップS64)。
処理部14は、ステップS61の処理が終了した場合、またはステップS64の処理が終了した場合、特定点と周辺点とを着色し(ステップS65)、図18に示す処理を終了する。
図19は、実施の形態1にかかる情報処理装置の処理部による接続線総距離測定処理の一例を示すフローチャートである。図19に示すように、処理部14は、利用者の指定操作があるか否かを判定する(ステップS70)。
処理部14は、利用者の指定操作があると判定した場合(ステップS70:Yes)、特定点判定処理を行う(ステップS71)。ステップS71の処理は、上述したステップS50~S52の処理と同じである。そして、処理部14は、3次元点群処理を行う(ステップS72)。ステップS72の処理は、上述したステップS60~S65の処理と同じである。
次に、処理部14は、同一の3次元座標系に配置した撮像画像と3次元点群とを視点位置から見た2次元画像であって特定点および周辺点を強調表示した2次元画像のデータを生成し、生成した2次元画像のデータを表示部12に出力する(ステップS73)。
次に、処理部14は、3つ以上の特定点があるか否かを判定する(ステップS74)。処理部14は、3つ以上の特定点があると判定した場合(ステップS74:Yes)、距離算出条件を満たすか否かを判定する(ステップS75)。
処理部14は、距離算出条件を満たすと判定した場合(ステップS75:Yes)、特定点を指定順に直線で繋いで形成される線の距離を算出する(ステップS76)。そして、処理部14は、ステップS76で算出した距離を表示部12に表示させる(ステップS77)。
処理部14は、ステップS77の処理が終了した場合、利用者の指定操作がないと判定した場合(ステップS70:No)、3つ以上の特定点がないと判定した場合(ステップS74:No)、または距離算出条件を満たさないと判定した場合(ステップS75:No)、図19に示す処理を終了する。
図20は、実施の形態1にかかる情報処理装置のハードウェア構成の一例を示す図である。図20に示すように、情報処理装置1は、プロセッサ101と、メモリ102と、通信装置103と、入力装置104と、表示装置105と、バス106とを備えるコンピュータを含む。
プロセッサ101、メモリ102、通信装置103、入力装置104、および表示装置105は、例えば、バス106によって互いに情報の送受信が可能である。記憶部13は、メモリ102によって実現される。通信部10は、通信装置103で実現される。入力部11は、入力装置104によって実現される。表示部12は、表示装置105によって実現される。
プロセッサ101は、記録媒体ドライブにセットされた記録媒体から情報処理プログラムを読み出し、読み出した情報処理プログラムをメモリ102にインストールする。記録媒体ドライブは、例えば、CD(Compact Disc)-ROMドライブ、DVD(Digital Versatile Disc)-ROMドライブ、またはUSBドライブであり、記録媒体は、例えば、CD-ROM、DVD-ROM、または不揮発性の半導体メモリなどである。
プロセッサ101は、メモリ102に記憶されたプログラムを読み出して実行することによって、処理部14の機能を実行する。プロセッサ101は、例えば、処理回路の一例であり、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、およびシステムLSI(Large Scale Integration)のうち1つ以上を含む。
メモリ102は、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、およびEEPROM(登録商標)(Electrically Erasable Programmable Read Only Memory)のうち1つ以上を含む。なお、情報処理装置1は、ASIC(Application Specific Integrated Circuit)およびFPGA(Field Programmable Gate Array)などの集積回路を含んでいてもよい。
なお、情報処理装置1は、クライアント装置で構成されてもよく、サーバ装置で構成されてもよく、クライアント装置とサーバ装置とで構成されてもよい。情報処理装置1が2以上の装置で構成される場合、2以上の装置の各々は、例えば、図20に示すハードウェア構成を有する。なお、2以上の装置間の通信は、通信装置103を介して行われる。また、情報処理装置1は、2以上のサーバ装置で構成されてもよい。例えば、情報処理装置1は、処理サーバと、データサーバとで構成されてもよい。
以上のように、実施の形態1にかかる情報処理装置1は、データ取得部31と、第1の表示処理部40と、特定部34と、第2の表示処理部41と、距離算出部35とを備える。データ取得部31は、構造物を撮像して得られる撮像画像のデータと構造物を3次元座標系の複数の3次元点で表す3次元点群のデータとを取得する。第1の表示処理部40は、撮像画像のデータに基づいて、撮像画像を表示部12に表示させる。特定部34は、表示部12に表示された撮像画像のうち利用者によって指定された点に対応する3次元点を複数の3次元点の中から特定する。第2の表示処理部41は、特定部34によって特定された3次元点を撮像画像上に重畳させた状態で表示部12に表示させる。距離算出部35は、利用者によって指定された2つの点に対応する3次元点が特定部34によって特定された場合、特定部34によって特定された2つの点に対応する2つの3次元点間の距離を算出する。これにより、情報処理装置1は、撮像画像内で利用者に指定された点に対応する3次元点を用いて利用者が指定する点間の距離を算出するため、精度よく距離計測を行うことができる。
第2の表示処理部41は、特定部34によって特定された3次元点を撮像画像と区別可能に強調して撮像画像上に重畳させた状態で表示部12に表示させる。これにより、情報処理装置1は、利用者によって指定された点に対応する3次元点を利用者に容易に把握させることができることから、精度よく距離計測を行うことができる。
また、撮像画像は、全天球画像、半天球画像、またはパノラマ画像である。特定部34は、3次元座標系における撮像画像の視点位置と指定された点とを通る直線からの複数の3次元点の各々の距離に基づいて、複数の3次元点の中から指定された点に対応する3次元点を特定する。これにより、情報処理装置1は、精度よく距離計測を行うことができる。
また、第2の表示処理部41は、3次元点群の色を透明にした後、特定部34によって特定された3次元点を着色して表示部12に表示させる。これにより、情報処理装置1は、撮像画像が3次元点群によって視認が困難になることを防止することができるため、精度よく距離計測を行うことができる。
また、第2の表示処理部41は、3次元座標系における撮像画像の位置を3次元点群よりも視点位置から遠い位置に移動させた後、特定部34によって特定された3次元点の位置を移動前の状態に戻すことで特定部34によって特定された3次元点を表示部12に表示させる。これにより、情報処理装置1は、3次元点群の色情報を変更する処理を行うことがなく、処理負荷を軽減することができる。
また、情報処理装置1は、視点位置からの距離または3次元点間の距離に基づいて、複数の3次元点の中から一部の3次元点を間引く間引き部32を備える。特定部34は、間引き部32によって一部の3次元点が間引かれた複数の3次元点の中から利用者によって指定された点に対応する3次元点を特定する。これにより、情報処理装置1は、複雑な距離の計測を行うことができる。
また、特定部34は、利用者によって指定された点に対応する3次元点として新たに特定した3次元点がすでに特定した3次元点からの予め設定された範囲にある場合、すでに特定した3次元点の特定を解除する。これにより、情報処理装置1では、距離測定の精度を向上させることができる。
また、距離算出部35は、利用者によって指定された3つ以上の点に対応する3次元点の座標が特定部34によって特定された場合、特定部34によって特定された3つ以上の点に対応する3次元点を利用者に指定された順に直線で繋いで形成される線の距離を算出する。これにより、利用者は、距離測定の対象となる特定点の位置の微調整または特定点の誤りの修正を行うことができ、特定点の修正を容易に行うことができる。そのため、情報処理装置1では、距離測定の精度を向上させることができる。
また、情報処理装置1は、特定部34によって特定された3次元点の座標を示すデータおよび距離算出部35によって算出された距離を示すデータを含むデータファイルを出力するデータ出力部36を備える。これにより、利用者は、情報処理装置1から出力されるデータファイルを用いて、距離の算出結果の保存または解析を行うことができる。
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。