説明

3次元形状データ処理方法、3次元形状データ処理装置

【課題】3次元形状に対応するデータファイルのサイズを小さく、転送や取り扱いを容易とする。
【解決手段】レーザ光200の走査によって構成される面(走査面)と3次元形状をもつ対象物300との交線上に、各測定点は離散的に存在する。この3次元形状データ処理方法においては、データとして、3次元空間座標の点群データの代わりに、各走査面上における各測定点の平均位置Gの空間的位置、走査面における座標軸U、V軸の方向、各測定点Pn,i(1≦i≦k)についての、走査面での2次元座標(un,i、vn,i)を記録する。ただし、この2次元座標を記録する代わりに、後述する符号化された値を記録することもできる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、3次元形状のデータを取り扱うデータ処理方法、データ処理装置に関する。
【背景技術】
【0002】
カーナビゲーション等においては、2次元情報である地図が主に用いられている。しかしながら、建物や地形の高さも表示した3次元情報が運転者にとってより直感的であるため、より好ましい。一方で、地図上における建物や地形の高さまで情報化した3次元情報(3次元空間座標の点群データ)は、2次元情報と比べて、その取得に労力を要する。
【0003】
特許文献1には、この点群データを取得するために、車両を用いたマッピングシステムを用いることが記載されている。このマッピングシステムにおいては、レーザスキャナ、GPS装置、カメラを設置した車両を走行させることにより、この3次元情報を取得する技術が記載されている。図10は、このマッピングシステムの構成を示す図である。
【0004】
このマッピングシステムにおいては、車両100の位置はGPS装置110によって正確に把握される。一方、レーザスキャナ(第1レーザスキャナ120、第2レーザスキャナ130)は、周囲に向かって発せられたレーザ光の反射光を受光することによって、レーザスキャナから周囲までの距離を測定する。ここで、第1レーザスキャナ120、第2レーザスキャナ130はそれぞれ異なる仰角で対象物(周囲の道路や物体)に向かってレーザ光200を発する。これらのレーザ光をそれぞれ方位角方向に走査することによって、この方向における対象物までの距離情報を得ることができる。
【0005】
各測定点を認識した際のレーザ光200の仰角、方位角がわかれば、測定点のレーザスキャナ10からの相対的位置(相対座標)が算出される。一方、レーザスキャナ10の空間的位置(絶対座標)はGPS装置110等によって認識されるため、測定点の絶対座標が算出される。車両100を移動させると共にレーザ光200の走査を繰り返すことによって、各地点毎にこの距離情報を得ることができ、これより地形の3次元情報を、複数の測定点の絶対座標の集合(点群データ)として得ることができる。
【0006】
ナビゲーションシステム等においては、ある視点からみた地形を立体感のある2次元画像として表示させるが、この表示は、この点群に対応して行われる。第1レーザスキャナ120、第2レーザスキャナ130の2台を用いることによって、より多くの測定点を得ることができ、より正確な3次元情報を得ることができる。しかしながら、測定された点群をある視点から見た2次元画像として表示した場合には、例えば本来は遮蔽されて見えない点も表示されるため、良好な視認性が得られない、すなわち、点群表示による画像が、実際に目視される2次元画像とは大きく異なる場合がある。このため、レーザスキャナのデータ取得と同時にカメラ(第1カメラ140、第2カメラ150)によって得られた撮像データ(画像)もこの3次元情報作成のために補助的に用いられる。
【0007】
得られた点群における各点を結ぶ線によってポリゴンを生成し、このポリゴンに基づいた表示を行わせれば、形状の表面を表現することができるため、より良好な視認性を得ることができる。この場合、ポリゴンを構成する線は、ある1回の走査によって得られた複数の空間点と、次の1回の走査によって得られた複数の空間点とを連結させて得ることが可能である。走査毎に得られる空間点の数は理想的にはレーザスキャナの設定によって決まり、この場合には走査毎の空間点の数は一定となるため、ポリゴンを構成する線は一義的に定まる。しかしながら、実際にはレーザ光の反射データが得られない場合も多く存在するため、走査毎に得られる空間点の数は一定とはならない。このため、ポリゴンを構成する線は一義的に定まらず、適正な組み合わせを推定する操作が必要となる。特許文献1に記載の技術においては、連続した2回の走査によって得られたデータを用いて、こうした場合においても適正なポリゴンを推定する方法を用いている。
【0008】
こうした方法を用いて3次元形状の表示を適正に行うことができるものの、その表示を精密に行うためには、1回の走査毎に測定される空間点の数を多くすることが必須となる。この場合、走査が行われる毎、あるいは車両100等が進行する度に蓄積されるデータ容量は膨大となり、その記憶、転送等は容易ではなくなる。特許文献2に記載の技術においては、上記と同様の構成を飛行体に搭載し、地上にデータを転送している。ここで、レーザスキャナによって得られたデータとして、空間座標の他に、レーザ光の射出角度等、測定条件に関わるデータもこれに対応して保存している。これらのデータファイルを個々に作成し、各データファイルを圧縮処理して、データ容量を小さく変換してから地上に伝送している。
【0009】
こうした技術を用いて、地形に関する3次元情報を小さなデータ容量で精密に表示することができる。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2010−257261号公報
【特許文献2】特開2006−170887号公報
【発明の概要】
【発明が解決しようとする課題】
【0011】
しかしながら、3次元情報に対応する点群データを取り扱う場合には、上記の技術を用いた場合においても、そのデータサイズを充分に小さくすることは困難であった。
【0012】
例えば、特許文献2に記載のように、レーザスキャナと直接接続されたシステムにおいては、レーザスキャナの測定条件(レーザ光の方位角やレーザスキャナの絶対位置等)と実測データ(レーザスキャナから測定点までの距離情報等)を用いることにより、3次元空間座標点の点群データを直接取り扱わずに、実質的にサイズを小さくした3次元情報のデータとして取り扱うことは可能である。しかしながら、実際にこの3次元情報のデータをレーザスキャナから離れたところで取り扱う場合、例えばこのデータをネットワークを介して配信して受信先で様々な態様で使用する場合においては、レーザスキャナに関わるパラメータを用いることは好ましくない。こうした場合においては、レーザスキャナに関わるパラメータは用いずに、最終的に得られた3次元空間座標の点群のデータのみを取り扱うことが有効である。ところが、測定点の点数が多い場合には、この点群データのデータサイズが大きくなるため、これをネットワークを用いて効率的に転送し、3次元形状を充分に高い精度で再現することは困難であった。
【0013】
本発明は、かかる問題点に鑑みてなされたものであり、上記問題点を解決する発明を提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明は、上記課題を解決すべく、以下に掲げる構成とした。
本発明の3次元形状データ処理方法は、レーザスキャナによって計測された対象物の3次元形状に対応する複数の3次元空間座標点の点群を、前記対象物と交差する複数の走査面と対応付けて表示する3次元形状データ処理方法であって、前記複数の3次元空間座標点を、前記対象物と前記走査面との間の交線上に存在する複数の点に対応付け、前記各点を前記各走査面上の2次元座標に対応させて記録した2次元座標点の点群としたデータファイルを、各走査面毎に作成することを特徴とする。
本発明の3次元形状データ処理方法は、前記データファイルに対して符号化による圧縮処理を行うことを特徴とする。
本発明の3次元形状データ処理方法は、前記走査面上の領域4分木によって前記点を符号化して前記データファイルに記録することを特徴とする。
本発明の3次元形状データ処理方法は、前記3次元空間座標点を前記走査面に投影した点を前記点とし、前記3次元空間座標点の前記走査面からの距離を前記データファイルに記録することを特徴とする。
本発明の3次元形状データ処理方法は、前記走査面を、複数の前記3次元空間座標点のデータの中の一群のデータに対する主成分分析を行うことによって設定することを特徴とする。
本発明の3次元形状データ処理方法は、ネットワークを介して、各走査面毎の前記データファイルを配信することを特徴とする。
本発明の3次元形状データ処理装置は、対象物の3次元形状に対応する複数の3次元空間座標点の点群に対応するデータを圧縮する3次元形状データ処理装置であって、前記データを記憶する記憶手段と、前記対象物と交差する複数の走査面を設定し、前記走査面と前記対象物との間の交線上に存在する複数の点の点群によって前記複数の3次元空間座標点の中の一群を対応付け、複数の前記点を前記走査面上の2次元座標に対応させて記録したデータファイルを、各走査面に対応させて作成させるCPUと、を具備することを特徴とする。
本発明の3次元形状データ処理装置において、前記複数の3次元空間座標点の点群は、レーザスキャナによって計測されたことを特徴とする。
本発明の3次元形状データ処理装置において、前記CPUは、作成された前記データファイルに対して符号化による圧縮処理を行うことを特徴とする。
本発明の3次元形状データ処理装置において、前記CPUは、前記走査面上の領域4分木によって前記交点の座標を符号化して前記データファイルに記録することを特徴とする。
本発明の3次元形状データ処理装置において、前記CPUは、前記3次元空間座標点を前記走査面に投影した点を前記点とし、前記3次元空間座標点の前記走査面からの距離を前記データファイルに記録することを特徴とする。
本発明の3次元形状データ処理装置において、前記CPUは、前記走査面を、複数の前記3次元空間座標点のデータの中の一群のデータに対する主成分分析を行うことによって設定することを特徴とする。
本発明の3次元形状データ処理装置において、前記CPUは、利用者からの要求に応じ、ネットワークを介して、各走査面毎の前記データファイルを配信させることを特徴とする。
【発明の効果】
【0015】
本発明は以上のように構成されているので、3次元形状に対応するデータファイルのサイズを小さく、転送や取り扱いを容易とすることができる。
【図面の簡単な説明】
【0016】
【図1】レーザスキャナによって対象物が照射される際の状況を模式的に示す図である。
【図2】走査面毎に得られた測定点を2次元座標で表示した例である。
【図3】2次元座標における測定点を領域4分木で符号化する例を示す図である。
【図4】従来例(a)(b)と本発明の実施の形態の第1の方法(c)におけるデータファイルの構成を示す図である。
【図5】本発明の実施の形態の第2の方法における走査面と測定点との関係を模式的に示す図である。
【図6】本発明の実施の形態の第2の方法におけるデータファイルの構成を示す図である。
【図7】本発明の実施の形態に係る3次元形状データ処理装置の構成を示す図である。
【図8】本発明の実施の形態に係る3次元形状データ処理装置におけるデータファイルの形式を選択するためのフローチャートである。
【図9】本発明の実施の形態に係る3次元形状データ処理装置において、方法2におけるデータファイルを作成するフローチャートである。
【図10】従来のマッピングシステムの構成の一例を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態となる3次元形状データ処理方法について説明する。この3次元形状データ処理方法においては、対象物の3次元形状を再生するためのデータが取り扱われる。
【0018】
図1は、レーザスキャナ10が立体的形状をもった対象物300を照射する際の状況を概念的に示す図である。レーザスキャナ10はレーザ光200を対象物300に向かって一定の仰角で発し、その方位角方向でレーザ光200を走査する。レーザ光200は対象物300の表面(測定点:レーザ光200と対象物300との交点)で反射されて再びレーザスキャナ10に入射するが、この際の入射光と反射光との間の位相差から、レーザスキャナ10から対象物300におけるレーザ光200の測定点までの距離を算出することができる。
【0019】
レーザ光200の仰角、方位角がわかれば、測定点のレーザスキャナ10からの相対的位置(相対座標)が算出される。一方、図10に示されるように、レーザスキャナ10の空間的位置(絶対座標)がGPS装置110等によって認識されれば、対象物300の表面に存在する測定点の3次元空間での絶対座標が算出される。レーザスキャナ10が徐々に移動すると共に走査が繰り返されれば、多数の測定点の絶対座標のデータ(点群データ)が得られる。
【0020】
ここで、対象物300上におけるレーザ光200の走査速度は、一般的にはレーザスキャナ10の移動速度(例えばこれを搭載する車両の移動速度)よりも充分速い。このため、1回の走査で得られる複数の測定点(交点)はレーザ光200によって同時に照射されるものと近似的に考えることができる。このため、実際には上記の3次元の点群データは、レーザ光200の1回の走査毎に構成される走査面上における2次元の点群データが、各走査面毎に集まったものと考えることができる。
【0021】
このため、この3次元形状データ処理方法においては、複数の走査面を想定し、各測定点はこの走査面上に対応するものと考えることができる。以下では、まず、単純に各測定点が走査面上に存在する場合について説明する(第1の方法)。これは、レーザ光200の走査速度が充分に速い場合には、よい近似となることは明らかである。
【0022】
このとき、レーザ光200の走査によって構成される面(走査面)と3次元形状をもつ対象物300との交線上に、各測定点は離散的に存在する。すなわち、各測定点はレーザ光200と対象物300との間の交点となる。n回目の走査によってk個の測定点(交点)Pn,1〜Pn,kが得られるものとし、Pn,iの3次元座標を(xn,i、yn,i、zn,i)、(1≦i≦k)と表示すると、図1において、Pn,1〜Pn,kはn回目の走査面(n個目の走査面)201上に存在し、Pn+1,1〜Pn+1,kはn+1個目の走査面202上に存在する。このため、Pn,1〜Pn,kの各点、Pn+1,1〜Pn+1,kの各点はそれぞれ走査面201、202上の2次元座標で表示することができる。この2次元の座標軸は走査面毎に適宜設定することができる。
【0023】
例えば、図2(a)に示すように、走査面201において、Pn,1〜Pn,kの平均座標をGとし、このGを原点とした直交座標をU、Vとして、Pn,iのこの面上での位置は、U軸、V軸に沿った成分(un,i、vn,i)で表示することができる。U、VはPn,1〜Pn,kを適正に識別できるように設定され、このためには、例えば主成分分析を用いてU、V軸の方向が設定される。Gの3次元座標とU、Vは走査(n)毎に定まるため、各測定点Pn,iの走査面201での2次元座標(un,i、vn,i)が定まれば、各測定点Pn,iの3次元座標における位置(xn,i、yn,i、zn,i)を算出することが可能である。図2(b)に示すように、Pn+1,1〜Pn+1,kについても、同様にGn+1、Un+1、Vn+1を設定することが可能であり、各測定点を2次元表示することが可能である。
【0024】
すなわち、走査面毎に、Gの3次元座標、U、V軸の方向(単位ベクトル)を記録し、各測定点Pn,i(1≦i≦k)については、走査面でのU軸、V軸における2次元座標(un,i、vn,i)を記録しておけば、最終的に、各測定点Pn,iの3次元座標(xn,i、yn,i、zn,i)を算出することが可能である。ここで、走査面自身はU、V軸によって規定される。
【0025】
このため、この3次元形状データ処理方法においては、データとして、3次元空間座標の点群データの代わりに、各走査面上における各測定点の平均位置Gの空間的位置、走査面における座標軸U、V軸の方向、各測定点Pn,i(1≦i≦k)についての、走査面での2次元座標(un,i、vn,i)を記録する。ただし、この2次元座標を記録する代わりに、後述する符号化された値を記録することもできる。すなわち、この3次元形状データ処理方法においては、各走査面上における各測定点の2次元座標を記録したデータファイル(2次元座標点の点群のデータファイル)を作成する。このため、n個目の走査面についてデータファイルDが作成され、n+1個目の走査面についてDとは独立したデータファイルDn+1が作成される。このように、データファイルDは走査面毎に作成される。
【0026】
ここで、データファイルDに対して、圧縮処理が行われ、記憶される。圧縮処理としては、可逆圧縮として通常使用されるLHA、ZIP等、任意の方法を適用することができる。
【0027】
従来は、3次元形状を表示するためのデータを取り扱うに際しては、3次元形状に対応する3次元座標点の点群のデータファイルを用いていた。このデータファイルのサイズは大きくなるため、例えばこれをネットワークを介して配信するような場合には、可逆圧縮処理を行うことが必要となった。これに対して、上記の3次元形状データ処理方法においては、直接取り扱われるのは、走査面毎のデータファイルDnである。特に地形を表示させる場合においては、3次元形状(地形)の全体ではなく、その一部のみが必要となる場合が多い。この場合に、従来は、圧縮されたデータファイルを解凍し、その中から所望の箇所のみを表示させることが必要になる。これに対して、上記の3次元形状データ処理方法においては、所望の箇所に対応するデータファイルのみを処理して復元することにより、所望の箇所のみを表示させることができる。このため、処理を効率的に行うことができる。
【0028】
また、3次元空間座標点の点群データを記憶したデータファイルを取り扱わずに、2次元座標点の点群データを取り扱うことによって、全データの点数が同等であってもデータファイルの全体としてのサイズを小さくすることができる。以下ではこの点について説明する。なお、以下ではデータファイルは走査面毎に作成されることを前提とするため、走査面の順番に対応する添字nの記載は以下では省略する。
【0029】
まず、2次元座標の表示(各走査面上におけるU、V軸による表示)について説明する。この表示を、領域(外接枠)4分木を用いて符号化して小さなサイズ(バイト数)で行うことが可能である。図3は、この形態を示す図である。
【0030】
図中、黒点が表示すべき点(測定点)Pであるものとし、この点の正方形の領域中における座標を符号化する例について示している。正方形の領域を4分割し、左上の領域を”0”、右上の領域を”1”、左下の領域を”2”、右下の領域を”3”として表示する。まず、最初の領域分割(a)において、点Pは領域”1”に属する。次に、この領域”1”を更に同様に分割した場合(b)において、点Pは領域”2”に属する。次に、この領域”2”を更に同様に分割した場合(c)においては、点Pは領域”0”に属する。次に、この領域”0”を更に同様に分割した場合(d)においては、点Pは領域”3”に属する。
【0031】
この場合、点Pは”1203”で符号化して表示することができる。この場合に必要なビット数は1回の分割で2ビットであるため、2×4=8ビット=1バイトとなる。精度をより高める必要がある場合には、図3の手順を更に回帰的に繰り返し、使用するビット数を増やせばよい。
【0032】
図3で使用した分割を3次元座標においても適用することは可能である。しかしながら、この場合には、領域の分割において4分木(4分割)ではなく、8分木(8分割)が必要となる。すなわち、同様の精度を3次元座標で得るために必要となるビット数は図3の場合の2倍となる。あるいは、同じビット数を用いる場合には、各点の位置精度が低下する。
【0033】
図4は、点群の座標データを記録するために必要なデータ構造を、従来例(a)(b)と上記のデータ処理方法(c)について示す。実際のデータファイルは、座標に関するデータを記録したデータ部と、このデータファイルに関する情報等を記録したインデックス部で構成されるが、以下はそのデータ部の構造について説明する。ここで、一つの走査面に対応する測定点(レーザスキャナ10の1回の走査で得られる測定点)の数は181個であるものとする。この値は、図10の構成のマッピングシステムにおいて得られる現状の最大値である。
【0034】
図4において、(a)は各点Pの3次元空間座標(x、y、z)を単純に記録する場合を示す。この場合には、各座標値を倍精度実数(8バイト)で記録した場合には、1点につき24バイト、全体で24×181=4344バイトが必要となる。
【0035】
図4(b)は各点の平均となるGの3次元空間座標(G、G、G)のみを倍精度実数(8バイト:計24バイト)でヘッダとして記録し、各点PについてはGからの変位(ΔX、ΔY、ΔZ)を単精度実数(4バイト)で記録する場合を示す。この場合には、各点毎に4×3=12バイトが必要になるため、合計で24+12×181=2196バイトが必要になる。これは(a)の場合の半分となる。
【0036】
これに対し、図4(c)は、上記のデータ処理方法を用いて一つの走査面についてのデータを記録する例について記載している。ここで、(b)と同様にGの3次元空間座標を倍精度実数(計24バイト)で記憶し、これに応じて定まるU、V軸の方向(単位ベクトル)を単精度の実数(各成分4バイト×3×2=計24バイト)で記録する。また、4分木における外接枠の情報として8バイト(例えば2バイトの整数×4)を用いている。以上は合計56バイトのヘッダとなる。次に、各点の2次元情報は図3で示された方法によって符号化され4バイトで表されるものとする。この場合には、合計で56+4×181=780バイトとなる。ヘッダの占めるサイズは大きくなるものの、合計としては(a)の18%となり、(a)(b)の場合と比べて大きく圧縮されている。なお、U、V軸の方向や外接枠の情報については、ヘッダのサイズを大きくとりこれらの精度を高めることもできるが、この場合においても、ヘッダのサイズが大きくなるだけであるため、特に点数が多い場合には全体のサイズをやはり大きく減少させることができることには変わりはない。
【0037】
図4の例は、一つの走査面に対応するデータについて示しており、全体としてのデータファイルのサイズは、これに走査面の数だけ乗じたものとなる。図4(b)の場合においても、各点の座標を符号化することによりこのサイズを減少させることは可能である。しかしながら、前記の通り、この場合には領域4分木ではなく領域8分木が必要となるために、(c)には及ばないことは明らかである。
【0038】
このように、上記の3次元形状データ処理方法によれば、3次元形状に対応する空間点群を記録するデータファイルのサイズを小さくする(圧縮する)ことができる。あるいは、使用できる容量が予め定められた場合には、記録される空間点群の位置精度を高めることができる。上記の例では、一つの走査面における測定点の数は181個であるとしたが、この数が多い、すなわち、より精密な位置情報を得る場合には、この効果はより顕著となる。
【0039】
次に、上記の例を一般化し、測定点が走査面から外れている場合(第2の方法)について説明する。これは、図1の構成の場合において、レーザスキャナ10の移動速度が無視できない場合に相当する。この場合、上記の3次元形状データ処理方法に対して以下の変更を行うことが可能である。
【0040】
この場合、実際の測定点(3次元空間座標点)P〜P各点は走査面上に乗らないことになるが、近似的には、P〜P各点は、レーザスキャナ10の移動速度を無視した場合と比べると、走査面から垂直に移動する。なお、この場合の走査面の設定方法については後述する。
【0041】
このため、3次元空間座標点P〜P各点の走査面からの移動方向は、走査面201の法線(N軸)方向となる。この状況を図5に示す。図5は、走査面201に対して垂直な断面を模式的に示している。QはPを走査面201に投影した点となり、実際の3次元空間座標点PはQから走査面201の法線方向にΔPだけ離れた点となる。この場合には、Qについては第1の方法におけるPと同様の取り扱いが可能である。
【0042】
ここで、N軸の方向は、U、V軸と垂直な方向であり、U、V軸の単位ベクトルから外積として算出できるため、情報として記録する必要はない。このため、各点毎に、新たにΔPを記憶していれば、レーザスキャナ10の移動速度が無視できない場合において、より正確な位置を算出することができる。
【0043】
ここで、ΔPは例えばQとQi+1の走査面上の距離と比べて微少量であれば、ΔPを示す数値に要求される精度は高くない。この点を考慮して、ΔPを新たに記録するために要するサイズを小さくすることができる。図6は、上記の点を考慮して図4(c)に示したデータ構造を変形したデータ構造である。ΔPとしては、指数部1バイト、仮数部1バイトで表現した実数とすることができる。指数部(E)については、全てのPについて共通とすれば、ヘッダ中に設けることができる。この場合、仮数部(M)についてのみ各点毎に設ければよい。この場合には、図4と同様のデータ点数の場合には、ヘッダが57バイト、各点毎の情報を記憶する領域が5×181バイト=905バイトであり、合計962バイトとなる。この場合においても、図4(a)の場合と比べて22%と充分小さく、図4(b)の場合と比べても充分に小さい。ここで、ΔPの絶対値が小さいために、高い精度でMを1バイトで表現することができる。すなわち、3次元空間座標点P〜Pと走査面との偏差が小さい場合において、位置精度を保持しつつ図6のデータファイルのサイズを小さくすることができる。
【0044】
この場合の走査面の設定について、以下に説明する。この場合においても、主成分分析を用いることができる。まず、単一の走査面に対応すると推定される測定点P〜Pを3次元空間座標の点群データから抽出する。この抽出は、例えばP〜Pにおける3次元座標の範囲等を用いて、適宜行うことができる。その後、P〜Pに対して3次元の主成分分析を行い、P〜Pの分布(変動)を最も良好に記載できる面を走査面とすることができる。あるいは、この変動が最も少ない方向をN軸方向とすることができる。このため、P〜PはU軸、V軸を用いて最も良好に記載することができ、ΔPはQからの偏差としてN軸方向の値として記載することができる。走査面は、Gを通りU軸とV軸を含む平面(あるいはN軸を法線とする平面)として定義される。
【0045】
このように、上記の3次元形状データ処理方法においては、点群のデータファイルを小さなサイズで得ることができる。このデータファイルは、走査面毎に作成される。このデータファイルに対して、既知の符号化方法、例えばハフマン符号化等を用いることにより、データファイルのサイズを更に圧縮することができる。
【0046】
なお、上記の例では、3次元形状データがレーザスキャナを用いて作成されたものである場合について説明した。しかしながら、上記の通り、厳密には測定点が走査面上に存在しない場合についても上記の3次元形状データ処理方法を適用することができる。これは、この3次元形状データ処理方法が、レーザスキャナを用いた場合に限定されず、複数の3次元空間座標点の点群データに対して一般的に適用できることを意味する。すなわち、こうした場合においても、一群の3次元空間座標点の中の一群に対して主成分分析を用いてU、V軸(仮想的な走査面)を設定し、必要に応じてN軸を更に用いて各3次元空間座標点を表示することが可能である。この場合においては、複数の3次元空間座標点の点群データを、小さなデータサイズで圧縮して表現することが可能である。特に、レーザスキャナを用いた場合のように、3次元空間座標点の分布が扁平な場合には、仮想的な走査面を設定しやすく、この走査面から3次元空間座標点までの距離が短くなる(ΔPiが小さくなる)ため、有効である。
【0047】
実際に上記のデータを取得し、上記の3次元形状データ処理方法を実行する3次元形状データ処理装置50の構成の一例を図7に示す。この3次元形状データ処理装置50においては、前記のレーザスキャナ10を用いられるものとする。レーザスキャナ10は、CPU20により、入出力制御部21を介して制御される。これにより、レーザスキャナ10は、レーザ光200の走査を行い、複数の測定点の3次元空間座標を出力し、この値を入出力制御部21を介して3次元形状データ処理装置50に返し、この値はハードディスク(記憶手段)22に記憶される。このデータ形式は、例えば図4(a)の形式であり、各測定点の(x、y、z)座標値である。すなわち、複数の測定点の3次元座標からなる点群データがハードディスク22に記憶される。
【0048】
その後、CPU20は、メモリ23を用いて、この点群データに対して上記の3次元形状データ処理方法を実行し、走査面の設定(推定)、走査面上における測定点の2次元表示、符号化等を行ってデータファイルを作成し、更にこのデータファイルに対して可逆圧縮処理を行い、圧縮後のデータファイルを再びハードディスク22に記憶させる。
【0049】
その後、データファイルの送信要求を外部から入出力制御部21を介してCPU20が受けると、CPU20は、ハードディスク22に記憶された走査面毎の圧縮後のデータファイルを、入出力制御部21を介して外部に配信する。この配信は、例えばネットワークを介して行うことができる。外部では、このデータファイルを受信してから伸張処理を行い、走査面毎の点群データを得ることができ、これを用いて表示させることが可能である。この点群における各点を連結したポリゴンを用いた表示を行うことが可能である。この際、利用者は、必要な部分が含まれるデータファイルのみを入手することにより、効率的な処理を行うことができる。
【0050】
なお、この際に、レーザスキャナ10が得る測定点のデータの一部に欠損が発生する場合もある。この場合は、前記の各走査面のデータ点数kが一定ではなく、kがnに依存することになる。こうした場合においては、例えば特許文献1に記載の方法を用いて、n個目の走査面のデータファイルとn+1個目の走査面のデータファイルを用いて、適正なポリゴンを生成することができる。この場合においても、上記のデータファイルは走査毎に生成されるため、効率的に適正なポリゴンを生成することができる。
【0051】
また、図4、6に示されたように、点群のデータファイルのデータ形式には、本発明の実施の形態に係るものを含め複数の設定が可能である。これらのうちのどのデータ形式を選択するかは、例えばデータの点数、処理時間、要求される精度に応じて適宜設定することが可能である。このためにCPU20が実行するフローチャートを図8に示す。ここでは、要求される位置精度をERとして予め設定し、最も圧縮率が高いが最も位置精度の低いデータ形式から、最も圧縮率が低いが最も位置精度の高いデータ形式までが順次選択される。
【0052】
ここでは、図4(c)のデータ形式を選択する場合を方法1、図6のデータ形式を選択する場合を方法2、図4(b)のデータ形式を選択する場合を方法3、図4(a)のデータ形式を選択する場合を方法4とする。前記の通り、データファイルのサイズは、方法1<方法2≪方法3<方法4となる。また、一般的には、高い位置精度が得られる順番はこの逆となる。ただし、方法1と方法2における位置精度の劣化は、点群の走査面内の2次元情報を4分木を用いて符号化することによって、抑制されている。このため、方法1、2による位置精度の、方法3、4による位置精度に対する劣化の割合は、データファイルのサイズの縮小の割合と比べて、極めて小さくなる。このため、実際には大半の場合で方法1又は2が選択される。なお、一つの走査面における測定点の数が3点に満たない場合には走査面を特定することができないため、自動的に方法4を選択させることが好ましい。この場合には全体のデータ点数が少ないために、方法4でもデータファイルのサイズは小さくなる。以下では、一つの走査面における測定点の数が3点よりも充分に多いものとする。
【0053】
図8において、まず、CPU20は、初めにハードディスク22に記憶された点群データを構成する複数の測定点を、走査面毎に分割して再編成する(S1)。これは、例えば3次元空間座標における範囲を用いて行うことができる。ただし、レーザスキャナ10の走査に関する情報がわかっている場合には、この情報を用いてこの分割を特に容易に行うこともできる。この走査面の総数をNsとする。一つの走査面における測定点の数は3点以上とする。
【0054】
次に、要求される位置精度ERが入力され、この値がメモリ23に記憶される(S2)。なお、位置精度や誤差の定義は適宜行うことができる。
【0055】
次に、走査面の指数nを1に設定した(S3)後に、CPU20は、ハードディスク22から、n=1の走査面に対応するデータを読み出し(S4)、方法1によるデータ形式(図4(c))でデータファイル(データ部)を作成し、メモリ23に記憶する(S5)。
【0056】
その後、CPU20は、このデータファイルから各点の位置データを復元し、ハードディスク22に記憶された元のデータと比較し、この誤差がER未満であるか否かを判定する(S6)。この誤差がER未満であれば、方法1で充分な精度が得られていると判定される。このため、方法1によって作成されたデータファイル(データ部)をハードディスク22に記憶する(S20)。この際、データファイルにおけるインデックス部において、方法1が選択された旨の識別情報、データ全体における走査面の数、データ開始位置、データ点数等、データファイルの利用において必要となる情報も同時に記憶する。これにより、n=1の走査面に対応した測定点が方法1によって表現されたデータファイルがハードディスク22に記憶される。
【0057】
誤差がER以上であれば(S6)、CPU20は、今度は方法2によって新たにデータファイルを作成し、メモリ23に記憶する(S7)。その後、CPU20は、このデータファイルから各点の位置データを復元し、ハードディスク22に記憶された元のデータと比較し、この誤差がE未満であるか否かを判定する(S8)。この誤差がER未満であれば、方法2で充分な精度が得られていると判定される。このため、方法2によって作成されたデータファイルをハードディスク22に記憶する(S20)。この際に、上記と同様に、方法2が選択された旨が記録されたインデックス部も記録される。
【0058】
誤差がER以上であれば(S8)、CPU20は、今度は方法3によって新たにデータファイルを作成し、メモリ23に記憶する(S9)。その後、CPU20は、このデータファイルから各点の位置データを復元し、ハードディスク22に記憶された元のデータと比較し、この誤差がER未満であるか否かを判定する(S10)。この誤差がE未満であれば、方法3で充分な精度が得られていると判定される。このため、方法3によって作成されたデータファイルをハードディスク22に記憶する(S20)。この際に、上記と同様に、方法3が選択された旨が記録されたインデックス部も記録される。
【0059】
この場合においても誤差がER以上であれば(S10)、CPU20は、方法4によってデータファイルを作成し(S11)、これをハードディスク22に記憶する(S12)。なお、方法4におけるデータは初めにハードディスク22に記憶されていたデータと等しいため、この場合の誤差は零となる。
【0060】
n=1(S3)の場合のデータファイルが作成されたら、nをインクリメントし(S22)、再びS4以降の工程を、n=Ns(S21)となるまで行う。これにより、Ns個の走査面、すなわち、Ns個のデータファイルが作成される。3次元空間座標点の点群データは、このNs個のデータファイルで表現される。なお、各データファイルが作成された後で、これを更に符号化した可逆圧縮処理を行うこともできる。
【0061】
このフローチャートを実行することにより、精度ERを保持したままで最もサイズが小さくなるデータファイル形式を自動的に選択し、ハードディスク22に記憶させることができる。データファイルは走査毎に作成されるため、このデータファイル形式は走査面毎に異なる場合もあるが、各データファイルのインデックス部に記載された情報より、この識別は容易であるため、外部でこのデータを利用する際には問題になることはない。
【0062】
また、上記の方法2によるデータファイル作成(S7)の詳細を示すフローチャートが図9である。
【0063】
まず、CPU20は、一つの走査面に対応する3次元空間座標点の点群(P(i=1〜k))の平均位置Gを算出する(S71)。すなわち、(G、G、G)を算出する。
【0064】
次に、Gを原点としてPの空間座標を書き直した上で、Pの座標に関する主成分分析を行う(S72)。これにより、Pの分布(位置の変動)が最も大きくなる方向として走査面(U軸、V軸が含まれる面)が設定される。あるいは、この分布が最も小さくなる方向にN軸が設定される。この走査面上においてこの分布を最も良好に記述できる軸としてU軸、V軸が設定される。
【0065】
次に、各点Pをこの走査面に投影した位置Qの座標と、Pと走査面との間の距離(N軸方向の距離)ΔPを算出する(S73)。
【0066】
次に、Gの位置情報(G、G、G)と、U軸、V軸の単位ベクトル成分を、図5におけるヘッダとしてメモリ23に書き込む(S74)。なお、U軸、V軸の方向が定まればN軸の方向は定まるため、N軸に関する情報を記録する必要はない。
【0067】
次に、走査面上での4分木による符号化に用いる領域を設定し、図5におけるヘッダとしてメモリ23に書き込む(S75)。この設定は、例えばU軸、V軸におけるP(i=1〜k)の最大値、最小値等を用いて設定することが可能である。
【0068】
次に、ΔPの指数部Eを図5におけるヘッダとしてメモリ23に書き込む(S76)。これは、例えばΔP(i=1〜k)の最大値等を用いて設定することができる。
【0069】
次に、i=1と設定し(S77)、Pについて前記の4分木符号化を用いて、Pを符号化する(S78)。これにより、符号化された走査面上のPの座標と、ΔPの仮数部Mをメモリ23に書き込む(S79)。
【0070】
次に、iをインクリメント(S80)し、再度Qの符号化を行い(S78)、ΔPの仮数部Mと共に順次メモリ23に書き込む(S79)動作を、i=kとなる(S81)まで繰り返すことにより、図6のデータファイルを得ることができる。
【0071】
上記の方法1によるデータファイル作成(S2)は、図9のフローチャートにおいて、ΔP≡0、P≡Qとした場合に相当する。このため、S73、S79においてΔPに関する書き込みを行わないものとして、図9の処理をより単純化して実行することができる。この場合、走査面の設定(S72)やP(≡Q)の4分木符号化等については方法2と同様であるため、方法1を実行する際(S5)と方法2を実行する際(S7)でこれらの結果を共通に用いることができる。
【0072】
また、レーザスキャナ10が用いられ、レーザ光の走査速度が充分高いことが予め判明している場合には、方法1で充分な精度が得られることは明らかであるため、方法1のみを行う設定とすることができる。
【0073】
このように、上記の3次元形状データ処理方法、3次元形状データ処理装置を用いることにより、小さなデータサイズで3次元形状を表現するデータファイルを作成することができる。このデータファイルを用いることにより、利用者は、必要な箇所に対応するデータを効率的に入手し、表示させることができる。
【0074】
前記の通り、3次元形状を計測したレーザスキャナの走査速度が、その移動速度よりも充分に速ければ、方法1によって充分に高い精度を得ることは可能である。特許文献1に記載のような、車両にレーザスキャナを搭載して地形を計測する場合には、一般的にこの条件は満たされる。このため、こうした場合に得られたデータに対しては上記の構成は特に有効である。
【0075】
あるいは、特許文献2に記載のように、レーザスキャナが航空機に搭載される場合であっても、レーザスキャナの走査周波数は一般にはkHz以上と高いために、上記の条件は満たされる。このため、上記の構成は有効である。すなわち、レーザスキャナが移動体に搭載されることによって走査面が順次移動する構成の場合においては、上記の3次元形状データ処理方法は特に有効である。また、航空機からデータファイルを転送する場合には、無線で行うことが必須であり、無線通信条件も必ずしも良好とは限らないため、データファイルのサイズを小さくできる上記の構成は特に有効である。
【0076】
更に、一般的に3次元形状をディスプレイ等で表示させる場合において、所望の領域のみを短い待ち時間で表示させたい場合には、必要な箇所に対応した小さなサイズをもったデータファイルを選択的に取り扱うことのできる上記の構成は、有効である。
【0077】
このように、上記の3次元形状データ処理方法は、地形の計測に限定されず、一般的な3次元形状データを扱う際、例えばレーザスキャナを用いて場合以外においても、3次元形状に対応した3次元空間座標点の点群データを取り扱う際に有効である。
【符号の説明】
【0078】
10 レーザスキャナ
20 CPU
21 入出力制御部
22 ハードディスク(記憶手段)
23 メモリ
50 3次元形状データ処理装置
100 車両
110 GPS装置
120 第1レーザスキャナ(レーザスキャナ)
130 第2レーザスキャナ(レーザスキャナ)
140 第1カメラ
150 第2カメラ
200 レーザ光
201、202 走査面
300 対象物

