(57)【要約】【課題】動画に含まれる文字の認識精度を向上させる。【解決手段】実施形態の文字認識装置は、領域抽出部と、読み取り部と、補正部とを有する。領域抽出部は、認識対象の動画像のフレームごとに、当該フレームに含まれる文字列に対応する領域を抽出する。読み取り部は、抽出した領域から文字列を読み取る。補正部は、フレームの順序に対応する文字列の出現規則を規定する出現規則情報に基づき、読み取った文字列の出現順序が出現規則情報に合うように各フレームより読み取った文字列を補正する。【選択図】図１
2020017156.tif 000002
【特許請求の範囲】
【請求項１】
認識対象の動画像のフレームごとに、当該フレームに含まれる文字列に対応する領域を抽出する領域抽出部と、
抽出した前記領域から文字列を読み取る読み取り部と、
前記フレームの順序に対応する文字列の出現規則を規定する出現規則情報に基づき、読み取った前記文字列の出現順序が前記出現規則情報に合うように各フレームより読み取った前記文字列を補正する補正部と、
を有することを特徴とする文字認識装置。
【請求項２】
前記補正部は、各フレームより読み取った前記文字列を、前記出現規則情報を学習した学習モデルに入力して推測した推測結果と、各フレームより読み取った前記文字列との比較に基づき、前記文字列を補正する、
ことを特徴とする請求項１に記載の文字認識装置。
【請求項３】
前記文字列は、前記動画像における時間に対応するタイムコードである、
ことを特徴とする請求項１または２に記載の文字認識装置。
【請求項４】
前記領域抽出部は、前記領域の抽出対象のフレームより直近にある所定のフレーム間で抽出した前記領域の移動平均をもとに、前記抽出対象のフレームの領域を抽出する、
ことを特徴とする請求項１乃至３のいずれか一項に記載の文字認識装置。
【請求項５】
認識対象の動画像のフレームごとに、当該フレームに含まれる文字列に対応する領域を抽出し、
抽出した前記領域から文字列を読み取り、
前記フレームの順序に対応する文字列の出現規則を規定する出現規則情報に基づき、読み取った前記文字列の出現順序が前記出現規則情報に合うように各フレームより読み取った前記文字列を補正する、
処理をコンピュータに実行させることを特徴とする文字認識プログラム。
【請求項６】
認識対象の動画像のフレームごとに、当該フレームに含まれる文字列に対応する領域を抽出し、
抽出した前記領域から文字列を読み取り、
前記フレームの順序に対応する文字列の出現規則を規定する出現規則情報に基づき、読み取った前記文字列の出現順序が前記出現規則情報に合うように各フレームより読み取った前記文字列を補正する、
処理をコンピュータが実行することを特徴とする文字認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、文字認識装置、文字認識プログラムおよび文字認識方法に関する。
【背景技術】
【０００２】
従来、画像に含まれる数値や文字などを認識する文字認識技術が知られている。この文字認識技術については、入力画像からナンバープレート領域を切り出して一連番号を抽出し、各数字の座標を用いて陸運支局コード、車種コード及び用途コードの座標を決定して各コードの文字認識を行う技術がある。また、表示データから認識された位置にある数値に対してＯＣＲ（Optical  Character  Recognition）処理を行い、連続した第一の表示データと第二の表示データとを一組として各組に含まれるＯＣＲ処理結果が相違している場合に、エラーとして破棄する技術がある。また、コンテンツからロールテロップを検知し、テロップ認識を行う技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平６−２１５２９３号公報
【特許文献２】特開２００７−５８４８０号公報
【特許文献３】国際公開第２００８／５０７１８号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術では、例えば、フレームごとに数値を認識しており、前後のフレームでのＯＣＲ処理結果が相違している場合にはエラーとして破棄することになる。このため、動画に表示されている時間やタイムコードなどの時系列において順序性のある文字を精度よく認識することが困難であるという問題がある。
【０００５】
１つの側面では、動画に含まれる文字の認識精度を向上することができる文字認識装置、文字認識プログラムおよび文字認識方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
１つの案では、文字認識装置は、領域抽出部と、読み取り部と、補正部とを有する。領域抽出部は、認識対象の動画像のフレームごとに、当該フレームに含まれる文字列に対応する領域を抽出する。読み取り部は、抽出した領域から文字列を読み取る。補正部は、フレームの順序に対応する文字列の出現規則を規定する出現規則情報に基づき、読み取った文字列の出現順序が出現規則情報に合うように各フレームより読み取った文字列を補正する。
【発明の効果】
【０００７】
本発明の実施態様によれば、動画に含まれる文字の認識精度を向上することができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態にかかる文字認識装置の機能構成例を示すブロック図である。
【図２】図２は、学習フェーズの一例を説明する説明図である。
【図３】図３は、推論フェーズの一例を説明する説明図である。
【図４】図４は、実施形態にかかる文字認識装置の動作例を示すフローチャートである。
【図５】図５は、領域抽出にかかる処理例を示すフローチャートである。
【図６】図６は、領域抽出にかかる学習および推論を説明する説明図である。
【図７】図７は、読取にかかる処理例を示すフローチャートである。
【図８】図８は、読取にかかる学習および推論を説明する説明図である。
【図９】図９は、フォーマットに合わせた学習を説明する説明図である。
【図１０】図１０は、補正にかかる処理例を示すフローチャートである。
【図１１】図１１は、補正にかかる学習および推論を説明する説明図である。
【図１２】図１２は、実施形態にかかる文字認識装置のハードウエア構成の一例を示すブロック図である。
【発明を実施するための形態】
【０００９】
以下、図面を参照して、実施形態にかかる文字認識装置、文字認識プログラムおよび文字認識方法を説明する。実施形態において同一の機能を有する構成には同一の符号を付し、重複する説明は省略する。なお、以下の実施形態で説明する文字認識装置、文字認識プログラムおよび文字認識方法は、一例を示すに過ぎず、実施形態を限定するものではない。また、以下の各実施形態は、矛盾しない範囲内で適宜組みあわせてもよい。
【００１０】
図１は、実施形態にかかる文字認識装置の機能構成例を示すブロック図である。図１に示すように、文字認識装置１は、文字認識の対象となる対象動画の入力を受け付け、動画像において表示される文字列を認識する情報処理装置である。
【００１１】
例えば、文字認識装置１は、ＰＣ（Personal  Computer）などであり、ＬＡＮ（Local  Area  Network）やインターネット等の通信ネットワーク（図示しない）を介して対象動画の入力を受け付ける。そして、文字認識装置１は、入力された対象動画より認識した文字列をファイルやディスプレイなどに出力する。
【００１２】
対象動画は、例えば放送コンテンツなどが適用できる。また、対象動画より認識する文字列としては、例えば撮影時刻などの時間に対応するタイムコード、セリフなどの字幕、動画の説明などのテロップ、クレジットタイトルなどがある。本実施形態では、所定のフォーマットで記述された撮影時刻（または撮影時間）に対応するタイムコードを認識する場合を例示するが、認識する文字列は字幕やテロップであってもよく、特に限定しない。
【００１３】
文字認識装置１は、入力部１０、制御部２０、文字認識部３０および記憶部４０を有する。
【００１４】
入力部１０は、通信インタフェースなどを介して対象動画（動画像データ）の入力を受け付ける処理部である。入力部１０は、入力された対象動画を制御部２０へ出力する。
【００１５】
制御部２０は、入力部１０および文字認識部３０における処理を制御する処理部である。具体的には、制御部２０は、入力部１０より対象動画が入力されると、入力された対象動画を文字認識部３０に出力し、文字認識部３０が対象動画における文字列の認識処理を行う。
【００１６】
文字認識部３０は、制御部２０より出力された対象動画をもとに文字列の認識処理を行い、認識結果（認識結果ファイル４３、補正結果ファイル４４）を記憶部４０に格納する処理部である。制御部２０では、記憶部４０に記憶された認識結果を読み出し、例えばディスプレイなどに出力する。
【００１７】
具体的には、文字認識部３０は、前処理部３１、領域抽出部３２、読み取り部３３および補正部３４を有する。
【００１８】
前処理部３１は、対象画像に対して前処理を行う処理部である。具体的には、前処理部３１は、対象画像をフレーム単位に分割し、静止画像群４１を生成する。前処理部３１が生成した静止画像群４１は、記憶部４０に格納される。例えば、静止画像群４１は、対象動画における１フレームを１画像とし、フレーム順に番号などを付与した静止画ファイルである。
【００１９】
領域抽出部３２は、記憶部４０に格納された静止画像群４１を参照し、対象動画のフレームごとに、フレームに含まれる文字列に対応する領域を抽出する処理部である。領域抽出部３２は、各フレームにおいて抽出した領域を示す情報（例えば領域の座標など）を、フレームを示すフレーム番号などとともに領域結果ファイル４２として記憶部４０に格納する。
【００２０】
読み取り部３３は、静止画像群４１および領域結果ファイル４２を参照し、各フレームにおいて抽出した、文字列に対応する領域から文字列を読み取る処理部である。具体的には、読み取り部３３は、領域結果ファイル４２においてフレーム番号とともに示された領域の情報を参照し、静止画像群４１より該当するフレーム番号の静止画像（フレーム）から文字列に対応する領域を特定する。次いで、読み取り部３３は、特定した領域を対象とする文字認識処理を行う。次いで、読み取り部３３は、読み取った文字列をフレーム番号とともに認識結果ファイル４３として記憶部４０に格納する。
【００２１】
補正部３４は、フレームの順序に対応する文字列の出現規則に関する情報（以下、「出現規則情報」という）に基づき、読み取り部３３が読み取った文字列の出現順序が出現規則情報に規定されたフレーム順の出現規則に合うように各フレームより読み取った文字列を補正する処理部である。
【００２２】
例えば、対象動画におけるタイムコードなどの文字列は、フレームの順序に対応して出現順序に所定の規則性がある。一例として、タイムコードなどの数値は、フレームの順序に応じてカウントアップまたはカウントダウンする。同様に、五十音順またはアルファベット順に表示される平仮名文字または英字、下から上に流れるクレジットタイトルなどもフレームの順序に応じて所定の出現規則がある文字列といえる。
【００２３】
このようなフレームの順序に応じた出現規則に合うように、補正部３４は、認識結果ファイル４３をもとに、読み取り部３３が読み取った文字列をフレーム順に並べて文字列の出現規則情報を推測する。次いで、補正部３４は、推測した出現規則情報に合うように誤って認識した文字列を補正し、補正結果を補正結果ファイル４４として記憶部４０に格納する。
【００２４】
例えば、タイムコードなどの数値については、フレームの順序に認識した文字列を並べることで、「０１」→「０２」→「０３」→「０４」…のようにカウントアップする数値として出現規則情報を推測できる。この出現規則情報をもとに、補正部３４は、認識結果ファイル４３における認識した文字列のフレーム順に合わせた出現順序が出現規則情報に規定された出現規則どおりになるように、誤って認識した文字列を補正する。例えば、認識した文字列が「０１」→「０２」→「０８」→「０４」…の順である場合は、「０８」が「０３」の誤認識であることから「０３」に補正する。
【００２５】
記憶部４０は、例えばＨＤＤ（Hard  Disk  Drive）などの記憶装置であり、静止画像群４１、領域結果ファイル４２、認識結果ファイル４３および補正結果ファイル４４を記憶する。
【００２６】
領域抽出部３２、読み取り部３３および補正部３４における領域の抽出、文字列の読み取りおよび読み取った文字列の補正は、ディープラーニング等の機械学習により学習した学習モデルを用いて行う。
【００２７】
図２は、学習フェーズの一例を説明する説明図である。図２に示すように、ディープラーニング学習（Ｓ１）では、ニューラルネットワーク定義５３、学習済み重み（オプション）５４およびハイパーパラメタ５５を用いて初期のニューラルネットワークを構築する。次いで、ディープラーニング学習では、教師データ５１および正解データ５２を構築したニューラルネットワークに適用し、領域の抽出、文字列の読み取りおよび読み取った文字列の補正を行うようにニューラルネットワークの学習を行う。
【００２８】
具体的には、ディープラーニング学習（Ｓ１）では、教師データ５１をニューラルネットワークに順伝播して得られた推論結果と、正解データ５２との差分（損失）を求める。次いで、得られた差分をニューラルネットワークに逆伝播させ、ニューラルネットワークの各ノードのパラメータを変更して最適解に近づけていく。このようなディープラーニング学習（Ｓ１）により、ニューラルネットワークにおける各ノードのパラメータが学習済み重み６０として得られる。
【００２９】
図３は、推論フェーズの一例を説明する説明図である。図３に示すように、推論フェーズ（Ｓ２）では、学習フェーズで得られた学習済み重み６０と、テストデータ６１とをもとにニューラルネットワークを構築する。次いで、推論フェーズ（Ｓ２）では、領域の抽出、文字列の読み取りおよび読み取った文字列の補正等の対象となるテストデータ６１をニューラルネットワークに適用する。これにより、領域の抽出、文字列の読み取りおよび読み取った文字列の補正などの推論結果６３を得ることができる。
【００３０】
図４は、実施形態にかかる文字認識装置１の動作例を示すフローチャートである。図４に示すように、処理が開始されると、入力部１０は、認識の対象動画の入力を受け付ける（Ｓ１０）。受け付けた対象動画は制御部２０より文字認識部３０へ出力される。
【００３１】
次いで、文字認識部３０は、前処理部３１を呼び出し、対象動画をフレーム単位に分割して静止画像群４１を生成する（Ｓ１１）。前処理部３１は、生成した静止画像群４１を記憶部４０に格納する。
【００３２】
次いで、文字認識部３０は、対象動画の静止画像群４１の格納先を指定して領域抽出部３２を呼び出す。領域抽出部３２は、指定された静止画像群４１を参照し、対象動画のフレームごとに、フレームに含まれる文字列に対応する領域を抽出して領域結果ファイル４２を出力する処理を行う（Ｓ１２）。
【００３３】
図５は、領域抽出にかかる処理例を示すフローチャートである。図５に示すように、処理が開始されると、領域抽出部３２は、ディープラーニング学習にかかる定義（ハイパーパラメタ５５、ニューラルネットワーク定義５３および学習済み重み（オプション）５４）を行う（Ｓ２０）。次いで、領域抽出部３２は、学習済み重み６０（学習モデル）の有無を判定し（Ｓ２１）、未学習であり学習済み重み６０がない場合（Ｓ２１：ＮＯ）は前述した学習フェーズ（Ｓ１）による学習を実施する（Ｓ２２）。学習済であり学習済み重み６０がある場合（Ｓ２１：ＹＥＳ）、領域抽出部３２はＳ２３へ処理を進める。
【００３４】
図６は、領域抽出にかかる学習および推論を説明する説明図である。図６に示すように、領域抽出にかかる学習では、タイムコードなどの抽出対象の文字列を表示する動画像である教師データ５１と、抽出対象の文字列にかかる領域（図示例ではピクセル位置を「１」とする）を示す正解データ５２とを用意する。
【００３５】
そして、教師データ５１をニューラルネットワークに順伝播して得られた推論結果と、正解データ５２との損失（エラー）を損失関数により求める。次いで、得られた損失をニューラルネットワークに逆伝播させ、ニューラルネットワークの各ノードのパラメータを変更して最適解に近づけることで、領域抽出を行うための学習済み重み６０を得る。
【００３６】
図５に戻り、Ｓ２１、Ｓ２２に次いで、領域抽出部３２は、ディープラーニング学習で構築した学習済み重み６０をニューラルネットワークに設定し（Ｓ２３）、対象動画（静止画像群４１）を取得する（Ｓ２４）。
【００３７】
次いで、領域抽出部３２は、取得した対象動画について、分割した静止画像群４１のフレームごとのループ処理（Ｓ２５〜Ｓ３２）を行う。
【００３８】
ループ処理が開始されると、領域抽出部３２は、処理対象の画像データ（フレーム）をニューラルネットワークの入力層に入力するため、例えば２５６×２６５ｐｘにａｒｒａｙ化する（Ｓ２６）。
【００３９】
次いで、領域抽出部３２は、ａｒｒａｙ化したデータをＳ２３で設定したニューラルネットワークの入力データ（テストデータ６１）とし、領域抽出にかかる推論を行う（Ｓ２７）。
【００４０】
具体的には、図６に示すように、領域抽出部３２は、ａｒｒａｙ化した入力データ（テストデータ６１）をニューラルネットワークに順伝播することで、文字列に対応する領域を推論した推論結果６３を得る。なお、推論結果６３における数値は、文字列に対応する領域である確率を示す値である。例えば、推論結果６３において、所定の閾値（例えば０．７）以上の値である領域が文字列に対応する領域となる。
【００４１】
次いで、領域抽出部３２は、推論結果６３を所定の閾値で二値化し（Ｓ２８）、推論結果が１となった矩形領域（左上と右下の座標）を取得する（Ｓ２９）。
【００４２】
次いで、領域抽出部３２は、取得した矩形領域について、直近のフレーム間で平均化する（Ｓ３０）。具体的には、領域抽出部３２は、前のループ処理で得られた矩形領域、すなわち直近にある所定のフレーム間で得られた矩形領域の移動平均を求めて矩形領域の位置座標を平均化する。
【００４３】
次いで、領域抽出部３２は、取得した矩形領域の座標を文字列に対応する領域の推論結果として出力する（Ｓ３１）。このループ処理を静止画像群４１に対して実施することで、領域抽出部３２は、フレームごとに文字列に対応する領域を抽出する。
【００４４】
図４に戻り、Ｓ１２に次いで、文字認識部３０は、領域結果ファイル４２を指定して読み取り部３３を呼び出す。読み取り部３３は、指定された領域結果ファイル４２を参照し、領域抽出部３２が抽出した領域から文字列を読み取って認識結果ファイル４３を出力する処理を行う（Ｓ１３）。
【００４５】
図７は、読取にかかる処理例を示すフローチャートである。図７に示すように、処理が開始されると、読み取り部３３は、ディープラーニング学習にかかる定義（ハイパーパラメタ５５、ニューラルネットワーク定義５３および学習済み重み（オプション）５４）を行う（Ｓ４０）。次いで、読み取り部３３は、学習済み重み６０（学習モデル）の有無を判定し（Ｓ４１）、未学習であり学習済み重み６０がない場合（Ｓ４１：ＮＯ）は前述した学習フェーズ（Ｓ１）による学習を実施する（Ｓ４２）。学習済であり学習済み重み６０がある場合（Ｓ４１：ＹＥＳ）、読み取り部３３はＳ４３へ処理を進める。
【００４６】
図８は、読取にかかる学習および推論を説明する説明図である。図８に示すように、読取にかかる学習では、タイムコードなどの読取対象の文字の画像である教師データ５１と、正解の文字を示す正解データ５２とを用意する。なお、教師データ５１については、オーグメンテーション処理を施し、文字の画像のバリエーションを増やしてもよい。
【００４７】
そして、教師データ５１をニューラルネットワークに順伝播して得られた推論結果と、正解データ５２との損失（エラー）を損失関数により求める。次いで、得られた損失をニューラルネットワークに逆伝播させ、ニューラルネットワークの各ノードのパラメータを変更して最適解に近づけることで、文字の読取を行うための学習済み重み６０を得る。
【００４８】
なお、教師データ５１については、読取対象とする文字列のフォーマット（表示形式）に合わせたものであってもよい。これにより、所定の表示形式の文字列を読取対象の文字列として学習することができる。
【００４９】
図９は、フォーマットに合わせた学習を説明する説明図である。図９に示すように、対象動画から読み取るべき文字列のフォーマット（表示形式）に合わせて、教師データ５１および正解データ５２を用意する。
【００５０】
例えば、「ＹＹＹ／ＭＭ／ＤＤ」などのフォーマットでは、「ＹＹＹ」、「ＭＭ」、「ＤＤ」のそれぞれから文字列を読み取るための４桁および２桁の数字の画像の教師データ５１を用意する。また、４桁の画像の教師データ５１に対しては、「００００」〜「９９９９」の１００００個のラベルに分類する分類ラベル（正解データ５２）を用意する。同様に、２桁の画像の教師データ５１に対しては、「００」〜「９９」の１００個のラベルに分類する分類ラベル（正解データ５２）を用意する。これにより、「ＹＹＹ／ＭＭ／ＤＤ」のフォーマットに対応した学習を行うことができ、「ＹＹＹ／ＭＭ／ＤＤ」の文字列を的確に推論できる学習モデルを生成できる。
【００５１】
図７に戻り、Ｓ４１、Ｓ４２に次いで、読み取り部３３は、ディープラーニング学習で構築した学習済み重み６０をニューラルネットワークに設定し（Ｓ４３）、領域結果ファイル４２の読み込みを行う（Ｓ４４）。次いで、読み取り部３３は、領域結果ファイル４２の各データ（フレーム番号および領域の情報）を順次読み出してループ処理（Ｓ４５〜Ｓ４８）を行う。
【００５２】
ループ処理が開始されると、読み取り部３３は、フレーム番号に該当する静止画像群４１の画像データについて、領域の情報を参照して領域抽出部３２の推論結果の矩形領域を読み込む（Ｓ４６）。
【００５３】
次いで、読み取り部３３は、矩形領域の画像データをニューラルネットワークの入力データ（テストデータ６１）とし、文字列の読み取りにかかる推論を行う（Ｓ４７）。
【００５４】
具体的には、図８に示すように、読み取り部３３は、矩形領域の画像データ（テストデータ６１）をニューラルネットワークに順伝播することで、文字列を推論した推論結果６３を得る。
【００５５】
次いで、読み取り部３３は、上記のループ処理（Ｓ４５〜Ｓ４８）の後、文字列を推論した推論結果６３を認識結果ファイル４３として出力し（Ｓ４９）、処理を終了する。
【００５６】
図４に戻り、Ｓ１３に次いで、文字認識部３０は、認識結果ファイル４３を指定して補正部３４を呼び出す。補正部３４は、指定された認識結果ファイル４３を参照し、読み取り部３３が読み取った文字列の出現順序が、出現規則情報に規定されたフレーム順の出現規則に合うように各フレームより読み取った文字列を補正して補正結果ファイル４４を出力する処理を行う（Ｓ１４）。
【００５７】
図１０は、補正にかかる処理例を示すフローチャートである。図１０に示すように、処理が開始されると、補正部３４は、ディープラーニング学習にかかる定義（ハイパーパラメタ５５、ニューラルネットワーク定義５３および学習済み重み（オプション）５４）を行う（Ｓ５０）。次いで、補正部３４は、学習済み重み６０（学習モデル）の有無を判定し（Ｓ５１）、未学習であり学習済み重み６０がない場合（Ｓ５１：ＮＯ）は前述した学習フェーズ（Ｓ１）による学習を実施する（Ｓ５２）。学習済であり学習済み重み６０がある場合（Ｓ５１：ＹＥＳ）、読み取り部３３はＳ５３へ処理を進める。
【００５８】
図１１は、補正にかかる学習および推論を説明する説明図である。図１１に示すように、補正にかかる学習では、カウントアップまたはカウントダウンするタイムコードなどの教師データ５１と、正解の出現順序（カウントアップ）を示す正解データ５２とを用意する。
【００５９】
そして、教師データ５１をニューラルネットワークに順伝播して得られた推論結果と、正解データ５２との損失（エラー）を損失関数により求める。次いで、得られた損失をニューラルネットワークに逆伝播させ、ニューラルネットワークの各ノードのパラメータを変更して最適解に近づけることで、出現順序に対応する結果を推論するための学習済み重み６０を得る。この学習済み重み６０を適用したニューラルネットワークでは、例えば対象とするフレーム（フレーム番号２）について前後のフレーム（フレーム番号１、３）における文字列を入力すると、出現順序に対応する文字列を推論結果として出力する。
【００６０】
図１０に戻り、Ｓ５１、Ｓ５２に次いで、補正部３４は、ディープラーニング学習で構築した学習済み重み６０をニューラルネットワークに設定し（Ｓ５３）、認識結果ファイル４３の読み込みを行う（Ｓ５４）。次いで、補正部３４は、認識結果ファイル４３の各データ（フレーム番号および読み取った文字列）を順次読み出してループ処理（Ｓ５５〜Ｓ５７）を行う。
【００６１】
ループ処理が開始されると、補正部３４は、処理対象のフレームの前後のフレームより読み取った文字列のデータをひとまとまりの前後データとする。次いで、補正部３４は、ひとまとまりの前後データをニューラルネットワークの入力データ（テストデータ６１）とし、文字列における出現規則情報に対応する文字列を推論する。次いで、補正部３４は、推論した結果をもとに、読み取り部３３が読み取った文字列の出現順序が出現規則情報に規定された出現規則に合うように読み取った文字列を補正する（Ｓ５６）。
【００６２】
具体的には、図１１に示すように、補正部３４は、例えばフレーム番号１、３より読み取った文字列（「１２：３４：５６：００」、「１２：３４：５６：０２」）をテストデータ６１としてニューラルネットワークに順伝播する。これにより、補正部３４は、出願規則に対応するフレーム番号２（処理対象のフレーム）の文字列「１２：３４：５６：０１」を推論結果６３として得る。
【００６３】
この推論結果６３におけるフレーム番号２の文字列「１２：３４：５６：０１」と、同じフレーム番号の読取結果である「１２：３４：５６：０１」とは同一である。よって、補正部３４は、フレーム番号２の読取結果は補正することなく、そのままとする。
【００６４】
また、フレーム番号３、５より読み取った文字列（「１２：３４：５６：０２」、「１２：３４：５６：０４」）をテストデータ６１としてニューラルネットワークに順伝播する。これにより、補正部３４は、出願規則に対応するフレーム番号４（処理対象のフレーム）の文字列「１２：３４：５６：０３」を推論結果６３として得る。
【００６５】
この推論結果６３におけるフレーム番号４の文字列「１２：３４：５６：０３」と、同じフレーム番号の読取結果である「１２：３４：５６：０８」とは一致しない。よって、補正部３４は、フレーム番号４の読取結果は出願規則に合うように「１２：３４：５６：０３」に補正する。
【００６６】
次いで、補正部３４は、上記のループ処理（Ｓ５５〜Ｓ５７）の後、補正結果を補正結果ファイル４４として出力し（Ｓ５８）、処理を終了する。
【００６７】
以上のように、文字認識装置１は、領域抽出部３２と、読み取り部３３と、補正部３４とを有する。領域抽出部３２は、認識対象の動画像のフレームごとに、当該フレームに含まれる文字列に対応する領域を抽出する。読み取り部３３は、領域抽出部３２が抽出した領域から文字列を読み取る。補正部３４は、フレームの順序に対応する文字列の出現規則に基づき、読み取った文字列の出現順序が出現規則情報に規定されたフレーム順の出現規則に合うように各フレームより読み取り部３３が読み取った文字列を補正する。これにより、文字認識装置１は、動画に含まれる文字の認識精度を向上することができ、例えば動画に表示されている時間やタイムコードなどの時系列において順序性のある文字を精度よく認識することができる。
【００６８】
また、補正部３４は、各フレームより読み取り部３３が読み取った文字列を、出現規則情報を学習した学習モデルに入力して推論結果６３を得る。次いで、補正部３４は、学習モデルを用いて推測した推論結果６３と、各フレームより読み取り部３３が読み取った文字列との比較に基づき、文字列を補正する。このように、補正部３４は、例えばディープラーニングなどの機械学習により出現規則情報を学習した学習済み重み６０による学習モデルを用いて、出現規則情報に規定されたフレームの順序に対応する文字列の出現規則に合うように文字列を補正してもよい。
【００６９】
また、領域抽出部３２は、文字列に対応する領域の抽出対象のフレームより直近にある所定のフレーム間で抽出した領域の移動平均をもとに、抽出対象のフレームにおける領域を抽出する。例えば、タイムコードやテロップなどの表示領域はフレーム間での位置変動が少ない。したがって、フレーム間で抽出した領域の移動平均をもとに、抽出対象のフレームにおける文字列に対応する領域を抽出することで、文字列に対応する領域を精度よく抽出することができる。
【００７０】
文字認識装置１で行われる各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部または任意の一部を実行するようにしてもよい。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウエア上で、その全部または任意の一部を実行するようにしてもよいことは言うまでもない。また、文字認識装置１で行われる各種処理機能は、クラウドコンピューティングにより、複数のコンピュータが協働して実行してもよい。
【００７１】
ところで、上記の実施形態で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータ（ハードウエア）の一例を説明する。図１２は、実施形態にかかる文字認識装置１のハードウエア構成の一例を示すブロック図である。
【００７２】
図１２に示すように、文字認識装置１は、各種演算処理を実行するＣＰＵ１０１と、データ入力を受け付ける入力装置１０２と、モニタ１０３と、スピーカ１０４とを有する。また、文字認識装置１は、記憶媒体からプログラム等を読み取る媒体読取装置１０５と、各種装置と接続するためのインタフェース装置１０６と、有線または無線により外部機器と通信接続するための通信装置１０７とを有する。また、文字認識装置１は、各種情報を一時記憶するＲＡＭ１０８と、記憶部４０としての機能を提供するハードディスク装置１０９とを有する。また、文字認識装置１内の各部（１０１〜１０９）は、バス１１０に接続される。
【００７３】
ハードディスク装置１０９には、上記の実施形態で説明した入力部１０、制御部２０および文字認識部３０にかかる各種の処理を実行するためのプログラム１１１が記憶される。また、ハードディスク装置１０９には、プログラム１１１が参照する静止画像群４１、領域結果ファイル４２、認識結果ファイル４３および補正結果ファイル４４などの各種データ１１２が記憶される。入力装置１０２は、例えば、文字認識装置１の操作者から操作情報の入力を受け付ける。モニタ１０３は、例えば、操作者が操作する各種画面を表示する。インタフェース装置１０６は、例えば印刷装置等が接続される。通信装置１０７は、ＬＡＮ（Local  Area  Network）等の通信ネットワークと接続され、通信ネットワークを介した外部機器との間で各種情報をやりとりする。
【００７４】
ＣＰＵ１０１は、ハードディスク装置１０９に記憶されたプログラム１１１を読み出して、ＲＡＭ１０８に展開して実行することで、入力部１０、制御部２０および文字認識部３０にかかる各種の処理を行う。なお、プログラム１１１は、ハードディスク装置１０９に記憶されていなくてもよい。例えば、文字認識装置１が読み取り可能な記憶媒体に記憶されたプログラム１１１を、文字認識装置１が読み出して実行するようにしてもよい。文字認識装置１が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ等に接続された装置にこのプログラムを記憶させておき、文字認識装置１がこれらからプログラムを読み出して実行するようにしてもよい。
【００７５】
以上の実施形態に関し、さらに以下の付記を開示する。
【００７６】
（付記１）認識対象の動画像のフレームごとに、当該フレームに含まれる文字列に対応する領域を抽出する領域抽出部と、
抽出した前記領域から文字列を読み取る読み取り部と、
前記フレームの順序に対応する文字列の出現規則を規定する出現規則情報に基づき、読み取った前記文字列の出現順序が前記出現規則情報に合うように各フレームより読み取った前記文字列を補正する補正部と、
を有することを特徴とする文字認識装置。
【００７７】
（付記２）前記補正部は、各フレームより読み取った前記文字列を、前記出現規則情報を学習した学習モデルに入力して推測した推測結果と、各フレームより読み取った前記文字列との比較に基づき、前記文字列を補正する、
ことを特徴とする付記１に記載の文字認識装置。
【００７８】
（付記３）前記文字列は、前記動画像における時間に対応するタイムコードである、
ことを特徴とする付記１または２に記載の文字認識装置。
【００７９】
（付記４）前記領域抽出部は、前記領域の抽出対象のフレームより直近にある所定のフレーム間で抽出した前記領域の移動平均をもとに、前記抽出対象のフレームの領域を抽出する、
ことを特徴とする付記１乃至３のいずれか一に記載の文字認識装置。
【００８０】
（付記５）認識対象の動画像のフレームごとに、当該フレームに含まれる文字列に対応する領域を抽出し、
抽出した前記領域から文字列を読み取り、
前記フレームの順序に対応する文字列の出現規則を規定する出現規則情報に基づき、読み取った前記文字列の出現順序が前記出現規則情報に合うように各フレームより読み取った前記文字列を補正する、
処理をコンピュータに実行させることを特徴とする文字認識プログラム。
【００８１】
（付記６）前記補正する処理は、各フレームより読み取った前記文字列を、前記出現規則情報を学習した学習モデルに入力して推測した推測結果と、各フレームより読み取った前記文字列との比較に基づき、前記文字列を補正する、
ことを特徴とする付記５に記載の文字認識プログラム。
【００８２】
（付記７）前記文字列は、前記動画像における時間に対応するタイムコードである、
ことを特徴とする付記５または６に記載の文字認識プログラム。
【００８３】
（付記８）前記抽出する処理は、前記領域の抽出対象のフレームより直近にある所定のフレーム間で抽出した前記領域の移動平均をもとに、前記抽出対象のフレームの領域を抽出する、
ことを特徴とする付記５乃至７のいずれか一に記載の文字認識プログラム。
【００８４】
（付記９）認識対象の動画像のフレームごとに、当該フレームに含まれる文字列に対応する領域を抽出し、
抽出した前記領域から文字列を読み取り、
前記フレームの順序に対応する文字列の出現規則を規定する出現規則情報に基づき、読み取った前記文字列の出現順序が前記出現規則情報に合うように各フレームより読み取った前記文字列を補正する、
処理をコンピュータが実行することを特徴とする文字認識方法。
【００８５】
（付記１０）前記補正する処理は、各フレームより読み取った前記文字列を、前記出現規則情報を学習した学習モデルに入力して推測した推測結果と、各フレームより読み取った前記文字列との比較に基づき、前記文字列を補正する、
ことを特徴とする付記９に記載の文字認識方法。
【００８６】
（付記１１）前記文字列は、前記動画像における時間に対応するタイムコードである、
ことを特徴とする付記９または１０に記載の文字認識方法。
【００８７】
（付記１２）前記抽出する処理は、前記領域の抽出対象のフレームより直近にある所定のフレーム間で抽出した前記領域の移動平均をもとに、前記抽出対象のフレームの領域を抽出する、
ことを特徴とする付記９乃至１１のいずれか一に記載の文字認識方法。
【符号の説明】
【００８８】
１…文字認識装置
１０…入力部
２０…制御部
３０…文字認識部
３１…前処理部
３２…領域抽出部
３３…読み取り部
３４…補正部
４０…記憶部
４１…静止画像群
４２…領域結果ファイル
４３…認識結果ファイル
４４…補正結果ファイル
５１…教師データ
５２…正解データ
５３…ニューラルネットワーク定義
５４…学習済み重み（オプション）
５５…ハイパーパラメタ
５５…推論結果
６０…学習済み重み
６１…テストデータ
６２…ニューラルネットワーク定義
６３…推論結果
１０１…ＣＰＵ
１０２…入力装置
１０３…モニタ
１０４…スピーカ
１０５…媒体読取装置
１０６…インタフェース装置
１０７…通信装置
１０８…ＲＡＭ
１０９…ハードディスク装置
１１０…バス
１１１…プログラム
１１２…各種データ
【図１】
2020017156.tif 000003
【図２】
2020017156.tif 000004
【図３】
2020017156.tif 000005
【図４】
2020017156.tif 000006
【図５】
2020017156.tif 000007
【図６】
2020017156.tif 000008
【図７】
2020017156.tif 000009
【図８】
2020017156.tif 000010
【図９】
2020017156.tif 000011
【図１０】
2020017156.tif 000012
【図１１】
2020017156.tif 000013
【図１２】
2020017156.tif 000014