以下、本発明の実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態に係る画像判別装置の構成例および処理例を示す図である。
画像判別装置1は、読唇処理用の辞書情報を生成する作業を支援するものである。辞書情報とは、例えば、単語などの意味のある文字列に対して、文字列を発音する際の口の形状を示す形状情報が対応付けられた情報である。読唇処理では、例えば、口の領域が映った入力画像と、辞書情報に含まれる形状情報とが比較され、入力画像における口領域との一致度が高い形状情報に対応付けられた文字列が、発話内容と判定される。
画像判別装置1は、検出部2および判別部3を有する。検出部2および判別部3の処理は、例えば、画像判別装置1が備えるプロセッサが、所定のプログラムを実行することで実現される。
検出部2は、ある文字列が発音された期間のシーンが映った入力動画像の各フレームから、口領域を検出する。口領域を検出する方法としては、テンプレートマッチング法などの様々な方法を用いることができる。また、入力動画像としては、例えば、インターネットなどのネットワーク上で公開されている動画像から抽出したものを使用することができる。なお、検出部2による検出時において、入力動画像に映ったシーンで発音された文字列は、既知であるものとする。
図1の例では、入力動画像4は、「こんにちは」という文字列が発音された期間のシーンを映したものである。ここでは説明をわかりやすくするために、入力動画像4には5つのフレームが含まれるものとする。
判別部3は、入力動画像のフレームのうち、検出部2によって口領域が検出されなかったフレームの数を計数する。そして、口領域が検出されなかったフレームの数が所定の判定しきい値以下である場合に、入力動画像を、辞書情報を生成するための動画像と判別する。また、判別部3は、例えば、口領域が検出されなかったフレームの数が所定の判定しきい値以下である場合、入力動画像を、辞書情報における口の形状情報として登録してもよい。なお、判定しきい値は、0以上の整数である。
図1の例では、入力動画像4のフレームのうち、1番目,2番目,4番目,5番目の各フレームからは口領域が検出されたものの、3番目のフレームからは口領域が検出されなかったものとする(ステップS1)。ここで、判定しきい値を“0”とすると、判別部3は、口領域が検出されなかったフレームの数は“1”であり、判定しきい値“0”より大きいと判定する(ステップS2)。この場合、判別部3は、入力動画像4を、辞書情報を生成するための動画像でないと判別する。
ここで、辞書情報に含まれる口の形状情報の生成のために利用する動画像は、できるだけ多くのフレームに口領域が映っていることが好ましい。それにより、読唇処理の際に、生成された形状情報を口が映った画像と比較したときの一致度判定の精度を向上させることができる。
画像判別装置1の上記処理により、入力動画像が、高精度な読唇処理を実行するための辞書情報の生成に利用する動画像として適切か否かを、精度よく判定することができる。従って、辞書情報の生成作業の効率を高めることができる。
特に、入力動画像として、ネットワーク上で公開されている動画像など、すでに世の中に流通している大量の動画像から抽出したものを使用した場合、その入力動画像には、対応する文字列が発音されたシーンであるにもかかわらず、発音した人の口が常に映っているとは限らない。また、口どころか顔や人が映っていない場合もあり得る。画像判別装置1の上記処理により、このような入力動画像を用いた場合の辞書情報の生成作業を、顕著に効率化することができる。
〔第2の実施の形態〕
図2は、第2の実施の形態に係る作業支援装置のハードウェア構成例を示す図である。作業支援装置100は、読唇処理に用いる辞書情報を生成する作業を支援するための装置である。作業支援装置100は、例えば、図2のようなコンピュータとして実現される。
作業支援装置100は、プロセッサ101によって装置全体が制御されている。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。またプロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
プロセッサ101には、バス108を介して、RAM(Random Access Memory)102と複数の周辺機器が接続されている。
RAM102は、作業支援装置100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
バス108に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、読み取り装置106および通信インタフェース107がある。
HDD103は、作業支援装置100の補助記憶装置として使用される。HDD103には、OSプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、SSD(Solid State Drive)などの他の種類の不揮発性記憶装置を使用することもできる。
グラフィック処理装置104には、表示装置104aが接続されている。グラフィック処理装置104は、プロセッサ101からの命令に従って、画像を表示装置104aの画面に表示させる。表示装置としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
入力インタフェース105には、入力装置105aが接続されている。入力インタフェース105は、入力装置105aから出力される信号をプロセッサ101に送信する。入力装置105aとしては、キーボードやポインティングデバイスなどがある。ポインティングデバイスとしては、マウス、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
読み取り装置106には、可搬型記録媒体106aが脱着される。読み取り装置106は、可搬型記録媒体106aに記録されたデータを読み取ってプロセッサ101に送信する。可搬型記録媒体106aとしては、光ディスク、光磁気ディスク、半導体メモリなどがある。
通信インタフェース107は、ネットワーク107aを介して、他の装置との間でデータの送受信を行う。なお、ネットワーク107aは、例えば、インターネットに接続されていてもよい。
以上のようなハードウェア構成によって、作業支援装置100の処理機能を実現することができる。
次に、図3は、読唇処理の手順の概要を示す図である。この図3を用いて、本実施の形態で生成作業の対象となる辞書情報と、読唇処理での辞書情報の使われ方について説明する。
辞書情報200には、例えば、それぞれ1つの単語に対応するレコード201が登録される。各レコード201には、単語を示すテキスト情報(または単語の識別情報)に対して、その単語を発音したときの口領域が撮影された動画像が対応付けて登録される。また、1つのレコード201には複数の動画像を対応付けて登録しておくことができる。
読唇エンジン210は、例えば、辞書情報200を用いて次のような読唇処理を行う。読唇エンジン210には、処理対象の動画像221が入力される。処理対象の動画像221には、未知の人の口領域が映っている。読唇エンジン210は、処理対象の動画像221における口領域の画像と、辞書情報200に登録されている動画像とのマッチングを行い、類似度を計算する。そして、読唇エンジン210は、辞書情報200の動画像のうち、類似度が最も高い動画像を判定し、判定した動画像に対応付けられている単語のテキスト情報を、処理対象の動画像221に映った人が発話した内容の推定結果222として出力する。
ここで、前述のように、辞書情報200においては、1つの単語に対して複数の動画像を対応付けて登録しておくことが可能である。例えば、同じ単語を異なる人が発音したときの口領域が撮影された動画像を、1つのレコード201に登録することが可能である。また、例えば、同じ単語を同じ人が発音したときの口領域を、それぞれ異なる角度から撮影することで得られた動画像を、1つのレコード201に登録することも可能である。
このように、辞書情報200において、1つの単語に対して多くの動画像を対応付けておき、それらの動画像を読唇処理のマッチングに利用することで、読唇精度を向上させることができる。
ところで、辞書情報200に登録する動画像を用意する方法としては、例えば、多数の被験者に単語を発音させ、発音時の口領域の画像を撮影するとい方法があるが、この方法は撮影の手間が大きいという問題がある。特に、上記のように読唇精度を向上させるために辞書情報200に登録される動画像が多くなるほど、撮影の手間も大きくなる。
これに対し、本件の発明者は、すでに撮影された様々な動画像を収集し、収集された動画像を用いて辞書情報200に登録する動画像を生成する方法を検討した。収集の対象とする動画像としては、例えば、インターネットなどのネットワーク上で公開されている動画像や、光ディスクなどの記録媒体に記録されて流通している動画像などが考えられる。このような方法により、辞書情報200の生成のための撮影作業を行う手間を省くことができる。
しかしながら、このような方法により収集された動画像では、たとえ目的とする単語が発音されたシーンが映っていたとしても、その単語を発音した人の口領域が映っているとは限らない。また、口領域が映っていたとしても、その単語の発音の開始時点から終了時点までの全体を通して、発音した人の口領域が映っているとは限らない。
辞書情報200の動画像として使用するためには、所望の単語の発音の開始時点から終了時点までのできるだけ長い期間(最も好ましくは期間全体で)、発音した人の口領域が映っていることが望ましい。これにより、読唇処理の精度を高くすることができる。しかしながら、収集された動画像から、辞書情報200の動画像として使用するのに適する動画像を抽出するための作業の手間が非常に大きいという問題があった。
そこで、本実施の形態の作業支援装置100は、このようにして収集された動画像から、辞書情報200の動画像として使用するのに適する動画像を抽出する作業の少なくとも一部を自動化して、その作業効率を向上させる。これにより、読唇エンジン210の開発作業を効率化し、その読唇処理精度を高めるとともに、開発コストを削減する。
なお、上記の図3の説明では、辞書情報200の各レコード201には1つ以上の動画像が登録されるものとしたが、辞書情報200の各レコード201には、対応する単語が発音されたときの口領域の形状を示す情報が登録されていればよい。動画像は、そのような形状を示す情報の一例である。口領域の形状を示す情報の他の例としては、口領域の特徴量などがある。
ただし、口領域の形状を示す情報は、一般的に、口領域が撮影された動画像を基に生成される。従って、辞書情報200に、口領域の形状を示す情報として動画像以外の情報が登録されたとしても、そのような辞書情報200を生成するために、口領域が撮影された動画像が必要となることに変わりはない。
なお、本実施の形態の読唇処理では、上記の図3の説明のように、単語単位で認識を行うものとする。この方法は、例えば、一文字単位(音節単位)で認識を行う方法と比較して、認識精度を高めることができる。
また、本実施の形態で言う「単語」とは、例えば、単語およびこれに後続する付属語などを含む「文節」も包含するものとする。
また、本実施の形態を、単語(あるいは文節)より大きな単位(例えば、複数文節)で認識するように変形することも可能である。この場合、辞書情報200においては、例えば、複数文節の文字情報ごとに、口領域の形状を示す情報が1つ以上対応付けて登録されればよい。
図4は、作業支援装置が備える機能の例を示すブロック図である。作業支援装置100は、動画像収集部111、発話画像ファイル生成部112、単語分割部113、単語区間抽出部114、口領域検出部115および判定部116を有する。これらの各処理ブロックの処理は、例えば、作業支援装置100が備えるプロセッサ101が、所定のプログラムを実行することで実現される。
動画像収集部111は、ネットワーク107aから動画像を収集する。例えば、動画像収集部111は、動画投稿サイトなどの無料で動画像コンテンツを配信しているWebサイトを提供するWebサーバにアクセスして、動画像のデータをダウンロードする。収集された動画像のデータは、例えば、作業支援装置100のHDD103に格納される。
発話画像ファイル生成部112は、動画像収集部111によって収集された動画像それぞれから、人が言葉を発したシーンの区間(以下、「発話区間」と呼ぶ)を抽出する。発話画像ファイル生成部112は、抽出した発話区間の動画像を切り出して、発話画像ファイル130を生成する。発話画像ファイル130には、発話内容を示す発話内容テキスト131と、動画像データ132とが対応付けて格納されている。生成された発話画像ファイル130は、例えば、作業支援装置100のRAM102に一時的に格納される。
なお、後述するように、本実施の形態では、基本的に、動画像収集部111によって収集された動画像には、字幕テキストが付加されているものとする。例えば、収集された動画像におけるある範囲の隣接する複数フレームに対して、1つの文章(字幕)が表示されるように字幕テキストが付加されている。
単語分割部113は、生成された発話画像ファイル130それぞれの発話内容テキスト131を、形態素解析などを用いて、単語を単位として分割する。
単語区間抽出部114は、生成された発話画像ファイル130それぞれの動画像データ132から、単語分割部113によって分割された各単語が発音された区間(以下、「単語区間」と呼ぶ)を切り出して、単語画像ファイル140を生成する。単語画像ファイル140には、発音された単語を示す単語テキスト141と、動画像データ142とが対応付けて格納されている。生成された単語画像ファイル140は、例えば、作業支援装置100のRAM102に一時的に格納される。
口領域検出部115は、生成された単語画像ファイル140それぞれの動画像データ142に基づく画像の各フレームから、画像処理によって口領域を検出する。
判定部116は、単語画像ファイル140それぞれの動画像データ142について、口領域検出部115によって口領域が検出されなかったフレームの数を計数する。判定部116は、口領域が検出されなかったフレームの数が、あらかじめ決められた判定しきい値以下である場合に、検出対象の動画像データ142は前述の辞書情報200の生成のために利用可能であると判定する。この場合、判定部116は、対応する単語画像ファイル140を基に、辞書情報200の生成に利用するための辞書候補ファイル150を生成する。
辞書候補ファイル150には、単語テキスト151と、動画像データ152と、動画像データ152の各フレームにおいて口領域が検出された領域を示す口領域座標153とが含まれる。これらのうち、単語テキスト151および動画像データ152は、対応する単語画像ファイル140の単語テキスト141および動画像データ142と同じである。生成された辞書候補ファイル150は、例えば、作業支援装置100のHDD103に格納される。
なお、作業支援装置100は、動画像収集部111および発話画像ファイル生成部112を備えていなくてもよい。この場合、発話画像ファイル130は、ネットワークを通じて、または可搬型記録媒体を介して、作業支援装置100に格納される。
また、作業支援装置100は、動画像収集部111および発話画像ファイル生成部112に加えて、さらに単語分割部113および単語区間抽出部114を備えていなくてもよい。この場合、単語画像ファイル140は、ネットワークを通じて、または可搬型記録媒体を介して、作業支援装置100に格納される。
次に、上記の各処理ブロックの処理について説明する。
まず、図5は、発話画像ファイル生成部の処理例について示す図である。
前述のように、動画像収集部111によって収集された動画像には、基本的に、字幕テキストが付加されているものとする。字幕テキストは、例えば、収集された動画像のデータのヘッダ領域などにテキストデータとして付加されていて、発話画像ファイル生成部112が、字幕テキストの内容とその表示期間とを認識可能であるものとする。
発話画像ファイル生成部112は、収集された動画像から、同一の字幕テキストが表示される期間(以下、「同一字幕表示期間」と呼ぶ)を特定する。発話画像ファイル生成部112は、特定した期間の動画像のデータを、発話画像ファイル130の動画像データ132として切り出し、表示される字幕テキストを記述した発話内容テキスト131に対応付ける。これにより、発話画像ファイル130が生成される。
図5の例では、「おはよう、きょうは」という字幕テキストが表示される期間T1が特定され、この期間T1のフレームが切り出されて動画像データ132が生成される。そして、切り出された動画像データ132と、「おはよう、きょうは」というテキスト情報が記述された発話内容テキスト131とを含む発話画像ファイル130が出力される。
なお、発話画像ファイル生成部112は、動画像収集部111によって収集された、字幕テキストが付加されていない動画像を基に、発話画像ファイル130を生成することも可能である。この場合の例について、次の図6を用いて説明する。
図6は、発話画像ファイル生成部の他の処理例について示す図である。
発話画像ファイル生成部112は、例えば、動画像収集部111によって収集された動画像における音声信号を基に、人が言葉を発した発話区間を検出する。発話区間の検出は、例えば、音声信号の周波数スペクトルを解析することによって行うことができる。発話画像ファイル生成部112は、検出した発話区間それぞれの音声信号を基に、さらに音声認識を行って、発話内容を示すテキストを取得する。このような方法により、収集された動画像に字幕テキストが付加されていない場合でも、発話画像ファイル130を生成することができる。
図6の例では、収集された動画像における音声信号から、発話区間A1,A2が検出されたものとする。そして、発話区間A1,A2のそれぞれの音声信号から、音声認識によって「おはよう」「きょうは」という発話内容が認識されたものとする。この場合、発話画像ファイル生成部112は、発話区間A1におけるフレームを切り出した動画像データ132と、「おはよう」というテキスト情報が記述された発話内容テキスト131とを含む発話画像ファイル130を出力する。また、発話画像ファイル生成部112は、発話区間A2におけるフレームを切り出した動画像データ132と、「きょうは」というテキスト情報が記述された発話内容テキスト131とを含む発話画像ファイル130を出力する。
なお、発話画像ファイル130からの、または動画像収集部111によって収集された動画像からの、発話区間および発話内容の抽出作業の少なくとも一部は、オペレータによる操作によって行われてもよい。また、例えば、単語分割部113および単語区間抽出部114の処理によって生成された単語画像ファイル140について、その動画像の開始時刻や終端時刻の修正や発話内容の修正が、オペレータによる操作によって行われてもよい。
次に、図7は、単語分割部および単語区間抽出部の処理例について示す図である。
単語分割部113は、生成された発話画像ファイル130それぞれの発話内容テキスト131を、形態素解析などを用いて、単語を単位として分割する。
単語区間抽出部114は、生成された発話画像ファイル130それぞれの動画像データ132から、単語分割部113によって分割された各単語が発音された区間(以下、「単語区間」と呼ぶ)を切り出して、単語画像ファイル140を生成する。単語画像ファイル140には、発音された単語を示す単語テキスト141と、切り出された動画像データ142とが対応付けて格納される。生成された単語画像ファイル140は、例えば、作業支援装置100のRAM102に一時的に格納される。
単語区間抽出部114は、例えば、動画像データ132に含まれる音声信号を基に音声認識を行い、それぞれの単語が発音された区間の開始時刻と終了時刻とを検出する。そして、単語区間抽出部114は、動画像データ132から、開始時刻から終了時刻までに表示されるフレームを切り出して、単語画像ファイル140の動画像データ142を生成する。
なお、例えば、発話画像ファイル生成部112が音声認識を用いて発話画像ファイル130を生成した場合には、この音声認識の時点で、発話画像ファイル130内の動画像データ132における単語や音節単位での発音開始時刻および発音終了時刻が検出されている場合がある。この場合、単語区間抽出部114は、発話画像ファイル生成部112によって検出された発音開始時刻および発音終了時刻に基づいて、動画像データ132における単語区間を検出することができる。
図7には、「おはよう、きょうは」という発話内容が記述された発話画像ファイル130から、単語画像ファイル140が生成される際の例が示されている。単語分割部113は、「おはよう、きょうは」という発話内容に対して形態素解析を行って、発話内容を「おはよう」と「きょうは」という単語(文節)に分割する。
単語区間抽出部114は、発話画像ファイル130の動画像データ132から、「おはよう」と発音された単語区間と、「きょうは」と発音された単語区間とを切り出す。図7の例では、時刻T11から時刻T12までが「おはよう」と発音された単語区間と判定される。そして、発話画像ファイル130の動画像データ132における、時刻T11から時刻T12までに表示されるフレームが、単語画像ファイル140の動画像データ142として切り出される。また、図7の例では、時刻T13から時刻T14までが「きょうは」と発音された単語区間と判定される。そして、発話画像ファイル130の動画像データ132における、時刻T13から時刻T14までに表示されるフレームが、単語画像ファイル140の動画像データ142として切り出される。
次に、図8は、口領域検出部の処理例について示す図である。
口領域検出部115は、単語画像ファイル140に含まれる動画像データ142の各フレームから、画像処理により口領域を検出する。口領域の検出には、例えば、テンプレートマッチング法を用いることができる。
テンプレートマッチング法を用いた場合、口領域検出部115は、動画像データ142のそれぞれのフレームと、口領域のテンプレートとを比較する。テンプレートとは、発話時の口領域の形状パターンを含む画像情報であり、例えば、発話時の口領域が撮影された画像、または、そのような撮影画像から、口領域の特徴的な形状パターンのみが抽出された画像などである。
例えば、図8に示すように、口領域検出部115は、検出対象のフレーム231の左上と、テンプレート232の左上とを合わせ、このような位置関係を起点としてテンプレート232を右方向に1画素ずつ移動させながら、テンプレート232と、テンプレート232と重なったフレーム231の領域との類似度を計算する。口領域検出部115は、テンプレート232の右端がフレーム231の右端に達すると、テンプレート232を1画素分下方向に移動させて、同様の処理を行う。このようにして、フレーム231の全領域から口領域を探索する。
さらに、口領域検出部115は、テンプレート232のサイズを変えて(例えば1段階小さくして)、上記と同様にフレーム231の全領域から口領域を探索する。テンプレート232のサイズ変更は、3段階以上行われてもよい。
口領域検出部115は、このようにして算出された類似度のうち、最も高い類似度が算出されたテンプレート232の位置に対応するフレーム231の領域233を、口領域と判定する。ただし、口領域検出部115は、算出された類似度の最大値が所定の判定しきい値より低い場合には、そのフレームからは口領域が検出されなかったと判定する。
なお、テンプレートは、例えば、輝度情報のみの画像データであってもよい。その場合には、フレームの輝度情報とテンプレートとが比較される。
また、テンプレートと、フレームにおけるテンプレートと重なる領域との類似度を計算する際には、例えば、両者の特徴量同士の類似度が計算されてもよい。特徴量の例としては、特徴量ベクトルがある。例えば、テンプレートの特徴量ベクトルをX、フレームにおけるテンプレートと重なる領域の特徴量ベクトルをYとすると、類似度を示す距離Dは、D=|X−Y|として求めることができる。
なお、口領域の検出のために、顔検出を利用することもできる。例えば、フレームから顔を検出し、顔が検出された領域の一部を、上記のようなテンプレートを用いた口領域の探索領域とする。この方法によれば、テンプレートを用いた口領域の探索領域が限定され、処理負荷を低減することができる。ただし、顔検出が利用できるのは、フレームに顔のほぼ全体が映っている場合に限られる。
図9は、判定部の処理例について示す図である。
判定部116は、単語画像ファイル140の動画像データ142に含まれるフレームのうち、口領域検出部115によって口領域が検出されなかったフレームの数を計数する。ここで、動画像データ142に含まれるフレーム数をN、動画像データ142のフレームのうち口領域が検出されたフレームの数をR、判定しきい値をK(ただし、Kは0以上の整数)とする。このとき、判定部116は、(N−R)≦Kである場合に、動画像データ142は辞書情報200の生成のために利用可能であると判定する。この場合、判定部116は、対応する単語画像ファイル140を基に、辞書情報200の生成に利用するための辞書候補ファイル150を生成する。
図9(A)は、「おはよう」と発音された単語期間における単語画像ファイル140を基に判定される例を示し、図9(B)は、「きょうは」と発音された単語区間における単語画像ファイル140を基に判定される例を示す。説明を簡単にするために、図9(A)の場合の動画像データ142には4フレームが含まれ、図9(B)の場合の動画像データ142には5フレームが含まれるものとする。また、各フレームに太線で示した矩形領域を、口が検出された領域とする。
ここで、例として判定しきい値Kを“0”とする。図9(A)の例では、全フレームから口領域が検出されたものとする。この場合、口領域が検出されなかったフレームの数(上記の“N−R”)は判定しきい値“0”以下であることから、判定部116は、対象の動画像データ142を、辞書情報200の生成のために利用可能であると判定する。
この場合、判定部116は、単語テキスト151として「おはよう」が記述され、口領域の検出対象とした動画像データ142を動画像データ152として格納した辞書候補ファイル150を生成して、HDD103などに保存する。また、生成された辞書候補ファイル150の口領域座標153には、動画像データ152における各フレームについて、検出された口領域の座標を示す情報が登録される。
辞書候補ファイル150に登録される動画像は、例えば、各フレームに口領域のみが映った動画像である。辞書候補ファイル150の口領域座標153は、例えば、辞書候補ファイル150から辞書情報200に登録する動画像を生成する際に、各フレームから口領域を抽出するために利用される。また、判定部116により、辞書情報200に登録する動画像が直接生成されてもよい。
一方、図9(B)の例では、1番目、2番目、4番目および5番目の各フレームからは口領域が検出されたものの、3番目のフレームからは口領域が検出されていない。この例では、口領域が検出されなかったフレームの数(上記の“N−R”)は判定しきい値“0”より大きいことから、判定部116は、対象の動画像データ142を、辞書情報200の生成のために利用不可能であると判定する。この場合、辞書候補ファイル150は生成されない。
前述したように、辞書情報200に登録される動画像は、対応する単語の発音の開始時点から終了時点までのできるだけ長い期間(最も好ましくは期間全体で)、発音した人の口領域が映っていることが望ましい。これにより、読唇処理の精度を高くすることができる。例えば、辞書情報200の生成のために口領域を撮影した場合には、撮影された動画像には当然ながら口領域が確実に映っている。しかしながら、動画像収集部111によって収集された動画像から生成された単語画像ファイル140の動画像データ142においては、各フレームに口領域が映っているとは限らない。
上記の判定部116の処理により、単語が発音された区間の多くにおいて口領域が検出された動画像を選別して、選別された動画像を、辞書情報200の生成のために利用するものとして保存することができる。これにより、生成される辞書情報200を適正化し、その辞書情報200を用いた読唇処理の精度を向上させることができる。そして、そのような辞書情報200の動画像として使用するのに適する動画像を抽出する作業の効率を、高めることができる。
なお、判定しきい値Kは“0”であることが望ましい。一方、判定しきい値Kを“1”以上とした場合には、例えば、口領域が検出されなかったフレームを含む動画像を基に辞書候補ファイル150を生成する際に、口領域が検出されなかったフレームにも口領域が含まれるように補正が行われてもよい。補正の方法としては、例えば、口領域が検出されなかったフレームを、口領域が検出された、その直前または直後のフレームで置き換える方法などが考えられる。
次に、以上で説明した作業支援装置100の処理を、フローチャートを用いて説明する。図10は、作業支援装置の処理例を示すフローチャートである。
[ステップS11]発話画像ファイル生成部112は、動画像収集部111によって収集された動画像から、人が言葉を発したシーンの区間(発話区間)を抽出する。発話画像ファイル生成部112は、抽出した発話区間の動画像を切り出して、発話画像ファイル130を生成する。発話画像ファイル130には、発話内容を示す発話内容テキスト131と、動画像データ132とが対応付けて格納されている。
[ステップS12]単語分割部113は、生成された発話画像ファイル130の発話内容テキスト131を、形態素解析などを用いて、単語を単位として分割する。
[ステップS13]単語区間抽出部114は、発話画像ファイル130の動画像データ132から、ステップS12で分割されて得られた各単語が発音された区間(単語区間)を切り出して、単語画像ファイル140を生成する。単語画像ファイル140には、発音された単語を示す単語テキスト141と、動画像データ142とが対応付けて格納されている。
[ステップS14]判定部116は、ステップS13で生成された単語画像ファイル140のすべてについて、ステップS15〜S18の処理が実行済みかを判定する。すべての単語画像ファイル140について処理済みである場合には、処理が終了される。一方、処理済みでない単語画像ファイル140がある場合には、処理済みでない単語画像ファイル140の1つを処理対象としてステップS15の処理が実行される。
[ステップS15]口領域検出部115は、処理対象の単語画像ファイル140内の動画像データ142のすべてのフレームから、ステップS16での口領域の検出処理が実行されたかを判定する。すべてのフレームからの検出処理が終了した場合には、ステップS17の処理が実行される。一方、検出処理を行っていないフレームがある場合には、動画像データ142における次のフレームを検出処理の対象としてステップS16の処理が実行される。
[ステップS16]口領域検出部115は、探索対象のフレームから、画像処理によって口領域を検出し、検出結果をRAM102などに一時的に格納する。口領域が検出された場合、検出結果には、検出された口領域の座標情報が含まれる。一方、口領域が検出されなかった場合、検出結果には、例えば、口領域が検出されなかった旨が記述される。
[ステップS17]判定部116は、処理対象の単語画像ファイル140の動画像データ142のフレームのうち、ステップS16の処理によって口領域が検出されなかったフレームの数を計数する。判定部116は、口領域が検出されなかったフレームの数が所定の判定しきい値以下である場合には、ステップS18の処理を実行する。一方、口領域が検出されなかったフレームの数が判定しきい値より大きい場合には、ステップS18の処理がスキップされて、ステップS14の処理が実行される。
[ステップS18]判定部116は、処理対象の単語画像ファイル140を基に、辞書情報200の生成に利用するための辞書候補ファイル150を生成し、HDD103に保存する。
次に、上記の第2の実施の形態を基にしたいくつかの変形例について説明する。
<変形例1:文字ごとのテンプレートを用いた口領域の検出処理例>
図8では、1種類のテンプレートのみを用いた口領域の検出処理について説明した。しかしながら、口領域の形状は、発声する文字によって異なる。このため、文字ごとに適切なテンプレートを用いて口領域を検出することで、一致した場合の類似度の算出値が高くなり、その結果、口領域の判定精度を高めることができる。
図11は、文字別に用意されたテンプレートを用いた口領域の探索処理の概要を示す図である。図11に示すテンプレートデータベース(DB)160は、例えば、作業支援装置100のHDD103に格納されている。テンプレートデータベース160には、文字(かな)ごとに、その文字が発音される際の口領域のテンプレートが用意されている。
口領域検出部115が検出の対象とする動画像データ142には、発話の内容を示す単語テキスト141が対応付けられている。このため、口領域検出部115は、文字別のテンプレートの中から、口領域の検出処理に用いるべきテンプレートを容易に特定することができる。図11の例では、単語テキスト141には「おはよう」という単語が記述されている。この場合、口領域検出部115は、「お」「は」「よ」「う」にそれぞれ対応するテンプレート(図11のテンプレート#5,#26,#38,#3)をテンプレートデータベース160から読み出し、これらのテンプレートを使用して口領域を検出する。
図12は、テンプレートの使用切り替えタイミングの一例を示す図である。口領域検出部115は、テンプレートデータベース160から読み出した各テンプレートを、文字の出現順に使用して口領域の検出を行う。ただし、使用するテンプレートをどのタイミングで切り替えるかを決定する必要がある。
切り替えタイミングを決定する方法の一例としては、フレーム数を文字数で均等に分割し、分割されたフレームごとに1つのテンプレートを割り当てる方法がある。また、この方法を変形した例として、基本的には1つのテンプレートに同数のフレームを割り当てるものの、最後の文字だけは割り当てるフレームの数を他の文字より少なくする方法がある。この方法は、単語(または文節)における最後の文字が発音される期間が、それより前の各文字が発音される期間より短い場合があることを利用したものである。
図12の例では、処理対象の動画像のフレームのうち、「お」「は」「よ」にそれぞれ対応するテンプレートが、それぞれ4つのフレームで使用されて口領域が検出される。しかし、最後の文字「う」に対応するテンプレートは、最後の1フレームでのみ使用される。このような方法により、発声される文字に応じたテンプレートを適切に使用して、口領域を検出することができる。
なお、例えば、単語に含まれる文字ごとに割り当てるフレーム数の、単語全体に対応するフレーム数に対する割合は、単語ごとに決められてもよい。
図13は、補間によって得られたテンプレートを使用する例を示す図である。
ある文字を発声する状態から、それとは異なる次の文字を発声する状態に遷移する期間では、口領域の形状が前の文字に対応する形状から次の文字に対応する形状に変化する。このため、前の文字または次の文字のどちらに対応するテンプレートを用いたとしても、口領域を精度よく検出できない可能性がある。
そこで、口領域検出部115は、ある文字を発声する状態から、それとは異なる次の文字を発声する状態に遷移する期間では、前の文字に対応するテンプレートと次の文字に対応するテンプレートとから、補間によってテンプレートを生成し、生成したテンプレートを用いて口領域を検出してもよい。
図13の例では、「お」「は」と連続して発音される際に使用されるテンプレートについて示している。図13では、「お」と発音される期間と「は」と発音される期間との間の時刻(または所定期間)に対応するフレームについては、「お」に対応するテンプレート161と「は」に対応するテンプレート162とから補間によって生成された補間テンプレート163を使用して、口領域が検出される。これにより、口領域の検出精度を高めることができる。
また、テンプレート自体を補間する代わりに、類似度計算に用いる、テンプレートの特徴量を補間してもよい。以下、特徴量の例として特徴量ベクトルを用いた場合について説明する。
図14は、特徴量ベクトルを用いた場合の補間処理例を示す図である。図14の例では、口領域検出部115は、発音される文字が切り替わる境界の直前および直後の2フレームから口領域を検出する際に、切り替え前後の各文字に対応するテンプレートの特徴量ベクトルを補間することで得られた補間特徴量ベクトルを利用する。
例えば、図14に示すように、フレーム番号f=0,1に対応するフレームは、「お」が発音される期間に含まれ、フレーム番号f=2,3に対応するフレームは、「は」が発音される期間に含まれるものとする。この場合、フレーム番号f=1,2に対応するフレームから口領域を検出する際に、「お」に対応するテンプレートの特徴量ベクトルX_aと、「は」に対応するテンプレートの特徴量ベクトルX_bとを基に補間によって得られた補間特徴量ベクトルが用いられる。
補間特徴量ベクトルの計算には、補正係数w_a,w_bが用いられる。補正係数w_aは“−f/u+1”で算出され、補正係数w_bは“f/u”で算出される。ただし、変数uは、補間特徴量ベクトルが用いられるフレーム数に、その直前および直後のフレーム数“2”を加算した値であり、図14の例では“3”である。
このような計算により、フレームの位置ごとに補正係数w_a,w_bが求められる。そして、利用される補間特徴量ベクトルは、“w_a×X_a+w_b×X_b”によって算出される。フレーム番号f=1,2に対応する各フレームについて、このように算出された補間特徴量ベクトルと、フレームの特徴量ベクトルとを用いて類似度が計算されることで、口領域の検出精度を向上させることができる。
なお、以上で説明した変形例1では、文字(かな)ごとに個別のテンプレートが用意されるものとしたが、例えば、発音したときの口領域の形状が似ている文字については、同一のテンプレートが用意されてもよい。また、例えば、文字(かな)ごとではなく、母音ごとにテンプレートが用意されてもよい。
<変形例2:口領域が複数検出された場合の処理例(1)>
図15は、口領域が複数検出された場合の処理例を示す図である。口領域検出部115は、例えば、同一のフレームから口領域が複数検出された場合には、算出された類似度の値が最大である検出領域を、口領域と判定する。これにより、口領域の検出精度を向上させることができる。
この方法は、特に、図11に示したように、発音された文字に対応するテンプレートを用いて口領域を検出する場合に好適である。それは、フレームの中で、対応する文字を発音したときの口領域の形状に類似する領域ほど、その文字が発音された可能性が高いからである。
図15の例では、同一のフレームから、類似度が所定値以上となった2つの口領域が検出され、一方の領域について算出された類似度が“0.8”、他方の領域について算出された類似度が“0.9”であったとする。ただし、類似度が“0.9”の検出領域の大きさが、類似度が“0.8”の検出領域より小さかったものとする。
この場合、口領域検出部115は、類似度が大きい検出領域を口領域と判定する。このように、口領域が複数検出されたとき、類似度が最大の検出領域の大きさが、他の少なくとも1つの検出領域より小さい場合であっても、類似度が最大の検出領域が口領域と判定される。
<変形例3:口領域が複数検出された場合の処理例(2)>
図16は、口領域が複数検出された場合の他の処理例を示す図である。この図16の処理例は、図15の処理例とは異なり、判定部116は、単語画像ファイル140の動画像データ142のフレームの中から、口領域が複数検出されたフレームが1つでもあった場合には、その動画像データ142は辞書情報200の生成に適さないと判定して、その動画像データ142に基づく辞書候補ファイル150を保存しないようにする。
同一のフレームに複数の人物の口が映っている場合、それらのうちのどの人物が目的とする文字を発音しているかを特定することが難しい場合がある。このため、複数の人物の口が映ったフレームを含む動画像データ142については、辞書情報200の生成のために使用しないようにすることで、辞書情報200の品質を向上させることができる。
なお、判定部116は、例えば、動画像データ142のフレームの中から、口領域が複数検出されたフレームの数が、2以上の所定の判定しきい値以上である場合に、辞書情報200の生成に適さないと判定してもよい。この場合、判定部116は、口領域が複数検出されたフレームの数が判定しきい値より小さい場合には、複数の口領域が検出されたフレームについては、図15に示したように類似度が最大の検出領域を口領域と判定すればよい。
<変形例4:口領域の大きさに応じた検出処理例>
図17は、口領域の大きさに応じた検出処理例を示す図である。フレームから口領域が検出されたとしても、検出された口領域の大きさが小さ過ぎる場合には、辞書情報200の生成のために利用する画像としては不向きである可能性がある。例えば、検出された口領域が小さ過ぎる場合には、フレーム間での口の形状の変化がわかりにくくなるからである。
そこで、口領域検出部115は、検出された口領域のフレームに対する面積比が所定の判定しきい値以下である場合には、口領域が検出されなかったと判定する。これにより、生成される辞書情報200の品質を向上させることができる。なお、面積比は、“口領域の面積(画素数)/フレームの面積(画素数)”によって算出される。
図17の例では、1番目から4番目のフレームのいずれかも口領域が検出されたものとする。そして、各フレームで検出された口領域の面積比は、1番目から順に“0.05”,“0.04”,“0.03”,“0.01”であったとする。ここで、判定しきい値を“0.02”とすると、口領域検出部115は、1番目から3番目の各フレームからは口領域が検出されたと判定するが、4番目のフレームからは口領域が検出されなかったと判定する。この場合、判定部116は、該当動画像のフレームのうち口領域が検出されなかったフレームの数を“1”と計数する。
なお、口領域検出部115は、面積比の代わりに、検出された口領域の面積(画素数)自体に基づいて、口領域が検出されたか否かを判定してもよい。
なお、上記の各実施の形態に示した装置(画像判別装置1、作業支援装置100)の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc-Read Only Memory)、CD−R(Recordable)/RW(Rewritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。