(57)【要約】      （修正有）【課題】画像特徴が少ない画像や乱雑な環境の画像であっても、３Ｄ物体検出のためのデータセットが作成可能なデータセット作成方法、装置、及びプログラムを提供する。【解決手段】データセット作成装置は、入力した複数画像の画像データに基づいて、各画像に含まれる物体の境界領域に関する情報を計算し、画像特徴を用いて画像毎に取得した２次元特徴点を物体の境界領域に関する情報を用いてグループ化する。２次元特徴点と対応した３次元点であって、画像データから計算した３次元点を、２次元特徴点をグループ化したときの画像毎のグループ数に基づいて、グループ化する。物体の境界領域に関する情報と、グループ化した３次元点とに基づいて、複数画像で同一の物体を表す境界領域に関する情報を取得する。その情報に基づいて、境界領域毎に３次元物体領域に関する情報を計算し、アノテーションを付加してデータセットを作成する。【選択図】図１０
2020135679.tif 000002
【特許請求の範囲】
【請求項１】
データセット作成装置におけるデータセット作成方法であって、
入力した複数画像の画像データに基づいて、各画像に含まれる物体の境界領域に関する情報を計算し、
前記画像データから画像特徴を用いて画像毎に取得した２次元特徴点を前記物体の境界領域に関する情報を用いてグループ化し、前記２次元特徴点と対応した３次元点であって、前記画像データから計算した前記３次元点を、前記２次元特徴点をグループ化したときの画像毎のグループ数に基づいて、グループ化し、
各画像に含まれる前記物体の境界領域に関する情報と、グループ化した前記３次元点とに基づいて、入力した複数画像で同一の物体を表す境界領域に関する情報を取得し、
同一の物体を表す前記境界領域に関する情報に基づいて、該境界領域毎に３次元物体領域に関する情報を計算し、
前記３次元物体領域に関する情報にアノテーションを付加してデータセットを作成する
ことを特徴とするデータセット作成方法。
【請求項２】
前記２次元特徴点は、第１及び第２の２次元特徴点を含み、
前記第１及び第２の２次元特徴点とそれぞれ対応する第１及び第２の３次元点を、前記第１及び第２の２次元特徴点をグループ化したときのグループ数が閾値より多いとき、前記第１及び第２の３次元点を１つのグループにグループ化することを特徴とする請求項１記載のデータセット作成方法。
【請求項３】
計算した前記３次元物体領域に関する情報に基づいて、前記３次元物体領域を含む３次元バウンディングボックス又は３次元楕円体に関する情報を計算し、前記３次元物体領域を前記３次元バウンディングボックス又は前記３次元楕円体とすることを特徴とする請求項１記載のデータセット作成方法。
【請求項４】
入力した複数画像の画像データに基づいて、各画像に含まれる物体の境界領域に関する情報を計算する第１のインスタンス領域計算部と、
前記画像データから画像特徴を用いて画像毎に取得した２次元特徴点を前記物体の境界領域に関する情報を用いてグループ化し、前記２次元特徴点と対応した３次元点であって、前記画像データから計算した前記３次元点を、前記２次元特徴点をグループ化したときの画像毎のグループ数に基づいて、グループ化する３点群グループ計算部と、
各画像に含まれる前記物体の境界領域に関する情報と、グループ化した前記３次元点とに基づいて、入力した複数画像で同一の物体を表す境界領域に関する情報を取得する第２のインスタンス領域計算部と、
同一の物体を表す前記境界領域に関する情報に基づいて、該境界領域毎に３次元物体領域に関する情報を計算する３次元物体領域計算部と、
前記３次元物体領域に関する情報にアノテーションを付加してデータセットを作成するデータセット生成部と
を備えることを特徴とするデータセット作成装置。
【請求項５】
データセット作成装置のコンピュータで実行されるデータセット作成プログラムであって、
入力した複数画像の画像データに基づいて、各画像に含まれる物体の境界領域に関する情報を計算し、
前記画像データから画像特徴を用いて画像毎に取得した２次元特徴点を前記物体の境界領域に関する情報を用いてグループ化し、前記２次元特徴点と対応した３次元点であって、前記画像データから計算した前記３次元点を、前記２次元特徴点をグループ化したときの画像毎のグループ数に基づいて、グループ化し、
各画像に含まれる前記物体の境界領域に関する情報と、グループ化した前記３次元点とに基づいて、入力した複数画像で同一の物体を表す境界領域に関する情報を取得し、
同一の物体を表す前記境界領域に関する情報に基づいて、該境界領域毎に３次元物体領域に関する情報を計算し、
前記３次元物体領域に関する情報にアノテーションを付加してデータセットを作成する
処理を前記コンピュータに実行させることを特徴とするデータセット作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データセット作成方法、データセット作成装置、及びデータセット作成プログラムに関する。
【背景技術】
【０００２】
近年、ＡＲ（Augmented Reality）技術が注目されつつある。ＡＲは、例えば、人が知覚する現実環境をコンピュータにより拡張する技術、およびコンピュータにより拡張された現実環境そのものを指す用語として用いられる。ＡＲでは、例えば、現実世界をベースとして、仮想物体（又はＡＲ情報）を現実世界に映し出して、現実世界の一部を拡張した映像を映し出すことができる。ＡＲは、例えば、仮想空間がベースとなり、現実世界が入り込まないＶＲ（Virtual Reality：仮想現実）と対比されて用いられる場合がある。
【０００３】
このようなＡＲ技術を用いた例として、現場作業支援がある。タブレット端末などを用いて、カメラで撮影された工場内の設備や機器に対して、ＡＲ情報によりその内部構造を可視化して、設備や機器の組み立て方を指示したりすることが可能となる。このようなＡＲ技術の利用により、例えば、工場の設備点検にかかる工場関係者の負担を軽減させることができる。
【０００４】
ＡＲ技術では、例えば、カメラ画像に対して機械学習による３Ｄ（Three Dimensions：３次元）物体検出が行われる場合がある。このような検出装置では、メモリなどに大量の画像及びアノテーションを記憶させ、入力されたカメラ画像に含まれる対象物体に最も近似した（又は一致する）画像を機械学習によって検出する。そして、検出装置では、検出した画像及びアノテーションを利用して、その画像に対応するＡＲ情報（又はＡＲオブジェクト）を表示することが可能となる。
【０００５】
なお、アノテーションとは、例えば、画像に付加（又は付随）された情報のことで、画像の３Ｄ領域、位置及び姿勢、ラベルなどに関する情報がある。アノテーションのことを、例えば、タグ情報やメタデータなどと称する場合もある。
【０００６】
メモリなどに記憶させた画像及びアノテーションを、例えば、データセットと称する場合がある。機械学習による３Ｄ物体検出では、適切なモデルを学習させるために、大量のデータセットが利用される。そして、検出装置などで、データセットを作成する際に、対象物体の高精度な３Ｄモデルと背景画像との合成画像が用いられる場合がある。
【０００７】
しかし、データセット作成に利用される３Ｄモデルについては、３次元情報を取得するため、深度センサなど、特殊な装置が用いられる場合がある。例えば、工場に新しい設備が導入された場合、再度、特殊な装置を用いて、データセットの作成を行う。そのため、データセット作成又は更新にかかる運用効率が低下する場合がある。
【０００８】
そこで、深度センサなど特殊な装置を用いることなくデータセットを作成する技術がある。このような技術としては、例えば、以下がある。すなわち、入力画像に対してＳＬＡＭ（Simultaneous Localization and Mapping）やＭＶＳ（Multi-View Stereo）を用いて３Ｄの点群データ（又は３Ｄ環境データ）が作成され、作業者が点群データを見ながら手作業でアノテーションを装置に入力（又は定義）する。そして、装置内において、アノテーションが、撮影位置が既知な画像に投影される（又は結び付けられる）。これにより、例えば、深度センサなど特殊な装置を用いることなく、データセットを作成することが可能となる。
【０００９】
また、カメラの取得画像からカメラの位置姿勢情報とオブジェクトとを検出し、オブジェクトに対応する少なくとも三次元形状データを含むオブジェクト情報を登録した辞書データを適用して、環境マップの生成又は更新処理を実行する情報処理装置がある。この技術によれば、カメラの取得画像に基づいて環境マップの生成や更新を行う構成を実現することができる、とされる。
【００１０】
さらに、基準プレートを用いた座標変換により、三次元座標計測ロボットの先端に取り付けられたアームのキャリブレーションを行うようにした三次元座標系計測装置もある。この技術によれば、精度良くセンサ座標系を世界座標系に変換することができる、とされる。
【先行技術文献】
【非特許文献】
【００１１】
【非特許文献１】Andreas Geiger et al., “Are we ready for Autonomous Driving? The KITTI Vision Benchmark Suite”, IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), May 2012
【特許文献】
【００１２】
【特許文献１】特開２００８−３０４２６８号公報
【特許文献２】特開２０１２−１４５３８１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
しかし、点群データを見ながら手作業でアノテーションを入力する技術では、作業者が、対象物体が何であるかを目視できる程度の点群データが作成されることが前提である。例えば、段ボールなど画像特徴が乏しい物体の点群データの場合、作業者がどのような対象物体の点群データであるかを認識することができない場合がある。また、例えば、多くの人がいる場合など、乱雑な環境下における点群データの場合も、作業者がどのような物体かを認識することができない場合がある。そのため、かかる技術では、データセットを作成することができない場合がある。
【００１４】
また、辞書データを適用して環境マップを生成又は更新する技術と、基準プレートを用いた座標変換に関する技術も、画像特徴が乏しい物体や乱雑な環境の物体を対象とする場合、どのようにデータセットを作成するかについては何ら開示も示唆もなされていない。従って、かかる技術では、作業者がどのような物体かを認識することができず、データセットを作成することができない場合がある。
【００１５】
そこで、開示の技術は上記に鑑みてなされたもので、画像特徴が少ない画像や乱雑な環境の画像であっても、３Ｄ物体検出のためのデータセットが作成可能なデータセット作成方法、データセット作成装置、及びデータセット作成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
一開示は、データセット作成装置におけるデータセット作成方法であって、入力した複数画像の画像データに基づいて、各画像に含まれる物体の境界領域に関する情報を計算し、前記画像データから画像特徴を用いて画像毎に取得した２次元特徴点を前記物体の境界領域に関する情報を用いてグループ化し、前記２次元特徴点と対応した３次元点であって、前記画像データから計算した前記３次元点を、前記２次元特徴点をグループ化したときの画像毎のグループ数に基づいて、グループ化し、各画像に含まれる前記物体の境界領域に関する情報と、グループ化した前記３次元点とに基づいて、入力した複数画像で同一の物体を表す境界領域に関する情報を取得し、同一の物体を表す前記境界領域に関する情報に基づいて、該境界領域毎に３次元物体領域に関する情報を計算し、前記３次元物体領域に関する情報にアノテーションを付加してデータセットを作成する。
【発明の効果】
【００１７】
一開示によれば、画像特徴が少ない画像や乱雑な環境の画像であっても、３Ｄ物体検出のためのデータセットを作成することが可能となる。
【図面の簡単な説明】
【００１８】
【図１】図１はデータセット作成システムの構成例を表す図である。
【図２】図２は動作例を表すフローチャートである。
【図３】図３は３Ｄ点群グルーピング処理の例を表すフローチャートである。
【図４】図４はインスタンス領域（グローバル）計算処理の例を表すフローチャートである。
【図５】図５は３Ｄ物体領域の計算処理の例を表すフローチャートである。
【図６】図６（Ａ）は対象物体、図６（Ｂ）は３Ｄ  Ｂｏｕｎｄｉｎｇ  Ｂｏｘ等の例をそれぞれ表す図である。
【図７】図７（Ａ）は入力画像、図７（Ｂ）はカメラの位置及び姿勢、図７（Ｃ）は３Ｄ点、図７（Ｄ）は２Ｄ特徴点の例をそれぞれ表す図である。
【図８】図８（Ａ）は２Ｄ特徴点、図８（Ｂ）は３Ｄ点群の例をそれぞれ表す図である。
【図９】図９（Ａ）は入力画像、図９（Ｂ）はインスタンス領域（ローカル）の例をそれぞれ表す図である。
【図１０】図１０（Ａ）は２Ｄ特徴点、図１０（Ｂ）はインスタンス領域（ローカル）、図１０（Ｃ）は２Ｄ特徴点グループ、図１０（Ｄ）と図１０（Ｅ）は３Ｄ点群グループの例をそれぞれ表す図である。
【図１１】図１１（Ａ）から図１１（Ｃ）は２Ｄ特徴点グループの例を表す図である。
【図１２】図１２（Ａ）は３Ｄ点群グループ、図１２（Ｂ）はグラフの例をそれぞれ表す図である。
【図１３】図１３（Ａ）は３Ｄ点群グループ、図１３（Ｂ）はインスタンス領域（ローカル）、図１３（Ｃ）はインスタンス領域（グローバル）、図１３（Ｄ）はインスタンス領域の遮蔽関係、図１３（Ｅ）は尤度マップ、図１３（Ｆ）は３Ｄ物体領域の例をそれぞれ表す図である。
【図１４】図１４（Ａ）と図１４（Ｂ）はアノテーションの例を表す図である。
【図１５】図１５はデータセット作成装置の構成例を表す図である。
【図１６】図１６はデータセット作成装置のハードウェア構成例を表す図である。
【発明を実施するための形態】
【００１９】
以下、本発明を実施するための形態について説明する。なお、以下の実施例は開示の技術を限定するものではない。そして、各実施の形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【００２０】
［第１の実施の形態］
＜情報処理装置の構成例＞
図１はデータセット作成システム１０の構成例を表す図である。
【００２１】
データセット作成システム１０は、撮像装置２００とデータセット作成装置１００を備える。
【００２２】
撮像装置２００は、撮像部２０１を備える。例えば、撮像装置２００はカメラ装置であって、撮像部２０１はカメラ（又はカメラの撮像部分）である。撮像部２０１は、対象物体を撮像し、対象物体を含む画像を生成する。撮像部２０１は、生成した画像を画像データ（又はＲＧＢ（Red Green Blue）データ）として、データセット作成装置１００へ出力する。
【００２３】
なお、以下においては、画像と画像フレーム、及び画像データを区別しないで用いる場合がある。
【００２４】
データセット作成装置１００は、データセットを作成する。データセットは、例えば、画像及び画像に関するアノテーションのことである。上述したように、データセットを用いて、機械学習による３次元（又は３Ｄ。以下、「３Ｄ」と称する場合がある。）物体検出が行われる。データセット作成装置１００は、例えば、このようなデータセットを作成するための装置である。本データセット作成装置１００では、深度センサなど特殊なセンサを用いることなく、入力画像を用いて、データセットを作成することが可能となっている。
【００２５】
図１に示すようにデータセット作成装置１００は、記憶部１０１、自己位置推定部１０２、３Ｄ点群生成部１０３、インスタンス領域（ローカル）計算部１０４、３Ｄ点群グループ計算部１０５を備える。また、データセット作成装置１００は、インスタンス領域（グローバル）計算部１０６と３Ｄ物体領域計算部１０７、アノテーション付加部１０８、及びデータセット生成部１０９を備える。
【００２６】
記憶部１０１は、撮像装置２００から出力された画像データを記憶する。また、記憶部１０１は、各種設定値などを記憶する。
【００２７】
自己位置推定部１０２は、記憶部１０１から読み出した画像データを用いて、世界座標系における撮像装置２００の位置及び姿勢を推定する。推定した位置及び姿勢は、例えば、３次元座標で表される。例えば、自己位置推定部１０２は、ＳＬＡＭやＭＶＳ、ＳｆＭ（Structure from Motion）などを用いて、撮像装置２００の位置及び姿勢を計算することで、撮像装置２００の位置及び姿勢を推定する。
【００２８】
ＳＬＡＭは、例えば、カメラ画像の画像データを用いて、カメラの位置及び姿勢と環境の３次元情報とを同時に取得する技術である。ＳＬＡＭにより、例えば、ＧＰＳ信号が届かない環境においても、３次元情報を取得して、自律移動などを実現することができる。自己位置推定部１０２は、このうち、撮像装置２００の位置及び姿勢を推定する。ＳＬＡＭやＭＶＳなどの具体的な手法は、例えば、公知の手法でよい。
【００２９】
自己位置推定部１０２は、推定した撮像装置２００の位置及び姿勢を、３Ｄ物体領域計算部１０７へ出力する。
【００３０】
３Ｄ点群生成部１０３は、記憶部１０１から読み出した画像データを用いて、画像に含まれる対象物体の世界座標系における３次元点（又は３次元点群。以下では「３Ｄ点」又は「３Ｄ点群」と称する場合がある。）を生成する。例えば、３Ｄ点群生成部１０３は、ＳＬＡＭやＭＢＳ、ＳｆＭなどを用いて、画像データから、各画像に含まれる対象物体の３Ｄ点を生成する。３Ｄ点群生成部１０３は、生成した３Ｄ点群を３Ｄ点群グループ計算部１０５へ出力する。
【００３１】
なお、３Ｄ点群生成部１０３は、３Ｄ点群を生成する際に、記憶部１０１から読み出した画像データから画像特徴を用いて、画像毎に２次元特徴点（又は２Ｄ特徴点。以下、「２Ｄ特徴点」と称する場合がある。）を取得する。例えば、ＳＬＡＭなどでは、３次元点を生成する際に、ＳＩＦＴ（Scale Invariant Feature Transform）特徴やＳＵＲＦ（Speeded Up Robust Features）特徴などの画像特徴を用いて、各画像の特徴点を抽出している。３Ｄ点群生成部１０３は、このようなＳＩＦＴ特徴などを利用して抽出した特徴点を、２Ｄ特徴点として抽出する。３Ｄ点群生成部１０３は、抽出した２Ｄ特徴点を３Ｄ点群グループ計算部１０５へ出力する。
【００３２】
インスタンス領域（ローカル）計算部１０４は、記憶部１０１から読み出した画像データを用いて、各画像に含まれる物体の境界領域を計算する。境界領域のことを、例えば、インスタンス領域と称する場合がある。また、境界によって区分けされた個々の物体のことを、例えば、インスタンスと称する場合がある。インスタンス領域は、例えば、個々の物体の領域を表す。
【００３３】
なお、インスタンス領域（ローカル）計算部１０４は、画像毎にインスタンス領域を計算する。その際、インスタンス領域（ローカル）計算部１０４は、各画像でインスタンス領域のラベルが一貫していない、各画像で独立したラベルのインスタンス領域を計算する。このようなスンスタンス領域のことを、例えば、インスタンス領域（ローカル）と称する場合がある。図９（Ｂ）はインスタンス領域（ローカル）の例を表す図である。図９（Ｂ）の詳細は後述する。
【００３４】
インスタンス領域（ローカル）計算部１０４は、例えば、以下のようにして、インスタンス領域（ローカル）を計算する。
【００３５】
すなわち、インスタンス領域（ローカル）計算部１０４は、記憶部１０１から読み出した画像データを用いて、隣接画素の画像データの差分と閾値とを比較するなどにより、画像内に含まれる物体の境界（boundary）を検出する。インスタンス領域（ローカル）計算部１０４は、境界検出を複数回繰り返して、画像のどの位置で境界になり易いかを学習する。インスタンス領域（ローカル）計算部１０４は、記憶部１０１に学習データを記憶する。インスタンス領域（ローカル）計算部１０４は、記憶部１０１から読み出した学習データと入力画像の画像データとを比較して、入力画像に含まれる物体の境界を検出する。そして、インスタンス領域（ローカル）計算部１０４は、検出した境界に対して、焼きなまし法（annealing）を用いて最適化を行い、１つの物体としての境界を作成する。インスタンス領域（ローカル）を計算する手法としては、例えば、「Trung Phan et al., “Bayesian Semantic Instance Segmentation in Open Set World”, ECCV 2018」がある。以下では、インスタンス領域（ローカル）を計算する手法のことを、例えば、インスタンスセグメンテーションと称する場合がある。インスタンス領域（ローカル）計算部１０４は、インスタンス領域（ローカル）内に含まれる画素の画素位置（２次元座標）を、インスタンス領域（ローカル）に付したラベルとともに計算する。インスタンス領域（ローカル）計算部１０４は、計算したインスタンス領域（ローカル）を３Ｄ点群グループ計算部１０５とインスタンス領域（グローバル）計算部１０６へ出力する。
【００３６】
図１に戻り、３Ｄ点群グループ計算部１０５は、３Ｄ点群をインスタンス領域（ローカル）ごとにグループ化する。具体的には、３Ｄ点群グループ計算部１０５は、２Ｄ特徴点を３Ｄ点群生成部１０３から取得し、インスタンス領域（ローカル）計算部１０４から取得したインスタンス領域（ローカル）を用いて２Ｄ特徴点をグループ化する。そして、３Ｄ点群グループ計算部１０５は、２Ｄ特徴点と対応した３Ｄ点であって、３Ｄ点群生成部１０３で生成された３Ｄ点を、２Ｄ特徴点をグループ化したときの画像毎のグループ数に基づいて、グループ化する。詳細は動作例で説明する。３Ｄ点群グループ計算部１０５は、グループ化した３Ｄ点群を、グループ毎にラベルを付したり、まとめたりして、インスタンス領域（グローバル）計算部１０６へ出力する。
【００３７】
インスタンス領域（グローバル）計算部１０６は、インスタンス領域（ローカル）とグループ化された３Ｄ点群とに基づいて、複数の画像で同一の物体を表すインスタンス領域を計算する。具体的には、インスタンス領域（グローバル）計算部１０６は、例えば、画像毎に各インスタンス領域（ローカル）に割り当てられたラベルを、画像間で同一の物体を表すラベルに変更し、変更後のラベルをインスタンス領域に割り当てる。例えば、図１３（Ｂ）の例では、インスタンス領域（グローバル）計算部１０６は、各インスタンス領域（ローカル）に割り当てられたラベルｒ１〜ｒ６を、画像間で同一のラベルｒ１，ｒ２へ変更し、画像間で同一のラベルｒ１，ｒ２を、各インスタンス領域に割り当てる。図１３（Ｃ）は割り当て後のインスタンス領域の例を表す。このような同一のラベルが割り当てられたインスタンス領域を、例えば、インスタンス領域（グローバル）と称する場合がある。インスタンス領域（グローバル）は、例えば、入力画像間で一貫したラベルが割り振られた各インスタンスを表している。
【００３８】
インスタンス領域（グローバル）計算部１０６は、例えば、インスタンス領域（グローバル）に含まれる画素の画素位置（２次元座標）とともに、インスタンス領域（グローバル）として割り当てたラベルとを、３Ｄ物体領域計算部１０７へ出力する。
【００３９】
図１に戻り、３Ｄ物体領域計算部１０７は、インスタンス領域（グローバル）を用いて、インスタンスごとに３Ｄ物体領域を計算する。その際、３Ｄ物体領域計算部１０７は、自己位置推定部１０２から出力された撮像装置２００の位置及び姿勢の情報を利用して、３Ｄ物体領域を計算する。
【００４０】
インスタンス領域（グローバル）は、各インスタンス内に含まれる画素位置（２次元座標に示される）により示されるが、これを３次元領域へ復元することで、各インスタンスの３Ｄ物体領域が計算される。
【００４１】
３Ｄ物体領域計算部１０７は、例えば、視体積交差法を用いて、各インスタンスの３Ｄ物体領域を計算する。視体積交差法は、例えば、２次元画像を３次元画像に復元する手法であり、複数の視点からの２次元シルエットに基づいて、３次元画像を復元する。視体積交差法は、例えば、「Jean-Sebastien Franco, Edmond Boyer, “Efficient Polyhedral Modeling from Silhouettes”, IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), March 2009」に記載されている。
【００４２】
３Ｄ物体領域計算部１０７は、計算した３Ｄ物体領域に関する情報をアノテーション付加部１０８へ出力する。
【００４３】
アノテーション付加部１０８は、３Ｄ物体領域に対してアノテーションを付加する。この場合、利用者がデータセット作成装置１００のキーボードなどを操作することで、対象となる３Ｄ物体の座標系（例えば、３Ｄ物体の３Ｄ領域と位置及び姿勢）とラベルなどを入力することで、アノテーション付加部１０８は、各３Ｄ物体領域に対してアノテーションを付加する。
【００４４】
図１４（Ａ）は、３Ｄ物体領域にアノテーションが付加された例を表す図である。例えば、アノテーション付加部１０８は、３Ｄ物体領域に関する情報と、アノテーションに関する情報とを、データセット生成部１０９へ出力する。
【００４５】
図１に戻り、データセット生成部１０９は、例えば、３Ｄ物体領域に関する情報を用いて、３Ｄ物体領域を２次元座標へ投影することで、３Ｄ物体領域とアノテーションを、アノテーション付きの２次元画像へ変換する。図１４（Ｂ）はアノテーション付き画像の例を表す図である。詳細は動作例で説明する。例えば、データセット生成部１０９は、アノテーション付きの画像を、データセットとして、記憶部１０１に記憶したり、外部に出力したりする。
【００４６】
＜動作例＞
図２はデータセット作成装置１００の動作例を表すフローチャートである。
【００４７】
データセット作成装置１００は、処理を開始すると（Ｓ１０）、ＳＬＡＭ等を利用して、撮像装置２００（又はカメラ。以下、「カメラ」と称する場合がある。）の位置及び姿勢と３Ｄ点群とを推定する（Ｓ１１）。
【００４８】
図６（Ａ）は、入力画像に写る（又は含まれる）対象物体ｃ１，ｃ２の例を表す図である。例えば、対象物体ｃ１は、段ボールなどの四角柱の物体であり、対象物体ｃ２はドラム缶などの円柱の物体である。
【００４９】
図７（Ａ）は、入力画像Ｍ１〜Ｍ３の例を表す図である。図７（Ａ）に示すように、カメラの位置及び姿勢が異なる、対象物体ｃ１，ｃ２を含む複数の画像が入力される。
【００５０】
図７（Ｂ）は、ＳＬＡＭ等で算出したカメラの位置及び姿勢の例を表す図である。自己位置推定部１０２は、記憶部１０１から読み出した入力画像の画像データに対して、ＳＬＡＭ等を用いて、世界座標系（３次元座標）で表されたカメラの位置及び姿勢を算出する。
【００５１】
図７（Ｃ）は、対象物体ｃ１，ｃ２に対する３Ｄ点群の例を表す図である。例えば、３Ｄ点群生成部１０３は、記憶部１０１から読み出した入力画像の画像データに対して、ＳＬＡＭ等を用いて、図７（Ｃ）に示すような世界座標系（３次元座標）で表された３Ｄ点群を生成する。
【００５２】
図７（Ｄ）は、２Ｄ特徴点の例を表す図である。例えば、３Ｄ点群生成部１０３は、ＳＬＡＭの計算を行う際に、ＳＩＦＴ特徴により特徴点の算出を行うが、２次元座標系（カメラ座標系）で表されたこの特徴点を、２Ｄ特徴点として、入力画像Ｍ１〜Ｍ３毎に取得する。
【００５３】
なお、３Ｄ点と２Ｄ特徴点とは対応関係にある。図８（Ａ）は２Ｄ特徴点の例、図８（Ｂ）は３Ｄ点群の例をそれぞれ表す図である。
【００５４】
例えば、３Ｄ点ｐ１１は、２Ｄ特徴点ｆ１２，ｆ２１，ｆ３１と対応し、３Ｄ点ｐ１２は、２Ｄ特徴点ｆ１１，ｆ２２，ｆ３２と対応する。３Ｄ点群生成部１０３は、例えば、以下のようにして対応関係を記憶部１０１に記憶する。
【００５５】
すなわち、３Ｄ点群生成部１０３は、ＳＬＡＭの処理を行う際に、ＳＩＦＴ特徴の処理により２Ｄ特徴点ｆ１１を算出して、その後、３Ｄ点ｐ１２を算出する。そして、３Ｄ点群生成部１０３は、２Ｄ特徴点ｆ１１と３Ｄ点ｐ１２とを、ある領域にまとめて（或いは、あるラベルとともに）記憶部１０１に記憶する。
【００５６】
これにより、例えば、その後の処理で、記憶部１０１のある領域にまとめて記憶されていることから、３Ｄ点群グループ計算部１０５などの他の構成部分は、２つの点ｆ１１，ｐ１２が対応関係にあることを把握することが可能となる。
【００５７】
図２に戻り、次に、データセット作成装置１００は、インスタンス領域（ローカル）を計算する（Ｓ１２）。例えば、インスタンス領域（ローカル）計算部１０４は、記憶部１０１から読み出した入力画像の画像データに対して、インスタンスセグメンテーションの処理を行うことで、インスタンス領域（ローカル）を計算する。
【００５８】
図９（Ａ）は入力画像Ｍ１〜Ｍ３の例、図９（Ｂ）は入力画像Ｍ１〜Ｍ３に対するインスタンス領域（ローカル）の例をそれぞれ表す図である。インスタンス領域（ローカル）計算部１０４は、上述したように、インスタンスセグメンテーションの処理を行うことで、入力画像Ｍ１に２つのインスタンスｒ１，ｒ２を含むインスタンス領域（ローカル）を計算する。また、インスタンス領域（ローカル）は、インスタンスセグメンテーションの処理を行うことで、入力画像Ｍ２に２つのインスタンスｒ３，ｒ４、さらに、入力画像Ｍ３に２つのインスタンスｒ５，ｒ６をそれぞれ含むインスタンス領域（ローカル）を計算する。
【００５９】
インスタンス領域（ローカル）計算部１０４は、例えば、各インスタンスに含まれる画素位置と、各インスタンスに割り当てたラベルとを、インスタンス領域（ローカル）に含まれる情報として、３Ｄ点群グループ計算部１０５へ出力する。
【００６０】
図２に戻り、次に、データセット作成装置１００は、３Ｄ点群のグルーピング処理を行う（Ｓ１３）。
【００６１】
図３は３Ｄ点群のグルーピング処理の例を表すフローチャートである。図３に示す各処理は、例えば、３Ｄ点群グループ計算部１０５において行われる。
【００６２】
３Ｄ点群グループ計算部１０５は、３Ｄ点群のグルーピング処理を開始すると（Ｓ１３０）、各インスタンス領域（ローカル）Ｒにおいて、画像収縮処理を適用し、インスタンス領域（ローカル）ＲをＲ’に縮小する（Ｓ１３１）。例えば、Ｒは物体の境界領域を表し、Ｒ’は物体の境界領域を縮小した縮小境界領域を表している。  
【００６３】
例えば、図９（Ｂ）に示すインスタンスｒ１に着目すると、インスタンスｒ１の境界はインスタンスセグメンテーションにより最適化されているものの、誤差が含まれている場合がある。そこで、３Ｄ点群グループ計算部１０５は、インスタンスｒ１を、インスタンスｒ１の中心に向けて縮小させる処理を行うことで、その誤差を補正するようにしている。具体的な処理としては、例えば、３Ｄ点群グループ計算部１０５は、Ｓ１２で計算したインスタンスｒ１の領域内に含まれる画素の中心画素を算出し、その中心画素に向けて、インスタンスｒ１の境界に存在する画素より数画素分の画素を、インスタンス領域ｒ’１における境界の画素とする。
【００６４】
なお、以下では、各インスタンスｒ１〜ｒ６は、画像収縮処理適用後のインスタンス領域（ローカル）Ｒ’のインスタンスとして説明する場合がある。
【００６５】
３Ｄ点群グループ計算部１０５は、縮小したインスタンス領域Ｒ’の各インスタンス内に含まれる画素の画素位置の情報を、例えば、内部メモリなどに保持し、次の処理に備える。
【００６６】
図３に戻り、次に、３Ｄ点群グループ計算部１０５は、画像の２Ｄ特徴点群Ｆのうち、インスタンス領域（ローカル）Ｒ’の内部に含まれる２Ｄ特徴点群Ｆ’（⊆Ｆ）を、インスタンス領域（ローカル）Ｒ’毎に抽出する（Ｓ１３２）。本処理では、例えば、２Ｄ特徴点をインスタンス毎にグループ化する処理が行われる。
【００６７】
例えば、３Ｄ点群グループ計算部１０５は、Ｓ１３１で計算したインスタンス領域（ローカル）Ｒ’に含まれる、Ｓ１１で取得した２Ｄ特徴点群Ｆ’を抽出する。
【００６８】
図１０（Ａ）は２Ｄ特徴点（又は２Ｄ特徴点群。以下では、２Ｄ特徴点と２Ｄ特徴点群とを区別しないで用いる場合がある。）の例を表す。また、図１０（Ｂ）はインスタンス領域（ローカル）Ｒ’に含まれるインスタンスｒ１〜ｒ６の例を表す。さらに、図１０（Ｃ）は、抽出された２Ｄ特徴点群Ｆ’の例を表す図である。例えば、３Ｄ点群グループ計算部１０５は、以下の処理を行う。
【００６９】
すなわち、３Ｄ点群グループ計算部１０５は、画像Ｍ１において、インスタンスｒ１に含まれる、２Ｄ特徴点ｆ１１〜ｆ１４を抽出する。ここで、インスタンスｒ１には、その領域に含まれる画素位置の情報が含まれる。そのため、３Ｄ点群グループ計算部１０５は、内部メモリからインスタンスｒ１に含まれる画素位置を読み出し、３Ｄ点群生成部１０３から取得した２Ｄ特徴点の画素位置と一致するものがあれば、インスタンスｒ１の領域内の２Ｄ特徴点として、その２Ｄ特徴点を抽出する。一方、３Ｄ点群グループ計算部１０５は、読み出したインスタンスｒ１の画素位置と一致する２Ｄ特徴点がなければ、インスタンスｒ１の領域外の２Ｄ特徴点として、その２Ｄ特徴点を抽出しないようにする。以降、３Ｄ点群グループ計算部１０５は、他のインスタンスｒ２〜ｒ６についても、各インスタンスｒ２〜ｒ６に含まれる２Ｄ特徴点を抽出する。
【００７０】
図１１（Ａ）から図１１（Ｃ）は、抽出された２Ｄ特徴点の例を表す図である。図１１（Ａ）に示すように、３Ｄ点群グループ計算部１０５は、インスタンスｒ１に含まれる２Ｄ特徴点として、ｆ１１〜ｆ１４を抽出する。また、３Ｄ点群グループ計算部１０５は、インスタンスｒ２に含まれる２Ｄ特徴点として、ｆ１５〜ｆ１７を抽出している。さらに、図１１（Ｂ）と図１１（Ｃ）に示すように、３Ｄ点群グループ計算部１０５は、他のインスタンスｒ３〜ｒ６についても、インスタンスｒ３〜ｒ６毎に、各インスタンスに含まれる２Ｄ特徴点ｆ２１〜ｆ３５を抽出する。
【００７１】
このとき、３Ｄ点群グループ計算部１０５は、インスタンスｒ１に属する２Ｄ特徴点ｆ１１〜ｆ１４を１つのグループにグループ化し、例えば、記憶部１０１に記憶する。また、３Ｄ点群グループ計算部１０５は、インスタンスｒ２に属する２Ｄ特徴点ｆ１３〜ｆ１７を１つのグループにグループ化し、例えば、記憶部１０１に記憶する。このように、３Ｄ点群グループ計算部１０５は、各２Ｄ特徴点ｆ１１〜ｆ３５が属するインスタンス毎に、各２Ｄ特徴点ｆ１１〜ｆ３５をグループ化して、記憶部１０１に記憶する。
【００７２】
なお、このようにグループ化された２Ｄ特徴点（又は２Ｄ特徴点群Ｆ’）を、例えば、２Ｄ特徴点グループと称する場合がある。
【００７３】
図３に戻り、次に、３Ｄ点群グループ計算部１０５は、３Ｄ点群全体Ｐのうち、２Ｄ特徴点群Ｆ’に対応する３Ｄ点群Ｐ’（⊆Ｐ）を、２Ｄ特徴点群Ｆ’毎に抽出する（Ｓ１３３）。本処理では、抽出された２Ｄ特徴点に対応する３Ｄ点を抽出する処理が行われる。すなわち、上述したように、２Ｄ特徴点と３Ｄ点は、例えば、記憶部１０１に対応して記憶される。３Ｄ点群グループ計算部１０５は、このような対応関係を利用して、Ｓ１３２で抽出した２Ｄ特徴点群Ｆ’に含まれる３Ｄ点群Ｐ’を抽出する。
【００７４】
図１０（Ｄ）は、抽出された３Ｄ点群Ｐ’の例を表す図である。例えば、図１１（Ａ）に示すように、インスタンスｒ１に含まれる２Ｄ特徴点群Ｆ’は、ｆ１１〜ｆ１４の４点である。この場合、２Ｄ特徴点ｆ１１は、３Ｄ点との対応関係（例えば、図８（Ａ）と図８（Ｂ））から、３Ｄ点ｐ１２に対応する。従って、３Ｄ点群グループ計算部１０５は、例えば、２Ｄ特徴点群Ｆ’に属する２Ｄ特徴点ｆ１１に対応する３Ｄ点群Ｐ’として、記憶部１０１から、３Ｄ点ｐ１２を抽出する。同様にして、３Ｄ点群グループ計算部１０５は、例えば、２Ｄ特徴点群Ｆ’に属する２Ｄ特徴点ｆ１２に対応する３Ｄ点群Ｐ’として、記憶部１０１から、３Ｄ点ｐ１１を抽出する。以降、３Ｄ点群グループ計算部１０５は、同一画像Ｍに含まれる、各２Ｄ特徴点ｆ１３〜ｆ１７についても、対応する３Ｄ点ｐ１３〜ｐ２４を、記憶部１０１から抽出する。
【００７５】
また、図１１（Ｂ）に示すように、インスタンスｒ３に含まれる２Ｄ特徴点群Ｆ’は、ｆ２１からｆ２４の４点である。この場合、２Ｄ特徴点ｆ２１は、その対応関係（例えば、図８（Ａ）と図８（Ｂ））から、３Ｄ点ｐ１１に対応する。従って、３Ｄ点群グループ計算部１０５は、例えば、２Ｄ特徴点群Ｆ’に属する２Ｄ特徴点ｆ２１に対応する３Ｄ点群Ｐ’として、記憶部１０１から、３Ｄ点ｐ１１を抽出する。同様にして、３Ｄ点群グループ計算部１０５は、例えば、２Ｄ特徴点群Ｆ’に属する２Ｄ特徴点ｆ２２に対応する３Ｄ点群Ｐ’として、記憶部１０１から、３Ｄ点ｐ１２を抽出する。以降、３Ｄ点群グループ計算部１０５は、各２Ｄ特徴点ｆ２３〜ｆ２７についても、対応する３Ｄ点ｐ１３〜ｐ２４を、記憶部１０１から抽出する。
【００７６】
さらに、図１１（Ｃ）に示すように、３Ｄ点群グループ計算部１０５は、２Ｄ特徴点群Ｆ’に属する２Ｄ特徴点ｆ３１〜３５に対応する３Ｄ点群Ｐ’として、記憶部１０１から、３Ｄ点ｐ１１，ｐ１２，ｐ２２〜ｐ２４を抽出する。
【００７７】
図１２（Ａ）は、抽出された３Ｄ点群Ｐ’の例を表す図である。以下では、抽出された３Ｄ点群を、例えば、３Ｄ点群グループと称する場合がある。
【００７８】
図３に戻り、次に、３Ｄ点群グループ計算部１０５は、３Ｄ点群Ｐ’の各３Ｄ点をノードとし、ノードのペアが属するグループの個数を重みとするエッジからなるグラフを生成する（Ｓ１３４）。
【００７９】
図１２（Ｂ）は、図１２（Ａ）を３Ｄ点群Ｐ’とした場合のグラフの例を表す図である。
【００８０】
例えば、３Ｄ点のペアとして、ｐ１１とｐ１２に着目する。３Ｄ点ｐ１１，ｐ１２に対応する２Ｄ特徴点は、画像Ｍ１においては、ｆ１１，ｆ１２である（例えば図１１（Ａ））。２Ｄ特徴点ｆ１１，ｆ１２の２点は、Ｓ１３２において、インスタンスｒ１に属するグループとしてグループ化された。従って、３Ｄ点群グループ計算部１０５は、２Ｄ特徴点ｆ１１，ｆ１２と対応する３Ｄ点ｐ１１，ｐ１２を、２Ｄ特徴点ｆ１１，ｆ１２と対応させて、１つのグループにグループ化することが可能である。
【００８１】
また、３Ｄ点ｐ１１，ｐ１２に対応する２Ｄ特徴点として、画像Ｍ２においては、ｆ２１，ｆ２２がある。２Ｄ特徴点ｆ２１，ｆ２２の２点は、Ｓ１３２において、インスタンスｒ３に属するグループとしてグループ化された。従って、３Ｄ点群グループ計算部１０５は、２Ｄ特徴点ｆ２１，ｆ２２と対応する３Ｄ点ｐ１１，１２を、２Ｄ特徴点ｆ２１，ｆ２２と対応させて、１つのグループでグループ化することが可能である。
【００８２】
さらに、３Ｄ点ｐ１１，１２に対応する２Ｄ特徴点として、画像Ｍ３においては、ｆ３１，ｆ３２がある。２Ｄ特徴点ｆ３１，ｆ３２の２点は、Ｓ１３２において、インスタンスｒ５に属するグループとしてグループ化された。従って、３Ｄ点群グループ計算部１０５は、２Ｄ特徴点ｆ３１，ｆ３２と対応する３Ｄ点ｐ１１，ｐ１２を、２Ｄ特徴点ｆ３１，ｆ３２に対応させて、１つのグループにグループ化することが可能である。
【００８３】
従って、３Ｄ点群グループ計算部１０５は、３Ｄ点のペアｐ１１，ｐ１２を、３つのグループにグループ化することが可能であることから、３つのグループに属するペアと判定し，図１２（Ｂ）に示すように、グループの数「３」をエッジとするグラフを作成する。
【００８４】
同様にして、３Ｄ点のペアｐ１２，ｐ１３について着目すると、３Ｄ点ｐ１２，１３に対応する２Ｄ特徴点は、画像Ｍ１においてはｆ１１，ｆ１３、画像Ｍ２においてはｆ２２，ｆ２３、画像Ｍ３においてはｆ３２（３Ｄ点ｐ１３に対応する２Ｄ特徴点がない）がある。図１１（Ａ）〜図１１（Ｃ）に示すように、２Ｄ特徴点ｆ１１，ｆ１３で１つのグループ、２Ｄ特徴点ｆ２２，ｆ２３で１つのグループになっている。ただし、２Ｄ特徴点ｆ３２，ｆ３３はグループ化されていない。従って、３Ｄ点群グループ計算部１０５は、２Ｄ特徴点ｆ１１，ｆ１３，ｆ２２，ｆ２３，ｆ３２に対応する３Ｄ点ｐ１２，ｐ１３を、２つのグループにグループ化することが可能であることから、２つのグループに属するペアと判定し、図１２（Ｂ）に示すようにグループ数「２」をエッジとするグラフを作成する。
【００８５】
以降、３Ｄ点群グループ計算部１０５は、他の３Ｄ点のペアについても、対応する２Ｄ特徴点がインスタンス領域（ローカル）Ｒ’を用いてグループ化したときの画像毎のグループ数（又は重み）をエッジとするグラフを作成する。
【００８６】
図１２（Ｂ）においては、各３Ｄ点ｐ１１〜ｐ２４がノードとなり、ノード間の数字が、例えば、３Ｄ点のペアが属するグループのグループ数を表している。例えば、３Ｄ点群グループ計算部１０５は、各ノードの情報と、計算したノード間のグループ数とを、記憶部１０１を用いて計算し、計算したこれらの情報を、グラフとして、内部メモリに記憶する。
【００８７】
図３に戻り、次に、３Ｄ点群グループ計算部１０５は、ある閾値以下の重みをもつエッジを切断してグラフを分割して、ノードグループを取得する（Ｓ１３５）。
【００８８】
図１２（Ｂ）の例では、閾値を「０」とする。この場合、３Ｄ点群グループ計算部１０５は、「０」以下の重み又はグループ数をもつエッジを切断して、３Ｄ点ｐ１１〜ｐ１４を１つのノードグループ、３Ｄ点ｐ２１〜ｐ２４を１つのノードグループとする２つのグループに分割して、各ノードグループを取得する。例えば、３Ｄ点群グループ計算部１０５は、記憶部１０１から閾値とグラフを読み出し、グループ数が閾値以下となっているエッジを切断して、切断部分を境にして、各ノードグループに属する３Ｄ点を取得すればよい。
【００８９】
図３に戻り、次に、３Ｄ点群グループ計算部１０５は、同一ノードグループに属する３Ｄ点群を、一意の番号を有するグループとして定義する（Ｓ１３６）。例えば、図１２（Ｂ）の例では、３Ｄ点群グループ計算部１０５は、３Ｄ点ｐ１１〜ｐ１４に「ｇ１」を割り当て、３Ｄ点ｐ２１〜ｐ２４に「ｇ２」を割り当てる。
【００９０】
３Ｄ点群グループ計算部１０５は、例えば、割り当てた一意のグループ番号と、３次元座標で表された３Ｄ点とを、３Ｄ点群グループに関する情報として、インスタンス領域（グローバル）計算部１０６へ出力する。このようなグループ化された３Ｄ点群Ｐ’を、例えば、３Ｄ点群グループと称する場合がある。
【００９１】
図３に戻り、そして、３Ｄ点群グループ計算部１０５は、３Ｄ点群のグルーピング処理を終了する（Ｓ１３７）。
【００９２】
このように、３Ｄ点群グループ計算部１０５では、画像データから画像特徴を用いて画像毎に取得した２Ｄ特徴点を、インスタンス領域を用いてグループ化する（Ｓ１３２）。そして、３Ｄ点群グループ計算部１０５は、２Ｄ特徴点と対応した３Ｄ点であって、画像データからＳＬＡＭ等により計算した３Ｄ点を、２Ｄ特徴点をグループ化したときの画像毎のグループ数に基づいて、ノードグループにグループ化している（Ｓ１３３〜Ｓ１３５）。
【００９３】
図１に戻り、次に、データセット作成装置１００は、インスタンス領域（グローバル）を計算する計算処理を行う（Ｓ１４）。
【００９４】
図４は、インスタンス領域（グローバル）計算処理の動作例を表すフローチャートである。図４は、主に、インスタンス領域（グローバル）計算部１０６において各処理が行われる。
【００９５】
インスタンス領域（グローバル）計算部１０６は、本処理を開始すると（Ｓ１４０）、各インスタンス領域（ローカル）Ｒにおける２Ｄ特徴点群Ｆに対応する３Ｄ点群Ｐ’について、Ｐ’に割り当てられているグループの中で支配的な番号をＲに割り当てる（Ｓ１４１）。本処理では、インスタンス領域（ローカル）Ｒ’の各インスタンスに割り当てられたラベルを、画像間で同一の（又は一貫した）ラベルに変更する処理が行われる。
【００９６】
図１３（Ａ）は３Ｄ点群グループ、図１３（Ｂ）はインスタンス領域（ローカル）、図１３（Ｃ）はインスタンス領域（グローバル）の例をそれぞれ表す図である。
【００９７】
図１３（Ｃ）に示すように、インスタンス領域（グローバル）計算部１０６は、各インスタンス領域（ローカル）に割り当てられたラベルｒ１〜ｒ６を、画像間で同一のラベルｒ１，ｒ２へ変更し、ラベルｒ１，ｒ２を、各インスタンス領域に割り当てる。
【００９８】
具体的には、インスタンス領域（グローバル）計算部１０６は、例えば、インスタンス領域（ローカル）に関する情報と、３Ｄ点群グループに関する情報、及び記憶部１０１に記憶された対応関係に関する情報に基づいて、以下の処理を行う。
【００９９】
すなわち、インスタンス領域（グローバル）計算部１０６は、インスタンス領域（ローカル）のインスタンスｒ１に属する３Ｄ点群グループを確認する。例えば、インスタンス領域（グローバル）計算部１０６は、インスタンスｒ１に属する２Ｄ特徴点と対応する３Ｄ点を含む３Ｄ点群グループが３Ｄ点群グループｇ１であることを確認する。また、インスタンス領域（グローバル）計算部１０６は、インスタンスｒ２に属する２Ｄ特徴点と対応する３Ｄ点を含む３Ｄ点群グループが３Ｄ点群グループｇ２であることを確認する。インスタンス領域（グローバル）計算部１０６は、次の画像Ｍ２においても、同様に、インスタンスｒ３に属する２Ｄ特徴点と対応する３Ｄ点を含む３Ｄ点群グループが３Ｄ点群グループｇ１、インスタンスｒ４に属する２Ｄ特徴点と対応する３Ｄ点を含む３Ｄ点群グループが３Ｄ点群グループｇ２であることをそれぞれ確認する。さらに、インスタンス領域（グローバル）計算部１０６は、次の画像Ｍ３においても、インスタンスｒ５が３Ｄ点群グループｇ１と対応し、インスタンスｒ６が３Ｄ点群グループｇ２と対応することをそれぞれ確認する。そして、インスタンス領域（グローバル）計算部１０６は、インスタンスｒ１，ｒ３，ｒ５が同一の３Ｄ点群グループｇ１と対応し、インスタンスｒ２，ｒ４，ｒ６が同一の３Ｄ点群グループｇ２と対応することを確認する。このとき、インスタンス領域（グローバル）計算部１０６は、インスタンスｒ１，ｒ３，ｒ５に同一のラベル「ｒ１」を割り当て、インスタンスｒ２，ｒ４，ｒ６に同一のラベル「ｒ２」を割り当てる。図１３（Ｃ）はそのようにして割り当てた割り当て結果を表す。このようにして割り当てたラベルをもつインスタンスが、例えば、インスタンス領域（グローバル）となる。
【０１００】
インスタンス領域（グローバル）計算部１０６は、例えば、割り当てたラベルとともに、インスタンス領域（グローバル）の各インスタンスに含まれる画素位置の情報を記憶部１０１に記憶する。
【０１０１】
なお、インスタンス領域（グローバル）計算部１０６は、ラベルの割り当てに関して、同一グループ内の２Ｄ特徴点の個数が最大となっているインスタンス領域（ローカル）に割り当てられたラベルを用いてもよい。図１１（Ａ）〜図１１（Ｃ）の例では、インスタンス領域（グローバル）計算部１０６は、同一のグループｒ１，ｒ３，ｒ５の中で、２Ｄ特徴点の個数が最も多いｒ１又はｒ３を、インスタンスｒ１，ｒ３，ｒ５に割り当ててもよい。
【０１０２】
或いは、インスタンス領域（グローバル）計算部１０６は、ラベルの割り当てに関して、エッジの重みの総和が最大である２Ｄ特徴点を有する番号を、割り当てるようにしてもよい。図１２（Ｂ）の例では、インスタンス領域（グローバル）計算部１０６は、同一のグループｒ１，ｒ３，ｒ５の中で、エッジの重みが最大となるｐ１１，ｐ１２と対応する２Ｄ特徴点を有するｒ１，ｒ３，又はｒ５のいずれかを、インスタンスｒ１，ｒ３，ｒ５に割り当ててもよい。
【０１０３】
図４に戻り、インスタンス領域（グローバル）計算部１０６は、Ｓ１４１の処理を終えると、インスタンス領域（グローバル）の計算処理を終了する（Ｓ１４２）。インスタンス領域（グローバル）計算部１０６は、例えば、各インスタンスに含まれる画素位置と、割り当てたラベルの情報とを、インスタンス領域（グローバル）に関する情報として、３Ｄ物体領域計算部１０７へ出力する。
【０１０４】
図１に戻り、次に、データセット作成装置１００は、３Ｄ物体領域の計算処理を行う（Ｓ１５）。
【０１０５】
図５は、３Ｄ物体領域の計算処理の例を表すフローチャートである。図５は、主に、３Ｄ物体領域計算部１０７が行う。
【０１０６】
３Ｄ物体領域計算部１０７は、３Ｄ物体領域の計算処理を開始すると（Ｓ１５０）、画像毎に、個別のインスタンス領域（グローバル）の遮蔽関係を計算する（Ｓ１５１）。
【０１０７】
図１３（Ｄ）は、遮蔽計算により計算されたインスタンス領域の遮蔽関係の例を表す図である。本処理では、３Ｄ物体領域計算部１０７は、インスタンス領域（グローバル）に対して、カメラ位置を原点として、カメラ位置から各インスタンスまでの距離を計算することで、各インスタンスの前後関係を明確にする処理を行う。
【０１０８】
そのため、３Ｄ物体領域計算部１０７は、自己位置推定部１０２からカメラの位置及び姿勢の情報（３次元座標）を取得し、取得した位置及び姿勢の情報と、インスタンス領域（グローバル）に関する情報とを用いて、各インスタンスまでの距離を計算する。その際、例えば、インスタンス領域（グローバル）が２次元座標で表されているため、３Ｄ物体領域計算部１０７は、各インスタンスの中心座標を３次元座標に変換後に、カメラ位置から各インスタンスまでの距離を計算してもよい。或いは、３Ｄ物体領域計算部１０７は、インスタンス領域（グローバル）に対応する３Ｄ点群グループの重心座標とカメラ位置との距離を計算するようにしてもよい。後者の場合、３Ｄ物体領域計算部１０７は、例えば、３Ｄ点群グループ計算部１０５から３Ｄ点群グループの情報を取得して、対応する３Ｄ点群グループの重心座標を計算するようにしてもよい。
【０１０９】
図１３（Ｄ）の例では、前後関係を示すラベルが付加されている。この場合、カメラ位置から各インスタンスの中心座標までの距離が、インスタンス間で同じ場合がある。このような場合は、３Ｄ物体領域計算部１０７は、遮蔽関係を求めないようにしてもよい。
【０１１０】
３Ｄ物体領域計算部１０７は、例えば、インスタンス領域（グローバル）の各インスタンスに含まれる画像位置とラベル、及び遮蔽関係の情報（「前」又は「後」など）を、内部メモリに記憶する。
【０１１１】
図５に戻り、次に、３Ｄ物体領域計算部１０７は、画像毎に、個別のインスタンス領域（グローバル）の尤度マップを計算する（Ｓ１５２）。尤度マップは、例えば、各画像においてインスタンスが存在する確率を２次元座標上で表現したものである。
【０１１２】
図１３（Ｅ）は尤度マップの例を表す図である。図１３（Ｅ）の上の行は、インスタンスｒ１に対応する画像毎の尤度マップ、下の行は、インスタンスｒ２に対応する画像毎の尤度マップの例をそれぞれ表している。尤度マップとは、例えば、各画素が尤度（実数値）を示す画像サイズ（幅×高さ）の２次元行列で表されたマップである。図１３（Ｅ）の例では、各画素について、何かしらのインスタンス（又は物体）が存在する確率が高いときは「赤」に近い数値で表され、存在する確率が低いときは「青」に近い数値で表され、未知である場合は「緑」に近い数値で表される。
【０１１３】
３Ｄ物体領域計算部１０７は、例えば、以下の処理を行う。すなわち、３Ｄ物体領域計算部１０７は、内部メモリから、遮蔽関係を有するインスタンス領域（グローバル）の情報を読み出し、画像毎に各インスタンスに含まれる画素を抽出する。例えば、３Ｄ物体領域計算部１０７は、画像Ｍ１におけるインスタンスｒ１に含まれる画素を抽出し、インスタンスｒ１内の画素は赤、インスタンスｒ１が存在しない領域の画素を青にした画像データ（又は尤度マップ）を生成する。３Ｄ物体領域計算部１０７は、同様にして、画像Ｍ１からＭ３までの各インスタンスｒ１，ｒ２の尤度マップを生成する。この場合、前後関係によっては、他のインスタンスが遮蔽物になる場合がある。例えば、画像Ｍ１においてインスタンスｒ２に対して、インスタンスｒ１は遮蔽物になる。このような場合、３Ｄ物体領域計算部１０７は、遮蔽物内の画素を、「ｕｎｋｎｏｗｎ」を示す緑にした画像データを生成する。
【０１１４】
なお、３Ｄ物体領域計算部１０７は、尤度マップにおける各インスタンスにおいて、その境界部分の画素については、順次、虹色（又は中間の尤度）となるように、尤度マップを補間する。３Ｄ物体領域計算部１０７は、２Ｄ物体の境界を滑らかになるように補間している。
【０１１５】
３Ｄ物体領域計算部１０７は、生成した尤度マップの情報を、例えば、内部メモリに記憶する。
【０１１６】
図５に戻り、次に、３Ｄ物体領域計算部１０７は、視体積交差法により、インスタンス領域（グローバル）ごとの３Ｄ物体領域を計算する（Ｓ１５３）。本処理では、尤度マップから３Ｄ物体領域を検出する処理が行われる。
【０１１７】
上述したように、例えば、「Jean-Sebastien Franco, Edmond Boyer, “Efficient Polyhedral Modeling from Silhouettes”, IEEE Transactions on Pattern Analysis and Machine Intelligence (TPAMI), March 2009」に示される視体積交差法が用いられる。具体的には、３Ｄ物体領域計算部１０７は、例えば、複数の尤度マップにより複数視点からシルエットが示されているため、各画素の画素位置と画素値（又は画像データ）とを用いて、視覚エッジを計算し、多角体の外枠を計算し、エッジを取り出し、頂点を抽出する処理などを行う。これにより、例えば、３Ｄ物体領域計算部１０７は、尤度マップから、１単位がボクセルとなっている３Ｄ物体領域を抽出することができる。
【０１１８】
図１３（Ｆ）は、尤度マップから抽出された各インスタンスの３Ｄ物体領域の例を表す図である。
【０１１９】
なお、３Ｄ物体領域計算部１０７は、抽出した３次元の物体領域に対して、３Ｄ  Ｂｏｕｎｄｉｎｇ  Ｂｏｘ（３次元バウンディングボックス）や楕円体（又は３次元楕円体）を用いて、３Ｄ物体領域をさらに近似表現するようしてもよい。
【０１２０】
図６（Ｂ）は、３Ｄ  Ｂｏｕｎｄｉｎｇ  Ｂｏｘと楕円体の例を表す図である。３Ｄ  Ｂｏｕｎｄｉｎｇ  Ｂｏｘは、例えば、四角柱の外枠部分を３次元座標（世界座標系）で表したものである。また、楕円体も、例えば、その一部又は全部を３次元座標（世界座標系）で表したものである。これらの３次元座標は、例えば、記憶部１０１において、３Ｄ  Ｂｏｕｎｄｉｎｇ  Ｂｏｘ又は楕円体に関する情報として記憶されている。
【０１２１】
例えば、３Ｄ物体領域計算部１０７は、以下の処理を行う。すなわち、３Ｄ物体領域計算部１０７は、記憶部１０１から３Ｄ  Ｂｏｕｎｄｉｎｇ  Ｂｏｘや楕円体に関する情報を読み出す。３Ｄ物体領域計算部１０７は、読み出した情報の中から、視体積交差法により計算した３Ｄ物体領域を含む（又は最大限包含する）３Ｄ  Ｂｏｕｎｄｉｎｇ  Ｂｏｘや楕円体に関する情報を抽出する。これにより、例えば、視体積交差法で計算した３Ｄ物体領域に最も近似した３Ｄ  Ｂｏｕｎｄｉｎｇ  Ｂｏｘや楕円体を、３Ｄ物体領域として取得することが可能である。
【０１２２】
図５に戻り、３Ｄ物体領域計算部１０７は、Ｓ１５３の処理を行うと、３Ｄ物体領域の計算処理を終了する（Ｓ１５４）。３Ｄ物体領域計算部１０７は、計算した３Ｄ物体領域に関する情報（例えば、３Ｄ物体領域に含まれる３次元座標位置など）或いは３Ｄ  Ｂｏｕｎｄｉｎｇ  Ｂｏｘや楕円体に関する情報を、３Ｄ物体領域に関する情報として、アノテーション付加部１０８へ出力する。
【０１２３】
図２に戻り、次に、データセット作成装置１００は、３Ｄ物体領域に対して座標系とラベルとを付加する（Ｓ１６）。例えば、アノテーション付加部１０８は、ユーザにより入力された座標系（３Ｄ領域と３Ｄ物体領域の位置及び姿勢）とラベルとを、アノテーションとして、Ｓ１５で計算した３Ｄ物体領域に関する情報とともに、データセット生成部１０９へ出力する。
【０１２４】
図１４（Ａ）は、アノテーションが付加された３Ｄ物体領域の例を表す図である。図１４（Ａ）の例では、ラベルとして、「ｃｕｐ」が付加され、３Ｄ物体の位置及び姿勢、３Ｄ領域がアノテーションとなっている例を表している。
【０１２５】
図２に戻り、次に、データセット作成装置１００は、アノテーション付き画像群を取得する（Ｓ１７）。
【０１２６】
図１４（Ｂ）はアノテーション付き画像の例を表す図である。例えば、データセット生成部１０９は、３次元座標系で表された３Ｄ物体領域を、公知の方法により、２次元座標系に変換する。図１４（Ｂ）は変換後の画像の例を表している。
【０１２７】
そして、データセット生成部１０９は、変換後の物体領域の情報（２次元座標系）を、記憶部１０１から読み出した入力画像と合成し、データセットとして、記憶部１０１に記憶したり、外部へ出力したりする。データセットは、アノテーションが付加された合成画像となっている。
【０１２８】
図２に戻り、データセット作成装置１００は、Ｓ１７の処理を行うと、一連の処理を終了する（Ｓ１８）。
【０１２９】
以上説明したように、本データセット作成装置１００は、２Ｄ特徴点をインスタンス毎にグループ化した２Ｄ特徴点グループの画像毎のグループ数を利用して、２Ｄ特徴点と対応する３Ｄ点をグループ化している（例えば図１２（Ａ）と図１２（Ｂ））。具体的には、データセット作成装置１００は、グループ数に応じたエッジを有するグラフを作成し、閾値以下となっているエッジを分断させることで、３Ｄ点をグループ化している（例えば図１２（Ｂ））。これにより、例えば、画像特徴が少ない、すなわち、２Ｄ特徴点が少ない画像や、乱雑な環境下における画像の２Ｄ特徴点であっても、データセット作成装置１００では、対応する３Ｄ点をグループ化することが可能である。そして、データセット作成装置１００においては、グループ毎に３Ｄ物体検出された画像を用いてアノテーションの入力が可能となるため、作業者は、３Ｄ物体検出された画像がどのような画像であるかを容易に把握した上で、アノテーションを入力することができる。そして、データセット作成装置１００では、その後、３Ｄ物体検出により検出した３Ｄ物体領域に対して、データセットを作成することが可能となる。
【０１３０】
従って、本データセット作成装置１００は、画像特徴が少ない画像や乱雑な環境の画像であっても、３Ｄ物体検出のためのデータセットを作成することが可能となる。
【０１３１】
また、本データセット作成装置１００では、画像特徴が少ない画像や乱雑な環境下における画像であっても、３Ｄ点をグループ化し、３Ｄ物体領域検出により３Ｄ物体領域を検出している。従って、本データセット作成装置１００は、画像特徴が少ない画像や乱雑な環境下における画像であっても、撮像画像に含まれる対象物体に対応した３Ｄ領域を決定することができ、また、そのような画像からでも３Ｄ物体を取得することが可能である。
【０１３２】
なお、上述した例は、各インスタンス領域Ｒに対して、画像収縮処理を適用して、Ｒ’に縮小した例について説明した。例えば、データセット作成装置１００は、画像収縮処理を適用することなく、各インスタンス領域Ｒそのものを用いて、Ｓ１３２以降の処理を行ってもよい。この場合、データセット作成装置１００は、Ｓ１３２においては、各インスタンス領域Ｒの内部に含まれる２Ｄ特徴点群Ｆを抽出し、Ｓ１３３において、２Ｄ特徴点群Ｆに対応する３Ｄ点群Ｐを抽出すればよい。
【０１３３】
［その他の実施の形態］
図１５は、データセット作成装置１００の他の構成例を表す図である。図１に示すデータセット作成装置１００では、撮像装置２００がデータセット作成装置１００の外部に設けられた例を示した。図１５の例では、撮像部２０１がデータセット作成装置１００内に設けられた例である。図１５に示すように、撮像部２０１付きのデータセット作成装置１００が用いられてもよい。
【０１３４】
図１６は、データセット作成装置１００のハードウェア構成例を表す図である。
【０１３５】
データセット作成装置１００は、さらに、ＣＰＵ（Central Processing Unit）１２０、ＲＯＭ（Read Only Memory）１２１、ＲＡＭ（Random Access Memory）１２２、及びメモリ１２３を備える。
【０１３６】
ＣＰＵ１２０は、ＲＯＭ１２１に記憶されたプログラムを読み出してＲＡＭ１２２にロードし、ロードしたプログラムを実行して、自己位置推定部１０２、３Ｄ点群生成部１０３、インスタンス領域（ローカル）計算部１０４、３Ｄ点群グループ計算部１０５の機能を実現する。また、ＣＰＵ１２０は、ロードしたプログラムを実行することで、インスタンス領域（グローバル）計算部１０６、３Ｄ物体領域計算部１０７、アノテーション付加部１０８、及びデータセット生成部１０９の機能を実現する。ＣＰＵ１２０は、例えば、自己位置推定部１０２、３Ｄ点群生成部１０３、インスタンス領域（ローカル）計算部１０４、３Ｄ点群グループ計算部１０５に対応する。また、ＣＰＵ１２０は、例えば、インスタンス領域（グローバル）計算部１０６、３Ｄ物体領域計算部１０７、アノテーション付加部１０８、及びデータセット生成部１０９に対応する。
【０１３７】
なお、ＣＰＵ１２０に代えて、ＭＰＵ（Micro Processing Unit）やＤＳＰ（Digital Signal Processor）、ＦＰＧＡ（Field Programmable Gate Array）などのプロセッサやコントローラなどが用いられてもよい。また、メモリ１２３は、例えば、記憶部１０１に対応する。
【０１３８】
なお、図１６に示すデータセット作成装置１００に、カメラが付加されてもよい。
【０１３９】
以上まとめると、付記のようになる。
【０１４０】
（付記１）
データセット作成装置におけるデータセット作成方法であって、
入力した複数画像の画像データに基づいて、各画像に含まれる物体の境界領域に関する情報を計算し、
前記画像データから画像特徴を用いて画像毎に取得した２次元特徴点を前記物体の境界領域に関する情報を用いてグループ化し、前記２次元特徴点と対応した３次元点であって、前記画像データから計算した前記３次元点を、前記２次元特徴点をグループ化したときの画像毎のグループ数に基づいて、グループ化し、
各画像に含まれる前記物体の境界領域に関する情報と、グループ化した前記３次元点とに基づいて、入力した複数画像で同一の物体を表す境界領域に関する情報を取得し、
同一の物体を表す前記境界領域に関する情報に基づいて、該境界領域毎に３次元物体領域に関する情報を計算し、
前記３次元物体領域に関する情報にアノテーションを付加してデータセットを作成する
ことを特徴とするデータセット作成方法。
【０１４１】
（付記２）
各画像に含まれる前記物体の境界領域に関する情報に基づいて、前記境界領域を縮小した縮小境界領域に関する情報を計算し、
前記物体の境界領域に関する情報は、前記縮小境界領域に関する情報であることを特徴とする付記１記載のデータセット作成方法。
【０１４２】
（付記３）
前記物体の境界領域に関する情報は、前記物体の境界領域内に含まれる画素位置であり、
前記２次元特徴点として表された画素位置と、前記物体の境界領域内に含まれる画素位置とに基づいて、前記２次元特徴点を、前記物体の境界領域ごとにグループ化することを特徴とする付記１記載のデータセット作成方法。
【０１４３】
（付記４）
前記２次元特徴点は、第１及び第２の２次元特徴点を含み、
前記第１及び第２の２次元特徴点とそれぞれ対応する第１及び第２の３次元点を、前記第１及び第２の２次元特徴点をグループ化したときのグループ数が閾値より多いとき、前記第１及び第２の３次元点を１つのグループにグループ化することを特徴とする付記１記載のデータセット作成方法。
【０１４４】
（付記５）
複数の画像の画像毎に、かつ、前記画像に含まれる前記物体の境界領域毎に、第１のラベルを割り当て、
各画像に含まれる前記物体の境界領域に関する情報と、グループ化した前記３次元点とに基づいて、入力した複数画像で同一の物体に第２のラベルを割り当て、前記第１のラベルを前記第２のラベルに変更して、前記同一の物体を表す境界領域に関する情報を取得することを特徴とする付記１記載のデータセット作成方法。
【０１４５】
（付記６）
前記同一の物体を表す境界領域に関する情報と、前記画像データから取得した前記複数の画像を撮影したカメラの位置及び姿勢に関する情報とに基づいて、画像毎に、前記画像に複数の前記境界領域が含まれる場合に各境界領域の前後関係の情報を計算することを特徴とする付記５記載のデータセット作成方法。
【０１４６】
（付記７）
視体積交差法を用いて、同一の物体を表す前記境界領域に関する情報に基づいて、前記境界領域毎に前記３次元物体領域に関する情報を計算することを特徴とする付記１記載のデータセット作成方法。
【０１４７】
（付記８）
計算した前記３次元物体領域に関する情報に基づいて、前記３次元物体領域を含む３次元バウンディングボックス又は３次元楕円体に関する情報を計算し、前記３次元物体領域を前記３次元バウンディングボックス又は前記３次元楕円体とすることを特徴とする付記１記載のデータセット作成方法。
【０１４８】
（付記９）
前記画像特徴は、ＳＩＦＴ（Scale Invariant Feature Transform）特徴又はＳＵＲＦ（Speeded Up Robust Features）特徴であることを特徴とする付記１記載のデータセット作成方法。
【０１４９】
（付記１０）
ＳＬＡＭ（Simultaneous Localization and Mapping）又はＭＶＳ（Multi-View Stereo）を用いて、前記画像データから前記３次元点を計算することを特徴とする付記１記載のデータセット作成方法。
【０１５０】
（付記１１）
入力した複数画像の画像データに基づいて、各画像に含まれる物体の境界領域に関する情報を計算する第１のインスタンス領域計算部と、
前記画像データから画像特徴を用いて画像毎に取得した２次元特徴点を前記物体の境界領域に関する情報を用いてグループ化し、前記２次元特徴点と対応した３次元点であって、前記画像データから計算した前記３次元点を、前記２次元特徴点をグループ化したときの画像毎のグループ数に基づいて、グループ化する３点群グループ計算部と、
各画像に含まれる前記物体の境界領域に関する情報と、グループ化した前記３次元点とに基づいて、入力した複数画像で同一の物体を表す境界領域に関する情報を取得する第２のインスタンス領域計算部と、
同一の物体を表す前記境界領域に関する情報に基づいて、該境界領域毎に３次元物体領域に関する情報を計算する３次元物体領域計算部と、
前記３次元物体領域に関する情報にアノテーションを付加してデータセットを作成するデータセット生成部と
を備えることを特徴とするデータセット作成装置。
【０１５１】
（付記１２）
データセット作成装置のコンピュータで実行されるデータセット作成プログラムであって、
入力した複数画像の画像データに基づいて、各画像に含まれる物体の境界領域に関する情報を計算し、
前記画像データから画像特徴を用いて画像毎に取得した２次元特徴点を前記物体の境界領域に関する情報を用いてグループ化し、前記２次元特徴点と対応した３次元点であって、前記画像データから計算した前記３次元点を、前記２次元特徴点をグループ化したときの画像毎のグループ数に基づいて、グループ化し、
各画像に含まれる前記物体の境界領域に関する情報と、グループ化した前記３次元点とに基づいて、入力した複数画像で同一の物体を表す境界領域に関する情報を取得し、
同一の物体を表す前記境界領域に関する情報に基づいて、該境界領域毎に３次元物体領域に関する情報を計算し、
前記３次元物体領域に関する情報にアノテーションを付加してデータセットを作成する
処理を前記コンピュータに実行させることを特徴とするデータセット作成プログラム。
【符号の説明】
【０１５２】
１０：データセット作成システム      １００：データセット作成装置
１０１：記憶部                      １０２：自己位置推定部
１０３：３Ｄ点群生成部              １０４：インスタンス領域（ローカル）計算部
１０５：３Ｄ点群グループ計算部      １０６：インスタンス領域（グローバル）計算部
１０７：３Ｄ物体領域計算部          １０８：アノテーション付加部
１０９：データセット生成部          １２０：ＣＰＵ
２００：撮像装置                    ２０１：撮像部
【図１】
2020135679.tif 000003
【図２】
2020135679.tif 000004
【図３】
2020135679.tif 000005
【図４】
2020135679.tif 000006
【図５】
2020135679.tif 000007
【図６】
2020135679.tif 000008
【図７】
2020135679.tif 000009
【図８】
2020135679.tif 000010
【図９】
2020135679.tif 000011
【図１０】
2020135679.tif 000012
【図１１】
2020135679.tif 000013
【図１２】
2020135679.tif 000014
【図１３】
2020135679.tif 000015
【図１４】
2020135679.tif 000016
【図１５】
2020135679.tif 000017
【図１６】
2020135679.tif 000018