(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-18
(45)【発行日】2024-01-26
(54)【発明の名称】変換装置およびプログラム
(51)【国際特許分類】
G06N 3/0455 20230101AFI20240119BHJP
G06N 3/09 20230101ALI20240119BHJP
G06T 7/00 20170101ALI20240119BHJP
G06T 7/20 20170101ALI20240119BHJP
G09B 21/00 20060101ALI20240119BHJP
【FI】
G06N3/0455
G06N3/09
G06T7/00 350C
G06T7/20 300A
G09B21/00 F
(21)【出願番号】P 2019231754
(22)【出願日】2019-12-23
【審査請求日】2022-11-22
(73)【特許権者】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100141139
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100171446
【氏名又は名称】高田 尚幸
(74)【代理人】
【識別番号】100114937
【氏名又は名称】松本 裕幸
(74)【代理人】
【識別番号】100171930
【氏名又は名称】木下 郁一郎
(72)【発明者】
【氏名】梶山 岳士
(72)【発明者】
【氏名】遠藤 伶
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特開2019-139277(JP,A)
【文献】特表2019-537147(JP,A)
【文献】米国特許出願公開第2019/0017374(US,A1)
【文献】梶山 岳士 ほか,"深層学習を用いた日本手話認識の評価実験",映像情報メディア学会 2019年年次大会講演予稿集 [CD-ROM],一般社団法人映像情報メディア学会,2019年08月,pp. 1-2,ISSN 1880-6961
【文献】土井 ゆりか ほか,"CNN-LSTMを用いた手話認識システムの開発",汎用人工知能研究会 第1回SIG-AGI研究会,一般社団法人人工知能学会,2015年,pp. 06-01~06-05
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
G06T 7/00
G06T 7/20
G09B 21/00
(57)【特許請求の範囲】
【請求項1】
入力データを基に状態データを生成するエンコーダー部と、
前記状態データを基に出力データを生成するデコーダー部と、
前記エンコーダー部への入力となる学習用入力データと、前記学習用入力データに対応する前記出力データの正解である正解データとの対を供給する学習データ供給部と、
前記学習用入力データに基づいて前記エンコーダー部が生成する状態データ、に基づいて前記デコーダー部が生成する学習用出力データと、前記学習用入力データに対応して前記学習データ供給部が供給する前記正解データと、の差を表すロスを算出するロス算出部と、
前記正解データを基に推定される状態データである推定状態データを生成する第2エンコーダー部と、
前記学習用入力データに基づいて前記エンコーダー部が生成する前記状態データと、前記学習用入力データに対応して前記学習データ供給部が供給する前記正解データに基づいて前記第2エンコーダー部が生成する前記推定状態データと、の差を表す第2ロスを算出する第2ロス算出部と、
第1学習モードと、第2学習モードと、変換実行モードとを適宜切り替えて動作させるように制御する制御部と、
を備え、
前記第1学習モードにおいては、学習データ供給部が供給する前記学習用入力データと前記正解データとに基づいて前記ロス算出部が算出した前記ロス、に基づいて前記エンコーダー部および前記デコーダー部の内部パラメーターを調整し、
前記第2学習モードにおいては、学習データ供給部が供給する前記学習用入力データと前記正解データとに基づいて前記第2ロス算出部が算出した前記第2ロス、に基づいて前記エンコーダー部および前記第2エンコーダー部の内部パラメーターを調整し、
前記変換実行モードにおいては、前記エンコーダー部が入力データを基に状態データを生成し、前記エンコーダー部が生成した前記状態データを基に、前記デコーダー部が、出力データを生成する、
変換装置。
【請求項2】
前記エンコーダー部と、前記デコーダー部と、前記第2エンコーダー部との各々は、内部にニューラルネットワークを備え、
前記第1学習モードにおいては、前記ロスに基づいて前記エンコーダー部および前記デコーダー部のそれぞれのニューラルネットワークの誤差逆伝播を行うことによって前記エンコーダー部および前記デコーダー部の内部パラメーターを調整し、
前記第2学習モードにおいては、前記第2ロスに基づいて前記エンコーダー部および前記第2エンコーダー部のそれぞれのニューラルネットワークの誤差逆伝播を行うことによって前記エンコーダー部および前記第2エンコーダー部の内部パラメーターを調整する、
請求項1に記載の変換装置。
【請求項3】
前記制御部は、学習処理の際に、学習データ供給部が供給する前記学習用入力データと前記正解データとの対ごとに、前記第1学習モードと前記第2学習モードとを繰り返して実行するよう制御する、
請求項1または2に記載の変換装置。
【請求項4】
前記入力データは、画像の系列であり、
前記出力データは、所定の記号の系列である、
請求項1から3までのいずれか一項に記載の変換装置。
【請求項5】
前記画像の系列は、手話を表す画像の系列であり、
前記記号の系列は、前記手話に対応する、グロス表記による語の列である、
請求項4に記載の変換装置。
【請求項6】
入力データを基に状態データを生成するエンコーダー部と、
前記状態データを基に出力データを生成するデコーダー部と、
前記エンコーダー部への入力となる学習用入力データと、前記学習用入力データに対応する前記出力データの正解である正解データとの対を供給する学習データ供給部と、
前記学習用入力データに基づいて前記エンコーダー部が生成する状態データ、に基づいて前記デコーダー部が生成する学習用出力データと、前記学習用入力データに対応して前記学習データ供給部が供給する前記正解データと、の差を表すロスを算出するロス算出部と、
前記正解データを基に推定される状態データである推定状態データを生成する第2エンコーダー部と、
前記学習用入力データに基づいて前記エンコーダー部が生成する前記状態データと、前記学習用入力データに対応して前記学習データ供給部が供給する前記正解データに基づいて前記第2エンコーダー部が生成する前記推定状態データと、の差を表す第2ロスを算出する第2ロス算出部と、
第1学習モードと、第2学習モードと、変換実行モードとを適宜切り替えて動作させるように制御する制御部と、
を備え、
前記第1学習モードにおいては、学習データ供給部が供給する前記学習用入力データと前記正解データとに基づいて前記ロス算出部が算出した前記ロス、に基づいて前記エンコーダー部および前記デコーダー部の内部パラメーターを調整し、
前記第2学習モードにおいては、学習データ供給部が供給する前記学習用入力データと前記正解データとに基づいて前記第2ロス算出部が算出した前記第2ロス、に基づいて前記エンコーダー部および前記第2エンコーダー部の内部パラメーターを調整し、
前記変換実行モードにおいては、前記エンコーダー部が入力データを基に状態データを生成し、前記エンコーダー部が生成した前記状態データを基に、前記デコーダー部が、出力データを生成する、
変換装置としてコンピューターを機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、変換装置およびプログラムに関する。
【背景技術】
【0002】
映像に映されている内容を自動的に認識する技術は、人のコミュニケーションを補助する手段としての活用が期待されている。その一例として、手話をカメラ等で撮影して、その映像(画像)を自動的に認識する技術は、聴覚障害者と健聴者との間のコミュニケーションへの活用が期待される。
【0003】
非特許文献1には、手話言語のひとつであるドイツ手話を自動認識してドイツ語へ変換する研究について記載されている。例えば、非特許文献1内のFigure 2は、手話言語を口語言語に翻訳するための手話翻訳機の概略構成を示している。このFigure 2が示す手話翻訳機は、エンコーダーとデコーダーを含んで構成される。エンコーダーおよびデコーダーは、それぞれ、再帰型ニューラルネットワーク(RNN,recurrent neural network)を用いている。エンコーダーは、フレーム画像の系列を入力し、特徴ベクトルを生成する。デコーダーは、エンコーダーによって生成された特徴ベクトルを入力し、語の系列を生成する。
【先行技術文献】
【非特許文献】
【0004】
【文献】Necati Cihan Camgoz, Simon Hadfield, Oscar Koller, Hermann Ney, Richard Bowden ”Neural Sign Language Translation” In IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018.
【発明の概要】
【発明が解決しようとする課題】
【0005】
カメラを用いて撮影される映像の内容(例えば、人のジェスチャー等)を認識する技術は、例えば、非接触型のヒューマンマシンインターフェースが望まれる適用領域で実用化されてきた。非接触型のインターフェースが望まれる領域とは、例えば、食品工場や医療現場など、衛生面での考慮が求められる領域である。しかしながら、例えば手話言語のような、連続する複雑な人の動きを、自動認識して別の言語に変換する技術は、実用レベルに達していない。
【0006】
日本で使用される手話言語のひとつである日本手話の自動認識に関しても、実用例は報告されていない。
【0007】
また、入力される手話映像が予め単語単位に区切られていない場合には、映像を基に手話単語の単位に自動的に区切って手話単語を自動認識することは、さらに困難である。
【0008】
本発明は、上記の課題認識に基づいて行なわれたものであり、入力データ(例えば、所定の単位(例えば変換先の単語等の区切り)に区切られていない映像(フレーム画像の系列))を入力し、その入力データに対応する記号列(例えば、所定の言語表現における単語列)を出力することのできる変換装置およびプログラムを提供しようとするものである。
【課題を解決するための手段】
【0009】
[1]上記の課題を解決するため、本発明の一態様による変換装置は、入力データを基に状態データを生成するエンコーダー部と、前記状態データを基に出力データを生成するデコーダー部と、前記エンコーダー部への入力となる学習用入力データと、前記学習用入力データに対応する前記出力データの正解である正解データとの対を供給する学習データ供給部と、前記学習用入力データに基づいて前記エンコーダー部が生成する状態データ、に基づいて前記デコーダー部が生成する学習用出力データと、前記学習用入力データに対応して前記学習データ供給部が供給する前記正解データと、の差を表すロスを算出するロス算出部と、前記正解データを基に推定される状態データである推定状態データを生成する第2エンコーダー部と、前記学習用入力データに基づいて前記エンコーダー部が生成する前記状態データと、前記学習用入力データに対応して前記学習データ供給部が供給する前記正解データに基づいて前記第2エンコーダー部が生成する前記推定状態データと、の差を表す第2ロスを算出する第2ロス算出部と、第1学習モードと、第2学習モードと、変換実行モードとを適宜切り替えて動作させるように制御する制御部と、を備え、前記第1学習モードにおいては、学習データ供給部が供給する前記学習用入力データと前記正解データとに基づいて前記ロス算出部が算出した前記ロス、に基づいて前記エンコーダー部および前記デコーダー部の内部パラメーターを調整し、前記第2学習モードにおいては、学習データ供給部が供給する前記学習用入力データと前記正解データとに基づいて前記第2ロス算出部が算出した前記第2ロス、に基づいて前記エンコーダー部および前記第2エンコーダー部の内部パラメーターを調整し、前記変換実行モードにおいては、前記エンコーダー部が入力データを基に状態データを生成し、前記エンコーダー部が生成した前記状態データを基に、前記デコーダー部が、出力データを生成する、変換装置である。
【0010】
[2]また、本発明の一態様は、上記の変換装置において、前記エンコーダー部と、前記デコーダー部と、前記第2エンコーダー部との各々は、内部にニューラルネットワークを備え、前記第1学習モードにおいては、前記ロスに基づいて前記エンコーダー部および前記デコーダー部のそれぞれのニューラルネットワークの誤差逆伝播を行うことによって前記エンコーダー部および前記デコーダー部の内部パラメーターを調整し、前記第2学習モードにおいては、前記第2ロスに基づいて前記エンコーダー部および前記第2エンコーダー部のそれぞれのニューラルネットワークの誤差逆伝播を行うことによって前記エンコーダー部および前記第2エンコーダー部の内部パラメーターを調整するものである。
【0011】
[3]また、本発明の一態様は、上記の変換装置において、前記制御部は、学習処理の際に、学習データ供給部が供給する前記学習用入力データと前記正解データとの対ごとに、前記第1学習モードと前記第2学習モードとを繰り返して実行するよう制御するものである。
【0012】
[4]また、本発明の一態様は、上記の変換装置において、前記入力データは、画像の系列であり、前記出力データは、所定の記号の系列である、というものである。
【0013】
[5]また、本発明の一態様は、上記の変換装置において、前記画像の系列は、手話を表す画像の系列であり、前記記号の系列は、前記手話に対応する、グロス表記による語の列である、というものである。
【0014】
[6]また、本発明の一態様は、入力データを基に状態データを生成するエンコーダー部と、前記状態データを基に出力データを生成するデコーダー部と、前記エンコーダー部への入力となる学習用入力データと、前記学習用入力データに対応する前記出力データの正解である正解データとの対を供給する学習データ供給部と、前記学習用入力データに基づいて前記エンコーダー部が生成する状態データ、に基づいて前記デコーダー部が生成する学習用出力データと、前記学習用入力データに対応して前記学習データ供給部が供給する前記正解データと、の差を表すロスを算出するロス算出部と、前記正解データを基に推定される状態データである推定状態データを生成する第2エンコーダー部と、前記学習用入力データに基づいて前記エンコーダー部が生成する前記状態データと、前記学習用入力データに対応して前記学習データ供給部が供給する前記正解データに基づいて前記第2エンコーダー部が生成する前記推定状態データと、の差を表す第2ロスを算出する第2ロス算出部と、第1学習モードと、第2学習モードと、変換実行モードとを適宜切り替えて動作させるように制御する制御部と、を備え、前記第1学習モードにおいては、学習データ供給部が供給する前記学習用入力データと前記正解データとに基づいて前記ロス算出部が算出した前記ロス、に基づいて前記エンコーダー部および前記デコーダー部の内部パラメーターを調整し、前記第2学習モードにおいては、学習データ供給部が供給する前記学習用入力データと前記正解データとに基づいて前記第2ロス算出部が算出した前記第2ロス、に基づいて前記エンコーダー部および前記第2エンコーダー部の内部パラメーターを調整し、前記変換実行モードにおいては、前記エンコーダー部が入力データを基に状態データを生成し、前記エンコーダー部が生成した前記状態データを基に、前記デコーダー部が、出力データを生成する、変換装置としてコンピューターを機能させるプログラムである。
【発明の効果】
【0015】
本発明によれば、データ(映像)を自動認識してその映像に対応する記号列を出力する処理において、認識精度を向上させることができる。
【図面の簡単な説明】
【0016】
【
図1】本発明の実施形態による変換装置の概略機能構成を示すブロック図である。
【
図2】同実施形態による変換装置内の、エンコーダー部およびデコーダー部の処理によるデータの流れを示す概略図である。
【
図3】同実施形態による変換装置の、付加的なネットワークである第2エンコーダー部を用いた学習処理によるデータの流れを示す概略図である。
【
図4】同実施形態による変換装置内のエンコーダー部のより詳細な構成例を示すブロック図である。
【
図5】同実施形態による変換装置内のデコーダー部のより詳細な構成例を示すブロック図である。
【
図6】同実施形態による変換装置内の第2エンコーダー部のより詳細な構成例を示すブロック図である。
【
図7】同実施形態による変換装置が機械学習処理を行う際の処理手順を示すフローチャートである。
【
図8】評価実験の結果を示すグラフであり、本実施形態の変換装置と、従来技術による変換装置との間で、変換誤り率を対比するためのグラフである。
【発明を実施するための形態】
【0017】
次に、本発明の実施形態について、説明する。
【0018】
本実施形態による変換装置は、手話の映像を入力し、その映像が表す手話を、グロス表記と呼ばれる中間表現に変換する。グロス表記は、文字を持たない手話言語において、手話のフレーズまたは文章を構成する一連の動作を、手話の単語に相当する短い区間で区切り、文字によって書き起こした記号列である。日本手話のグロス表記では、手話の単語の意味に近い日本語の単語をラベルとして用いる。つまり、本実施形態による変換装置は、手話の映像を入力し、映像の自動認識処理を行い、その映像に対応するラベル列(記号列)を出力するものである。
【0019】
なお、変換装置に入力される手話映像は、単語等の単位に予め区切られているものではない。また、区切り位置を示すメタ情報も、付与されていない。
【0020】
図1は、本実施形態による変換装置の概略機能構成を示すブロック図である。図示するように、変換装置1は、入力部10と、エンコーダー部20と、デコーダー部30と、出力部40と、ロス算出部50と、第2エンコーダー部60と、第2ロス算出部70と、学習データ供給部80と、制御部90とを含んで構成される。これらの各機能部は、例えば、コンピューターと、プログラムとで実現することが可能である。また、各機能部は、必要に応じて、記憶手段を有する。記憶手段は、例えば、プログラム上の変数や、プログラムの実行によりアロケーションされるメモリーである。また、必要に応じて、磁気ハードディスク装置やソリッドステートドライブ(SSD)といった不揮発性の記憶手段を用いるようにしてもよい。また、各機能部の少なくとも一部の機能を、プログラムではなく専用の電子回路として実現してもよい。各機能部の機能について、次に説明する。
【0021】
入力部10は、入力データを取得し、エンコーダー部20に供給する。この入力データは、画像の系列であって良い。さらに、この画像の系列(映像)は、手話を表す画像の系列(映像)であって良い。なお、映像のフレームレートは任意であるが、例えば、30フレーム毎秒(fps)程度として良い。
【0022】
エンコーダー部20は、入力データを基に状態ベクトル(状態データ)を生成するものである。エンコーダー部20は、機械学習処理を行って内部のモデルを更新する(パラメーターを調整する)機能を持つ。本実施形態では、エンコーダー部20は、内部にニューラルネットワークを持ち、誤差逆伝播の処理によって内部のパラメーターを更新できる。なお、誤差逆伝播の手法自体は、既存技術によって実施できるものである。
【0023】
デコーダー部30は、状態ベクトル(状態データ)を基に出力データを生成するものである。デコーダー部30は、機械学習処理を行って内部のモデルを更新する(パラメーターを調整する)機能を持つ。本実施形態では、デコーダー部30は、内部にニューラルネットワークを持ち、誤差逆伝播の処理によって内部のパラメーターを更新できる。
【0024】
出力部40は、デコーダー部30が生成した出力データ(推定記号列)を出力する。出力データは、例えば、手話の映像に対応するグロス表記の語列(記号列)であっても良い。
【0025】
ロス算出部50は、エンコーダー部20に入力される学習用入力データを基にエンコーダー部20およびデコーダー部30が生成する出力データ(推定された単語列、学習用出力データ)と、前記学習用入力データに対応して学習データ供給部が供給する正解データと、の差を表すロスを算出する。エンコーダー部20およびデコーダー部30によって生成される学習用出力データと、正解データとが、それぞれ、記号列に対応するベクトルであると捉えた場合、ロス算出部50が算出するロスは、例えば、それら両ベクトル間のノルムである。
【0026】
第2エンコーダー部60は、学習データ供給部80が供給する正解データ(デコーダー部30が出力する出力データの正解)を基に、推定される状態ベクトル(状態データ)である推定状態データを生成する。第2エンコーダー部60は、機械学習処理を行って内部のモデルを更新する(パラメーターを調整する)機能を持つ。本実施形態では、第2エンコーダー部60は、内部にニューラルネットワークを持ち、誤差逆伝播の処理によって内部のパラメーターを更新できる。
【0027】
第2ロス算出部70は、学習用入力データに基づいてエンコーダー部20が生成する状態データと、学習用入力データに対応して学習データ供給部80が供給する正解データ、に基づいて第2エンコーダー部60が生成する推定状態データと、の差を表す第2ロスを算出する。状態データと推定状態データとをともにベクトルと捉えた場合、第2ロス算出部70が算出する第2ロスは、例えば、それら両ベクトル間のノルムである。
【0028】
学習データ供給部80は、エンコーダー部20やデコーダー部30や第2エンコーダー部60が機械学習を行うための学習データを供給する。具体的には、学習データ供給部80は、エンコーダー部20への入力となる学習用入力データと、その学習用入力データに対応する出力データの正解である正解データとの対を供給する。上記の学習用入力データは、第2エンコーダー部60への入力としても使用される。学習データ供給部80は、学習用入力データと正解データとの対を多数供給する。
【0029】
制御部90は、変換装置1全体の動作を制御する。制御部90は、少なくとも、変換装置1の動作モードに基づく制御を行う。具体例として、制御部90は、第1学習モードと、第2学習モードと、変換実行モードとを適宜切り替えて動作させるように、変換装置1の各部を制御する。各モードでの変換装置1の動作は、次のとおりである。第1学習モードにおいては、学習データ供給部80が供給する学習用入力データと正解データとに基づいてロス算出部50が算出したロス、に基づいて、エンコーダー部20およびデコーダー部30の内部パラメーターを調整する。第2学習モードにおいては、学習データ供給部80が供給する学習用入力データと正解データとに基づいて第2ロス算出部が算出した第2ロス、に基づいてエンコーダー部20および第2エンコーダー部60の内部パラメーターを調整する。これらの第1学習モードおよび第2学習モードのそれぞれにおける内部パラメーターの調整とは、例えば、ニューラルネットワークにおける誤差逆伝播処理によって、各部の内部パラメーターを更新する処理である。ニューラルネットワークの内部パラメーターとは、各節における出力値を計算する際の入力値に適用される重み値のベクトルである。そして、変換実行モードにおいては、エンコーダー部20が入力データを基に状態ベクトル(状態データ)を生成し、エンコーダー部20が生成した状態ベクトル(状態データ)を基に、デコーダー部30が、出力データ(入力データに対応する推定変換結果)を生成する。
【0030】
なお、制御部90が第1学習モードと第2学習モードとを切り替える制御の手順については、後で、
図7(フローチャート)を参照しながらさらに説明する。
【0031】
図2は、本実施形態の変換装置1内の、エンコーダー部20およびデコーダー部30による動作におけるデータの流れを示す概略図である。以下において説明するように、エンコーダー部20およびデコーダー部30は、学習モードと変換モードで、動作するものである。
【0032】
エンコーダー部20は、内部にニューラルネットワーク201を有している。ニューラルネットワーク201には、入力映像が持つフレーム画像の系列frame1,frame2,・・・,framerが入力される。ニューラルネットワーク201は、フレーム画像の系列frame1,frame2,・・・,framerに基づいて算出される状態ベクトルを出力する。エンコーダー部20は、入力映像に基づいて生成した状態ベクトルを、デコーダー部30に渡す。
【0033】
デコーダー部30は、内部にニューラルネットワーク301を有している。ニューラルネットワーク301には、エンコーダー部20のニューラルネットワーク201で生成された状態ベクトルが入力される。ニューラルネットワーク301は、入力される状態ベクトルに基づいて算出される語の列word1,word2,・・・,wordu-1,worduを出力する。これらの語は、いずれも、前述のグロス表記における記号である。また、ニューラルネットワーク301は、語列の最後に、特殊記号である<eos>を出力する。<eos>は、文の終わり(end of sentence)を表す記号である。ニューラルネットワーク301が出力する語の列は、推定語列とも呼ばれる。
【0034】
ニューラルネットワーク201および301の各々は、学習モードで動作する際に、学習データに基づく機械学習処理を行うことによって、内部のパラメーターを調整する。ニューラルネットワーク201および301の各々は、変換モードで動作する際には、機械学習処理において調整済みの内部パラメーターを用いて、出力を算出する。エンコーダー部20とデコーダー部30とが変換モードで動作する際には、ニューラルネットワーク301が出力する推定語列が、入力映像に対応する変換結果である。
【0035】
機械学習処理についてさらに詳しく書く。ニューラルネットワーク301が出力する推定語列は、正解データである正解語列と比較することができる。正解語列は、入力映像に対応する形で、学習データ供給部80によって供給される。ロス算出部50は、ニューラルネットワーク301が出力する推定語列と、学習データ供給部80から供給される正解語列とから、ロスを算出する。ロス算出部50によって算出されたロスに基づき、ニューラルネットワーク201および301は、誤差逆伝播を行い、内部のパラメーターを更新する。
【0036】
図3は、付加的なネットワークである第2エンコーダー部60を用いた学習処理の流れを示す概略図である。第2エンコーダー部60は、エンコーダー部20の学習処理を補助する目的のみに用いられる。つまり、第2エンコーダー部60は、学習モードのみで用いられるものであり、変換モードでは使用されない。
【0037】
学習モードで変換装置1が動作する場合に、エンコーダー部20が、フレーム画像の系列を入力して、状態ベクトルを出力することは、既に説明した通りである。学習モードで変換装置1が動作する場合には、それに加えて、第2エンコーダー部60に、正解語列が入力される。この正解語列は、学習データ供給部80によって供給されるものである。正解語列は、図示するように、word1,word2,・・・,wordu-1,worduといった語の列である。また、正解語列の先頭には特殊記号である<bos>(文の始め、beginning of sentence)が付加され、正解語列の最後には特殊記号である<eos>(文の終わり、end of sentence)が付加されている。第2エンコーダー部60は、ニューラルネットワーク601を内部に持っている。ニューラルネットワーク601は、入力された正解語列と、その時点における内部パラメーターとに基づき、状態ベクトルを算出し、出力する。
【0038】
第2ロス算出部70は、エンコーダー部20が出力した状態ベクトルと、第2エンコーダー部60が出力した状態ベクトルとを取得し、これらの両ベクトルからロス(第2ロス)を算出する。ニューラルネットワーク201と601の各々は、第2ロス算出部70によって算出されたロスに基づき、誤差逆伝播を行い、それぞれの内部パラメーターを更新する。
【0039】
つまり、エンコーダー部20は、第2ロス算出部70が算出したロスに基づく誤差逆伝播を行うことにより、内部のパラメーターを調整する。この学習処理により、エンコーダー部20は、入力映像を基に、良好な状態ベクトルを出力することが可能となる。エンコーダー部20は、
図2にも示したように、ロス算出部50が算出したロスに基づく誤差逆伝播も、行う。しかしながら、ロス算出部50が算出したロスに基づいて誤差逆伝播を行う場合の逆伝播の経路は比較的長く、第2ロス算出部70が算出したロスに基づいて誤差逆伝播を行う場合の逆伝播の経路は比較的短い。つまり、ロス算出部50が算出したロスに基づく誤差逆伝播だけではその経路が長すぎることによって十分な機械学習効果が得られない場合にも、第2ロス算出部70が算出したロスに基づく誤差逆伝播を併用することにより、エンコーダー部20は、より良好な学習を行うことができる。
【0040】
つまり、本実施形態に特有の構成である第2エンコーダー部60を用いることにより、エンコーダー部20の学習効果を改善することができる。
【0041】
図4は、エンコーダー部20のより詳細な構成例を示すブロック図である。図示するように、エンコーダー部20は、内部に再帰型ニューラルネットワーク(RNN,recurrent neural network)を含むように構成される。図ではRNNの時間的な再帰構造を左から右方向に展開して表現している。図示する構成例では、エンコーダー部20は、入力されるフレーム画像列frame
1,frame
2,・・・,frame
rの各フレームに対応して、第1層から第N層までのRNNを持つ。Nは、正整数である。例えば、Nを2以上且つ4以下程度の値としてよい。しかし、Nは、ここに例示した範囲に限定されるものではない。エンコーダー部20を構成するため、時間の進行につれて(フレーム画像の進行につれて)、N層のRNNの回路を順次再利用する。第1層のRNNには、フレーム画像が入力される。第1層のRNNには直接フレーム画像を入力するのではなく、事前にフレーム画像を図示していないCNN(畳み込みニューラルネットワーク)などの特徴を抽出する回路に入力し、その出力である特徴ベクトルを第1層のRNNに入力しても良い。第1層のRNNからの出力は、同じフレーム画像に対応する第2層のRNNと、次のフレーム画像に対応する第1層のRNNとに、渡される。また、第i層(1<i<N)のRNNは、同じフレーム画像に対応する第(i-1)層のRNNからの出力と、前のフレーム画像に対応する第i層のRNNからの出力とを受け取る。そして、その第i層のRNNからの出力は、同じフレーム画像に対応する第(i+1)層のRNNと、次のフレーム画像に対応する第i層のRNNとに、渡される。また、第N層のRNNは、同じフレーム画像に対応する第(N-1)層のRNNからの出力と、前のフレーム画像に対応する第N層のRNNからの出力とを受け取る。そして、その第N層のRNNからの出力は、次のフレーム画像に対応する第N層のRNNに渡される。最後のフレーム画像(
図4においては、frame
r)に対応するRNNからの出力は、状態ベクトルである。エンコーダー部20は、生成した状態ベクトルを、デコーダー部30や第2ロス算出部70に渡す。
【0042】
図4を参照して説明したように、エンコーダー部20は、論理的には、N行r列のマトリクス状に配置されたRNNを用いて構成される。ただし、Nは層の数であり、rは入力される画像の系列の長さである。
【0043】
図5は、デコーダー部30のより詳細な構成例を示すブロック図である。図示するように、デコーダー部30は、内部にRNNを含んで構成される。図ではRNNの時間的な再帰構造を左から右方向に展開して表現している。図示する構成例では、デコーダー部30は、出力する語列(推定語列)word
1,word
2,・・・,word
u-1,word
u,および<eos>の各記号に対応して、第1層から第N層までのRNNを持つ。ここでのNの値は、エンコーダー部20(
図4参照)のNの値に合わせる。つまり、デコーダー部30は、論理的には、エンコーダー部20の内部構成と同様の、N行(u+1)列のマトリクス状に配置されたRNNを用いて構成される。デコーダー部30におけるRNNのマトリクス内での、データの受け渡しの流れも、エンコーダー部20のRNNのマトリクス内におけるそれと同様である。ここで、(u+1)は、出力系列の長さである。ただし、この出力系列の長さは、<eos>等の特殊記号を含む長さであってもよい。
【0044】
デコーダー部30は、エンコーダー部20が生成した状態ベクトルを、入力データとして取得する。また、デコーダー部30の第N層のRNNは、順次、推定語列(word1,word2,・・・,wordu-1,wordu,および<eos>)を出力する。デコーダー部30は、生成した推定語列を、出力部40やロス算出部50に渡す。
【0045】
図6は、第2エンコーダー部60のより詳細な構成例を示すブロック図である。図示するように、第2エンコーダー部60は、内部にRNNを含んで構成される。図ではRNNの時間的な再帰構造を左から右方向に展開して表現している。図示する構成例では、第2エンコーダー部60は、入力される正解語列<bos>,word
1,word
2,・・・,word
u-1,word
u,および<eos>に対応して、第1層から第N層までのRNNを持つ。ここでのNの値は、エンコーダー部20(
図4参照)のNの値に合わせる。つまり、第2エンコーダー部60は、論理的には、エンコーダー部20の内部構成と同様の、N行(u+2)列のマトリクス状に配置されたRNNを用いて構成される。第2エンコーダー部60におけるRNNのマトリクス内での、データの受け渡しの流れも、エンコーダー部20のRNNのマトリクス内におけるそれと同様である。ここで、(u+2)は、出力系列の長さである。ただし、この出力系列の長さは、<bos>や<eos>等の特殊記号を含む長さであってもよい。
【0046】
第2エンコーダー部60は、学習データ供給部80から渡される正解語列のデータを入力として取得する。第2エンコーダー部60の第1層のRNNは、順次、正解語列(<bos>,word1,word2,・・・,wordu-1,wordu,および<eos>)を入力する。第2エンコーダー部60は、上記の正解語列を基に生成した状態ベクトルを、第2ロス算出部70に渡す。
【0047】
図7は、変換装置1が機械学習処理を行う際の手順の一例を示すフローチャートである。以下では、このフローチャートを参照しながら、学習処理の手順について説明する。
【0048】
ステップS101において、学習データ供給部80は、学習用データとして、1対の入出力データを供給する。入力データは、映像データである。学習データ供給部80は、入力データを、フレーム画像データの系列として、エンコーダー部20に渡す。出力データは、正解語列データである。学習データ供給部80は、出力データである正解語列を、第2エンコーダー部60およびロス算出部50に渡す。
【0049】
次に、ステップS102において、エンコーダー部20は、ステップS101で渡されたフレーム画像データの系列を基に、順伝播を行う。エンコーダー部20は、順伝播の結果として、状態ベクトルを出力する。
【0050】
次に、ステップS103において、第2エンコーダー部60は、ステップS101で渡された正解語列のデータを基に、順伝播を行う。第2エンコーダー部60は、順伝播の結果として、状態ベクトルを出力する。
【0051】
次に、ステップS104において、第2ロス算出部70は、エンコーダー部20から出力された状態ベクトル(ステップS102)と、第2エンコーダー部60から出力された状態ベクトル(ステップS103)とを基に、ロスを算出する。
【0052】
次に、ステップS105において、エンコーダー部20は、ステップS104において第2ロス算出部70が算出したロスに基づいて、誤差逆伝播を行う。この誤差逆伝播により、エンコーダー部20は、内部のパラメーターを更新する。
【0053】
次に、ステップS106において、第2エンコーダー部60は、ステップS104において第2ロス算出部70が算出したロスに基づいて、誤差逆伝播を行う。この誤差逆伝播により、第2エンコーダー部60は、内部のパラメーターを更新する。
【0054】
以上、ステップS102からS106までの一連の処理は、エンコーダー部20の出力と第2エンコーダー部60の出力との差分に基づき、エンコーダー部20および第2エンコーダー部60の各々が内部に持つニューラルネットワークのパラメーターを調整する処理である。つまり、前述の、第2学習モードの処理である。
【0055】
次に、ステップS107において、エンコーダー部20は、ステップS101で渡されたフレーム画像データの系列を基に、順伝播を行う。エンコーダー部20は、順伝播の結果として、状態ベクトルを出力する。本ステップで生成した状態ベクトルを、エンコーダー部20は、デコーダー部30に渡す。
【0056】
次に、ステップS108において、デコーダー部30は、ステップS107においてエンコーダー部20が出力した状態ベクトルに基づいて、順伝播を行う。その結果として、デコーダー部30は、語の列(推定語列)を出力する。この推定語列は、<eos>等の特殊記号を含んでもよい。
【0057】
次に、ステップS109において、ロス算出部50は、ステップS101で渡された正解語列のデータと、ステップS108において求められた推定語列のデータとを基に、ロスを算出する。
【0058】
次に、ステップS110において、デコーダー部30は、ステップS109において算出されたロスに基づいて、誤差逆伝播を行う。この誤差逆伝播により、デコーダー部30は、内部のパラメーターを更新する。
【0059】
次に、ステップS111において、エンコーダー部20は、ステップS110におけるデコーダー部30の誤差逆伝播の処理の延長として、エンコーダー部20が持つニューラルネットワークの誤差逆伝播を行う。この誤差逆伝播により、エンコーダー部20は、内部のパラメーターを更新する。
【0060】
以上、ステップS107からS111までの一連の処理は、エンコーダー部20およびデコーダー部30の順伝播処理によって得られた推定語列と、学習データ供給部80から与えられた正解語列との差分に基づき、エンコーダー部20およびデコーダー部30の各々が内部に持つニューラルネットワークのパラメーターを調整する処理である。つまり、前述の、第1学習モードの処理である。
【0061】
ステップS112において、制御部90は、全ての学習データを用いた機械学習処理を完了したか否かを判定する。全ての学習データを処理済みである場合(ステップS112:YES)には、次のステップS113に進む。まだ学習データ(入出力データ対)が残っている場合(ステップS112:NO)には、次のデータを処理するためにステップS101に戻る。
【0062】
ステップS113に進んだ場合には、制御部90は、現在の学習データの集合を用いた学習処理の所定回数の繰り返しが完了したか否かを判定する。なお、この回数は、例えば、予め定めておくものとする。所定回数の処理が完了した場合(ステップS113:YES)には、本フローチャート全体の処理を終了する。所定回数の処理が完了していない場合(ステップS113:NO)には、次の回の処理を行うためにステップS101に戻る。なお、本ステップにおいて、予め定めておいた回数に基づいて全体の処理を終了するか否かの判断を行う代わりに、他の判断基準に基づいた判断を行うようにしてもよい。一例として、更新対象であるニューラルネットワークのパラメーター集合の値の収束状況(十分に収束しているか否か)に基づいて、全体の処理を終了するか否かの判断を行うようにしてもよい。
【0063】
以上の処理の手順により、エンコーダー部20およびデコーダー部30の学習が進む。学習により、エンコーダー部20およびデコーダー部30のそれぞれの内部のパラメーターが調整されるため、エンコーダー部20およびデコーダー部30は、より精度良く、入力データ(具体例としては、画像の系列。さらに具体的な例としては、手話を表す映像。)に対応する出力データ(具体例としては、記号の列。さらに具体的な例としては、手話に対応するグロス表記の単語列。)を生成するようになる。
【0064】
以上、説明した手順では、ロス算出部50が算出したロスに基づいてエンコーダー部20のパラメーターを更新するだけでなく、第2ロス算出部70が算出したロスにも基づいてエンコーダー部20のパラメーターを更新する。第2ロス算出部70は、エンコーダー部20と第2エンコーダー部60とがそれぞれ算出する状態ベクトルの差をロスとして産出する。この手法により、エンコーダー部20の学習をより良好に行うことができる。つまり、エンコーダー部20が生成する状態ベクトルは、入力映像と正解語列との関係をより良く表現するものとなる。したがって、変換装置1は、入力映像に対応して、精度の高い推定語列を生成することが期待される。
【0065】
図7に示した手順では、第2ロス算出部70が算出したロスに基づく学習(ステップS102からS106までの、エンコーダー部20および第2エンコーダー部60の学習、第2学習モード)と、ロス算出部50が算出したロスに基づく学習(ステップS107からS111までの、エンコーダー部20およびデコーダー部30の学習、第1学習モード)とを、個別且つ交互に実施している。これは、前述の制御部90によるモードの切り替えの例である。つまり、制御部90は、学習処理の際に、学習データ供給部80が供給する学習用入力データと正解データとの対ごとに、第1学習モードと第2学習モードとを繰り返して実行するよう制御する。しかしながら、これら両者の学習を計算グラフ上で同時に行うようにしてもよい。
【0066】
[評価実験の例]
上記の実施形態による変換装置の評価実験を行った。その結果を次に記す。
【0067】
実験の条件は次のとおりである。CNN(畳み込みニューラルネットワーク)として、AlexNetを用いてImageNetのデータセットで学習したパラメーターを初期値とした。また、RNNとして、エンコーダー部20とデコーダー部30と第2エンコーダー部60のすべてに、4層1000ユニットのResidual GRU(Gated Recurrent Unit)を採用した。
【0068】
なお、比較対象の変換装置は、従来技術の手法を用いた変換装置である。言い換えれば、比較対象の変換装置は、第2ロス算出部70を持たず、第2ロス算出部70が算出したロスに基づく誤差逆伝播を行わない。また、したがって、比較対象の変換装置は、第2エンコーダー部60を持たない。
【0069】
評価実験で用いた学習データとして、入力映像(手話映像)と、グロス表現による正解語列との対、16000対を用いた。評価用データとしては、同様に入力映像とグロス表現による正解語列との対、1000対を用いた。学習データとして用いた入力映像は、日本放送協会の手話ニュース(2009年から2015年までの放送分)の映像である。対象ドメインは、気象情報および気象関連の話題である。入力映像の長さは、最大で、1文あたり10秒である。入力映像のフレームレートは、29.97フレーム毎秒である。画像のサイズは256画素×256画素であり、画像は、上半身と右手と左手とを含む。語彙数は、6695語である。
【0070】
図8は、評価実験の結果を示すグラフである。同図のグラフは、従来技術の手法と、本実施形態の手法とのそれぞれについて、学習データ数と単語誤り率(変換誤り率)との対応関係を示す。グラフの横軸は延べ学習データ数である(単位は、文数)。グラフの縦軸は、単語誤り率である。両手法とも、概ね、学習データ数を大きくするほど、単語誤り率が下がる傾向が出ている。しかし、学習データ数のすべての領域において、従来技術の手法を用いる場合よりも、本実施形態の手法を用いる場合のほうが、単語誤り率は低い。従来技術の手法を用いる場合の単語誤り率の最小値は、0.424であった。一方、本実施形態の手法を用いる場合の単語誤り率の最小値は、0.403であった。つまり、本実施形態を用いることにより、より低い単語誤り率を実現できることが、確認できた。
【0071】
なお、上述した実施形態における変換装置の少なくとも一部の機能をコンピューターで実現することができる。その場合、この機能を実現するためのプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM、DVD-ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、一時的に、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0072】
以上、実施形態を説明したが、本発明はさらに次のような変形例でも実施することが可能である。例えば、入力映像に映る内容は、手話以外でもよい。手話に限らず、任意のジェスチャー等の動き(人あるいは生物の動きには限定されない)の映像を基に、記号列を出力する変換装置を実施してもよい。また、出力する単語列は、グロス表記には限定されない。出力する単語列は、任意の言語表現や、より一般的な記号列等であってもよい。また、入力データは、映像に限定されない。例えば、任意の系列データであってもよい。また、エンコーダー部20やデコーダー部30や第2エンコーダー部60が用いる、機械学習のための手法は、ニューラルネットワークに限られるものではない。つまり、ニューラルネットワークの代わりに、学習データに基づいて機械学習を行うことのできる任意の手段を用いてもよい。
【0073】
以上、説明したように、本実施形態(変形例を含む)によれば、変換装置1は、ニューラルネットワークを用いて構成され入力される正解記号列を基に状態ベクトルを生成するする第2エンコーダー部60と、エンコーダー部20が生成する状態ベクトルと第2エンコーダー部60が生成する状態ベクトルとの差を算出する第2ロス算出部70とを備える。そして、第2ロス算出部70が算出したロスに基づいて、エンコーダー部20および第2エンコーダー部60の誤差逆伝播を行うことができる。つまり、相対的に短い誤差逆伝播経路を用いて、エンコーダー部20の機械学習処理を行うことができる。これにより、学習効果が良く表れ、変換装置1の変換精度が向上する。あるいは、変換装置1の学習コストを下げることができる。
【0074】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0075】
本発明は、例えば、映像を基に記号列を生成するあらゆる適用領域(一例として、映像理解等)に利用することができる。特に手話映像を対象とした処理を行う場合には、聴覚障害者と健聴者のコミュニケーションに利用したり、手話学習者の教育に利用したり、することができる。但し、本発明の利用範囲はここに例示したものには限られない。
【符号の説明】
【0076】
1 変換装置
10 入力部
20 エンコーダー部
30 デコーダー部
40 出力部
50 ロス算出部
60 第2エンコーダー部
70 第2ロス算出部
80 学習データ供給部
90 制御部
201,301,601 ニューラルネットワーク