(57)【特許請求の範囲】
【請求項１】
レーザスキャナによって計測された対象物の３次元形状に対応する複数の３次元空間座標点の点群を、前記対象物と交差する複数の走査面と対応付けて表示する３次元形状データ処理方法であって、
前記複数の３次元空間座標点を、前記対象物と前記走査面との間の交線上に存在する複数の点に対応付け、前記各点を前記各走査面上の２次元座標に対応させて記録した２次元座標点の点群としたデータファイルを、各走査面毎に作成することを特徴とする３次元形状データ処理方法。
【請求項２】
前記データファイルに対して符号化による圧縮処理を行うことを特徴とする請求項１に記載の３次元形状データ処理方法。
【請求項３】
前記走査面上の領域４分木によって前記点を符号化して前記データファイルに記録することを特徴とする請求項１又は２に記載の３次元形状データ処理方法。
【請求項４】
前記３次元空間座標点を前記走査面に投影した点を前記点とし、前記３次元空間座標点の前記走査面からの距離を前記データファイルに記録することを特徴とする請求項１から請求項３までのいずれか１項に記載の３次元形状データ処理方法。
【請求項５】
前記走査面を、複数の前記３次元空間座標点のデータの中の一群のデータに対する主成分分析を行うことによって設定することを特徴とする請求項１から請求項４までのいずれか１項に記載の３次元形状データ処理方法。
【請求項６】
ネットワークを介して、各走査面毎の前記データファイルを配信することを特徴とする請求項１から請求項５までのいずれか１項に記載の３次元形状データ処理方法。
【請求項７】
対象物の３次元形状に対応する複数の３次元空間座標点の点群に対応するデータを圧縮する３次元形状データ処理装置であって、
前記データを記憶する記憶手段と、
前記対象物と交差する複数の走査面を設定し、前記走査面と前記対象物との間の交線上に存在する複数の点の点群によって前記複数の３次元空間座標点の中の一群を対応付け、複数の前記点を前記走査面上の２次元座標に対応させて記録したデータファイルを、各走査面に対応させて作成させるＣＰＵと、
を具備することを特徴とする３次元形状データ処理装置。
【請求項８】
前記複数の３次元空間座標点の点群は、レーザスキャナによって計測されたことを特徴とする請求項７に記載の３次元形状データ処理装置。
【請求項９】
前記ＣＰＵは、
作成された前記データファイルに対して符号化による圧縮処理を行うことを特徴とする請求項７又は８に記載の３次元形状データ処理装置。
【請求項１０】
前記ＣＰＵは、
前記走査面上の領域４分木によって前記交点の座標を符号化して前記データファイルに記録することを特徴とする請求項７から請求項９までのいずれか１項に記載の３次元形状データ処理装置。
【請求項１１】
前記ＣＰＵは、
前記３次元空間座標点を前記走査面に投影した点を前記点とし、前記３次元空間座標点の前記走査面からの距離を前記データファイルに記録することを特徴とする請求項７から請求項１０までのいずれか１項に記載の３次元形状データ処理装置。
【請求項１２】
前記ＣＰＵは、
前記走査面を、複数の前記３次元空間座標点のデータの中の一群のデータに対する主成分分析を行うことによって設定することを特徴とする請求項７から請求項１１までのいずれか１項に記載の３次元形状データ処理装置。
【請求項１３】
前記ＣＰＵは、
利用者からの要求に応じ、ネットワークを介して、各走査面毎の前記データファイルを配信させることを特徴とする請求項７から請求項１２までのいずれか１項に記載の３次元形状データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元形状のデータを取り扱うデータ処理方法、データ処理装置に関する。
【背景技術】
【０００２】
カーナビゲーション等においては、２次元情報である地図が主に用いられている。しかしながら、建物や地形の高さも表示した３次元情報が運転者にとってより直感的であるため、より好ましい。一方で、地図上における建物や地形の高さまで情報化した３次元情報（３次元空間座標の点群データ）は、２次元情報と比べて、その取得に労力を要する。
【０００３】
特許文献１には、この点群データを取得するために、車両を用いたマッピングシステムを用いることが記載されている。このマッピングシステムにおいては、レーザスキャナ、ＧＰＳ装置、カメラを設置した車両を走行させることにより、この３次元情報を取得する技術が記載されている。図１０は、このマッピングシステムの構成を示す図である。
【０００４】
このマッピングシステムにおいては、車両１００の位置はＧＰＳ装置１１０によって正確に把握される。一方、レーザスキャナ（第１レーザスキャナ１２０、第２レーザスキャナ１３０）は、周囲に向かって発せられたレーザ光の反射光を受光することによって、レーザスキャナから周囲までの距離を測定する。ここで、第１レーザスキャナ１２０、第２レーザスキャナ１３０はそれぞれ異なる仰角で対象物（周囲の道路や物体）に向かってレーザ光２００を発する。これらのレーザ光をそれぞれ方位角方向に走査することによって、この方向における対象物までの距離情報を得ることができる。
【０００５】
各測定点を認識した際のレーザ光２００の仰角、方位角がわかれば、測定点のレーザスキャナ１０からの相対的位置（相対座標）が算出される。一方、レーザスキャナ１０の空間的位置（絶対座標）はＧＰＳ装置１１０等によって認識されるため、測定点の絶対座標が算出される。車両１００を移動させると共にレーザ光２００の走査を繰り返すことによって、各地点毎にこの距離情報を得ることができ、これより地形の３次元情報を、複数の測定点の絶対座標の集合（点群データ）として得ることができる。
【０００６】
ナビゲーションシステム等においては、ある視点からみた地形を立体感のある２次元画像として表示させるが、この表示は、この点群に対応して行われる。第１レーザスキャナ１２０、第２レーザスキャナ１３０の２台を用いることによって、より多くの測定点を得ることができ、より正確な３次元情報を得ることができる。しかしながら、測定された点群をある視点から見た２次元画像として表示した場合には、例えば本来は遮蔽されて見えない点も表示されるため、良好な視認性が得られない、すなわち、点群表示による画像が、実際に目視される２次元画像とは大きく異なる場合がある。このため、レーザスキャナのデータ取得と同時にカメラ（第１カメラ１４０、第２カメラ１５０）によって得られた撮像データ（画像）もこの３次元情報作成のために補助的に用いられる。
【０００７】
得られた点群における各点を結ぶ線によってポリゴンを生成し、このポリゴンに基づいた表示を行わせれば、形状の表面を表現することができるため、より良好な視認性を得ることができる。この場合、ポリゴンを構成する線は、ある１回の走査によって得られた複数の空間点と、次の１回の走査によって得られた複数の空間点とを連結させて得ることが可能である。走査毎に得られる空間点の数は理想的にはレーザスキャナの設定によって決まり、この場合には走査毎の空間点の数は一定となるため、ポリゴンを構成する線は一義的に定まる。しかしながら、実際にはレーザ光の反射データが得られない場合も多く存在するため、走査毎に得られる空間点の数は一定とはならない。このため、ポリゴンを構成する線は一義的に定まらず、適正な組み合わせを推定する操作が必要となる。特許文献１に記載の技術においては、連続した２回の走査によって得られたデータを用いて、こうした場合においても適正なポリゴンを推定する方法を用いている。
【０００８】
こうした方法を用いて３次元形状の表示を適正に行うことができるものの、その表示を精密に行うためには、１回の走査毎に測定される空間点の数を多くすることが必須となる。この場合、走査が行われる毎、あるいは車両１００等が進行する度に蓄積されるデータ容量は膨大となり、その記憶、転送等は容易ではなくなる。特許文献２に記載の技術においては、上記と同様の構成を飛行体に搭載し、地上にデータを転送している。ここで、レーザスキャナによって得られたデータとして、空間座標の他に、レーザ光の射出角度等、測定条件に関わるデータもこれに対応して保存している。これらのデータファイルを個々に作成し、各データファイルを圧縮処理して、データ容量を小さく変換してから地上に伝送している。
【０００９】
こうした技術を用いて、地形に関する３次元情報を小さなデータ容量で精密に表示することができる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１０−２５７２６１号公報
【特許文献２】特開２００６−１７０８８７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、３次元情報に対応する点群データを取り扱う場合には、上記の技術を用いた場合においても、そのデータサイズを充分に小さくすることは困難であった。
【００１２】
例えば、特許文献２に記載のように、レーザスキャナと直接接続されたシステムにおいては、レーザスキャナの測定条件（レーザ光の方位角やレーザスキャナの絶対位置等）と実測データ（レーザスキャナから測定点までの距離情報等）を用いることにより、３次元空間座標点の点群データを直接取り扱わずに、実質的にサイズを小さくした３次元情報のデータとして取り扱うことは可能である。しかしながら、実際にこの３次元情報のデータをレーザスキャナから離れたところで取り扱う場合、例えばこのデータをネットワークを介して配信して受信先で様々な態様で使用する場合においては、レーザスキャナに関わるパラメータを用いることは好ましくない。こうした場合においては、レーザスキャナに関わるパラメータは用いずに、最終的に得られた３次元空間座標の点群のデータのみを取り扱うことが有効である。ところが、測定点の点数が多い場合には、この点群データのデータサイズが大きくなるため、これをネットワークを用いて効率的に転送し、３次元形状を充分に高い精度で再現することは困難であった。
【００１３】
本発明は、かかる問題点に鑑みてなされたものであり、上記問題点を解決する発明を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、上記課題を解決すべく、以下に掲げる構成とした。
本発明の３次元形状データ処理方法は、レーザスキャナによって計測された対象物の３次元形状に対応する複数の３次元空間座標点の点群を、前記対象物と交差する複数の走査面と対応付けて表示する３次元形状データ処理方法であって、前記複数の３次元空間座標点を、前記対象物と前記走査面との間の交線上に存在する複数の点に対応付け、前記各点を前記各走査面上の２次元座標に対応させて記録した２次元座標点の点群としたデータファイルを、各走査面毎に作成することを特徴とする。
本発明の３次元形状データ処理方法は、前記データファイルに対して符号化による圧縮処理を行うことを特徴とする。
本発明の３次元形状データ処理方法は、前記走査面上の領域４分木によって前記点を符号化して前記データファイルに記録することを特徴とする。
本発明の３次元形状データ処理方法は、前記３次元空間座標点を前記走査面に投影した点を前記点とし、前記３次元空間座標点の前記走査面からの距離を前記データファイルに記録することを特徴とする。
本発明の３次元形状データ処理方法は、前記走査面を、複数の前記３次元空間座標点のデータの中の一群のデータに対する主成分分析を行うことによって設定することを特徴とする。
本発明の３次元形状データ処理方法は、ネットワークを介して、各走査面毎の前記データファイルを配信することを特徴とする。
本発明の３次元形状データ処理装置は、対象物の３次元形状に対応する複数の３次元空間座標点の点群に対応するデータを圧縮する３次元形状データ処理装置であって、前記データを記憶する記憶手段と、前記対象物と交差する複数の走査面を設定し、前記走査面と前記対象物との間の交線上に存在する複数の点の点群によって前記複数の３次元空間座標点の中の一群を対応付け、複数の前記点を前記走査面上の２次元座標に対応させて記録したデータファイルを、各走査面に対応させて作成させるＣＰＵと、を具備することを特徴とする。
本発明の３次元形状データ処理装置において、前記複数の３次元空間座標点の点群は、レーザスキャナによって計測されたことを特徴とする。
本発明の３次元形状データ処理装置において、前記ＣＰＵは、作成された前記データファイルに対して符号化による圧縮処理を行うことを特徴とする。
本発明の３次元形状データ処理装置において、前記ＣＰＵは、前記走査面上の領域４分木によって前記交点の座標を符号化して前記データファイルに記録することを特徴とする。
本発明の３次元形状データ処理装置において、前記ＣＰＵは、前記３次元空間座標点を前記走査面に投影した点を前記点とし、前記３次元空間座標点の前記走査面からの距離を前記データファイルに記録することを特徴とする。
本発明の３次元形状データ処理装置において、前記ＣＰＵは、前記走査面を、複数の前記３次元空間座標点のデータの中の一群のデータに対する主成分分析を行うことによって設定することを特徴とする。
本発明の３次元形状データ処理装置において、前記ＣＰＵは、利用者からの要求に応じ、ネットワークを介して、各走査面毎の前記データファイルを配信させることを特徴とする。
【発明の効果】
【００１５】
本発明は以上のように構成されているので、３次元形状に対応するデータファイルのサイズを小さく、転送や取り扱いを容易とすることができる。
【図面の簡単な説明】
【００１６】
【図１】レーザスキャナによって対象物が照射される際の状況を模式的に示す図である。
【図２】走査面毎に得られた測定点を２次元座標で表示した例である。
【図３】２次元座標における測定点を領域４分木で符号化する例を示す図である。
【図４】従来例（ａ）（ｂ）と本発明の実施の形態の第１の方法（ｃ）におけるデータファイルの構成を示す図である。
【図５】本発明の実施の形態の第２の方法における走査面と測定点との関係を模式的に示す図である。
【図６】本発明の実施の形態の第２の方法におけるデータファイルの構成を示す図である。
【図７】本発明の実施の形態に係る３次元形状データ処理装置の構成を示す図である。
【図８】本発明の実施の形態に係る３次元形状データ処理装置におけるデータファイルの形式を選択するためのフローチャートである。
【図９】本発明の実施の形態に係る３次元形状データ処理装置において、方法２におけるデータファイルを作成するフローチャートである。
【図１０】従来のマッピングシステムの構成の一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態となる３次元形状データ処理方法について説明する。この３次元形状データ処理方法においては、対象物の３次元形状を再生するためのデータが取り扱われる。
【００１８】
図１は、レーザスキャナ１０が立体的形状をもった対象物３００を照射する際の状況を概念的に示す図である。レーザスキャナ１０はレーザ光２００を対象物３００に向かって一定の仰角で発し、その方位角方向でレーザ光２００を走査する。レーザ光２００は対象物３００の表面（測定点：レーザ光２００と対象物３００との交点）で反射されて再びレーザスキャナ１０に入射するが、この際の入射光と反射光との間の位相差から、レーザスキャナ１０から対象物３００におけるレーザ光２００の測定点までの距離を算出することができる。
【００１９】
レーザ光２００の仰角、方位角がわかれば、測定点のレーザスキャナ１０からの相対的位置（相対座標）が算出される。一方、図１０に示されるように、レーザスキャナ１０の空間的位置（絶対座標）がＧＰＳ装置１１０等によって認識されれば、対象物３００の表面に存在する測定点の３次元空間での絶対座標が算出される。レーザスキャナ１０が徐々に移動すると共に走査が繰り返されれば、多数の測定点の絶対座標のデータ（点群データ）が得られる。
【００２０】
ここで、対象物３００上におけるレーザ光２００の走査速度は、一般的にはレーザスキャナ１０の移動速度（例えばこれを搭載する車両の移動速度）よりも充分速い。このため、１回の走査で得られる複数の測定点（交点）はレーザ光２００によって同時に照射されるものと近似的に考えることができる。このため、実際には上記の３次元の点群データは、レーザ光２００の１回の走査毎に構成される走査面上における２次元の点群データが、各走査面毎に集まったものと考えることができる。
【００２１】
このため、この３次元形状データ処理方法においては、複数の走査面を想定し、各測定点はこの走査面上に対応するものと考えることができる。以下では、まず、単純に各測定点が走査面上に存在する場合について説明する（第１の方法）。これは、レーザ光２００の走査速度が充分に速い場合には、よい近似となることは明らかである。
【００２２】
このとき、レーザ光２００の走査によって構成される面（走査面）と３次元形状をもつ対象物３００との交線上に、各測定点は離散的に存在する。すなわち、各測定点はレーザ光２００と対象物３００との間の交点となる。ｎ回目の走査によってｋ個の測定点（交点）Ｐｎ，１〜Ｐｎ，ｋが得られるものとし、Ｐｎ，ｉの３次元座標を（ｘｎ，ｉ、ｙｎ，ｉ、ｚｎ，ｉ）、（１≦ｉ≦ｋ）と表示すると、図１において、Ｐｎ，１〜Ｐｎ，ｋはｎ回目の走査面（ｎ個目の走査面）２０１上に存在し、Ｐｎ＋１，１〜Ｐｎ＋１，ｋはｎ＋１個目の走査面２０２上に存在する。このため、Ｐｎ，１〜Ｐｎ，ｋの各点、Ｐｎ＋１，１〜Ｐｎ＋１，ｋの各点はそれぞれ走査面２０１、２０２上の２次元座標で表示することができる。この２次元の座標軸は走査面毎に適宜設定することができる。
【００２３】
例えば、図２（ａ）に示すように、走査面２０１において、Ｐｎ，１〜Ｐｎ，ｋの平均座標をＧｎとし、このＧｎを原点とした直交座標をＵｎ、Ｖｎとして、Ｐｎ，ｉのこの面上での位置は、Ｕｎ軸、Ｖｎ軸に沿った成分（ｕｎ，ｉ、ｖｎ，ｉ）で表示することができる。Ｕｎ、ＶｎはＰｎ，１〜Ｐｎ，ｋを適正に識別できるように設定され、このためには、例えば主成分分析を用いてＵｎ、Ｖｎ軸の方向が設定される。Ｇｎの３次元座標とＵｎ、Ｖｎは走査（ｎ）毎に定まるため、各測定点Ｐｎ，ｉの走査面２０１での２次元座標（ｕｎ，ｉ、ｖｎ，ｉ）が定まれば、各測定点Ｐｎ，ｉの３次元座標における位置（ｘｎ，ｉ、ｙｎ，ｉ、ｚｎ，ｉ）を算出することが可能である。図２（ｂ）に示すように、Ｐｎ＋１，１〜Ｐｎ＋１，ｋについても、同様にＧｎ＋１、Ｕｎ＋１、Ｖｎ＋１を設定することが可能であり、各測定点を２次元表示することが可能である。
【００２４】
すなわち、走査面毎に、Ｇｎの３次元座標、Ｕｎ、Ｖｎ軸の方向（単位ベクトル）を記録し、各測定点Ｐｎ，ｉ（１≦ｉ≦ｋ）については、走査面でのＵｎ軸、Ｖｎ軸における２次元座標（ｕｎ，ｉ、ｖｎ，ｉ）を記録しておけば、最終的に、各測定点Ｐｎ，ｉの３次元座標（ｘｎ，ｉ、ｙｎ，ｉ、ｚｎ，ｉ）を算出することが可能である。ここで、走査面自身はＵｎ、Ｖｎ軸によって規定される。
【００２５】
このため、この３次元形状データ処理方法においては、データとして、３次元空間座標の点群データの代わりに、各走査面上における各測定点の平均位置Ｇｎの空間的位置、走査面における座標軸Ｕｎ、Ｖｎ軸の方向、各測定点Ｐｎ，ｉ（１≦ｉ≦ｋ）についての、走査面での２次元座標（ｕｎ，ｉ、ｖｎ，ｉ）を記録する。ただし、この２次元座標を記録する代わりに、後述する符号化された値を記録することもできる。すなわち、この３次元形状データ処理方法においては、各走査面上における各測定点の２次元座標を記録したデータファイル（２次元座標点の点群のデータファイル）を作成する。このため、ｎ個目の走査面についてデータファイルＤｎが作成され、ｎ＋１個目の走査面についてＤｎとは独立したデータファイルＤｎ＋１が作成される。このように、データファイルＤｎは走査面毎に作成される。
【００２６】
ここで、データファイルＤｎに対して、圧縮処理が行われ、記憶される。圧縮処理としては、可逆圧縮として通常使用されるＬＨＡ、ＺＩＰ等、任意の方法を適用することができる。
【００２７】
従来は、３次元形状を表示するためのデータを取り扱うに際しては、３次元形状に対応する３次元座標点の点群のデータファイルを用いていた。このデータファイルのサイズは大きくなるため、例えばこれをネットワークを介して配信するような場合には、可逆圧縮処理を行うことが必要となった。これに対して、上記の３次元形状データ処理方法においては、直接取り扱われるのは、走査面毎のデータファイルＤｎである。特に地形を表示させる場合においては、３次元形状（地形）の全体ではなく、その一部のみが必要となる場合が多い。この場合に、従来は、圧縮されたデータファイルを解凍し、その中から所望の箇所のみを表示させることが必要になる。これに対して、上記の３次元形状データ処理方法においては、所望の箇所に対応するデータファイルのみを処理して復元することにより、所望の箇所のみを表示させることができる。このため、処理を効率的に行うことができる。
【００２８】
また、３次元空間座標点の点群データを記憶したデータファイルを取り扱わずに、２次元座標点の点群データを取り扱うことによって、全データの点数が同等であってもデータファイルの全体としてのサイズを小さくすることができる。以下ではこの点について説明する。なお、以下ではデータファイルは走査面毎に作成されることを前提とするため、走査面の順番に対応する添字ｎの記載は以下では省略する。
【００２９】
まず、２次元座標の表示（各走査面上におけるＵ、Ｖ軸による表示）について説明する。この表示を、領域（外接枠）４分木を用いて符号化して小さなサイズ（バイト数）で行うことが可能である。図３は、この形態を示す図である。
【００３０】
図中、黒点が表示すべき点（測定点）Ｐであるものとし、この点の正方形の領域中における座標を符号化する例について示している。正方形の領域を４分割し、左上の領域を”０”、右上の領域を”１”、左下の領域を”２”、右下の領域を”３”として表示する。まず、最初の領域分割（ａ）において、点Ｐは領域”１”に属する。次に、この領域”１”を更に同様に分割した場合（ｂ）において、点Ｐは領域”２”に属する。次に、この領域”２”を更に同様に分割した場合（ｃ）においては、点Ｐは領域”０”に属する。次に、この領域”０”を更に同様に分割した場合（ｄ）においては、点Ｐは領域”３”に属する。
【００３１】
この場合、点Ｐは”１２０３”で符号化して表示することができる。この場合に必要なビット数は１回の分割で２ビットであるため、２×４＝８ビット＝１バイトとなる。精度をより高める必要がある場合には、図３の手順を更に回帰的に繰り返し、使用するビット数を増やせばよい。
【００３２】
図３で使用した分割を３次元座標においても適用することは可能である。しかしながら、この場合には、領域の分割において４分木（４分割）ではなく、８分木（８分割）が必要となる。すなわち、同様の精度を３次元座標で得るために必要となるビット数は図３の場合の２倍となる。あるいは、同じビット数を用いる場合には、各点の位置精度が低下する。
【００３３】
図４は、点群の座標データを記録するために必要なデータ構造を、従来例（ａ）（ｂ）と上記のデータ処理方法（ｃ）について示す。実際のデータファイルは、座標に関するデータを記録したデータ部と、このデータファイルに関する情報等を記録したインデックス部で構成されるが、以下はそのデータ部の構造について説明する。ここで、一つの走査面に対応する測定点（レーザスキャナ１０の１回の走査で得られる測定点）の数は１８１個であるものとする。この値は、図１０の構成のマッピングシステムにおいて得られる現状の最大値である。
【００３４】
図４において、（ａ）は各点Ｐｉの３次元空間座標（ｘｉ、ｙｉ、ｚｉ）を単純に記録する場合を示す。この場合には、各座標値を倍精度実数（８バイト）で記録した場合には、１点につき２４バイト、全体で２４×１８１＝４３４４バイトが必要となる。
【００３５】
図４（ｂ）は各点の平均となるＧの３次元空間座標（Ｇｘ、Ｇｙ、Ｇｚ）のみを倍精度実数（８バイト：計２４バイト）でヘッダとして記録し、各点ＰｉについてはＧからの変位（ΔＸｉ、ΔＹｉ、ΔＺｉ）を単精度実数（４バイト）で記録する場合を示す。この場合には、各点毎に４×３＝１２バイトが必要になるため、合計で２４＋１２×１８１＝２１９６バイトが必要になる。これは（ａ）の場合の半分となる。
【００３６】
これに対し、図４（ｃ）は、上記のデータ処理方法を用いて一つの走査面についてのデータを記録する例について記載している。ここで、（ｂ）と同様にＧの３次元空間座標を倍精度実数（計２４バイト）で記憶し、これに応じて定まるＵ、Ｖ軸の方向（単位ベクトル）を単精度の実数（各成分４バイト×３×２＝計２４バイト）で記録する。また、４分木における外接枠の情報として８バイト（例えば２バイトの整数×４）を用いている。以上は合計５６バイトのヘッダとなる。次に、各点の２次元情報は図３で示された方法によって符号化され４バイトで表されるものとする。この場合には、合計で５６＋４×１８１＝７８０バイトとなる。ヘッダの占めるサイズは大きくなるものの、合計としては（ａ）の１８％となり、（ａ）（ｂ）の場合と比べて大きく圧縮されている。なお、Ｕ、Ｖ軸の方向や外接枠の情報については、ヘッダのサイズを大きくとりこれらの精度を高めることもできるが、この場合においても、ヘッダのサイズが大きくなるだけであるため、特に点数が多い場合には全体のサイズをやはり大きく減少させることができることには変わりはない。
【００３７】
図４の例は、一つの走査面に対応するデータについて示しており、全体としてのデータファイルのサイズは、これに走査面の数だけ乗じたものとなる。図４（ｂ）の場合においても、各点の座標を符号化することによりこのサイズを減少させることは可能である。しかしながら、前記の通り、この場合には領域４分木ではなく領域８分木が必要となるために、（ｃ）には及ばないことは明らかである。
【００３８】
このように、上記の３次元形状データ処理方法によれば、３次元形状に対応する空間点群を記録するデータファイルのサイズを小さくする（圧縮する）ことができる。あるいは、使用できる容量が予め定められた場合には、記録される空間点群の位置精度を高めることができる。上記の例では、一つの走査面における測定点の数は１８１個であるとしたが、この数が多い、すなわち、より精密な位置情報を得る場合には、この効果はより顕著となる。
【００３９】
次に、上記の例を一般化し、測定点が走査面から外れている場合（第２の方法）について説明する。これは、図１の構成の場合において、レーザスキャナ１０の移動速度が無視できない場合に相当する。この場合、上記の３次元形状データ処理方法に対して以下の変更を行うことが可能である。
【００４０】
この場合、実際の測定点（３次元空間座標点）Ｐ１〜Ｐｋ各点は走査面上に乗らないことになるが、近似的には、Ｐ１〜Ｐｋ各点は、レーザスキャナ１０の移動速度を無視した場合と比べると、走査面から垂直に移動する。なお、この場合の走査面の設定方法については後述する。
【００４１】
このため、３次元空間座標点Ｐ１〜Ｐｋ各点の走査面からの移動方向は、走査面２０１の法線（Ｎ軸）方向となる。この状況を図５に示す。図５は、走査面２０１に対して垂直な断面を模式的に示している。ＱｉはＰｉを走査面２０１に投影した点となり、実際の３次元空間座標点ＰｉはＱｉから走査面２０１の法線方向にΔＰｉだけ離れた点となる。この場合には、Ｑｉについては第１の方法におけるＰｉと同様の取り扱いが可能である。
【００４２】
ここで、Ｎ軸の方向は、Ｕ、Ｖ軸と垂直な方向であり、Ｕ、Ｖ軸の単位ベクトルから外積として算出できるため、情報として記録する必要はない。このため、各点毎に、新たにΔＰｉを記憶していれば、レーザスキャナ１０の移動速度が無視できない場合において、より正確な位置を算出することができる。
【００４３】
ここで、ΔＰｉは例えばＱｉとＱｉ＋１の走査面上の距離と比べて微少量であれば、ΔＰｉを示す数値に要求される精度は高くない。この点を考慮して、ΔＰｉを新たに記録するために要するサイズを小さくすることができる。図６は、上記の点を考慮して図４（ｃ）に示したデータ構造を変形したデータ構造である。ΔＰｉとしては、指数部１バイト、仮数部１バイトで表現した実数とすることができる。指数部（Ｅ）については、全てのＰｉについて共通とすれば、ヘッダ中に設けることができる。この場合、仮数部（Ｍ）についてのみ各点毎に設ければよい。この場合には、図４と同様のデータ点数の場合には、ヘッダが５７バイト、各点毎の情報を記憶する領域が５×１８１バイト＝９０５バイトであり、合計９６２バイトとなる。この場合においても、図４（ａ）の場合と比べて２２％と充分小さく、図４（ｂ）の場合と比べても充分に小さい。ここで、ΔＰｉの絶対値が小さいために、高い精度でＭを１バイトで表現することができる。すなわち、３次元空間座標点Ｐ１〜Ｐｋと走査面との偏差が小さい場合において、位置精度を保持しつつ図６のデータファイルのサイズを小さくすることができる。
【００４４】
この場合の走査面の設定について、以下に説明する。この場合においても、主成分分析を用いることができる。まず、単一の走査面に対応すると推定される測定点Ｐ１〜Ｐｋを３次元空間座標の点群データから抽出する。この抽出は、例えばＰ１〜Ｐｋにおける３次元座標の範囲等を用いて、適宜行うことができる。その後、Ｐ１〜Ｐｋに対して３次元の主成分分析を行い、Ｐ１〜Ｐｋの分布（変動）を最も良好に記載できる面を走査面とすることができる。あるいは、この変動が最も少ない方向をＮ軸方向とすることができる。このため、Ｐ１〜ＰｋはＵ軸、Ｖ軸を用いて最も良好に記載することができ、ΔＰｉはＱｉからの偏差としてＮ軸方向の値として記載することができる。走査面は、Ｇを通りＵ軸とＶ軸を含む平面（あるいはＮ軸を法線とする平面）として定義される。
【００４５】
このように、上記の３次元形状データ処理方法においては、点群のデータファイルを小さなサイズで得ることができる。このデータファイルは、走査面毎に作成される。このデータファイルに対して、既知の符号化方法、例えばハフマン符号化等を用いることにより、データファイルのサイズを更に圧縮することができる。
【００４６】
なお、上記の例では、３次元形状データがレーザスキャナを用いて作成されたものである場合について説明した。しかしながら、上記の通り、厳密には測定点が走査面上に存在しない場合についても上記の３次元形状データ処理方法を適用することができる。これは、この３次元形状データ処理方法が、レーザスキャナを用いた場合に限定されず、複数の３次元空間座標点の点群データに対して一般的に適用できることを意味する。すなわち、こうした場合においても、一群の３次元空間座標点の中の一群に対して主成分分析を用いてＵ、Ｖ軸（仮想的な走査面）を設定し、必要に応じてＮ軸を更に用いて各３次元空間座標点を表示することが可能である。この場合においては、複数の３次元空間座標点の点群データを、小さなデータサイズで圧縮して表現することが可能である。特に、レーザスキャナを用いた場合のように、３次元空間座標点の分布が扁平な場合には、仮想的な走査面を設定しやすく、この走査面から３次元空間座標点までの距離が短くなる（ΔＰｉが小さくなる）ため、有効である。
【００４７】
実際に上記のデータを取得し、上記の３次元形状データ処理方法を実行する３次元形状データ処理装置５０の構成の一例を図７に示す。この３次元形状データ処理装置５０においては、前記のレーザスキャナ１０を用いられるものとする。レーザスキャナ１０は、ＣＰＵ２０により、入出力制御部２１を介して制御される。これにより、レーザスキャナ１０は、レーザ光２００の走査を行い、複数の測定点の３次元空間座標を出力し、この値を入出力制御部２１を介して３次元形状データ処理装置５０に返し、この値はハードディスク（記憶手段）２２に記憶される。このデータ形式は、例えば図４（ａ）の形式であり、各測定点の（ｘ、ｙ、ｚ）座標値である。すなわち、複数の測定点の３次元座標からなる点群データがハードディスク２２に記憶される。
【００４８】
その後、ＣＰＵ２０は、メモリ２３を用いて、この点群データに対して上記の３次元形状データ処理方法を実行し、走査面の設定（推定）、走査面上における測定点の２次元表示、符号化等を行ってデータファイルを作成し、更にこのデータファイルに対して可逆圧縮処理を行い、圧縮後のデータファイルを再びハードディスク２２に記憶させる。
【００４９】
その後、データファイルの送信要求を外部から入出力制御部２１を介してＣＰＵ２０が受けると、ＣＰＵ２０は、ハードディスク２２に記憶された走査面毎の圧縮後のデータファイルを、入出力制御部２１を介して外部に配信する。この配信は、例えばネットワークを介して行うことができる。外部では、このデータファイルを受信してから伸張処理を行い、走査面毎の点群データを得ることができ、これを用いて表示させることが可能である。この点群における各点を連結したポリゴンを用いた表示を行うことが可能である。この際、利用者は、必要な部分が含まれるデータファイルのみを入手することにより、効率的な処理を行うことができる。
【００５０】
なお、この際に、レーザスキャナ１０が得る測定点のデータの一部に欠損が発生する場合もある。この場合は、前記の各走査面のデータ点数ｋが一定ではなく、ｋがｎに依存することになる。こうした場合においては、例えば特許文献１に記載の方法を用いて、ｎ個目の走査面のデータファイルとｎ＋１個目の走査面のデータファイルを用いて、適正なポリゴンを生成することができる。この場合においても、上記のデータファイルは走査毎に生成されるため、効率的に適正なポリゴンを生成することができる。
【００５１】
また、図４、６に示されたように、点群のデータファイルのデータ形式には、本発明の実施の形態に係るものを含め複数の設定が可能である。これらのうちのどのデータ形式を選択するかは、例えばデータの点数、処理時間、要求される精度に応じて適宜設定することが可能である。このためにＣＰＵ２０が実行するフローチャートを図８に示す。ここでは、要求される位置精度をＥＲとして予め設定し、最も圧縮率が高いが最も位置精度の低いデータ形式から、最も圧縮率が低いが最も位置精度の高いデータ形式までが順次選択される。
【００５２】
ここでは、図４（ｃ）のデータ形式を選択する場合を方法１、図６のデータ形式を選択する場合を方法２、図４（ｂ）のデータ形式を選択する場合を方法３、図４（ａ）のデータ形式を選択する場合を方法４とする。前記の通り、データファイルのサイズは、方法１＜方法２≪方法３＜方法４となる。また、一般的には、高い位置精度が得られる順番はこの逆となる。ただし、方法１と方法２における位置精度の劣化は、点群の走査面内の２次元情報を４分木を用いて符号化することによって、抑制されている。このため、方法１、２による位置精度の、方法３、４による位置精度に対する劣化の割合は、データファイルのサイズの縮小の割合と比べて、極めて小さくなる。このため、実際には大半の場合で方法１又は２が選択される。なお、一つの走査面における測定点の数が３点に満たない場合には走査面を特定することができないため、自動的に方法４を選択させることが好ましい。この場合には全体のデータ点数が少ないために、方法４でもデータファイルのサイズは小さくなる。以下では、一つの走査面における測定点の数が３点よりも充分に多いものとする。
【００５３】
図８において、まず、ＣＰＵ２０は、初めにハードディスク２２に記憶された点群データを構成する複数の測定点を、走査面毎に分割して再編成する（Ｓ１）。これは、例えば３次元空間座標における範囲を用いて行うことができる。ただし、レーザスキャナ１０の走査に関する情報がわかっている場合には、この情報を用いてこの分割を特に容易に行うこともできる。この走査面の総数をＮｓとする。一つの走査面における測定点の数は３点以上とする。
【００５４】
次に、要求される位置精度ＥＲが入力され、この値がメモリ２３に記憶される（Ｓ２）。なお、位置精度や誤差の定義は適宜行うことができる。
【００５５】
次に、走査面の指数ｎを１に設定した（Ｓ３）後に、ＣＰＵ２０は、ハードディスク２２から、ｎ＝１の走査面に対応するデータを読み出し（Ｓ４）、方法１によるデータ形式（図４（ｃ））でデータファイル（データ部）を作成し、メモリ２３に記憶する（Ｓ５）。
【００５６】
その後、ＣＰＵ２０は、このデータファイルから各点の位置データを復元し、ハードディスク２２に記憶された元のデータと比較し、この誤差がＥＲ未満であるか否かを判定する（Ｓ６）。この誤差がＥＲ未満であれば、方法１で充分な精度が得られていると判定される。このため、方法１によって作成されたデータファイル（データ部）をハードディスク２２に記憶する（Ｓ２０）。この際、データファイルにおけるインデックス部において、方法１が選択された旨の識別情報、データ全体における走査面の数、データ開始位置、データ点数等、データファイルの利用において必要となる情報も同時に記憶する。これにより、ｎ＝１の走査面に対応した測定点が方法１によって表現されたデータファイルがハードディスク２２に記憶される。
【００５７】
誤差がＥＲ以上であれば（Ｓ６）、ＣＰＵ２０は、今度は方法２によって新たにデータファイルを作成し、メモリ２３に記憶する（Ｓ７）。その後、ＣＰＵ２０は、このデータファイルから各点の位置データを復元し、ハードディスク２２に記憶された元のデータと比較し、この誤差がＥ未満であるか否かを判定する（Ｓ８）。この誤差がＥＲ未満であれば、方法２で充分な精度が得られていると判定される。このため、方法２によって作成されたデータファイルをハードディスク２２に記憶する（Ｓ２０）。この際に、上記と同様に、方法２が選択された旨が記録されたインデックス部も記録される。
【００５８】
誤差がＥＲ以上であれば（Ｓ８）、ＣＰＵ２０は、今度は方法３によって新たにデータファイルを作成し、メモリ２３に記憶する（Ｓ９）。その後、ＣＰＵ２０は、このデータファイルから各点の位置データを復元し、ハードディスク２２に記憶された元のデータと比較し、この誤差がＥＲ未満であるか否かを判定する（Ｓ１０）。この誤差がＥ未満であれば、方法３で充分な精度が得られていると判定される。このため、方法３によって作成されたデータファイルをハードディスク２２に記憶する（Ｓ２０）。この際に、上記と同様に、方法３が選択された旨が記録されたインデックス部も記録される。
【００５９】
この場合においても誤差がＥＲ以上であれば（Ｓ１０）、ＣＰＵ２０は、方法４によってデータファイルを作成し（Ｓ１１）、これをハードディスク２２に記憶する（Ｓ１２）。なお、方法４におけるデータは初めにハードディスク２２に記憶されていたデータと等しいため、この場合の誤差は零となる。
【００６０】
ｎ＝１（Ｓ３）の場合のデータファイルが作成されたら、ｎをインクリメントし（Ｓ２２）、再びＳ４以降の工程を、ｎ＝Ｎｓ（Ｓ２１）となるまで行う。これにより、Ｎｓ個の走査面、すなわち、Ｎｓ個のデータファイルが作成される。３次元空間座標点の点群データは、このＮｓ個のデータファイルで表現される。なお、各データファイルが作成された後で、これを更に符号化した可逆圧縮処理を行うこともできる。
【００６１】
このフローチャートを実行することにより、精度ＥＲを保持したままで最もサイズが小さくなるデータファイル形式を自動的に選択し、ハードディスク２２に記憶させることができる。データファイルは走査毎に作成されるため、このデータファイル形式は走査面毎に異なる場合もあるが、各データファイルのインデックス部に記載された情報より、この識別は容易であるため、外部でこのデータを利用する際には問題になることはない。
【００６２】
また、上記の方法２によるデータファイル作成（Ｓ７）の詳細を示すフローチャートが図９である。
【００６３】
まず、ＣＰＵ２０は、一つの走査面に対応する３次元空間座標点の点群（Ｐｉ（ｉ＝１〜ｋ））の平均位置Ｇを算出する（Ｓ７１）。すなわち、（Ｇｘ、Ｇｙ、Ｇｚ）を算出する。
【００６４】
次に、Ｇを原点としてＰｉの空間座標を書き直した上で、Ｐｉの座標に関する主成分分析を行う（Ｓ７２）。これにより、Ｐｉの分布（位置の変動）が最も大きくなる方向として走査面（Ｕ軸、Ｖ軸が含まれる面）が設定される。あるいは、この分布が最も小さくなる方向にＮ軸が設定される。この走査面上においてこの分布を最も良好に記述できる軸としてＵ軸、Ｖ軸が設定される。
【００６５】
次に、各点Ｐｉをこの走査面に投影した位置Ｑｉの座標と、Ｐｉと走査面との間の距離（Ｎ軸方向の距離）ΔＰｉを算出する（Ｓ７３）。
【００６６】
次に、Ｇの位置情報（Ｇｘ、Ｇｙ、Ｇｚ）と、Ｕ軸、Ｖ軸の単位ベクトル成分を、図５におけるヘッダとしてメモリ２３に書き込む（Ｓ７４）。なお、Ｕ軸、Ｖ軸の方向が定まればＮ軸の方向は定まるため、Ｎ軸に関する情報を記録する必要はない。
【００６７】
次に、走査面上での４分木による符号化に用いる領域を設定し、図５におけるヘッダとしてメモリ２３に書き込む（Ｓ７５）。この設定は、例えばＵ軸、Ｖ軸におけるＰｉ（ｉ＝１〜ｋ）の最大値、最小値等を用いて設定することが可能である。
【００６８】
次に、ΔＰｉの指数部Ｅを図５におけるヘッダとしてメモリ２３に書き込む（Ｓ７６）。これは、例えばΔＰｉ（ｉ＝１〜ｋ）の最大値等を用いて設定することができる。
【００６９】
次に、ｉ＝１と設定し（Ｓ７７）、Ｐ１について前記の４分木符号化を用いて、Ｐ１を符号化する（Ｓ７８）。これにより、符号化された走査面上のＰ１の座標と、ΔＰ１の仮数部Ｍをメモリ２３に書き込む（Ｓ７９）。
【００７０】
次に、ｉをインクリメント（Ｓ８０）し、再度Ｑｉの符号化を行い（Ｓ７８）、ΔＰｉの仮数部Ｍと共に順次メモリ２３に書き込む（Ｓ７９）動作を、ｉ＝ｋとなる（Ｓ８１）まで繰り返すことにより、図６のデータファイルを得ることができる。
【００７１】
上記の方法１によるデータファイル作成（Ｓ２）は、図９のフローチャートにおいて、ΔＰｉ≡０、Ｐｉ≡Ｑｉとした場合に相当する。このため、Ｓ７３、Ｓ７９においてΔＰｉに関する書き込みを行わないものとして、図９の処理をより単純化して実行することができる。この場合、走査面の設定（Ｓ７２）やＰｉ（≡Ｑｉ）の４分木符号化等については方法２と同様であるため、方法１を実行する際（Ｓ５）と方法２を実行する際（Ｓ７）でこれらの結果を共通に用いることができる。
【００７２】
また、レーザスキャナ１０が用いられ、レーザ光の走査速度が充分高いことが予め判明している場合には、方法１で充分な精度が得られることは明らかであるため、方法１のみを行う設定とすることができる。
【００７３】
このように、上記の３次元形状データ処理方法、３次元形状データ処理装置を用いることにより、小さなデータサイズで３次元形状を表現するデータファイルを作成することができる。このデータファイルを用いることにより、利用者は、必要な箇所に対応するデータを効率的に入手し、表示させることができる。
【００７４】
前記の通り、３次元形状を計測したレーザスキャナの走査速度が、その移動速度よりも充分に速ければ、方法１によって充分に高い精度を得ることは可能である。特許文献１に記載のような、車両にレーザスキャナを搭載して地形を計測する場合には、一般的にこの条件は満たされる。このため、こうした場合に得られたデータに対しては上記の構成は特に有効である。
【００７５】
あるいは、特許文献２に記載のように、レーザスキャナが航空機に搭載される場合であっても、レーザスキャナの走査周波数は一般にはｋＨｚ以上と高いために、上記の条件は満たされる。このため、上記の構成は有効である。すなわち、レーザスキャナが移動体に搭載されることによって走査面が順次移動する構成の場合においては、上記の３次元形状データ処理方法は特に有効である。また、航空機からデータファイルを転送する場合には、無線で行うことが必須であり、無線通信条件も必ずしも良好とは限らないため、データファイルのサイズを小さくできる上記の構成は特に有効である。
【００７６】
更に、一般的に３次元形状をディスプレイ等で表示させる場合において、所望の領域のみを短い待ち時間で表示させたい場合には、必要な箇所に対応した小さなサイズをもったデータファイルを選択的に取り扱うことのできる上記の構成は、有効である。
【００７７】
このように、上記の３次元形状データ処理方法は、地形の計測に限定されず、一般的な３次元形状データを扱う際、例えばレーザスキャナを用いて場合以外においても、３次元形状に対応した３次元空間座標点の点群データを取り扱う際に有効である。
【符号の説明】
【００７８】
１０  レーザスキャナ
２０  ＣＰＵ
２１  入出力制御部
２２  ハードディスク（記憶手段）
２３  メモリ
５０  ３次元形状データ処理装置
１００  車両
１１０  ＧＰＳ装置
１２０  第１レーザスキャナ（レーザスキャナ）
１３０  第２レーザスキャナ（レーザスキャナ）
１４０  第１カメラ
１５０  第２カメラ
２００  レーザ光
２０１、２０２  走査面
３００  対象物
【図１】
0005294177.tif 000002
【図２】
0005294177.tif 000003
【図３】
0005294177.tif 000004
【図４】
0005294177.tif 000005
【図５】
0005294177.tif 000006
【図６】
0005294177.tif 000007
【図７】
0005294177.tif 000008
【図８】
0005294177.tif 000009
【図９】
0005294177.tif 000010
【図１０】
0005294177.tif 000011