(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024068400
(43)【公開日】2024-05-20
(54)【発明の名称】機械学習プログラム、機械学習方法および機械学習装置
(51)【国際特許分類】
G06N 20/00 20190101AFI20240513BHJP
G06T 7/00 20170101ALI20240513BHJP
G06V 40/16 20220101ALI20240513BHJP
【FI】
G06N20/00
G06T7/00 660A
G06V40/16 B
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022178823
(22)【出願日】2022-11-08
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(71)【出願人】
【識別番号】504176911
【氏名又は名称】国立大学法人大阪大学
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】川村 亮介
(72)【発明者】
【氏名】池本(武村) 紀子
(72)【発明者】
【氏名】長原 一
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096BA08
5L096CA04
5L096DA02
5L096EA35
5L096FA02
5L096GA51
5L096HA02
5L096HA11
5L096JA11
5L096KA04
5L096KA15
(57)【要約】
【課題】汎化性能を向上する。
【解決手段】記憶部11は、顔画像の入力に応じた第1の推論結果を出力する第1のモデル20により出力される、複数の顔画像それぞれに対応する第1の推論結果を記憶する。処理部12は、複数の顔画像のうち、それぞれの第1の推論結果41,42に応じた距離が閾値を超える第1の顔画像31と第2の顔画像32とを選択する。処理部12は、第1の顔画像31と第2の顔画像32とを合成した第3の顔画像51を用いて、顔画像の入力に応じて第2の推論結果を出力する第2のモデル60の機械学習を実行する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピュータに、
顔画像の入力に応じて第1の推論結果を出力する第1のモデルにより出力される、複数の顔画像それぞれに対応する前記第1の推論結果を取得し、
前記複数の顔画像のうち、それぞれの前記第1の推論結果に応じた距離が閾値を超える第1の顔画像と第2の顔画像とを選択し、
前記第1の顔画像と前記第2の顔画像とを合成した第3の顔画像を用いて、前記顔画像の入力に応じて第2の推論結果を出力する第2のモデルの機械学習を実行する、
処理を実行させる機械学習プログラム。
【請求項2】
前記第1の推論結果は、前記顔画像に対して推定された複数の感情要素それぞれの確率を示すクラス分類結果を含む、請求項1記載の機械学習プログラム。
【請求項3】
前記顔画像は表情の変化を示す動画像であり、
前記第1の推論結果は、前記顔画像に含まれる複数のフレームそれぞれの重みを示すアテンション値を含む、
請求項1記載の機械学習プログラム。
【請求項4】
前記第1の推論結果は、前記顔画像に対して推定された複数の感情要素それぞれの確率を示すクラス分類結果を含み、
前記第1の顔画像と前記第2の顔画像との選択では、前記クラス分類結果に基づく第1の距離が第1の閾値を超え、かつ、前記アテンション値に基づく第2の距離が第2の閾値を超える前記第1の顔画像と前記第2の顔画像とを選択する、
請求項3記載の機械学習プログラム。
【請求項5】
前記コンピュータに更に、
前記第1の顔画像の第1の重みと前記第2の顔画像の第2の重みとを用いて前記第1の顔画像と前記第2の顔画像とを透過合成することで前記第3の顔画像を生成し、前記第1の重みと前記第2の重みとを用いて前記第1の顔画像の第1のラベルと前記第2の顔画像の第2のラベルとの加重平均を計算することで前記第3の顔画像の第3のラベルを生成し、
前記第3の顔画像と前記第3のラベルとを含む訓練データを用いて、前記第2のモデルの機械学習を実行する、
請求項1記載の機械学習プログラム。
【請求項6】
コンピュータが、
顔画像の入力に応じて第1の推論結果を出力する第1のモデルにより出力される、複数の顔画像それぞれに対応する前記第1の推論結果を取得し、
前記複数の顔画像のうち、それぞれの前記第1の推論結果に応じた距離が閾値を超える第1の顔画像と第2の顔画像とを選択し、
前記第1の顔画像と前記第2の顔画像とを合成した第3の顔画像を用いて、前記顔画像の入力に応じて第2の推論結果を出力する第2のモデルの機械学習を実行する、
機械学習方法。
【請求項7】
顔画像の入力に応じて第1の推論結果を出力する第1のモデルにより出力される、複数の顔画像それぞれに対応する前記第1の推論結果を記憶する記憶部と、
前記複数の顔画像のうち、それぞれの前記第1の推論結果に応じた距離が閾値を超える第1の顔画像と第2の顔画像とを選択し、前記第1の顔画像と前記第2の顔画像とを合成した第3の顔画像を用いて、前記顔画像の入力に応じて第2の推論結果を出力する第2のモデルの機械学習を実行する処理部と、
を有する機械学習装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は機械学習プログラム、機械学習方法および機械学習装置に関する。
【背景技術】
【0002】
現在、カメラにより人間の顔を撮像した画像(顔画像)を基に人間の表情を認識するシステムが開発されている。表情の認識では、コンピュータが、機械学習によって生成されたモデルを用いて、顔画像から人間の喜び、怒り、恐怖、驚きなどの感情を推定することがある。モデルは、例えば、深層学習(DL:Deep Learning)によって生成されるニューラルネットワークである。
【0003】
なお、物体認識タスクに用いられるモデルの機械学習において、ランダムな割合で2つの画像を透過合成処理するとともに、ラベルも同様の割合で加重平均をとるMixUpと呼ばれる処理により、擬似的に新たな訓練データを生成する方法が提案されている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】Hongyi Zhang、他3名、“mixup: Beyond Empirical Risk Minimization”、[online]、2017年10月25日、arXiv:1710.09412[cs.LG]、[令和4年8月16日検索]、インターネット<URL:https://arxiv.org/pdf/1710.09412.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0005】
顔画像を訓練データとする機械学習では、アノテーションにコストがかかり、訓練データの大規模化が難しい。訓練データが少量であるほど、過学習が起きる可能性が高くなり、構築されるモデルの汎化性能が低下する。
【0006】
そこで、上記提案のように、例えばランダムに選択された2つの顔画像の合成により新たな訓練データを生成し、訓練データの量を増やすことが考えられる。しかし、モデルのタスクによっては、顔画像の分類先となるクラスが少ないことがある。例えば表情認識タスクの場合、喜びや怒りなどの感情の種類は比較的少ない。また、顔画像によっては、「恐怖による驚き」のように、主クラス以外のクラスの成分が混ざっていることがある。
【0007】
このため、例えば2つの顔画像をランダムに選択して合成する方法では、クラス分類の観点から似通った顔画像が合成対象として選択される可能性があり、結果的に元の訓練データと似た訓練データが生成されることがある。しかし、一様な訓練データを増やしても、モデルの汎化性能の向上を図ることはできない。
【0008】
1つの側面では、本発明は、汎化性能を向上することを目的とする。
【課題を解決するための手段】
【0009】
1つの態様では、コンピュータに以下の処理を実行させる機械学習プログラムが提供される。コンピュータは、顔画像の入力に応じて第1の推論結果を出力する第1のモデルにより出力される、複数の顔画像それぞれに対応する第1の推論結果を取得する。コンピュータは、複数の顔画像のうち、それぞれの第1の推論結果に応じた距離が閾値を超える第1の顔画像と第2の顔画像とを選択する。コンピュータは、第1の顔画像と第2の顔画像とを合成した第3の顔画像を用いて、顔画像の入力に応じて第2の推論結果を出力する第2のモデルの機械学習を実行する。
【0010】
また、1つの態様では、コンピュータが実行する機械学習方法が提供される。また、1つの態様では、記憶部と処理部とを有する機械学習装置が提供される。
【発明の効果】
【0011】
1つの側面では、汎化性能を向上できる。
【図面の簡単な説明】
【0012】
【
図1】第1の実施の形態の機械学習装置の例を説明する図である。
【
図2】第2の実施の形態の機械学習装置のハードウェア例を示す図である。
【
図3】機械学習装置の機能例を示すブロック図である。
【
図4】顔動画に対応する感情要素の分布の例を示す図である。
【
図7】事前モデルのモデル構造の例を示す図である。
【
図11】顔動画のペアの第1の選択例を示す図である。
【
図12】顔動画における表情変化の例を示す図である。
【
図13】顔動画のペアの第2の選択例を示す図である。
【
図14】機械学習の手順例を示すフローチャートである。
【
図15】第3の実施の形態の機械学習装置の機能例を示すブロック図である。
【
図16】機械学習の手順例を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
【0014】
図1は、第1の実施の形態の機械学習装置の例を説明する図である。
第1の実施の形態の機械学習装置10は、顔画像の入力に応じて、顔画像に対応する感情などの推論結果を出力するモデルを機械学習によって生成する。機械学習装置10を、情報処理装置やコンピュータなどと言うこともできる。機械学習装置10は、クライアント装置でもよいしサーバ装置でもよい。
【0015】
機械学習装置10は、記憶部11および処理部12を有する。記憶部11は、RAM(Random Access Memory)などの揮発性の半導体メモリでもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性ストレージでもよい。処理部12は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、DSP(Digital Signal Processor)などのプロセッサである。ただし、処理部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、RAMなどのメモリ(記憶部11でもよい)に記憶されたプログラムを実行する。複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0016】
記憶部11は、第1のモデル20、顔画像群30および推論結果群40を記憶する。第1のモデル20は、機械学習により事前に作成済のモデルである。モデルは、推論モデル、学習済モデルまたは認識モデルなどと言われてもよい。第1のモデル20は、顔画像の入力に応じて第1の推論結果を出力する。第1のモデル20には、例えばニューラルネットワークが用いられる。顔画像群30は、第1のモデル20に入力される顔画像のセットである。顔画像は静止画像でもよいし、動画像でもよい。推論結果群40は、顔画像に対して第1のモデル20が出力する第1の推論結果のセットである。
【0017】
第1の推論結果は、入力された顔画像から推定される、喜怒哀楽などの複数の感情要素それぞれが含まれる確率の分布、すなわち、複数の感情要素それぞれの確率を示すクラス分類結果を含んでもよい。この場合、第1の推論結果は、各感情要素の確率を要素として含むベクトルで表される。第1の推論結果は、顔画像が所定数のフレームを含む動画像である場合に、各フレームの重みを示すアテンション(attention)を含んでもよい。アテンションは注意度や注目度などと言われてもよい。アテンションは、どのフレームがどの程度推論に寄与しているかを示す指標である。一例では、アテンションは表情変化の度合いの大きさを示す。感情は表情に表出される。このため、表情変化の度合いが大きいフレームほど、感情に関する推論への寄与が大きい。アテンションが用いられる場合、第1の推論結果は、例えば各フレームにおける表情変化の度合いを要素として含むベクトルで表される。
【0018】
処理部12は、推論結果群40を取得する。処理部12は、第1のモデル20に顔画像群30に含まれる各顔画像を入力することで、推論結果群40を取得してもよい。処理部12は、顔画像群30および推論結果群40を予め記憶する記憶装置から推論結果群40を取得してもよい。後者の場合、第1のモデル20は、記憶部11に記憶されなくてもよい。第1のモデル20は、機械学習装置10の外部の記憶装置に記憶されてもよい。
【0019】
処理部12は、顔画像群30のうち、それぞれの第1の推論結果に応じた距離が閾値を超える第1の顔画像と第2の顔画像とを選択する。閾値は予め設定される。閾値をL0とする。距離は、2つのベクトルに対して計算されるユークリッド距離である。
【0020】
例えば、顔画像群30は顔画像31,32,33を含む。推論結果群40は推論結果41,42,43を含む。推論結果41は、顔画像31に対応する第1のモデル20の推論結果である。推論結果42は、顔画像32に対応する第1のモデル20の推論結果である。推論結果43は、顔画像33に対応する第1のモデル20の推論結果である。
【0021】
例えば、処理部12は推論結果41,42に応じた距離L1を計算する。距離L1は、閾値L0より大きい。この場合、処理部12は、顔画像31,32のペアを合成対象として選択する。
【0022】
また、処理部12は推論結果41,43に応じた距離L2を計算する。距離L2は、閾値L0以下である。この場合、処理部12は、顔画像31,33のペアを合成対象として選択しない。同様に、処理部12は、推論結果42,43に基づく距離と閾値L0との比較に応じて、顔画像32,33のペアを合成対象として選択し得る。
【0023】
処理部12は、第1の顔画像と第2の顔画像とを合成した第3の顔画像を用いて、顔画像の入力に応じて第2の推論結果を出力する第2のモデル60の機械学習を実行する。例えば、処理部12は、選択した顔画像31,32を合成することで、顔画像51を生成する。そして、処理部12は、顔画像51を用いて第2のモデル60の機械学習を実行する。第2のモデル60の機械学習には、顔画像群30に含まれる各顔画像も利用される。第2のモデル60には、例えばニューラルネットワークが用いられる。第2のモデル60のモデル構造は、第1のモデル20と同じでもよいし、異なってもよい。第2のモデル60による第2の推論結果は、顔画像に対して推定された感情を示す情報を含み得る。
【0024】
顔画像31,32の合成には、透過合成が用いられてもよい。1つ目の画像の画素値のベクトルをX1、2つ目の画像の画素値のベクトルをX2とし、透過合成における1つ目の画像の画素値の割合をλ(0<λ<1)とする。すると、透過合成は、λX1+(1-λ)X2と表される。1つ目の画像のラベルをy1、2つ目の画像のラベルをy2とすると、合成された画像のラベルyは、y=λy1+(1-λ)y2と計算される。ラベルは、機械学習において、顔画像と共に訓練データとして用いられる情報である。ラベルは、各顔画像に対して予め与えられる。ラベルは、第1のモデル20が出力する感情要素の分布でもよいし、当該感情要素とは異なる感情要素の分布でもよい。
【0025】
第1の実施の形態の機械学習装置10によれば、顔画像の入力に応じた第1の推論結果を出力する第1のモデルにより出力される、複数の顔画像それぞれに対応する第1の推論結果が取得される。複数の顔画像のうち、それぞれの第1の推論結果に応じた距離が閾値を超える第1の顔画像と第2の顔画像とが選択される。第1の顔画像と第2の顔画像とを合成した第3の顔画像を用いて、顔画像の入力に応じて第2の推論結果を出力する第2のモデルの機械学習が行われる。
【0026】
これにより、モデルの汎化性能を向上できる。第1の推論結果に応じた距離がある程度離れた顔画像のペアを選択して合成することで、似通った顔画像のペアが合成されることを抑制できる。このため、訓練データの多様性を効率的に向上できる。訓練データの多様性が向上することで、機械学習により生成されるモデルの、訓練データに含まれないデータに対する識別性能、すなわち、汎化性能を向上することができる。
【0027】
なお、第1の推論結果は、顔画像に対して推定された複数の感情要素それぞれの確率を示すクラス分類結果を含んでもよい。これにより、複数の感情要素のクラス分類結果が異なる顔画像同士を合成対象にでき、訓練データの多様性を効率的に向上できる。その結果、第2のモデルの汎化性能を向上できる。
【0028】
また、顔画像は表情の変化を示す動画像でもよい。第1の推論結果は、顔画像に含まれる複数のフレームそれぞれの重みを示すアテンションを含んでもよい。これにより、各フレームの時系列変化が異なる顔画像同士を合成対象にでき、訓練データの多様性を効率的に向上できる。その結果、第2のモデルの汎化性能を向上できる。
【0029】
また、第1の推論結果は、顔画像が表情の変化を示す動画像である場合に、顔画像に対して推定された複数の感情要素それぞれの確率を示すクラス分類結果を含んでもよい。この場合、処理部12は、当該クラス分類結果に基づく第1の距離が第1の閾値を超え、かつ、アテンションの値(アテンション値)に基づく第2の距離が第2の閾値を超える第1の顔画像と第2の顔画像とを合成対象として選択してもよい。これにより、訓練データの多様性を効率的に向上できる。その結果、第2のモデルの汎化性能を向上できる。
【0030】
更に、処理部12は、第1の顔画像の第1の重みと第2の顔画像の第2の重みとを用いて第1の顔画像と第2の顔画像とを透過合成することで第3の顔画像を生成してもよい。処理部12は、第1の重みと第2の重みとを用いて第1の顔画像の第1のラベルと第2の顔画像の第2のラベルとの加重平均を計算することで第3の顔画像の第3のラベルを生成してもよい。そして、処理部12は、第3の顔画像と第3のラベルとを含む訓練データを用いて、第2のモデルの機械学習を実行してもよい。これにより、訓練データを効率的に拡張し、第2のモデルの汎化性能を向上できる。
【0031】
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の機械学習装置のハードウェア例を示す図である。
【0032】
機械学習装置100は、CPU101、RAM102、HDD103、GPU104、入力インタフェース105、媒体リーダ106および通信インタフェース107を有する。機械学習装置100が有するこれらのユニットは、機械学習装置100の内部でバスに接続されている。CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
【0033】
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、機械学習装置100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【0034】
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、機械学習装置100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【0035】
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、機械学習装置100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【0036】
GPU104は、CPU101からの命令に従って、機械学習装置100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
【0037】
入力インタフェース105は、機械学習装置100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、マウス、タッチパネル、タッチパッド、トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、機械学習装置100に、複数の種類の入力デバイスが接続されていてもよい。
【0038】
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
【0039】
媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体113は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体113やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
【0040】
通信インタフェース107は、ネットワーク114に接続され、ネットワーク114を介して他の情報処理装置と通信する。通信インタフェース107は、スイッチやルータなどの有線通信装置に接続される有線通信インタフェースでもよいし、基地局やアクセスポイントなどの無線通信装置に接続される無線通信インタフェースでもよい。
【0041】
図3は、機械学習装置の機能例を示すブロック図である。
機械学習装置100は、人物の顔を撮像した動画像の入力に応じて、人物の感情を推定するモデルを機械学習によって生成する。人物の顔を撮像した動画像は顔動画と言われる。顔動画のフレーム数は、予め定められる。1つの顔動画に含まれるフレーム数は、例えば8~20程度である。例えば、顔動画は、人物の表情の変化を一定時間撮像した動画の各フレームから、幾つかのフレームを間引くことで予め作成される。顔動画は、第1の実施の形態の顔画像の一例である。
【0042】
機械学習装置100は、事前モデルDB(DataBase)120、入力部130、顔領域抽出部140、モデル出力取得部150、分布間距離算出部160、アテンション距離算出部160a、ペア生成部170、データ拡張部180および学習実行部190を有する。
事前モデルDB120は、例えば、RAM102またはHDD103の記憶領域を用いて実現される。入力部130、顔領域抽出部140、モデル出力取得部150、分布間距離算出部160、アテンション距離算出部160a、ペア生成部170、データ拡張部180および学習実行部190は、例えば、CPU101が実行するプログラムを用いて実現される。
【0043】
事前モデルDB120は、事前モデルを保持する。事前モデルは、機械学習によって事前に作成された表情認識用の認識モデルである。事前モデルは、入力された顔動画における表情の変化に応じた喜怒哀楽などの感情要素の分布を出力する。また、事前モデルは、入力された顔動画の各フレームに対するアテンションを示すアテンション情報を出力する。前述のように、アテンションは、どのフレームがどの程度推論に寄与しているかを示す指標である。アテンションは表情変化の度合いの大きさを示す。表情変化の度合いが大きいほど、該当のフレームの推論への寄与は大きい。感情は表情に表出される。このため、表情変化が大きいほど、表情認識や表情認識に基づく感情の推論に寄与し易い。
【0044】
なお、事前モデルは、予め用意された顔動画とラベルとのセットを用いて、機械学習装置100により作成されたものでもよい。
入力部130は、新たな認識モデルの訓練データとして用いる顔動画の入力を受け付け、顔領域抽出部140に出力する。入力部130は、予め用意された複数の顔動画を取得して、顔領域抽出部140に出力する。複数の顔動画は、外部から入力されてもよいし、RAM102またはHDD103に予め記憶されてもよい。
【0045】
顔領域抽出部140は、入力された顔動画の各フレームに対して人物の顔の領域、すなわち、顔領域を抽出する。例えば、顔領域抽出部140は、画像における顔領域を認識する顔認識モデルを用いて実現される。顔領域抽出部140は、顔領域以外の情報を顔動画の各フレームから除去する加工を行う。顔領域抽出部140は、入力された複数の顔動画それぞれに対して当該加工を行い、加工後の顔動画をモデル出力取得部150およびペア生成部170に出力する。
【0046】
モデル出力取得部150は、事前モデルDB120に含まれる事前モデルに、顔動画を入力することで、事前モデルの出力である推論結果を取得する。推論結果は、感情要素の分布およびアテンション情報を含む。感情要素の分布は、喜び、怒りなどの各感情要素が存在する確率を要素とするベクトルで表される。アテンション情報は、各フレームの表情変化の度合いを要素とするベクトルで表される。モデル出力取得部150は、顔動画ごとに取得される感情要素の分布を分布間距離算出部160に出力する。モデル出力取得部150は、顔動画ごとに取得されるアテンション情報をアテンション距離算出部160aに出力する。
【0047】
分布間距離算出部160は、複数の顔動画それぞれに対して事前モデルにより取得された感情要素の分布を基に、任意の2つの顔動画に対する分布間距離を算出する。分布間距離は、2つの顔動画に対応する2つの感情要素の分布の間の距離である。分布間距離は、2つの感情要素の分布を示す2つのベクトルにより計算されるユークリッド距離である。分布間距離算出部160は、算出した分布間距離をペア生成部170に出力する。
【0048】
アテンション距離算出部160aは、複数の顔動画それぞれに対して事前モデルにより取得されたアテンション情報を基に、任意の2つの顔動画に対するアテンション距離を算出する。アテンション距離は、2つの顔動画に対応する2つのアテンション情報の間の距離である。アテンション距離は、2つのアテンション情報を示す2つのベクトルにより計算されるユークリッド距離である。アテンション距離算出部160aは、算出したアテンション距離をペア生成部170に出力する。
【0049】
ペア生成部170は、2つの顔動画に対して算出される分布間距離およびアテンション距離に基づいて、合成対象とする顔動画のペアを生成する。具体的には、ペア生成部170は、分布間距離およびアテンション距離の両方がそれぞれに対して予め定められる閾値を超える2つの顔動画を、合成対象のペアとする。なお、ペア生成部170は、分布間距離およびアテンション距離の少なくとも一方がそれぞれに対して予め定められる閾値を超える2つの顔動画を、合成対象のペアとしてもよい。ペア生成部170は、合成対象のペアである2つの顔動画をデータ拡張部180に出力する。
【0050】
ペア生成部170による顔動画のペアの取得は、次のように説明することができる。事前モデルによる認識結果の分布をベクトルyとする。また、顔動画のアテンション情報(フレームアテンション)をベクトルaとする。事前モデルにより、顔動画x1に対してベクトルy1,a1が得られる。事前モデルにより、顔動画x2に対してベクトルy2,a2が得られる。
【0051】
ペア生成部170は、(x1,y1,a1)に対して、Dth1
u>d(y1,y2)>Dth1
b、および、Dth2
u>d(a1,a2)>Dth2
bの少なくとも一方を満たす(x2,y2,b2)を選択する。ここで、Dth1
bは、分布間距離に対し予め定められる閾値である。Dth1
uは、分布間距離に対し予め定められる上限値である。ただし、Dth1
uは設定されなくてもよい。また、Dth2
bは、アテンション距離に対し予め定められる閾値である。Dth2
uは、アテンション距離に対し予め定められる上限値である。ただし、Dth2
uは設定されなくてもよい。更に、d(y1,y2)は、ベクトルy1,y2間のユークリッド距離を示す。d(a1,a2)は、ベクトルa1,a2間のユークリッド距離を示す。
【0052】
データ拡張部180は、合成対象のペアである2つの顔動画を合成することで、訓練データを拡張する。顔動画の合成にはMixUpの手法による透過合成を用いることができる。合成により得られた顔動画のラベルも合成元の各顔動画のラベルを透過合成と同じ比率λ(0<λ<1)で加重平均したものが用いられる。
【0053】
学習実行部190は、顔領域抽出部140により出力された顔動画と、データ拡張部180の合成により得られた顔動画とを用いて、表情認識を行う新たな認識モデルの機械学習を行う。新たな認識モデルのモデル構造は、事前モデルと同じでもよいし、異なってもよい。新たな認識モデルは、顔動画を入力とし、当該顔動画に対して推定された感情を示す情報を出力とする。
【0054】
次に、顔動画に対応する感情要素の分布について説明する。
図4は、顔動画に対応する感情要素の分布の例を示す図である。
顔動画70は、ある人物の表情の変化を表す動画像である。分布300は、顔動画70に対応する感情要素の分布の例を示す。分布300は、複数の感情要素それぞれの確率を示すクラス分類結果である。感情要素には、例えば、恐怖(Fear)、驚き(Surprise)、喜び(Enjoyment)、怒り(Anger)、悲哀(Sadness)、嫌悪(Disgust)、軽蔑(Contempt)がある。分布300の横軸は、これらの感情要素を示す。分布300の縦軸は、該当の感情要素が含まれる確率を示す。顔動画70および分布300の例では、驚きの感情要素が含まれる確率が最も高く、2番目に恐怖の感情要素が含まれる確率が高く、3番目に嫌悪の感情要素が含まれる確率が高いことを示す。例えば、上記の7つの感情要素に対応するクラス(表情クラス)に顔動画70を分類する場合、顔動画70は、分布300を基に「驚き」という表情クラスに分類される。
【0055】
次に、機械学習装置100による表情認識のための機械学習について説明する。
図5は、機械学習の例を示す図である。
機械学習装置100は、顔動画80と顔動画80に対するラベルとを含む訓練データを用いて、認識モデル200の機械学習を行う。ラベルは、顔動画80に対して予め付与される。ラベルは、顔動画80に対して認識モデル200が出力すべき真値を示す。顔動画80にラベルを付与する作業は、アノテーションと言われる。また、アノテーションの作業者は、アノテーターと言われる。ラベルは、ソフトラベルでもよいし、ハードラベルでもよい。ソフトラベルでは、分類先の各感情要素が含まれる割合が与えられる。ハードラベルでは、分類先の感情要素が何れであるかがone-hotのベクトルで与えられる。訓練データは、教師データと言われてもよい。
【0056】
1つの顔動画に対するアノテーションは、複数人のアノテーターによる投票結果に基づいて行われる。このため、表情認識用のモデルの構築ではアノテーションにコストがかかる。
【0057】
次に、事前モデルDB120に保持される事前モデルを説明する。
図6は、事前モデルの出力の例を示す図である。
事前モデル210は、顔動画80を入力とし、感情要素の分布400およびアテンション情報500を出力とする。図中、感情要素の分布400では、縦軸および感情要素の名称の記述を省略し、感情要素に対応する割合(確率)の値を横軸に記載することがある。横軸に並ぶ数値は、左から右へ向かう順に、例えば恐怖、驚き、喜び、怒り、…などの感情要素に対応する。
【0058】
アテンション情報500は、顔動画80の各フレームのアテンションを示す。アテンション情報500の横軸は時間である。アテンション情報500の縦軸はアテンション、すなわち、顔動画80における各フレームの変化の度合いを示す。
【0059】
次に、事前モデル210のモデル構造を説明する。
図7は、事前モデルのモデル構造の例を示す図である。
事前モデル210は、畳み込みニューラルネットワーク(CNN:Convolutional Neural Network)211、LSTM(Long Short Term Memory)212および全結合(FC:Fully Connected)層213,214を有する。事前モデル210は、顔動画に含まれる各フレームに相当する画像をフレーム順に処理する。図中、フレーム番号をtとする。
【0060】
CNN211は、入力されたフレームに対して畳み込み処理を行い、LSTM212に出力する。
LSTM212は、現フレームtの畳み込み処理結果に基づいてm次元特徴量ftを出力する。LSTM212により、ftには過去フレームの影響が反映される。LSTM212は、ftを出力する。
【0061】
FC層213は、m次元特徴量であるftを1次元の値に変換する。FC層213は、変換後の値をシグモイド(sigmoid)関数に入力し、フレームtでの1次元の重み値(アテンション)αtを得る。FC層213は、αtを出力する。
【0062】
FC層214は、特徴量ftをフレームtでのアテンションαtで重み付けした特徴量αtftを顔動画の全フレームに亘り合算した結果が入力される。そして、FC層214は、感情要素の分布400を出力する。
【0063】
図8は、事前モデルの処理例を示す図である。
顔動画に含まれるフレームの総数をnとする。CNN211で用いられる重みは、各フレームで共通である。事前モデル210は、CNN211、LSTM212およびFC層213を各フレームに対して用いて、α
tf
tを計算する。そして、事前モデル210は、α
tf
tをt=1~nに亘って合算してFC層214に入力し、最終的な出力として感情要素の分布400を出力する。また、事前モデル210は、各フレームのアテンションα
tも出力する。
【0064】
なお、前述のように学習実行部190により生成される新たな認識モデルの構造は、事前モデル210と同じでもよいし、異なってもよい。例えば、学習実行部190により生成される認識モデルは、CNNやLSTMを有するが、FC層213やFC層214に相当する構造を有さなくてもよい。
【0065】
次に、データ拡張部180による顔動画の合成を説明する。
図9は、2つの画像の透過合成の例を示す図である。
データ拡張部180は、2つの顔動画における同じフレーム番号のフレーム同士を透過合成する。ここで、1つ目の顔動画におけるフレーム610の各画素値のセットをX1とする。また、2つ目の顔動画におけるフレーム620の各画素値のセットをX2とする。更に、透過合成におけるフレーム610の重みをλ(0<λ<1)とする。この場合、フレーム620の重みは1-λとなる。λの値は、予め定められてもよいし、合成する顔動画のペアに対してランダムに決定されてもよい。透過合成は、λ・X1+(1-λ)・X2の演算式で表される。データ拡張部180は、当該演算式に基づくフレーム610,620の透過合成により、該当のフレーム番号における合成後のフレーム630を得る。
【0066】
データ拡張部180は、2つの顔動画に含まれる同じフレーム番号のフレーム同士の透過合成を、各フレーム番号に対して行うことで、2つの顔動画を合成する。合成により得られる顔動画のラベルyは、1つ目の顔動画のラベルy1と、2つ目の顔動画のラベルy2との重みλによる加重平均となる。すなわち、y=λ・y1+(1-λ)・y2である。
【0067】
図10は、感情要素の分布の合成例を示す図である。
分布400a,400bは、2つの顔動画に対して事前モデル210により得られる感情要素の分布を例示する。分布400aは、「恐怖による驚き」の表情の感情要素の分布である。分布400bは、「恐怖」の表情の感情要素の分布の例である。
【0068】
分布400cは、分布400a,400bを合成した結果の例である。「恐怖による驚き」と「恐怖」とは感情の種類としては似通っている。このため、分布400cは、分布400a,400bと似た分布となってしまっている。
【0069】
このように、表情には様々な感情要素が混在しており、表情クラスに対して感情要素が独立しているわけではない。このため、異なる表情クラスの顔動画同士を選択して合成したとしても、合成元のデータと似た訓練データが生成されてしまう可能性がある。
【0070】
そこで、機械学習装置100は、合成する顔動画のペアを、感情要素の分布間距離に基づいて決定する。
図11は、顔動画のペアの第1の選択例を示す図である。
【0071】
ベース動画600は、ある顔動画である。感情要素の分布401は、ベース動画600の入力に対して事前モデル210により出力される推論結果である。候補動画700,800は、ベース動画600とのペア候補の顔動画である。感情要素の分布402,403は、それぞれ候補動画700,800の入力に対して事前モデル210により出力される推論結果である。
【0072】
分布間距離算出部160は、分布401,402を表す各ベクトルに基づいて、分布間距離を算出する。例えば、分布401,402に対する分布間距離は0.1である。同様に、分布間距離算出部160は、分布401,403を表す各ベクトルに基づいて、分布間距離を算出する。例えば、分布401,403に対する分布間距離は0.9である。
【0073】
ペア生成部170は、2つの顔動画に対応する分布間距離と閾値との比較に応じて、当該2つの顔動画を合成対象のペアとするか否かを判定する。例えば、閾値=0.5とする。この場合、ペア生成部170は、ベース動画600および候補動画700を合成対象のペアとしない。一方、ペア生成部170は、ベース動画600および候補動画800を合成対象のペアとする。
【0074】
このように、機械学習装置100は、分布間距離が閾値よりも離れている顔動画同士を合成することで、合成元のデータと似た訓練データが生成される可能性を低減できる。
また、機械学習装置100は、合成する顔動画のペアを、アテンション距離に基づいて決定することもできる。
【0075】
図12は、顔動画における表情変化の例を示す図である。
図12(A)は、ある顔動画に対して事前モデル210により出力されるアテンション情報500aを例示する。アテンション情報500aは、最初は笑っていて真顔になる顔動画の各フレームのアテンション(表情変化の度合い)を示す。
図12(B)は、別の顔動画に対して事前モデル210により出力されるアテンション情報500bを例示する。アテンション情報500bは、徐々に笑顔になる顔動画の各フレームのアテンション(表情変化の度合い)を示す。
【0076】
機械学習装置100は、アテンション情報500a,500bに基づいて、表情の時間的な変化の仕方が異なる顔動画のペアを特定することができる。
図13は、顔動画のペアの第2の選択例を示す図である。
【0077】
アテンション情報501は、ベース動画600の入力に対して事前モデル210により出力される、ベース動画600の各フレームのアテンションを示す。アテンション情報502は、候補動画700の入力に対して事前モデル210により出力される、候補動画700の各フレームのアテンションを示す。アテンション情報503は、候補動画800の入力に対して事前モデル210により出力される、候補動画800の各フレームのアテンションを示す。
【0078】
アテンション距離算出部160aは、アテンション情報501,502を表す各ベクトルに基づいて、アテンション距離を算出する。例えば、アテンション情報501,502に対するアテンション距離は0.1である。同様に、アテンション距離算出部160aは、アテンション情報501,503を表す各ベクトルに基づいて、アテンション距離を算出する。例えば、アテンション情報501,503に対するアテンション距離は0.75である。
【0079】
ペア生成部170は、2つの顔動画に対応するアテンション距離と閾値との比較に応じて、当該2つの顔動画を合成対象のペアとするか否かを判定する。例えば、閾値=0.5とする。この場合、ペア生成部170は、ベース動画600および候補動画700を合成対象のペアとしない。一方、ペア生成部170は、ベース動画600および候補動画800を合成対象のペアとする。なお、アテンション距離に対する閾値は、分布間距離に対する閾値とは異なってもよい。
【0080】
このように機械学習装置100は、アテンション距離が閾値よりも離れている顔動画同士を合成することで、合成元のデータと似た訓練データが生成される可能性を低減できる。
【0081】
なお、ペア生成部170は、2つの顔動画に関し、分布間距離およびアテンション距離の両方を用いて、合成対象のペアとするか否かを判定することができる。すなわち、ペア生成部170は、分布間距離およびアテンション距離の両方が閾値を超える2つの顔動画を合成対象のペアとする。一方、ペア生成部170は、分布間距離およびアテンション距離の少なくとも一方が閾値以下である2つの顔動画を合成対象のペアとしない。
【0082】
図14は、機械学習の手順例を示すフローチャートである。
(S10)入力部130は、複数の顔動画を顔領域抽出部140に入力する。顔領域抽出部140は、顔動画から顔領域を抽出し、顔動画に対して顔領域以外の情報を除去する加工を行う。顔領域抽出部140は、加工後の顔動画をモデル出力取得部150およびペア生成部170に入力する。
【0083】
(S11)モデル出力取得部150は、事前モデルDB120から事前モデル210を読み込む。
(S12)モデル出力取得部150は、各顔動画を事前モデル210に出力し、事前モデル210での感情要素の確率とフレームごとのアテンションとを取得する。これにより、モデル出力取得部150は、顔動画に対応する感情要素の分布およびアテンション情報を得る。モデル出力取得部150は、顔動画ごとの感情要素の分布を分布間距離算出部160に出力する。モデル出力取得部150は、顔動画ごとのアテンション情報をアテンション距離算出部160aに出力する。
【0084】
(S13)分布間距離算出部160は、データ間の感情要素の分布間距離を算出する。具体的には、分布間距離算出部160は、2つの顔動画の全ての組合せに対して、各顔動画の感情要素の分布を表すベクトルを基にユークリッド距離を算出し、当該2つの顔動画に対応する分布間距離とする。
【0085】
(S14)アテンション距離算出部160aは、データ間のアテンション距離を算出する。具体的には、アテンション距離算出部160aは、2つの顔動画の全ての組合せに対して、各顔動画のアテンション情報を表すベクトルを基にユークリッド距離を算出し、当該2つの顔動画に対応するアテンション距離とする。
【0086】
(S15)ペア生成部170は、ステップS13,S14における2つの顔動画の組合せのうち、分布間距離およびアテンション距離の両方が閾値を超えるペアを選択する。
(S16)データ拡張部180は、ステップS15で選択されたペアで合成処理を行い、データ拡張を行う。データ拡張部180は、前述のMixUpの手法により2つの顔動画の合成処理を行う。データ拡張部180は、合成により生成された顔動画のラベルを、合成元の2つの顔動画のラベルに基づいて計算する。
【0087】
(S17)学習実行部190は、拡張されたデータで機械学習を実行する。すなわち、学習実行部190は、ステップS10で入力された複数の顔動画と、ステップS16で2つの顔動画のペアごとに生成された顔動画とを含む訓練データを用いて、表情を認識する新たな認識モデルの機械学習を行う。そして、機械学習が終了する。
【0088】
なお、ステップS15では、ペア生成部170は、分布間距離およびアテンション距離の少なくとも一方がそれぞれに対して予め定められる閾値を超える2つの顔動画を、合成対象のペアとして選択してもよい。
【0089】
以上説明したように、第2の実施の形態の機械学習装置100によれば、表情の認識モデルの汎化性能を向上できる。機械学習装置100は、分布間距離およびアテンション距離の少なくとも一方がある程度離れた顔動画のペアを選択して合成することで、似通った顔動画のペアが合成されることを抑制できる。このため、訓練データの多様性を効率的に向上できる。訓練データの多様性が向上することで、機械学習により生成される認識モデルの汎化性能を向上することができる。
【0090】
[第3の実施の形態]
次に、第3の実施の形態を説明する。前述の第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。第3の実施の形態の機械学習装置は、
図2に示した第2の実施の形態のハードウェア構成と同様のハードウェア構成によって実現できる。
【0091】
図15は、第3の実施の形態の機械学習装置の機能例を示すブロック図である。
第3の実施の形態の機械学習装置100aは、アテンション距離を用いずに合成対象とする顔動画のペアを選択する点が、第2の実施の形態の機械学習装置100と異なる。
【0092】
機械学習装置100aは、事前モデルDB120、入力部130、顔領域抽出部140、モデル出力取得部150、分布間距離算出部160、ペア生成部170、データ拡張部180および学習実行部190を有する。これらの機能は、機械学習装置100の同名の機能と同様である。ただし、ペア生成部170は、分布間距離算出部160により算出される分布間距離と閾値との比較に応じて、合成対象とする顔動画のペアを生成する。
【0093】
図16は、機械学習の手順例を示すフローチャートである。
第3の実施の形態の機械学習の手順は、
図14で例示した手順のうちのステップS12,S15に代えて、それぞれステップS12a,S15aが実行される点が第2の実施の形態の機械学習の手順と異なる。また、第3の実施の形態の機械学習の手順は、
図14で例示した手順のうちのステップS14が省略されて、ステップS13の次にステップS15aが実行される点が第2の実施の形態の機械学習の手順と異なる。それ以外のステップは、第2の実施の形態の機械学習の手順と同じである。そこで、以下では、ステップS12a,S15aを説明し、他のステップの説明を省略する。
【0094】
(S12a)モデル出力取得部150は、顔動画を事前モデル210に出力し、事前モデル210での感情要素の確率を取得する。これにより、モデル出力取得部150は、顔動画に対応する感情要素の分布を得る。モデル出力取得部150は、顔動画ごとの感情要素の分布を分布間距離算出部160に出力する。そして、ステップS13に処理が進む。ステップS13が実行されると、ステップS15aに処理が進む。
【0095】
(S15a)ペア生成部170は、ステップS13における2つの顔動画の組合せのうち、分布間距離が閾値を超えるペアを選択する。そして、ステップS16に処理が進む。
このように、機械学習装置100aは、分布間距離がある程度離れた顔動画のペアを選択して合成することで、似通った顔動画のペアが合成されることを抑制できる。このため、第2の実施の形態と同様に、訓練データの多様性を効率的に向上できる。訓練データの多様性が向上することで、機械学習により生成される認識モデルの汎化性能を向上することができる。
【0096】
ところで、近年の画像処理技術の発達により、人間の心理状態の機微な変化を表情から検知し、心理状態の変化に応じた処理を行うシステムの開発が進んでいる。例えば、ロボットに搭載されたカメラから、応対する人間の表情の変化を認識して、感情の変化を検知し、適切な対応を行うシステムなどがある。
【0097】
表情の変化を記述する代表的な手法の1つとして、感情に関する表情(例えばhappy、angry、sad、disgust、fear、surprise、contemptなど)を認識する方法がある。このような表情認識では、アノテーションにコストがかかるためデータの大規模化が難しく、少量のデータから認識モデルを構築する必要があった。しかし、少量のデータでは訓練データに過学習してしまう可能性が高く、汎化性能(訓練データ以外に対する認識性能)が低下する。
【0098】
これに対し、前述のMixUpにより、擬似的に新たな訓練データを生成する方法が考えられる。MixUpの混ぜ合わせにより疑似的にデータの多様性が向上し、正則化のような効果が生まれ、中間の状態のような画像も識別できるようになる。また、より「異なる」種類のデータが混じることで多様なデータが生成され、データ拡張の効果がより向上し、汎化性能の向上に効果的になると考えられる。
【0099】
一方、異なるデータが混じることが望ましいが、識別対象の種類の少ない表情認識の場合、ランダムに選択するアルゴリズムでは同じ種類の表情クラスのデータを選択してしまう可能性が高い。また、表情には様々な感情の要素が混じっており、独立しているわけではない。単純に異なるクラスの表情を選択してくるだけでは異なる種類のデータの選択としては不十分であり、元と同じような種類のデータが生成されてしまう可能性がある。例えば、前述の「驚き」の感情の例のように、「恐怖による驚き」と「恐怖」などが混ざってしまい元のデータと似たような感情要素の分布のデータが生成され得る。
【0100】
更に、表情変化の仕方は様々なパターンがあり顔動画の中でどのような変化しているかは様々である。異なる種類のデータをミックスする、という観点からは、時間的な変化の仕方が異なるデータを混ぜるのが好ましいと考えられる。しかし、顔動画に予め付与されるラベルの情報からは時間的な変化の仕方を判断できず、同じようなデータが選択される可能性がある。
【0101】
このように、従来の方法では、合成対象のペアとして、似たデータが選択されることがあり、元のデータと同じような種類のデータが生成されてしまうため、汎化性能向上に寄与しにくい。
【0102】
そこで、上記の機械学習装置100,100aは、既存のモデルや事前学習したモデルによる出力を利用して、2種類のデータ(顔動画)に対する出力に関して、それぞれの間の距離が遠いものを選択して合成する。これにより、多様な擬似データが生成され、汎化性能の向上に効果的なデータ拡張が行われるようになる。また、こうして拡張された訓練データを用いて既存のモデルや新たなモデルの機械学習を行うことで、当該モデルの汎化性能を向上することができる。例えば、顔動画における比較的小さな表情変化に対しても、感情の推定の精度を向上させることができる。
【0103】
なお、第1の実施の形態の情報処理は、処理部12にプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、CPU101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体113に記録できる。
【0104】
例えば、プログラムを記録した記録媒体113を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体113に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【0105】
10 機械学習装置
11 記憶部
12 処理部
20 第1のモデル
30 顔画像群
31,32,33,51 顔画像
40 推論結果群
41,42,43 推論結果
60 第2のモデル