以下、情報処理装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、オブジェクトの三次元データを用いて取得した1以上のオブジェクト静止画と1以上の各背景画とを組み合わせて、2以上のオブジェクト含静止画を生成する生成機能を有する情報処理装置について説明する。
また、本実施の形態において、生成した2以上のオブジェクト含静止画を学習し、学習器を生成する学習機能を有する情報処理装置について説明する。
また、本実施の形態において、学習器を用いて、画像の中のオブジェクトを認識する認識機能を有する情報処理装置について説明する。
図1は、本実施の形態における情報処理装置Aのブロック図である。情報処理装置Aは、格納部1A、受付部2A、処理部3A、および出力部4Aを備える。
格納部1Aは、三次元データ格納部11、背景画格納部12、オブジェクト含静止画格納部13、および学習器格納部14を備える。受付部2Aは、指示受付部21、および静止画受付部22を備える。処理部3Aは、オブジェクト静止画取得部31、画像合成部32、学習部33、および認識部34を備える。オブジェクト静止画取得部31は、取得手段311、および変更手段312を備える。出力部4Aは、静止画蓄積部41、学習器蓄積部42、および認識結果出力部43を備える。
格納部1Aには、各種の情報が格納される。各種の情報とは、例えば、後述する三次元データ、後述する背景画、後述するオブジェクト含静止画、後述するオブジェクト含静止画、後述する学習器、後述する視点候補情報、後述する属性値集合である。
三次元データ格納部11には、1または2以上のオブジェクトの三次元データが格納される。三次元データは、例えば、三次元のCGデータ、三次元のボクセルデータである。ただし、三次元データのデータ構造は問わない。
オブジェクトは、対象である。オブジェクトは、通常、有体物である。オブジェクトは、例えば、認識の対象である。オブジェクトは、例えば、自動車、電車、カバン、山、ビル、橋、家等である。ただし、オブジェクトは問わないことは言うまでもない。
背景画格納部12には、1以上の背景画が格納される。背景画は、背景の静止画である。背景画は、オブジェクトの背景となり得る画像である。
背景画格納部12には、外部環境が異なる2以上の背景画が格納されることは好適である。
背景画格納部12には、同一のオブジェクトを含み、外部環境が異なる2以上の背景画が格納されることは好適である。なお、背景画は、オブジェクトを含んでなくても良い。また、外部環境は、外部の環境である。外部環境は、例えば、自然環境、またはカメラに関する情報である。自然環境は、例えば、天気、時刻、季節、太陽(光源)の色等である。カメラに関する情報は、例えば、カメラレンズに雨滴が付着しているか否かに関する情報、カメラレンズの解像度に関する情報、カメラレンズのピントが合っているか否かに関する情報、カメラレンズの画角に関する情報、カメラの焦点距離に関する情報等である。カメラレンズに雨滴が付着しているか否かに関する情報は、例えば、「カメラレンズに雨滴が付着している」または「カメラレンズに雨滴が付着していない」、または「カメラレンズに付着している雨滴の量を特定する情報(例えば、1から5の5段階のレベルのうちのいずれかの数値、「多い」「普通」または「少ない」等)である。カメラレンズの解像度に関する情報は、カメラレンズの解像度そのもの、カメラレンズの解像度のランクを示す情報(例えば、1から5の5段階のレベルのうちのいずれかの数値、「高解像度」または「低解像度」等)である。カメラレンズのピントが合っているか否かに関する情報は、例えば、「カメラレンズのピントが合っている」または「カメラレンズのピントが合っていない」、または「カメラレンズのピントが合っている度合を特定する情報(例えば、1から5の5段階のレベルのうちのいずれかの数値、「合っている」「普通」または「合っていない」等)である。カメラレンズの画角に関する情報は、例えば、画角そのもの、画角のランクを示す情報(例えば、1から5の5段階のレベルのうちのいずれかの数値、「広角」または「狭角」等)である。カメラの焦点距離に関する情報は、例えば、焦点距離そのもの、焦点距離のランクを示す情報(例えば、1から5の5段階のレベルのうちのいずれかの数値、「遠い」または「近い」等)である。
外部環境が異なる2以上の背景画における外部環境は、例えば、天気、時刻、季節、太陽(光源)の色、カメラレンズに雨滴が付着しているか否かに関する情報、カメラレンズの解像度に関する情報、カメラレンズのピントが合っているか否かに関する情報、カメラレンズの画角に関する情報、カメラの焦点距離に関する情報のうちの1以上の情報である。
オブジェクト含静止画格納部13には、2以上のオブジェクト含静止画が格納される。オブジェクト含静止画とは、オブジェクトを含む静止画である。オブジェクト含静止画は、通常、オブジェクトと背景とを含む。オブジェクト含静止画は、例えば、情報処理装置Aが蓄積した画像である。
オブジェクト含静止画格納部13には、情報処理装置Aが蓄積した2以上のオブジェクト含静止画が格納されることは好適である。
学習器格納部14には、学習器が格納される。学習器は、機械学習のアルゴリズムによりオブジェクトを認識する際に使用される情報である。学習器は、例えば、学習部33が、機械学習のアルゴリズムにより取得した情報である。機械学習のアルゴリズムは、例えば、SVM、深層学習、決定木、ランダムフォレスト等であるが、他の機械学習のアルゴリズムでも良い。学習器のデータ構造は問わない。なお、学習器は、分類器等と言っても良い。学習部33の詳細については、後述する。
受付部2Aは、指示や情報を受け付ける。指示や情報とは、例えば、後述する静止画取得指示、後述する学習指示、後述する認識開始指示、認識対象のオブジェクトを含む静止画、認識対象のオブジェクトを含む複数の静止画を有する動画等である。
ここで、受け付けとは、キーボードやマウス、タッチパネルなどの入力デバイスから入力された情報の受け付け、有線もしくは無線の通信回線を介して送信された情報の受信、光ディスクや磁気ディスク、半導体メモリなどの記録媒体から読み出された情報の受け付けなどを含む概念である。
指示や情報等の入力手段は、テンキーやキーボードやマウスやメニュー画面によるもの等、何でも良い。受付部2Aは、テンキーやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
指示受付部21は、指示を受け付ける。指示は、例えば、静止画取得指示、学習指示、認識開始指示である。
静止画取得指示とは、三次元データを用いて、1または2以上のオブジェクト含静止画を取得する指示である。静止画取得指示は、通常、三次元データを特定する三次元データ特定情報を含む。三次元データ特定情報は、三次元データのファイルのファイル識別子(例えば、ファイル名、ファイルIDなど)、三次元データが格納されている装置の装置識別子と格納場所を識別する格納場所識別子(例えば、装置のIPアドレスとフォルダ名等)、三次元データが格納されている場所を特定するURL等である。ただし、三次元データ特定情報は、三次元データを特定できれば良く、そのデータ構造等は問わない。
学習指示とは、学習の開始時の指示である。学習指示は、通常、1または2以上のオブジェクト含静止画を特定する情報を含む。学習指示は、通常、1以上のオブジェクト含静止画に対応付いたオブジェクト識別子を特定する情報を含むことは好適である。学習指示は、通常、1以上のオブジェクト含静止画の格納場所を特定する情報(例えば、フォルダ名、URL等)を含む。ただし、オブジェクト含静止画を特定する情報は、オブジェクト含静止画を特定できれば良く、そのデータ構造等は問わない。
認識開始指示とは、認識処理の開始の指示である。認識開始指示は、通常、認識対象の静止画を特定する静止画特定情報を含む。認識開始指示は、例えば、学習器を特定する学習器特定情報を含む。静止画特定情報は、例えば、ファイル名、URL等である。学習器特定情報は、例えば、ファイル名、フォルダ名等である。ただし、静止画特定情報、学習器特定情報は、各々の情報を特定できれば良く、そのデータ構造等は問わない。
静止画受付部22は、静止画を受け付ける。この静止画は、認識対象の静止画である。静止画受付部22における静止画の受け付けとは、指示受付部21が受け付けた認識開始指示に含まれる静止画特定情報を用いて、静止画を取得する処理でも良い。
処理部3Aは、各種の処理を行う。各種の処理とは、例えば、オブジェクト静止画取得部31、画像合成部32、学習部33、認識部34が行う処理である。
オブジェクト静止画取得部31は、三次元データを用いて1または2以上のオブジェクト静止画を取得する。オブジェクト静止画取得部31は、オブジェクトの三次元データを用いて1または2以上のオブジェクト静止画を取得する。オブジェクト静止画とは、オブジェクトの静止画である。オブジェクト静止画は、オブジェクトを含む静止画であると言っても良い。
オブジェクトの三次元データを用いてオブジェクト静止画を取得する技術は、公知技術であるので、詳細な説明を省略する。なお、例えば、レンダリングの技術により、オブジェクトの三次元データを用いてオブジェクト静止画を取得できる。かかる技術は、Unity(インターネットURL:https://unity.com/ja 参照)、Unreal Engine 4(インターネットURL:https://www.unrealengine.com/ja/ 参照)等のソフトウェアにより実現可能である。
オブジェクト静止画取得部31は、三次元データを2以上の異なる各視点から見た場合の2以上のオブジェクト静止画を取得することは好適である。
オブジェクト静止画取得部31は、例えば、格納部1Aに格納されている1または2以上の各視点候補情報が示す視点から三次元データを見た場合の静止画を視点候補情報ごとに取得する。
オブジェクト静止画取得部31は、例えば、取得手段311と変更手段312との処理により、1または2以上のオブジェクト静止画を取得する。
オブジェクト静止画取得部31を構成する取得手段311は、三次元データを用いてオブジェクトの静止画であるオブジェクト静止画を取得する。
取得手段311は、例えば、格納部1Aに格納されている1または2以上の各視点候補情報が示す視点から三次元データを見た場合の静止画を視点候補情報ごとに取得する。
変更手段312は、取得手段311が取得した1以上の各オブジェクト静止画の1以上の属性値を変更して、1以上のオブジェクト静止画を生成する。1以上の属性値とは、例えば、色、サイズ、線種、線の色等である。また、変更手段312は、格納部1Aの1または2以上の各属性値集合が示す属性値となるように、オブジェクト静止画の属性値を変更し、新たなオブジェクト静止画を取得する。なお、属性値集合は、例えば、「色:赤,サイズ:(w1,h1)」「色:青,サイズ:(w1,h1)」「色:赤,サイズ:(w2,h2)」等である。また、(w1,h1)(w2,h2)は、幅と高さの情報である。
画像合成部32は、1以上の各オブジェクト静止画と1以上の各背景画とを合成し、1以上のオブジェクト含静止画を取得する。
画像合成部32は、例えば、オブジェクト含静止画を生成する際に使用するオブジェクト静止画と背景画とを取得し、当該オブジェクト静止画が有するオブジェクトの重心の位置が、背景画の中の中心の位置になるように、オブジェクトの画像を背景画の中に配置して、オブジェクト静止画と背景画とを合成して、オブジェクト含静止画を取得する。
画像合成部32は、例えば、オブジェクト含静止画を生成する際に使用するオブジェクト静止画と背景画とを取得し、当該オブジェクト静止画が有するオブジェクトの画像を切り出し、当該オブジェクトの画像の重心の位置が、背景画の中の中心の位置になるように、オブジェクトの画像を背景画の中に配置して、オブジェクト静止画と背景画とを合成して、オブジェクト含静止画を取得する。
画像合成部32は、例えば、オブジェクト含静止画を生成する際に使用するオブジェクト静止画と背景画とを取得し、当該オブジェクト静止画が有するオブジェクトのサイズが背景画全体のサイズと比較して一定割合のサイズになるように、オブジェクトを拡大または縮小し、当該拡大または縮小したオブジェクトの画像の重心の位置が、背景画の中の中心の位置になるように、拡大または縮小したオブジェクトの画像を背景画の中に配置して、拡大または縮小したオブジェクト静止画と背景画とを合成して、オブジェクト含静止画を取得する。
その他、画像合成部32がオブジェクト静止画と背景画とを合成し、オブジェクト含静止画を取得するアルゴリズムは問わない。
学習部33は、1または2以上のオブジェクト含静止画を機械学習のアルゴリズムにより学習し、オブジェクトを識別するための学習器を取得する。
学習部33は、一のオブジェクト識別子に対応付いた1または2以上のオブジェクト含静止画を機械学習のアルゴリズムにより学習し、オブジェクトを識別するための学習器を取得することは好適である。オブジェクトを識別するための学習器は、例えば、オブジェクト識別子を出力するための学習器である。
また、学習部33は、一のオブジェクト識別子に対応付いた1または2以上のオブジェクト含静止画を正例とし、他のオブジェクト識別子に対応付いた1または2以上のオブジェクト含静止画を負例として、機械学習のアルゴリズムにより学習し、一のオブジェクト識別子で識別されるオブジェクトを認識するための学習器を取得することは好適である。
学習部33は、2以上の各オブジェクト識別子ごとに、学習器を取得することは好適である。ただし、学習部33は、複数のオブジェクト識別子のうちのいずれのオブジェクト識別子に対応する静止画であるか否かを判断するための一の学習器を取得しても良い。
学習部33は、例えば、一のオブジェクト識別子に対応付け得る1または2以上のオブジェクト含静止画の正例と、オブジェクト識別子とを有する学習元情報を引数として、機械学習の関数に与え、当該関数を実行し、学習器を取得する。なお、機械学習の関数は、例えば、tiny_svm、TensorFlowの関数、各種のrandomForest関数等であり、問わないことは言うまでもない。また、ここでの機械学習の関数は、機械学習の学習機能を実現するモジュールでも良いことは言うまでもない。
学習部33は、例えば、一のオブジェクト識別子に対応付け得る1または2以上のオブジェクト含静止画である正例と、他のオブジェクト識別子に対応付け得る1または2以上のオブジェクト含静止画である負例と、オブジェクト識別子とを有する学習元情報を引数として、機械学習の関数に与え、当該関数を実行し、学習器を取得する。
学習部33は、例えば、オブジェクト識別子に対応付いた1または2以上のオブジェクト含静止画を有する学習元情報を引数として、機械学習の関数に与え、当該関数を実行し、学習器を取得する。
認識部34は、静止画を学習器に適用し、機械学習のアルゴリズムにより、オブジェクトを識別するオブジェクト識別子を取得する。認識部34は、通常、受付部2Aが受け付けた静止画を学習器に適用し、機械学習のアルゴリズムにより、オブジェクトを識別するオブジェクト識別子を取得する。静止画を学習器に適用することは、機械学習の関数またはモジュール等に、静止画と学習器とを与え、当該関数またはモジュール等を実行することである。
認識部34は、例えば、受付部2Aが受け付けた静止画と、分類に使用する学習器を引数として、機械学習の関数に与え、当該関数を実行し、オブジェクト識別子を取得する。なお、上述したように、関数はモジュール等でも良いことは言うまでもない。
出力部4Aは、認識部34が取得したオブジェクト識別子を出力する。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
静止画蓄積部41は、画像合成部32が取得した1以上のオブジェクト含静止画を蓄積する。静止画蓄積部41は、画像合成部32が取得した1以上の各オブジェクト含静止画を、各オブジェクト含静止画を作成する元になったオブジェクト静止画に対応付けて蓄積することは好適である。また、静止画蓄積部41は、画像合成部32が取得した1以上の各オブジェクト含静止画を、オブジェクト識別子に対応付けて蓄積することは好適である。
なお、オブジェクト含静止画の蓄積先は、例えば、オブジェクト含静止画格納部13であるが、情報処理装置A以外の他の装置や他のサーバ等でも良い。
学習器蓄積部42は、学習部33が取得した学習器を蓄積する。学習器の蓄積先は、例えば、学習器格納部14であるが、情報処理装置A以外の他の装置や他のサーバ等でも良い。
認識結果出力部43は、認識部34が取得したオブジェクト識別子を出力する。オブジェクト識別子の出力態様は問わない。
格納部1A、三次元データ格納部11、背景画格納部12、オブジェクト含静止画格納部13、学習器格納部14、後述する格納部1B、後述する格納部1C、および後述する格納部1Dは、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部1A等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部1A等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部1A等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部1A等で記憶されるようになってもよい。
処理部3A、オブジェクト静止画取得部31、画像合成部32、学習部33、認識部34、取得手段311、変更手段312、静止画蓄積部41、学習器蓄積部42、後述する処理部3B、後述する処理部3C、後述する処理部3D、後述する出力部4B、および後述する出力部4Cは、通常、MPUやメモリ等から実現され得る。処理部3A等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
出力部4A、認識結果出力部43、および後述する出力部4Dは、例えば、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部4A等は、例えば、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報処理装置Aの動作例について、図2のフローチャートを用いて説明する。
(ステップS201)指示受付部21は、静止画取得指示を受け付けたか否かを判断する。静止画取得指示を受け付けた場合はステップS202に行き、静止画取得指示を受け付けなかった場合はステップS203に行く。
(ステップS202)処理部3Aは、三次元データを用いて、1または2以上のオブジェクト含静止画を取得する。ステップS201に戻る。かかるオブジェクト含静止画取得処理の例について、図3のフローチャートを用いて説明する。
(ステップS203)指示受付部21は、学習指示を受け付けたか否かを判断する。学習指示を受け付けた場合はステップS204に行き、学習指示を受け付けなかった場合はステップS207に行く。
(ステップS204)学習部33は、ステップS203で受け付けられた学習指示が有する1以上のオブジェクト含静止画を特定する情報を取得する。次に、学習部33は、かかる特定する情報を用いて、1以上のオブジェクト含静止画を含む学習元情報を取得する。なお、学習元情報は、例えば、オブジェクト識別子を含む。また、オブジェクト識別子は、通常、1以上のオブジェクト含静止画に対応付いて管理されている。
(ステップS205)学習部33は、ステップS204で取得した学習元情報に対して学習処理を実行し、学習器を取得する。
(ステップS206)学習器蓄積部42は、ステップS205で取得された学習器を蓄積する。
(ステップS207)指示受付部21は、認識開始指示を受け付けたか否かを判断する。認識開始指示を受け付けた場合はステップS208に行き、認識開始指示を受け付けなかった場合はステップS201に戻る。
(ステップS208)認識部34は、認識開始指示が有する静止画特定情報を取得する。次に、認識部34は、当該静止画特定情報により特定される静止画を取得する。
(ステップS209)認識部34は、認識開始指示が有する学習器特定情報を取得する。次に、認識部34は、当該学習器特定情報により特定される学習器を取得する。
(ステップS210)認識部34は、ステップS208で取得した静止画を、ステップS209で取得した学習器に適用し、機械学習のアルゴリズムにより、分類処理を行い、オブジェクト識別子を取得する。
(ステップS211)認識結果出力部43は、ステップS210で取得したブジェクト識別子を出力する。ステップS201に戻る。
なお、図2のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS202のオブジェクト含静止画取得処理の例について、図3のフローチャートを用いて説明する。
(ステップS301)オブジェクト静止画取得部31は、ステップS201で受け付けられた静止画取得指示が有する三次元データ特定情報を取得する。次に、オブジェクト静止画取得部31は、当該三次元データ特定情報により特定される三次元データを取得する。オブジェクト静止画取得部31は、例えば、三次元データ格納部11から三次元データを取得する。
(ステップS302)オブジェクト静止画取得部31は、ステップS301で取得した三次元データと対になるオブジェクト識別子を取得する。なお、オブジェクト識別子は、三次元データと対に格納されている、とする。
(ステップS303)オブジェクト静止画取得部31は、カウンタiに1を代入する。
(ステップS304)オブジェクト静止画取得部31は、オブジェクト静止画を取得するための、i番目の視点が存在するか否かを判断する。i番目の視点が存在する場合はステップS305に行き、i番目の視点が存在しない場合はステップS313に行く。なお、オブジェクト静止画取得部31は、例えば、i番目の視点候補情報(例えば、三次元空間上での座標値(x,y,z)、または三次元データに対する相対的な位置を示す情報等)が格納部1Aに格納されているか否かにより、i番目の視点が存在するか否かを判断する。
(ステップS305)オブジェクト静止画取得部31は、三次元データを、i番目の視点から見た場合の静止画であるオブジェクト静止画を取得する。なお、オブジェクト静止画取得部31は、例えば、i番目の視点候補情報(例えば、三次元空間上での座標値)を用いて、三次元データからオブジェクト静止画を取得する。
(ステップS306)オブジェクト静止画取得部31は、ステップS302で取得したオブジェクト識別子に対応付けて、ステップS305で取得したオブジェクト静止画を蓄積する。
(ステップS307)オブジェクト静止画取得部31は、カウンタjに1を代入する。
(ステップS308)オブジェクト静止画を変更するための、j番目の属性値の集合である属性値集合が存在するか否かを判断する。j番目の属性値集合が存在する場合はステップS309に行き、存在しない場合はステップS312に行く。なお、例えば、オブジェクト静止画を変更するための属性値の集合に関する情報が格納部1Aに格納されており、オブジェクト静止画取得部31は、かかる格納部1Aの情報に基づいて、j番目の属性値の集合が存在するか否かを判断する。
(ステップS309)オブジェクト静止画取得部31は、j番目の属性値集合の情報を取得する。そして、オブジェクト静止画取得部31は、j番目の属性値集合の情報を用いて、j番目の属性値集合により特定される属性値となるように、オブジェクト静止画の属性値を変更し、属性値が変更されたオブジェクト静止画を取得する。
(ステップS310)オブジェクト静止画取得部31は、ステップS302で取得したオブジェクト識別子に対応付けて、ステップS309で取得したオブジェクト静止画を蓄積する。
(ステップS311)オブジェクト静止画取得部31は、カウンタjを1、インクリメントする。ステップS308に戻る。
(ステップS312)オブジェクト静止画取得部31は、カウンタiを1、インクリメントする。ステップS304に戻る。
(ステップS313)画像合成部32は、カウンタiに1を代入する。
(ステップS314)画像合成部32は、ステップS306またはステップS310で
蓄積されたオブジェクト静止画の中で、i番目のオブジェクト静止画が存在するか否かを判断する。i番目のオブジェクト静止画が存在する場合はステップS315に行き、存在しない場合は上位処理にリターンする。
(ステップS315)画像合成部32は、i番目のオブジェクト静止画を取得する。
(ステップS316)画像合成部32は、カウンタjに1を代入する。
(ステップS317)画像合成部32は、背景画格納部12にj番目の背景画が存在するか否かを判断する。j番目の背景画が存在する場合はステップS318に行き、存在しない場合はステップS324に行く。
(ステップS318)画像合成部32は、j番目の背景画を背景画格納部12から取得する。
(ステップS319)画像合成部32は、i番目のオブジェクト静止画が変更条件に合致するか否かを判断する。変更条件に合致する場合はステップS320に行き、変更条件に合致しない場合はステップS321に行く。なお、変更条件は、例えば、オブジェクト静止画のオブジェクトのサイズに関する条件である。また、変更条件は、例えば、オブジェクト静止画のオブジェクトのサイズの範囲を特定する条件である。
(ステップS320)画像合成部32は、i番目のオブジェクト静止画を変更する。例えば、画像合成部32は、i番目のオブジェクト静止画の中のオブジェクトのサイズを、予め決められたサイズにする。
(ステップS321)画像合成部32は、i番目のオブジェクト静止画とj番目の背景画とを合成し、オブジェクト含静止画を取得する。
(ステップS322)画像合成部32は、ステップS302で取得したオブジェクト識別子に対応付けて、ステップS321で取得したオブジェクト含静止画を蓄積する。
(ステップS323)画像合成部32は、カウンタjを1、インクリメントする。ステップS317に戻る。
(ステップS324)画像合成部32は、カウンタiを1、インクリメントする。ステップS314に戻る。
以上、本実施の形態によれば、オブジェクトと背景とを含む多数の画像を自動的に取得できる。
また、本実施の形態によれば、オブジェクトを認識するための学習器を生成できる。
さらに、本実施の形態によれば、静止画の中のオブジェクトを認識できる。
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置Aの生成機能を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、オブジェクトの三次元データが格納される三次元データ格納部と、背景の静止画である1以上の背景画が格納される背景画格納部とにアクセス可能なコンピュータを、前記三次元データを用いて前記オブジェクトの静止画である1以上のオブジェクト静止画を取得するオブジェクト静止画取得部と、前記1以上の各オブジェクト静止画と前記1以上の各背景画とを合成し、1以上のオブジェクト含静止画を取得する画像合成部と、前記1以上のオブジェクト含静止画を蓄積する静止画蓄積部として機能させるためのプログラムである。
また、本実施の形態における情報処理装置Aの学習機能を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、生成機能により蓄積された2以上のオブジェクト含静止画が格納されるオブジェクト含静止画格納部にアクセス可能なコンピュータを、前記2以上のオブジェクト含静止画を機械学習のアルゴリズムにより学習し、当該オブジェクトを識別するための学習器を取得する学習部と、前記学習器を蓄積する学習器蓄積部として機能させるためのプログラムである。
また、本実施の形態における情報処理装置Aの認識機能を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、学習機能により蓄積された学習器が格納される学習器格納部にアクセス可能なコンピュータを、静止画を受け付ける静止画受付部と、前記静止画を前記学習器に適用し、機械学習のアルゴリズムにより、オブジェクトを識別するオブジェクト識別子を取得する認識部と、前記認識部が取得したオブジェクト識別子を出力する出力部として機能させるためのプログラムである。
(実施の形態2)
本実施の形態において、オブジェクト含静止画の生成機能を有する情報処理装置について説明する。なお、生成機能とは、オブジェクトの三次元データを用いて取得した1以上のオブジェクト静止画と1以上の各背景画とを組み合わせて、1または2以上のオブジェクト含静止画を生成する機能である。
本実施の形態における情報処理装置は、実施の形態1で説明した情報処理装置Aに対して、学習機能と認識機能とを有さず、生成機能のみを有する。
図4は、本実施の形態における情報処理装置Bのブロック図である。情報処理装置Bは、格納部1B、受付部2B、処理部3B、および出力部4Bを備える。
格納部1Bは、三次元データ格納部11、背景画格納部12、およびオブジェクト含静止画格納部13を備える。受付部2Bは、指示受付部21を備える。処理部3Bは、オブジェクト静止画取得部31、および画像合成部32を備える。出力部4Bは、静止画蓄積部41を備える。
なお、情報処理装置Bを構成する各構成要素について、実施の形態1で説明したので、再度の説明は省略する。また、情報処理装置Bの生成機能について、情報処理装置Aの生成機能と同じであるので、再度の説明は省略する。
なお、生成機能において、情報処理装置Aまたは情報処理装置Bは、以下の生産方法を実現する。
つまり、オブジェクトの三次元データが格納される三次元データ格納部と、背景の静止画である1以上の背景画が格納される背景画格納部と、オブジェクト静止画取得部と、画像合成部と、静止画蓄積部とにより実現されるオブジェクト含静止画を生産する静止画の生産方法であって、前記オブジェクト静止画取得部が、前記三次元データを用いて前記オブジェクトの静止画である1以上のオブジェクト静止画を取得するオブジェクト静止画取得ステップと、前記画像合成部が、前記1以上の各オブジェクト静止画と前記1以上の各背景画とを合成し、1以上のオブジェクト含静止画を取得する画像合成ステップと、前記静止画蓄積部が、前記1以上のオブジェクト含静止画を蓄積する静止画蓄積ステップとを具備する静止画の生産方法、である。
以上、本実施の形態によれば、オブジェクトと背景とを含む多数の画像を自動的に取得できる。
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置Bを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、オブジェクトの三次元データが格納される三次元データ格納部と、背景の静止画である1以上の背景画が格納される背景画格納部とにアクセス可能なコンピュータを、前記三次元データを用いて前記オブジェクトの静止画である1以上のオブジェクト静止画を取得するオブジェクト静止画取得部と、前記1以上の各オブジェクト静止画と前記1以上の各背景画とを合成し、1以上のオブジェクト含静止画を取得する画像合成部と、前記1以上のオブジェクト含静止画を蓄積する静止画蓄積部として機能させるためのプログラムである。
(実施の形態3)
本実施の形態において、1または2以上のオブジェクト含静止画を用いて学習器を生成する学習機能を実現する学習装置について説明する。なお、学習器を生成する場合、2以上のより多数のオブジェクト含静止画が存在することは好適である。
本実施の形態における学習装置は、実施の形態1で説明した情報処理装置に対して、生成機能と認識機能とを有さず、学習機能のみを有する。
図5は、本実施の形態における学習装置Cのブロック図である。学習装置Cは、格納部1C、受付部2C、処理部3C、および出力部4Cを備える。
格納部1Cは、オブジェクト含静止画格納部13、および学習器格納部14を備える。受付部2Cは、指示受付部21を備える。処理部3Cは、学習部33を備える。出力部4Cは、学習器蓄積部42を備える。
なお、学習装置Cを構成する各構成要素について、実施の形態1で説明したので、再度の説明は省略する。また、学習装置Cの学習機能について、情報処理装置Aの学習機能と同じであるので、再度の説明は省略する。
以上、本実施の形態によれば、オブジェクトを認識するための学習器を生成できる。
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における学習装置Cを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、情報処理装置Aまたは情報処理装置Bが蓄積した2以上のオブジェクト含静止画が格納されるオブジェクト含静止画格納部にアクセス可能なコンピュータを、前記2以上のオブジェクト含静止画を機械学習のアルゴリズムにより学習し、当該オブジェクトを識別するための学習器を取得する学習部と、前記学習器を蓄積する学習器蓄積部として機能させるためのプログラムである。
(実施の形態4)
本実施の形態において、学習器を用いて、オブジェクトを認識する認識装置について説明する。
本実施の形態における認識装置は、実施の形態1で説明した情報処理装置に対して、生成機能と学習機能とを有さず、認識機能のみを有する。
図6は、本実施の形態における認識装置Dのブロック図である。認識装置Dは、格納部1D、受付部2D、処理部3D、および出力部4Dを備える。
格納部1Dは、学習器格納部14を備える。受付部2Dは、静止画受付部22を備える。
処理部3Dは、認識部34を備える。出力部4Dは、認識結果出力部43を備える。
なお、認識装置Dを構成する各構成要素について、実施の形態1で説明したので、再度の説明は省略する。また、認識装置Dの認識機能について、情報処理装置Aの認識機能と同じであるので、再度の説明は省略する。
以上、本実施の形態によれば、静止画の中のオブジェクトを認識できる。
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における認識装置Dを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、学習装置Cが蓄積した学習器が格納される学習器格納部にアクセス可能なコンピュータを、静止画を受け付ける静止画受付部と、前記静止画を前記学習器に適用し、機械学習のアルゴリズムにより、オブジェクトを識別するオブジェクト識別子を取得する認識部と、前記認識部が取得したオブジェクト識別子を出力する出力部として機能させるためのプログラムである。
(実施の形態5)
以下、上記の実施の形態における情報処理装置A等の具体的な動作について説明する。
今、三次元データ格納部11には、ビル等の建設のために使用されるクレーンの三次元データがオブジェクト識別子「クレーン」と対に格納されている、とする。また、三次元データ格納部11には、クレーン以外の1以上の各三次元データ(例えば、ブルトーザ、トラック等の三次元データ)も格納されている、とする。
また、背景画格納部12には、ビル群を有する都市の背景の背景画、草原の背景画、マラソンランナーが都市を快走する背景画等の多数の背景画が格納されている、とする。
かかる状況において、ユーザは、静止画取得指示を情報処理装置Aに入力した、とする。すると、情報処理装置Aの指示受付部21は、静止画取得指示を受け付ける。なお、静止画取得指示は、三次元データ格納部11のクレーンの三次元データの三次元データ特定情報を含む、とする。
次に、オブジェクト静止画取得部31は、指示受付部21により受け付けられた静止画取得指示が有する三次元データ特定情報を取得する。次に、オブジェクト静止画取得部31は、当該三次元データ特定情報により特定される三次元データである、クレーンの三次元データを三次元データ格納部11から読み出す。
次に、オブジェクト静止画取得部31は、取得した三次元データと対になるオブジェクト識別子「クレーン」を三次元データ格納部11から取得する。
次に、オブジェクト静止画取得部31は、取得したクレーンの三次元データを予め決められた2以上の各視点から見た場合の2以上のオブジェクト静止画を、クレーンの三次元データを用いて取得する。なお、三次元データを用いて、2以上の各視点から見た場合の2以上のオブジェクト静止画を取得する技術は公知技術である。そして、オブジェクト静止画取得部31は、図7の(a)から(e)のオブジェクト静止画を含む、多数のオブジェクト静止画を取得した、とする。
次に、オブジェクト静止画取得部31は、取得したオブジェクト識別子「クレーン」に対応付けて、取得した2以上のオブジェクト静止画を格納部1に一時蓄積する。
次に、画像合成部32は、背景画格納部12に格納されている多数の各背景画に、格納部1に一時蓄積した2以上の各オブジェクト静止画を配置し(各背景画と各オブジェクト静止画とを合成し)、多数のオブジェクト含静止画を取得する。
次に、画像合成部32は、取得したオブジェクト識別子「クレーン」に対応付けて、取得した多数のオブジェクト含静止画をオブジェクト含静止画格納部13に蓄積する。なお、かかる蓄積したオブジェクト含静止画は、図8の(a)から(e)を含む。
上記と同様の処理により、画像合成部32は、三次元データ格納部11に格納されているクレーン以外の1以上の各三次元データと、背景画格納部12に格納されている多数の各背景画とを合成し、多数のオブジェクト含静止画を取得する。そして、画像合成部32は、三次元データと対になるオブジェクト識別子に対応付けて、多数のオブジェクト含静止画をオブジェクト含静止画格納部13に蓄積する。
以上の処理により、オブジェクトと背景とを含む多数のオブジェクト含静止画が、オブジェクト識別子に対応付けられて自動的に蓄積された。
次に、ユーザは、学習指示を情報処理装置Aに入力した、とする。すると、学習部33は、オブジェクト含静止画格納部13から、多数のオブジェクト含静止画とオブジェクト識別子との組の情報である学習元情報を取得する。
次に、学習部33は、取得した学習元情報に対して、機械学習のアルゴリズムにより、学習処理を実行し、学習器を取得する。
なお、学習部33は、オブジェクト識別子ごとに学習器を取得しても良い。つまり、学習部33は、オブジェクト識別子ごとに、当該オブジェクト識別子と対になるオブジェクト含静止画を正例とし、当該オブジェクト識別子ではないオブジェクト識別子と対になるオブジェクト含静止画を負例として、機械学習のアルゴリズムにより、学習処理を実行し、オブジェクト識別子ごとの学習器を取得する。かかる場合、例えば、二値分類(二クラス分類)が行える機械学習のアルゴリズム(例えば、SVM、決定木、ランダムフォレスト等)が利用可能である。
また、学習部33は、一つの学習器を取得しても良い。つまり、学習部33は、オブジェクト含静止画格納部13の多数のオブジェクト含静止画とオブジェクト識別子との組の情報である学習元情報に対して、機械学習のアルゴリズムにより、学習処理を実行し、一の学習器を取得する。かかる場合、例えば、多値分類(多クラス分類)が行える機械学習のアルゴリズム(例えば、深層学習、ランダムフォレスト等)が利用可能である。
次に、学習器蓄積部42は、取得された1または2以上の学習器を学習器格納部14に蓄積する。
次に、ユーザは、図9の静止画を特定する静止画特定情報を有する認識開始指示を情報処理装置Aに入力した、とする。すると、認識部34は、認識開始指示が有する静止画特定情報を取得する。なお、図9の静止画は、格納部1に格納されている、とする。
次に、認識部34は、当該静止画特定情報により特定される静止画を格納部1から取得する。次に、認識部34は、取得した図9の静止画を、学習器格納部14の学習器に適用し、機械学習のアルゴリズムにより、分類処理を行い、オブジェクト識別子「クレーン」を取得する。
次に、認識結果出力部43は、取得したオブジェクト識別子「クレーン」を出力する。なお、認識結果出力部43におけるオブジェクト識別子「クレーン」の出力態様は問わない。
以上、本実施の形態によれば、オブジェクトと背景とを含む多数のオブジェクト含静止画を自動的に取得できる。
また、本実施の形態によれば、自動的に取得した多数のオブジェクト含静止画を用いて、オブジェクトを認識するための学習器を生成できる。なお、多数のオブジェクト含静止画を使用して学習器を生成するため、オブジェクト認識の精度の高い学習器が生成できる。
さらに、本実施の形態によれば、生成した学習器を用いて、静止画の中のオブジェクトを容易に認識できる。
また、図10は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の情報処理装置A等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図10は、このコンピュータシステム300の概観図であり、図11は、システム300のブロック図である。
図10において、コンピュータシステム300は、CD-ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
図11において、コンピュータ301は、CD-ROMドライブ3012に加えて、MPU3013と、CD-ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態の情報処理装置A等の機能を実行させるプログラムは、CD-ROM3101に記憶されて、CD-ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD-ROM3101またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態の情報処理装置A等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。