【特許請求の範囲】
【請求項1】
レーザスキャナによって計測された対象物の3次元形状に対応する複数の3次元空間座標点の点群を、前記対象物と交差する複数の走査面と対応付けて表示する3次元形状データ処理方法であって、
前記複数の3次元空間座標点を、前記対象物と前記走査面との間の交線上に存在する複数の点に対応付け、前記各点を前記各走査面上の2次元座標に対応させて記録した2次元座標点の点群としたデータファイルを、各走査面毎に作成することを特徴とする3次元形状データ処理方法。
【請求項2】
前記データファイルに対して符号化による圧縮処理を行うことを特徴とする請求項1に記載の3次元形状データ処理方法。
【請求項3】
前記走査面上の領域4分木によって前記点を符号化して前記データファイルに記録することを特徴とする請求項1又は2に記載の3次元形状データ処理方法。
【請求項4】
前記3次元空間座標点を前記走査面に投影した点を前記点とし、前記3次元空間座標点の前記走査面からの距離を前記データファイルに記録することを特徴とする請求項1から請求項3までのいずれか1項に記載の3次元形状データ処理方法。
【請求項5】
前記走査面を、複数の前記3次元空間座標点のデータの中の一群のデータに対する主成分分析を行うことによって設定することを特徴とする請求項1から請求項4までのいずれか1項に記載の3次元形状データ処理方法。
【請求項6】
ネットワークを介して、各走査面毎の前記データファイルを配信することを特徴とする請求項1から請求項5までのいずれか1項に記載の3次元形状データ処理方法。
【請求項7】
対象物の3次元形状に対応する複数の3次元空間座標点の点群に対応するデータを圧縮する3次元形状データ処理装置であって、
前記データを記憶する記憶手段と、
前記対象物と交差する複数の走査面を設定し、前記走査面と前記対象物との間の交線上に存在する複数の点の点群によって前記複数の3次元空間座標点の中の一群を対応付け、複数の前記点を前記走査面上の2次元座標に対応させて記録したデータファイルを、各走査面に対応させて作成させるCPUと、
を具備することを特徴とする3次元形状データ処理装置。
【請求項8】
前記複数の3次元空間座標点の点群は、レーザスキャナによって計測されたことを特徴とする請求項7に記載の3次元形状データ処理装置。
【請求項9】
前記CPUは、
作成された前記データファイルに対して符号化による圧縮処理を行うことを特徴とする請求項7又は8に記載の3次元形状データ処理装置。
【請求項10】
前記CPUは、
前記走査面上の領域4分木によって前記交点の座標を符号化して前記データファイルに記録することを特徴とする請求項7から請求項9までのいずれか1項に記載の3次元形状データ処理装置。
【請求項11】
前記CPUは、
前記3次元空間座標点を前記走査面に投影した点を前記点とし、前記3次元空間座標点の前記走査面からの距離を前記データファイルに記録することを特徴とする請求項7から請求項10までのいずれか1項に記載の3次元形状データ処理装置。
【請求項12】
前記CPUは、
前記走査面を、複数の前記3次元空間座標点のデータの中の一群のデータに対する主成分分析を行うことによって設定することを特徴とする請求項7から請求項11までのいずれか1項に記載の3次元形状データ処理装置。
【請求項13】
前記CPUは、
利用者からの要求に応じ、ネットワークを介して、各走査面毎の前記データファイルを配信させることを特徴とする請求項7から請求項12までのいずれか1項に記載の3次元形状データ処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2013−77165(P2013−77165A)
【公開日】平成25年4月25日(2013.4.25)
【国際特許分類】
【出願番号】特願2011−216588(P2011−216588)
【出願日】平成23年9月30日(2011.9.30)
【出願人】(599035627)学校法人加計学園 (43)
【出願人】(500200041)株式会社ウエスコ (2)
【Fターム(参考)】