(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022186156
(43)【公開日】2022-12-15
(54)【発明の名称】特徴量算出プログラム、特徴量算出方法および情報処理装置
(51)【国際特許分類】
G06T 17/00 20060101AFI20221208BHJP
【FI】
G06T17/00
【審査請求】未請求
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2021094241
(22)【出願日】2021-06-04
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】池 祐一
(72)【発明者】
【氏名】浅尾 泰彦
【テーマコード(参考)】
5B080
【Fターム(参考)】
5B080AA00
5B080AA13
5B080AA19
5B080DA06
(57)【要約】
【課題】点群データの正確な特徴量を抽出することを課題とする。
【解決手段】情報処理装置は、点群データに含まれる複数の点それぞれについて、点から所定の距離以内に存在する点群データに対する主成分分析を用いて固有ベクトルを算出する。情報処理装置は、算出された固有ベクトルに対し最近傍に位置する点を極値点とする多次元関数の曲率を算出する。情報処理装置は、点群データの複数の点それぞれに対する曲率に基づき、点群データの特徴量を生成する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
コンピュータに、
点群データに含まれる複数の点それぞれについて、点から所定の距離以内に存在する点群データに対する主成分分析を用いて固有ベクトルを算出し、
算出された前記固有ベクトルに対し最近傍に位置する点を極値点とする多次元関数の曲率を算出し、
前記点群データの前記複数の点それぞれに対する前記曲率に基づき、前記点群データの特徴量を生成する、
処理を実行させることを特徴とする特徴量算出プログラム。
【請求項2】
前記算出する処理は、
固有値が閾値以上である固有ベクトルで張られる空間に座標および前記固有ベクトルの方向に軸を設定し、
前記点群データに最小二乗法で当てはめた、前記極値点を頂点とする二次関数を生成し、
前記二次関数に対するヘシアンを前記点群データの各点の曲率として算出する、
ことを特徴とする請求項1に記載の特徴量算出プログラム。
【請求項3】
前記生成する処理は、
前記点群データの各点についての前記曲率の分布を、前記点群データの特徴量として生成する、
ことを特徴とする請求項1または2に記載の特徴量算出プログラム。
【請求項4】
コンピュータが、
点群データに含まれる複数の点それぞれについて、点から所定の距離以内に存在する点群データに対する主成分分析を用いて固有ベクトルを算出し、
算出された前記固有ベクトルに対し最近傍に位置する点を極値点とする多次元関数の曲率を算出し、
前記点群データの前記複数の点それぞれに対する前記曲率に基づき、前記点群データの特徴量を生成する、
処理を実行させることを特徴とする特徴量算出方法。
【請求項5】
点群データに含まれる複数の点それぞれについて、点から所定の距離以内に存在する点群データに対する主成分分析を用いて固有ベクトルを算出するベクトル算出部と、
算出された前記固有ベクトルに対し最近傍に位置する点を極値点とする多次元関数の曲率を算出する曲率算出部と、
前記点群データの前記複数の点それぞれに対する前記曲率に基づき、前記点群データの特徴量を生成する特徴生成部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特徴量算出プログラム、特徴量算出方法および情報処理装置に関する。
【背景技術】
【0002】
様々な分野において多くの場合、解析したいデータは、いくつかの実数値の組として表され、データはn次元の空間の点群として捉えられる。近年では、これらの点群データから特徴量を抽出したり、分類したりすることが行われている。例えば、点群データの位相的特徴量を抽出する位相的データ解析(TDA:Topological Data Analysis)が知られている。TDAは、連結成分や穴の数などの特徴量を検討し、データ点中心の球の和集合を考え、半径を大きくしていく際の位相変化を見る技術である。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記技術では、位相的に同じ形と判断される点群データを区別することができず、特徴量の抽出精度が低下する。例えば、連結成分や穴の数が等しい点群データからは同じ特徴量しか抽出できず、平らな面と曲面とを区別することができない。
【0005】
一つの側面では、点群データの正確な特徴量を抽出することができる特徴量算出プログラム、特徴量算出方法および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
第1の案では、特徴量算出プログラムは、コンピュータに、点群データに含まれる複数の点それぞれについて、点から所定の距離以内に存在する点群データに対する主成分分析を用いて固有ベクトルを算出し、算出された前記固有ベクトルに対し最近傍に位置する点を極値点とする多次元関数の曲率を算出し、前記点群データの前記複数の点それぞれに対する前記曲率に基づき、前記点群データの特徴量を生成する、処理を実行させることを特徴とする。
【発明の効果】
【0007】
一つの側面では、点群データの正確な特徴量を抽出することができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、実施例1にかかる情報処理装置を説明する図である。
【
図2】
図2は、TDAによる課題を説明する図である。
【
図3】
図3は、実施例1にかかる情報処理装置の機能構成を示す機能ブロック図である。
【
図4】
図4は、点群データの各点に対する固有ベクトルの算出手法を説明する図である。
【
図5】
図5は、各点群データの特徴量の抽出結果を説明する図である。
【
図6】
図6は、実施例1にかかる処理の流れを示すフローチャートである。
【
図7】
図7は、実施例2にかかる情報処理装置の機能構成を示す機能ブロック図である。
【
図8】
図8は、実施例2にかかるクラスタリング結果を説明する図である。
【
図9】
図9は、実施例2にかかる処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0009】
以下に、本願の開示する特徴量算出プログラム、特徴量算出方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例0010】
[全体構成]
図1は、実施例1にかかる情報処理装置10を説明する図である。この情報処理装置10は、点群データPや点群データQなどの様々な点群データに対して、特徴量Pや特徴量Qなどのように、各点群データの特徴を正確に表現した特徴量を生成して出力するコンピュータ装置の一例である。
【0011】
ここで、点群データの特徴量の生成に利用されるTDAについて説明する。TDAは、点群データに対してパーシステントホモロジ変換を実行することで、m次元の穴の遷移を特徴づけるパーシステント図を生成して、点群データの特徴量を生成する。
【0012】
ここで、「ホモロジ」とは、対象の特徴をm(m≧0)次元の穴の数によって表現する手法である。ここで言う「穴」とはホモロジ群の元のことであり、0次元の穴は連結成分であり、1次元の穴は穴(トンネル)であり、2次元の穴は空洞である。各次元の穴の数はベッチ数と呼ばれる。そして、「パーシステントホモロジ」とは、対象(ここでは、点の集合(Point Cloud))におけるm次元の穴の遷移を特徴付けるための手法であり、パーシステントホモロジによって点の配置に関する特徴を調べることができる。この手法においては、対象における各点が球状に徐々に膨らまされ、その過程において各穴が発生した時刻(発生時の球の半径で表される)と消滅した時刻(消滅時の球の半径で表される)とが特定される。
【0013】
次に、TDAを用いて、シリンダの形をした点群データPと、球の形をした点群データQとのそれぞれの特徴量を生成した結果を説明する。
図2は、TDAによる課題を説明する図である。
【0014】
具体的には、
図2には、点群データPに対するTDAにより、0次元の穴の発生(Birth)と消滅(Death)のタイミングであるH
0、1次元の穴の発生と消滅のタイミングであるH
1、2次元の穴の発生と消滅のタイミングであるH
2を表したパーシステント図が図示される。同様に、点群データQに対するTDAにより、0次元の穴の発生と消滅のタイミングであるH
0、1次元の穴の発生と消滅のタイミングであるH
1、2次元の穴の発生と消滅のタイミングであるH
2を表したパーシステント図が図示される。
【0015】
図2の各パーシステント図を比較してもわかるように、TDAによる特徴量生成(解析)では、位相的に同じ形の点群データからは類似する特徴量が生成され、各点群データを区別することが難しい。すなわち、形が不明な点群データを解析した場合に、異なる形のデータについて同じ特徴量を生成することになる。このため、例えば点群データを用いてラベル付き訓練データを生成する場合に、異なるラベルを付すべき点群データに同じラベルを付すことになり、訓練精度の劣化に繋がる。
【0016】
また、TDAで得られた特徴量を用いてポリゴンを選択して、点群データにフィッティングさせることも考えられるが、選択材料となる特徴量が正確でないと、適切なポリゴンを選択することができない。
図2の場合、点群データPと点群データQのそれぞれに同じポリゴンを選択することになり、正確なフィッティングができない。
【0017】
そこで、実施例1にかかる情報処理装置10は、点群データに含まれる複数の点それぞれについて、点から所定の距離以内に存在する点群データに対する主成分分析を用いて固有ベクトルを算出する。情報処理装置10は、算出された固有ベクトルに対し最近傍に位置する点を極値点(または停留点)とする多次元関数の曲率を算出する。情報処理装置10は、点群データの複数の点それぞれに対する曲率に基づき、点群データの特徴量を生成する。
【0018】
すなわち、情報処理装置10は、点群データから局所的に定まる曲率的な量(曲がり具合を表す量)を算出して、その値の頻度分布を特徴量とする。この結果、情報処理装置10は、位相的には同じであるが曲率的に形が違う点群データが区別可能となり、点群データの正確な特徴量を抽出することができる。
【0019】
[機能構成]
図3は、実施例1にかかる情報処理装置10の機能構成を示す機能ブロック図である。
図3に示すように、情報処理装置10は、通信部11、記憶部12、制御部20を有する。
【0020】
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースなどにより実現される。例えば、通信部11は、管理者端末や3Dセンサなどから点群データを受信し、抽出結果(解析結果)などを管理者端末に送信する。
【0021】
記憶部12は、各種データや制御部20が実行するプログラムなどを記憶する記憶装置の一例である。例えば、記憶部12は、点群データDB13と抽出結果DB14を記憶する。
【0022】
点群データDB13は、例えば3Dセンサや測域センサなどを用いて、3次元空間内でスキャンされた様々な物体の点群データを記憶するデータベースである。上記例で説明すると、点群データDB13は、点群データPと点群データQとを記憶する。説明上、点群データPはシリンダの形をしており、点群データQは球の形をしているが、制御部20によって特徴づけられるまで、これらの形は未知である。
【0023】
抽出結果DB14は、制御部20による抽出結果を記憶するデータベースである。例えば、抽出結果DB14は、点群データPの特徴量、点群データQの特徴量を記憶する。
【0024】
制御部20は、情報処理装置10全体を司る処理部であり、例えばプロセッサなどにより実現される。この制御部20は、ベクトル算出部21、曲率算出部22、特徴生成部23を有する。なお、ベクトル算出部21、曲率算出部22、特徴生成部23は、プロセッサが有する電子回路やプロセッサが実行するプロセスとして実現することもできる。
【0025】
ベクトル算出部21は、点群データに含まれる複数の点それぞれについて、各点から所定の距離以内に存在する点群データに対する主成分分析を用いて固有ベクトルを算出する処理部である。例えば、ベクトル算出部21は、点群データPのそれぞれの点および点群データQそれぞれの点について、固有ベクトルを算出する。
【0026】
図4は、点群データの各点に対する固有ベクトルの算出手法を説明する図である。まず、ベクトル算出部21は、管理者等の入力等を受け付けて、d次元の実数空間R
dの部分集合である点群データXに対して、0より大きい値である閾値εと閾値δを設定する。
【0027】
次に、
図4の(a)に示すように、ベクトル算出部21は、点群データXの要素である点xを選択する。そして、
図4の(b)に示すように、ベクトル算出部21は、点xに対して、半径εの球内に入る点群Bを式(1)にように定義する。続いて、
図4の(c)に示すように、ベクトル算出部21は、点群Bに対して主成分分析(PCA:Principal Component Analysis)を適用し、固有値が閾値δ以上である固有ベクトルで張られる空間を取得する。ベクトル算出部21は、上記処理を点群データ内の各点について実行する。
【0028】
【0029】
曲率算出部22は、算出された固有ベクトルに対し最近傍に位置する点を極値点とする多次元関数の曲率を算出する処理部である。具体的には、曲率算出部22は、点群データP内の各点および点群データQ内の各点について曲率を算出し、特徴生成部23に出力する。
【0030】
例えば、曲率算出部22は、ベクトル算出部21で算出された固有値のうち、所定値以上である固有値に対応する固有ベクトル方向に値を持つ上記空間上の点xを頂点に持つ二次関数をBに対して最小二乗法で当てはめる。
【0031】
すなわち、曲率算出部22は、固有値がδ以上のk次元空間に座標x1、x2、・・・xkを設定し、k+1番目の固有ベクトルの方向に軸xk+1を設定する。続いて、曲率算出部22は、最小二乗法で当てはめた式(2)に示す二次関数を生成し、その二次関数に対して式(3)に示すヘシアンを算出する。そして、曲率算出部22は、そのヘシアンを各点の曲率と定める。
【0032】
【0033】
特徴生成部23は、点群データの複数の点それぞれに対する曲率に基づき、点群データの特徴量を生成する処理部である。具体的には、特徴生成部23は、点群データPおよび点群データQそれぞれついて、各点群データ内の複数の点ついての曲率の分布(頻度分布)を複数の点で表現される各点群データの特徴として算出し、抽出結果DB14に格納する。
【0034】
図5は、各点群データの特徴量の抽出結果を説明する図である。
図5に示すように、特徴生成部23は、横軸に曲率の値、縦軸に度数(その曲率を有する点の数)を設定した頻度分布を生成する。つまり、特徴生成部23は、点群データの各点が有する曲率の数を集計する。この結果、特徴生成部23は、点群データPについては、曲率0.0の点が集中しており、曲面(曲線)が比較的少ない形と特徴づけることができる。一方、特徴生成部23は、点群データQについては、曲率1.0周辺の点が集中しており、曲面(曲線)が多い形と特徴づけることができる。
【0035】
[処理の流れ]
図6は、実施例1にかかる処理の流れを示すフローチャートである。
図6に示すように、情報処理装置10のベクトル算出部21は、点群データを取得し(S101)、点群データ内の点(データ)を1つ選択する(S102)。
【0036】
続いて、ベクトル算出部21は、主成分分析を実行して空間(固有ベクトル)を算出する(S103)。そして、曲率算出部22は、点群データから局所的に定まる曲率的な量である曲率を算出する(S104)。
【0037】
ここで、点群データ内で未選択の点(データ)がある場合(S105:Yes)、未選択の点に対してS102以降を繰り返す。一方、点群データ内で未選択の点(データ)がない場合(S105:No)、特徴生成部23は、算出された各点の曲率を用いて、点群データの特徴量の抽出結果を生成して出力する(S106)。
【0038】
[効果]
上述したように、情報処理装置10は、点群データの各点について曲率を算出し、曲率を用いた特徴量を生成することができる。この結果、情報処理装置10は、曲率的な局所的な違いに着目することで、位相的には同じだが曲率的に形が違う点群を区別することができる。また、情報処理装置10は、各点の曲率の頻度分布を生成するので、特徴量を可視化することができ、ユーザの解釈性を向上させることができる。
【0039】
また、情報処理装置10は、機械学習モデルの訓練データを点群データから生成する場合に、点群データを正確に区別することができるので、各点群データに正確なラベル(教師情報)を付与することができる。したがって、情報処理装置10は、機械学習モデルの訓練精度を向上させることができる。
ところで、情報処理装置10は、実施例1で説明した特徴量を用いることで、点群データのクラスタリングを実行することができる。そこで、実施例2では、点群データのクラスタリングを実行して、点群データとポリゴンとの正確なフィッティングを行う例を説明する。
ポリゴンDB15は、フィッティング対象である複数のポリゴンを記憶するデータベースである。例えば、ポリゴンDB15は、形が異なる複数のポリゴンや、形が類似する複数のポリゴンを記憶する。
クラスタリング実行部24は、点群データの複数の点それぞれに対する曲率に基づき、複数の点のクラスタリングを実行し、クラスタリングの実行結果を出力する処理部である。具体的には、クラスタリング実行部24は、n次元の空間の点群データを幾何学的特徴によりクラスタリングする。このようにすることで、例えば三次元空間内でスキャンされた点群(点群データ)にメッシュ形状をフィッティングさせる際に、角などの特異点集合を抽出することができる。
例えば、クラスタリング実行部24は、管理者等の入力等を受け付けて、スケールパラメータtと閾値dを設定する。次に、クラスタリング実行部24は、n次元の実数空間Rnの部分集合である点群データXについて、閾値に依存する点群データの曲率c(x)を各点x(Xの要素)に対して算出する。ここでは、クラスタリング実行部24は、曲率c(x)を実施例1の手法で算出する。
続いて、クラスタリング実行部24は、c(x)<-dであればa(x)=-t、|c(x)|≦dであればa(x)=0、c(x)>dであればa(x)=tと定める。そして、クラスタリング実行部24は、曲率の値を用いて点群データXの次元を一次元増やし、n+1次元の実数空間Rn+1の部分集合とする。その後、クラスタリング実行部24は、式(4)により、一次元増やした点群データの各点を、実数空間Rn+1に埋め込む。すなわち、クラスタリング実行部24は、同相写像により、一次元増やした点群データの各点を、実数空間Rn+1に写像する。
その後、クラスタリング実行部24は、写像の像に対して最短距離法によるクラスタリングを実行し、点群データの各点をクラスタリングし、作成されたクラスタを埋め込む前の点群に対して割り当てる。すなわち、クラスタリング実行部24は、一次元増やされた各点を元の次元で表現する。
このようにして、クラスタリング実行部24は、点群データの各点の次元数に曲率を追加して一次元増やし、一次元増やした状態でクラスタリングを実行することで、点群データの各点を正確にクラスタリングでき、類似する点群データを区別することができる。
したがって、クラスタリング実行部24は、点群データPに対してはシリンダ型のポリゴンを選択してフィッティングすることができ、点群データQに対しては球型のポリゴンを選択してフィッティングすることができる。このため、クラスタリング実行部24は、はじめから適切なポリゴンを選択して別々にフィッティングすることができ、ポリゴンの選択ミスを減らすことができるので、処理時間の短縮を実現することもできる。
続いて、ベクトル算出部21は、主成分分析を実行して空間(固有ベクトル)を算出する(S203)。そして、曲率算出部22は、点群データから局所的に定まる曲率的な量である曲率を算出する(S204)。
ここで、点群データ内で未選択の点がある場合(S205:Yes)、未選択の点に対してS202以降を繰り返す。一方、点群データ内で未選択の点がない場合(S205:No)、クラスタリング実行部24は、点群データの各点について算出された曲率を用いて、各点のクラスタリングを実行する(S206)。
その後、クラスタリング実行部24は、クラスタリング結果を出力する(S207)。例えば、クラスタリング実行部24は、クラスタリング結果を記憶部12に格納したり、管理者等の指摘された宛先に送信したりする。
これと並行して、クラスタリング実行部24は、クラスタリング結果を用いて、ポリゴンDB15から適切なポリゴンを選択し(S208)、選択したポリゴンを点群データにフィッティングし、フィッティング結果を出力する(S209)。例えば、クラスタリング実行部24は、フィッティング結果を記憶部12に格納したり、管理者等の指摘された宛先に送信したりする。
この結果、情報処理装置10は、例えば三次元空間内でスキャンされた点群データにメッシュ形状(ポリゴン)をフィッティングさせる際に、角などの特異点の集合を抽出することができる。このとき、情報処理装置10は、特異点を持つ点たちを別にクラスタリングすることもできる。このように、情報処理装置10は、特に尖っている部分や次元が異なる部分を抽出することができ、予め全体の形が分からない点群データであっても、点群データの幾何的特徴も考慮したクラスタリングを実行することができ、正確なフィッティングを実行することができる。