以下に、本願に係る画像処理装置、画像処理方法及び画像処理プログラムの実施の形態を図面に基づいて詳細に説明する。また、本発明は、以下に説明する実施の形態により限定されるものではない。
[実施の形態]
まず、実施の形態について説明する。本実施の形態は、ディープニューラルネットワークによって構成されるモデルを用いて画像解析を行う解析システムに関する。モデルは、被写体を含む切り出し済みの画像(切出済画像)における複数の領域ごとに特徴量を抽出し、抽出した特徴量を用いて、画像内の被写体が属する属性の推定や被写体と検出対象の被写体との照合を行うアテンションモデルである。
[解析システムの構成]
まず、本実施の形態における解析システムの構成について説明する。図1は、実施の形態における解析システムの構成の一例を示すブロック図である。
図1に示すように、実施の形態に係る解析システム1は、ディープニューラルネットワークによって構成されるモデル(アテンションモデルモデル)を用いて画像解析を行う解析装置30と、解析装置30のモデルの学習を実行する学習システム2とを有する。
図2は、解析装置30による解析処理の内容を説明する図である。解析装置30が用いるモデルは、矩形の切出済画像(矩形画像)における複数の領域ごとに特徴量を抽出する複数の特徴抽出モジュール(モジュール)と、各特徴抽出モジュールが抽出した特徴量を用いて、切出済画像内の被写体が属する属性の推定や被写体と検出対象の被写体との照合を行う解析モジュールとを有する。
図2に示すように、解析装置30は、切出済画像から、各特徴抽出モジュールに対応する領域を割り当てる(図2の(1)参照)。この領域には、属性推定対象或いは照合対象の被写体(オブジェクト)の一部が含まれる。オブジェクトは、例えば、人物や物体である。例えば、オブジェクトが人物である場合、解析装置30は、人物の頭部、胸部、腰部及び足部のそれぞれを含む領域R1~R4を、それぞれ対応するモデルの特徴抽出モジュールに割り当てる。
そして、解析装置30は、モデルを用いて画像解析を行う(図2の(2)参照)。具体的には、解析装置30では、モデルにおける各特徴抽出モジュールが、それぞれ割り当てられた領域ごとに特徴量(特徴量ベクトル)を抽出する特徴量抽出ステップを行う(図2のステップS1)。続いて、モデルは、各特徴抽出モジュールが抽出した特徴量を用いて、画像内のオブジェクトが属する属性を推定する属性推定ステップ(図2のステップS2)またはオブジェクトと検出対象のオブジェクトとを照合する照合ステップ(図2のステップS3)を行い、解析結果を出力する。属性は、人物の性別、年代の他、骨格や歩容も含む。また、属性は、人間のみに限らず、人間以外の動物の種別等であってもよく、また、車両、ロボット等の物体であってもよい。
図2の例では、モデルは、入力された画像xの人物の属性を「男性」であると推定する。また、モデルは、入力された画像xの人物と検出対象の人物とを照合し、画像xの人物と検出対象の人物とは「他人」であると解析する。
また、図1に示すように、学習システム2は、モデルの学習を行う学習装置20と、学習装置20の前段に設けられた画像処理装置10とを有する。
画像処理装置10は、学習装置20がモデルの学習に使用する学習用画像を生成する。画像処理装置10は、画像からオブジェクトが写る部分を切り出した矩形の切出済画像を、2以上の画像に切断する。例えば、切出済画像は、画像ごとに、オブジェクトの属性及びオブジェクトの識別情報を含むオブジェクト情報が付与されたものであり、データセットとして公開されたものである。
画像処理装置10は、公開されている画像データセットの切出済画像を取得し、これらの切出済画像を2以上の画像に切断する。ここで、画像処理装置10は、切出済画像を等分割するのではなく、切断位置を変化させて分割する。これによって、画像処理装置10は、切断画像に写るオブジェクトの部分や、切断画像に占めるオブジェクトの面積に変化を付けている。そして、画像処理装置10は、各切断画像を学習用画像として学習装置20に出力する。画像処理装置10は、各切断画像に、元の切出済画像に付与されたオブジェクト情報と切断情報とを付与し、学習用画像として出力する。なお、画像処理装置10が生成する画像は、学習用画像に限らず、所望の被写体が撮像されているか否かの解析のために用いられる画像であればよい。
学習装置20は、画像処理装置10が生成した切断画像を学習用画像として用いてモデルの学習を行う。学習装置20は、切断画像からの各モジュールに対する領域の割り当てを学習する第1の学習と、各モジュールにおいて抽出された各特徴量に基づく画像解析を学習する第2の学習と、を実行する。
このように、本実施の形態では、学習装置20の前段の画像処理装置10において、切出済画像を、切断位置を変化させて2以上の画像に切断することによって、学習用画像のバリエーションを増やしている。この結果、学習装置20は、多種多様な学習用画像を用いてモデルの学習を行うため、モデルの解析精度を向上できる。
[画像処理装置]
次に、画像処理装置10の構成について説明する。図3は、画像処理装置10の構成の一例を示すブロック図である。図3に示すように、画像処理装置10は、通信部11、記憶部12、制御部13、入力部14及び出力部15を有する。
通信部11は、ネットワーク等を介して接続された他の装置との間で、各種情報を送受信する通信インタフェースである。通信部11は、LAN(Local Area Network)やインターネットなどの電気通信回線を介した他の装置(例えば、学習装置20)と制御部13(後述)との間の通信を行う。
記憶部12は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子によって実現され、画像処理装置10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部12は、画像データセット121及び学習用画像122を有する。
画像データセット121は、例えば、公開された切出済画像のデータセットである。切出済画像は、画像全体に対して、所望の被写体が占める割合が、背景が占める割合より大きい矩形画像である。切出済画像は、予め、他の装置等によって、画像全体に対して、所望の被写体が占める割合が、背景が占める割合より大きくなるように、各種画像から切り出された画像である。なお、切出済画像は、画像ごとに、オブジェクトの属性及びオブジェクトの識別情報を含むオブジェクト情報が付与される。
学習用画像122は、後述する切断部131によって処理された複数の切断画像123と、元の切出済画像のどの位置で切断したかを示す切断情報124とが対応付けられた画像である。また、切断画像123には、元の切出済画像に付与されたオブジェクト情報が付与される。学習用画像122は、学習装置20に出力され、学習装置20によるモデルの学習のために使用される。
制御部13は、画像処理装置10全体を制御する。制御部13は、例えば、CPU(Central Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路である。また、制御部13は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、内部メモリを用いて各処理を実行する。また、制御部13は、各種のプログラムが動作することにより各種の処理部として機能する。制御部13は、切断部131及び出力制御部132を有する。
切断部131は、画像データセット121の各切出済画像を、長辺の双方を通過する直線で切断する。例えば、切断部131は、切出済画像の短辺と平行である直線で切出済画像を切断する。なお、切出済画像は長方形である他、正方形であってもよい。切断部131は、正方形の切出済画像の場合、切断部131は、例えば、長辺と短辺とを、画像の縦方向である第一の辺と、画像の横方向の第二の辺とに読み替えてもよい。また、切断部131は、直線に限らず、直線以外の線で切出済画像を切断してもよい。具体的には、切断部131は、被写体が撮影されている領域のエッジに応じて、例えば、複数の直線の組合せ、曲線、または、直線と曲線の組合せで切出済画像を切断してもよい。切出済画像の被写体がお辞儀をしている人間である場合、背中が曲がっていることから、直線の組合せ若しくは曲線での切断が好ましい。
出力制御部132は、切断部131によって切断された切断画像を、所望の被写体が撮像されているか否かの解析のために用いられる画像、例えば、学習用の画像として、通信部11等を介して、学習装置20に出力される。出力制御部132は、学習用の画像として、切断画像123を含む学習用画像122を学習装置20に出力する。
入力部14は、ユーザによる入力操作に対応して、画像処理装置10に対する各種指示情報の入力を受け付けるデバイス装置である。例えば、入力部14は、マウスやキーボード等の入力デバイスを用いて実現される。出力部15は、例えば、液晶ディスプレイなどによって実現され、画像処理装置10によって表示制御された画面が表示される。
[切断部]
次に、図3に示す切断部131の処理について説明する。図4~図7は、切断部131の処理内容を説明する図である。図4~図7の例では、切出済画像を2つの画像に切断する例について説明する。
切断部131の処理対象は、切出済画像である。例えば、図4に示す切出済画像G1を例に処理内容を説明する。切断部131は、切出済画像G1の短辺と平行である直線Lで切出済画像G1を切断する。この際、直線Lの位置は、切出済画像G1の長辺方向に沿って、上下に変更できる(図4の矢印Y11参照)。このため、切断部131は、直線Lの位置を長辺方向に沿って上下に変えながら、各切出済画像を切断することで、学習用画像のバリエーションを増やしている。
ここで、切断位置を変化させてバリエーションを増やす理由について説明する。一つ目の理由は、学習用の画像を増やすことにある。二つ目の理由は、撮像されている被写体の様々な部位ごとの画像を得るためである。均等に切断してしまうと、例えば、人間が被写体であれば、上半身と下半身の画像が多く取得できると想定される。この画像で学習を行ってしまうと、上半身と下半身とについて過学習されてしまい、解析対象の被写体が撮像されている角度が異なる場合や、そもそも回析対象の被写体が一部しか撮像されていなかった場合、つまり上半身、下半身、上半身及び下半身のいずれにも分類されないように撮像されていた場合に推定精度が低くなってしまうためである。このように、画像処理装置10は、切断位置を変化させて切断した画像を学習用の画像にするという簡単な処理で、被写体の様々な部位の画像を得ることができる。この結果、学習装置20は、画像処理装置10によって生成された、被写体の様々な部位の画像も用いて学習を行うことで、被写体が撮影されている位置や部位によらず、正確な推定を行える場合を増やすことができる。
具体的には、切断部131は、切出済画像G1を上下に2等分する。その他に、切断部131は、図5に示すように、上部70%の領域が残るように切出済画像G1を直線L1で切断して切出済画像G1の上部70%の領域が残る画像(上70%身画像G11)を生成する。また、切断部131は、図6に示すように、下部40%の領域が残るように直線L2で切出済画像G1を切断して、切出済画像G1の下部40%の領域が残る画像(下40%身画像G12)を生成する。もちろん、切断部131は、図7に示すように、切出済画像G1を直線L1で切断して、上70%身画像G11と、切出済画像G1の下部30%の領域が残る画像(下30%身画像G13)との2枚の切断画像を取得してもよい。
ここで、切断部131は、切出済画像に対する切断位置(直線L1の長辺方向の位置)を、確率分布を用いて分散させている。具体的には、切断部131は、画像データセット121の複数の切出済画像に対し、切出済画像の長辺の座標を確率変数とみなした確率分布にしたがって、複数の切出済画像に対する長辺の切断位置を分散させる。
例えば、切断部131が、標準正規分布を用いて切断処理を行う場合を例に説明する。この場合、切出済画像の長辺を、確率変数Xとして、長辺の中心を0とする。そして、処理対象の画像数を100枚とする。そして、切断部131が、切出済画像を長辺長さの10%刻みで切断する場合を例に説明する。
この際、切断部131は、標準正規分布にしたがい、画像データセット121から40枚の切出済画像を取り出し、これらの40枚の切出済画像を、それぞれ長辺の中心0を通る直線で切断して、上50%身画像を得る。そして、切断部131は、標準正規分布にしたがい、画像データセット121から24枚の切出済画像を取り出し、これらの24枚の切出済画像を、下部40%の領域が残る切断位置でそれぞれ切断して、下40%身画像を得る。また、切断部131は、標準正規分布にしたがい、画像データセット121から5枚の切出済画像を取り出し、これらの5枚の切出済画像を、上部70%の領域が残る切断位置でそれぞれ切断して、上70%身画像を得る。
このように、切断部131は、標準正規分布にしたがい、切断対象となる切出済画像の枚数と、切出済画像に対する長辺方向の切断位置とを設定し、切出済画像を切断する。例えば、切出済画像の長辺の座標を確率変数とみなした確率分布にしたがい、切断対象となる切出済画像の枚数と、切出済画像の長辺方向の切断位置とをそれぞれ設定した条件が切断条件として設定されており、切断部131は、この切断条件にしたがって切出済画像の切断を行う。
なお、切断部131は、標準正規分布に限らず、分散をハイパーパラメータとして変更可能にした正規分布を適用して切出済画像に対する切断位置を設定してもよい。また、切断部131は、正規分布に限らず、一様分布やコーシー分布など、他の確率分布を適用して切出済画像に対する切断位置を設定してもよい。
上記のように、切断部131は、切断位置を分散させて切出済画像を2以上の画像に切断することによって、身体の一部しか写っていない画像を多種多様に生成し、学習用画像122として学習装置20に出力する。このため、学習装置20は、このような身体の一部しか写っていない多種多様の学習用画像122を用いてモデルの学習を実行できるため、モデルの解析精度を高めることができる。
[学習装置]
次に、学習装置20の構成について説明する。図8は、学習装置20の構成の一例を示すブロック図である。図8に示すように、学習装置20は、通信部21、記憶部22、制御部23、入力部24及び出力部25を有する。
通信部21は、図3に示す通信部11と同様の機能を有し、画像処理装置10や解析装置30との間の通信を行う。入力部24は、図3に示す入力部14と同様の機能を有し、例えば、マウスやキーボード等の入力デバイスを用いて実現される。出力部25は、図3に示す出力部15と同様の機能を有し、例えば、液晶ディスプレイなどによって実現される。
記憶部22は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子によって実現され、学習装置20を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部22は、画像処理装置10から送信された学習用画像122及びモデル221を有する。
モデル221は、切出済画像における複数の領域ごとに特徴量を抽出し、抽出した特徴量を用いて、画像内の被写体が属する属性の推定や被写体と検出対象の被写体との照合を行うアテンションモデルである。モデル221は、ディープニューラルネットワークによって構成される。モデル221は、複数のモジュールにおいて画像における複数の領域ごとに特徴量を抽出し、抽出した各特徴量を基に画像に所望の被写体が撮像されているか否かを解析する。モデル221は、複数のモジュールにおいて抽出した各特徴量を統合し、統合した特徴量を基に、画像に所望の被写体が撮像されているか否かを解析する。モデル221の各種パラメータは、後述する学習部232による学習用画像の学習によって調整される。
制御部23は、図3に示す制御部13と同様の機能を有し、学習装置20全体を制御する。制御部23は、各種のプログラムが動作することにより各種の処理部として機能する。制御部23は、割当部231及び学習部232を有する。
割当部231は、学習用画像122の切断画像から、モデル221の各モジュールに対応する領域を設定し、各領域を、それぞれ対応するモジュールに割り当てる。なお、切断画像123には、元の切出済画像に付与されたオブジェクト情報が付与されており、また、元の切出済画像のどの位置で切断したかを示す切断情報124が対応付けられている。
学習部232は、切断画像からの各モジュールに対する領域の割り当てを学習する第1の学習と、各モジュールにおいて抽出された各特徴量に基づく切断画像の画像解析を学習する第2の学習と、を実行する。
[モデル]
まず、図9及び図10を用いて、モデル221の概要及び学習処理の概要を説明する。図9及び図10は、モデルの概要及び学習処理の概要を説明する図である。モデル221は、解析対象の画像から、オブジェクトの映っている部分を切り出す切出モジュール(図9において図示省略)と、切り出した部分の特徴量を抽出する特徴量抽出モジュールと、抽出した特徴量に基づき、切り出した部分の解析を行う解析モジュールとを有するものとする。
特徴量抽出モジュールは、画像から特徴量を抽出する複数のモジュールから構成される。このモジュールは、図9に示すように、例えば、HA-CNN等で用いられるlocal branchである。以下、特徴量抽出モジュールを構成するモジュールはlocal branchである場合を例に説明する。なお、この特徴量抽出モジュールは、global branchを含んでいてもよい。解析モジュールは、例えば、画像に写ったオブジェクトの分類を行う分類モジュールと、画像に写ったオブジェクトの属性を推定する属性推定モジュールとを有する。
この特徴量抽出モジュールの学習は、図9に示すように、解析モジュールから逆伝搬されてきた誤差を基に、特徴量抽出モジュールの重みパラメータを更新することにより行われる。学習部232は、分類モジュールおよび属性推定モジュールから逆伝搬されてきた誤差に基づき、特徴量抽出モジュールの各local branchの重みパラメータを更新する。これによって、学習部232は、特徴量抽出モジュールの各local branchを、解析モジュールによる解析精度を向上させるように最適化する。例えば、学習部232は、解析モジュールによる解析精度を向上させるよう、各local branchがそれぞれどの領域をピックアップすればよいかの学習を行い、各local branchが担当する領域を更新する。この学習を、特徴量抽出モジュールの間接的な反省(第2の学習)とする(図10参照)。
また、学習部232は、モデル221の各local branchにそれぞれ割り当てられた領域を精度よくピックアップできるように、特徴量抽出モジュールの直接的な反省(第1の学習)も実行する。以降、直接的な反省について説明する。
まず、直接的な反省においては、割当部231が、特徴量抽出モジュールのlocal branchそれぞれに、各local branchが担当する(ピックアップすべき)領域を割り当てる。割当部231は、local branchごとに、各local branchが、オブジェクトを構成する領域群のうち、どの領域をピックアップし、特徴量を抽出するかを割り当てる。これらの領域は、オブジェクトの一部を含む。また、特徴量抽出モジュールにおいてピックアップする領域の数、種類は任意の数、種類でよい。例えば、オブジェクトが人物である場合、各領域は、頭部、胸部、腰部及び足部等を含む領域である。
例えば、割当部231は、図9の1本目のlocal branch401が担当する領域として、画像xのうち、人物の頭部の領域R4を割り当てる。割当部231は、2本目のlocal branchが担当する領域として、画像xのうち、人物の胸部の領域R2を割り当て、3本目のlocal branchが担当する領域として、画像xのうち、人物の腰部の領域R3を割り当てる。そして、割当部231は、図9のlocal branch402が担当する領域として、画像xのうち、人物の足部の領域R4を割り当てる。
学習部232は、特徴量抽出モジュールのlocal branchそれぞれがピックアップすべき領域の学習を行う。例えば、学習装置20は、学習用画像の1枚1枚に対して各local branchがピックアップすべき領域が存在する領域(local branchがピックアップすべき領域)を示した情報を用いて、local branchそれぞれがピックアップすべき領域の学習を行う。例えば、学習部232は、local branch401が担当する領域と、local branch401がピックアップした領域との間に誤差があれば、誤差を低減するようlocal branch401についてのパラメータ値の調整を行う。
このような調整を繰り返すことにより、local branchそれぞれは、自身に割り当てられた領域を正確にピックアップできるようになる。このような調整(学習)を、特徴量抽出モジュールの直接的な反省とする(図10参照)。
このように、学習部232は、画像ごとに当該画像における領域を示す情報を用いて、local branchそれぞれが当該local branchに割り当てられた領域を精度よくピックアップできるようlocal branchそれぞれの学習(第1の学習)を行い、また、local branchそれぞれによりピックアップされた領域の特徴量を用いた画像解析の結果を用いて、当該画像解析の解析精度をより向上させるようlocal branchそれぞれの学習(第2の学習)を行う。
なお、学習部232が、各local branchの直接的反省(第1の学習)を行う場合の損失関数は、例えば、以下のようなものが考えられる。
例えば、各local branchがピックアップする領域の形状が矩形であり、i本目のlocal branchが実際にピックアップした矩形領域の座標が(x0,x1,y0,y1)であり、i本目のlocal branchがピックアップすべき矩形領域の座標が以下のように与えられた場合を考える。
この場合、学習部232は、i本目のlocal branchに直接伝播する損失関数として、例えば、以下の式(1)を用いる。
学習部232は、直接的反省および間接的反省により得られた特徴量抽出モジュールのパラメータ値を用いて、記憶部22内のモデル221を更新する。
[切断画像を用いた学習]
ここで、学習用画像122は、画像処理装置10によって生成された切断画像123である。すなわち、学習部232は、身体の一部しか写っていない、多種多様な画像を用いて学習を行う。図11~図14は、切断画像を用いた学習を説明する図である。図11~図14では、4本のlocal branchに合わせて、4つの領域を画像からピックアップする場合を例に説明する。
まず、全身が写る画像G1(図11参照)については、4分割した各領域のうち、1本目のlocal branchに画像G1の頭部の領域R1のデータが割り当てられ、2本目のlocal branchに画像G1の胸部の領域R2のデータが割り当てられ、3本目のlocal branchに画像G1の腰部の領域R3のデータが割り当てられ、4本目のlocal branchに画像G1の足部の領域R4のデータが割り当てられる。この場合には、各local branchにそれぞれ対応する領域のデータが欠けることなく割り当てられ、各local branchは、割り当てられたデータからそれぞれ特徴量を抽出する。
また、図12を参照して、全身画像の2等分画像のうちの上半身画像G12について説明する。この場合、割当部231は、上半身画像G12を全身が写る画像G1と同じ大きさに引き伸ばし、2等分したうちの上部領域R11のデータを1本目のlocal branchに割り当て、下部領域R21のデータを2本目のlocal branchに割り当てる。これによって、1,2本目のlocal branchは、割り当てられた領域R11,R21の各データからそれぞれ特徴量を抽出する。これに対し、3,4本目のlocal branchについては、対応する領域に画像データがないため、3,4本目のlocal branchは、データ無しに該当する特徴量を出力する。
そして、図13を参照して、上70%身画像G11について説明する。この場合、割当部231は、上70%身画像G11を全身が写る画像G1と同じ大きさに引き伸ばし、頭部領域R12のデータを1本目のlocal branchに割り当て、胸部領域R22のデータを2本目のlocal branchに割り当てる。これによって、1,2本目のlocal branchは、割り当てられた領域R12,R22の各データからそれぞれ特徴量を抽出する。
そして、割当部は、上70%身画像G11の腰部領域R32のデータを3本目のlocal branchに割り当てる。ここで、腰部領域R32は、腰部が写っている領域R32-1には画像データがあるが、画像が切れている領域R32-2には画像データがない。このため、3本目のlocal branchは、腰部領域R32のうち、腰部が写っている領域R32-1のデータから特徴量を抽出する。すなわち、3本目のlocal branchは、腰部領域R32の一部のデータだけで特徴量を抽出する。また、4本目のlocal branchについては、対応する領域R42に画像データがないため、4本目のlocal branchは、データ無しに該当する特徴量を出力する。
そして、図14を参照して、下40%身画像G12について説明する。この場合、割当部231は、下40%身画像G12を全身が写る画像G1と同じ大きさに引き伸ばし、腰部領域R33のデータを3本目のlocal branchに割り当て、足部領域R34を4本目のlocal branchに割り当てる。これによって、3,4本目のlocal branchは、割り当てられた領域R33,R43の各データからそれぞれ特徴量を抽出する。ここで、腰部領域R33は、腰部の下部が写っている領域R33-2には画像データがあるが、画像が切れている領域R33-1には画像データがない。このため、3本目のlocal branchは、腰部領域R33のうち、腰部の下部が写っている領域R33-2のデータから特徴量を抽出する。すなわち、3本目のlocal branchは、腰部領域R33の一部のデータだけで特徴量を抽出する。また、1,2本目のlocal branchについては、対応する領域に画像データがないため、1,2本目のlocal branchは、データ無しに該当する特徴量を出力する。
このように、各local branchに割り当てられた領域のデータに応じて、各local branchから特徴量が出力される。
本実施の形態において採用するアテンションモデルは、画像から領域をピックアップし、各local branchに領域を割り当て、各local branchが各領域の画像データから特徴量を抽出する構成を有する。ここで、実際の解析時には、全身が写る画像ではなく、身体の一部しか写っていない画像を解析する場合が多い。このため、実際の解析においては、アテンションモデルの各local branchに割り当てられる領域の一部にしか画像データがない場合が多い。
従来では、使用していた学習用画像は、全身が写っている公開データセットの切出済画像を用いていたため、学習装置は、各local branchは、画像データで全てが占められた画像しか学習できなかった。したがって、従来の学習装置は、領域の一部にしか画像データないものについては学習できず、実際の解析の場面において、所望の精度を満たすことが難しい場合があった。
これに対し、本実施の形態では、上70%身画像G11、下40%身画像G12のように、画像処理装置10が切断位置を変化させて切出済画像を切断して生成した、身体の一部の写り方に多種多様のバリエーションを持たせた画像を学習用画像として用いる。これによって、学習時には、この切断画像からピックアップされて各local branchに割り当てられる領域も、画像データの占め方が多様となり、各local branchは、画像データの占め方が多様である多数の領域の特徴量の抽出を学習することができる。
このように、学習装置20は、これらの切断画像を学習用画像として用いることによって、身体の一部しか写っていない画像についても、十分に学習することができ、モデルの画像解析の精度を高めることできる。
[解析装置]
次に、解析装置30の構成について説明する。図15は、解析装置30の構成の一例を示すブロック図である。図15に示すように、解析装置30は、通信部31、記憶部32、制御部33、入力部34及び出力部35を有する。
通信部31は、図3に示す通信部11と同様の機能を有し、解析装置30との間の通信を行う。入力部34は、図3に示す入力部14と同様の機能を有し、例えば、マウスやキーボード等の入力デバイスを用いて実現される。出力部35は、図3に示す出力部15と同様の機能を有し、例えば、液晶ディスプレイなどによって実現される。
記憶部32は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子によって実現され、解析装置30を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部32は、解析対象である解析用画像321、学習装置20による学習によってパラメータが最適化されたアテンションモデルであるモデル322、及び、画像に写ったオブジェクトの分類結果或いは画像に写ったオブジェクトの属性の推定結果を示す解析結果323を有する。
制御部33は、図3に示す制御部13と同様の機能を有し、解析装置30全体を制御する。制御部33は、各種のプログラムが動作することにより各種の処理部として機能する。制御部33は、割当部331及び解析部332を有する。
割当部331は、解析用画像から、モデル322の各モジュールに、対応する領域を割り当てる。ピックアップする領域、及び、ピックアップした領域の各モジュールへの割り当ては、学習装置20における学習によってそれぞれ最適化されている。
解析部332は、モデル322を用いて、各モジュールにおける領域ごとの特徴量抽出処理と、各モジュールが抽出した特徴量を用いて、解析用画像内の被写体が属する属性の推定や被写体と検出対象の被写体との照合を行う。
[画像処理の処理手順]
次に、画像処理装置10による画像処理の処理手順について説明する。図16は、実施の形態に係る画像処理の処理手順を示すフローチャートである。
図16に示すように、画像処理装置10では、まず、切断部131が切断条件を取得する(ステップS11)。切断条件は、例えば、切出済画像の長辺の座標を確率変数とみなした確率分布にしたがい、切断対象となる切出済画像の枚数と、切出済画像の長辺方向の各切断位置とを設定した条件である。確率分布には、正規分布、一様分布、コーシー分布等がある。
切断部131は、画像データセット121から、切断条件にしたがって、設定された枚数の切出済画像を読み出して(ステップS12)、切断条件において設定された切断位置で切断する(ステップS13)。この際、切断部131は、切出済画像の短辺と平行な直線で切断を行う。
そして、切断対象の画像がある場合(ステップS14:Yes)、切断部131は、切断条件にしたがって、次の切出済画像を読み出して(ステップS12)、切断条件において設定された切断位置で切断する(ステップS13)。また、切断対象の画像がない場合(ステップS14:No)、切断部131は、各切断画像に、元の切出済画像に付与されたオブジェクト情報と切断情報とを付与し、学習用画像として出力する(ステップS15)。
[学習処理の処理手順]
次に、学習装置20による学習処理の処理手順について説明する。図17は、実施の形態における学習処理の処理手順を示すフローチャートである。
図17に示すように、学習装置20では、画像処理装置10によって生成された切断画像及び切断情報を学習用画像として読み出す(ステップS21)。そして、学習装置20では、割当部231が、学習対象のディープニューラルネットワークの特徴量抽出モジュールにおける各local branchへの領域の割り当てを行う(ステップS22)。その後、学習部232は、特徴量抽出モジュールの各local branchの学習を行う(ステップS23)。すなわち、学習部232は、解析モジュールから逆伝搬されてきた誤差を用いた各local branchの間接的反省に加え、切断画像を用いた各local branchの直接的反省を行う。
[実施の形態の効果]
アテンションモデルの学習用画像に、本実施の形態を適用した場合の解析精度と未適用の場合の解析精度を評価した。表1に、その評価結果を示す。
表1において、未適用は、画像データセット121の各切出済画像を、長辺の双方を通過する直線で2等分に切断した画像を学習用画像として学習したアテンションモデルを示す。また、適用は、切出済画像の長辺の座標を確率変数とみなした確率分布にしたがって、画像データセット121の各切出済画像に対する長辺の切断位置を分散させて切断した切断画像を学習用画像として学習したアテンションモデルを示す。また、Rank-1及びmAPは、照合分野で使用される指標である。Rank-1及びmAPは、いずれも0~100%の値を取り、値が高いほど照合精度が良好であることを示す。
表1に示すように、Rank-1及びmAPのいずれの指標においても、本実施の形態を適用することによって、本実施の形態を定要しない場合と比して、アテンションモデルの照合精度が向上したことが分かる。
本実施の形態では、画像処理装置10が、学習用画像として、切断位置を変化させて切出済画像を2以上の画像に切断した、身体の一部しか写っていない画像を多種多様に生成している。学習装置20は、これらの切断画像を学習用画像として用いることによって、身体の一部しか写っていない画像についても、十分に学習することができ、アテンションモデルの画像解析の精度を高めることできる。このように、本実施の形態に係る画像処理装置10は、画像解析の精度向上のために、解析のために用いられる適切な画像を提供することができる。
[実施形態のシステム構成について]
図1に示した画像処理装置10、学習装置20及び解析装置30の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、画像処理装置10、学習装置20及び解析装置30の機能の分散および統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散または統合して構成することができる。
また、画像処理装置10、学習装置20及び解析装置30においておこなわれる各処理は、全部または任意の一部が、CPUおよびCPUにより解析実行されるプログラムにて実現されてもよい。また、画像処理装置10、学習装置20及び解析装置30においておこなわれる各処理は、ワイヤードロジックによるハードウェアとして実現されてもよい。
また、実施の形態において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的に行うこともできる。もしくは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上述および図示の処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて適宜変更することができる。
[プログラム]
図18は、プログラムが実行されることにより、画像処理装置10、学習装置20及び解析装置30が実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM1011およびRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、画像処理装置10、学習装置20及び解析装置30の各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、画像処理装置10、学習装置20及び解析装置30における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093およびプログラムデータ1094は、ネットワーク(LAN(Local Area Network)、WAN(Wide Area Network)等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093およびプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施の形態について説明したが、本実施の形態による本発明の開示の一部をなす記述および図面により本発明は限定されることはない。すなわち、本実施の形態に基づいて当業者等によりなされる他の実施の形態、実施例および運用技術等はすべて本発明の範疇に含まれる。