(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-07
(45)【発行日】2024-11-15
(54)【発明の名称】文字検出装置、学習装置、およびプログラム
(51)【国際特許分類】
G06V 30/14 20220101AFI20241108BHJP
G06T 7/00 20170101ALI20241108BHJP
G06T 7/11 20170101ALI20241108BHJP
G06V 30/414 20220101ALI20241108BHJP
G06V 20/62 20220101ALI20241108BHJP
【FI】
G06V30/14 340J
G06T7/00 350C
G06T7/11
G06V30/414
G06V20/62
(21)【出願番号】P 2021009893
(22)【出願日】2021-01-25
【審査請求日】2023-12-13
(73)【特許権者】
【識別番号】000004352
【氏名又は名称】日本放送協会
(74)【代理人】
【識別番号】100141139
【氏名又は名称】及川 周
(74)【代理人】
【識別番号】100171446
【氏名又は名称】高田 尚幸
(74)【代理人】
【識別番号】100114937
【氏名又は名称】松本 裕幸
(74)【代理人】
【識別番号】100171930
【氏名又は名称】木下 郁一郎
(72)【発明者】
【氏名】遠藤 伶
【審査官】小池 正彦
(56)【参考文献】
【文献】特開2020-017156(JP,A)
【文献】特開2019-029938(JP,A)
【文献】Xiaobing Wang, et al.,Arbitrary Shape Scene Text Detection With Adaptive Text Region Representation,2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR),米国,IEEE,2019年06月15日,p.6442-6451,https://ieeexplore.ieee.org/document/8953907
【文献】遠藤 伶,グラフ・コンボリューショナル・ネットワークを用いたボトムアップ型文字列検出技術の検討,映像情報メディア学会 2019年冬季大会,日本,一般社団法人映像情報メディア学会,2019年12月13日
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/14
G06T 7/00
G06T 7/11
G06V 30/414
G06V 20/62
(57)【特許請求の範囲】
【請求項1】
画像を入力し前記画像に含まれる文字領域に関する特徴量を出力する文字検出部と、
前記文字検出部が検出した重複しあう文字領域候補を統合することによって文字領域を決定するとともに、正解データに基づいて、決定した前記文字領域のすべてについての最終スコアを算出する統合処理部と、
前記文字検出部が出力した前記特徴量に基づいて前記最終スコアの推定値である推定最終スコアを算出する最終スコア推定部と、
前記最終スコアと前記推定最終スコアとの誤差である最終スコア誤差を算出する最終スコア誤差計算部と、
を備え、
前記最終スコア推定部は、学習のために、前記最終スコア誤差を基に、前記最終スコア推定部が持つ最終スコア推定用モデルの内部パラメーターを調整し、
前記文字検出部は、学習のために、前記特徴量と正解データとの誤差である文字検出誤差と、前記推定最終スコアと、に基づいて、前記文字検出部が持つ文字検出用モデルの内部パラメーターを調整する、
文字検出装置。
【請求項2】
前記特徴量は、前記画像に含まれる画素に対応して、前記画素が文字領域に含まれる度合いを表す文字領域スコアと、前記画素を含む前記文字領域の前記画像内での位置を表す位置情報と、を含む、
請求項1に記載の文字検出装置。
【請求項3】
前記統合処理部は、前記文字領域スコアに基づいて非最大抑制の処理を行うことによって、前記重複しあう文字領域候補を統合する、とともに、統合後の矩形の前記文字領域をより精細な多角形の領域に変換する処理を行う、
請求項2に記載の文字検出装置。
【請求項4】
前記文字検出部は、学習の第1段階において前記文字検出誤差のみに基づいて前記文字検出部が持つ前記文字検出用モデルの内部パラメーターを調整し、次に学習の第2段階において前記文字検出誤差と前記推定最終スコアとの両方に基づいて前記文字検出部が持つ前記文字検出用モデルの内部パラメーターを調整する、
請求項1から3までのいずれか一項に記載の文字検出装置。
【請求項5】
画像を入力し前記画像に含まれる文字領域に関する特徴量を出力する文字検出部と、
前記文字検出部が検出した重複しあう文字領域候補を統合することによって文字領域を決定するとともに、正解データに基づいて、決定した前記文字領域のすべてについての最終スコアを算出する統合処理部と、
前記文字検出部が出力した前記特徴量に基づいて前記最終スコアの推定値である推定最終スコアを算出する最終スコア推定部と、
前記最終スコアと前記推定最終スコアとの誤差である最終スコア誤差を算出する最終スコア誤差計算部と、
を備え、
前記最終スコア推定部は、学習のために、前記最終スコア誤差を基に、前記最終スコア推定部が持つ最終スコア推定用モデルの内部パラメーターを調整し、
前記文字検出部は、学習のために、前記特徴量と正解データとの誤差である文字検出誤差と、前記推定最終スコアと、に基づいて、前記文字検出部が持つ文字検出用モデルの内部パラメーターを調整する、
学習装置。
【請求項6】
画像を入力し前記画像に含まれる文字領域に関する特徴量を出力する文字検出部と、
前記文字検出部が検出した重複しあう文字領域候補を統合することによって文字領域を決定する統合処理部と、
を備え、
前記文字検出部は、請求項5に記載の学習装置によって学習済みの文字検出用モデルに基づいて、前記特徴量を算出する、
文字検出装置。
【請求項7】
画像を入力し前記画像に含まれる文字領域に関する特徴量を出力する文字検出部と、
前記文字検出部が検出した重複しあう文字領域候補を統合することによって文字領域を決定するとともに、正解データに基づいて、決定した前記文字領域のすべてについての最終スコアを算出する統合処理部と、
前記文字検出部が出力した前記特徴量に基づいて前記最終スコアの推定値である推定最終スコアを算出する最終スコア推定部と、
前記最終スコアと前記推定最終スコアとの誤差である最終スコア誤差を算出する最終スコア誤差計算部と、
を備え、
前記最終スコア推定部は、学習のために、前記最終スコア誤差を基に、前記最終スコア推定部が持つ最終スコア推定用モデルの内部パラメーターを調整し、
前記文字検出部は、学習のために、前記特徴量と正解データとの誤差である文字検出誤差と、前記推定最終スコアと、に基づいて、前記文字検出部が持つ文字検出用モデルの内部パラメーターを調整する、
文字検出装置、としてコンピューターを機能させるためのプログラム。
【請求項8】
画像を入力し前記画像に含まれる文字領域に関する特徴量を出力する文字検出部と、
前記文字検出部が検出した重複しあう文字領域候補を統合することによって文字領域を決定する統合処理部と、
を備え、
前記文字検出部は、請求項5に記載の学習装置によって学習済みの文字検出用モデルに基づいて、前記特徴量を算出する、
文字検出装置、としてコンピューターを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字検出装置、学習装置、およびプログラムに関する。
【背景技術】
【0002】
画像を基に、画像に含まれる文字を検出する技術が開発され、利用されている。例えば非特許文献1には、ニューラルネットワークを用いて、画像内の文字領域を検出する技術が記載されている。
【0003】
従来技術を用いてニューラルネットワークで画像内の文字を検出する処理では、まず、畳み込みニューラルネットワーク(CNN,Convolutional Neural Network)を用いて、画像内の各画素が文字領域に含まれるか否かを判定する。続く処理では、文字領域の形状を推定することにより、当該文字領域内の文字列を検出する。文字領域の検出の精度は、推定された文字領域形状と正解文字領域形状とのIOU(Intersection over Union,和集合領域に対する共通領域の比率)が閾値を超える領域をどれだけ検出できたかによって評価される。
【0004】
非特許文献1に記載された技術では、CNNを用いて、画像内の画素ごとに5つの値を計算する。CNNから出力されるこれら5つの値とは、画素の文字領域スコアの値と、矩形形状を表す4つの値である。文字領域スコアは、0以上且つ1以下の実数値である。矩形形状を表す4つの値は、矩形を特定するための4つの頂点の座標値の情報を持つ。具体的には、矩形を成す4つの辺がXY直交座標系において各座標軸に平行である場合において、上記4つの値は、値を出力する画素のX座標の値と当該矩形領域のX座標の最小値および最大値との差、そして、値を出力する画素のY座標と当該矩形領域のY座標の最小値および最大値との差、である。言い換えれば、上記4つの値は、(1)対象画素のX座標と矩形領域のX座標の最大値との差の絶対値、(2)対象画素のX座標と矩形領域のX座標の最小値との差の絶対値、(3)対象画素のY座標と矩形領域のY座標の最大値との差の絶対値、(4)対象画素のY座標と矩形領域のY座標の最小値との差の絶対値、である。文字領域スコアが所定の閾値をこえる画素の、矩形形状出力(上記の4つの値)が、推定された文字領域を表す。そして、推定された文字領域を回帰型ニューラルネットワーク(RNN、Recurrent Neural Network)を用いて、4点矩形から多角形ポリゴンにリファインすることによって、正確な文字領域を出力する。
【0005】
ところで1つの文字領域は多数の画素を含む。したがって、画素ごとに上記の文字領域を出力した場合、実際には1つの文字領域がいくつも重なって出力される。このような重複を解消するためには、従来技術では、NMSの処理の処理を行う。これにより、重複する多数の推定文字領域のうち、最大スコアを持つ領域以外を除外することによって、検出された文字領域を整理・統合する。
【先行技術文献】
【非特許文献】
【0006】
【文献】Xiaobing Wang, Yingying Jiang, Zhenbo Luo, Cheng-Lin Liu, Hyunsoo Choi, Sungjin Kim,Arbitrary Shape Scene Text Detection With Adaptive Text Region Representation,CVPR2019,2019 Conference on Computer Vision and Pattern Recognition,arXiv:1905.05980v1,2019年6月,[2020年11月11日ダウンロード],インターネット<URL:https://arxiv.org/pdf/1905.05980.pdf>
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来技術には次のような問題がある。従来技術はニューラルネットワークを用いているが、ニューラルネットワークの学習は、損失関数を定義し、その損失を最小化するように内部のパラメーターを調整することである。ニューラルネットワークの内部パラメーターを調整する際の損失の最小化では、一般的に、降下勾配法が用いられる。降下勾配法は、損失関数の出力が最小値をとるときに多数のパラメーターが成す多次元空間における関数出力の勾配(すなわち微分値)が0になることを利用して、最小値を実現するパラメーター値のセットを探索する方法である。したがって、ニューラルネットワークへの入力(つまり画像)から損失を計算する関数は、微分可能な関数でなくてはならない。
【0008】
しかしながら、非特許文献1に記載されている技術で用いるNMS処理および最終スコアを計算する処理は、微分可能な作用ではない。そのため、非特許文献1の技術では、CNNのパラメーター値の推定は、NMSの処理の前の段階の出力(即ち、非最大のスコアを含む大量の矩形の出力)に基づいて行われる。つまり、従来技術においては、最終的なスコア(高いIOU値を持つ領域のスコア)が、間接的に学習に用いられるに過ぎない。即ち、最終的なスコアに基づく直接的な学習は行われない。例えば、学習途中で損失は悪化するがIOU値は向上する状況が生じ得るが、従来技術ではそのような場合に最適な学習を行うことができないという問題がある。
【0009】
上では非特許文献1に記載された技術における問題点を説明した。また非特許文献1に限らず一般的に最終スコアを計算するためのIOUの計算が微分不可能であるため、他の文字領域検出技術においても、最終スコアに基づくニューラルネットワークの直接的な最適化は不可能である。
【0010】
本発明は、上記の課題認識に基づいて行なわれたものであり、微分不可能な処理(入出力関係)を含む場合であっても、学習データに基づくモデルの最適化を直接的に行うことのできる文字検出装置、学習装置、およびプログラムを提供しようとするものである。
【課題を解決するための手段】
【0011】
[1]上記の課題を解決するため、本発明の一態様による文字検出装置は、画像を入力し前記画像に含まれる文字領域に関する特徴量を出力する文字検出部と、前記文字検出部が検出した重複しあう文字領域候補を統合することによって文字領域を決定するとともに、正解データに基づいて、決定した前記文字領域のすべてについての最終スコアを算出する統合処理部と、前記文字検出部が出力した前記特徴量に基づいて前記最終スコアの推定値である推定最終スコアを算出する最終スコア推定部と、前記最終スコアと前記推定最終スコアとの誤差である最終スコア誤差を算出する最終スコア誤差計算部と、を備え、前記最終スコア推定部は、学習のために、前記最終スコア誤差を基に、前記最終スコア推定部が持つ最終スコア推定用モデルの内部パラメーターを調整し、前記文字検出部は、学習のために、前記特徴量と正解データとの誤差である文字検出誤差と、前記推定最終スコアと、に基づいて、前記文字検出部が持つ文字検出用モデルの内部パラメーターを調整するものである。
【0012】
[2]また、本発明の一態様は、上記の文字検出装置において、前記特徴量は、前記画像に含まれる画素に対応して、前記画素が文字領域に含まれる度合いを表す文字領域スコアと、前記画素を含む前記文字領域の前記画像内での位置を表す位置情報と、を含むものである。
【0013】
[3]また、本発明の一態様は、上記の文字検出装置において、前記統合処理部は、前記文字領域スコアに基づいて非最大抑制の処理を行うことによって、前記重複しあう文字領域候補を統合する、とともに、統合後の矩形の前記文字領域をより精細な多角形の領域に変換する処理を行うものである。
【0014】
[4]また、本発明の一態様は、上記の文字検出装置において、前記文字検出部は、学習の第1段階において前記文字検出誤差のみに基づいて前記文字検出部が持つ前記文字検出用モデルの内部パラメーターを調整し、次に学習の第2段階において前記文字検出誤差と前記推定最終スコアとの両方に基づいて前記文字検出部が持つ前記文字検出用モデルの内部パラメーターを調整するものである。
【0015】
[5]また、本発明の一態様による学習装置は、画像を入力し前記画像に含まれる文字領域に関する特徴量を出力する文字検出部と、前記文字検出部が検出した重複しあう文字領域候補を統合することによって文字領域を決定するとともに、正解データに基づいて、決定した前記文字領域のすべてについての最終スコアを算出する統合処理部と、前記文字検出部が出力した前記特徴量に基づいて前記最終スコアの推定値である推定最終スコアを算出する最終スコア推定部と、前記最終スコアと前記推定最終スコアとの誤差である最終スコア誤差を算出する最終スコア誤差計算部と、を備え、前記最終スコア推定部は、学習のために、前記最終スコア誤差を基に、前記最終スコア推定部が持つ最終スコア推定用モデルの内部パラメーターを調整し、前記文字検出部は、学習のために、前記特徴量と正解データとの誤差である文字検出誤差と、前記推定最終スコアと、に基づいて、前記文字検出部が持つ文字検出用モデルの内部パラメーターを調整するものである。
【0016】
[6]また、本発明の一態様による文字検出装置は、画像を入力し前記画像に含まれる文字領域に関する特徴量を出力する文字検出部と、前記文字検出部が検出した重複しあう文字領域候補を統合することによって文字領域を決定する統合処理部と、を備え、前記文字検出部は、上記[5]に記載の学習装置によって学習済みの文字検出用モデルに基づいて、前記特徴量を算出するものである。
【0017】
[7]また、本発明の一態様は、画像を入力し前記画像に含まれる文字領域に関する特徴量を出力する文字検出部と、前記文字検出部が検出した重複しあう文字領域候補を統合することによって文字領域を決定するとともに、正解データに基づいて、決定した前記文字領域のすべてについての最終スコアを算出する統合処理部と、前記文字検出部が出力した前記特徴量に基づいて前記最終スコアの推定値である推定最終スコアを算出する最終スコア推定部と、前記最終スコアと前記推定最終スコアとの誤差である最終スコア誤差を算出する最終スコア誤差計算部と、を備え、前記最終スコア推定部は、学習のために、前記最終スコア誤差を基に、前記最終スコア推定部が持つ最終スコア推定用モデルの内部パラメーターを調整し、前記文字検出部は、学習のために、前記特徴量と正解データとの誤差である文字検出誤差と、前記推定最終スコアと、に基づいて、前記文字検出部が持つ文字検出用モデルの内部パラメーターを調整する、文字検出装置、としてコンピューターを機能させるためのプログラムである。
【0018】
[8]また、本発明の一態様は、画像を入力し前記画像に含まれる文字領域に関する特徴量を出力する文字検出部と、前記文字検出部が検出した重複しあう文字領域候補を統合することによって文字領域を決定する統合処理部と、を備え、前記文字検出部は、前記[5]の学習装置によって学習済みの文字検出用モデルに基づいて、前記特徴量を算出する、文字検出装置、としてコンピューターを機能させるためのプログラムである。
【発明の効果】
【0019】
本発明によれば、微分不可能な処理を含む画像内の文字検出処理に関して、効果勾配法等によってモデルの学習を行うことが可能となる。
【図面の簡単な説明】
【0020】
【
図1】本発明の実施形態による文字検出装置の概略機能構成を示したブロック図である。
【
図2】同実施形態による文字検出装置の学習モードにおける動作手順を示すフローチャートである。
【
図3】同実施形態による文字検出装置の推定モードにおける動作手順を示すフローチャートである。
【
図4】同実施形態による文字検出装置の内部のコンピューターの構成例を示す外力図である。
【発明を実施するための形態】
【0021】
次に、本発明の一実施形態について、図面を参照しながら説明する。本実施形態の文字検出装置1は、文字検出のためのニューラルネットワーク(後述の文字検出部12)からの出力や、中間特徴量に基づいて、最終的なスコアを推定するためのニューラルネットワーク(後述の最終スコア推定部22)を持つことが特徴である。文字検出装置1は、その最終スコアを推定するためのニューラルネットワークからの出力に基づき、文字検出ニューラルネットの損失を計算し、その損失に基づいて文字検出のためのニューラルネットワークの最適化を行う。
【0022】
図1は、本実施形態による文字検出装置の概略機能構成を示すブロック図である。図示するように、文字検出装置1は、画像取得部11と、文字検出部12と、出力データ記憶部13と、文字検出誤差計算部14と、統合処理部21と、最終スコア推定部22と、最終スコア誤差計算部24と、制御部31と、学習データ供給部32とを含んで構成される。これらの各機能部は、例えば、コンピューターと、プログラムとで実現することが可能である。また、各機能部は、必要に応じて、記憶手段を有する。記憶手段は、例えば、プログラム上の変数や、プログラムの実行によりアロケーションされるメモリーである。また、必要に応じて、磁気ハードディスク装置やソリッドステートドライブ(SSD)といった不揮発性の記憶手段を用いるようにしてもよい。また、各機能部の少なくとも一部の機能を、プログラムではなく専用の電子回路として実現してもよい。
【0023】
文字検出装置1は、機械学習の手法を用いて、画像内の文字の領域を検出する装置である。文字検出装置1は、学習モードと推定モードの2種類のモードで稼働する。学習モードにおいては、文字検出装置1は、学習データに基づいて内部のモデルの学習を行う。つまり、文字検出装置1は、内部のパラメーターの値を調整する。推定モードにおいては、文字検出装置1は、学習済みのモデルを用いて、未知の画像に含まれる文字領域の位置を推定する処理を実行する。文字検出装置1は、学習モードと推定モードのどちらのモードで稼働するかを、後述する制御部31が制御する。次に、文字検出装置1を構成する各部の機能について説明する。
【0024】
画像取得部11は、処理対象とする画像を取得する。文字検出装置1が学習モードで動作する場合には、画像取得部11は、学習データ供給部32が供給する学習用の画像を取得する。文字検出装置1が推定モードで動作する場合には、画像取得部11は、文字領域検出対象の画像を、例えば外部から、取得する。画像取得部11は、取得した画像を、文字検出部12に渡す。
【0025】
文字検出部12は、入力される画像を基に、その画像内の文字検出に関する特徴量を求める。つまり、文字検出部12は、入力画像に含まれる文字領域に関する特徴量を出力する。文字検出部12は、内部にニューラルネットワーク(文字検出用モデル)を備えている。このニューラルネットワークの構造は、一般的な、画像内の物体検出のためのネットワークと同等の構造であって良い。例えば、ネットワークの構造は、VGG(Visual Geometry Groupに由来するネットワークの名称)であってよい。VGGは、一般的な物体認識ネットワークの特徴マップを拡大し重ね合わせたものを画像特徴マップとして出力する構造を有するものである。ネットワークの構造としては、その他に、ResNet(Residual Network)や、Inceptionといった、物体認識用のネットワークを利用するようにしてもよい。
【0026】
文字検出部12は、上記のニューラルネットワークにより画素ごとの特徴量を算出するものである。この特徴量は、文字領域の検出に関わる特徴量である。入力画像は、3×H×Wのマトリクスとして表わされ得る。ここでの3は、画素値のチャンネル数(例えば、RGBの3原色に対応するチャンネル)である。Hは、画像の高さ方向の画素数である。Wは、画像の幅方向の画素数である。画素値のチャンネル数は、3以外であってもよい。文字検出部12が算出する特徴量は、C×H×Wのマトリクスとして表わされ得る。ここのCは、予め定められるチャンネル数である。例えば前述の非特許文献1と同様の特徴量を算出する場合には、C=5である。C=5の場合、画素ごとの特徴量は、文字領域スコア(1チャンネル)と、文字領域に対応する矩形を表す相対座標値(4チャンネル)とであってよい。矩形領域が画像内において傾きを持たない矩形である場合、その矩形を表す相対座標値は、各画素の座標から、矩形の、X座標(幅方向の座標)の最小値および最大値と、Y座標(高さ方向の座標)の最小値および最大値までの距離、であってよい。言い換えれば、上記の相対座標値は、(1)対象画素のX座標と矩形領域のX座標の最大値との差の絶対値、(2)対象画素のX座標と矩形領域のX座標の最小値との差の絶対値、(3)対象画素のY座標と矩形領域のY座標の最大値との差の絶対値、(4)対象画素のY座標と矩形領域のY座標の最小値との差の絶対値、の4つの値である。
【0027】
つまり、文字検出部12が出力する特徴量は、入力画像に含まれる画素に対応して、その画素が文字領域に含まれる度合いを表す文字領域スコアと、その画素を含む文字領域の画像内での位置を表す位置情報と、を含むものであってよい。
【0028】
文字検出部12が算出する特徴量のサイズ(高さ方向、幅方向)は、必ずしも入力される画像のサイズと同一である必要はない。計算処理負荷を軽くするために、入力される画像の、高さおよび幅のそれぞれの方向において、1/2や1/4などといったサイズの画像特徴マップ/単独文字マップを出力する構造としてもよい。その場合、文字検出部12が算出する特徴量は、C×H2×W2のマトリクスとして表わされ得る。ここで、例えば、H2=H/2,W2=W/2であってもよいし、H2=H/4,W2=W/4であってもよい。ただし、特徴量のサイズを縮小する場合には、画像内の小さい文字列を検出する制度は悪化する。特徴量のサイズは、文字検出精度とはトレードオフの関係にある。
【0029】
文字検出部12は、学習のために、出力した特徴量と正解データとの誤差である文字検出誤差と、前記推定最終スコアと、に基づいて、文字検出部12自身が持つ文字検出用モデルの内部パラメーターを調整(更新)する。
【0030】
なお、文字検出部12は、得られた4点矩形を多角形ポリゴンにリファインする処理をさらに行ってもよい。この処理は、予め学習しておいたRNN(回帰型ニューラルネットワーク)を用いて行うことが可能である。RNNを用いて多角形ポリゴンにリファインする処理は、既存技術を用いて行うことができる。このRNNに入力されるデータは、画像の特徴量である。この画像の特徴量は、画素値に基づいてCNN(畳み込みニューラルネットワーク)から出力される。上記RNNからの出力は、多角形ポリゴンを表す頂点の座標値である。RNNは、例えば2頂点ずつ、多角形ポリゴンの頂点の情報を出力する。4点矩形を多角形ポリゴンに変換する処理によって、より正確な文字領域が検出されることとなる。
【0031】
出力データ記憶部13は、文字検出部12が出力するデータを少なくとも一時的に記憶する。出力データ記憶部13は、具体的には、高さ方向H画素、幅方向W画素の画像に対応する、上記のC×H×Wのマトリクスのデータなどを記憶する。
【0032】
文字検出誤差計算部14は、出力データ記憶部13に書き込まれているデータと、学習データ供給部32から供給される正解データとに基づいて、誤差を算出する。つまり、文字検出誤差計算部14は、文字検出部12のパラメーターを更新するための文字検出誤差を計算する。文字検出誤差計算部14は、下で説明する第1誤差と第2誤差との合計値として、文字検出誤差を計算する。ただし、文字検出誤差計算部14は、学習処理の段階によっては第2誤差を利用せず、第1誤差のみを、文字検出誤差としてもよい。例えば、学習の開始当初には最終スコア推定部22によって推定される最終スコアの精度が低い。そのため、あらかじめ決められた回数の学習が終わるまでは、文字検出誤差計算部14は、学習を安定させることを目的として、第2誤差を利用しないようにしてもよい。
【0033】
つまり、文字検出部12は、学習の第1段階において文字検出誤差(文字検出誤差計算部14が求めた誤差)のみに基づいて文字検出部12が持つ文字検出用モデルの内部パラメーターを調整する。次に、文字検出部12は、学習の第2段階において文字検出誤差と推定最終スコア(最終スコア推定部22が求めた推定最終スコア)との両方に基づいて文字検出用モデルの内部パラメーターを調整する。
【0034】
上記の第1誤差は、文字検出部12の出力から求まる一般的な推定誤差である。文字検出部12のニューラルネットワークが、文字領域スコアの値と、矩形座標についての4つの値と、の計5つの値を画素ごとに出力する場合、文字検出誤差計算部14は、第1誤差を、次の方法により計算する。文字領域スコアに関しては、文字検出誤差計算部14は、算出された文字領域スコアと正解スコアとの交差エントロピー誤差を計算する。矩形座標については、文字検出誤差計算部14は、正解座標との平均二乗誤差を計算する。
【0035】
また、第2誤差は、最終スコア推定部22が算出する推定最終スコアから求まる誤差である。第2誤差は、具体的には、推定最終スコアと最大スコア値(つまり「1」)との差である。文字検出誤差計算部14は、Mean square error(MSE、平均自乗誤差)やBinary cross-entropy(交差エントロピー)などの一般的な誤差関数を利用して、第2誤差を計算する。
【0036】
統合処理部21は、検出された重複し合う推定文字領域を統合する。統合処理部21は、具体的には、文字検出部12が求めた重複する多数の推定文字領域のうち、最大スコアを持つ領域以外を除外することによって、検出された文字領域を統合する。統合処理部21は、NMS(Non-maximum-suppression,非最大抑制)の処理によって、重複し合う文字領域のうちの、最大スコア以外の文字領域を除外する。NMSの処理自体は、既存技術により実行可能である。
【0037】
つまり、統合処理部21は、文字領域スコアに基づいて非最大抑制(NMS)の処理を行うことによって、重複しあう文字領域候補を統合する。
【0038】
統合処理部21は、学習モードで動作する際には、さらに、出力される文字領域(複数の文字領域であってもよい)の全体についての最終スコアを計算する。画像内での文字領域検出の処理においては、一般に、正解の文字領域との一致率を示す正確領域との一致率を示すIOU(前述のIntersection over Union)値が所定の閾値を超える場合に検出成功と見なす。ここでの閾値は、例えば、0.5などとしてよい。統合処理部21は、領域検出の再現率や適合率などに基づいて最終スコアを算出する。再現率は、実際の文字領域のうちのどれだけを領域を検出できたかを表す数値である。適合率は、実際には文字領域ではない領域をどれだけ誤って検出したかを表す数値である。統合処理部21は、例えば、上記の再現率と適合率との調和平均であるF値を最終スコアとして算出する。統合処理部21が算出する最終スコアは、文字検出の精度を表す数値である。つまり、最終スコアは、文字検出部12の検出精度を表す数値データである。
【0039】
上記の統合処理部21の処理を関数と捉えた場合、その関数は微分不可能な関数である。言い換えれば、統合処理部21の処理は、微分不可能な処理である。統合処理部21が算出する最終スコアは、最終スコア推定部22が持つニューラルネットワークを最適化するための教師データとして使用される。つまり、最終スコア推定部22は、統合処理部21が算出する最終スコアに近いスコアを推定できるように、学習によって最適化される。統合処理部21の処理自体が微分不可能な処理であっても、統合処理部21が算出する最終スコアと、最終スコア推定部22が算出する推定最終スコアと、の誤差が小さくなるように、最終スコア推定部22や文字検出部12のニューラルネットワークを最適化することが可能となる。
【0040】
つまり、統合処理部21は、文字検出部12が検出した重複しあう文字領域候補を統合することによって文字領域を決定する。また統合処理部21は、学習データ供給部32が供給する正解データに基づいて、決定した前記文字領域のすべて(全体)についての最終スコアを算出する。
【0041】
なお、統合処理部21は、上に例示した方法以外に、他の手順で最終スコアを求めるようにしてもよい。本実施形態において、最終スコアの計算自体を微分可能な計算として実現することは必要とされない。したがって、統合処理部21は、微分可能であるか否かに関わらず、どのようなスコアをも最終スコアとして算出するようにしてよい。
【0042】
最終スコア推定部22は、文字検出部12が出力した特徴量に基づいて上記の最終スコアの推定値である推定最終スコアを算出する。具体的には、最終スコア推定部22は、文字検出装置1が学習モードで動作する際に、文字検出部12が出力したデータと、学習データ供給部32が供給する文字検出用の正解データとを基に、最終スコアを推定する。最終スコア推定部22は、文字検出部12が出力したデータ(前述の、C×H×W等のサイズを持つマトリックス)を、出力データ記憶部13から読み込む。最終スコア推定部22は、ニューラルネットワーク(最終スコア推定用モデル)を用いて実現される。
【0043】
文字検出用の正解データは、入力画像が含む単数または複数の文字領域それぞれの座標値のリスト、または等価なデータとして表わされ得る。つまり、文字検出用の正解データは、高さH画素×幅W画素の画像における文字領域であるか否かを表す二値データ(例えば、画素が正解の文字領域に含まれる場合には1、画素が正解の文字領域には含まれない場合には0)としても表わされ得る。最終スコア推定部22は、各画素に対応して文字領域であるか否かを表す正解データを入力とする。この場合、つまり、最終スコア推定部22への入力となるデータは、(C+1)×H×Wのサイズのマトリックスである。
【0044】
なお、文字検出用の正解データを上記のように0と1の二値で表わす代わりに、次のような変形例を用いて、それぞれの文字領域を区別するようにしてもよい。即ち、画素が文字領域に含まれない場合には値を0とし、画素が第1の文字領域に含まれる場合には値を1とし、画素が第2の文字領域に含まれる場合には値を2とし、以下同様である。つまり、この変形例では、文字検出の正解を表すマップが、個々の文字領域を識別する情報を持つ。言い換えれば、正解の文字領域ごとにラベルを付与して、そのラベルに対応する値で、マップを塗りつぶすようにする。
【0045】
さらに、文字領域ごとの属性をマップ上で表現するようにしてもよい。例えば、文字領域に含まれる文字列が、日本語の文字列であるか英語の文字列であるか(言語の違い)等に応じて、画素に対応する値を変えるようにしてもよい。
【0046】
最終スコア推定部22からの出力は、最終スコアの値である。最終スコアとして前述のF値を用いる場合には、最終スコア推定部22が出力する値の範囲を、0以上且つ1以下に限定することができる。
【0047】
最終スコア推定部22は、最終スコア誤差計算部24が求めた最終スコア誤差に基づいて、最終スコア推定部22自身の内部のパラメーターを更新することができる。つまり、最終スコア推定部22は、最終スコア誤差を基に、前記最終スコア推定部が持つ最終スコア推定用モデルの内部パラメーターを調整する。
【0048】
最終スコア誤差計算部24は、最終スコア誤差を計算する。具体的には、最終スコア誤差計算部24は、統合処理部21が計算した最終スコアと、最終スコア推定部22が計算した推定最終スコアと、の誤差を計算する。最終スコア誤差計算部24が算出した誤差は、誤差逆伝播法によってニューラルネットワークのパラメーター値を更新するために用いられる。なお、最終スコア誤差計算部24は、Mean square error(MSE、平均自乗誤差)や、Binary cross-entropy(二値分類用交差エントロピー)など、一般的な誤差関数が利用して誤差を求めてよい。
【0049】
制御部31は、文字検出装置1の動作を制御する。制御部31は、文字検出装置1が動作するモードを制御する。モードは、前述の通り、学習モードと推定モードの2種類である。学習モードで動作する際には、制御部31は、文字検出装置1が、学習データに基づいてモデルの学習(機械学習)を行うように制御する。推定モードで動作する際には、制御部31は、文字検出装置1が、学習済みのモデルに基づいて未知の画像を処理対象としてその文字領域を検出する処理を行うように制御する。なお、後で変形例として説明するように、文字検出装置1は、学習モードと推定モードとのどちらか一方のみで動作するものであってもよい。
【0050】
学習データ供給部32は、文字検出装置1が学習モードで動作する場合に、学習データを供給する。学習データは、画像と、その画像に対応する正解データとの対の、集合である。学習データは、モデルの学習を行うために、上記の対を多数含むものである。正解データは、画像内における文字領域の位置(座標)の情報の正解を表すものである。1枚の画像が複数の文字領域を含んでいてもよい。学習データの一部として、文字領域を含まない画像とその正解データの対が含まれていてもよい。文字領域の位置の情報は、例えば、矩形の座標値のセットであってよい。また、文字領域の位置の情報は、画像の各画素に対応して、その画素が文字領域に含まれるか否かを表すマップ情報(二値情報)であってもよい。また、文字領域の位置の情報は、画像の各画素に対応して、その画素が含まれる文字領域を識別する情報(例えば、文字領域ごとに付与される連番)を含むものであってもよい。また、文字領域の情報は、画像の各画素に対応して、その画素が含まれる文字領域の属性を表す情報(例えば、文字領域が、日本語文字列を含むものか、英語文字列を含むものか、といった属性)を含むものであってもよい。
【0051】
学習データ供給部32は、学習モードで動作する際に、画像を画像取得部11に渡す。また、学習データ供給部32は、正解データを、必要な機能部に渡す。学習データ供給部32は、正解データを、例えば文字検出誤差計算部14や統合処理部21に渡す。
【0052】
次に、文字検出装置1の動作手順について、学習モードと推定モードとのそれぞれのフローチャートを参照しながら、説明する。
【0053】
図2は、本実施形態の文字検出装置1の学習モードにおける処理の手順を示すフローチャートである。以下、このフローチャートに沿って説明する。
【0054】
ステップS1において、画像取得部11は、学習用の画像を取得する。この学習用画像は、学習データ供給部32が供給するものである。学習データ供給部32は、その学習用画像に対応する正解データをも供給する。正解データは、その画像における文字領域を示す矩形座標データである。学習データ供給部32は、正解データを、文字検出誤差計算部14に渡す。
【0055】
ステップS2において、文字検出部12は、画像取得部11が取得した画像を基に、文字検出に関する特徴量を算出する。本ステップは学習処理中のステップであり、ここで用いるニューラルネットワークのパラメーターの値は、その時点でのパラメーターの値であってよい。文字検出部12における入出力データについては、既に説明した通りである。文字検出部12は、出力データを出力データ記憶部13に書き込む。
【0056】
ステップS3において、統合処理部21は、文字検出部12からの出力データを出力データ記憶部13から読み込む。統合処理部21は、読み込んだデータに基づいて、最終的なスコアを計算する。この最終スコアは、文字検出装置1が最適化する対象である。最終スコアの算出方法の例については、既に説明した通りである。
【0057】
なお、ステップS3において、統合処理部21は、最終スコアを計算するまでの過程において、NMSの処理を行う。これにより、統合処理部21は、文字検出部12が求めた重複する多数の推定文字領域のうち、最大スコアを持つ領域以外を除外することによって、検出された文字領域を整理・統合する。
【0058】
ステップS4において、最終スコア誤差計算部24は、最終スコア誤差を計算する。具体的には、最終スコア誤差計算部24は、統合処理部21が計算した真の最終スコアと、最終スコア推定部22が推定した推定最終スコアとの、誤差を求める。
【0059】
ステップS5において、文字検出誤差計算部14は、文字検出部12のパラメーターを更新するための文字検出誤差を求める。文字検出誤差計算部14は、前述の第1誤差と第2誤差との合計値として、文字検出誤差を計算する。ただし、文字検出誤差計算部14は、学習処理の段階によっては第2誤差を利用せず、第1誤差のみを、文字検出誤差としてもよい。例えば、学習の開始当初には最終スコア推定部22によって推定される最終スコアの精度が低い。そのため、あらかじめ決められた回数の学習が終わるまでは、文字検出誤差計算部14は、学習を安定させることを目的として、第2誤差を利用しないようにしてよい。
【0060】
ステップS6において、最終スコア推定部22は、ステップS4で最終スコア誤差計算部24が求めた最終スコア誤差に基づいて、最終スコア推定部22自身の内部のパラメーターを更新する。最終スコア推定部22は、このパラメーター更新には、例えばSGD (Stochastic Gradient Descent、確率的勾配降下法)やAdamなどといった、一般的なニューラルネット最適化手法を利用することができる。
【0061】
ステップS7において、文字検出部12は、ステップS5で文字検出誤差計算部14が求めた文字検出誤差に基づいて、文字検出部12自身の内部のパラメーターを更新する。文字検出部12は、このパラメーター更新には、例えば上記のSGD (Stochastic Gradient Descent)やAdamなどといった、一般的なニューラルネット最適化手法を利用することができる。
【0062】
ステップS8において、制御部31が、学習の終了条件を判定する。終了条件とは、ここでは、例えば、「学習用データを用いて所定回数のパラメーター更新が実行された」ことや、「十分に収束したことにより、パラメーター値のセットを更新しても誤差が下がらなくなった」ことなどである。予め定めた終了条件を満たす場合(ステップS8:YES)には、文字検出装置1は、本フローチャート全体の処理を終了する。終了条件を満たさない場合(ステップS8:NO)には、次の学習用データに基づく処理を継続するように、制御部31は、文字検出装置1がステップS1に戻る制御を行う。
【0063】
以上が、文字検出装置1が学習モードで動作する場合の処理手順である。上で説明した学習モードでの処理は、次の2つの作用を生じさせる。第1に、統合処理部21が算出する最終スコアと最終スコア推定部22が算出する推定最終スコアとの誤差が最小になるように、最終スコア推定部22が持つニューラルネットワークの内部パラメーターを最適化する。第2に、文字検出の損失が最小になるように、且つ最終スコア推定部22が算出する推定最終スコアが最大になるように、文字検出部12が持つニューラルネットワークの内部パラメーターを最適化する。
【0064】
この学習により、最終スコア推定部22は、入力されるデータに基づいて、統合処理部21が算出する最終スコアに近い最終スコアを推定できるようになることが期待される。つまり、最終スコア推定部22は、実際の最終スコアに近い良好な最終スコアを出力する。そして、そのような最終スコア推定部22が出力する推定最終スコアにも基づいて、文字検出部12が持つニューラルネットワークが最適化される。これにより、文字検出部12は、未知の入力画像に対しても、良好な文字領域検出結果、言い換えれば高い最終スコアの得られる文字領域検出結果を出力するようになる。
【0065】
図3は、本実施形態の文字検出装置1の推定モードにおける処理の手順を示すフローチャートである。なお、文字検出装置1が推定モードで動作するときには、内部のパラメーター(ニューラルネットワークのパラメーター等)の最適化が完了していることが想定される。以下、このフローチャートに沿って説明する。
【0066】
まずステップS11において、画像取得部11は、推定対象とする画像を取得する。この画像は1つまたは複数の文字領域を含んでいてよいが、画像内における文字領域の位置(座標)は未知である。この画像における文字領域を、文字検出装置1が推定する。
【0067】
ステップS12において、文字検出部12は、画像取得部11が取得した画像を基に、文字検出に関する特徴量を算出する。文字検出部12のニューラルネットワークは、最適化済みのパラメーター値に基づいて、特徴量を算出する。文字検出部12は、求められた特徴量のデータを、出力データ記憶部13に書き込む。
【0068】
ステップS13において、統合処理部21は、文字検出部12からの出力データを出力データ記憶部13から読み込む。統合処理部21は、読み込んだデータに基づいて、NMSの処理を行う。これにより、統合処理部21は、文字検出部12が求めた重複する多数の推定文字領域のうち、最大スコアを持つ領域以外を除外することによって、検出された文字領域を整理・統合する。このようにして、統合処理部21は、検出された任意の数(0以上)の文字領域の情報を、出力する。
【0069】
図4は、文字検出装置1の内部構成の例を示すブロック図である。文字検出装置1は、コンピューターを用いて実現され得る。図示するように、そのコンピューターは、中央処理装置901と、RAM902と、入出力ポート903と、入出力デバイス904や905等と、バス906と、を含んで構成される。コンピューター自体は、既存技術を用いて実現可能である。中央処理装置901は、RAM902等から読み込んだプログラムに含まれる命令を実行する。中央処理装置901は、各命令にしたがって、RAM902にデータを書き込んだり、RAM902からデータを読み出したり、算術演算や論理演算を行ったりする。RAM902は、データやプログラムを記憶する。RAM902に含まれる各要素は、アドレスを持ち、アドレスを用いてアクセスされ得るものである。なお、RAMは、「ランダムアクセスメモリー」の略である。入出力ポート903は、中央処理装置901が外部の入出力デバイス等とデータのやり取りを行うためのポートである。入出力デバイス904や905は、入出力デバイスである。入出力デバイス904や905は、入出力ポート903を介して中央処理装置901との間でデータをやりとりする。バス906は、コンピューター内部で使用される共通の通信路である。例えば、中央処理装置901は、バス906を介してRAM902のデータを読んだり書いたりする。また、例えば、中央処理装置901は、バス906を介して入出力ポートにアクセスする。
【0070】
なお、文字検出装置1の少なくとも一部の機能をコンピューター上で稼働するプログラムとして実現することができる。その場合、このプログラムをコンピューター読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピューターシステムに読み込ませ、実行することによって実現しても良い。なお、ここでいう「コンピューターシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM、DVD-ROM、USBメモリー等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。つまり、「コンピューター読み取り可能な記録媒体」とは、非一過性の(non-transitory)コンピューター読み取り可能な記録媒体であってよい。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、一時的に、動的にプログラムを保持するもの、その場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリーのように、一定時間プログラムを保持しているものも含んでも良い。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【0071】
以上、実施形態を説明したが、本発明はさらに次のような変形例でも実施することが可能である。
【0072】
上記実施形態では、文字検出装置1は、学習モードにおいても、推定モードにおいても、両方で動作するものであった。そして、文字検出装置1は、まず学習モードで動作してモデルの学習を行い、学習の完了後に、学習済みのモデルに基づいて推定モードで動作することができた。変形例の一態様として、文字検出装置1が学習モードのみで動作するようにしてもよい。その場合、文字検出装置1を「学習装置」と呼んでもよい。その場合の文字検出装置1は、モデル(ニューラルネットワーク)の学習のみを行う。文字検出装置1で学習済みのモデルを、他の装置に移植して、当該他の装置を文字検出装置として機能させることができる。変形例の別の一態様として、文字検出装置1が推定モードのみで動作するようにしてもよい。この場合のモデルは、既に学習済みである。例えば、他の装置で学習済みのモデルを文字検出装置1に移植して、推定モードのみで動作可能なように構成してもよい。学習モードのみで動作する場合、あるいは推定モードのみで動作する場合の文字検出装置1は、
図1を参照しながら説明した機能のうち、各モードでの動作のために必要な機能のみを持てば充分である。
【0073】
上記実施形態では、文字検出部12が、検出した文字領域の4点矩形を、多角形ポリゴンにリファインする処理についても説明した。その場合、リファインされた後の多角形の文字領域について、統合処理部21が文字領域スコアに基づく非最大抑制(NMS)の処理を行う。変形例として、この処理の順序を逆にしてもよい。つまり、本変形例において、統合処理部21は、文字検出部12によって検出された4点矩形の文字領域についてNMSの処理を行う。そして、文字検出装置1は、NMSの結果として残った4点矩形の文字領域を、多角形ポリゴンにリファインする。
【0074】
以上説明したように、本実施形態(変形例を含む)では、文字検出部12のニューラルネットを用いて、文字領域を検出する。また、統合処理部21が、重複し合う文字領域を統合する。文字検出装置1が学習モードで動作する場合には、統合処理部21は、正解データに基づいて最終スコアを計算する。統合処理部21の処理は、微分不可能な処理を含む。文字検出装置1が学習モードで動作する場合には、最終スコア推定部22が、統合処理部21の算出する最終スコアを推定する。最終スコア推定部22のニューラルネットワーク自体も、学習によって最適化される。最終スコア推定部22が行う処理はすべて微分可能な処理であるため、最終スコア推定部22が出力する推定最終スコアに基づいて、上記の文字検出部12のニューラルネットワークを最適化することが可能となる。
【0075】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【0076】
本発明は、例えば、画像(動画を含む)にタグ情報を付けたり、文字による画像検索を行えるようにしたり、画像にその他の付加価値を与えたりするために利用することができる。但し、本発明の利用範囲はここに例示したものには限られない。
【符号の説明】
【0077】
1 文字検出装置(学習装置)
11 画像取得部
12 文字検出部
13 出力データ記憶部
14 文字検出誤差計算部
21 統合処理部
22 最終スコア推定部
24 最終スコア誤差計算部
31 制御部
32 学習データ供給部
901 中央処理装置
902 RAM
903 入出力ポート
904,905 入出力デバイス
906 バス