(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-11
(45)【発行日】2023-12-19
(54)【発明の名称】情報処理装置、情報処理方法、及び、プログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20231212BHJP
G06V 10/34 20220101ALI20231212BHJP
【FI】
G06T7/00 350C
G06V10/34
(21)【出願番号】P 2022539787
(86)(22)【出願日】2020-07-27
(86)【国際出願番号】 JP2020028622
(87)【国際公開番号】W WO2022024165
(87)【国際公開日】2022-02-03
【審査請求日】2023-01-05
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】渡邊 義和
【審査官】合田 幸裕
(56)【参考文献】
【文献】特開2019-114116(JP,A)
【文献】特開2015-148895(JP,A)
【文献】国際公開第2019/021855(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06V 10/34
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
機械学習の対象となる物体を含む対象領域と、機械学習の対象となる物体を含まない背景領域とを含む画像の集合であるベースデータセットから、ベース画像を選択し、選択した前記ベース画像の複製である処理対象画像を生成するベース画像選択手段と、
前記ベースデータセットに含まれる他の画像に含まれる前記対象領域を選択する対象領域選択手段と、
選択した前記対象領域の画像と前記対象領域の画像に含まれる機械学習の対象となる物体に関する情報とを前記処理対象画像に合成する画像合成手段と、
前記ベース画像選択手段と、対象領域選択手段と、前記画像合成手段とを制御して、所定数の前記対象領域を合成した前記処理対象画像の集合であるデータセットを生成するデータセット生成制御手段と、
前記データセットに含まれる画像の特徴量を計算する特徴量計算手段と、
前記特徴量と前記データセットとを用いた機械学習である第1の機械学習を用いて、学習済みモデルを生成する学習実行手段と、
前記特徴量計算手段と前記学習実行手段とを制御して生成した前記学習済みモデルを
出力し、前記データセットを用いた機械学習であるが前記特徴量を再利用しない機械学習である第3の機械学習を実行するように、前記特徴量計算手段及び前記学習実行手段を制御し、前記第3の機械学習の実行状況のプロファイリングの結果を用いて再利用する前記特徴量を決定し、決定した前記特徴量と前記データセットとを用いた前記第1の機械学習を実行するように、前記特徴量計算手段及び前記学習実行手段を制御する学習処理制御手段と
を含む情報処理装置。
【請求項2】
前記対象領域選択手段が、選択した前記対象領域の形状を変更する
請求項1に記載の情報処理装置。
【請求項3】
前記対象領域選択手段が、前記対象領域の形状の変更として、幅の変更、高さの変更、サイズの変更、アスペクト比の変更、画像の回転、及び、画像の傾斜の変更の少なくともいずれか一つを変更する
請求項2に記載の情報処理装置。
【請求項4】
前記画像合成手段が、前記対象領域から、機械学習の対象となる物体の領域である前景を切り出し、切り出した前記前景を前記処理対象画像に合成する
請求項1ないし3のいずれか1項に記載の情報処理装置。
【請求項5】
前記学習処理制御手段が、前記学習実行手段を制御して、前記ベースデータセットを用いた前記第1の機械学習、又は、前記第1の機械学習とは異なる第2の機械学習を実行し、前記ベースデータセットを用いた前記第1の機械学習又は前記第2の機械学習の結果を評価し、
前記データセット生成制御手段が、前記学習処理制御手段における評価に基づいて、前記ベース画像選択手段、前記対象領域選択手段、及び、前記画像合成手段を制御して、評価に対応した前記データセットを生成する
請求項1ないし4のいずれか1項に記載の情報処理装置。
【請求項6】
前記学習処理制御手段が、前記ベースデータセットを用いた前記第1の機械学習又は前記第2の機械学習の評価の結果として、機械学習の対象となる物体の認識の精度を評価し、
前記データセット生成制御手段が、前記データセットが認識の精度が低い物体を多く含むように、前記ベース画像選択手段、前記対象領域選択手段、及び前記画像合成手段を制御して、前記データセットを生成する
請求項5に記載の情報処理装置。
【請求項7】
前記学習処理制御手段が、再利用すると決定した前記特徴量と前記データセットとを用いた前記第1の機械学習のプロファイリングの結果を用いて、再利用する前記特徴量を再決定し、再決定した前記特徴量と前記データセットとを用いた前記第1の機械学習を実行するように、前記特徴量計算手段及び前記学習実行手段を制御する
請求項1ないし6のいずれか1項に記載の情報処理装置。
【請求項8】
機械学習の対象となる物体を含む対象領域と、機械学習の対象となる物体を含まない背景領域とを含む画像の集合であるベースデータセットから、ベース画像を選択し、選択した前記ベース画像の複製である処理対象画像を生成し、
前記ベースデータセットに含まれる他の画像に含まれる前記対象領域を選択し、
選択した前記対象領域の画像と前記対象領域の画像に含まれる機械学習の対象となる物体に関する情報とを前記処理対象画像に合成し、
所定数の前記対象領域を合成した前記処理対象画像の集合であるデータセットを生成し、
前記データセットに含まれる画像の特徴量を計算し、
前記特徴量と前記データセットとを用いた機械学習である第1の機械学習を用いて、学習済みモデルを生成し、
生成した前記学習済みモデルを
出力し、
前記データセットを用いた機械学習であるが前記特徴量を再利用しない機械学習である第3の機械学習を実行し、
前記第3の機械学習の実行状況のプロファイリングの結果を用いて再利用する前記特徴量を決定し、決定した前記特徴量と前記データセットとを用いた前記第1の機械学習を実行する
情報処理方法。
【請求項9】
機械学習の対象となる物体を含む対象領域と、機械学習の対象となる物体を含まない背景領域とを含む画像の集合であるベースデータセットから、ベース画像を選択し、選択した前記ベース画像の複製である処理対象画像を生成する処理と、
前記ベースデータセットに含まれる他の画像に含まれる前記対象領域を選択する処理と、
選択した前記対象領域の画像と前記対象領域の画像に含まれる機械学習の対象となる物体に関する情報とを前記処理対象画像に合成する処理と、
所定数の前記対象領域を合成した前記処理対象画像の集合であるデータセットを生成する処理と、
前記データセットに含まれる画像の特徴量を計算する処理と、
前記特徴量と前記データセットとを用いた機械学習である第1の機械学習を用いて、学習済みモデルを生成する処理と、
生成した前記学習済みモデルを出力する処理と
、
前記データセットを用いた機械学習であるが前記特徴量を再利用しない機械学習である第3の機械学習を実行する処理と、
前記第3の機械学習の実行状況のプロファイリングの結果を用いて再利用する前記特徴量を決定し、決定した前記特徴量と前記データセットとを用いた前記第1の機械学習を実行する処理と
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報の処理に関し、特に、機械学習におけるデータの生成及び学習に関する。
【背景技術】
【0002】
各種の検出及び予測の処理において、機械学習が用いられている(例えば、特許文献1及び2を参照)。
【0003】
特許文献1に記載の学習データ生成装置は、機械学習に用いる学習用のデータ(学習データ)として、検出対象における不良部の画像データを、良品の画像データに合成した画像データを生成する。
【0004】
特許文献2に記載の特徴量準備の方法は、予め格納されているモデルの特徴量と、患者データの特徴量との類似性を用いた機械学習に基づいて、患者の健康ニーズを予測するモデルを生成する。
【0005】
機械学習を用いた主要なタスクの一つとして、画像を用いる物体検出(Object Detection)タスクがある。物体検出タスクとは、画像の中に存在する検出対象物体の位置とクラス(種別)との組を生成するタスクである。
【0006】
物体検出タスクの機械学習では、正解データとして、学習用の画像群と、各画像に含まれる検出対象物体に関する情報とが与えられる。
【0007】
検出対象物体に関する情報は、物体検出タスクの仕様に沿って選択される。例えば、検出対象物体に関する情報は、検出対象物体が映っている矩形領域の4つの頂点の座標(バウンディングボックス(Bounding Box:BB))及び検出対象物体のクラス(種別)を含む。なお、以下の説明でも、検出対象物体に関する情報の一例として、BB及びクラスを用いて説明する。
【0008】
そして、物体検出タスクは、学習用の画像群と、検出対象物体に関する情報とを用いた機械学習の結果として、学習済みモデルを生成する。
【0009】
そして、物体検出タスクは、検出対象物体を含む画像に対して学習済みモデルを適用し、画像中の検出対象物体を推論し、画像に含まれる検出対象物体それぞれについて、BBとクラスとを出力する。なお、物体検出タスクは、BB及びクラスとともに、物体検出の結果についての評価結果(例えば、確実性(confidence))を出力することもある。
【0010】
例えば、人及び車の監視システムは、監視カメラからの画像を物体検出タスクに入力し、物体検出タスクが検出した監視カメラの画像に映っている人及び車の位置及びクラスを用いて、構築可能である。
【0011】
近年、物体検出タスクにおいて、深層学習(Deep-Learning)を用いた物体検出タスクが、広く利用されている(例えば、非特許文献1ないし3を参照)。
【0012】
深層学習を用いた機械学習の一例として、非特許文献3に記載されたニューラルネットワーク(Neural Network(NN)))を用いた例を簡単に説明する。
【0013】
図17は、非特許文献3におけるNNの概要を示すブロック図である。
【0014】
図17に示すNNは、次のような構成を備える。
Residual Netowrk(ResNet);
ピラミッド型特徴量ネットワーク(Feature Pyramid Network(FPN));
クラス分類層(Classification);及び
回帰層(Regression)。
【0015】
ResNet及びFPNを合わせた構成は、「Fully Convolutional Network(FCN)」と呼ばれる手法を用いて特徴量を抽出する層(以下、「特徴量抽出層」とも呼ぶ)を構成する。
【0016】
また、クラス分類層及び回帰層は、それぞれを一つずつ含む組(set)を構成する。
図17に示されている構成は、クラス分類層及び回帰層で構成された複数の組を含む。なお、クラス分類層及び回帰層は、それぞれも、ネットワーク構成となっているため、
図17において「subnet」と表示されている。また、BBを用いる例示となっているため、
図17において、回帰層は、「Box Regression」と表示されている。
【0017】
非特許文献3において、処理対象の画像(Image)は、特徴量抽出層(FCN)のResNetに入力される。ResNet及びFPNは、協働して、入力された画像の特徴量を計算する。
【0018】
算出された特徴量は、各組を構成するクラス分類層及び回帰層に入力される。各組のクラス分類層及び回帰層は、それぞれ、クラスの分類処理及び回帰処理(位置の検出処理)を実行する。そして、クラス分類層及び回帰層は、それぞれ、検出対象物体のクラス及び位置(BB)を出力する。ただし、各組のクラス分類層及び回帰層は、組ごとに、異なる領域及びサイズの対象物に対するクラス及び位置を出力する。
【0019】
図18は、非特許文献3における機械学習の動作の概要を説明するためのフロー図である。なお、実際の機械学習においては、所定の装置又はプログラムが、機械学習の処理を実行する。つまり、機械学習の動作の主体は、ハードウェアの場合もあり、ソフトウェアの場合もある。ただし、以下の
図18を用いた説明では、説明の便宜のため、動作の主体の示す用語として、「機械学習」を用いる。実際の動作においては、「機械学習」として説明した動作を、ハードウェア(例えば、コンピュータ)又はソフトウェア(例えば、コンピュータ上で動作する仮想マシン)が実行する。
【0020】
図18において、機械学習は、正解データとして、学習用の画像群と、各画像における検出対象物体に関する情報とを取得する。そして、機械学習は、所定の終了条件を満足するまで、以下で説明する動作を繰り返し実行する。なお、以下の説明において、繰り返し実行される処理における各サイクルを、「イテレーション(iteration)」と呼ぶ場合もある。
【0021】
終了条件は、所定の知見に基づいて決定される。例えば、終了条件として、次のような条件が用いられる。
(1)繰り返し回数(イテレーションの回数)が、所定の閾値を超える。
(2)イテレーション間において、学習結果における学習精度の改善量が、所定の閾値未満となる。
(3)学習結果と正解データとの誤差(ロス)が、所定の閾値未満となる。
(4)イテレーション間において、学習結果と正解データとの誤差(ロス)の減少量が、所定の閾値未満となる。
【0022】
まず、機械学習は、正解データを取得する(ステップS901)。そして、機械学習は、正解データから学習用の画像と、各画像内における検出対象物体に関する情報とを取得する。なお、機械学習は、画像ごとに処理してもよく、複数の画像をまとめて処理してもよい。
【0023】
さらに、機械学習は、異なるイテレーションにおいて、同じ画像を用いてもよい。つまり、機械学習は、学習データとして、同じ画像を複数回使用してもよい。なお、機械学習は、一般的に、学習フェーズにおいて、同じ画像を複数回使用する場合が多い。
【0024】
機械学習は、取得した学習用の画像に対して、前処理を実行する(ステップS902)。前処理は、機械学習の結果の精度を改善するために実行される。そのため、前処理は、検出対象物体、機械学習に用いられる画像、及び機械学習の手法に対応して決定される。例えば、前処理は、画像のサイズの変更、所定方向の拡大又は縮小、画像の変形、歪みの補正、ノイズの除去、画像の一部の切り出し、反転(左右及び/又は上下)、及び/又は、色味の変更である。
【0025】
機械学習は、前処理を施した画像を、特徴量抽出層に入力する。特徴量抽出層は、画像における特徴量を抽出する(ステップS903)。
【0026】
クラス分類層及び回帰層は、抽出された特徴量を用いて、それぞれ、クラスの分類処理、及び、回帰処理を実行する(ステップS904)。なお、この動作の結果が、機械学習の推論結果である。
【0027】
機械学習は、推論結果(例えば、クラス及びBB)と、学習に用いた画像における検出対象物体に関する情報(例えば、正解のクラス及び正解のBB)とを比較し、誤差(ロス)を計算する(ステップS905)。
【0028】
機械学習は、ロスに基づいて、クラス分類層及び回帰層における勾配を計算し、勾配に基づいてクラス分類層及び回帰層の重みを更新する(ステップS906)。なお、ここにおける勾配とは、各層に対応した評価関数(例えば、損失関数)の勾配である。
【0029】
さらに、機械学習は、特徴量抽出層についても勾配を計算し、勾配に基づいて特徴量抽出層における重みを更新する(ステップS907)。
【0030】
ステップS906及びS907の動作は、機械学習における誤差逆伝搬(backpropagation)である。機械学習は、誤差逆伝搬を用いて、各層の重みを更新する(重みを学習する)。
【0031】
なお、重みの更新は、全ての層においてではなく、一部の層において実行されてもよい。
【0032】
例えば、特徴量抽出層の重みは、更新されなくてもよい(学習されなくてもよい)。この場合、機械学習は、ステップS907を含まなくてもよい。
【0033】
このような機械学習の結果として得られた重みを持つNNが、学習済みモデルである。
【先行技術文献】
【特許文献】
【0034】
【文献】特開2020-027424号公報
【文献】特開2019-185751号公報
【非特許文献】
【0035】
【文献】Shaoqing Ren, Kaiming He, Ross Girshick, Jian Sun, "Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks", [online], 6 January 2016, Cornel University, [2019年10月16日検索], インターネット<URL:https://arxiv.org/abs/1506.01497>
【文献】Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg, "SSD: Single Shot MultiBox Detector", [online], 29 December 2016, Cornel University, [2019年10月16日検索], インターネット, <URL:https://arxiv.org/abs/1512.02325>
【文献】Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He, Piotr Dollar, "Focal Loss for Dense Object Detection", [online], 2 February 2018, Cornel University, [2019年10月16日検索], インターネット, <URL:https//arxiv.org/abs/1708.02002>
【発明の概要】
【発明が解決しようとする課題】
【0036】
物体検出タスクにおける機械学習は、一般に、計算の負荷が高く、長い処理時間を必要とする。
【0037】
例えば、
図18を用いて説明した機械学習では、ステップS903、S904、S906、及びS907の動作が、計算の負荷が高い動作である。
【0038】
計算の負荷を減らす手法として、次のような手法がある。
【0039】
画像を用いる機械学習は、学習フェーズにおいて、同じ画像を複数回使用する場合が多い。そこで、各画像の機械学習における計算結果を保存し、保存した計算結果を再利用して計算処理の負荷を削減する手法が、用いられている。
【0040】
ここで、
図17及び
図18を用いて説明した機械学習において、上記の手法を適用する場合を想定する。例えば、特徴量抽出層の計算結果に、上記の手法を適用する場合を想定する。具体的には、特徴量抽出層が計算した特徴量を再利用する場合を想定する。つまり、特徴量抽出層が、画像に対して特徴量を算出すると、それ以降、機械学習は、その画像については学習済みの画像として特徴量を計算せずに、算出済みの特徴量を用いる動作を想定する。
【0041】
この場合、特徴量抽出層の計算結果である特徴量が、再利用の対象である。特徴量を再利用する場合、機械学習は、算出済みの画像に対して、ステップS903の動作を省略できる。つまり、機械学習は、ステップS903の実行回数を減らすことができる。その結果、機械学習における計算負荷が、低減される。
【0042】
機械学習は、同じ画像を複数回(一般的に、数十回から数百回)使用する場合多い。画像に対する特徴量を再利用した場合、機械学習は、特徴量の計算の回数を(例えば、数十分の一から数百分の一に)減らすことができる。
【0043】
しかし、
図18において、機械学習は、特徴量の抽出の前に、画像の前処理を実行する。
【0044】
そして、学習用のデータの生成において、前処理は、各イテレーションにおいて同じ処理とは限らない。前処理は、各イテレーションにおいて異なる処理となる場合が多い。そのため、前処理が実行された画像は、各イテレーションにおいて、異なる画像となる。
【0045】
このように、同じ画像を用いた場合でも、各イテレーションにおいて、特徴量抽出層に入力される画像は、異なる画像となる。その結果、特徴量抽出層が算出する特徴量は、イテレーションごとに異なる。つまり、
図17及び
図18に示される機械学習は、特徴量抽出層が抽出する特徴量を再利用できない。
【0046】
画像の前処理を行わない場合、機械学習は、特徴量抽出層が抽出する特徴量を再利用できる。
【0047】
しかし、画像の前処理を行わない場合、学習結果の精度が悪くなる可能性がある。
【0048】
特に、物体検出タスクは、画像における前処理の影響が大きい。
【0049】
例えば、クラス分類のタスクは、画像におけるクラス分類の対象となる物体の位置及び向きがある程度既知となっている場合が多い。
【0050】
そのため、クラス分類のタスクにおいて、画像の前処理は、クラス分類の結果の精度に対する影響が比較的小さい。
【0051】
例えば、特許文献1において、不良部の位置は、良品(例えば、缶)の範囲内である。また、不良部の形状の変化は、回転と、拡大又は縮小との組み合わせである。
【0052】
これに対し、物体検出タスクは、検出対象物体のクラスに加え、位置を検出する。そして、物体検出タスクにおいて、検出対象物体の位置及び向きは、バリエーションの範囲が広くなる場合が多い。例えば、道路の画像における車が検出対象物体の場合、事故及び違反などを想定すると、車の位置及び向きは、画像中において決定できない。例えば、車は、逆走する場合もあり、道路外に飛び出すこともあり、転倒する場合もある。
【0053】
そのため、物体検出タスクでは、検出対象物体の検出精度に対する画像の前処理の影響が、比較的大きくなる。
【0054】
このように、物体検出タスクは、クラス分類のタスクなどに比べ、画像の前処理の影響が大きい。つまり、一般的な物体検出タスクにおいては、学習結果の精度を確保するため、画像の前処理が必要となる。
【0055】
このように、一般的な物体検出タスクは、画像の前処理が必要なため、学習結果における計算結果の再利用が難しい。そのため、一般的な物体検出タスクは、処理(特に、画像の前処理)に関連する負荷の軽減が難しいという問題点があった。
【0056】
特許文献1に記載の技術は、不良部の画像データを良品の画像データに合成するものであり、機械学習における画像の前処理の負荷に関連する技術ではない。
【0057】
特許文献2に記載の技術は、モデルの特徴量と患者のデータの特徴量とを用いて機械学習のモデルを生成するものであり、機械学習における前処理の負荷に関連する技術ではない。
【0058】
非特許文献1ないし3に記載の技術は、画像を用いた学習処理に関連する技術であり、画像の前処理に関連するものではない。
【0059】
このように、特許文献1及び2、並びに、非特許文献1ないし3に記載の技術は、上記問題点を解決できない。
【0060】
本発明の目的は、上記問題点を解決し、機械学習における処理の負荷を軽減する情報処理装置などを提供することにある。
【課題を解決するための手段】
【0061】
本発明の一形態における情報処理装置は、
機械学習の対象となる物体を含む対象領域と、機械学習の対象となる物体を含まない背景領域とを含む画像の集合であるベースデータセットから、ベース画像を選択し、選択したベース画像の複製である処理対象画像を生成するベース画像選択手段と、
ベースデータセットに含まれる他の画像に含まれる対象領域を選択する対象領域選択手段と、
選択した対象領域の画像と対象領域の画像に含まれる機械学習の対象となる物体に関する情報とを処理対象画像に合成する画像合成手段と、
ベース画像選択手段と、対象領域選択手段と、画像合成手段とを制御して、所定数の対象領域を合成した処理対象画像の集合であるデータセットを生成するデータセット生成制御手段と、
データセットに含まれる画像の特徴量を計算する特徴量計算手段と、
特徴量とデータセットとを用いた機械学習である第1の機械学習を用いて、学習済みモデルを生成する学習実行手段と、
特徴量計算手段と学習実行手段とを制御して生成した学習済みモデルを出力する学習処理制御手段と
を含む。
【0062】
本発明の一形態における情報処理方法は、
機械学習の対象となる物体を含む対象領域と、機械学習の対象となる物体を含まない背景領域とを含む画像の集合であるベースデータセットから、ベース画像を選択し、選択したベース画像の複製である処理対象画像を生成し、
ベースデータセットに含まれる他の画像に含まれる対象領域を選択し、
選択した対象領域の画像と対象領域の画像に含まれる機械学習の対象となる物体に関する情報とを処理対象画像に合成し、
所定数の対象領域を合成した処理対象画像の集合であるデータセットを生成し、
データセットに含まれる画像の特徴量を計算し、
特徴量とデータセットとを用いた機械学習である第1の機械学習を用いて、学習済みモデルを生成し、
生成した学習済みモデルを出力する。
【0063】
本発明の一形態におけるプログラムは、
機械学習の対象となる物体を含む対象領域と、機械学習の対象となる物体を含まない背景領域とを含む画像の集合であるベースデータセットから、ベース画像を選択し、選択したベース画像の複製である処理対象画像を生成する処理と、
ベースデータセットに含まれる他の画像に含まれる対象領域を選択する処理と、
選択した対象領域の画像と対象領域の画像に含まれる機械学習の対象となる物体に関する情報とを処理対象画像に合成する処理と、
所定数の対象領域を合成した処理対象画像の集合であるデータセットを生成する処理と、
データセットに含まれる画像の特徴量を計算する処理と、
特徴量とデータセットとを用いた機械学習である第1の機械学習を用いて、学習済みモデルを生成する処理と、
生成した学習済みモデルを出力する処理と
をコンピュータに実行させる。
【発明の効果】
【0064】
本発明を用いれば、機械学習における処理の負荷を軽減するとの効果を奏することができる。
【図面の簡単な説明】
【0065】
【
図1】
図1は、第1の実施形態にかかる情報処理装置の構成の一例を示すブロック図である。
【
図2】
図2は、第1の実施形態にかかるデータセット生成部の構成の一例を示すブロック図である。
【
図3】
図3は、第1の実施形態にかかる学習処理部の構成の一例を示すブロック図である。
【
図4】
図4は、第1の実施形態にかかる情報処理装置における機械学習の動作の一例を示すフロー図である。
【
図5】
図5は、第1の実施形態にかかる情報処理装置におけるデータセット生成部の動作の一例を示すフロー図である。
【
図6】
図6は、第2の実施形態にかかる情報処理装置の構成の一例を示すブロック図である。
【
図7】
図7は、第2の実施形態にかかるデータセット生成部の構成の一例を示すブロック図である。
【
図8】
図8は、第2の実施形態にかかる情報処理装置における機械学習の動作の一例を示すフロー図である。
【
図9】
図9は、第3の実施形態にかかる情報処理装置の構成の一例を示すブロック図である。
【
図10】
図10は、第3の実施形態にかかる学習処理部の構成の一例を示すブロック図である。
【
図11】
図11は、第3の実施形態にかかる学習処理部におけるプロファイリングを用いた機械学習の動作の一例を示すフロー図である。
【
図13】
図13は、第1の実施形態にかかるデータセット生成部が生成する画像を説明するための図である。
【
図14】
図14は、情報処理装置のハードウェア構成の一例を示すブロック図である。
【
図15】
図15は、実施形態の概要の一例を示すブロック図である。
【
図16】
図16は、情報処理装置を含む情報処理システムの構成の一例を示すブロック図である。
【
図17】
図17は、非特許文献3におけるNeural Network(NN)の概要を示すブロック図である。
【
図18】
図18は、非特許文献3における機械学習の動作の概要を説明するためのフロー図である。
【発明を実施するための形態】
【0066】
以下、本発明の実施形態について、図面を用いて説明する。
【0067】
なお、各図面は、実施形態を説明するためのものである。ただし、本発明は、各図面の記載に限られるわけではない。また、各図面の同様の構成には、同じ番号を付し、その繰り返しの説明を、省略する場合がある。また、以下の説明に用いる図面において、実施形態の説明に関係しない部分の構成については、記載を省略し、図示しない場合もある。また、図面中の矢印の方向は、一例を示すものであり、ブロック間の信号の向きを限定するものではない。
【0068】
<第1の実施形態>
以下、図面を用いて、第1の実施形態について説明する。
【0069】
[構成の説明]
まず、第1の実施形態の構成について、図面を用いて説明する。
【0070】
図1は、第1の実施形態にかかる情報処理装置1の構成の一例を示すブロック図である。
【0071】
情報処理装置1は、学習制御部10と、データセット生成部20と、学習処理部30と、データセット記憶部40と、特徴量記憶部50とを含む。なお、
図1に示す構成要素の数及び接続関係は、一例である。例えば、情報処理装置1は、複数のデータセット生成部20、及び/又は、複数の学習処理部30を含んでもよい。
【0072】
なお、情報処理装置1は、CPU(Central Processing Unit)、メインメモリ、及び二次記憶装置を含むコンピュータ装置を用いて構成されてもよい。この場合、
図1に示されている情報処理装置1の構成要素は、CPUなどを用いて実現される機能の構成要素である。ハードウェア構成については、後ほど説明する。
【0073】
学習制御部10は、情報処理装置1が機械学習(例えば、物体検出タスクにおける機械学習)を実行するために、各構成を制御する。
【0074】
詳細には、学習制御部10は、データセット生成部20に対して、機械学習に用いるデータセットの生成を指示する。そして、学習制御部10は、学習処理部30に対して、生成されたデータセットを用いた機械学習の実行を指示する。
【0075】
学習制御部10の制御の開始の契機、及び、学習制御部10が各構成に送付する指示にともなうパラメタは、任意である。学習制御部10は、例えば、オペレータから契機及びパラメタを与えられてもよい。あるいは、学習制御部10は、情報処理装置1と通信可能に接続された他の装置(図示されない)からのパラメタなどの情報の送付を契機として、制御を実行してもよい。
【0076】
データセット記憶部40は、指示に基づいて、データセット生成部20及び/又は学習処理部30が用いる情報を保存する。データセット記憶部40は、データセット生成部20及び/又は学習処理部30が生成した情報を保存してもよい。さらに、データセット記憶部40は、パラメタを保存してもよい。
【0077】
例えば、データセット記憶部40は、データセット生成部20が生成したデータセットを保存してもよい。あるいは、データセット記憶部40は、情報処理装置1のオペレータから与えられたベースデータセット(詳細は後述)を保存してもよい。あるいは、データセット記憶部40は、情報処理装置1が、必要に応じて、通信可能に接続された他の装置(図示されない)から受信した情報(例えば、パラメタ、及び/又は、ベースデータセット)を保存してもよい。
【0078】
データセット記憶部40は、機械学習に用いられる情報(例えば、データセット)の保存に加え、機械学習の結果を評価するための情報(例えば、比較用のデータセット)を保存してもよい。
【0079】
なお、以下の説明では、データセット生成部20は、データセット記憶部40が保存するベースデータセットを用いて、データセットを生成する。ただし、第1の実施形態は、これに限定されない。
【0080】
例えば、データセット生成部20は、ベースデータセットの少なくとも一部を、データセット記憶部40とは異なる構成又は外部の装置から取得してもよい。あるいは、データセット生成部20は、ベースデータセットに含まれる検出対象物体に関する情報を、図示しない外部の装置から取得してもよい。
【0081】
なお、ベースデータセット及びデータセットが含む情報は、情報処理装置1における機械学習に沿って設定される。ベースデータセット及びデータセットは、例えば、以下の情報を含む。
(1) 画像(例えば、Joint Photographic Experts Group(JPEG)データ)。
(2) 画像のメタ情報(例えば、タイムスタンプ、データサイズ、画像サイズ、及び/又は、色情報)。
(3) 画像に含まれる検出対象物体(機械学習の対象となる物体)に関する情報。
なお、検出対象物体に関する情報は、任意であるが、例えば、以下の情報を含む。
(3)-1 検出対象物体が含まれる領域(対象領域)の位置:例えば、物体が映っている矩形領域(BB)の4つの頂点の座標。
(3)-2 検出対象物体のクラス(例えば、クラスの識別子、又は、クラスの名称)。
(3)-3 画像当たりの検出対象物体の数。
(4) クラスの識別子と名称との対応関係。
【0082】
データセットは、機械学習に用いられるデータ(例えば、正解データ)である。そのため、データセットに含まれる画像は、一般的に、複数である。例えば、データセットは、数千~数万の画像を含む。
【0083】
なお、画像は、圧縮されたデータでもよい。
【0084】
また、画像の保存の単位は、任意である。画像は、それぞれ、単一のデータファイルとして保存されてもよい。あるいは、複数の画像が、一つのデータのファイルにまとめて保存されてもよい。
【0085】
また、画像は、ディレクトリ又はフォルダのような、階層構造を用いて保存及び管理されてもよい。なお、ベースデータセット及び/又はデータセットが複数の場合、ベースデータセット及び/又はデータセットも、ディレクトリ又はフォルダのような、階層構造を用いて保存及び管理されてもよい。
【0086】
データセット生成部20は、検出対象物体の画像を含むデータ(以下、「ベースデータセット」と呼ぶ)に基づいて、学習処理部30における機械学習に用いられるデータセットを生成する。データセット生成部20は、生成したデータセットを、データセット記憶部40に保存してもよい。
【0087】
より詳細には、データセット生成部20は、ベースデータセットの指定と、データセットの生成に係るパラメタとを、学習制御部10から受け取り、データセットを生成する。
【0088】
なお、ベースデータセットは、機械学習の対象となる検出対象物体を含む画像の領域(対象領域)と、機械学習の対象となる検出対象物体を含まない領域(以下、「背景領域」と呼ぶ)とを含む画像の集合である。
【0089】
データセット生成部20は、ベースデータセットに基づいて、以下に示す動作を用いて、機械学習に用いられるデータセットを生成する。
(1) データセット生成部20は、ベースデータセットから、以下の処理において基礎(ベース)となる画像(以下、「ベース画像」と呼ぶ)を選択する。なお、データセット生成部20は、複数のベース画像を選択してよい。そして、データセット生成部20は、選択したベース画像の複製(以下、「処理対象画像」と呼ぶ)を生成する。なお、データセット生成部20は、処理対象画像の検出対象物体に関する情報として、ベース画像に含まれる検出対象物体に関する情報を複製する。
(2) データセット生成部20は、処理対象画像に対して、以下の動作を適用して、処理対象画像に対象領域を合成する。
(2)-1 データセット生成部20は、ベースデータセットに含まれる他の画像(選択したベース画像とは異なる画像)を選択し、選択した他の画像から機械学習の対象となる検出対象物体を含む領域(対象領域)を選択する。選択した他の画像が複数の対象領域を含む場合、データセット生成部20は、1つの対象領域を選択してもよく、複数の対象領域を選択してもよい。
(2)-2 データセット生成部20は、選択した対象領域の画像を、処理対象画像に合成する。
(3) データセット生成部20は、合成後の処理対象画像の集合であるデータセットを生成する。
(4) データセット生成部20は、生成したデータセットを、学習処理部30に送信、又は、データセット記憶部40に保存する。
【0090】
なお、データセット生成部20は、対象領域を処理対象画像に合成する前に、対象領域を変形してもよい。
【0091】
例えば、データセット生成部20は、対象領域の形状(例えば、幅、高さ、サイズ、又は、アスペクト比(画像の高さと幅の比率))を変形してよい。あるいは、データセット生成部20は、対象領域に対して、上記以外の変形(例えば、画像の回転(向きの変更)、画像の傾斜、台形変形、樽型・糸巻型収差補正、及び/又は、色収差補正)を適用してもよい。あるいは、データセット生成部20は、対象領域に対して、所定の画像処理(例えば、ノイズ除去、及び/又は、エッジ強調処理)を実行してもよい。
【0092】
なお、データセット生成部20は、対象領域に含まれる検出対象物体の領域(以下、「前景」と呼ぶ)と、検出対象物体を含まない領域(以下、「背景」と呼ぶ)とを切り分けて、処理してもよい。例えば、データセット生成部20は、対象領域から前景を切り出し、切り出した前景を処理対象画像に合成してもよい。つまり、データセット生成部20は、背景を処理対象画像に合成しなくてもよい。
【0093】
なお、データセット生成部20は、切り出した前景に所定の処理を実行し、処理後の前景を処理対象画像に合成してもよい。
【0094】
なお、前景と背景とを切り分ける手法については、後ほど説明する。
【0095】
あるいは、データセット生成部20は、対象領域に対して、合成先の画像に合わせるための処理(例えば、合成先に合わせるための回転、変形、及び/又は、色(色味、明度、彩度など)の修正)を適用してもよい。
【0096】
あるいは、データセット生成部20は、学習処理部30で実行する機械学習の精度を向上するような変形を用いて、対象領域を変形してもよい。
【0097】
処理対象画像に対象画像を合成後、データセット生成部20は、処理対象画像における検出対象物体に関する情報に、合成した対象領域における検出対象物体に関する情報(例えば、検出対象物体のBB、及び、クラス)を追加する。このように、データセット生成部20が生成するデータセットは、処理対象画像に追加された検出対象物体に関する情報を含んでいる。
【0098】
このような動作を用いて、データセット生成部20は、一般的な機械学習における前処理において得られる効果(機械学習の精度向上)に相当する効果が得られるように、データセットを生成する。
【0099】
そのため、学習処理部30は、画像に対する前処理を実行しなくて、検出対象物体に関する情報を用いてデータセットに含まれる画像の特徴量の算出処理、クラス分類処理、回帰処理を精度よく実行できる。
【0100】
なお、対象領域に対して所定の処理を実行している場合、データセット生成部20は、処理の結果を反映した検出対象物体に関する情報を、処理対象画像の検出対象物体に関する情報に追加する。
【0101】
データセット生成部20における動作の詳細については、後述する。
【0102】
学習処理部30は、データセット生成部20が生成したデータセットを用いて、以下に示す動作を用いて、機械学習を実行する。
(1)学習処理部30は、データセット生成部20が生成したデータセット(例えば、データセット記憶部40に保存されたデータセット)に含まれる各画像に対する特徴量を計算する。学習処理部30は、計算した特徴量を、データセットの画像に関連付けて、特徴量記憶部50に保存する。なお、学習処理部30は、特徴量を特徴量記憶部50に保存する前に、特徴量に対して所定の処理(例えば、圧縮処理)を実行してもよい。
(2)学習処理部30は、算出した特徴量を用いて、データセット生成部20が生成したデータセットの機械学習を実行し、学習済みモデル(例えば、物体検出モデル)を生成する。
【0103】
このように、学習処理部30は、実際の学習処理の実行に先立ち、データセットに含まれる各画像に対する特徴量を計算する。そして、学習処理部30は、算出した特徴量と、データセットとを用いて、機械学習を実行する。
【0104】
なお、情報処理装置1が用いる特徴量は、任意である。例えば、情報処理装置1は、CNN(Convolutional Neural Network)を用いて計算した特徴量を用いてもよい。あるいは、他の例として、情報処理装置1は、「Histograms of Oriented Graduients(HOG)特徴量」、又は、「Scale-Invariant Feature Transform(SIFT)特徴量」を用いてもよい。
【0105】
学習処理部30における動作の詳細は後述する。
【0106】
なお、学習処理部30は、機械学習として、深層学習を用いてもよい。
【0107】
さらに、学習処理部30は、機械学習の結果を評価してもよい。例えば、学習処理部30は、機械学習の結果における検出対象物体の認識精度を算出してもよい。
【0108】
そして、学習処理部30は、生成した学習済みモデルを所定の記憶部(例えば、データセット記憶部40)に保存する。あるいは、学習処理部30は、生成した学習済みモデルを所定の装置(例えば、学習済みモデルを用いて画像中の検出対象物体を検出する装置)に送信する。
【0109】
特徴量記憶部50は、指示に基づいて、学習処理部30が計算した特徴量、つまり、データセットに含まれる画像の特徴量を保存する。
【0110】
なお、特徴量記憶部50は、特徴量に加え、特徴量に関連する情報を保存してもよい。例えば、特徴量記憶部50は、特徴量に関連する情報として、特徴量を算出した画像に関連する情報、及び/又は、特徴量を算出した画像を含むデータセットに関連する情報を保存してもよい。
【0111】
あるいは、特徴量記憶部50は、特徴量を算出した処理(例えば、NNの層)に関連する情報を保存してもよい。
【0112】
なお、データセット記憶部40が、データセットに含まれる画像の特徴量を保存してもよい。つまり、データセット記憶部40が、特徴量記憶部50の機能を含んでもよい。この場合、情報処理装置1は、物理的な構成として、特徴量記憶部50を含まなくてもよい。
【0113】
次に、第1の実施形態におけるデータセット生成部20の構成について、図面を用いて説明する。
【0114】
図2は、第1の実施形態にかかるデータセット生成部20の構成の一例を示すブロック図である。
【0115】
データセット生成部20は、データセット生成制御部21と、ベース画像選択部22と、対象領域選択部23と、画像合成部24とを含む。
【0116】
データセット生成制御部21は、データセット生成部20に含まれる各構成を制御して、ベースデータセットから、所定数の処理対象画像を生成し、生成した処理対象画像の集合であるデータセットを生成する。
【0117】
例えば、データセット生成制御部21は、学習制御部10から、ベースデータセット及びデータセットの生成に係るパラメタを受け取り、データセット生成部20における各部を制御し、データセットを生成する。
【0118】
なお、パラメタは、生成するデータセットに合わせて決定される。データセット生成制御部21は、例えば、データセットの生成にかかるパラメタとして、以下の情報を用いてもよい。
(1) 生成する処理対象画像の数(生成するデータセットに含まれる画像の数)。
(2) 合成する対象領域の最大数。
(3) 合成する対象領域の変形に関連する情報。
【0119】
変形に関連する情報は、適用する変形に応じて、設定されればよい。変形に関連する情報は、例えば、対象領域を変形するか否かを示す情報と、変形する場合の変形に関連する値とである。
【0120】
なお、変形に関連する値は、個別の値ではなく、範囲を示す値でもよい。例えば、データセット生成制御部21が乱数を用いて対象領域を変形する場合、変形に関連する値は、乱数のシード、及び、その乱数値(例えば、乱数のシードを用いる乱数発生関数(又はモジュール)が発生する値)の範囲でもよい。なお、乱数のシードとしては、固定値、又は、乱数を生成する構成(例えば、乱数生成モジュール)の標準値(デフォルト(default)値)が用いられてもよい。この場合、データセット生成制御部21は、変形に関連する値として、乱数値の範囲を用いてもよい。
【0121】
なお、対象領域の変形に関連する乱数値の範囲としては、例えば、次のような範囲がある。
(1) 対象領域の幅を変更する場合、幅に乗じる乱数値の範囲。
(2) 対象領域の高さを変更する場合、高さに乗じる乱数値の範囲。
(3) 対象領域のサイズを変更する場合、サイズに乗じる乱数値の範囲。
(4) 対象領域のアスペクト比を変更する場合、変更後のアスペクト比として用いる乱数値の範囲。
(5) 対象領域を回転させる場合、回転させる角度として用いる乱数値の範囲。
(6) 対象領域を傾斜させる場合、傾斜の角度として用いる乱数値の範囲。
【0122】
さらに、データセット生成制御部21は、対象領域の変形に関連する情報として、次のような情報を用いてもよい。
(1) 対象領域を合成する際に、左右を反転させるか否か示す情報。
(2) 対象領域を合成する際に、上下を反転させるか否か示す情報。
【0123】
なお、データセット生成制御部21は、対象領域の左右及び/又は上下の反転を、固定的ではなく、ランダム的に、実行するように制御してもよい。例えば、データセット生成制御部21は、図示しない構成から乱数値を取得し、取得した乱数値が所定の閾値を超えた場合に反転を実行し、閾値以下の場合に反転を実行しないように制御してもよい。
【0124】
さらに、データセット生成制御部21は、対象領域の前景を用いるか、対象領域のすべてを用いるかを示す情報を用いてもよい。
【0125】
なお、対象領域の最大数の設定範囲は、任意である。例えば、最大数は、データセット当たりの最大数、後述するサブセット当たりの最大数、画像当たりの最大数、クラス当たりの最大数、又は、画像のサイズ当たりの最大数である。
【0126】
データセット生成制御部21は、データセットの生成において、合成する対象領域の最大数として、パラメタとして受信した値を用いればよい。
【0127】
ただし、データセット生成制御部21は、パラメタとして、最大値を算出するための値を受信してもよい。例えば、データセット生成制御部21は、最大値として、受信したパラメタの値をシードとする乱数値を用いてもよい。
【0128】
データセット生成制御部21は、処理対象画像ごとに、乱数値を用いた最大値の算出を実行してもよい。
【0129】
なお、データセット生成制御部21は、パラメタとして、受信したパラメタを最大値として用いるか、最大値を算出するための値として用いるかを指定するパラメタを受信してもよい。
【0130】
ベース画像選択部22は、ベースデータセットからベース画像を選択して、ベース画像の複製である処理対象画像を生成する。なお、ベース画像選択部22は、処理対象画像の検出対象物体に関する情報に、ベース画像に含まれる検出対象物体に関する情報を複製する。
【0131】
なお、ベース画像選択部22は、ベース画像を選択する前に、所定の処理を実行してもよい。
【0132】
例えば、ベース画像選択部22は、ベースデータセットに含まれる画像を、所定の基準(例えば、背景領域の類似度)に基づいて、複数の画像群(以下、「サブセット」と呼ぶ)に分割してもよい。
【0133】
ベース画像選択部22における背景領域の類似の判定手法は、対象となる画像に沿って選択されればよい。
【0134】
ベース画像選択部22は、例えば、以下の情報、又は、情報の組合せを用いて、背景領域の類似を判定してもよい。
(1) 情報処理装置1のオペレータの指定(指定された画像は、背景が類似しているとみなす)。
(2) ベースデータセットの画像に設定されている情報(例えば、撮影位置が同じ画像は、背景が類似しているとみなす)。
(3) 画像が保存されている論理的な位置(例えば、同じディレクトリに保存されている画像は、背景が類似しているとみなす)。
(4) 画像の取得情報(例えば、タイムスタンプが近い画像は、背景が類似しているとみなす)。
(5) 画素値の差(例えば、画像間の画素値を比較し、差異が所定の閾値以下の画像は、背景が類似しているとみなす)。
(6) 背景部分の類似度(例えば、画像における背景領域を抜き出し、抜き出した背景領域の画像の特徴量における類似度が所定の閾値以上の画像は、背景が類似しているとみなす)。
【0135】
なお、ベース画像選択部22は、所定の情報(例えば、対象領域からの距離、又は、背景領域に含まれる物体)を用いて、比較する背景領域の範囲を選択してもよい。ただし、ベース画像選択部22は、背景領域として、対象領域以外の全ての領域を用いてもよい。
【0136】
【0137】
図12に示されているサブセットは、9枚の画像を含む。そして、
図12に示されている画像は、3つのサブセットに分割されている。
【0138】
サブセット1及びサブセット2は、同じカメラが撮影した画像である。ただし、サブセット1に含まれる画像は、サブセット2に含まれる画像とは、撮影された時間帯が異なる。その結果、サブセット1に含まれる画像の背景は、サブセット2に含まれる画像の背景とは異なる。そのため、サブセット1に含まれる画像は、サブセット2に含まれる画像とは、別のサブセットとなる。
【0139】
サブセット3に含まれる画像は、サブセット1及び2を撮影したカメラとは別のカメラが撮影した画像である。サブセット3に含まれる画像の背景は、サブセット1及び2に含まれる画像の背景とは異なる。そのため、サブセット3に含まれる画像は、サブセット1及びサブセット2に含まれる画像とは、別のサブセットに分割されている。
【0140】
なお、セブセットの数は、任意である。セブセットの数は、2つでもよく、4つ以上でもよい。
【0141】
ベース画像選択部22は、ランダムにベース画像を選択してもよい。あるいは、ベース画像選択部22は、ベース画像の選択において、所定の基準を用いてもよい。ただし、ベース画像選択部22が用いる基準は、任意である。例えば、ベース画像選択部22は、以下のいずれかの基準、又は、基準の組合せを用いて、ベース画像を選択してもよい。
【0142】
(1) サブセットの画像の数
ベース画像選択部22は、ベース画像の選択において、各サブセットから選択する画像の数が、同じ数、又は、所定の差の範囲に入るように選択してもよい。
【0143】
例えば、ベース画像選択部22は、サブセットから選択する画像の数として、選択するベース画像の数をサブセットの数で割った値を、各サブセットに割り当てる。なお、整数に割り切れない場合、ベース画像選択部22は、合計数が選択するベース画像の数となるように、割った値を適切な整数に丸め、サブセットに割り当てればよい。
【0144】
そして、ベース画像選択部22は、ベース画像の選択において、各サブセットの中から、サブセットに割り当てた値の数の画像を選択する。なお、ベース画像選択部22は、所定の規則(例えば、ラウンドロビン、又は、ランダム)に沿って、サブセットにおける画像を選択する。
【0145】
なお、サブセットから選択する画像の数は、情報処理装置1のオペレータから指定されてもよい。あるいは、サブセットから選択する画像の数は、サブセットに含まれる画像の数に比例した値でもよい。
【0146】
(2) ベース画像の分散
ベース画像選択部22は、使用するベース画像が分散するようにベース画像を選択してもよい。例えば、ベース画像選択部22は、選択したベース画像の履歴を保存し、履歴に保存されたベース画像(過去に選択したベース画像)を選択しないように、ベース画像を選択してもよい。
【0147】
ただし、ベース画像選択部22は、他の情報(例えば、時間帯、又は、場所)が分散するように、ベース画像を選択してよい。
【0148】
(3) 対象領域の数
ベース画像選択部22は、ベース画像として、対象領域を多く含む画像を選択してもよい。
【0149】
あるいは、ベース画像選択部22は、所定のクラスの物体を含む対象領域を多く含む画像を優先的に選択してもよい。
【0150】
なお、所定のクラスは、例えば、下記である。
(a) オペレータに指定されたクラス。
(b) ベースデータセット又は生成中のデータセットにおいて出現頻度が少ないクラス。
【0151】
(4) 対象領域の種類
ベース画像選択部22は、画像に含まれる対象領域の種類(例えば、含まれる検出対象物体のクラス、サイズ、及び/又は画質)が多くなるように、ベース画像を選択してもよい。
【0152】
例えば、背景領域が少ない画像が多い場合、画像に含まれる対象領域が多いと想定される。そして、対象領域が多い場合、対象領域の種類も多くなる場合が多い。そこで、ベース画像選択部22は、背景領域が少ない画像が多くなるように、ベース画像を選択してもよい。
【0153】
そして、ベース画像選択部22は、選択したベース画像の複製(処理対象画像)を生成する。なお、ベース画像選択部22は、処理対象画像の検出対象物体に関する情報として、ベース画像に含まれる検出対象物体に関する情報を複製する。
【0154】
対象領域選択部23は、処理対象画像に合成する対象領域を選択する。より詳細には、対象領域選択部23は、ベースデータセットにおいて、処理対象画像の複製元のベース画像とは異なる画像を選択し、選択した画像において、処理対象画像の背景領域に合成する対象領域を選択する。
【0155】
対象領域選択部23は、予め設定された規則に沿って対象領域を選択する。対象領域選択部23は、例えば、以下のいずれかの選択、又は、選択の組合せを用いて、対象領域を選択する。
(1) 対象領域選択部23は、生成中の処理対象画像の背景部分に収まる対象領域を選択する。
(2) 対象領域選択部23は、ベース画像と同じサブセットに含まれる他の画像から、対象領域を選択する。
(3) 対象領域選択部23は、検出対象物体のクラスの選択回数が可能な範囲で均等となるように、対象領域を選択する。
(4) 対象領域選択部23は、各対象領域の選択回数が、可能な範囲で均等となるように、対象領域を選択する。
(5) 対象領域選択部23は、所定のクラスの検出対象物体を含む対象領域を優先的に選択する。例えば、対象領域選択部23は、学習処理部30における機械学習の対象として適切な検出対象物体に関連するクラスに含まれる検出対象物体を含む対象領域を、優先的に選択してもよい。なお、所定のクラスは、任意であるが、例えば、下記のようなクラスでもよい。
(a) 情報処理装置1のオペレータが指定したクラス。
(b) ベースデータセット又は生成中のデータセットにおいて出現頻度が少ないクラス。
(6) 対象領域選択部23は、所定のサイズの対象領域を優先的に選択する。例えば、対象領域選択部23は、学習処理部30における機械学習において有効となるサイズの対象領域を選択してもよい。なお、所定のサイズは、任意であるが、例えば、下記のようなサイズでもよい。
(a) 情報処理装置1のオペレータが指定したサイズ。
(b) ベースデータセット又は生成中のデータセットにおいて出現頻度が少ないサイズ。
(7) 対象領域選択部23は、機械学習に有効な形状(例えば、矩形の縦横比)の対象領域を優先的に選択してもよい。
【0156】
なお、対象領域選択部23は、選択した対象領域の形状を変更してもよい。
【0157】
対象領域の形状を変更する処理は、任意である。例えば、対象領域選択部23は、以下の形状の変更のいずれか、又は、組み合わせを用いてもよい。
(1) 対象領域の幅を、元の幅に乱数値を乗算した幅とする。
(2) 対象領域の高さを、元の高さに乱数値を乗算した高さとする。
(3) 対象領域のサイズを、元のサイズに乱数値を乗算したサイズとする。
(4) 対象領域のアスペクト比を、元のアスペクト比に乱数値を乗算したアスペクト比とする。
(5) 対象領域を、乱数値の角度で回転する。
(6) 対象領域を、乱数値の角度で傾斜させる(例えば、台形変形)。
【0158】
なお、対象領域選択部23は、上記の処理における乱数値を、パラメタとして受信してもよく、図示しない構成(例えば、図示しない乱数生成モジュール)から取得してもよい。さらに、対象領域選択部23は、対象領域の選択ごとに乱数値を取得してもよく、少なくとも一部の又はすべての対象領域に対して同じ乱数値を用いてもよい。
【0159】
対象領域選択部23は、画像合成部24における対象領域に対する処理に基づいて、対象領域を選択してもよい。例えば、対象領域が合成において拡大される場合、対象領域選択部23は、拡大可能なサイズの対象領域を選択してもよい。
【0160】
なお、画像合成部24における対象領域の処理については、後ほど説明する。
【0161】
画像合成部24は、対象領域選択部23が選択した対象領域を、処理対象画像に合成する。
【0162】
なお、画像合成部24は、対象領域を処理対象画像に合成する位置として、対象領域が含まれていたベース画像における位置と同じ位置に合成してもよく、ベース画像における位置とは異なる位置に合成してもよい。
【0163】
画像合成部24が用いる合成の手法は、任意である。
【0164】
例えば、画像合成部24は、選択された対象領域の画像で、処理対象画像の対応する領域の画像を差し替えても(上書きしても)よい。
【0165】
あるいは、画像合成部24は、処理対象画像の画素値と、対象領域の画像の画素値とを用いて算出した画素値(例えば、平均値)を、処理対象画像に適用してもよい。
【0166】
さらに、画像合成部24は、画像の合成において、所定の画像処理を実行してもよい。所定の画像処理の一例は、画像が合成される領域の境界及びその近辺における画素の補正(ぼかし及び/又は平滑化等)である。
【0167】
なお、対象領域選択部23ではなく、画像合成部24が、合成前に、対象領域に所定の処理を適用してもよい。
【0168】
例えば、画像合成部24は、所定の処理として、処理対象画像を拡大又は縮小してもよい。
【0169】
あるいは、画像合成部24は、所定の処理として、左右反転及び上下反転を対象領域に適用してもよい。画像合成部24は、反転の適用を、ランダムに実行してもよい。例えば、画像合成部24は、0~1の間の乱数値を生成し、生成された値が0.5未満の場合に反転を適用せず、0.5以上の場合に反転を適用してもよい。
【0170】
また、画像合成部24は、対象領域内の前景(検出対象物体)と背景とを切り分け、前景を処理対象画像に合成してもよい。
【0171】
なお、前景を合成する手法は、処理対象画像に合成する対象領域のサイズ又は位置が、対象領域が含まれていたベース画像におけるサイズ又は位置と異なる場合に、特に有効である。
【0172】
画像合成部24が用いる前景と背景との切り分けの手法は、任意である。例えば、画像合成部24は、次のような手法を用いてもよい。
【0173】
まず、画像合成部24は、対象領域の画像の画素値と、処理対象画像における対象領域を合成する位置の画像(つまり、合成後の背景となる画像)とにおける画素値を比較する。なお、対象領域に画像処理を適用する場合、画像合成部24は、対象領域の画像の画素値として、画像処理を適用後の対象領域の画像の画素値を用いる。
【0174】
そして、画像合成部24は、画素値の差が所定の閾値以下である画素を背景とし、画素値の差が所定の閾値を超える画素を前景とする。
【0175】
なお、上記の比較に用いられる所定の閾値は、任意である。例えば、画像合成部24は、情報処理装置1のオペレータから、閾値を指定されてよい。
【0176】
さらに、比較に用いる閾値は、対象領域内の位置(例えば、対象領域の外形が多角形の場合、角部(辺の端部)の近傍部分、辺(辺の中央部)の近傍部分、及び、中央部分)において、異なっていてもよい。
【0177】
画像合成部24は、対象領域と比較する画像として、処理対象画像とは異なる画像を用いてもよい。例えば、画像合成部24は、オペレータから指定された画像を、前景と背景とを切り分けるための比較画像として、用いてもよい。
【0178】
画像合成部24は、画素値の比較において、複数の画素における画素値の比較を用いてもよい。例えば、画像合成部24は、比較用の画素値として、比較対象の画素の値と、その画素を取り囲む8つの画素の値との平均値を用いてもよい。
【0179】
図13は、第1の実施形態にかかるデータセット生成部20が生成する画像を説明するための図である。なお、
図13は、理解の補助として、対象領域を矩形で囲っている。ただし、これは、説明の便宜のためである。データセット生成部20が生成する画像は、対象領域を囲う矩形を含まなくてもよい。
【0180】
図13の左側の画像は、ベース画像(処理対象画像の初期状態)の一例である。
図13の右側の画像は、画像合成部24が合成した画像(対象領域を合成後の処理対象画像)の一例である。
【0181】
なお、画像合成部24は、対象領域を合成後の処理対象画像において、処理対象画像の全体としての整合性を確保しなくてもよい。
【0182】
例えば、
図13の右側の画像において、追加した対象領域における検出対象物体である車は、向き及びサイズが、必ずしも整合していない。さらに、追加された対象領域における車の少なくとも一部は、処理対象画像(
図13のベース画像)の道路に対して、不自然な向きとなっている。
【0183】
ただし、これらの不整合は、学習処理部30における機械学習の結果に対して、あまり影響を与えない。これは、学習処理部30が、データセットに含まれている検出対象物体に関する情報(例えば、BB及びクラス)を用いて、機械学習を実行するためである。
【0184】
次に、第1の実施形態における学習処理部30の構成について、図面を用いて説明する。
【0185】
図3は、第1の実施形態にかかる学習処理部30の構成の一例を示すブロック図である。
【0186】
学習処理部30は、学習処理制御部31と、特徴量計算部32と、学習実行部33とを含む。
【0187】
学習処理制御部31は、学習制御部10からの指示に基づき、学習処理部30に含まれる各構成を制御して、データセットを用いた機械学習を実行する。より詳細には、学習処理制御部31は、特徴量計算部32におけるデータセットに含まれる各画像に関する特徴量の計算と、学習実行部33における特徴量とデータセットとを用いた機械学習の実行とを制御する。
【0188】
特徴量計算部32は、データセットに含まれる各画像に関する特徴量を計算する。そして、特徴量計算部32は、計算した特徴量を、特徴量記憶部50に保存する。
【0189】
なお、データセット生成部20が生成するデータセットは、処理対象画像に含まれる検出対象物体に関する情報を含んでいる。そのため、画像に対する前処理を実行しなくても、特徴量計算部32は、検出対象物体に関する情報を用いて、データセットに含まれる各画像における特徴量を精度よく計算できる。つまり、特徴量計算部32は、画像の前処理を必要としない。
【0190】
なお、特徴量計算部32が計算する特徴量は、学習実行部33が実行する機械学習に対応して決定される。さらに、特徴量計算部32が用いる特徴量の計算の手法は、特徴量に対応して選択されればよい。例えば、学習実行部33が
図17に示されているような構成のNNを用いる場合、特徴量計算部32は、そのNNにおける特徴量抽出層を用いて、データセットに含まれる各画像に関する特徴量を計算してもよい。
【0191】
なお、
図17に示されているようなNNの特徴量抽出層を用いる場合、特徴量計算部32は、特徴量抽出層に画像を入力する前に、画像の前処理を実行しなくてもよい。
【0192】
学習実行部33は、データセットを用いて、所定の機械学習(例えば、物体検出タスクにおける深層学習)を実行する。
【0193】
ただし、学習実行部33は、特徴量計算部32が算出した特徴量を用いて、所定の機械学習を実行する。
【0194】
一般的な物体検出タスクは、機械学習の前において画像の前処理を実行する。例えば、
図17及び
図18に示されている機械学習は、データセットから画像を読み込み、読み込んだ画像に対して前処理を適用する。そして、特徴量抽出層が、前処理を適用した画像を用いて、特徴量を計算する。そして、クラス分類層及び回帰層は、計算された特徴量を用いて、クラスの分類処理及び回帰処理を実行する。
【0195】
これに対し、学習実行部33は、特徴量計算部32が算出した特徴量(例えば、特徴量記憶部50に保存されている特徴量)を用いて機械学習を実行する。つまり、学習実行部33は、機械学習の実行に際して、画像から特徴量を計算しなくても、機械学習を実行できる。そのため、学習実行部33は、機械学習において、画像の前処理を必要としない。
【0196】
なお、学習実行部33は、すでに説明した通り、全ての層でなく、一部の層の学習(例えば、重みの更新)を実行してもよい。例えば、学習実行部33が
図17に示されているNNと同様の構成を用いる場合、学習実行部33は、クラス分類層及び回帰層の重みの更新し、特徴量抽出層の重みを更新しなくてもよい。
【0197】
[動作の説明]
次に、第1の実施形態にかかる情報処理装置1における動作の一例を、図面を用いて説明する。
【0198】
(A)機械学習の動作
図4は、第1の実施形態にかかる情報処理装置1における機械学習の動作の一例を示すフロー図である。
【0199】
情報処理装置1は、所定の条件が充足されたことを契機に動作を開始する。情報処理装置1は、例えば、情報処理装置1のオペレータからの指示を契機に、機械学習を開始する。この場合、機械学習の開始において、情報処理装置1は、オペレータから機械学習に必要なパラメタを受信してもよい。なお、情報処理装置1は、機械学習に必要なパラメタに加え、他のパラメタ及び情報を受信してもよい。例えば、情報処理装置1は、オペレータから、ベースデータセットを受け取ってもよく、データセットの生成に関連するパラメタを受け取ってもよい。
【0200】
学習制御部10は、データセット生成部20に、データセットの生成を指示する。データセット生成部20は、データセットを生成する(ステップS100)。なお、データセット生成部20は、データセットを生成するためのパラメタを受信してもよい。
【0201】
学習制御部10は、学習処理部30に、データセット生成部20が生成したデータセットの各画像について特徴量の計算を指示する。学習処理部30は、データセットの各画像について特徴量を計算する(ステップS101)。そして、学習処理部30は、算出した特徴量を特徴量記憶部50に保存する。なお、学習処理部30は、特徴量の算出に用いるパラメタを受信してもよい。
【0202】
学習制御部10は、さらに、学習処理部30に、データセットと特徴量とを用いた機械学習を指示する。学習処理部30は、データセット生成部20が生成したデータセットと、学習処理部30が計算した特徴量とを用いて、機械学習を実行する(ステップS102)。なお、学習処理部30は、機械学習に用いるパラメタを受信してもよい。
【0203】
情報処理装置1は、学習処理部30での機械学習が終了すると、動作を終了する。
【0204】
なお、学習処理部30は、学習の結果である学習済みモデルを、所定の装置に送信してもよく、データセット記憶部40に保存してもよい。
【0205】
あるいは、学習処理部30は、機械学習の結果を評価してもよい。
【0206】
(B)データセットの生成の動作
次に、図面を用いて、
図4のステップS100において、データセット生成部20がデータセットを生成する動作について説明する。
【0207】
図5は、第1の実施形態にかかる情報処理装置1におけるデータセット生成部20の動作の一例を示すフロー図である。なお、以下の説明では、一例として、データセット生成部20は、データセットの生成のためのパラメタを受信しているとする。ただし、第1の実施形態は、これに限定されるものではない。
【0208】
データセット生成制御部21は、対象領域を合成後の処理対象画像を保存するデータセットを生成する(ステップS110)。例えば、データセット生成制御部21は、処理対象画像を保存するファイル、フォルダ、又はデータベースを生成する。
【0209】
なお、データセット生成制御部21は、処理対象画像に対象領域を合成後に、データセットを生成するように制御してもよい。例えば、データセット生成制御部21は、生成した処理対象画像を個別のファイルとして保存しておき、すべての処理対象画像の生成後に処理対象画像をまとめてデータセットを生成してもよい。
【0210】
なお、データセット生成制御部21は、必要に応じて、データセットを初期化してもよい。あるいは、データセット生成制御部21は、生成したデータセットをデータセット記憶部40に保存してもよい。
【0211】
なお、生成されるデータセットは、
図4のステップS101で実行される特徴量の計算及びステップS102で実行される機械学習に用いられる。そのため、データセット生成制御部21は、用いられる特徴量及び実行される機械学習に対応したデータセットを生成すればよい。
【0212】
例えば、機械学習が物体のクラスの識別子とクラスの名称との対応関係とを用いる場合、データセット生成制御部21は、ベースデータセットに含まれるクラスの識別子とクラスの名称との対応関係を引き継いだデータセットを生成する。この場合、データセット生成制御部21は、ベースデータセットに含まれる他の情報(例えば、メタ情報)の少なくとも一部を引き継がないデータセットを生成してもよい。
【0213】
あるいは、データセット生成制御部21は、学習処理部30で用いる特徴量の計算、又は、機械学習の実行が容易な形式の画像を含むデータセットを生成してもよい。
【0214】
データセット生成制御部21は、所定の条件(例えば、パラメタで指定された条件(以下、「条件1」と呼ぶ))を満たすまで、ループA(ステップS112からS116)を繰り返すように、各構成を制御する(ステップS111)。例えば、データセット生成制御部21は、条件1として、「生成された処理対象画像の数がパラメタで指定された数に達する」との条件を用いてもよい。この場合、データセット生成制御部21は、パラメタで指定された数の処理対象画像を生成するまでループAを繰り返すように、各構成を制御する。
【0215】
ベース画像選択部22は、以下の動作の対象となるベース画像を選択し、選択したベース画像の複製(処理対象画像)を生成する(ステップS112)。
【0216】
そして、データセット生成制御部21は、所定の条件(例えば、パラメタで指摘された条件(以下、「条件2」と呼ぶ))を満たすまで、ループB(ステップS114からS115)を繰り返すように、各構成を制御する(ステップS113)。例えば、データセット生成制御部21は、条件2として、「合成された対象領域の数が、パラメタで指定された数に達する」との条件を用いてもよい。この場合、データセット生成制御部21は、パラメタで指定された数の対象領域を処理対象画像に合成するまでループBを繰り返すように、各構成を制御する。
【0217】
ただし、データセット生成制御部21は、ステップS114からS115までの動作を実行できなくなった場合には、条件2を満たさなくても、ループBを終了してよい。
【0218】
例えば、処理対象画像の背景範囲が狭く、パラメタで指定された数の対象領域を合成できない場合、データセット生成制御部21は、合成可能な範囲で対象領域を合成して、ループBを終了してもよい。
【0219】
対象領域選択部23は、ベースデータセットに含まれる画像の中で対象となっているベース画像以外の画像から、処理対象画像に合成する対象領域を選択する(ステップS114)。なお、サブセットの範囲で対象領域を選択する場合、対象領域選択部23は、サブセットに含まれる画像から対象領域を選択する。
【0220】
対象領域選択部23は、対象領域の形状などを変更してもよい。例えば、対象領域選択部23は、形状などの変更として、対象領域の幅、高さ、サイズ、アスペクト比、回転の角度、傾斜の角度、及び、これの少なくとも一部の項目の組合せを変更してもよい。
【0221】
画像合成部24は、処理対象画像に、ステップS114において選択された対象領域の画像を合成する(ステップS115)。画像合成部24は、さらに、対象領域における検出対象物体に関連する情報(例えば、クラス及びBB)を、処理対象画像における検出対象物体に関連する情報に追加する。
【0222】
なお、合成において、画像合成部24は、対象領域に対して、所定の処理を実行してもよい。例えば、画像合成部24は、対象領域の画像の前景と背景との切り分け、前景を対象処理画像に合成してもよい。
【0223】
条件2が満たされてループBが終了する(例えば、所定数の対象領域が合成される)と、データセット生成制御部21は、処理対象画像、及び、処理対象画像に含まれる検出対象物体に関連する情報を、データセットに追加する(ステップS116)。
【0224】
条件1が満たされてループAが終了する(例えば、所定数の処理対象画像をデータセットに追加する)と、データセット生成部20は、データセットを出力して、動作を終了する。
【0225】
上記の動作に基づいて、データセット生成部20は、学習処理部30が機械学習に用いるデータセットを生成する。
【0226】
[効果の説明]
次に、第1の実施形態の効果について説明する。
【0227】
第1の実施形態にかかる情報処理装置1は、機械学習における処理の負荷を低減するとの効果を奏することができる。
【0228】
その理由は、次のとおりである。
【0229】
情報処理装置1は、データセット生成部20と、学習処理部30とを含む。データセット生成部20は、データセット生成制御部21と、ベース画像選択部22と、対象領域選択部23と、画像合成部24とを含む。学習処理部30は、学習処理制御部31と、特徴量計算部32と、学習実行部33とを含む。ベース画像選択部22は、機械学習の対象となる物体を含む対象領域と、機械学習の対象となる物体を含まない背景領域とを含む画像の集合であるベースデータセットから、ベース画像を選択し、選択したベース画像の複製である処理対象画像を生成する。対象領域選択部23は、ベースデータセットに含まれる他の画像に含まれる対象領域を選択する。画像合成部24は、選択した対象領域の画像と対象領域の画像に含まれる機械学習の対象となる物体に関する情報とを処理対象画像に合成する。データセット生成制御部21は、ベース画像選択部22と、対象領域選択部23と、画像合成部24とを制御して、所定数の対象領域を合成した処理対象画像の集合であるデータセットを生成する。特徴量計算部32は、データセットに含まれる画像の特徴量を計算する。学習実行部33は、特徴量とデータセットとを用いた機械学習である第1の機械学習を用いて、学習済みモデルを生成する。学習処理制御部31は、特徴量計算部32と学習実行部33とを制御して生成した学習済みモデルを出力する。
【0230】
上記のように構成された第1の実施形態のデータセット生成部20は、ベースデータセットを基に、機械学習に用いられるデータセットを生成する。データセット生成部20は、ベースデータセット中から画像(ベース画像)を選択し、選択したベース画像の背景部分(対象領域ではない領域)に、ベースデータセットに含まれる他の画像における対象領域の画像を合成した処理対象画像を生成する。
【0231】
さらに、データセット生成部20は、処理対象画像の検出対象物体に関する情報に、合成した対象領域に含まれる検出対象物体に関する情報を追加する。
【0232】
そして、データセット生成部20は、機械学習の対象として、生成した処理対象画像を含むデータセットを生成する。
【0233】
データセット生成部20は、複製元のベース画像に比べ、背景領域が少なく、対象領域を多く含む処理対象画像を生成し、生成した処理対象画像を含むデータセットを生成する。つまり、データセット生成部20が生成するデータセットは、ベースデータセットに比べ、機械学習における計算リソースの利用効率の低下の原因となる背景部分が少ない画像を含む。
【0234】
さらに、データセット生成部20は、データセットに含まれる処理対象画像における検出対象物体に関する情報に、合成した対象領域に含まれる検出対象物体に関する情報を追加する。
【0235】
そのため、学習処理部30は、データセットの画像の特徴量の算出において、データセットに含まれる処理対象画像の検出対象物体に関する情報を用いることができる。
【0236】
一般的な機械学習は、機械学習(特に、クラス分類層及び回帰層)の精度向上の効果を得るために、学習時のイテレーションごとに前処理で実行している。
【0237】
これに対し、情報処理装置1のデータセット生成部20は、一般的な機械学習における前処理において得られる効果(機械学習の精度向上)に相当する効果が得られるように、データセットを生成する。
【0238】
そのため、学習処理部30は、データセットに含まれる処理対象画像に前処理を実行しなくても、精度のよい機械学習を実行できる。その結果、情報処理装置1は、前処理などの処理の負荷を低減できる。
【0239】
さらに、データセット生成部20が生成するデータセットは、予め、拡大、縮小、アスペクト比変更、回転、傾斜、並びに、左右及び/又は上下反転などの処理が施された検出対象の物体の画像を含む。そして、学習処理部30は、このようなデータセットを用いて機械学習を実行する。そのため、データセットの前処理を省略した場合でも、情報処理装置1は、学習処理部30における学習の精度の低下を回避できる。
【0240】
さらに、学習処理部30は、前処理を用いないため、算出した特徴量を再利用できる。そのため、学習処理部30は、一度特徴量を算出すれば、機械学習の実行における各イテレーションにおける特徴量の算出の処理を実行しなくてもよい。このように、情報処理装置1は、機械学習における処理の負荷を低減するとの効果を得ることができる。
【0241】
なお、処理対象画像は、複製元であるベース画像より、機械学習に用いられる対象領域を多く含む。そのため、学習処理部30は、データセットを用いると、ベースデータセットを用いる場合に比べ、より少ない数の画像を用いても、同様の数の対象領域を学習することができる。つまり、データセットが含む画像の数は、ベースデータセットに含まれる画像の数より少なくてもよい。その結果、第1の実施形態にかかる情報処理装置1は、機械学習における処理時間をさらに短縮することができる。
【0242】
なお、処理対象画像と、処理対象画像に合成する対象領域とにおいて、背景のずれが大きい場合、画像合成部24における前景と背景との切り分けの精度が、悪くなる。この場合、画像合成部24は、処理対象画像に合成する前景として、検出対象物体を適切に含まない前景を切り出す可能性が高くなる。その結果、学習処理部30における機械学習の精度が、低くなってしまう可能性が高くなる。
【0243】
そのため、画像合成部24が前景と背景とを切り分ける場合、データセット生成部20が用いるベースデータセットは、背景が似た画像を多く含むデータセット(例えば、固定されたカメラで撮影された画像のデータセット)であることが望ましい。
【0244】
そこで、ベースデータセットが異なる背景の画像を含む場合、データセット生成部20は、背景を基に画像をサブセット(背景が類似している画像群)に分割し、サブセット内の画像を用いて、処理対象画像を生成すればよい。
【0245】
この場合、合成するために選択される対象領域は、処理対象画像における合成位置において、境界及び周辺での画素との差異が少ないと想定される。そのため、生成される処理対象画像は、画像合成部24における前景と背景との切り分けの精度の低下を低減する画像となる。このような画像を用いて処理対象画像を生成する場合、データセット生成部20は、より適切に前景を合成したデータセットを生成できる。
【0246】
なお、対象領域選択部23は、機械学習に適するように、対象領域の形状(例えば、幅、高さ、サイズ、又は、アスペクト比)、角度、及び/又は、傾斜を変更してもよい。あるいは、画像合成部24は、機械学習に適するように、対象領域に所定の処理(例えば、拡大、縮小、左右の反転、及び/又は、上下の反転)を適用してもよい。
【0247】
データセット生成部20は、これらの処理を用いて、学習処理部30における機械学習の精度を向上できる。
【0248】
[バリエーション]
上記の説明では、データセット生成部20が用いるベースデータセットは、一つである。しかし、第1の実施形態は、これに限定されない。データセット生成部20は、複数のベースデータセットを用いて、機械学習の対象となるデータセットを生成してもよい。
【0249】
また、上記の説明では、データセット生成部20は、パラメタとして、生成するデータセットに含まれる画像の数を受信する。しかし、第1の実施形態は、これに限定されない。
【0250】
データセット生成部20は、生成する画像の数を動的に決定してもよい。
【0251】
例えば、データセット生成部20は、機械学習に用いられるデータセットとして、ベースデータセットに含まれる画像の数に対する所定の比率の画像を、生成してもよい。
【0252】
あるいは、例えば、データセット生成部20は、「データセットの生成の動作(具体的には、
図5に示したループA)」において、以下のいずれかの条件、又は、条件の組合せが成立したときに、処理対象画像の生成を終了してもよい。
(1) 生成中のデータセット全体において、処理対象画像に合成した対象領域の総数、又は、処理対象画像に元から含まれている対象領域を含めた対象領域の総数が所定の値を超えた場合。
(2) 生成中のデータセット全体において、処理対象画像に合成した対象領域の面積の合計、又は、処理対象画像に元から含まれている対象領域の面積を含めた対象領域の面積の合計が所定の値を超えた場合。
(3) 生成中のデータセット全体において、対象領域と背景領域との面積の比が所定の値を超えた場合。
【0253】
データセット生成部20は、上記の条件における判定のための値を、パラメタとして受信してもよく、予め保持してもよい。例えば、データセット生成部20は、動作に先立ち、判定のための値を、オペレータから受信してもよい。あるいは、データセット生成部20は、受信したいずれかのパラメタを用いて上記の値を計算してもよい。
【0254】
なお、データセット生成部20は、上記のデータセットに含まれる画像の数以外のパラメタについても、動的に、決定又は変更してもよい。
【0255】
なお、ここまでの説明として、第1の実施形態の情報処理装置1が、一般的なタスクのより負荷が高い物体検出タスクのようなタスクに用いられるデータセットを生成する場合を説明した。しかし、情報処理装置1の利用は、物体検出タスクに限定されるものではない。情報処理装置1は、物体検出タスクとは異なるタスクに用いられてもよい。
【0256】
また、ここまでの説明では、情報処理装置1が、特徴量計算部32において、データセットの画像に対して計算した特徴量を再利用する例を示した。
【0257】
しかし、情報処理装置1における再利用は、画像の特徴量に限定されるものではない。例えば、情報処理装置1が再利用する特徴量は、画像の特徴量のような一般的な意味での特徴量とは異なる値でもよい。
【0258】
例えば、
図17に示す構成では、特徴量は、特徴量抽出層の出力であり、クラス分類層及び回帰層の入力である。しかし、特徴量抽出層は、具体的な実装においては、複数の層を含む。このように、機械学習は、一般的に階層的な構造を用いる。そこで、情報処理装置1は、最終的に出力される特徴量ではなく、特徴量の算出に用いられる構成における途中の層において算出された特徴量を再利用してもよい。あるいは、情報処理装置1は、特徴量を算出する構成に限らず、クラス分類の処理を実行する構成、及び/又は、回帰処理を実行する構成における途中の層の出力を再利用してもよい。このように、情報処理装置1は、再利用する特徴量として、機械学習として用いられる構成の所定の層の出力を用いてもよい。
【0259】
つまり、情報処理装置1は、特徴量に限らず、機械学習におけるいずれかの層における処理結果を再利用してもよい。
【0260】
なお、これまでの説明では、深層学習のNNに関連する特徴量の再利用を用いて説明した。しかし、情報処理装置1における機械学習は、深層学習のNNに限定されない。例えば、情報処理装置1は、機械学習として、サポートベクタマシン(Support Vector Machine(SVM))を用いてもよい。
【0261】
[ハードウェア構成]
上記の説明では、学習制御部10、データセット生成部20、学習処理部30、データセット記憶部40、及び、特徴量記憶部50が、同じ装置(情報処理装置1)に含まれる例を用いて説明した。しかし、第1の実施形態は、これに限定されない。
【0262】
例えば、情報処理装置1は、各構成に相当する機能を備えた装置を、所定のネットワークを介して接続して、構成されてもよい。あるいは、情報処理装置1は、クラウドコンピューティングのような、ハードウェア資源を限定しないサービスを用いて実現されてもよい。
【0263】
あるいは、情報処理装置1の各構成部は、ハードウェア回路で構成されてもよい。
【0264】
あるいは、情報処理装置1において、複数の構成部が、1つのハードウェアで構成されてもよい。
【0265】
あるいは、情報処理装置1は、各機能を実現するソフトウェアを実行するハードウェアとして構成されてもよい。
【0266】
あるいは、情報処理装置1は、CPUと、ROM(Read Only Memory)と、RAM(Random Access Memory)とを含むコンピュータ装置として実現されてもよい。情報処理装置1は、上記構成に加え、さらに、入出力接続回路(IOC:Input and Output Circuit)を含むコンピュータ装置として実現されてもよい。情報処理装置1は、上記構成に加え、さらに、ネットワークインターフェース回路(NIC:Network Interface Circuit)を含むコンピュータ装置として実現されてもよい。さらに、情報処理装置1は、上記の構成に加え、機械学習の一部又はすべての計算を行う演算回路を含むコンピュータ装置として実現されてもよい。
【0267】
図14は、情報処理装置1のハードウェア構成の一例である情報処理装置600の構成を示すブロック図である。
【0268】
情報処理装置600は、CPU610と、ROM620と、RAM630と、内部記憶装置640と、IOC650と、NIC680と、演算ユニット611とを含み、コンピュータ装置を構成している。
【0269】
CPU610は、ROM620及び/又は内部記憶装置640からプログラムを読み込む。そして、CPU610は、読み込んだプログラムに基づいて、RAM630と、内部記憶装置640と、IOC650と、NIC680と、演算ユニット611とを制御する。そして、CPU610を含むコンピュータ装置は、これらの構成を制御し、
図1に示されている、学習制御部10と、データセット生成部20と、学習処理部30としての各機能を実現する。さらに、CPU610を含むコンピュータ装置は、これらの構成を制御し、
図2に示されている、データセット生成制御部21と、ベース画像選択部22と、対象領域選択部23と、画像合成部24としての各機能を実現する。さらに、CPU610を含むコンピュータ装置は、これらの構成を制御し、
図3に示されている、学習処理制御部31と、特徴量計算部32と、学習実行部33としての各機能を実現する。
【0270】
CPU610は、各機能を実現する際に、RAM630又は内部記憶装置640を、プログラムの一時記憶用の媒体として使用してもよい。
【0271】
また、CPU610は、コンピュータで読み取り可能にプログラムを記憶した記録媒体690が含むプログラムを、図示しない記録媒体読み取り装置を用いて読み込んでもよい。あるいは、CPU610は、NIC680を介して、図示しない外部の装置からプログラムを受け取り、RAM630又は内部記憶装置640に保存して、保存したプログラムを基に動作してもよい。
【0272】
演算ユニット611は、CPU610が実行するプログラムに制御されて、機械学習の一部又は全部における計算を実行する演算回路である。
【0273】
演算ユニット611の構成は、任意である。例えば、演算ユニット611は、回路、又は、次のような素子でもよい。
GPU(Graphics Processing Unit);
FPGA(Field-Programmable Gate Array);又は
ASIC(Application Specific Integrated Circuitt)。
【0274】
なお、CPU610は、必要に応じて、演算ユニット611の実行の前に、演算ユニット611に、演算ユニットに611の実行に必要な情報(例えば、データ、プログラム、及び、回路情報)を送信する。なお、これらの情報は、予め、ROM620、又は、内部記憶装置640に保存されていてもよい。あるいは、CPU610が、必要に応じて、図示しない外部の装置から取得してもよい。
【0275】
ROM620は、CPU610が実行するプログラム及び固定的なデータを記憶する。ROM620は、例えば、P-ROM(Programmable-ROM)又はフラッシュROMである。
【0276】
RAM630は、CPU610が実行するプログラム及びデータを一時的に記憶する。RAM630は、例えば、D-RAM(Dynamic-RAM)である。
【0277】
内部記憶装置640は、情報処理装置600が長期的に保存するデータ及びプログラムを記憶する。内部記憶装置640は、データセット記憶部40及び特徴量記憶部50として動作する。また、内部記憶装置640は、CPU610の一時記憶装置として動作してもよい。内部記憶装置640は、例えば、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)又はディスクアレイ装置である。
【0278】
ROM620と内部記憶装置640とは、不揮発性(non-transitory)の記録媒体である。一方、RAM630は、揮発性(transitory)の記録媒体である。そして、CPU610は、ROM620、内部記憶装置640、又は、RAM630に記憶されているプログラムを基に動作可能である。つまり、CPU610は、不揮発性記録媒体又は揮発性記録媒体を用いて動作可能である。
【0279】
IOC650は、CPU610と、入力機器660及び表示機器670とのデータを仲介する。IOC650は、例えば、IOインターフェースカード又はUSB(Universal Serial Bus)カードである。さらに、IOC650は、USBのような有線に限らず、無線を用いてもよい。
【0280】
入力機器660は、情報処理装置600のオペレータからの指示を受け取る機器である。例えば、入力機器660は、パラメタを受け取り、情報処理装置600に送信する。入力機器660は、例えば、キーボード、マウス又はタッチパネルである。
【0281】
表示機器670は、情報処理装置600のオペレータに情報を表示する機器である。表示機器670は、例えば、液晶ディスプレイ、有機エレクトロルミネッセンス・ディスプレイ、又は、電子ペーパーである。
【0282】
NIC680は、ネットワークを介した図示しない外部の装置とのデータのやり取りを中継する。NIC680は、例えば、LAN(Local Area Network)カードである。さらに、NIC680は、有線に限らず、無線を用いてもよい。
【0283】
このように構成された情報処理装置600は、情報処理装置1と同様の効果を得ることができる。
【0284】
その理由は、情報処理装置600のCPU610が、プログラムに基づいて情報処理装置1と同様の機能を実現できるためである。あるいは、情報処理装置600のCPU610及び演算ユニット611が、プログラムに基づいて情報処理装置1と同様の機能を実現できるためである。
【0285】
<第2の実施形態>
第2の実施形態にかかる情報処理装置1Bは、ベースデータセットを用いた機械学習の結果に基づいて、データセットを生成する。
【0286】
第2の実施形態について図面を用いて説明する。なお、第2の実施形態の説明に用いる各図面において、第1の実施形態と同様の構成及び動作には同一の符号を付して、詳細な説明を省略する。
【0287】
[構成の説明]
第2の実施形態にかかる情報処理装置1Bの構成について、図面を用いて説明する。なお、情報処理装置1Bは、第1の実施形態と同様に、
図14に示したようなコンピュータ装置を用いて構成されてもよい。
【0288】
図6は、第2の実施形態にかかる情報処理装置1Bの構成の一例を示すブロック図である。
【0289】
図6に例示する情報処理装置1Bは、学習制御部10Bと、データセット生成部20Bと、学習処理部30Bと、データセット記憶部40と、特徴量記憶部50とを含む。
【0290】
データセット記憶部40及び特徴量記憶部50は、第1の実施形態と同様のため、詳細な説明を省略する。
【0291】
学習制御部10Bは、第1の実施形態の学習制御部10における制御に加え、次のような制御を実行する。
【0292】
まず、学習制御部10Bは、学習処理部30Bに、ベースデータセットを用いた機械学習、及び、機械学習の結果についての評価を実行させる。そして、学習制御部10Bは、データセット生成部20Bに、学習処理部30Bにおける評価に基づいたデータセットの生成を指示する。そして、学習制御部10Bは、学習処理部30Bに、生成されたデータセットを用いた機械学習を実行させる。
【0293】
なお、学習制御部10Bは、学習処理部30Bにおけるベースデータセットに対する機械学習、及び、データセット生成部20Bにおけるデータセットの生成を、ベースデータセットのサブセットごとに動作するように、制御してもよい。
【0294】
学習処理部30Bは、第1の実施形態の学習処理部30と同様に、機械学習を実行する。ただし、学習処理部30Bは、データセットを用いた機械学習に加え、ベースデータセットを用いた機械学習を実行する。
【0295】
なお、学習処理部30Bは、ベースデータセットを用いた機械学習において、データセットを用いた機械学習とは異なる機械学習を実行してもよい。
【0296】
例えば、学習処理部30Bは、ベースデータセットの含まれる画像に対して前処理を実行してから、機械学習を実行してもよい。あるいは、学習処理部30Bは、ベースデータセットを用いた機械学習として、ベースデータセットに含まれる画像から算出した特徴量の一部又はすべてを再利用しない機械学習を実行してよい。あるいは、学習処理部30Bは、ベースデータセットを用いた機械学習として、データセットを用いる機械学習とは異なる機械学習(例えば、異なる構造を備えたNN)を用いてもよい。
【0297】
このように、学習処理部30Bは、ベースデータセットを用いた機械学習に、データセットを用いた機械学習とは異なる機械学習を用いてもよい。以下、機械学習を区別する場合、データセットを用いた機械学習を「第1の機械学習」と呼ぶ。そして、学習処理部30Bが、ベースデータセットを用いた機械学習として、第1の機械学習とは異なる機械学習を実行する場合、第1の機械学習とは異なる機械学習を「第2の機械学習」と呼ぶ。
【0298】
さらに、学習処理部30Bは、ベースデータセットを用いた機械学習の結果を評価する。例えば、学習処理部30Bは、ベースデータセットを用いた機械学習の結果の評価として、機械学習の対象となる物体の認識の精度を評価してもよい。
【0299】
データセット生成部20Bは、第1の実施形態のデータセット生成部20と同様に、データセットを生成する。ただし、データセット生成部20Bは、学習処理部30Bにおけるベースデータセットを用いた機械学習の評価の結果を用いて、データセットを生成する。
【0300】
次に、第2の実施形態におけるデータセット生成部20Bの構成について、図面を用いて説明する。
【0301】
図7は、第2の実施形態にかかるデータセット生成部20Bの構成の一例を示すブロック図である。
【0302】
データセット生成部20Bは、データセット生成制御部21Bと、ベース画像選択部22Bと、対象領域選択部23Bと、画像合成部24とを含む。
【0303】
データセット生成制御部21Bは、第1の実施形態のデータセット生成制御部21における制御に加え、学習処理部30Bにおけるベースデータセットを用いた機械学習の結果の評価に基づくように、データセットの生成を制御する。
【0304】
なお、データセット生成制御部21Bは、ベースデータセットを用いた機械学習の結果の評価を参照して、データセットの生成にかかるパラメタを決定してもよい。
【0305】
例えば、データセット生成制御部21Bは、以下のような動作を実行してもよい。
(1) データセット生成制御部21Bは、ベースデータセットを用いた機械学習の評価において、機械学習の対象となる物体の認識精度が低いサブセットについて、生成する画像の数を変更する。例えば、データセット生成制御部21Bは、認識精度が低いサブセットについて、生成するデータセットの含まれる画像の数を増やしてもよい。つまり、データセット生成制御部21Bは、認識精度が低いサブセットの画像を優先的に使用して、機械学習の対象となるデータセットを生成してもよい。この場合、学習処理部30Bは、認識精度が低いサブセットに含まれる画像を多く含むデータセットを学習する。その結果、認識精度が低いサブセットにおける認識精度は、向上する。
(2) データセット生成制御部21Bは、ベースデータセットを用いた機械学習の評価において、認識精度が低いサブセット、又は、クラスなどについて、合成する対象領域の最大数を変更する。例えば、データセット生成制御部21Bは、認識精度が低いサブセットについて、合成する対象領域の数を増やしてもよい。この場合も、認識精度が低いサブセットにおける認識精度は、向上する。
【0306】
ベース画像選択部22Bは、第1の実施形態のベース画像選択部22における動作に加え、ベースデータセットを用いた機械学習の結果を用いて、ベース画像を選択する。例えば、ベース画像選択部22Bは、以下のいずれかの選択又は選択の組合せを用いて、ベース画像を選択してもよい。
(1) ベースデータセットを用いた機械学習の評価において、認識精度が低い画像が含まれるサブセット内の画像を優先的に選択。
(2) ベースデータセットを用いた機械学習の評価において、認識精度が低いサブセット内の画像を優先的に選択。
(3) ベースデータセットを用いた機械学習の評価において、認識精度が低い検出対象物体のクラスと同じクラスの検出対象物体を含む対象領域を、多く含む画像を優先的に選択。
(4) ベースデータセットを用いた機械学習の評価において、認識精度が低いサイズの対象領域を多く含む画像を優先的に選択。
【0307】
対象領域選択部23Bは、第1の実施形態の対象領域選択部23における動作に加え、ベースデータセットを用いた機械学習の結果を用いて、対象領域を選択する。例えば、対象領域選択部23Bは、以下のいずれかの選択又は選択の組合せを用いて、対象領域を選択してもよい。
(1) ベースデータセットを用いた機械学習の評価において、認識精度が低い画像に含まれる対象領域を優先的に選択。
(2) ベースデータセットを用いた機械学習の評価において、認識精度が低いクラスに含まれる画像の対象領域を優先的に選択。
(3) ベースデータセットを用いた機械学習の評価において、認識精度が低いサイズの対象領域を優先的に選択。
(4) ベースデータセットを用いた機械学習の評価において、認識精度が低い対象領域を優先的に選択。
【0308】
さらに、対象領域選択部23Bは、対象領域の形状などを変更する場合、第1の実施形態の対象領域選択部23における動作に加え、ベースデータセットを用いた機械学習の結果を用いて、対象領域の形状などの変更を決定してもよい。
【0309】
例えば、対象領域選択部23Bは、以下のいずれかの選択又は選択の組合せを用いて、対象領域の形状の変更を決定してもよい。
(1) ベースデータセットを用いた機械学習の評価において認識精度が低い幅、高さ、及び/又は、サイズが多くなるように、対象領域の幅、高さ、及び/又は、サイズの変更を決定。
(2) ベースデータセットを用いた機械学習の評価において認識精度が低いアスペクト比が多くなるように、対象領域のアスペクト比の変更を決定。
(3) ベースデータセットを用いた機械学習の評価において認識精度が低い物体の向きが多くなるように、対象領域の向きの変更を決定。
(4) ベースデータセットを用いた機械学習の評価において認識精度が低い物体の角度、及び/又は、傾斜が多くなるように、対象領域の角度、及び/又は、傾斜の変更を決定。
【0310】
なお、対象領域選択部23Bは、上記の決定の判断基準を、動的に変更してもよい。例えば、対象領域選択部23Bは、判断基準に用いる乱数値の上限値及び下限値を、別の乱数を用いて動的に調整してもよい。あるいは、対象領域選択部23Bは、判断基準に用いる乱数値を生成する際の乱数値の分布を、別の乱数を用いて調整してもよい。
【0311】
なお、ベース画像選択部22B及び対象領域選択部23Bは、「認識精度が低い」という判定条件の代わりに、「機械学習における損失(例えば、情報損失)が大きい」という条件を用いてもよい。
【0312】
画像合成部24は、上記で説明したベースデータセットの評価結果に基づいて選択された処理対象画像と対象領域とを合成する。ただし、すでに説明したように、画像合成部24は、ベースデータセットを用いた機械学習の結果の評価に基づいて選択された処理対象画像と、対象領域とを合成する。
【0313】
その結果、データセット生成部20Bは、学習処理部30Bにおける機械学習の対象として適切な画像を含むデータセットを生成する。
【0314】
なお、ベース画像選択部22B及び対象領域選択部23Bのいずれか1つが、ベースデータセットを用いた機械学習の評価の結果を用いてもよい。
【0315】
[動作の説明]
次に、図面を用いて、第2の実施形態にかかる情報処理装置1Bの動作を説明する。
【0316】
図8は、第2の実施形態にかかる情報処理装置1Bにおける機械学習の動作の一例を示すフロー図である。
【0317】
情報処理装置1Bは、所定の条件が充足されたことを契機に動作を開始する。情報処理装置1Bは、例えば、オペレータからの指示を契機として、機械学習を開始する。この場合、機械学習の開始において、情報処理装置1Bは、機械学習に係るパラメタとして、オペレータから、機械学習に必要なパラメタに加え、他のパラメタを受信してもよい。例えば、情報処理装置1Bは、ベースデータセット及びデータセットの生成にかかるパラメタを、オペレータから受け取ってもよい。
【0318】
学習制御部10Bは、学習処理部30Bに、ベースデータセットを用いた機械学習を指示する。学習処理部30Bは、ベースデータセットを用いて、機械学習を実行する(ステップS200)。さらに、学習処理部30Bは、ベースデータセットを用いた機械学習の結果を評価する。なお、学習処理部30Bは、ベースデータセットの機械学習に用いるパラメタを受信してもよい。
【0319】
学習制御部10Bは、データセット生成部20Bに、ベースデータセットと、ステップS200におけるベースデータセットを用いた機械学習の結果の評価とに基づいたデータセットの生成を指示する。データセット生成部20Bは、ベースデータセットと、ベースデータセットを用いた機械学習の結果の評価とに基づいて、データセットを生成する(ステップS201)。なお、データセット生成部20は、データセットを生成するためのパラメタを受信してもよい。
【0320】
学習制御部10Bは、学習処理部30Bに、生成されたデータセットの各画像について特徴量の計算を指示する。学習処理部30Bは、生成されたデータセットの各画像について特徴量を計算する(ステップS202)。学習処理部30Bは、算出した特徴量を特徴量記憶部50に保存する。なお、学習処理部30Bは、特徴量の計算に用いるパラメタを受信してもよい。
【0321】
そして、学習制御部10Bは、学習処理部30Bに、データセットと特徴量とを用いた機械学習を指示する。学習処理部30Bは、生成されたデータセットと、算出した特徴量とを用いて機械学習を実行する(ステップS203)。なお、学習処理部30Bは、データセットの機械学習に用いるパラメタを受信してもよい。
【0322】
上記のように、データセット生成部20Bは、ベースデータセットを用いた機械学習の結果の評価に基づいて、データセットを生成する。そして、学習処理部30Bは、生成されたデータセットを用いて機械学習を実行する。
【0323】
[効果の説明]
次に、第2の実施形態の効果について説明する。
【0324】
第2の実施形態は、第1の実施形態と同様の効果(機械学習における処理の負荷の低減など)に加え、次のような効果を実現することができる。
【0325】
第2の実施形態は、ベースデータセットを用いた機械学習の結果を用いてデータセットを生成する。そのため、第2の実施形態は、より適切なデータセットを生成するとの効果を奏する。
【0326】
例えば、第2の実施形態は、ベースデータセットの機械学習の評価において認識精度が低いサブセットの対象領域、認識精度の低いクラスの対象領域、又は、認識精度が低い画像の対象領域を優先的に使用して、機械学習の対象となるデータセットを生成する。
【0327】
あるいは、第2の実施形態は、ベースデータセットの機械学習の評価において認識精度が低い形状(例えば、幅、高さ、サイズ、及び/又は、アスペクト比)、向き、及び/又は、傾斜の対象領域を多く含むデータセットを生成する。
【0328】
第2の実施形態は、このように、認識精度が低く、学習の対象とした方が望ましい対象領域を多く含むデータセットを生成する。そのため、第2の実施形態は、生成されたデータセットを用いた機械学習において、学習結果における認識精度を向上できる。
【0329】
[バリエーション]
なお、ここまでの第2の実施形態の説明では、データセット生成部20Bは、一回、データセットを生成した。しかし、第2の実施形態は、これに限定されない。
【0330】
例えば、学習処理部30Bは、データセットを用いた機械学習(第1の機械学習)の結果を評価してもよい。そして、学習制御部10Bは、データセットを用いた機械学習の結果の評価を用いて、データセット生成部20Bを、再度、データセットを生成するよう制御してもよい。この場合、データセット生成部20Bは、学習処理部30Bにおけるデータセットを用いた機械学習の評価結果を用いて、データセットを再生成する。その結果、データセット生成部20Bは、さらに機械学習に適切なデータセットを再生成できる。学習処理部30Bは、再生成されたデータセットを用いて、機械学習を実行すればよい。情報処理装置1Bは、所定の条件を満足するまで、上記動作を繰り返してもよい。
【0331】
<第3の実施形態>
第3の実施形態にかかる情報処理装置1Cは、動的に、再利用する特徴量を変更する。例えば、再利用する特徴量がNNを構成する層の出力の場合、情報処理装置1Cは、動的に、再利用する特徴量を出力するNNの層を変更する。
【0332】
第3の実施形態について図面を用いて説明する。なお、第3の実施形態の説明に用いる各図面において、第1の実施形態と同様の構成及び動作には同一の符号を付して、詳細な説明を省略する。なお、情報処理装置1Cは、第2の実施形態と同様に、ベースデータセットを用いた機械学習を実行してもよい。
【0333】
[構成の説明]
第3の実施形態にかかる情報処理装置1Cの構成について、図面を用いて説明する。なお、情報処理装置1Cは、第1の実施形態と同様に、
図14に示したようなコンピュータ装置を用いて構成されてもよい。
【0334】
図9は、第3の実施形態にかかる情報処理装置1Cの構成の一例を示すブロック図である。
【0335】
図9に例示する情報処理装置1Cは、学習制御部10と、データセット生成部20と、学習処理部30Cと、データセット記憶部40と、特徴量記憶部50とを含む。
【0336】
学習制御部10、データセット生成部20、データセット記憶部40、及び、特徴量記憶部50は、第1の実施形態と同様のため、詳細な説明を省略する。
【0337】
学習処理部30Cは、データセットを用いて、2種類の機械学習を実行する。
【0338】
まず、学習処理部30Cは、1回目の機械学習において、特徴量を再利用しないで、データセットを用いた機械学習(以下、「第3の機械学習」と呼ぶ場合もある)を実行する。
【0339】
そして、学習処理部30Cは、1回目の機械学習(第3の機械学習)の実行状況を確認する。例えば、学習処理部30Cは、1回目の機械学習に関連する計算処理の実行状況を確認する。以下、この確認動作を「プロファイリング(profiling)」と呼び、その動作の実行を「プロファイルする(profile)」と呼ぶ。
【0340】
そして、学習処理部30Cは、1回目の機械学習(第3の機械学習)のプロファイリングの結果を用いて、2回目の機械学習において再利用する特徴量を決定する。そして、学習処理部30Cは、決定した特徴量を再利用して、2回目のデータセットの機械学習(第1の機械学習)を実行する。つまり、学習処理部30Cは、2回目の機械学習として、1回目の機械学習のプロファイリングの結果を用いて再利用する特徴量を選択する点を除いて、第1の実施形態と同様の機械学習(第1の機械学習)を実行する。
【0341】
さらに、学習処理部30Cは、3回目以降の機械学習において、前回の機械学習のプロファイリングの結果を用いて、再利用する特徴量を再決定する。そして、学習処理部30Cは、再決定した特徴量を再利用して、データセットの機械学習(第1の機械学習)を実行する。このように、学習処理部30Cは、前回の機械学習のプロファイリングの結果を用いて、再利用する特徴量を再決定しながら(つまり、再利用する特徴量を動的に変更しながら)、所定の終了条件を満足するまで、機械学習を繰り返し実行する。
【0342】
なお、学習処理部30Cは、1回目の機械学習において、すべての特徴量を計算するが再利用しない機械学習を実行してもよい。この場合、学習処理部30Cは、2回目以降の機械学習で再利用するため、1回目の機械学習において計算した特徴量を特徴量記憶部50に保存してもよい。
【0343】
あるいは、学習処理部30Cは、1回目の機械学習において、特徴量計算部32Cにおける特徴量の計算を実行しなくてもよい。この場合、学習処理制御部31Cは、1回目の機械学習として、特徴量計算部32Cが算出する特徴量を利用しない機械学習を実行するように、学習実行部33Cを制御する。
【0344】
あるいは、学習処理部30Cは、処理の負荷を低減するため、1回目の機械学習において用いる特徴量の範囲を限定して機械学習を実行してもよい。
【0345】
なお、一部又はすべての特徴量を計算しない場合、2回目以降の機械学習において、再利用と決定された特徴量が、特徴量記憶部50に保存されていない場合がある。
【0346】
そのような場合、学習処理部30Cは、再利用すると決定した特徴量の中で保存されていない特徴量(未計算の特徴量)については、特徴量を計算して、特徴量記憶部50に保存してから、特徴量を再利用した機械学習(第1の機械学習)を実行すればよい。このように、学習処理部30Cは、再利用すると決定した特徴量の中で未計算の特徴量について、計算して追加しながら、第1の機械学習を実行してもよい。
【0347】
次に、第3の実施形態における学習処理部30Cの構成について、図面を用いて説明する。
【0348】
図10は、第3の実施形態にかかる学習処理部30Cの構成の一例を示すブロック図である。
【0349】
学習処理部30Cは、学習処理制御部31Cと、特徴量計算部32Cと、学習実行部33Cとを含む。
【0350】
学習処理制御部31Cは、第1の実施形態の学習処理制御部31における制御に加え、次のような制御を実行する。
【0351】
学習処理制御部31Cは、1回目の機械学習では、すべての特徴量を再利用しないで、機械学習(第3の機械学習)を実行するように、特徴量計算部32Cと、学習実行部33Cとを制御する。
【0352】
なお、1回目の機械学習において特徴量を計算しない場合、学習処理制御部31Cは、特徴量計算部32Cを制御しなくてもよい。
【0353】
そして、学習処理制御部31Cは、特徴量計算部32C及び学習実行部33Cにおける計算処理の実行状況をプロファイルする。
【0354】
そして、学習処理制御部31Cは、2回目以降の機械学習では、プロファイリングの結果を用いて、再利用する特徴量を決定する。そして、学習処理制御部31Cは、決定した特徴量を再利用した機械学習(第1の機械学習)を実行するよう、特徴量計算部32C及び学習実行部33Cを制御する。
【0355】
なお、学習処理制御部31Cにおけるプロファイリングに用いる情報の生成元は、任意である。例えば、学習処理制御部31Cが、特徴量計算部32C及び学習実行部33Cが動作するときに出力する情報を収集して、実行状況をプロファイルしてもよい。あるいは、特徴量計算部32C及び学習実行部33Cが、学習処理制御部31Cに、実行状況を通知してもよい。あるは、学習処理部30Cの機能を構成するソフトウェア(例えば、仮想マシンの管理モジュール)又はハードウェア(例えば、負荷監視装置)が、プロファイリングに必要な情報を、学習処理制御部31Cに通知してもよい。
【0356】
次に、学習処理制御部31Cが収集する情報の一例を説明する。
【0357】
例えば、学習処理制御部31Cは、プロファイリングに必要な情報として、次に示すNNの層に関連する情報、又は、少なくとも一部の情報の組み合わせを収集してもよい。ただし、本実施形態におけるプロファイリングに必要な情報は、下記に限定されない。
(1) 層ごとの計算時間。
(2) 層ごとのGFLOPS(Giga Floating point number Operations Per Second)値。
(3) 層ごとのハードウェアリソース割り当て率。
(4) 層ごとのハードウェアリソース使用効率。
(5) 層ごとのバスにおける通信量。
(6) 層ごとのメモリの使用量。
(7) 層ごとの特徴量のサイズ。
【0358】
学習処理制御部31Cは、層ごとではなく、NN内のチャネルごとに、プロファイリングに用いる情報を収集してもよい。つまり、学習処理制御部31Cは、NN内のチャネルをプロファイルしてもよい。
【0359】
学習処理制御部31Cは、上記情報の一部を、事前に与えられた静的情報(例えば、設定上のリソース量)で補完してもよい。例えば、学習処理制御部31Cは、予め、オペレータなどから補完用の静的情報を取得していてもよい。
【0360】
学習処理制御部31Cは、プロファイリングの結果を用いて、処理の負荷を低減するように、再利用する特徴量を決定する。
【0361】
例えば、学習処理制御部31Cは、収集したプロファイリングの結果を用いて、どの層の出力を、再利用する特徴量として用いるかを決定する。より詳細には、例えば、学習処理制御部31Cは、各層について、その層の出力を再利用した場合における、学習処理の全体の処理の負荷(例えば、処理の時間)の低減量を計算する。そして、学習処理制御部31Cは、全体の処理の負荷(例えば、全体の処理時間)が少なくなるように、再利用する層の出力を決定する。
【0362】
なお、再利用の対象となる層の範囲は、予め、決定されていてもよい。例えば、学習処理制御部31Cは、事前に指定された層群(例えばオペレータから与えられる)を対象として、再利用する特徴量(再利用する層の出力)を決定してもよい。
【0363】
あるいは、学習処理制御部31Cは、情報処理装置1Cを構成するハードウェアのリソース(例えば、メモリ容量、ディスク容量、及び/又は、バス帯域幅)に基づいて、再利用する特徴量を決定してもよい。例えば、学習処理制御部31Cは、リソースの利用効率が高くなるように、再利用する特徴量を決定してもよい。なお、決定に用いるリソースは、予め、学習処理制御部31Cに設定されていればよい。例えば、オペレータが、予め、学習処理制御部31Cに、決定に使用するリソースを設定する。
【0364】
このように、学習処理制御部31Cは、プロファイリングの結果を用いて、動的に、再利用する特徴量を決定する。
【0365】
特徴量計算部32Cは、第1の実施形態の特徴量計算部32と同様に、特徴量を計算する。ただし、特徴量計算部32Cは、学習処理制御部31Cにおいて再利用すると決定された特徴量の中で、特徴量記憶部50に保存されていない特徴量を計算する。
【0366】
なお、特徴量計算部32Cが計算する特徴量は、画像の特徴量のような一般的な意味での特徴量に限られない。例えば、特徴量計算部32Cは、深層学習における所定の層の出力を計算対象として用いてもよい。
【0367】
学習実行部33Cは、第1の実施形態の学習実行部33と同様に、特徴量を再利用して、機械学習を実行する。ただし、学習実行部33Cは、学習処理制御部31Cが再利用すると決定した特徴量を再利用して、機械学習を実行する。
【0368】
なお、学習実行部33Cは、1回目の機械学習において、学習処理制御部31Cの指示に基づいて、特徴量を再利用しない機械学習(第3の機械学習)を実行する。
【0369】
[動作の説明]
次に、図面を用いて、第3の実施形態にかかる学習処理部30Cの動作を説明する。
【0370】
図11は、第3の実施形態にかかる学習処理部30Cにおけるプロファイリングの結果を用いた機械学習(2回目以降の機械学習)の動作の一例を示すフロー図である。
【0371】
まず、学習処理制御部31Cは、前回の機械学習の実行状況をプロファイルする(ステップS300)。
【0372】
学習処理制御部31Cは、プロファイリングの結果に基づいて、再利用する特徴量を決定する(ステップS301)。
【0373】
学習処理制御部31Cは、特徴量計算部32Cが、再利用すると決定した特徴量を対象として、データセットの含まれる画像の特徴量の計算を指示する。特徴量計算部32Cは、データセットに含まれる画像において、指示された特徴量を計算する(ステップS302)。特徴量計算部32Cは、計算した特徴量を、特徴量記憶部50に保存する。
【0374】
なお、既に特徴量記憶部50に保存済みの特徴量を再利用すると決定した場合、学習処理制御部31Cは、ステップS302の動作を省略する。
【0375】
学習処理制御部31Cは、学習実行部33Cに、データセットと、再利用すると決定した特徴量とを用いた機械学習の実行を指示する。学習実行部33Cは、データセットと特徴量とを用いて機械学習を実行する(ステップS303)。
【0376】
所定の条件を満足するまで上記の動作を繰り返して、学習処理部30Cは、機械学習を実行する。
【0377】
なお、プロファイリングに、時間が掛かる場合がある。例えば、2回目の機械学習を実行する時点において、プロファイリングに必要な情報が集まらない場合がある。このような場合、学習処理部30Cは、プロファイリングが終了するまで、特徴量を再利用しない機械学習(第3の機械学習)を実行してもよい。あるいは、学習処理部30Cは、第1の実施形態と同様に、すべての特徴量を再利用するように動作してもよい。
【0378】
そして、プロファイリングが終了すると、学習処理制御部31Cは、特徴量計算部32C及び学習実行部33Cの動作を所定の時点で終了させて、プロファイリングを用いた動作を開始すればよい。
【0379】
ただし、学習処理制御部31Cは、すべてのプロファイリングの完了の前において、一部のプロファイリングの結果を用いて再利用する特徴量を決定可能な場合がある。例えば、部分的なプロファイリングの結果を用いて、処理の負荷を低減できるように再利用する特徴量を決定できる場合がある。そこで、学習処理制御部31Cは、プロファイリングの一部が完了した段階で、プロファイリングを用いた動作を開始してもよい。
【0380】
ただし、学習処理制御部31Cは、十分なプロファイリングの結果が集まってから(例えば、計算処理の実行状況が安定してから)、プロファイリングを用いた動作を開始してもよい。なお、計算処理の実行状況の安定とは、計算処理の実行状況を示す値の少なくとも一部の値の変動が、所定の期間において所定の範囲内となっている場合である。
【0381】
[効果の説明]
次に、第3の実施形態の効果について説明する。
【0382】
第3の実施形態は、第1の実施形態と同様の効果(機械学習における処理の負荷の低減など)に加え、次のような効果を実現することができる。
【0383】
第3の実施形態は、プロファイリングに基づいて、再利用する特徴量を決定する。そのため、第3の実施形態は、機械学習の実行状況に対応して、再利用する特徴量を決定できるとの効果を奏する。特徴量の再利用は、機械学習の負荷を低減する。つまり、第3の実施形態は、機械学習の実行状況に対応して、機械学習の負荷を低減する。
【0384】
[バリエーション]
なお、ここまでの説明において、第3の実施形態は、データセットの機械学習に、プロファイリングの結果を用いた。しかし、プロファイリングの結果を用いる動作は、これに限定されない。例えば、情報処理装置1Cが第2の実施形態と同様にベースデータセットを用いる機械学習を実行する場合、情報処理装置1Cは、プロファイリングの結果を用いて、ベースデータセットを用いる機械学習を実行してもよい。
【0385】
なお、情報処理装置1Cは、外部からプロファイリングの結果を受け取ってもよい。例えば、情報処理装置1Cは、負荷監視装置から、プロファイリングの結果を受け取ってもよい。この場合、情報処理装置1Cは、プロファイリングの結果を算出する処理を実行しなくてもよい。
【0386】
<第4の実施形態>
上記の実施形態の概要を第4の実施形態として説明する。
【0387】
図15は、実施形態の概要の一例である情報処理装置200の構成を示すブロック図である。なお、情報処理装置200は、第1ないし第3の実施形態と同様に、
図14に示したようなコンピュータ装置を用いて構成されてもよい。
【0388】
情報処理装置200は、データセット生成制御部21と、ベース画像選択部22と、対象領域選択部23と、画像合成部24と、学習処理制御部31と、特徴量計算部32と、学習実行部33とを含む。情報処理装置200に含まれる各構成は、情報処理装置1におけるデータセット生成部20及び学習処理部30に含まれる各構成と同様に動作する。
【0389】
すなわち、情報処理装置200は、図示しない外部の装置などに保存されているベースデータセットを用いて、機械学習用のデータセットを生成する。情報処理装置200は、生成したデータセットの特徴量を計算する。そして、情報処理装置200は、生成したデータセットと計算した特徴量とを用いて機械学習を実行し、学習済みモデルを生成する。
【0390】
なお、情報処理装置200は、生成したデータセットを図示しない外部の装置(例えば、データセット記憶部40と同様の機能を備えた、図示しない記憶装置)に保存してもよい。あるいは、情報処理装置200は、計算した特徴量を外部の装置(例えば、特徴量記憶部50と同様の機能を備えた、図示しない記憶装置)に保存してもよい。
【0391】
[効果の説明]
情報処理装置200は、第1の実施形態の情報処理装置1と同様に、機械学習における処理の負荷を軽減するとの効果を奏することができる。
【0392】
その理由は、次のとおりである。
【0393】
情報処理装置200は、データセット生成制御部21と、ベース画像選択部22と、対象領域選択部23と、画像合成部24と、学習処理制御部31と、特徴量計算部32と、学習実行部33とを含む。ベース画像選択部22は、機械学習の対象となる物体を含む対象領域と、機械学習の対象となる物体を含まない背景領域とを含む画像の集合であるベースデータセットから、ベース画像を選択し、選択したベース画像の複製である処理対象画像を生成する。対象領域選択部23は、ベースデータセットに含まれる他の画像に含まれる対象領域を選択する。画像合成部24は、選択した対象領域の画像と対象領域の画像に含まれる機械学習の対象となる物体に関する情報とを処理対象画像に合成する。データセット生成制御部21は、ベース画像選択部22と、対象領域選択部23と、画像合成部24とを制御して、所定数の対象領域を合成した処理対象画像の集合であるデータセットを生成する。特徴量計算部32は、データセットに含まれる画像の特徴量を計算する。学習実行部33は、特徴量とデータセットとを用いた機械学習である第1の機械学習を用いて、学習済みモデルを生成する。学習処理制御部31は、特徴量計算部32と学習実行部33とを制御して生成した学習済みモデルを出力する。
【0394】
上記のように、情報処理装置200は、第1の実施形態におけるデータセット生成部20及び学習処理部30と同様に動作する。そのため、情報処理装置200は、機械学習における処理の負荷を軽減できる。
【0395】
なお、情報処理装置200は、第1の実施形態などの最小構成である。
【0396】
[情報処理システム]
次に、情報処理装置200の説明として、情報処理装置200が生成した学習済みモデルを用いる情報処理システム100について説明する。
【0397】
図16は、情報処理装置200を含む情報処理システム100の構成の一例を示すブロック図である。
【0398】
情報処理システム100は、情報処理装置200と、学習用データセット記憶装置250と、特徴量記憶装置270と、撮像装置300と、ベースデータセット記憶装置350と、検出装置400とを含む。なお、以下の説明において、動作に必要なパラメタは、予め、情報処理装置200に設定されているとする。
【0399】
撮像装置300は、ベースデータセットとなる画像を撮影する。
【0400】
ベースデータセット記憶装置350は、ベースデータセットとして、撮影された画像を保存する。なお、情報処理システム100のオペレータなどが、ベースデータセットに必要な情報を追加する。例えば、オペレータなどは、ベースデータセットに含まれる機械学習の対象となる物体(検出対象物体)に関する情報を、ベースデータセットに追加する。なお、このような情報の追加において、オペレータなどは、ベースデータセットに所定の機械学習を適用してもよい。
【0401】
情報処理装置200は、ベースデータセット記憶装置350が保存しているベースデータセットを用いて、データセットを生成する。そして、情報処理装置200は、生成したデータセットを学習用データセット記憶装置250に保存する。
【0402】
そして、情報処理装置200は、データセットに含まれる画像の特徴量を計算し、計算した特徴量を特徴量記憶装置270に保存する。
【0403】
そして、情報処理装置200は、特徴量記憶装置270が保存している特徴量と、学習用データセット記憶装置250が保存しているデータセットとを用いて機械学習を実行する。
【0404】
そして、情報処理装置200は、機械学習の結果として学習済みモデルを生成し、生成した学習用データセット記憶装置250に保存する。
【0405】
学習用データセット記憶装置250は、情報処理装置200が生成したデータセットと学習済みモデルとを保存する。このように、学習用データセット記憶装置250は、データセット記憶部40に相当する機能を実現する装置である。
【0406】
特徴量記憶装置270は、情報処理装置200が計算した特徴量を保存する。このように、特徴量記憶装置270は、特徴量記憶部50に相当する機能を実現する装置である。
【0407】
なお、
図16は、ベースデータセット記憶装置350と、学習用データセット記憶装置250と、特徴量記憶装置270とを別装置として示している。ただし、これらの記憶装置の一部又はすべては、1つの装置に含まれていてもよい。また、これらの記憶装置は、上記以外の機能を実現してもよい。例えば、いずれかの記憶装置が、パラメタを保存してもよい。
【0408】
検出装置400は、情報処理装置200が生成した学習済みモデルを用いて、所定の検出処理(例えば、取得した画像における物体の検出)を実行する。
【0409】
情報処理装置200は、学習済みモデルの生成において、機械学習の処理の負荷を軽減する。そのため、情報処理システム100は、検出装置400が用いる学習済みモデルの生成における処理の負荷を軽減できる。
【0410】
なお、情報処理システム100は、情報処理装置200に替えて、情報処理装置1、1B、及び1Cのいずれかを用いてもよい。
【0411】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【0412】
1 情報処理装置
1B 情報処理装置
1C 情報処理装置
10 学習制御部
10B 学習制御部
20 データセット生成部
20B データセット生成部
21 データセット生成制御部
21B データセット生成制御部
22 ベース画像選択部
22B ベース画像選択部
23 対象領域選択部
23B 対象領域選択部
24 画像合成部
30 学習処理部
30B 学習処理部
30C 学習処理部
31 学習処理制御部
31C 学習処理制御部
32 特徴量計算部
32C 特徴量計算部
33 学習実行部
33C 学習実行部
40 データセット記憶部
50 特徴量記憶部
100 情報処理システム
200 情報処理装置
250 学習用データセット記憶装置
270 特徴量記憶装置
300 撮像装置
350 ベースデータセット記憶装置
400 検出装置
600 情報処理装置
610 CPU
611 演算ユニット
620 ROM
630 RAM
640 内部記憶装置
650 IOC
660 入力機器
670 表示機器
680 NIC
690 記録媒体