(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024114087
(43)【公開日】2024-08-23
(54)【発明の名称】生成プログラム、生成方法、および情報処理装置
(51)【国際特許分類】
G06V 10/774 20220101AFI20240816BHJP
G06T 7/00 20170101ALI20240816BHJP
G06T 7/11 20170101ALI20240816BHJP
G06T 7/55 20170101ALI20240816BHJP
【FI】
G06V10/774
G06T7/00 350B
G06T7/11
G06T7/55
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2023019502
(22)【出願日】2023-02-10
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】岡田 義紀
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096CA04
5L096EA45
5L096FA02
5L096FA41
5L096GA59
(57)【要約】
【課題】訓練データを効率的に生成すること。
【解決手段】情報処理装置100は、例えば、それぞれ異なる方向から対象物101を撮影した複数の画像110それぞれについて、当該画像110のうち対象物101が映った領域120を取得する。情報処理装置100は、例えば、取得した領域120それぞれについて、当該領域120をテクスチャに適用した、当該領域120に対応する対象物101の一面を表す3次元オブジェクトデータ130を生成する。情報処理装置100は、例えば、生成した3次元オブジェクトデータ130それぞれに基づいて、所定の画像140に対して当該3次元オブジェクトデータ130を合成することにより、モデルを機械学習により訓練する際に用いられる、対象物101が映った領域120を判別可能な訓練データを生成する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
それぞれ異なる方向から対象物を撮影した複数の画像それぞれについて、当該画像のうち前記対象物が映った領域を取得し、
取得した前記領域それぞれについて、当該領域をテクスチャに適用した、当該領域に対応する前記対象物の一面を表す3次元オブジェクトデータを生成し、
生成した前記3次元オブジェクトデータそれぞれに基づいて、所定の画像に対して当該3次元オブジェクトデータを合成することにより、入力された画像に映った前記対象物を認識するモデルを機械学習により訓練する際に用いられる、前記対象物が映った領域を判別可能な訓練データを生成する、
処理をコンピュータに実行させることを特徴とする生成プログラム。
【請求項2】
前記所定の画像は、所定の空間を撮影した画像であって、
前記複数の画像は、前記対象物が配置された前記所定の空間を撮影することにより、それぞれ異なる方向から前記対象物を撮影した2以上の画像である、ことを特徴とする請求項1に記載の生成プログラム。
【請求項3】
前記複数の画像は、前記所定の空間に配置された前記対象物の位置または向きを変更しつつ前記所定の空間を撮影することにより、それぞれ異なる方向から前記対象物を撮影した2以上の画像であって、
前記取得する処理は、
前記複数の画像を取得し、取得した前記複数の画像それぞれについて、当該画像のうち前記対象物が映った領域を抽出することにより、当該領域を取得する、ことを特徴とする請求項2に記載の生成プログラム。
【請求項4】
前記訓練データを生成する処理は、
複数の条件それぞれについて、生成した前記3次元オブジェクトデータに基づいて、当該条件を満たすよう前記所定の画像に対して当該3次元オブジェクトデータを合成することにより、前記対象物が映った領域を判別可能な前記訓練データを生成する、ことを特徴とする請求項3に記載の生成プログラム。
【請求項5】
前記モデルを機械学習により訓練する際に用いられる訓練データを生成する機能を有するツールを利用して、生成した前記3次元オブジェクトデータそれぞれに基づいて、所定の画像に対して当該3次元オブジェクトデータを合成することにより、前記モデルを機械学習により訓練する際に用いられる、前記対象物が映った領域を判別可能な訓練データを生成する、ことを特徴とする請求項1~4のいずれか一つに記載の生成プログラム。
【請求項6】
それぞれ異なる方向から対象物を撮影した複数の画像それぞれについて、当該画像のうち前記対象物が映った領域を取得し、
取得した前記領域それぞれについて、当該領域をテクスチャに適用した、当該領域に対応する前記対象物の一面を表す3次元オブジェクトデータを生成し、
生成した前記3次元オブジェクトデータそれぞれに基づいて、所定の画像に対して当該3次元オブジェクトデータを合成することにより、入力された画像に映った前記対象物を認識するモデルを機械学習により訓練する際に用いられる、前記対象物が映った領域を判別可能な訓練データを生成する、
処理をコンピュータが実行することを特徴とする生成方法。
【請求項7】
それぞれ異なる方向から対象物を撮影した複数の画像それぞれについて、当該画像のうち前記対象物が映った領域を取得し、
取得した前記領域それぞれについて、当該領域をテクスチャに適用した、当該領域に対応する前記対象物の一面を表す3次元オブジェクトデータを生成し、
生成した前記3次元オブジェクトデータそれぞれに基づいて、所定の画像に対して当該3次元オブジェクトデータを合成することにより、入力された画像に映った前記対象物を認識するモデルを機械学習により訓練する際に用いられる、前記対象物が映った領域を判別可能な訓練データを生成する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、生成プログラム、生成方法、および情報処理装置に関する。
【背景技術】
【0002】
従来、画像と、当該画像に映った物体を認識した結果の正解とを対応付けた訓練データに基づいて、入力された画像に映った物体を認識した結果を出力するモデルを機械学習により訓練する技術がある。モデルは、例えば、ディープニューラルネットワークである。モデルは、例えば、畳み込みニューラルネットワークである。
【0003】
先行技術としては、例えば、物体の3次元モデルに、撮影画像のうち物体が映る画像領域をテクスチャマッピングしたテクスチャ付3次元モデルをレンダリングすることにより、2次元画像を示す2次元画像情報を取得するものがある。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、入力された画像に映った物体を精度よく認識可能なモデルを機械学習により訓練するために、多様な訓練データを用意することが難しい。例えば、用意する訓練データの数を増やすほど、訓練データを形成する画像を撮影する作業者にかかる作業負担および作業時間の増大化を招く。例えば、用意する訓練データの数を増やすほど、訓練データを形成する画像と、当該画像に映った物体を認識した結果の正解とを対応付けるアノテーション作業を実施する作業者にかかる作業負担および作業時間の増大化を招く。
【0006】
1つの側面では、本発明は、訓練データを効率的に生成することを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様によれば、それぞれ異なる方向から対象物を撮影した複数の画像それぞれについて、当該画像のうち前記対象物が映った領域を取得し、取得した前記領域それぞれについて、当該領域をテクスチャに適用した、当該領域に対応する前記対象物の一面を表す3次元オブジェクトデータを生成し、生成した前記3次元オブジェクトデータそれぞれに基づいて、所定の画像に対して当該3次元オブジェクトデータを合成することにより、入力された画像に映った前記対象物を認識するモデルを機械学習により訓練する際に用いられる、前記対象物が映った領域を判別可能な訓練データを生成する生成プログラム、生成方法、および情報処理装置が提案される。
【発明の効果】
【0008】
一態様によれば、訓練データを効率的に生成することが可能になる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態にかかる生成方法の一実施例を示す説明図である。
【
図2】
図2は、物体認識支援システム200の一例を示す説明図である。
【
図3】
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。
【
図4】
図4は、管理者側装置201のハードウェア構成例を示すブロック図である。
【
図5】
図5は、情報処理装置100の機能的構成例を示すブロック図である。
【
図6】
図6は、3次元オブジェクトデータを生成する一例を示す説明図(その1)である。
【
図7】
図7は、3次元オブジェクトデータを生成する一例を示す説明図(その2)である。
【
図8】
図8は、3次元オブジェクトデータを生成する一例を示す説明図(その3)である。
【
図9】
図9は、訓練データを生成する一例を示す説明図(その1)である。
【
図10】
図10は、訓練データを生成する一例を示す説明図(その2)である。
【
図11】
図11は、訓練データを生成する一例を示す説明図(その3)である。
【
図12】
図12は、モデルを機械学習により訓練する一例を示す説明図である。
【
図13】
図13は、アノテーション領域に基づく効果の一例を示す説明図(その1)である。
【
図14】
図14は、アノテーション領域に基づく効果の一例を示す説明図(その2)である。
【
図15】
図15は、作業時間の一例を示す説明図(その1)である。
【
図16】
図16は、作業時間の一例を示す説明図(その2)である。
【
図17】
図17は、物体を認識する精度の一例を示す説明図である。
【
図18】
図18は、全体処理手順の一例を示すフローチャートである。
【
図19】
図19は、生成処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、本発明にかかる生成プログラム、生成方法、および情報処理装置100の実施の形態を詳細に説明する。
【0011】
(実施の形態にかかる生成方法の一実施例)
図1は、実施の形態にかかる生成方法の一実施例を示す説明図である。情報処理装置100は、モデルを機械学習により訓練する際に用いられる訓練データを生成するためのコンピュータである。情報処理装置100は、例えば、サーバ、または、PC(Personal Computer)などである。
【0012】
モデルは、例えば、画像の入力を受け付ける。モデルは、例えば、入力された画像に映った物体を認識した結果を出力する機能を有する。モデルは、例えば、ディープニューラルネットワークである。モデルは、畳み込みニューラルネットワークである。訓練データは、例えば、画像と、当該画像に映った物体を認識した結果の正解とを対応付けたデータである。訓練データは、具体的には、画像と、当該画像のうち物体が映った領域と、当該物体を認識した結果の正解とを対応付けたデータである。モデルは、例えば、複数の訓練データに基づいて機械学習により訓練される。
【0013】
ここで、入力された画像に映った物体を精度よく認識可能なモデルを機械学習により訓練するために、多様な訓練データを用意することが望まれる。例えば、用意する訓練データの数を増やすことが望まれる。例えば、同一の物体がそれぞれ異なる映り方をした複数の画像それぞれを含む訓練データを用意することが望まれる。例えば、異なる物体が映った複数の画像それぞれを含む訓練データを用意することが望まれる。例えば、用意した訓練データの数が多いほど、用意した当該訓練データに基づいて機械学習により訓練するモデルが、入力された画像に映った物体を認識する精度が高くなり易いと考えられる。
【0014】
しかしながら、従来では、多様な訓練データを用意することが難しい。
【0015】
例えば、作業者が、物体が映った画像を撮影し、撮影した当該画像のうち当該物体が映った領域に対して、当該物体を認識した結果の正解を対応付けるアノテーション作業を実施することにより、訓練データを作成する場合が考えられる。この場合、例えば、用意する訓練データの数を増やそうとするほど、作業者が撮影する画像の枚数が多くなるため、作業者にかかる作業負担および作業時間の増大化を招く。この場合、例えば、用意する訓練データの数を増やそうとするほど、作業者がアノテーション作業を実施する回数が多くなるため、作業者にかかる作業負担および作業時間の増大化を招く。
【0016】
これに対し、例えば、作業者が、物体の実物を表す3次元モデルを作成し、作成した3次元モデルを配置した画像を作成することにより、訓練データを作成する手法1が考えられる。この手法1は、例えば、作成した画像と、当該画像のうち物体が映った領域と、当該物体を認識した結果の正解とを対応付けた訓練データを作成する。
【0017】
この手法1でも、多様な訓練データを用意することが難しい場合がある。例えば、作業者が、3次元モデリングソフトウェアを用いて、物体の実物を表す3次元モデルを作成することになるため、作業者にかかる作業負担および作業時間の増大化を招く。例えば、作業者が、3次元モデリングソフトウェアの扱い方に詳しくなければ、物体の実物を表す3次元モデルを作成することが難しく、訓練データを作成することが難しい。
【0018】
また、この手法1では、有用な訓練データを用意することが難しい場合がある。有用な訓練データは、例えば、物体の実物を撮影した実際の画像と類似すると考えられる、3次元モデルを配置した架空の画像を含む訓練データである。例えば、作業者が、物体の実物を精度よく表す3次元モデルを作成しなければ、物体の実物を撮影した実際の画像と類似すると考えられる、3次元モデルを配置した架空の画像を作成することが難しく、有用な訓練データを作成することが難しい。
【0019】
従って、この手法1では、入力された画像に映った物体を精度よく認識可能なモデルを機械学習により訓練するために、多様かつ有用な訓練データを用意することが難しい。この手法1では、用意した訓練データに基づいて、機械学習により訓練するモデルが入力された画像に映った物体を認識する精度の向上を図ることが難しい。
【0020】
一方で、作業者が、3次元スキャナを用いて、物体の実物をスキャンすることにより、物体の実物を表す3次元モデルを作成し、作成した3次元モデルを配置した画像を作成することにより、訓練データを作成する手法2が考えられる。この手法2は、例えば、作成した画像と、当該画像のうち物体が映った領域と、当該物体を認識した結果の正解とを対応付けた訓練データを作成する。
【0021】
この手法2でも、多様な訓練データを用意することが難しい場合がある。例えば、3次元スキャナは、表面に光沢を有する物体、または、透明な部分を有する物体などを精度よく表す3次元モデルを作成することができない傾向がある。例えば、作業者は、3次元スキャナ、および、3次元スキャナを用いたスキャン結果に基づいて物体の実物を表す3次元モデルを作成するソフトウェアなどを用意することになる。このため、物体の実物を表す3次元モデルを作成する作業コストの増大化を招くという問題がある。
【0022】
また、作業者が、物体の実物を撮影した画像のうち、当該物体の実物が映った領域を切り抜き、切り抜いた当該領域を合成した複数の画像それぞれを含む訓練データを作成する手法3が考えられる。この手法3は、例えば、切り抜いた領域を合成した複数の画像それぞれについて、当該画像と、当該領域と、当該領域に映った物体を認識した結果の正解とを対応付けて、訓練データを作成することになる。
【0023】
この手法3では、有用な訓練データを用意することが難しい場合がある。有用な訓練データは、例えば、モデルが認識する対象の物体が映っており、対象の物体とは異なる他の物体が映っていない画像を含む訓練データである。例えば、切り抜いた領域に、モデルが認識する対象の物体とは異なる他の物体が映っていると、切り抜いた当該領域を合成した複数の画像それぞれも、当該他の物体が映っている画像になるため、有用な訓練データを作成することができない。また、例えば、作業者が、切り抜いた領域に、モデルが認識する対象の物体とは異なる他の物体が映らないよう、当該物体の実物を撮影した画像のうち、当該物体の実物のみが映った領域を切り抜く場合、作業者にかかる作業負担および作業時間の増大化を招く。
【0024】
そこで、本実施の形態では、訓練データを効率的に生成することができる生成方法について説明する。
【0025】
図1において、情報処理装置100は、モデルを機械学習により訓練する際に用いられる訓練データを生成する。モデルは、画像110の入力を受け付ける。モデルは、入力された画像110に映った物体を認識する機能を有する。モデルは、入力された画像110に映った物体を認識した結果を出力する。訓練データは、モデルに入力され得るサンプル画像と、当該サンプル画像のうち物体が映った領域120と、当該物体を認識した結果の正解とを対応付けたデータである。訓練データは、物体が映った領域120を判別可能に示す。
【0026】
(1-1)情報処理装置100は、例えば、それぞれ異なる方向から対象物101を撮影した複数の画像110それぞれについて、当該画像110のうち対象物101が映った領域120を取得する。対象物101は、機械学習により訓練するモデルが認識する対象となり得る物体である。複数の画像110は、例えば、対象物101の状態を変更しつつ対象物101を複数回撮影することにより得られる。状態は、例えば、位置、または、向きなどである。
【0027】
情報処理装置100は、具体的には、それぞれ異なる方向から対象物101を撮影した複数の画像110を取得する。情報処理装置100は、具体的には、取得した複数の画像110それぞれについて、当該画像110のうち対象物101が映った領域120を抽出することにより、当該領域120を取得する。
【0028】
(1-2)情報処理装置100は、例えば、取得した領域120それぞれについて、当該領域120をテクスチャに適用した、当該領域120に対応する対象物101の一面を表す3次元オブジェクトデータ130を生成する。情報処理装置100は、具体的には、取得した領域120それぞれについて、当該領域120に対応する対象物101の一面を表すテクスチャとして当該領域120を貼り付けた、厚みを有さない3次元オブジェクトデータ130を生成する。
【0029】
(1-3)情報処理装置100は、例えば、生成した3次元オブジェクトデータ130それぞれに基づいて、所定の画像140に対して当該3次元オブジェクトデータ130を合成することにより、訓練データを生成する。訓練データは、対象物101が映った領域120を判別可能である。訓練データは、モデルを機械学習により訓練する際に用いられる。所定の画像140は、モデルに入力され得るサンプル画像の雛型である。所定の画像140は、例えば、予め利用者によって設定される。
【0030】
情報処理装置100は、具体的には、3次元オブジェクトデータ130それぞれについて、対象物101が映った領域120を適用したテクスチャが所定の画像140上に残るよう、所定の画像140に対して当該3次元オブジェクトデータ130を合成する。これにより、情報処理装置100は、所定の画像140に対して当該3次元オブジェクトデータ130を合成した、新たな1以上の合成画像150を生成する。新たな合成画像150は、モデルに入力され得るサンプル画像に対応する。情報処理装置100は、より具体的には、3次元オブジェクトデータ130それぞれについて、所定の画像140に対して当該3次元オブジェクトデータ130をそれぞれ異なる位置に合成した、新たな複数の合成画像150を生成してもよい。
【0031】
情報処理装置100は、具体的には、生成した合成画像150それぞれについて、当該合成画像150のうち3次元オブジェクトデータ130を合成した領域120を、当該合成画像150のうち対象物101が映った領域120として設定する。情報処理装置100は、具体的には、生成した合成画像150それぞれについて、当該合成画像150と、設定した当該合成画像150のうち対象物101が映った領域120と、当該対象物101を認識した結果の正解とを対応付けた訓練データを生成する。
【0032】
これにより、情報処理装置100は、多様な訓練データを用意し易くすることができる。情報処理装置100は、訓練データを用意しようとする際に作業者にかかる作業負担および作業時間の低減化を図ることができる。
【0033】
情報処理装置100は、例えば、撮影した画像110の1枚あたり、当該画像110に基づいて生成した3次元オブジェクトデータ130を合成した、複数の新たな合成画像150を生成することができ、複数の訓練データを生成することができる。情報処理装置100は、例えば、用意しようとする訓練データの数が増加しても、撮影する画像110の枚数が増加し難くすることができ、作業者にかかる作業負担および作業時間の増大化を抑制することができる。
【0034】
情報処理装置100は、具体的には、作業者が、用意しようとする訓練データの数分の画像110を撮影せずに済ませることができる。情報処理装置100は、具体的には、作業者が、用意しようとする訓練データの数よりも少ない数分の画像110を撮影すれば済むようにすることができる。情報処理装置100は、例えば、用意しようとする訓練データの数を増やし易くすることができる。
【0035】
情報処理装置100は、例えば、生成した合成画像150のうち3次元オブジェクトデータ130を合成した領域120を、当該合成画像150のうち対象物101が映った領域120として設定することができる。このため、情報処理装置100は、作業者が、アノテーション作業を実施せずに済むようにすることができる。情報処理装置100は、設定した合成画像150のうち対象物101が映った領域120に、対象物101とは異なる他の物体が含まれ難くすることができ、有用な訓練データを生成し易くすることができる。情報処理装置100は、作業者が、合成画像150のうち対象物101が映った領域120を指定せずに済むようにすることができ、作業者にかかる作業負担および作業時間の増大化を抑制することができる。
【0036】
情報処理装置100は、例えば、対象物101を実際に撮影した画像110に基づいて、3次元オブジェクトデータ130を生成することができる。情報処理装置100は、具体的には、作業者が、3次元モデリングソフトウェアの扱い方に詳しくなくても、3次元オブジェクトデータ130を生成することができ、作業者にかかる作業負担および作業時間の低減化を図ることができる。
【0037】
情報処理装置100は、例えば、対象物101が映った領域120をテクスチャに適用することができる。情報処理装置100は、対象物101が映るよう実際に撮影した、モデルに入力され得るサンプル画像と類似すると考えられる、3次元オブジェクトデータ130を合成した架空の合成画像150を生成することができる。情報処理装置100は、有用な訓練データを生成し易くすることができる。
【0038】
情報処理装置100は、例えば、3次元スキャナがなくても、訓練データを生成することができ、訓練データを生成する際にかかる作業コストの低減化を図ることができる。情報処理装置100は、例えば、対象物101が、表面に光沢を有する物体、または、透明な部分を有する物体などであっても、訓練データを生成することができる。
【0039】
このように、情報処理装置100は、入力された画像110に映った物体を精度よく認識可能なモデルを機械学習により訓練するために、多様かつ有用な訓練データを用意し易くすることができる。情報処理装置100は、入力された画像110に映った物体を精度よく認識可能なモデルを機械学習により訓練し易くすることができる。
【0040】
ここでは、情報処理装置100が、複数の画像110それぞれについて、当該画像110のうち対象物101が映った領域120を抽出することにより、当該領域120を取得する場合について説明したが、これに限らない。例えば、情報処理装置100が、複数の画像110それぞれについて、当該画像110のうち対象物101が映った領域120を、他のコンピュータから受信することにより取得する場合があってもよい。
【0041】
ここでは、情報処理装置100が、単独で動作する場合について説明したが、これに限らない。例えば、情報処理装置100が、他のコンピュータと協働する場合があってもよい。例えば、複数のコンピュータが協働して、情報処理装置100としての機能を実現する場合があってもよい。具体的には、クラウド上に、情報処理装置100としての機能が実現される場合があってもよい。
【0042】
(物体認識支援システム200の一例)
次に、
図2を用いて、
図1に示した情報処理装置100を適用した、物体認識支援システム200の一例について説明する。
【0043】
図2は、物体認識支援システム200の一例を示す説明図である。
図2において、物体認識支援システム200は、情報処理装置100と、管理者側装置201と、利用者側装置202とを含む。
【0044】
物体認識支援システム200において、情報処理装置100と管理者側装置201とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。また、物体認識支援システム200において、情報処理装置100と利用者側装置202とは、有線または無線のネットワーク210を介して接続される。
【0045】
図2の例では、情報処理装置100は、物体認識支援サービスを提供するためのコンピュータである。物体認識支援サービスは、入力された画像に映った物体を精度よく認識可能なモデルを、利用者側装置202において利用可能にするサービスである。
【0046】
情報処理装置100は、例えば、モデルに入力され得るサンプル画像の雛型となる所定の画像を、管理者側装置201から受信する。所定の画像は、例えば、対象物が映っていない画像である。所定の画像は、具体的には、対象物が映っていない、所定の空間を撮影した画像である。対象物は、機械学習により訓練しようとするモデルが認識する対象となり得る物体である。
【0047】
情報処理装置100は、例えば、1以上の対象物それぞれについて、それぞれ異なる方向から当該対象物を撮影した複数の画像を、管理者側装置201から受信する。情報処理装置100は、例えば、受信した複数の画像それぞれについて、当該画像のうち対象物が映った領域を抽出することにより、当該領域を取得する。
【0048】
情報処理装置100は、例えば、取得した領域それぞれについて、当該領域をテクスチャに適用した、当該領域に対応する対象物の一面を表す3次元オブジェクトデータを生成する。情報処理装置100は、具体的には、取得した領域それぞれについて、当該領域に対応する対象物の一面を表すテクスチャとして当該領域を貼り付けた、厚みを有さない3次元オブジェクトデータを生成する。
【0049】
情報処理装置100は、例えば、3次元オブジェクトデータそれぞれについて、対象物が映った領域を適用したテクスチャが所定の画像上に残るよう、所定の画像に対して当該3次元オブジェクトデータを合成した、新たな1以上の合成画像を生成する。新たな合成画像は、モデルに入力され得るサンプル画像に対応する。
【0050】
情報処理装置100は、例えば、生成した合成画像それぞれについて、当該合成画像のうち3次元オブジェクトデータを合成した領域を、当該合成画像のうち対象物が映った領域として設定する。情報処理装置100は、例えば、生成した合成画像それぞれについて、当該合成画像と、設定した当該合成画像のうち対象物が映った領域と、当該対象物を認識した結果の正解とを対応付けた訓練データを生成する。
【0051】
情報処理装置100は、例えば、生成した訓練データに基づいて、モデルを機械学習により訓練する。情報処理装置100は、例えば、機械学習により訓練したモデルを、利用者側装置202において利用可能にする。情報処理装置100は、具体的には、モデルに入力する画像を、利用者側装置202から受信し、当該画像を入力したモデルが出力する、当該画像に映った物体を認識した結果を、利用者側装置202に送信する。これにより、情報処理装置100は、機械学習により訓練したモデルを、利用者側装置202において利用可能にする。情報処理装置100は、例えば、サーバ、または、PCなどである。
【0052】
管理者側装置201は、物体認識支援サービスを運用または管理するサービス管理者によって用いられるコンピュータである。管理者側装置201は、例えば、カメラを有する。管理者側装置201は、例えば、カメラを用いて、対象物が映っていない、所定の空間を撮影した所定の画像を生成し、情報処理装置100に送信する。
【0053】
管理者側装置201は、例えば、管理者の操作入力に基づき、カメラを用いて、1以上の対象物それぞれについて、それぞれ異なる方向から当該対象物を撮影した複数の画像を生成する。管理者は、具体的には、1以上の対象物それぞれについて、所定の空間に配置した対象物の向き、または、位置などの状態を変更しつつ、所定の空間ごと対象物を複数回撮影するよう、管理者側装置201を使用する。管理者側装置201は、例えば、生成した複数の画像を、情報処理装置100に送信する。管理者側装置201は、例えば、PC、タブレット端末、または、スマートフォンなどである。
【0054】
利用者側装置202は、物体認識支援サービスを利用するサービス利用者によって用いられるコンピュータである。利用者側装置202は、サービス利用者の操作入力に基づき、画像の入力を受け付ける。利用者側装置202は、入力を受け付けた画像を、情報処理装置100に送信する。利用者側装置202は、送信した画像に映った物体を認識した結果を、情報処理装置100から受信する。利用者側装置202は、画像に映った物体を認識した結果を、サービス利用者が参照可能に出力する。利用者側装置202は、例えば、PC、タブレット端末、または、スマートフォンなどである。
【0055】
ここでは、情報処理装置100が、訓練データに基づいて、モデルを機械学習により訓練する場合について説明したが、これに限らない。例えば、情報処理装置100が、訓練データを、モデルを機械学習により訓練する機能を有する他のコンピュータに送信する場合があってもよい。この場合、情報処理装置100は、モデルを、他のコンピュータから受信することが考えられる。情報処理装置100が、モデルを、他のコンピュータから受信せず、他のコンピュータが、モデルを、利用者側装置202において利用可能にする場合があってもよい。
【0056】
ここでは、情報処理装置100が、モデルに入力する画像を、利用者側装置202から受信し、当該画像を入力したモデルが出力する、当該画像に映った物体を認識した結果を、利用者側装置202に送信する場合について説明したが、これに限らない。例えば、情報処理装置100が、機械学習により訓練したモデルを、利用者側装置202に送信することにより、機械学習により訓練したモデルを、利用者側装置202において利用可能にする場合があってもよい。
【0057】
ここでは、情報処理装置100が、管理者側装置201とは異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、管理者側装置201としての機能を有し、管理者側装置201としても動作する場合があってもよい。この場合、物体認識支援システム200は、管理者側装置201を含まなくてもよい。
【0058】
ここでは、情報処理装置100が、利用者側装置202とは異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、利用者側装置202としての機能を有し、利用者側装置202としても動作する場合があってもよい。この場合、物体認識支援システム200は、利用者側装置202を含まなくてもよい。
【0059】
(物体認識支援システム200の適用例)
物体認識支援システム200は、例えば、スーパーマーケットなどの販売店において、顧客が購入する商品を投入する顧客用の籠に装着されたカメラを用いて顧客用の籠の中を撮影した画像に映った商品を認識し、販売店の業務を支援する分野に適用され得る。
【0060】
この際、例えば、利用者側装置202は、販売店に備えられた顧客用の籠に装着された顧客用のカメラを用いて顧客用の籠の中を撮影した画像を取得するコンピュータであることが考えられる。利用者側装置202は、例えば、顧客用の籠に装着された顧客用のカメラと一体である端末装置であることが考えられる。
【0061】
一方で、例えば、管理者側装置201は、販売店に備えられた顧客用の籠に装着された顧客用のカメラを用いて顧客用の籠の中を撮影した画像を取得するコンピュータであることが考えられる。管理者側装置201は、例えば、顧客用の籠に装着された顧客用のカメラと一体である端末装置であることが考えられる。
【0062】
管理者側装置201は、例えば、販売店内の所定の強さの照明光の元で、顧客用の籠に装着された顧客用のカメラを用いて、顧客用の籠の中に対して所定の画角で、商品が存在しない顧客用の籠の中を撮影した画像を、雛型となる所定の画像として生成する。管理者側装置201は、例えば、販売店内の所定の強さの照明光の元で、顧客用の籠に装着された顧客用のカメラを用いて、顧客用の籠の中に対して所定の画角で、商品が投入された顧客用の籠の中を撮影した画像を、商品が映った画像として生成する。管理者側装置201は、例えば、生成した商品が映った画像と、生成した雛型となる所定の画像とを、情報処理装置100に送信する。
【0063】
情報処理装置100は、例えば、商品が映った画像に基づいて、商品の一面を表す3次元オブジェクトデータを生成し、所定の画像に合成することにより、モデルに入力され得る合成画像を生成し、生成した合成画像を含む訓練データを生成する。情報処理装置100は、例えば、生成した訓練データに基づいて、入力された画像に映った商品を認識するモデルを機械学習により訓練する。
【0064】
利用者側装置202は、例えば、販売店内の所定の強さの照明光の元で、顧客用の籠に装着された顧客用のカメラを用いて、顧客用の籠の中に対して所定の画角で、商品が投入された顧客用の籠の中を撮影した画像を生成し、情報処理装置100に送信する。
【0065】
情報処理装置100は、例えば、商品が投入された顧客用の籠の中を撮影した画像を受信する。情報処理装置100は、例えば、商品が投入された顧客用の籠の中を撮影した画像を、機械学習により訓練したモデルに入力することにより、当該画像に映った商品を認識した結果を、利用者側装置202に送信する。
【0066】
利用者側装置202は、商品が投入された顧客用の籠の中を撮影した画像に映った商品を認識した結果を、情報処理装置100から受信する。利用者側装置202は、受信した結果に基づいて、顧客用の籠に投入された商品のリストを生成する。これにより、利用者側装置202は、販売店の店員が、顧客用の籠に投入された商品を確認しなくても、合計の購入代金などを管理可能にすることができる。従って、物体認識支援システム200は、販売店の店員にかかる作業負担の低減化を図り、販売店の業務を支援することができる。
【0067】
(情報処理装置100のハードウェア構成例)
次に、
図3を用いて、情報処理装置100のハードウェア構成例について説明する。
【0068】
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。
図3において、情報処理装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
【0069】
ここで、CPU301は、情報処理装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることにより、コーディングされている処理をCPU301に実行させる。
【0070】
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLANアダプタなどである。
【0071】
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、情報処理装置100から着脱可能であってもよい。
【0072】
情報処理装置100は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
【0073】
(管理者側装置201のハードウェア構成例)
次に、
図4を用いて、管理者側装置201のハードウェア構成例について説明する。
【0074】
図4は、管理者側装置201のハードウェア構成例を示すブロック図である。
図4において、管理者側装置201は、CPU401と、メモリ402と、ネットワークI/F403と、記録媒体I/F404と、記録媒体405と、入出力装置406と、撮影装置407とを有する。また、各構成部は、バス400によってそれぞれ接続される。
【0075】
ここで、CPU401は、管理者側装置201の全体の制御を司る。メモリ402は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU401のワークエリアとして使用される。メモリ402に記憶されるプログラムは、CPU401にロードされることにより、コーディングされている処理をCPU401に実行させる。
【0076】
ネットワークI/F403は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F403は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F403は、例えば、モデムやLANアダプタなどである。
【0077】
記録媒体I/F404は、CPU401の制御に従って記録媒体405に対するデータのリード/ライトを制御する。記録媒体I/F404は、例えば、ディスクドライブ、SSD、USBポートなどである。記録媒体405は、記録媒体I/F404の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体405は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体405は、管理者側装置201から着脱可能であってもよい。
【0078】
入出力装置406は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示するディスプレイを有する。入出力装置406は、例えば、タッチパネルである。入出力装置406は、ディスプレイ上、または、ディスプレイ外周部に設けられ、ディスプレイ上のユーザの接触位置を検出する検出装置を有する。検出装置は、例えば、抵抗膜方式、静電容量方式、超音波方式、光学方式、または、電磁誘導方式などを用いて、接触位置を検出する。入出力装置406は、ユーザの接触位置に応じて、文字、数字、各種指示などの入力を行う。
【0079】
撮影装置407は、複数の撮像素子を有し、複数の撮像素子によって、所定の撮影環境408における所定の撮影範囲409を撮影した画像を生成する。所定の撮影範囲409は、例えば、販売店に備えられた顧客用の籠の中であることが考えられる。撮影装置407は、所定の撮影範囲409に物体が存在すれば、当該物体が映った画像を生成することになる。撮影装置407は、例えば、デジタルカメラである。撮影装置407は、例えば、移動可能であってもよい。
【0080】
管理者側装置201は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、管理者側装置201は、記録媒体I/F404や記録媒体405を複数有していてもよい。また、管理者側装置201は、記録媒体I/F404や記録媒体405を有していなくてもよい。
【0081】
(利用者側装置202のハードウェア構成例)
利用者側装置202のハードウェア構成例は、具体的には、
図4に示した管理者側装置201のハードウェア構成例と同様であるため、説明を省略する。管理者側装置201における撮影環境408は、例えば、利用者側装置202における撮影環境408と同一の種類であることが好ましい。管理者側装置201における撮影範囲409は、例えば、利用者側装置202における撮影範囲409と同一の種類であることが好ましい。
【0082】
(情報処理装置100の機能的構成例)
次に、
図5を用いて、情報処理装置100の機能的構成例について説明する。
【0083】
図5は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部500と、取得部501と、抽出部502と、生成部503と、合成部504と、学習部505と、出力部506とを含む。
【0084】
記憶部500は、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部500が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部500が、情報処理装置100とは異なる装置に含まれ、記憶部500の記憶内容が情報処理装置100から参照可能である場合があってもよい。
【0085】
取得部501~出力部506は、制御部の一例として機能する。取得部501~出力部506は、具体的には、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
【0086】
記憶部500は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部500は、例えば、それぞれ異なる方向から対象物を撮影した複数の画像を記憶する。対象物は、例えば、機械学習により訓練するモデルが認識する対象となる物体である。モデルは、例えば、入力された画像に映った対象物を認識する機能を有する。モデルは、例えば、ディープニューラルネットワークである。モデルは、例えば、畳み込みニューラルネットワークである。
【0087】
複数の画像は、例えば、所定の空間に対象物を配置し、所定の空間を撮影することにより、それぞれ異なる方向から対象物を撮影した2以上の画像を含む。複数の画像は、例えば、所定の空間に配置した対象物の位置または向きを変更しつつ所定の空間を撮影することにより、それぞれ異なる方向から対象物を撮影した2以上の画像を含む。複数の画像は、例えば、複数の対象物それぞれについて、それぞれ異なる方向から対象物を撮影した2以上の画像を含んでいてもよい。複数の画像は、例えば、取得部501によって取得される。
【0088】
記憶部500は、例えば、複数の画像それぞれについて、当該画像のうち対象物が映った領域を記憶する。領域は、例えば、画像のうち、対象物が映った部分を包含する矩形の領域である。領域は、具体的には、画像のうち、対象物が映った部分を包含する矩形の領域に対して、対象物が映った部分以外を無地に置き換える背景除去の処理を実施した後の領域であってもよい。領域は、例えば、取得部501によって取得される。領域は、例えば、抽出部502によって取得されてもよい。
【0089】
記憶部500は、所定の画像を記憶する。所定の画像は、例えば、所定の空間を撮影した画像である。所定の画像は、例えば、取得部501によって取得される。
【0090】
記憶部500は、例えば、訓練データを記憶する。訓練データは、モデルに入力され得るサンプル画像と、当該サンプル画像のうち物体が映った領域と、当該サンプル画像に映った物体を認識した結果の正解とを対応付けたデータである。訓練データは、例えば、合成部504によって生成される。
【0091】
記憶部500は、例えば、モデルを記憶する。記憶部500は、具体的には、モデルを形成するパラメータを記憶する。モデルは、例えば、学習部505によって生成される。
【0092】
取得部501は、各機能部の処理に用いられる各種情報を取得する。取得部501は、取得した各種情報を、記憶部500に記憶し、または、各機能部に出力する。また、取得部501は、記憶部500に記憶しておいた各種情報を、各機能部に出力してもよい。取得部501は、例えば、利用者の操作入力に基づき、各種情報を取得する。取得部501は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
【0093】
取得部501は、例えば、それぞれ異なる方向から対象物を撮影した複数の画像を取得する。取得部501は、具体的には、利用者の操作入力に基づき、複数の画像の入力を受け付けることにより、複数の画像を取得する。取得部501は、具体的には、複数の画像を他のコンピュータから受信することにより、複数の画像を取得してもよい。他のコンピュータは、例えば、作業者側装置である。取得部501は、具体的には、自装置が有するカメラを介して、複数の画像を生成することにより、複数の画像を取得してもよい。
【0094】
取得部501は、例えば、それぞれ異なる方向から対象物を撮影した複数の画像それぞれについて、当該画像のうち対象物が映った領域を取得する。取得部501は、具体的には、利用者の操作入力に基づき、複数の画像それぞれについて、当該画像のうち対象物が映った領域の入力を受け付けることにより、当該領域を取得する。取得部501は、具体的には、複数の画像それぞれについて、当該画像のうち対象物が映った領域を他のコンピュータから受信することにより、当該領域を取得してもよい。他のコンピュータは、例えば、作業者側装置である。
【0095】
取得部501は、例えば、所定の画像を取得する。取得部501は、具体的には、利用者の操作入力に基づき、所定の画像の入力を受け付けることにより、所定の画像を取得する。取得部501は、具体的には、所定の画像を他のコンピュータから受信することにより、所定の画像を取得してもよい。他のコンピュータは、例えば、作業者側装置である。
【0096】
取得部501は、いずれかの機能部の処理を開始する開始トリガーを受け付けてもよい。開始トリガーは、例えば、利用者による所定の操作入力があったことである。開始トリガーは、例えば、他のコンピュータから、所定の情報を受信したことであってもよい。開始トリガーは、例えば、いずれかの機能部が所定の情報を出力したことであってもよい。
【0097】
取得部501は、例えば、複数の画像を取得したことを、抽出部502の処理を開始する開始トリガーとして受け付けてもよい。取得部501は、複数の画像それぞれについて、当該画像のうち対象物が映った領域を取得したことを、生成部503と、合成部504と、学習部505との処理を開始する開始トリガーとして受け付けてもよい。
【0098】
抽出部502は、取得部501で取得した複数の画像それぞれについて、当該画像のうち対象物が映った領域を取得する。抽出部502は、複数の画像それぞれについて、当該画像のうち対象物が映った領域を抽出することにより、当該領域を取得する。これにより、抽出部502は、対象物の一面を表す3次元オブジェクトデータを生成可能にすることができる。
【0099】
生成部503は、取得部501または抽出部502で取得した領域それぞれについて、当該領域をテクスチャに適用した、当該領域に対応する対象物の一面を表す3次元オブジェクトデータを生成する。生成部503は、例えば、取得部501または抽出部502で取得した領域それぞれについて、当該領域に対応する対象物の一面を表すテクスチャとして当該領域を貼り付けた、厚みを有さない3次元オブジェクトデータを生成する。これにより、生成部503は、訓練データを形成する、対象物が映った画像を生成する部品となる3次元オブジェクトデータを取得することができ、訓練データを生成可能にすることができる。
【0100】
合成部504は、生成部503で生成した3次元オブジェクトデータそれぞれに基づいて、取得部501で取得した所定の画像に対して当該3次元オブジェクトデータを合成することにより、対象物が映った領域を判別可能な訓練データを生成する。
【0101】
合成部504は、例えば、3次元オブジェクトデータそれぞれについて、対象物が映った領域を適用したテクスチャが所定の画像上に残るよう、所定の画像に対して当該3次元オブジェクトデータを合成した、新たな1以上の合成画像を生成する。合成画像は、モデルに入力され得るサンプル画像に対応する。
【0102】
合成部504は、具体的には、3次元オブジェクトデータそれぞれについて、所定の画像に対して当該3次元オブジェクトデータをそれぞれ異なる位置に合成した、新たな複数の合成画像を生成してもよい。これにより、合成部504は、訓練データを形成する部品を取得することができる。
【0103】
合成部504は、例えば、複数の条件それぞれについて、3次元オブジェクトデータに基づいて、当該条件を満たすよう所定の画像に対して当該3次元オブジェクトデータを合成した、新たな1以上の合成画像を生成してもよい。条件は、例えば、3次元オブジェクトデータを合成する範囲を示す。条件は、例えば、撮影環境を示す。撮影環境は、例えば、照明光の向き、または、照明光の強さなどを含む。条件は、例えば、予め利用者によって設定される。これにより、合成部504は、多様な訓練データを生成可能に、多様な合成画像を生成することができる。
【0104】
合成部504は、例えば、所定のツールを利用して、生成した3次元オブジェクトデータそれぞれに基づいて、所定の画像に対して当該3次元オブジェクトデータを合成した、新たな1以上の合成画像を生成してもよい。所定のツールは、モデルを機械学習により訓練する際に用いられる訓練データを生成する機能を有する。これにより、合成部504は、合成画像を生成し易くすることができる。
【0105】
合成部504は、例えば、生成した合成画像それぞれについて、当該合成画像のうち3次元オブジェクトデータを合成した領域を、当該合成画像のうち対象物が映った領域として設定する。合成部504は、例えば、生成した合成画像それぞれについて、当該合成画像と、設定した当該合成画像のうち対象物が映った領域と、当該対象物を認識した結果の正解とを対応付けた訓練データを生成する。これにより、合成部504は、モデルを機械学習により訓練可能にすることができる。合成部504は、多様な訓練データを生成することができ、入力された画像に映った物体を精度よく認識可能なモデルを機械学習により訓練し易くすることができる。
【0106】
学習部505は、生成した訓練データに基づいて、モデルを機械学習により訓練する。これにより、学習部505は、モデルを利用可能にすることができる。学習部505は、多様な訓練データに基づいて、入力された画像に映った物体を精度よく認識可能なモデルを機械学習により訓練することができる。
【0107】
出力部506は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部506は、少なくともいずれかの機能部の処理結果を利用者に通知可能にし、情報処理装置100の利便性の向上を図ることができる。
【0108】
出力部506は、例えば、合成部504で生成した訓練データを出力する。出力部506は、具体的には、訓練データを、利用者が参照可能に表示する。出力部506は、具体的には、訓練データを、他のコンピュータに送信する。他のコンピュータは、例えば、管理者側装置201、または、利用者側装置202である。これにより、出力部506は、モデルを外部で機械学習により訓練可能にすることができる。
【0109】
出力部506は、例えば、学習部505で機械学習により訓練したモデルを出力する。出力部506は、具体的には、モデルを、利用者が参照可能に表示する。出力部506は、具体的には、モデルを、他のコンピュータに送信する。他のコンピュータは、例えば、管理者側装置201、または、利用者側装置202である。これにより、出力部506は、モデルを外部で利用可能にすることができる。
【0110】
ここでは、情報処理装置100が、取得部501と、抽出部502と、生成部503と、合成部504と、学習部505と、出力部506とを含む場合について説明したが、これに限らない。例えば、情報処理装置100が、いずれかの機能部を含まない場合があってもよい。具体的には、情報処理装置100が、学習部505を含まない場合があってもよい。
【0111】
(情報処理装置100の動作例)
次に、
図6~
図16を用いて、情報処理装置100の動作例について説明する。この動作例は、具体的には、第1のカメラを用いて買い物籠の中を撮影した入力画像に映った、当該買い物籠の中に存在する商品を認識するモデルを、情報処理装置100が機械学習により訓練する場合に対応する動作例である。第1のカメラは、例えば、買い物籠に備えられたカメラである。
【0112】
例えば、まず、
図6~
図8を用いて、情報処理装置100が、対象物の一面を表す3次元オブジェクトデータ801を生成する一例について説明する。対象物は、例えば、商品となり得る物体である。対象物は、具体的には、バナナ、ピーマン、キャベツ、キュウリ、ナス、オレンジ、例えば、ジャガイモなどである。
【0113】
図6~
図8は、3次元オブジェクトデータを生成する一例を示す説明図である。
図6において、情報処理装置100は、現場画像600を取得する。現場画像600は、例えば、買い物籠の中に対象物を配置した上で第2のカメラを用いて買い物籠の中を撮影した画像である。現場画像600は、例えば、対象物が映った画像となる。現場画像600は、例えば、対象物に加えて、人物の部位などが映った画像であってもよい。部位は、例えば、手である。
【0114】
第2のカメラは、例えば、第1のカメラと同一の種類であることが好ましい。現場画像600を撮影した撮影環境は、例えば、機械学習により訓練するモデルに入力される入力画像を撮影する撮影環境と同一の性質を有することが好ましい。撮影環境は、例えば、照明光の向き、または、照明光の強さなどによって規定される。
【0115】
情報処理装置100は、画像処理ソフトウェア610を用いて、現場画像600に映った1以上の物体を認識する。1以上の物体は、例えば、対象物と、人物の部位とを含む。情報処理装置100は、例えば、現場画像600に映った、バナナと、人物の左手と、人物の右手とを認識する。
【0116】
情報処理装置100は、画像処理ソフトウェア610を用いて、認識した物体それぞれについて、現場画像600から、認識した当該物体以外を除去した背景削除画像を生成する。情報処理装置100は、例えば、認識した物体それぞれについて、現場画像600のうち、認識した当該物体以外を透明化することにより、現場画像600から、認識した当該物体以外を除去した背景削除画像を生成する。
【0117】
情報処理装置100は、具体的には、現場画像600から、バナナ以外を除去した、背景削除画像621を生成する。情報処理装置100は、具体的には、現場画像600から、人物の左手以外を除去した、背景削除画像622を生成する。情報処理装置100は、具体的には、現場画像600から、人物の右手以外を除去した、背景削除画像623を生成する。次に、
図7の説明に移行する。
【0118】
図7において、情報処理装置100は、画像編集ソフトウェア700を用いて、生成した背景削除画像それぞれについて、物体が映った矩形領域以外の余分領域を削除し、RGB(0,0,0)をRGB(3,3,3)に変換し、補正後画像を生成する。画像編集ソフトウェア700は、例えば、GIMP(GNU Image Manipulation Program)などである。情報処理装置100は、3次元オブジェクトデータを生成する都合上、RGB(0,0,0)の部分が、物体を形成しない部分であると誤って判断することを防止するため、RGB(0,0,0)をRGB(3,3,3)に変換する。
【0119】
情報処理装置100は、例えば、背景削除画像621に基づいて、補正後画像701を生成する。情報処理装置100は、例えば、背景削除画像622に基づいて、補正後画像702を生成する。情報処理装置100は、例えば、背景削除画像623に基づいて、補正後画像703を生成する。次に、
図8の説明に移行する。
【0120】
図8において、情報処理装置100は、対象物が映った補正後画像それぞれについて、3次元モデリングソフトウェア800を用いて、当該補正後画像に映った当該対象物の一面を表す、厚みを有さない3次元オブジェクトデータを生成する。3次元モデリングソフトウェア800は、例えば、3D Builderである。
【0121】
情報処理装置100は、例えば、対象物が映った補正後画像それぞれについて、当該補正後画像に映った当該対象物の一面を表す、当該補正後画像をテクスチャに適用した、厚みを有さない3次元オブジェクトデータを生成する。この際、情報処理装置100は、例えば、補正後画像のうち、透明化された部分を除いた、対象物の輪郭に合った部分を、3次元オブジェクトデータのテクスチャに適用することが考えられる。
【0122】
情報処理装置100は、具体的には、バナナが映った補正後画像701に基づいて、補正後画像701に映ったバナナを一方向から観察した場合におけるバナナの一面を表す、補正後画像701をテクスチャに適用した、3次元オブジェクトデータ801を生成する。
【0123】
情報処理装置100は、具体的には、
図6~
図8と同様に、バナナのそれぞれ異なる一面を表す、厚みを有さない複数の3次元オブジェクトデータを生成してもよい。情報処理装置100は、具体的には、
図6~
図8と同様に、バナナ以外の対象物のそれぞれ異なる一面を表す、厚みを有さない複数の3次元オブジェクトデータを生成してもよい。
【0124】
次に、
図9~
図11を用いて、情報処理装置100が、訓練データを生成する一例について説明する。
【0125】
図9~
図11は、訓練データを生成する一例を示す説明図である。
図9において、情報処理装置100は、ナスの一面を示す、厚みを有さない複数の3次元オブジェクトデータ900を生成済みであるとする。情報処理装置100は、例えば、3次元オブジェクトデータ901~915を生成済みであるとする。
【0126】
情報処理装置100は、機械学習により訓練するモデルに入力される入力画像のサンプルとなる合成画像の雛型となる雛型画像920を有する。雛型画像920は、例えば、買い物籠の中に物体を配置せずに第2のカメラを用いて買い物籠の中を撮影した画像である。雛型画像920を撮影した撮影環境は、例えば、機械学習により訓練するモデルに入力される入力画像を撮影する撮影環境と同一の性質を有することが好ましい。撮影環境は、例えば、照明光の向き、または、照明光の強さなどによって規定される。次に、
図10の説明に移行する。
【0127】
図10において、情報処理装置100は、雛型画像920に対して、少なくともいずれかの3次元オブジェクトデータ900を合成することにより、機械学習により訓練するモデルに入力される入力画像のサンプルとなる1以上の合成画像1000を生成する。情報処理装置100は、例えば、画像合成ソフトウェアを用いて、雛型画像920に対して、少なくともいずれかの3次元オブジェクトデータ900を合成する。画像合成ソフトウェアは、例えば、Unity Perceptionである。
【0128】
情報処理装置100は、具体的には、Unity Perceptionのシナリオに、3次元オブジェクトデータ900を設定する。シナリオは、3次元オブジェクトデータ900を用いて、合成画像1000をどのように生成するのかを規定する。
【0129】
シナリオは、合成画像1000を何枚生成するかを示すパラメータを含む。シナリオは、3次元オブジェクトデータ900の配置条件を示すパラメータを含む。配置条件は、例えば、3次元オブジェクトデータ900を配置する範囲、または、異なる3次元オブジェクトデータ900間の最小間隔などである。
【0130】
情報処理装置100は、具体的には、Unity Perceptionのシナリオを実行することにより、1以上の合成画像1000を生成する。
図10の例では、情報処理装置100は、具体的には、Unity Perceptionのシナリオを実行することにより、合成画像1001~1020を生成する。次に、
図11の説明に移行する。
【0131】
図11において、情報処理装置100は、合成画像1000それぞれについて、当該合成画像1000のうち、3次元オブジェクトデータ900を合成した領域を、対象物となるナスが映ったアノテーション領域1100として設定する。情報処理装置100は、例えば、合成画像1001~1020それぞれについて、アノテーション領域1101~1120を設定する。
【0132】
情報処理装置100は、合成画像1000と、当該合成画像1000に対応するアノテーション領域1100と、当該アノテーション領域1100に映った対象物を認識した結果の正解「ナス」とを対応付けた訓練データを生成する。情報処理装置100は、同様に、ナス以外の対象物に関する訓練データを生成してもよい。
【0133】
これにより、情報処理装置100は、モデルを機械学習により訓練する際に用いられる訓練データを生成することができ、多様な訓練データを用意し易くすることができる。従って、情報処理装置100は、訓練データを用意しようとする際に作業者にかかる作業負担および作業時間の低減化を図ることができる。
【0134】
次に、
図12を用いて、情報処理装置100が、モデルを機械学習により訓練する一例について説明する。
【0135】
図12は、モデルを機械学習により訓練する一例を示す説明図である。
図12において、情報処理装置100は、生成した訓練データに基づいて、モデルを機械学習により訓練する。情報処理装置100は、例えば、生成した訓練データに基づいて、畳み込みニューラルネットワーク1200を機械学習により訓練する。畳み込みニューラルネットワーク1200は、8層である。これにより、情報処理装置100は、訓練データに基づいて、入力された入力画像に映った物体を精度よく認識可能なモデルを機械学習により訓練することができる。
【0136】
情報処理装置100は、例えば、入力画像を撮影するカメラと同一の種類のカメラで、入力画像を撮影する撮影環境と同一の性質を有する撮影環境で、対象物を撮影した現場画像600を、3次元オブジェクトデータ801のテクスチャに適用することができる。従って、情報処理装置100は、例えば、入力画像における対象物の写り方を、合成画像1000における対象物の写り方において再現することができる。
【0137】
また、情報処理装置100は、例えば、合成画像1000のうち、3次元オブジェクトデータ900を合成した領域を、対象物が映ったアノテーション領域1100として設定することができる。従って、情報処理装置100は、例えば、アノテーション領域1100を、対象物の輪郭に合わせることができる。情報処理装置100は、例えば、アノテーション領域1100に、対象物とは異なる他の物体が含まれ難くすることができる。
【0138】
このように、情報処理装置100は、例えば、現場画像600をテクスチャに適用した3次元オブジェクトデータ801を合成した、対象物の輪郭に合わせたアノテーション領域1100を有する合成画像1000を生成することができる。従って、情報処理装置100は、例えば、実際にモデルに入力される入力画像のサンプルとして適切な合成画像1000を生成することができ、合成画像1000に基づく有用な訓練データを生成することができる。また、情報処理装置100は、例えば、作業者が、アノテーション作業を実施せずに済むようにすることができる。
【0139】
そして、情報処理装置100は、例えば、有用な訓練データに基づいて、畳み込みニューラルネットワークなどのモデルを機械学習により訓練することができる。情報処理装置100は、具体的には、畳み込みニューラルネットワークを機械学習により訓練する際、畳み込みニューラルネットワークの第3層において、入力画像における対象物の写り方を再現した、合成画像1000における対象物の写り方を機械学習により訓練することができる。情報処理装置100は、より具体的には、畳み込みニューラルネットワークの第3層において、実世界における対象物の外観的特徴を抽出して機械学習により訓練することができる。このため、情報処理装置100は、例えば、機械学習により訓練するモデルにおける、入力された入力画像に映った物体を認識する精度の向上を図ることができる。
【0140】
ここで、3次元スキャナを用いて、物体の実物をスキャンすることにより作成した、物体の実物を表す3次元オブジェクトデータを合成した合成画像に基づいて、モデルを機械学習により訓練する手法が考えられる。この手法では、入力画像を撮影するカメラとは異なる種類のカメラで、入力画像を撮影する撮影環境とは異なる性質を有する撮影環境で、3次元オブジェクトデータを作成する。このため、この手法では、入力された入力画像に映った物体を精度よく認識するモデルを機械学習により訓練することが難しいと考えられる。
【0141】
これに対し、情報処理装置100は、上述したように、入力された入力画像に映った物体を精度よく認識するモデルを機械学習により訓練し易くすることができる。情報処理装置100は、例えば、3次元スキャナがなくても、訓練データを生成することができ、訓練データを生成する際にかかる作業コストの低減化を図ることができる。情報処理装置100は、例えば、対象物101が、表面に光沢を有する物体、または、透明な部分を有する物体などであっても、訓練データを生成することができる。
【0142】
情報処理装置100は、例えば、撮影した現場画像600の1枚あたり、当該現場画像600に基づいて生成した3次元オブジェクトデータ801を合成した、複数の合成画像1000を生成することができる。従って、情報処理装置100は、例えば、用意しようとする訓練データの数が増加しても、撮影する現場画像600の枚数が増加し難くすることができ、作業者にかかる作業負担および作業時間の低減化を図ることができる。情報処理装置100は、例えば、用意する訓練データの数を増やし易くすることができる。
【0143】
情報処理装置100は、例えば、1つの対象物を異なる方向から撮影した現場画像600に基づいて生成した3次元オブジェクトデータ801に基づいて、当該対象物の異なる方向からの写り方を反映した複数の合成画像1000を生成することができる。従って、情報処理装置100は、例えば、対象物の異なる方向からの写り方を反映した複数の合成画像1000それぞれに基づく有用な訓練データを生成することができる。
【0144】
そして、情報処理装置100は、例えば、有用な訓練データに基づいて、畳み込みニューラルネットワークなどのモデルを機械学習により訓練することができる。情報処理装置100は、具体的には、畳み込みニューラルネットワークを機械学習により訓練する際、畳み込みニューラルネットワークの第1層において、複数の合成画像1000それぞれに反映された、対象物の異なる方向からの写り方を機械学習により訓練することができる。情報処理装置100は、より具体的には、畳み込みニューラルネットワークの第1層において、実世界における対象物の異なる方向からの形状的特徴を機械学習により訓練することができる。このため、情報処理装置100は、例えば、機械学習により訓練するモデルにおける、入力された入力画像に映った物体を認識する精度の向上を図ることができる。
【0145】
次に、例えば、
図13~
図17を用いて、情報処理装置100による効果の一例について説明する。まず、具体的には、
図13および
図14を用いて、現場画像600をテクスチャに適用して得られたアノテーション領域に基づく効果の一例について説明する。
【0146】
図13および
図14は、アノテーション領域に基づく効果の一例を示す説明図である。
図13において、補正後画像701をそのまま雛型画像920に合成した合成画像1301と、3次元オブジェクトデータ801を雛型画像920に合成した合成画像1311とを比較する。この場合、合成画像1301と、合成画像1311とは、見かけ上同一になることがある。一方で、合成画像1301におけるアノテーション領域と、合成画像1311におけるアノテーション領域とは、異なる傾向がある。
【0147】
具体的には、
図13の合成画像1301では、補正後画像701を合成した矩形領域が、アノテーション領域として設定される傾向がある。従って、合成画像1301におけるアノテーション領域は、対象物が映った部分の他、対象物以外が映った部分を包含してしまう傾向がある。
【0148】
一方で、具体的には、
図13の合成画像1311では、3次元オブジェクトデータ801を合成した、対象物の輪郭に沿った領域が、アノテーション領域として設定される傾向がある。従って、合成画像1311におけるアノテーション領域は、対象物以外が映った部分を包含し難くなる。次に、
図14の説明に移行する。
【0149】
図14において、従来のモデルと、情報処理装置100が機械学習により訓練するモデルとを比較する。従来のモデルは、例えば、補正後画像701をそのまま雛型画像920に合成した合成画像1301などに基づいて機械学習により訓練されたモデルである。情報処理装置100が機械学習により訓練するモデルは、例えば、3次元オブジェクトデータ801を雛型画像920に合成した合成画像1311などに基づいて機械学習により訓練されたモデルである。
【0150】
従来のモデルでは、ヒートマップ1400に示すように、入力画像1401のうち、対象物が映った部分以外も、対象物が映った部分として検出してしまう。従って、従来のモデルでは、対象物が映った部分以外に基づいて、対象物を認識することになるため、対象物を誤って認識してしまうことがある。従来のモデルでは、例えば、入力画像1401に映ったバナナを、誤ってナスと認識してしまうことがある。
【0151】
これに対し、情報処理装置100が機械学習により訓練するモデルでは、ヒートマップ1410に示すように、入力画像1411のうち、対象物が映った部分以外を、対象物が映った部分として検出し難くなる。従って、情報処理装置100が機械学習により訓練するモデルでは、対象物が映った部分以外を、対象物を認識する際に参照しない傾向があり、対象物を正しく認識し易くなる。情報処理装置100が機械学習により訓練したモデルでは、例えば、入力画像1411に映ったバナナを、正しくバナナと認識し易くなる。
【0152】
このように、情報処理装置100は、アノテーション領域を、対象物の輪郭に合わせることができ、アノテーション領域に、対象物とは異なる他の物体が含まれ難くすることができる。このため、情報処理装置100は、機械学習により訓練したモデルにおける、入力された入力画像に映った物体を認識する精度の向上を図ることができる。
【0153】
次に、具体的には、
図15および
図16を用いて、作業時間の一例について説明する。
【0154】
図15および
図16は、作業時間の一例を示す説明図である。
図15の表1500は、作業者が、対象物が映った複数の画像を撮影し、撮影した当該複数の画像それぞれについて、アノテーション作業を実施することにより、訓練データを用意する従来の手法にかかる作業時間を示す。
【0155】
従来の手法では、例えば、作業者は、10クラスの対象物のいずれか1つの対象物をそれぞれ映した画像10,000枚を撮影することにより、10,000個の訓練データを用意するとする。この際、具体的には、作業者は、対象物の配置を変えつつ、当該対象物に対する撮影角度を変えつつ、照明光の向き、または、照明光の強さなどの撮影環境を変えつつ、当該対象物を撮影する。
【0156】
ここで、作業者が、画像を1枚撮影する際にかかる所要時間は、5秒であるとする。作業者が、撮影した画像1枚に対してアノテーション作業を実施する際にかかる所要時間は、3分であるとする。
【0157】
表1500に示すように、従来の手法では、作業者が、画像10,000枚を撮影する際にかかる所要時間は、50,000秒≒13.9時間になる。表1500に示すように、従来の手法では、作業者が、画像10,000枚それぞれに対してアノテーション作業を実施する際にかかる所要時間は、500時間≒20.8日になる。従って、従来の手法では、作業者が、訓練データを用意する際にかかる作業時間は、21.4日になる。次に、
図16の説明に移行する。
【0158】
図16の表1600は、情報処理装置100が、10,000個の訓練データを用意する場合にかかる作業時間を示す。ここでは、例えば、作業者は、10クラスの対象物それぞれについて、当該対象物を映した画像20枚を撮影することにより、画像200枚を撮影するとする。この際、具体的には、作業者は、対象物の配置を変えつつ、当該対象物に対する撮影角度を変えつつ、照明光の向き、または、照明光の強さなどの撮影環境を変えつつ、当該対象物を撮影する。
【0159】
ここで、作業者が、画像を1枚撮影する際にかかる所要時間は、5秒であるとする。情報処理装置100が、1枚の画像から1個の3次元オブジェクトデータを生成する際にかかる所要時間は、5分であるとする。情報処理装置100が、画像合成ソフトウェアに対して、3次元オブジェクトデータを取り込む際にかかる所要時間は、1分であるとする。
【0160】
表1600に示すように、作業者が、画像200枚を撮影する際にかかる所要時間は、1,000秒≒16.7分になる。表1600に示すように、情報処理装置100が、3次元オブジェクトデータを生成する際にかかる所要時間は、1,000分≒16.7時間になる。表1600に示すように、Unity Perceptionのシナリオに、3次元オブジェクトデータを取り込む際にかかる所要時間は、200分≒3.3時間である。シナリオは、10,000個の合成画像を生成することを規定する。表1600に示すように、シナリオを実行することにより、それぞれ合成画像を含む10,000個の訓練データを生成する際にかかる所要時間は、10分である。
【0161】
従って、情報処理装置100が、訓練データを用意する際にかかる作業時間は、20.4時間になる。このように、情報処理装置100は、従来の手法に比べて、10,000個の訓練データを高速に用意することができ、作業者にかかる作業負担および作業時間の低減化を図ることができる。情報処理装置100は、具体的には、従来の手法に比べて、訓練データを用意する際にかかる作業時間を、493.5時間≒20.5日短縮することができる。
【0162】
次に、
図17を用いて、情報処理装置100が、入力された入力画像に映った物体を認識する精度の一例について説明する。
【0163】
図17は、物体を認識する精度の一例を示す説明図である。
図17の表1700は、従来のモデルに、7クラスの商品それぞれについて、当該商品が映った複数の評価画像を、入力画像として入力した場合における、当該商品に対する認識率を示す。
【0164】
例えば、表1700に示すように、従来のモデルでは、ピーマンが映った10枚の評価画像に対する、ピーマンを正しく認識した5枚の評価画像の割合=50%が、ピーマンに対する認識率である。また、例えば、表1700に示すように、従来のモデルでは、7クラスの商品の全体に対する認識率は、82%である。
【0165】
一方で、
図17の表1710は、情報処理装置100が機械学習により訓練したモデルに、7クラスの商品それぞれについて、当該商品が映った複数の評価画像を、入力画像として入力した場合における、当該商品に対する認識率を示す。
【0166】
例えば、表1710に示すように、情報処理装置100が機械学習により訓練したモデルでは、ピーマンが映った10枚の評価画像に対する、ピーマンを正しく認識した10枚の評価画像の割合=100%が、ピーマンに対する認識率である。また、例えば、表1710に示すように、情報処理装置100が機械学習により訓練したモデルでは、7クラスの商品の全体に対する認識率は、97%である。このように、情報処理装置100は、入力された入力画像に映った物体を精度よく認識可能なモデルを機械学習により訓練することができる。
【0167】
(全体処理手順)
次に、
図18を用いて、情報処理装置100が実行する、全体処理手順の一例について説明する。全体処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0168】
図18は、全体処理手順の一例を示すフローチャートである。
図18において、情報処理装置100は、複数の現場画像それぞれに対して
図19に後述する生成処理を実行することにより、対象物の一面を表す3次元オブジェクトを生成する(ステップS1801)。
【0169】
次に、情報処理装置100は、3次元オブジェクトを、3次元オブジェクトの元になった現場画像と共に、Unity Perceptionにインポートする(ステップS1802)。そして、情報処理装置100は、Unity Perceptionを用いて、3次元オブジェクトのマテリアルを生成する(ステップS1803)。
【0170】
次に、情報処理装置100は、3次元オブジェクトを、Unity Perceptionのシナリオに登録する(ステップS1804)。そして、情報処理装置100は、Unity Perceptionのシナリオを実行することにより、複数の合成画像を生成する(ステップS1805)。
【0171】
(生成処理手順)
次に、
図19を用いて、情報処理装置100が実行する、生成処理手順の一例について説明する。生成処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
【0172】
図19は、生成処理手順の一例を示すフローチャートである。
図19において、情報処理装置100は、対象物が映った現場画像を取得する(ステップS1901)。次に、情報処理装置100は、現場画像のうち対象物以外が映った部分を透明化する背景削除処理を実施する(ステップS1902)。
【0173】
そして、情報処理装置100は、背景削除処理を実施した後の現場画像のうち対象物が映った矩形領域以外の余分領域を削除する余分領域削除処理を実施する(ステップS1903)。そして、情報処理装置100は、余分領域削除処理を実施した後の現場画像に基づいて、オブジェクト化を実施することにより、対象物の一面を表す3次元オブジェクトを生成する(ステップS1904)。その後、情報処理装置100は、生成処理を終了する。
【0174】
以上説明したように、情報処理装置100によれば、それぞれ異なる方向から対象物を撮影した複数の画像それぞれについて、当該画像のうち対象物が映った領域を取得することができる。情報処理装置100によれば、取得した領域それぞれについて、当該領域をテクスチャに適用した、当該領域に対応する対象物の一面を表す3次元オブジェクトデータを生成することができる。情報処理装置100によれば、生成した3次元オブジェクトデータそれぞれに基づいて、所定の画像に対して当該3次元オブジェクトデータを合成することにより、対象物が映った領域を判別可能な訓練データを生成することができる。これにより、情報処理装置100は、多様な訓練データを生成することができる。
【0175】
情報処理装置100によれば、所定の画像に、所定の空間を撮影した画像を採用することができる。情報処理装置100によれば、複数の画像に、対象物が配置された所定の空間を撮影することにより、それぞれ異なる方向から対象物を撮影した2以上の画像を採用することができる。これにより、情報処理装置100は、所定の空間を撮影した画像に映った物体を精度よく認識可能なモデルを機械学習により訓練する際に有用な訓練データを生成することができる。
【0176】
情報処理装置100によれば、複数の画像に、所定の空間に配置された対象物の位置または向きを変更しつつ所定の空間を撮影することにより、それぞれ異なる方向から対象物を撮影した2以上の画像を採用することができる。情報処理装置100によれば、複数の画像それぞれについて、当該画像のうち対象物が映った領域を抽出することにより、当該領域を取得することができる。これにより、情報処理装置100は、自装置で、複数の画像それぞれについて、当該画像のうち対象物が映った領域を取得することができる。情報処理装置100は、単独で動作し易くすることができる。
【0177】
情報処理装置100によれば、複数の条件それぞれについて、生成した3次元オブジェクトデータに基づいて、当該条件を満たすよう所定の画像に対して当該3次元オブジェクトデータを合成することにより、訓練データを生成することができる。これにより、情報処理装置100は、多様な訓練データを生成し易くすることができる。
【0178】
情報処理装置100によれば、モデルを機械学習により訓練する際に用いられる訓練データを生成する機能を有するツールを利用して、生成した3次元オブジェクトデータそれぞれに基づいて、所定の画像に対して当該3次元オブジェクトデータを合成することができる。これにより、情報処理装置100は、所定の画像に対して3次元オブジェクトデータを容易に合成することができる。
【0179】
情報処理装置100によれば、生成した訓練データに基づいて、モデルを機械学習により訓練することができる。これにより、情報処理装置100は、入力された画像に映った物体を精度よく認識可能なモデルを機械学習により訓練し、利用可能にすることができる。
【0180】
なお、本実施の形態で説明した生成方法は、予め用意されたプログラムをPCやワークステーションなどのコンピュータで実行することにより実現することができる。本実施の形態で説明した生成プログラムは、コンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。記録媒体は、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto Optical disc)、DVD(Digital Versatile Disc)などである。また、本実施の形態で説明した生成プログラムは、インターネットなどのネットワークを介して配布してもよい。
【0181】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0182】
(付記1)それぞれ異なる方向から対象物を撮影した複数の画像それぞれについて、当該画像のうち前記対象物が映った領域を取得し、
取得した前記領域それぞれについて、当該領域をテクスチャに適用した、当該領域に対応する前記対象物の一面を表す3次元オブジェクトデータを生成し、
生成した前記3次元オブジェクトデータそれぞれに基づいて、所定の画像に対して当該3次元オブジェクトデータを合成することにより、入力された画像に映った前記対象物を認識するモデルを機械学習により訓練する際に用いられる、前記対象物が映った領域を判別可能な訓練データを生成する、
処理をコンピュータに実行させることを特徴とする生成プログラム。
【0183】
(付記2)前記所定の画像は、所定の空間を撮影した画像であって、
前記複数の画像は、前記対象物が配置された前記所定の空間を撮影することにより、それぞれ異なる方向から前記対象物を撮影した2以上の画像である、ことを特徴とする付記1に記載の生成プログラム。
【0184】
(付記3)前記複数の画像は、前記所定の空間に配置された前記対象物の位置または向きを変更しつつ前記所定の空間を撮影することにより、それぞれ異なる方向から前記対象物を撮影した2以上の画像であって、
前記取得する処理は、
前記複数の画像を取得し、取得した前記複数の画像それぞれについて、当該画像のうち前記対象物が映った領域を抽出することにより、当該領域を取得する、ことを特徴とする付記2に記載の生成プログラム。
【0185】
(付記4)前記訓練データを生成する処理は、
複数の条件それぞれについて、生成した前記3次元オブジェクトデータに基づいて、当該条件を満たすよう前記所定の画像に対して当該3次元オブジェクトデータを合成することにより、前記対象物が映った領域を判別可能な前記訓練データを生成する、ことを特徴とする付記3に記載の生成プログラム。
【0186】
(付記5)前記モデルを機械学習により訓練する際に用いられる訓練データを生成する機能を有するツールを利用して、生成した前記3次元オブジェクトデータそれぞれに基づいて、所定の画像に対して当該3次元オブジェクトデータを合成することにより、前記モデルを機械学習により訓練する際に用いられる、前記対象物が映った領域を判別可能な訓練データを生成する、ことを特徴とする付記1~4のいずれか一つに記載の生成プログラム。
【0187】
(付記6)生成した前記訓練データに基づいて、前記モデルを機械学習により訓練する、
処理を前記コンピュータに実行させることを特徴とする付記1~4のいずれか一つに記載の生成プログラム。
【0188】
(付記7)それぞれ異なる方向から対象物を撮影した複数の画像それぞれについて、当該画像のうち前記対象物が映った領域を取得し、
取得した前記領域それぞれについて、当該領域をテクスチャに適用した、当該領域に対応する前記対象物の一面を表す3次元オブジェクトデータを生成し、
生成した前記3次元オブジェクトデータそれぞれに基づいて、所定の画像に対して当該3次元オブジェクトデータを合成することにより、入力された画像に映った前記対象物を認識するモデルを機械学習により訓練する際に用いられる、前記対象物が映った領域を判別可能な訓練データを生成する、
処理をコンピュータが実行することを特徴とする生成方法。
【0189】
(付記8)それぞれ異なる方向から対象物を撮影した複数の画像それぞれについて、当該画像のうち前記対象物が映った領域を取得し、
取得した前記領域それぞれについて、当該領域をテクスチャに適用した、当該領域に対応する前記対象物の一面を表す3次元オブジェクトデータを生成し、
生成した前記3次元オブジェクトデータそれぞれに基づいて、所定の画像に対して当該3次元オブジェクトデータを合成することにより、入力された画像に映った前記対象物を認識するモデルを機械学習により訓練する際に用いられる、前記対象物が映った領域を判別可能な訓練データを生成する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【0190】
100 情報処理装置
101 対象物
110 画像
120 領域
130,801,900~915 3次元オブジェクトデータ
140 所定の画像
150,1000~1020,1301,1311 合成画像
200 物体認識支援システム
201 管理者側装置
202 利用者側装置
210 ネットワーク
300,400 バス
301,401 CPU
302,402 メモリ
303,403 ネットワークI/F
304,404 記録媒体I/F
305,405 記録媒体
406 入出力装置
407 撮影装置
408 撮影環境
409 撮影範囲
500 記憶部
501 取得部
502 抽出部
503 生成部
504 合成部
505 学習部
506 出力部
600 現場画像
610 画像処理ソフトウェア
621~623 背景削除画像
700 画像編集ソフトウェア
701~703 補正後画像
800 3次元モデリングソフトウェア
920 雛型画像
1100~1120 アノテーション領域
1200 ニューラルネットワーク
1400,1410 ヒートマップ
1401,1411 入力画像
1500,1600,1700,1710 表