【文献】
PAPON Jeremie, et al.,Voxel Cloud Connectivity Segmentation - Supervoxels for Point Clouds,2013 IEEE Conference on Computer Vision and Pattern Recognition,2013年,pp.2027-2034
【文献】
LI Bo,3D Fully Convolutional Network for Vehicle Detection in Point Cloud,2017 IEEE/RSJ International Conference on Inteligent Robots and Systems,2017年,pp.1513-1518
(58)【調査した分野】(Int.Cl.,DB名)
各点の3次元位置及び前記各点の反射強度を示すIntensity値を含む3次元点群と、地面高さとを入力した場合、前記3次元点群の各点の地上高を算出し、算出した地上高を付与した地上高付3次元点群を出力する地上高算出部と、
前記地上高付3次元点群を入力として、前記地上高付3次元点群の各点について、前記Intensity値を、色情報を示すRGB値に変換して得られたIntensity-RGB変換済地上高付3次元点群を出力するIntensity-RGB変換部と、
前記Intensity-RGB変換済地上高付3次元点群と、前記3次元点群の各点について予め付与されたラベルを含む学習用点群ラベルと、クラスタリングハイパーパラメータとを入力として、前記3次元位置及び前記RGB値を用いて、前記Intensity-RGB変換済地上高付3次元点群を複数のスーパーボクセルにクラスタリングし、スーパーボクセルの各々についてスーパーボクセルの構成要素の個々の点の3次元位置と属性、及びスーパーボクセルの中心位置と属性を示す正解ラベル付スーパーボクセルデータを出力するスーパーボクセルクラスタリング部と、
前記正解ラベル付スーパーボクセルデータと、ディープニューラルネットワークハイパーパラメータとを入力として、前記スーパーボクセルの各々についてスーパーボクセルの構成要素の個々の点の3次元位置と属性、及びスーパーボクセルの中心位置と属性を示すスーパーボクセルデータから前記ラベルを推定するためのディープニューラルネットワークの学習済ディープニューラルネットワークパラメータを学習するディープニューラルネットワーク学習部と、
を備えた3次元点群ラベル学習装置。
各点の地上高を含む3次元位置、及び前記各点の反射強度を示すIntensity値又は色情報を示すRGB値を含む3次元点群と、前記3次元点群の各点について予め付与されたラベルを含む学習用点群ラベルと、クラスタリングハイパーパラメータとを入力として、前記3次元位置を用いて、前記3次元点群を複数のスーパーボクセルにクラスタリングし、スーパーボクセルの各々についてスーパーボクセルの構成要素の個々の点の3次元位置と属性、及びスーパーボクセルの中心位置と属性を示す正解ラベル付スーパーボクセルデータを出力するスーパーボクセルクラスタリング部と、
前記正解ラベル付スーパーボクセルデータと、ディープニューラルネットワークハイパーパラメータとを入力として、前記スーパーボクセルの各々についてスーパーボクセルの構成要素の個々の点の3次元位置と属性、及びスーパーボクセルの中心位置と属性を示すスーパーボクセルデータから前記ラベルを推定するためのディープニューラルネットワークの学習済ディープニューラルネットワークパラメータを学習するディープニューラルネットワーク学習部と、
を備えた3次元点群ラベル学習装置。
各点の3次元位置及び前記各点の反射強度を示すIntensity値を含む3次元点群と、地面高さとを入力した場合、前記3次元点群の各点の地上高を算出し、算出した地上高を付与した地上高付3次元点群を出力する地上高算出部と、
前記地上高付3次元点群を入力として、前記地上高付3次元点群の各点について、前記Intensity値を、色情報を示すRGB値に変換して得られたIntensity-RGB変換済地上高付3次元点群を出力するIntensity-RGB変換部と、
前記Intensity-RGB変換済地上高付3次元点群と、クラスタリングハイパーパラメータとを入力として、前記3次元位置及び前記RGB値を用いて、前記Intensity-RGB変換済地上高付3次元点群を複数のスーパーボクセルにクラスタリングし、スーパーボクセルの各々についてスーパーボクセルの構成要素の個々の点の3次元位置と属性、及びスーパーボクセルの中心位置と属性を示すスーパーボクセルデータを出力するスーパーボクセルクラスタリング部と、
前記スーパーボクセルデータと、ディープニューラルネットワークハイパーパラメータと、前記スーパーボクセルの各々についてスーパーボクセルの構成要素の個々の点の3次元位置と属性、及びスーパーボクセルの中心位置と属性を示すスーパーボクセルデータからラベルを推定するためのディープニューラルネットワークの予め学習された学習済ディープニューラルネットワークパラメータとを入力として、前記ディープニューラルネットワークを用いて、前記スーパーボクセルの各々についての推定ラベルを導出し、導出した推定ラベルを付与した推定ラベル付3次元点群を出力するディープニューラルネットワーク推定部と、
を備えた3次元点群ラベル推定装置。
各点の地上高を含む3次元位置、及び前記各点の反射強度を示すIntensity値又は色情報を示すRGB値を含む3次元点群と、クラスタリングハイパーパラメータとを入力として、前記3次元位置を用いて、前記3次元点群を複数のスーパーボクセルにクラスタリングし、スーパーボクセルの各々についてスーパーボクセルの構成要素の個々の点の3次元位置と属性、及びスーパーボクセルの中心位置と属性を示すスーパーボクセルデータを出力するスーパーボクセルクラスタリング部と、
前記スーパーボクセルデータと、ディープニューラルネットワークハイパーパラメータと、前記スーパーボクセルの各々についてスーパーボクセルの構成要素の個々の点の3次元位置と属性、及びスーパーボクセルの中心位置と属性を示すスーパーボクセルデータからラベルを推定するためのディープニューラルネットワークの予め学習された学習済ディープニューラルネットワークパラメータとを入力として、前記ディープニューラルネットワークを用いて、前記スーパーボクセルの各々についての推定ラベルを導出し、導出した推定ラベルを付与した推定ラベル付3次元点群を出力するディープニューラルネットワーク推定部と、
を備えた3次元点群ラベル推定装置。
地上高算出部が、各点の3次元位置及び前記各点の反射強度を示すIntensity値を含む3次元点群と、地面高さとを入力した場合、前記3次元点群の各点の地上高を算出し、算出した地上高を付与した地上高付3次元点群を出力するステップと、
Intensity-RGB変換部が、前記地上高付3次元点群を入力として、前記地上高付3次元点群の各点について、前記Intensity値を、色情報を示すRGB値に変換して得られたIntensity-RGB変換済地上高付3次元点群を出力するステップと、
スーパーボクセルクラスタリング部が、前記Intensity-RGB変換済地上高付3次元点群と、前記3次元点群の各点について予め付与されたラベルを含む学習用点群ラベルと、クラスタリングハイパーパラメータとを入力として、前記3次元位置及び前記RGB値を用いて、前記Intensity-RGB変換済地上高付3次元点群を複数のスーパーボクセルにクラスタリングし、スーパーボクセルの各々についてスーパーボクセルの構成要素の個々の点の3次元位置と属性、及びスーパーボクセルの中心位置と属性を示す正解ラベル付スーパーボクセルデータを出力するステップと、
ディープニューラルネットワーク学習部が、前記正解ラベル付スーパーボクセルデータと、ディープニューラルネットワークハイパーパラメータとを入力として、前記スーパーボクセルの各々についてスーパーボクセルの構成要素の個々の点の3次元位置と属性、及びスーパーボクセルの中心位置と属性を示すスーパーボクセルデータから前記ラベルを推定するためのディープニューラルネットワークの学習済ディープニューラルネットワークパラメータを学習するステップと、
を含む3次元点群ラベル学習方法。
地上高算出部が、各点の3次元位置及び前記各点の反射強度を示すIntensity値を含む3次元点群と、地面高さとを入力した場合、前記3次元点群の各点の地上高を算出し、算出した地上高を付与した地上高付3次元点群を出力するステップと、
Intensity-RGB変換部が、前記地上高付3次元点群を入力として、前記地上高付3次元点群の各点について、前記Intensity値を、色情報を示すRGB値に変換して得られたIntensity-RGB変換済地上高付3次元点群を出力するステップと、
スーパーボクセルクラスタリング部が、前記Intensity-RGB変換済地上高付3次元点群と、クラスタリングハイパーパラメータとを入力として、前記3次元位置及び前記RGB値を用いて、前記Intensity-RGB変換済地上高付3次元点群を複数のスーパーボクセルにクラスタリングし、スーパーボクセルの各々についてスーパーボクセルの構成要素の個々の点の3次元位置と属性、及びスーパーボクセルの中心位置と属性を示すスーパーボクセルデータを出力するステップと、
ディープニューラルネットワーク推定部が、前記スーパーボクセルデータと、ディープニューラルネットワークハイパーパラメータと、前記スーパーボクセルの各々についてスーパーボクセルの構成要素の個々の点の3次元位置と属性、及びスーパーボクセルの中心位置と属性を示すスーパーボクセルデータからラベルを推定するためのディープニューラルネットワークの予め学習された学習済ディープニューラルネットワークパラメータとを入力として、前記ディープニューラルネットワークを用いて、前記スーパーボクセルの各々についての推定ラベルを導出し、導出した推定ラベルを付与した推定ラベル付3次元点群を出力するステップと、
を含む3次元点群ラベル推定方法。
コンピュータを、請求項1又は2に記載の3次元点群ラベル学習装置が備える各部、又は、請求項3又は4に記載の3次元点群ラベル推定装置が備える各部として機能させるためのプログラム。
【発明を実施するための形態】
【0018】
以下、図面を参照して、本発明を実施するための形態の一例について詳細に説明する。
【0019】
本実施形態に係る3次元点群ラベル推定装置は、上述の3次元点群を入力として、3次元点群に含まれる各点についての位置情報及び属性情報から、それぞれの点のラベルを推定する。また、本実施形態に係る3次元点群ラベル学習装置は、この3次元点群ラベル推定装置によるラベル推定機能を実現するための学習を行う。本実施形態に係る3次元点群ラベル学習装置及び3次元点群ラベル推定装置は、後述する1つの3次元点群ラベル学習推定装置により実現される。
【0020】
ここで、点の属性情報には、上述したように、点の反射強度を示すIntensity値や、色情報を示すRGB値等があるが、本実施形態においては特に限定されない。また、ラベルとは、各点がどのような物体に属するかを示すものである。例えば、市街地を計測した点群の場合、一例として、建物、道路、樹木、標識等を示すラベルがある。ラベルの種類については、利用者が任意に設定できるものであり、本実施形態においては特に限定されない。
【0021】
本実施形態においては、特に点群を構成する点数や点群の空間的な範囲に制限がない大規模な点群を対象とする。例えば、市街地を計測した点群では、計測する範囲の面積を大きくすれば、際限なく点群を構成する点数や点群の空間的な範囲を大きくすることができる。本実施形態ではそのような大規模な点群を対象とする。
【0022】
<3次元点群ラベル学習推定装置の構成>
【0023】
図1は、本実施形態に係る3次元点群ラベル学習推定装置10の機能的な構成の一例を示すブロック図である。
図1に示すように、本実施形態に係る3次元点群ラベル学習推定装置10は、記憶部12と、地上高算出部14と、Intensity-RGB変換部16と、スーパーボクセルクラスタリング部18と、ディープニューラルネットワーク学習部20と、ディープニューラルネットワーク推定部22と、を備えている。
【0024】
3次元点群ラベル学習推定装置10は、電気的には、CPU(Central Processing Unit)、RAM(Random Access Memory)、及びROM(Read Only Memory)等を備えたコンピュータとして構成される。なお、3次元点群ラベル学習推定装置10には、GPU(Graphics Processing Unit)を含んでいてもよい。また、ROMには、本実施形態に係る3次元点群ラベル学習推定処理プログラムが記憶されている。この3次元点群ラベル学習推定処理プログラムにより、後述する推定処理ルーチンや学習処理ルーチンが実行される。
【0025】
上記の3次元点群ラベル学習推定処理プログラムは、例えば、3次元点群ラベル学習推定装置10に予めインストールされていてもよい。この3次元点群ラベル学習推定処理プログラムは、不揮発性の記憶媒体に記憶して、又は、ネットワークを介して配布して、3次元点群ラベル学習推定装置10に適宜インストールすることで実現してもよい。なお、不揮発性の記憶媒体の例としては、CD-ROM(Compact Disc Read Only Memory)、光磁気ディスク、DVD-ROM(Digital Versatile Disc Read Only Memory)、フラッシュメモリ、メモリカード等が挙げられる。
【0026】
CPUは、ROMに記憶されている3次元点群ラベル学習推定処理プログラムを読み込んで実行することにより、上記の地上高算出部14、Intensity-RGB変換部16、スーパーボクセルクラスタリング部18、ディープニューラルネットワーク学習部20、及びディープニューラルネットワーク推定部22として機能する。
【0027】
また、記憶部12には、不揮発性の記憶装置が適用される。記憶部12には、3次元点群12A、地面高さ12B、地上高付3次元点群12C、Intensity-RGB変換済地上高付3次元点群12D、学習用点群ラベル12E、クラスタリングハイパーパラメータ12F、スーパーボクセルデータ12G(学習時は正解ラベル付スーパーボクセルデータ)、ディープニューラルネットワークハイパーパラメータ12H、学習済ディープニューラルネットワークパラメータ12I、及び推定ラベル付3次元点群12Jが記憶される。
【0028】
本実施形態に係る3次元点群ラベル学習推定装置10は、学習時には3次元点群ラベル学習装置として機能し、推定時には3次元点群ラベル推定装置として機能する。
【0029】
図2は、本実施形態に係る3次元点群ラベル学習装置10Aの機能的な構成の一例を示すブロック図である。
【0030】
学習時における3次元点群ラベル学習装置10Aでは、ディープニューラルネットワーク推定部22及び推定ラベル付3次元点群12Jを用いない構成とされる。
【0031】
本実施系形態に係る地上高算出部14は、各点の3次元位置(x,y,z)及び各点の反射強度を示すIntensity値を含む3次元点群12Aと、地面高さ12Bとを入力した場合、3次元点群12Aの各点の地上高を算出し、算出した地上高を付与した地上高付3次元点群12Cを出力する。
【0032】
ここで、
図3を参照して、入力となる3次元点群12Aについて説明する。なお、
図3は、本実施形態に係る3次元点群12Aの一例を示す図である。また、
図3に示す3次元点群12Aの例は、実際にはカラー画像で示されるものであるが、本例では便宜上グレースケール画像として示している。
【0033】
3次元点群12Aは、各点について、3次元位置(x,y,z)と、属性値としてIntensity値とを持つ点の集合である。本実施形態では、3次元位置について、zが点の高さを示し、x,yが点の水平位置を示すものとするが、これらx,y,zのとり方は自由である。
【0034】
また、学習用の3次元点群データには、3次元点群12Aのそれぞれの点がどんな種類の物体に属するかを示すラベルである学習用点群ラベル12Eが付与されている。学習用点群ラベル12Eは、学習に先立って人が手作業で作成するものである。推定用の3次元点群データには、このラベルは不要であるが、前処理で一部のラベル(地面など)が付与されている場合もある。学習用の3次元点群データ及び推定用の3次元点群データに関わらず特に地面のラベルが付与されている場合は、地上高算出部14でその情報を利用してもよい。
【0035】
本実施形態に係るIntensity-RGB変換部16は、地上高付3次元点群12Cを入力として、地上高付3次元点群12Cの各点について、Intensity値を、色情報を示すRGB値に変換して得られたIntensity-RGB変換済地上高付3次元点群12Dを出力する。
【0036】
本実施形態に係るスーパーボクセルクラスタリング部18は、Intensity-RGB変換済地上高付3次元点群12Dと、3次元点群12Aの各点について予め付与されたラベルを含む学習用点群ラベル12Eと、クラスタリングハイパーパラメータ12Fとを入力として、3次元位置及びRGB値を用いて、Intensity-RGB変換済地上高付3次元点群12Dを複数のスーパーボクセルにクラスタリングし、クラスタリングしたスーパーボクセルの各々についてのIntensity値及び地上高を含む属性と点群情報とを示す正解ラベル付スーパーボクセルデータを出力する。
【0037】
本実施形態に係るディープニューラルネットワーク学習部20は、正解ラベル付スーパーボクセルデータと、ディープニューラルネットワークハイパーパラメータ12Hとを入力として、スーパーボクセルの属性及び点群情報を示すスーパーボクセルデータ12Gからラベルを推定するためのディープニューラルネットワークの学習済ディープニューラルネットワークパラメータ12Iを学習する。
【0038】
また、3次元点群12Aのそれぞれの点のz座標をそのまま地上高として扱うと共に、クラスタリングにおいてRGB値を用いない形態としてもよい。この場合、スーパーボクセルクラスタリング部18は、各点の地上高を含む3次元位置、及び各点のIntensity値又はRGB値を含む3次元点群12Aと、学習用点群ラベル12Eと、クラスタリングハイパーパラメータ12Fとを入力として、3次元位置を用いて、3次元点群12Aを複数のスーパーボクセルにクラスタリングし、クラスタリングしたスーパーボクセルの各々についてのIntensity値及び地上高を含む属性と点群情報とを示す正解ラベル付スーパーボクセルデータを出力する。なお、3次元点群12Aが、Intensity値に代えて各点のRGB値を含む場合には、正解ラベル付スーパーボクセルデータが、属性として、Intensity値に代えてRGB値を含むようにしてもよい。また、3次元点群12Aが、各点のIntensity値及びRGB値の両方を含む場合には、正解ラベル付スーパーボクセルデータが、属性として、Intensity値及びRGB値の両方を含むようにしてもよい。ディープニューラルネットワーク学習部20は、正解ラベル付スーパーボクセルデータと、ディープニューラルネットワークハイパーパラメータ12Hとを入力として、スーパーボクセルの属性及び点群情報を示すスーパーボクセルデータ12Gからラベルを推定するためのディープニューラルネットワークの学習済ディープニューラルネットワークパラメータ12Iを学習する。つまり、この形態では、地上高算出部14及びIntensity-RGB変換部16を不要としてもよい。
【0039】
次に、
図4を参照して、本実施形態に係る3次元点群ラベル学習装置10Aの作用について説明する。なお、
図4は、本実施形態に係る3次元点群ラベル学習推定処理プログラムによる学習処理ルーチンの処理の流れの一例を示すフローチャートである。
【0040】
図4のステップ100では、地上高算出部14が、学習用点群としての3次元点群12Aと、任意の地面高さ12Bとの入力を受け付ける。
【0041】
ステップ102では、地上高算出部14が、地面高さ12Bを用いて、3次元点群12Aに含まれる各点の地上高を算出し、算出した地上高を付与した地上高付3次元点群12Cを出力する。なお、地面高さ12Bが与えられない場合、3次元点群12Aに地面の属性のラベルが事前に付与されているものとする。点群に地面の属性のラベルを付与する方法としては、例えば、RANSAC(Random Sample Consensus)により平面を3次元点群に当てはめ、当てはめた平面からある閾値以下の距離にある点を地面とする方法を適用してもよい。
【0042】
また、地面高さ12Bが与えられている場合、3次元点群12Aのそれぞれの点のz座標から地面の高さを減じることで点の地上高を算出する。一方、3次元点群12Aに地面の属性のラベルが事前に付与されている場合、3次元点群12Aのそれぞれの点のz座標から、その点から最も近くにある地面のラベルが付与された点のz座標を減じることで地上高を算出する。いずれの場合も算出された地上高情報を、入力された3次元点群12Aに付与し、地上高付3次元点群12Cとして出力する。
【0043】
ステップ104では、Intensity-RGB変換部16が、地上高付3次元点群12Cを入力とし、地上高付3次元点群12Cの各点について、Intensity値をRGB値に変換して得られたIntensity-RGB変換済地上高付3次元点群12Dを出力する。なお、Intensity値をRGB値に変換する理由は、次に続くスーパーボクセルクラスタリング部18でのクラスタリングにRGB値を利用するためである。
【0044】
なお、3次元点群12Aの各点がIntensity値に代えてRGB値を属性として持っている場合には、Intensity-RGB変換を行う必要がない。このため、地上高算出部14から出力された地上高付3次元点群12Cは、スーパーボクセルクラスタリング部18に直接入力される。つまり、この場合、Intensity-RGB変換部16はスキップされる。
【0045】
また、3次元点群12Aのそれぞれの点のz座標をそのまま地上高として扱い、3次元位置のみを用いる場合には、地上高を算出する必要がなく、更には、Intensity-RGB変換を行う必要もない。このため、3次元点群12Aは、スーパーボクセルクラスタリング部18に直接入力される。つまり、この場合、地上高算出部14及びIntensity-RGB変換部16はスキップされる。
【0046】
ここで、地上高付3次元点群12Cが属性として各点のIntensity値を持つ場合、Intensity-RGB変換部16は、各点のIntensity値をRGB値に変換する際に、以下の処理を行う。
【0047】
地上高付3次元点群12Cに含まれるそれぞれの点のIntensity値(intensity)を読み込み、最大値(max_intensity)を得る。それぞれの点のRGB値を、以下に示す式(1)を用いて導出する。
【0049】
上記式(1)において、max_valueは、R,G,Bの各々の値がとりうる最大値である。例えば、R,G,Bがそれぞれ8bit符号無し整数型である場合は、max_value=255である。R,G,Bの各々の値を算出したら、その値を入力された地上高付3次元点群12Cに付与し、Intensity-RGB変換済地上高付3次元点群12Dとして出力する。
【0050】
ステップ106では、スーパーボクセルクラスタリング部18が、Intensity-RGB変換済地上高付3次元点群12Dと、学習用点群ラベル12Eと、クラスタリングハイパーパラメータ12Fとを入力として、3次元位置及びRGB値を用いて、Intensity-RGB変換済地上高付3次元点群12Dを複数のスーパーボクセルにクラスタリングし、クラスタリングしたスーパーボクセルの各々についての属性及び点群情報を示す正解ラベル付スーパーボクセルデータを出力する。なお、学習用点群ラベル12Eが入力されるのは学習時のみであり、推定時には入力されない。
【0051】
スーパーボクセルクラスタリング部18では、一例として、下記に示す非特許文献2に記載された方法を用いて、Intensity-RGB変換済地上高付3次元点群12Dの分割を行う。
【0052】
【非特許文献2】Papon, A. Abramov, M. Schoeler and F. Woergoetter, "Voxel Cloud Connectivity Segmentation - Supervoxels for Point Clouds," 2013 IEEE Conference on Computer Vision and Pattern Recognition, Portland, OR, 2013, pp. 2027-2034.
【0053】
具体的には、以下に示す処理(S1〜S5)を実施する。
(S1)クラスタリングハイパーパラメータ12Fを読み込む。クラスタリングハイパーパラメータ12Fは、r_seed, r_voxel, w_c, w_s, w_nの5つのパラメータからなる。
【0054】
(S2)Intensity-RGB変換済地上高付3次元点群12Dの座標(x,y,z)に注目し、一辺の長さがr_voxelのボクセルに分割する。
【0055】
(S3)分割されたボクセルについて、(x,y,z)方向に、距離r_seedごとにボクセルを抽出し、それをセグメンテーションの核となるボクセル(核ボクセル)を設定する。これらの核ボクセルは一つ一つ異なるスーパーボクセルに属する。ここで、点とは、xyz座標と任意の数の属性 (intensityやRGBなど)をもつデータである。ボクセルとは、xyz空間を予め定めた大きさの立方体に区切って、その立方体に含まれる点をまとめたものである。従って、点が存在しない区画にはボクセルも存在しない。それぞれのボクセルについて、xyz座標は立方体の中心、RGB値はボクセル内に存在する点のRGB値の平均、法線ベクトルはボクセル内に存在する点の法線ベクトルの平均となる。また、ボクセルの一部が核ボクセルとなる。この核ボクセルの選別は、上記のように、xyzそれぞれの方向に距離r_seedごとにボクセルを抽出することで実施する。この核ボクセルは、スーパーボクセルクラスタリング(浸潤的なクラスタリング法)をする際の起点となるボクセルである。スーパーボクセルとは、スーパーボクセルクラスタリングの出力であり、複数のボクセルの集まりである、このスーパーボクセルは、1つの核ボクセルとその核ボクセルと同じ領域にクラスタリングされたボクセルからなる。核ボクセルの数とスーパーボクセルの数は同じである。
【0056】
(S4)それぞれの核ボクセルから始めて隣接ボクセルを浸潤的に探索し、下記に示す式(2)の距離指標Dによりボクセルの所属するスーパーボクセルを決定する。この処理により、各ボクセルは、式(2)の距離指標Dが計算されたもののうち最小であり、かつ空間的に連結している核ボクセルが属するスーパーボクセルに所属される。
【0058】
上記式(2)において、w_c, w_s, w_n, r_seedは、クラスタリングハイパーパラメータ12Fであり、D_c, D_s, D_nは、それぞれ注目しているボクセルと核ボクセルとのRGB値がなす距離、3次元位置がなす距離、法線がなす距離である。なお、クラスタリングにRGB値を用いない場合、D_c=0とする。
【0059】
(S5)複数のスーパーボクセルにクラスタリングされた点群を、一例として、
図5に示すようなスーパーボクセルデータ12Gとして保存する。なお、
図5に示すスーパーボクセルデータ12Gの例は、実際にはカラー画像で示されるものであるが、本例では便宜上グレースケール画像として示している。また、保存するスーパーボクセルデータ12Gには、以下に示すデータ(D1〜D4)が含まれる。
【0060】
(D1)center: スーパーボクセルに属する点群の(x,y,z)の平均値。
(D2)positions: 原点を上記centerとした、スーパーボクセルに属する全ての点の(x,y,z)座標。
(D3)point_attributes: スーパーボクセルに属する点群が持つ属性情報(Intensity, RGBなど)、Intensity-RGB変換部16で変換した結果得られたRGB値は含めない。以下、point_attributesに含まれる属性数をaとする。なお、3次元点群12Aが、Intensity値に代えて各点のRGB値を含む場合には、このpoint_attributesに、Intensity値に代えてRGB値が含まれる。また、3次元点群12Aが、各点のIntensity値及びRGB値の両方を含む場合には、このpoint_attributesに、Intensity値及びRGB値の両方が含まれる。
(D4)supervoxel_attributes: スーパーボクセルに含まれる点の地上高の平均値(height)、スーパーボクセルに含まれる点数(num_of_points)、その他スーパーボクセルについて導出された任意の数の特徴量を含む。以下、supervoxel_attributesに含まれる属性数をbとする。
【0061】
なお、学習時に得られる正解ラベル付スーパーボクセルデータは、上記スーパーボクセルデータ12Gに、以下のデータ(D5)が付与されたものである。
(D5)(学習時のみ)labels: 正解ラベル。スーパーボクセルに含まれる点が所属するラベルを、学習用点群ラベルを参照して探索し、スーパーボクセル内で所属する点が最も大きくなるラベルを設定する。ただし、スーパーボクセル内に所属する点のラベルの最大数がスーパーボクセルを構成する点数の閾値未満であれば、「その他」のラベルを付与する。閾値は例えば50%など。その他を含めてk種類のラベルがあるとし、データは、0,1,...,k-1の整数である。
【0062】
なお、このステップ106で生成された正解ラベル付スーパーボクセルデータはM個のスーパーボクセルからなるとする。また、スーパーボクセルクラスタリング部18では、Intensity値に代えてRGB値を含む地上高付3次元点群12Cと、学習用点群ラベル12Eと、クラスタリングハイパーパラメータ12Fとが入力された場合、3次元位置及びRGB値を用いて、地上高付3次元点群12Cを複数のスーパーボクセルにクラスタリングしてもよい。また、スーパーボクセルクラスタリング部18では、各点の地上高を含む3次元位置及びIntensity値を含む3次元点群12Aと、学習用点群ラベル12Eと、クラスタリングハイパーパラメータ12Fとが入力された場合、3次元位置を用いて、3次元点群12Aを複数のスーパーボクセルにクラスタリングしてもよい。
【0063】
ステップ108では、ディープニューラルネットワーク学習部20が、正解ラベル付スーパーボクセルデータと、ディープニューラルネットワークハイパーパラメータ12Hとを入力として、スーパーボクセルの属性及び点群情報を示すスーパーボクセルデータ12Gからラベルを推定するためのディープニューラルネットワークの学習済ディープニューラルネットワークパラメータ12Iを学習して出力し、本学習処理ルーチンを終了する。
【0064】
なお、以下、スーパーボクセルクラスタリング部18による処理の結果得られたM個のスーパーボクセルをM_1個の学習データセットと、M_2の検証データセットに分割するとする。この場合、M_1 + M_2 = Mである。M_1とM_2は自由に設定してよいが、通常M_1をMの0.8から0.9倍程度の大きさとする。
【0065】
なお、上記のディープニューラルネットワークハイパーパラメータ12Hとは、以下に示す情報(1〜8)を含むディープニューラルネットワークの学習方法を定めるパラメータセットである。括弧内は変数名を表す。
【0066】
(1)入力点数(N): スーパーボクセル1つあたりでディープニューラルネットワークの入力として受け取る最大の点数を定める。
(2)最適化アルゴリズム(optimizer): ディープニューラルネットワークの最適化方法を定める(Gradient Decent, Moment, Adamなど)。
(3)学習効率(learning_rate): 初期のディープニューラルネットワークパラメータ更新の効率。
(4)学習効率減衰率(decay_rate): 学習効率の減衰を算出する際に用いる値。
(5)学習効率減衰ステップ(decay_steps): 学習効率の減衰を算出する際に用いる値。
(6)学習エポック数(max_epoch): ディープニューラルネットワークパラメータの更新を実施するエポック数。
(7)バッチサイズ(batch_size): ディープニューラルネットワークパラメータの1度の更新の際に用いるデータ(スーパーボクセル)の数。
(8)ラベル数(k):「その他」を含めたラベルの総数。
【0067】
なお、上記のディープニューラルネットワークハイパーパラメータ12Hは、パラメータの入力点数(N)とラベル数(k)を除いて、本実施形態に限らず一般的にディープニューラルネットワークの学習時に定めるパラメータである。本実施形態では、ディープニューラルネットワークの最適化の方法を限定するものではなく、本パラメータセットは他の公知のパラメータの組み合わせに置き換えられるものである。
【0068】
一例として、optimizerに、Gradient Descentが選択された際のディープニューラルネットワークパラメータの更新式を式(3)に示す。
【0070】
なお、上記式(3)において、batch_indexは、重み更新に用いているbatchのインデックス(0,1,..., M_1/batch_size - 1)である。なお、batch_indexは、整数であるため、M_1/batch_sizeの除算の結果は整数になるように小数点以下を切り捨てとする。current_epochは、現在のepoch数(0,1,....max_epoch-1)である。batch_lossは、batch_size個の学習データのlossの総和(lossは1つのデータについてのディープニューラルネットワークの出力とone hot encodingされた正解ラベルとの交差エントロピー)である。w_{i}は、i回目の更新後のディープニューラルネットワークパラメータである。
【0071】
学習済ディープニューラルネットワークパラメータ12Iは、ディープニューラルネットワークの各リンクの重みとバイアスの集合からなるデータである。毎エポック終了後に検証データセット全体のloss(total_loss)を評価し、total_lossが最小となった際のディープニューラルネットワークパラメータを学習済ディープニューラルネットワークパラメータ12Iとして保存する。ディープニューラルネットワークパラメータの更新は、max_epoch回のエポックが終了するまで繰り返す。
【0072】
次に、ディープニューラルネットワーク学習部20で用いられるディープニューラルネットワークの構造について説明する。ディープニューラルネットワークは、以下に示すレイヤ(L1〜L13)からなる。なお、「mlp」と記載しているのは、multi-layer perceptronの略称である。
【0073】
(L1)positions 入力レイヤ
(L2)幾何変換ネットワークレイヤi
(L3)point_attributes 入力レイヤ
(L4)mlpレイヤi
(L5)幾何変換ネットワークレイヤii
(L6)mlpレイヤii
(L7)max poolingレイヤ
(L8)supervoxel_attributes 入力レイヤ
(L9)mlpレイヤiii
(L10)softmaxレイヤ
(L11)label入力レイヤ
(L12)one hot encodeレイヤ
(L13)cross entropyレイヤ
【0074】
上記のmlpは、slp(single-layer perceptron)の処理を複数回適用する処理である。slpは、入力チャネル数と出力チャネル数で定義される処理である。なお、入力チャネル数がi、出力チャネル数がjであるslp[i,j]の処理を、式(4)に示す。なお、式(4)において、入力inputは、i次元のベクトルである。perceptron_weightは、j×iの重み行列である。perceptron_biasは、j次元のベクトルである。出力outputは、j次元ベクトルである。activate()は、活性化関数の適用を表している。
【0076】
次に、
図6を参照して、ディープニューラルネットワークの各層の処理について具体的に説明する。なお、
図6は、本実施形態に係るディープニューラルネットワークの構造の一例を示す図である。
図6に示す例では、mlpについて出力チャネル数のみを記しており、入力チャネル数は省略している。また、
図6に示す例は、あくまでも具体例であり、各レイヤの構成要素であるmlpの層数やチャネル数などを変動させて本実施形態に適用してもよい。また、1つのスーパーボクセルデータについての処理を記述しているが、実際には、batch_sizeの数のスーパーボクセルデータが1度に入力され、1度に処理される。
【0077】
図6に示すように、positions 入力レイヤ(L1)は、スーパーボクセルデータに含まれる3次元座標値であるpositionsを入力するレイヤである。スーパーボクセルにN以上の点が含まれる場合はN個で入力を打ち切り、N未満の場合は足りないデータについて(0,0,0)を入力とする。結果として本レイヤで入力されるデータpositions_inputは、N×3となる。
【0078】
次に、幾何変換ネットワークレイヤi(L2)の具体的な処理について、
図7を参照して説明する。なお、
図7は、本実施形態に係るディープニューラルネットワークの一部である幾何変換ネットワークの構造の一例を示す図である。
【0079】
図7に示すように、幾何変換ネットワークレイヤi(L2)では、入力データのチャネル数が3チャネルなので、
図7におけるKの値は3である。まず、N×3次元の入力データ(positions_input)に対して、mlp(slp[3,64], slp[64,128], slp[128,1024])で処理し、N×1024次元の中間出力1を得る。中間出力1をmax pooling処理することで、1024次元ベクトルの中間出力2を得る。中間出力2をmlp(slp[1024, 512], slp[512, 256])で処理することで、256次元の中間出力3(transform_feature_i)を得る。これに対し、3×256次元の重み(transform_weight_i)と、3×3次元のバイアス(transform_biases_i)とを用いて、下記に示す式(5)により行列演算を行う。これにより、3×3次元のtransform_matrix_iを得る。
【0081】
次に、transform_matrix_iを用いて、式(6)により行列演算を行い、本レイヤの出力であるtransform_output_iを得る。
【0083】
次に、
図6に戻り、point_attributes 入力レイヤ(L3)では、スーパーボクセルデータに含まれるpoint_attributesをディープニューラルネットワークに入力する。N×3次元のtransform_output_iに、N×a次元のpoint_attributesを結合処理することで、N×(3+a)次元のconcatenated_output_iを出力する。
【0084】
mlpレイヤi(L4)では、N×(3+a)次元のconcatenated_output_iをmlp(slp[(3+a), 64], slp[64, 64])で処理することで、N×64次元のmlp_output_iを得る。
【0085】
次に、
図7を参照して、幾何変換ネットワークレイヤii(L5)の処理について具体的に説明する。幾何変換ネットワークレイヤii(L5)は、入力データのチャネル数が64チャネルなので、
図7におけるKの値は64である。まず、N×64次元の入力データ(mlp_output_i)に対して、mlp(slp[64,64], slp[64,128], slp[128,1024])で処理し、N×1024次元の中間出力1を得る。中間出力1をmax pooling処理することで、1024次元ベクトルの中間出力2を得る。中間出力2をmlp(slp[1024, 512], slp[512, 256])で処理することで、256次元の中間出力3(transform_feature_ii)を得る。これに対し、64×256次元の重み(transform_weight_ii)と、64×64次元のバイアス(transform_biases_ii)とを用いて、下記に示す式(7)により行列演算を行う。これにより、64×64次元のtransform_matrix_iiを得る。
【0087】
次に、transform_matrix_iiを用いて、式(8)により行列演算を行い、本レイヤの出力であるtransform_output_iiを得る。
【0089】
次に、
図6に戻り、mlpレイヤii(L6)は、N×64次元のtransform_output_iiを、mlp(slp[64, 64], slp[64, 128], slp[128, 1024])で処理をすることで、N×1024次元のmlp_output_iiを得る。
【0090】
max poolingレイヤ(L7)では、N×1024次元のmlp_output_iiに対して、max pooling処理を適用することで、l×1024次元のmax_pooling_outputを得る。
【0091】
supervoxel_attributes 入力レイヤ(L8)では、l×1024次元のmax_pooling_outputに、l×b次元のsupervoxel_attributesを結合することで、l×(1024+b)次元のconcatenated_output_iiを出力する。
【0092】
mlpレイヤiii(L9)では、l×(1024+b)次元のconcatenated_output_iiに対して、mlp(slp[(1024+b), 512], slp[512, 256], slp[256, k])で処理をすることで、l×k次元のmlp_output_iiiを得る。
【0093】
softmaxレイヤ(L10)では、l×k次元のmlp_output_iiiに対して、softmax計算を適用することで、l×k次元のsoftmax_outputを出力する。
【0094】
label入力レイヤ(L11)では、スーパーボクセルデータに含まれるlabelsを入力する。なお、0,1,...,k-1の整数値であるそれぞれのラベル値に、one hot encodeレイヤ(L12)で、one hot encode処理を実行し、l×k次元のlabel_inputを出力する。
【0095】
cross entropyレイヤ(L13)では、softmaxレイヤ(L10)からのsoftmax_outputと、one hot encodeレイヤ(L12)からのlabel_inputとの交差エントロピーを計算し、lossを算出する。
【0096】
上記の最終層で算出されたlossを、batch_size個のスーパーボクセルについて総和をとり、batch_lossを算出する。batch_lossを用いて適用するoptimizerによるディープニューラルネットワークパラメータの更新を行う。なお、optimizerをgradient descentにした場合の更新式は、上述の式(3)に示した通りである。
【0097】
次に、上記の3次元点群ラベル学習装置による学習結果を用いて、3次元点群のラベル推定を行う3次元点群ラベル推定装置について説明する。
【0098】
図8は、本実施形態に係る3次元点群ラベル推定装置10Bの機能的な構成の一例を示すブロック図である。
【0099】
推定時における3次元点群ラベル推定装置10Bでは、ディープニューラルネットワーク学習部20及び学習用点群ラベル12Eを用いない構成とされる。
【0100】
本実施系形態に係る地上高算出部14は、学習時と同様に、各点の3次元位置(x,y,z)及び各点の反射強度を示すIntensity値を含む3次元点群12Aと、地面高さ12Bとを入力として、3次元点群12Aの各点の地上高を算出し、算出した地上高を付与した地上高付3次元点群12Cを出力する。
【0101】
本実施形態に係るIntensity-RGB変換部16は、地上高付3次元点群12Cを入力として、地上高付3次元点群12Cの各点について、Intensity値を、色情報を示すRGB値に変換して得られたIntensity-RGB変換済地上高付3次元点群12Dを出力する。
【0102】
本実施形態に係るスーパーボクセルクラスタリング部18は、Intensity-RGB変換済地上高付3次元点群12Dと、クラスタリングハイパーパラメータ12Fとを入力として、3次元位置及びRGB値を用いて、Intensity-RGB変換済地上高付3次元点群12Dを複数のスーパーボクセルにクラスタリングし、クラスタリングしたスーパーボクセルの各々についてのIntensity値及び地上高を含む属性と点群情報とを示すスーパーボクセルデータ12Gを出力する。
【0103】
本実施形態に係るディープニューラルネットワーク推定部22は、スーパーボクセルデータ12Gと、ディープニューラルネットワークハイパーパラメータ12Hと、スーパーボクセルデータ12Gからラベルを推定するためのディープニューラルネットワークの予め学習された学習済ディープニューラルネットワークパラメータ12Iとを入力として、ディープニューラルネットワークを用いて、スーパーボクセルの各々についての推定ラベルを導出し、導出した推定ラベルを付与した推定ラベル付3次元点群12Jを出力する。
【0104】
なお、学習時と同様に、3次元点群12Aのそれぞれの点のz座標をそのまま地上高として扱うと共に、クラスタリングにおいてRGB値を用いない形態としてもよい。この場合、スーパーボクセルクラスタリング部18は、各点の地上高を含む3次元位置、及び各点のIntensity値又はRGB値を含む3次元点群12Aと、クラスタリングハイパーパラメータ12Fとを入力として、3次元位置を用いて、3次元点群12Aを複数のボクセルにクラスタリングし、クラスタリングしたスーパーボクセルの各々についてのIntensity値及び地上高を含む属性と点群情報とを示すスーパーボクセルデータ12Gを出力する。なお、3次元点群12Aが、Intensity値に代えて各点のRGB値を含む場合には、スーパーボクセルデータ12Gが、属性として、Intensity値に代えてRGB値を含むようにしてもよい。また、3次元点群12Aが、各点のIntensity値及びRGB値の両方を含む場合には、スーパーボクセルデータ12Gが、属性として、Intensity値及びRGB値の両方を含むようにしてもよい。ディープニューラルネットワーク推定部22は、スーパーボクセルデータ12Gと、ディープニューラルネットワークハイパーパラメータ12Hと、学習済ディープニューラルネットワークパラメータ12Iとを入力として、ディープニューラルネットワークを用いて、スーパーボクセルの各々についての推定ラベルを導出し、導出した推定ラベルを付与した推定ラベル付3次元点群12Jを出力する。つまり、この形態では、地上高算出部14及びIntensity-RGB変換部16を不要としてもよい。
【0105】
次に、
図9を参照して、本実施形態に係る3次元点群ラベル推定装置10Bの作用について説明する。なお、
図9は、本実施形態に係る3次元点群ラベル学習推定処理プログラムによる推定処理ルーチンの処理の流れの一例を示すフローチャートである。
【0106】
図9のステップ110では、地上高算出部14が、推定用点群としての3次元点群12Aと、任意の地面高さ12Bとの入力を受け付ける。
【0107】
ステップ112では、地上高算出部14が、地面高さ12Bを用いて、3次元点群12Aに含まれる各点の地上高を算出し、算出した地上高を付与した地上高付3次元点群12Cを出力する。
【0108】
ステップ114では、Intensity-RGB変換部16が、地上高付3次元点群12Cを入力とし、地上高付3次元点群12Cの各点について、Intensity値をRGB値に変換して得られたIntensity-RGB変換済地上高付3次元点群12Dを出力する。
【0109】
なお、3次元点群12Aの各点がIntensity値に代えてRGB値を属性として持っている場合には、Intensity-RGB変換を行う必要がない。このため、地上高算出部14から出力された地上高付3次元点群12Cは、スーパーボクセルクラスタリング部18に直接入力される。つまり、この場合、Intensity-RGB変換部16はスキップされる。
【0110】
また、3次元点群12Aのそれぞれの点のz座標をそのまま地上高として扱い、3次元位置のみを用いる場合には、地上高を算出する必要がなく、更には、Intensity-RGB変換を行う必要もない。このため、3次元点群12Aは、スーパーボクセルクラスタリング部18に直接入力される。つまり、この場合、地上高算出部14及びIntensity-RGB変換部16はスキップされる。
【0111】
ステップ116では、スーパーボクセルクラスタリング部18が、Intensity-RGB変換済地上高付3次元点群12Dと、クラスタリングハイパーパラメータ12Fとを入力として、3次元位置及びRGB値を用いて、Intensity-RGB変換済地上高付3次元点群12Dを複数のスーパーボクセルにクラスタリングし、クラスタリングしたスーパーボクセルの各々についての属性と点群情報とを示すスーパーボクセルデータ12Gを出力する。なお、学習用点群ラベル12Eは推定時には入力されない。
【0112】
また、スーパーボクセルクラスタリング部18では、Intensity値に代えてRGB値を含む地上高付3次元点群12Cと、クラスタリングハイパーパラメータ12Fとが入力された場合、3次元位置及びRGB値を用いて、地上高付3次元点群12Cを複数のスーパーボクセルにクラスタリングしてもよい。また、スーパーボクセルクラスタリング部18では、地上高を含む3次元位置及びIntensity値を含む3次元点群12Aと、クラスタリングハイパーパラメータ12Fとが入力された場合、3次元位置を用いて、3次元点群12Aを複数のスーパーボクセルにクラスタリングしてもよい。
【0113】
ステップ118では、ディープニューラルネットワーク推定部22が、スーパーボクセルデータ12Gと、ディープニューラルネットワークハイパーパラメータ12Hと、学習済ディープニューラルネットワークパラメータ12Iとを入力として、ディープニューラルネットワークを用いて、スーパーボクセルの各々についての推定ラベルを付与した推定ラベル付3次元点群12Jを出力し、本推定処理ルーチンを終了する。
【0114】
次に、上述の
図6を参照して、ディープニューラルネットワーク推定部22で用いるディープニューラルネットワークの構造について説明する。ディープニューラルネットワーク推定部22では、スーパーボクセルデータを以下に示すレイヤ(L1〜L9、L14)からなるディープニューラルネットワークで処理をすることで推定結果ラベルを得る。なお、L1〜L9のレイヤは、上述のディープニューラルネットワーク学習部20で説明したディープニューラルネットワークと同様のものであるので、ここでの繰り返しの説明は省略する。
【0115】
(L1)positions 入力レイヤ
(L2)幾何変換ネットワークレイヤi
(L3)point_attributes 入力レイヤ
(L4)mlpレイヤi
(L5)幾何変換ネットワークレイヤii
(L6)mlpレイヤii
(L7)max poolingレイヤ
(L8)supervoxel_attributes 入力レイヤ
(L9)mlpレイヤiii
(L14)argmaxレイヤ
【0116】
argmaxレイヤ(L14)では、l×k次元のmlp_output_iiiについて、argmax処理を適用し、値が最大となるindexを得る。このindexが推定ラベルとなる。
【0117】
上記のように推定ラベルが導かれたスーパーボクセルデータについて、その構成する点に推定ラベルを付与する。全てのスーパーボクセルデータについて同様の処理を行い、推定ラベルが付与された点の集合を、推定ラベル付3次元点群12Jとして出力する。本実施形態に係る推定結果の一例を
図10に示す。なお、
図10に示す推定結果の例は、実際にはカラー画像で示されるものであるが、本例では便宜上グレースケール画像として示している。
【0118】
以上、実施形態として3次元点群ラベル学習装置及び3次元点群ラベル推定装置を例示して説明した。実施形態は、コンピュータを、3次元点群ラベル学習推定装置が備える各部として機能させるためのプログラムの形態としてもよい。実施形態は、このプログラムを記憶したコンピュータが読み取り可能な記憶媒体の形態としてもよい。
【0119】
その他、上記実施形態で説明した3次元点群ラベル学習推定装置の構成は、一例であり、主旨を逸脱しない範囲内において状況に応じて変更してもよい。
【0120】
また、上記実施形態で説明したプログラムの処理の流れも、一例であり、主旨を逸脱しない範囲内において不要なステップを削除したり、新たなステップを追加したり、処理順序を入れ替えたりしてもよい。
【0121】
また、上記実施形態では、プログラムを実行することにより、実施形態に係る処理がコンピュータを利用してソフトウェア構成により実現される場合について説明したが、これに限らない。実施形態は、例えば、ハードウェア構成や、ハードウェア構成とソフトウェア構成との組み合わせによって実現してもよい。