(58)【調査した分野】(Int.Cl.,DB名)
互いに同一の3次元形状を元にして作成された2つの3次元点群データに関する情報を第1教師データとして前記第1ニューラルネットワーク及び前記第2ニューラルネットワークに入力した場合に、同一性評価部が同一性が高いと示す評価を出力するように、前記第1ニューラルネットワーク及び前記第2ニューラルネットワークの重みを互いに共有させながら更新し、
互いに異なる3次元形状を元にして作成された2つの3次元点群データに関する情報を第2教師データとして前記第1ニューラルネットワーク及び前記第2ニューラルネットワークに入力した場合に、前記同一性評価部が同一性が低いと示す評価を出力するように、前記第1ニューラルネットワーク及び前記第2ニューラルネットワークの重みを互いに共有させながら更新する、請求項1に記載の点群データ同一性推定装置。
前記第1教師データは、互いに同一の3次元形状を元にして作成された2つの3次元点群データに関する情報のうち少なくとも一方を欠損させたもの、または、少なくとも一方にノイズを加えたものである、請求項2に記載の点群データ同一性推定装置。
前記第1教師データは、互いに同一の3次元形状を異なる条件で計測したものを元にして作成された2つの3次元点群データに関する情報である、請求項2に記載の点群データ同一性推定装置。
所定の3次元形状を元にして作成された3次元点群データ、及び、前記所定の3次元形状を傾けない或いは所定の角度未満傾けたものを元にして作成された3次元点群データを、第3教師データとして前記第1ニューラルネットワーク及び前記第2ニューラルネットワークに入力した場合に、同一性評価部が同一性が高いと示す評価を出力するように、前記第1ニューラルネットワーク及び前記第2ニューラルネットワークの重みを互いに共有させながら更新し、
所定の3次元形状を元にして作成された3次元点群データ、及び、前記所定の3次元形状を前記所定の角度以上傾けたものを元にして作成された3次元点群データを、第4教師データとして前記第1ニューラルネットワーク及び前記第2ニューラルネットワークに入力した場合に、前記同一性評価部が同一性が低いと示す評価を出力するように、前記第1ニューラルネットワーク及び前記第2ニューラルネットワークの重みを互いに共有させながら更新する、請求項5に記載の点群データ同一性推定装置。
所定の3次元形状を元にして作成された3次元点群データ、及び、前記所定の3次元形状と同一サイズのもの或いは前記所定の3次元形状を所定範囲内の拡大率または縮小率で拡大または縮小したものを元にして作成された3次元点群データを、第5教師データとして前記第1ニューラルネットワーク及び前記第2ニューラルネットワークに入力した場合に、同一性評価部が同一性が高いと示す評価を出力するように、前記第1ニューラルネットワーク及び前記第2ニューラルネットワークの重みを互いに共有させながら更新し、
所定の3次元形状を元にして作成された3次元点群データ、及び、前記所定の3次元形状を前記所定範囲を超えた拡大率または縮小率で拡大または縮小したものを元にして作成された3次元点群データを、第6教師データとして前記第1ニューラルネットワーク及び前記第2ニューラルネットワークに入力した場合に、前記同一性評価部が同一性が低いと示す評価を出力するように、前記第1ニューラルネットワーク及び前記第2ニューラルネットワークの重みを互いに共有させながら更新する、請求項5に記載の点群データ同一性推定装置。
【発明を実施するための形態】
【0017】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【0018】
[第1の実施形態]
<点群データ同一性推定システムのシステム構成>
はじめに、第1の実施形態に係る点群データ同一性推定システムのシステム構成について説明する。
図1は、点群データ同一性推定システムのシステム構成の一例を示す図である。
【0019】
図1に示すように、点群データ同一性推定システム100は、第1の計測装置110と、第2の計測装置111と、点群データ同一性推定装置120と、を有する。第1の計測装置110及び第2の計測装置111と、点群データ同一性推定装置120とは、有線または無線を介して接続される。
【0020】
第1の計測装置110及び第2の計測装置111は、それぞれ、実環境130内に載置された対象物A、対象物B等の各種対象物を計測し、3次元点群データを作成する。第1の計測装置110及び第2の計測装置111は、それぞれ、作成した3次元点群データを点群データ同一性推定装置120に送信する。
【0021】
なお、第1の計測装置110と第2の計測装置111とは、各種対象物を計測する際の計測方向、計測位置、計測距離、計測タイミング、装置の種類等の各種計測条件のうちの、少なくともいずれかの計測条件が異なっているものとする。
【0022】
また、第1の実施形態では、点群データ同一性推定システム100が、第1の計測装置110及び第2の計測装置111の2台の計測装置を有するものとして説明するが、点群データ同一性推定システム100が有する計測装置の台数は1台であってもよい。あるいは、点群データ同一性推定システム100が有する計測装置の台数は3台以上であってもよい。
【0023】
点群データ同一性推定装置120は、2つの3次元点群データの元となる対象物の同一性を評価する装置である。
【0024】
なお、2つの3次元点群データとは、計測方向や計測位置、計測距離、計測タイミング、計測装置の種類等の各種計測条件が異なる状況下で対象物を計測した場合の3次元点群データを指す。具体的には、第1の計測装置110と第2の計測装置111とが、それぞれ、実環境130に載置された対象物を計測することで作成した3次元点群データを指す。
【0025】
点群データ同一性推定装置には、各種プログラムがインストールされており、当該プログラムを実行することで、点群データ同一性推定装置120は、データ取得部121、データ変換部122、データ拡張部123、学習部124、推論部125として機能する。
【0026】
データ取得部121は、第1の計測装置110及び第2の計測装置111より送信された3次元点群データを取得する。データ取得部121が取得する3次元点群データには、学習用データとして用いることを目的として取得する3次元点群データと、推論用データとして用いることを目的として取得する3次元点群データとが含まれる。
【0027】
データ変換部122は、データ取得部121が取得した3次元点群データのデータ形式を変換し、3次元点群データとは異なるデータ形式のデータを生成する。データ変換部122により生成されるデータには、例えば、メッシュデータ(ポリゴンデータ)、サーフェスデータ、CADデータ等の各種データ形式のデータが含まれる。第1の実施形態では、3次元点群データを含むこれら各種データ形式のデータを総称して、"点群データに関する情報"と称す。ただし、以下では、説明の簡略化のため、データ変換部122のデータ形式変換機能は動作させず、点群データに関する情報=3次元点群データそのもの、であるとして説明する。
【0028】
また、データ変換部122は、3次元点群データを、対象物の一部の3次元形状を表す、複数の局所3次元点群データに分割する分割機能を有する。
【0029】
また、データ変換部122は、学習用データとして用いることを目的として取得された3次元点群データを分割することで得た、複数の局所3次元点群データを、学習用データとして、学習用データ格納部126に格納する格納機能を有する。
【0030】
具体的には、データ変換部122は、同一の対象物を第1及び第2の計測装置110、111が計測することで取得された2つの3次元点群データのうち、該対象物の同一の一部の3次元形状を表す、2つの局所3次元点群データを、互いに対応付けて格納する。このとき、データ変換部122では、互いに同一の3次元形状を元にして作成されたものであることを示す情報もあわせて格納する。
【0031】
また、データ変換部122は、同一の対象物を第1及び第2の計測装置110、111が計測することで取得された2つの3次元点群データのうち、該対象物の異なる一部の3次元形状を表す、2つの局所3次元点群データを、互いに対応付けて格納する。このとき、データ変換部122では、互いに異なる3次元形状を元にして作成されたものであることを示す情報もあわせて格納する。
【0032】
また、データ変換部122は、異なる対象物を第1及び第2の計測装置110、111が計測することで取得された2つの3次元点群データのうち、各対象物の一部の3次元形状を表す、2つの局所3次元点群データを、互いに対応付けて格納する。このとき、データ変換部122では、互いに異なる3次元形状を元にして作成されたものであることを示す情報もあわせて格納する。
【0033】
更に、データ変換部122では、推論用データとして用いることを目的として取得された3次元点群データを分割することで得た、複数の局所3次元点群データを、推論用データ格納部127に格納する格納機能を有する。
【0034】
具体的には、データ変換部122は、
・第1の計測装置110が計測することで取得された3次元点群データを分割した複数の局所3次元点群データと、
・第2の計測装置111が計測することで取得された3次元点群データを分割した複数の局所3次元点群データと、
を互いに対応付けて格納する。
【0035】
データ拡張部123は、学習用データとして学習用データ格納部126に格納された、複数の局所3次元点群データに対して、種々の変更処理を行うことで、学習用データを拡張する。
【0036】
学習部124は、深層学習フレームワークを有する。学習部124は、学習用データ格納部126に格納された複数の局所3次元点群データを読み出し、
・互いに対応付けられた2つの局所3次元点群データの組を入力データとして、ディープニューラルネットワーク(DNN:Deep Neural Network、例えば、3次元点群データ用のDNNであるPointNet)を実行し、
・同一の3次元形状を元にして作成されたものであるか否かを示す情報を正解ラベルとして、該ディープニューラルネットワーク(例えば、3次元点群データ用のDNNであるPointNet)に含まれる重みパラメータを更新する、
学習処理を行う。
【0037】
なお、学習部124は、学習処理を行うことで調整した重みパラメータを、推論部125に反映させる。
【0038】
推論部125は、学習部124同様、3次元点群データ用の深層学習フレームワークを有する。
【0039】
推論部125は、推論用データ格納部127に格納された複数の局所3次元点群データを読み出し、
・互いに対応付けられた2つの局所3次元点群データの組を入力データとして、ディープニューラルネットワーク(例えば、3次元点群データ用のDNNであるPointNet)を実行し、
・互いに対応付けられた2つの局所3次元点群データの元となる3次元形状が、同一であるか否かを推論する、
推論処理を行う。
【0040】
<点群データ同一性推定装置のハードウェア構成>
次に、点群データ同一性推定装置120のハードウェア構成について説明する。
図2は、点群データ同一性推定装置のハードウェア構成の一例を示す図である。
【0041】
図2に示すように、点群データ同一性推定装置120は、プロセッサ201と、メモリ202と、補助記憶装置203と、表示装置204と、操作装置205と、I/F(Interface)装置206と、ドライブ装置207とを有する。なお、点群データ同一性推定装置120の各ハードウェアは、バス208を介して相互に接続されている。
【0042】
プロセッサ201は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)等の各種演算デバイスを有する。プロセッサ201は、各種プログラムをメモリ202上に読み出して実行する。
【0043】
メモリ202は、ROM(Read Only Memory)、RAM(Random Access Memory)等の主記憶デバイスを有する。プロセッサ201とメモリ202とは、いわゆるコンピュータを形成し、プロセッサ201が、メモリ202上に読み出した各種プログラムを実行することで、当該コンピュータは上記機能(
図1参照)を実現する。
【0044】
補助記憶装置203は、各種プログラムや、各種プログラムがプロセッサ201によって実行される際に用いられる各種データを格納する。学習用データ格納部126、推論用データ格納部127は、補助記憶装置203において実現される。
【0045】
表示装置204は、点群データ同一性推定装置120の内部状態を表示する表示デバイスである。操作装置205は、点群データ同一性推定装置120のユーザが点群データ同一性推定装置120に対して各種指示を入力する際に用いる入力デバイスである。I/F装置206は、第1の計測装置110及び第2の計測装置111と接続し、3次元点群データを受信するための接続デバイスである。
【0046】
ドライブ装置207は記録媒体210をセットするためのデバイスである。ここでいう記録媒体210には、CD−ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体210には、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【0047】
なお、補助記憶装置203にインストールされる各種プログラムは、例えば、配布された記録媒体210がドライブ装置207にセットされ、該記録媒体210に記録された各種プログラムがドライブ装置207により読み出されることでインストールされる。あるいは、補助記憶装置203にインストールされる各種プログラムは、不図示のネットワークを介してダウンロードされることで、インストールされてもよい。
【0048】
<学習用データの具体例>
次に、学習用データ格納部126に格納される学習用データの具体例について説明する。
図3は、学習用データの一例を示す図である。
図3に示すように、学習用データ300は、情報の項目として、"第1点群データ"、"第2点群データ"、"正解ラベル"を有する。
【0049】
"第1点群データ"には、対象物を第1の計測装置110が計測することで取得した3次元点群データ310を分割した複数の局所3次元点群データが格納される。
【0050】
なお、
図3の例は、複数の局所3次元点群データとして、局所3次元点群データ311、312の具体例を示している。
図3に示すように、局所3次元点群データ311、312は、各点のX座標、Y座標、Z座標、R値、G値、B値を含む。また、
図3の例の場合、局所3次元点群データ311、312は、2048点の点群を含む。
【0051】
"第2点群データ"には、対象物を第2の計測装置111が計測することで取得した3次元点群データ320を分割した複数の局所3次元点群データが格納される。
【0052】
なお、
図3の例は、複数の局所3次元点群データとして、局所3次元点群データ321の具体例を示している。
図3に示すように、局所3次元点群データ321は、各点のX座標、Y座標、Z座標、R値、G値、B値を含む。また、
図3の例の場合、局所3次元点群データ321は、2048点の点群を含む。
【0053】
"正解ラベル"には、
・"第1点群データ"の局所3次元点群データと、
・"第2点群データ"の局所3次元点群データと、
で、互いに対応付けられた2つの局所3次元点群データが、同一の3次元形状を元にして作成されたものであるか否かを示す情報として、"同一"または"非同一"のいずれかが格納される。
【0054】
例えば、局所3次元点群データ311と局所3次元点群データ321とは、互いに同一の3次元形状を元にして作成されたものであるため、"正解ラベル"には、"同一"が格納される。なお、これらは第1教師データの一例である。
【0055】
一方、局所3次元点群データ312と局所3次元点群データ321は、互いに異なる3次元形状を元にして作成されたものであるため、"正解ラベル"には、"非同一"が格納される。なお、これらは第2教師データの一例である。
【0056】
<データ拡張部の機能構成の詳細>
次に、データ拡張部123の機能構成の詳細について説明する。
図4は、データ拡張部の機能構成の一例を示す図である。
【0057】
図4に示すように、データ拡張部123は、読み出し部401、密度変更部402、欠損部403、ノイズ付加部404、バイアス付加部405、角度変更部406、拡縮部407、シフト部408を有する。
【0058】
読み出し部401は、学習用データ格納部126に格納された学習用データ300から、所定の教師データを読み出す。
図4の例は、学習用データ格納部126から、所定の教師データとして、局所3次元点群データ311、321を含む教師データ410を読み出した様子を示している。なお、読み出し部401が読み出す所定の教師データとは、"正解ラベル"に同一であることを示す情報が格納されている教師データである。
【0059】
密度変更部402は、教師データ410の"第1点群データ"及び"第2点群データ"に含まれる2つの局所3次元点群データのうちのいずれか一方の局所3次元点群データの各点を、一定間隔で間引くことで、各点の密度を変更する。密度変更部402は、変更した後の局所3次元点群データを含む教師データ421を、学習用データ格納部126に格納する。
【0060】
欠損部403は、教師データ410の"第1点群データ"及び"第2点群データ"に含まれる2つの局所3次元点群データのうちのいずれか一方の局所3次元点群データの各点をランダムに欠損させる。また、欠損部403は、欠損させた後の局所3次元点群データを含む教師データ422を、学習用データ格納部126に格納する。
【0061】
ノイズ付加部404は、教師データ410の"第1点群データ"及び"第2点群データ"に含まれる2つの局所3次元点群データのうちのいずれか一方の局所3次元点群データの任意の位置に、ノイズ(点)を付加する。また、ノイズ付加部404は、ノイズを付加した後の局所3次元点群データを含む教師データ423を、学習用データ格納部126に格納する。
【0062】
バイアス付加部405は、教師データ410の"第1点群データ"及び"第2点群データ"に含まれる2つの局所3次元点群データのうちのいずれか一方の局所3次元点群データの各点のR値、G値、B値にバイアス値を付加する(つまり、色を変化させる)。また、バイアス付加部405は、バイアス値を付加した後の局所3次元点群データを含む教師データ424を、学習用データ格納部126に格納する。
【0063】
角度変更部406は、教師データ410の"第1点群データ"及び"第2点群データ"に含まれる2つの局所3次元点群データのうちのいずれか一方の局所3次元点群データを、所定の角度以上傾ける。また、角度変更部406は、所定の角度以上傾けた後の局所3次元点群データを含む教師データ425を、学習用データ格納部126に格納する。教師データ425は第4教師データの一例である。
【0064】
また、角度変更部406では、所定の角度以上傾けた後の局所3次元点群データを含む教師データ425については、"正解ラベル"を、"同一"から"非同一"に変更する。2つの局所3次元点群データのうちのいずれか一方を所定の角度以上傾けた場合、これら2つの局所3次元点群データは、互いに異なる3次元形状を元にして作成されたものであるとみなせるからである。
【0065】
なお、角度変更部406は、教師データ410の"第1点群データ"及び"第2点群データ"に含まれる2つの局所3次元点群データのうちのいずれか一方の局所3次元点群データを、傾けない或いは所定の角度未満傾けてもよい。また、角度変更部406は、傾けない或いは所定の角度未満傾けた後の局所3次元点群データを含む教師データ425を、学習用データ格納部126に格納してもよい。この場合の教師データ425は第3教師データの一例となる。また、この場合の教師データ425については、角度変更部406は"正解ラベル"を変更しない。
【0066】
拡縮部407は、教師データ410の"第1点群データ"及び"第2点群データ"に含まれる2つの局所3次元点群データのうちのいずれか一方の局所3次元点群データを、所定範囲を超えた拡大率または縮小率で拡大または縮小する。また、拡縮部407は、所定範囲を超えた拡大率または縮小率で拡大または縮小した後の局所3次元点群データを含む教師データ426を、学習用データ格納部126に格納する。教師データ426は第6教師データの一例である。
【0067】
また、拡縮部407では、所定範囲を超えた拡大率または縮小率で拡大または縮小した後の局所3次元点群データを含む教師データ426については、"正解ラベル"を、"同一"から"非同一"に変更する。2つの局所3次元点群データのうちのいずれか一方を所定範囲を超えた拡大率または縮小率で拡大または縮小した場合、これら2つの局所3次元点群データは、互いに異なる3次元形状を元にして作成されたものであるとみなせるからである。
【0068】
なお、拡縮部407は、教師データ410に含まれる2つの局所3次元点群データを、同一サイズのまま、あるいは、いずれか一方の局所3次元点群データを、所定範囲内の拡大率または縮小率で拡大または縮小してもよい。また、拡縮部407は、同一サイズの局所3次元点群データまたは所定範囲内の拡大率または縮小率で拡大または縮小した後の局所3次元点群データを含む教師データ426を、学習用データ格納部126に格納してもよい。この場合の教師データ426は第5教師データの一例となる。また、この場合の教師データ426については、拡縮部407は"正解ラベル"を変更しない。
【0069】
シフト部408は、教師データ410の"第1点群データ"及び"第2点群データ"に含まれる2つの局所3次元点群データのうちのいずれか一方の局所3次元点群データの中心位置をシフトする。また、シフト部408は、中心位置をシフトした後の局所3次元点群データを含む教師データ427を、学習用データ格納部126に格納する。
【0070】
このように、データ拡張部123が学習用データ300を拡張することで、計測方向や計測位置、計測距離、計測タイミング、計測装置の種類等の各種計測条件が異なる、2つの局所3次元点群データの組を、疑似的に生成することができる。そして、拡張後の学習用データ300を用いることで、第1の実施形態によれば、各種計測条件が異なる2つの局所3次元点群データについての同一性の評価の精度を向上させることができる。
【0071】
<学習部の機能構成の詳細>
次に、学習部124の機能構成の詳細について説明する。
図5は、学習部の機能構成の一例を示す図である。
図5に示すように、学習部124は、2つの局所3次元点群データが互いに同一の3次元形状を元にして作成されたものであるか否かを推論するために(同一性を評価するために)、シャム(Siamese)ネットワーク構造を利用する。
【0072】
具体的には、
図5に示すように、学習部124は、第1点群データ入力部501、第1DNN部502、第2点群データ入力部511、第2DNN部512、同一性評価部521を有する。更に、学習部124は、比較部531を有する。
【0073】
第1点群データ入力部501は、学習用データ格納部126に格納された学習用データ300から、"第1点群データ"に格納された局所3次元点群データを読み出し、第1DNN部502に入力する。また、第2点群データ入力部511は、学習用データ格納部126に格納された学習用データ300から、"第2点群データ"に格納された局所3次元点群データを読み出し、第2DNN部512に入力する。
【0074】
なお、第1点群データ入力部501により入力される局所3次元点群データと、第2点群データ入力部511により入力される局所3次元点群データとは、学習用データ300において互いに対応付けられた局所3次元点群データである。
【0075】
第1DNN部502は第1ニューラルネットワークの一例であり、例えば、3次元点群データ用のDNNであるPointNetが用いられる。第1DNN部502は、第1点群データ入力部501により局所3次元点群データが入力されることで動作し、第1点群データ特徴量を出力する(下式(1)参照)。
【0076】
【数1】
上式(1)は、2048点の点群を含む局所3次元点群データから、1024個の特徴量を含む第1点群データ特徴量が出力されることを表している。
【0077】
第2DNN部512は第2ニューラルネットワークの一例であり、例えば、3次元点群データ用のDNNであるPointNetが用いられる。第2DNN部512は、第2点群データ入力部511により局所3次元点群データが入力されることで動作し、第2点群データ特徴量を出力する(下式(2)参照)。
【0078】
【数2】
上式(2)は、2048点の点群を含む局所3次元点群データから、1024個の特徴量を含む第2点群データ特徴量が出力されることを表している。
【0079】
同一性評価部521は、第1DNN部502より出力された第1点群データ特徴量と、第2DNN部512より出力された第2点群データ特徴量とを処理する。これにより、同一性評価部521は、2つの局所3次元点群データが、互いに同一の3次元形状を元にして作成されたものであるか否かを推論するためのデータ(2つの局所3次元点群データの同一性に関する評価)を出力する。
【0080】
具体的には、同一性評価部521では、第1DNN部502及び第2DNN部512より出力された第1点群データ特徴量pn
αと第2点群データ特徴量pn
βとに基づいて、ユークリッド距離D
wを算出し、比較部531に出力する(下式(3)参照)。
【0081】
【数3】
ただし、上式(3)において、第1点群データ特徴量pn
α、第2点群データ特徴量pn
βは、下式(4−1)、(4−2)を満たすものとする。
【0082】
【数4】
つまり、ユークリッド距離D
Wは、2つの局所3次元点群データの同一性に関する評価を表しているということができる。なお、ユークリッド距離D
Wが小さければ、同一性が高いことを示す評価が出力されたということができ、ユークリッド距離D
Wが大きければ、同一性が低いことを示す評価が出力されたということができる。
【0083】
比較部531は、同一性評価部521により出力されたユークリッド距離D
wと、学習用データ格納部126より読み出された"正解ラベル"に格納された同一(または非同一)であることを示す情報とに基づいて損失関数L
cを算出する(下式(5)参照)。
【0084】
【数5】
ただし、上式(5)において、Cには、正解ラベルが"同一"であれば"0"が入力され、"非同一"であれば"1"が入力される。また、上式(5)において、mはマージンである。
【0085】
比較部531は、算出した損失関数L
cを逆伝播させることで、第1DNN部502及び第2DNN部512の重みパラメータを更新する。
【0086】
なお、第1DNN部502の重みパラメータと第2DNN部512の重みパラメータとは互いに共有されており、損失関数L
cが逆伝播された際、第1DNN部502と第2DNN部512とは、同じ値の重みパラメータに更新されることになる。
【0087】
このように、学習時に、損失関数L
cを逆伝播させ、第1DNN部502と第2DNN部512とで重みパラメータを共有させながら更新することで、学習部124によれば、例えば、
・2つの局所3次元点群データの同一性に関する評価を出力するのに適した点群データ特徴量が出力されるように、重みパラメータを学習することができる、
・学習用データ300において、"第1点群データ"及び"第2点群データ"にそれぞれ格納された局所3次元点群データの特性に偏りがあった場合でも、汎化性能の高い重みパラメータを学習することができる、
といった効果を奏することになる。この結果、第1の実施形態によれば、同一性の評価の精度を向上させることができる。
【0088】
<学習処理の流れ>
次に、学習部124による学習処理の流れについて説明する。
図6は、学習部による学習処理の流れを示すフローチャートである。
【0089】
ステップS601において、第1点群データ入力部501及び第2点群データ入力部511は、学習用データ格納部126より、互いに対応付けられた2つの局所3次元点群データの組を複数読み出す。
【0090】
ステップS602において、第1DNN部502及び第2DNN部512は、読み出された2つの局所3次元点群データの組を入力することで動作し、第1点群データ特徴量pn
α及び第2点群データ特徴量pn
βを出力する。
【0091】
ステップS603において、同一性評価部521は、第1点群データ特徴量pn
αと第2点群データ特徴量pn
βとに基づいてユークリッド距離D
wを算出する。
【0092】
ステップS604において、比較部531は、算出されたユークリッド距離D
wと、学習用データ格納部126より読み出した正解ラベルCとに基づいて、損失関数L
cを算出する。また、比較部531は、算出した損失関数L
cに基づいて、第1DNN部502及び第2DNN部512の重みパラメータを共有させながら更新する。
【0093】
ステップS605において、比較部531は、学習処理を終了するか否かを判定する。ステップS605において、学習処理を終了しないと判定した場合には(ステップS605においてNoの場合には)、ステップS602に戻る。これにより、第1点群データ入力部501及び第2点群データ入力部511は、互いに対応付けられた2つの局所3次元点群データの組であって、まだ学習処理に用いられていない組を第1DNN部502及び第2DNN部512に入力する。
【0094】
一方、ステップS605において、学習処理を終了すると判定した場合には(ステップS605においてYesの場合には)、学習処理を終了し、更新した重みパラメータを、推論部125に反映する。
【0095】
<推論部の機能構成>
次に、推論部125の機能構成の詳細について説明する。
図7は、推論部の機能構成の一例を示す図である。学習部124と同様、推論部125は、2つの局所3次元点群データが、互いに同一の3次元形状を元にして作成されたものであるか否かを推論するために(同一性を評価するために)、シャム(Siamese)ネットワーク構造を利用する。
【0096】
具体的には、
図7に示すように、推論部125は、第1点群データ入力部701、第1DNN部702、第2点群データ入力部711、第2DNN部712、同一性評価部721を有する。更に、推論部125は、出力部731を有する。
【0097】
第1点群データ入力部701は、推論用データ格納部127に格納された推論用データから、"第1点群データ"に格納された局所3次元点群データを読み出し、第1DNN部702に入力する。また、第2点群データ入力部711は、推論用データ格納部127に格納された推論用データから、"第2点群データ"に格納された局所3次元点群データを読み出し、第2DNN部712に入力する。
【0098】
なお、推論用データ格納部127に格納された推論用データは、情報の項目として"正解ラベル"がないことを除けば、
図3の学習用データ300と同様の構成を有しているものとする。
【0099】
なお、第1点群データ入力部701により入力される局所3次元点群データと、第2点群データ入力部711により入力される局所3次元点群データとは、推論用データにおいて互いに対応付けられた局所3次元点群データである。
【0100】
第1DNN部702は第1ニューラルネットワークの一例であり、第1点群データ入力部701により局所3次元点群データが入力されることで動作し、第1点群データ特徴量pn
αを出力する。
【0101】
第2DNN部712は第2ニューラルネットワークの一例であり、第2点群データ入力部711により局所3次元点群データが入力されることで動作し、第2点群データ特徴量pn
βを出力する。なお、第1DNN部702と第2DNN部712とは、互いに重みパラメータが共有されている。
【0102】
同一性評価部721は、第1DNN部702より出力された第1点群データ特徴量と、第2DNN部712より出力された第2点群データ特徴量とを処理する。これにより、同一性評価部721は、2つの局所3次元点群データが、互いに同一の3次元形状を元にして作成されたものであるか否かを推論するためのデータ(2つの局所3次元点群データの同一性に関する評価)を出力する。
【0103】
具体的には、同一性評価部721では、第1DNN部702より出力された第1点群データ特徴量pn
αと、第2DNN部712より出力された第2点群データ特徴量pn
βとに基づいて、ユークリッド距離D
wを算出し、出力部731に出力する。なお、上述したように、ユークリッド距離D
Wが小さければ、同一性が高いことを示す評価が出力されたということができ、ユークリッド距離D
Wが大きければ、同一性が低いことを示す評価が出力されたということができる。
【0104】
出力部731では、同一性評価部721より出力されたユークリッド距離D
wが所定の閾値以上であるか否かを判定する(下式(6−1)、(6−2)参照)。
【0105】
【数6】
ユークリッド距離D
wが所定の閾値t
dより大きいと判定した場合(上式(6−1))、出力部731では、同一性の評価として"非同一である"を出力する。一方、ユークリッド距離D
wが所定の閾値t
d以下であると判定した場合(上式(6−2))、出力部731では、同一性の評価として、"同一である"を出力する。
【0106】
このように、推論時に、互いに重みパラメータが共有された第1DNN部702と第2DNN部712とを用いることで、推論部125によれば、例えば、
・2つの局所3次元点群データの同一性に関する評価を出力するのに適した点群データ特徴量を出力することができる、
・2つの局所3次元点群データを第1DNN部702と第2DNN部712のいずれに入力するかによらず、同一性に関する評価として、同じデータを出力することができる、
といった効果を奏することになる。この結果、第1の実施形態によれば、同一性の評価の精度を向上させることができる。
【0107】
<推論処理の流れ>
次に、推論部125による推論処理の流れについて説明する。
図8は、推論部による推論処理の流れを示すフローチャートである。
【0108】
ステップS801において、第1点群データ入力部701及び第2点群データ入力部711は、推論用データ格納部127より、互いに対応付けられた2つの局所3次元点群データの組を読み出す。
【0109】
ステップS802において、第1DNN部702及び第2DNN部712は、読み出された2つの局所3次元点群データの組を入力することで動作し、第1点群データ特徴量pn
α及び第2点群データ特徴量pn
βを出力する。
【0110】
ステップS803において、同一性評価部721は、第1点群データ特徴量pn
αと第2点群データ特徴量pn
βとに基づいてユークリッド距離D
wを算出する。
【0111】
ステップS804において、出力部731は、同一性評価部721より出力されたユークリッド距離D
wに基づいて、同一性の評価("同一である"または"非同一である")を出力する。
【0112】
<推論結果の具体例>
次に、推論部125による推論結果の具体例について説明する。
図9は、推論結果の具体例を示す図である。
【0113】
このうち、
図9(a)は、推論処理に用いた推論用データの概要を示している。
図9(a)において、"対象物の種類"には、第1の計測装置110及び第2の計測装置111が計測した対象物の種類を示している。
【0114】
また、
図9(a)において、"2つの局所3次元点群データが同一の組の数"には、対応する"対象物の種類"に含まれる複数の局所3次元点群データのうち、互いに同一の3次元形状を元にして作成された、2つの局所3次元点群データの組の数が格納される。また、"2つの局所3次元点群データが非同一の組の数"には、対応する"対象物の種類"に含まれる複数の局所3次元点群データのうち、互いに異なる3次元形状を元にして作成された、2つの局所3次元点群データの組の数が格納される。
【0115】
一方、
図9(b)は、
図9(a)に示す推論用データを入力データとして、推論部125が推論した推論結果についての、"対象物の種類"ごとの適合率を示している。
図9(b)に示すように、推論部125によれば、"対象物の種類"によらず、高い適合率を実現することが可能となる。
【0116】
<まとめ>
以上の説明から明らかなように、第1の実施形態に係る点群データ同一性推定システムは、点群データ同一性推定装置が、
・3次元点群データからなる第1点群データ及び第2点群データを取得する第1点群データ取得部及び第2点群データ取得部を有する。
・第1点群データを入力して第1点群データ特徴量を出力する第1DNN部と、第2点群データを入力して第2点群データ特徴量を出力する第2DNN部とを有する。
・第1点群データ特徴量と第2点群データ特徴量とに基づいて、第1点群データと第2点群データの同一性に関する評価を出力する同一性評価部を有する。
・第1DNN部と第2DNN部とは、互いに重みパラメータが共有されている。
【0117】
これにより、第1の実施形態によれば、3次元点群データについて、同一性の評価の精度を向上させる点群データ同一性推定装置及び点群データ同一性推定システムを提供することができる。
【0118】
[第2の実施形態]
上記第1の実施形態では、点群データに関する情報が、3次元点群データそのものであるとして説明した。しかしながら、点群データに関する情報は、3次元点群データそのものに限定されず、メッシュデータ(ポリゴンデータ)やサーフェスデータ、CADデータ等であってもよい。
【0119】
また、上記第1の実施形態では、互いに異なる3次元形状を元に作成した2つの局所3次元点群データを対応付けて学習用データ300として格納する場合の対応付け方法について言及しなかった。しかしながら、2つの局所3次元点群データを対応付ける際、例えば、それぞれの3次元形状が所定の距離内に位置する3次元点群データに限定して対応付けを行うようにしてもよい。
【0120】
また、上記第1の実施形態では、データ拡張部123に含まれる各部のうち、
・角度変更部406が角度を変更する場合、及び、
・拡縮部407がサイズを変更する場合、
に変更の度合いに応じて、"正解ラベル"が"同一"の教師データと、"正解ラベル"が"非同一"の教師データとを生成するものとして説明した。
【0121】
しかしながら、角度変更部406、拡縮部407以外の各部についても、同様に、変更の度合いに応じて、"正解ラベル"が"同一"の教師データと、"正解ラベル"が"非同一"の教師データとを生成するように構成してもよい。
【0122】
また、上記第1の実施形態において、データ拡張部123は、"正解ラベル"が"同一"の教師データを読み出して、学習用データ300を拡張する場合について説明した。しかしながら、データ拡張部123が学習用データ300を拡張する際に読み出す教師データは、これに限定されず、"正解ラベル"が"非同一"の教師データを読み出してもよい。
【0123】
これにより、例えば、同一の3次元形状を有する別箇の個体であって、色のみが異なっている場合や、材質のみが異なっている場合に、同一性の評価として、誤って"同一である"との出力がなされてしまうといった事態を回避することができる。
【0124】
また、上記第1の実施形態では、データ拡張部123に含まれる各部が学習用データ300を拡張する場合について説明した。しかしながら、学習用データ300の拡張方法はこれに限定されず、各種計測条件を人為的に変更することで、学習用データ300を拡張してもよい。
【0125】
例えば、密度変更部402または拡縮部407を動作させる代わりに、第1の計測装置110から対象物までの計測距離を変更したり、第1の計測装置110の種類を変更することで、学習用データ300を拡張してもよい。
【0126】
また、例えば、角度変更部406を動作させる代わりに、第1の計測装置110の角度を傾け、計測方向を変更することで、学習用データ300を拡張してもよい。また、例えば、シフト部408を動作させる代わりに、第1の計測装置110の計測位置をシフトすることで、学習用データ300を拡張してもよい。また、例えば、ノイズ付加部404またはバイアス付加部405を動作させる代わりに、実環境130内の照明の明るさを変更したり、第1の計測装置110の計測タイミングを変更することで、学習用データ300を拡張してもよい。
【0127】
また、上記第1の実施形態では、同一性評価部521が、第1点群データ特徴量と第2点群データ特徴量とに基づいて算出したユークリッド距離D
wを、同一性に関する評価として出力する場合について説明した。しかしながら、同一性評価部521による同一性に関する評価の出力方法はこれに限定されず、他の関数を用いて算出したデータを、同一性に関する評価として出力してもよい。あるいは、関数以外の方法で(例えば、NNを用いて)算出したデータを、同一性に関する評価として出力してもよい。
【0128】
また、上記第1の実施形態では、点群データ同一性推定装置120が、学習部124と推論部125とを有するものとして説明した。しかしながら、学習部124と推論部125とは、別体の装置により構成してもよい。
【0129】
以上、実施形態を説明したが、特許請求の範囲の趣旨及び範囲から逸脱することなく、形態や詳細の多様な変更が可能なことが理解されるであろう。
【解決手段】 2つの3次元点群データの元となる対象物の同一性を推定する点群データ同一性推定装置であって、3次元点群データからなる第1点群データ及び第2点群データを取得する点群データ取得部と、第1点群データに関する情報を入力して第1点群データ特徴量を出力する第1ニューラルネットワークと、第2点群データに関する情報を入力して第2点群データ特徴量を出力する第2ニューラルネットワークと、前記第1点群データ特徴量と前記第2点群データ特徴量とに基づいて、前記第1点群データと前記第2点群データの同一性に関する評価を出力する同一性評価部と、を有し、前記第1ニューラルネットワークと前記第2ニューラルネットワークとは互いに重みが共有されている。