原著
OCR
スコアを利用した情景画像内の文字列抽出
上野将義(金沢大学大学院自然科学研究科, ueno@blitz.ec.t.kanazawa-u.ac.jp) 南保英孝(金沢大学大学院自然科学研究科, nambo@ec.t.kanazawa-u.ac.jp) 木村春彦(金沢大学大学院自然科学研究科, kimura@ec.t.kanazawa-u.ac.jp) 上田芳弘(石川県工業試験場, ueda@irii.go.jp)Text extraction in natural image by using OCR score
Masayoshi Ueno (Graduate School of Natural Science and Technology, Kanazawa University, Japan) Hidetaka Nambo (Graduate School of Natural Science and Technology, Kanazawa University, Japan) Haruhiko Kimura (Graduate School of Natural Science and Technology, Kanazawa University, Japan) Yoshihiro Ueda (Industrial Research Institute of Ishikawa, Japan)
要約 カメラの発達により、色々な場面での撮影が可能となった。さらにカメラの解像度も高くなったため、カメラで撮影した情景 内の文字を認識することも可能となった。我々の周囲には数多くの文字が存在しており、それらは有益な情報をもたらして いる。よって、もし情景内の文字情報を自動的に認識することが可能となれば、様々なシステムにおいて役に立つと考えられ る。しかし、文字認識のためには文字列の位置を特定する必要があり、困難を伴う。本論文では、連結成分抽出法と
CSER
を 用いて、背景を分離し文字候補を抽出する。さらに、文字候補を絞り込むためにOCR
スコアとヒストグラムを用いた。また、OCR
スコアを用いることで、既存研究では不可能であった1
文字からなる文字領域を抽出することが可能となった。そして、提 案手法を用いた実験では、抽出精度74.6 %
という結果が得られた。 キーワードMSER
,CSER
,文字列抽出,文字認識,OCR
スコア1. はじめに 現在、ビデオカメラ、スマートフォン端末等のカメラ付き 携帯機器の普及に伴い、利用者は様々な画像を撮影すること が可能である。さらに、カメラの高解像度化に伴い、情景内 の文字を認識することが可能になりつつある。私たちの身の 回りには文字情報が多く存在し、それらは私たちにとって有 益な情報を提供してくれる。したがって、身の回りの情景内 に存在する文字情報を認識することができれば、様々なシス テムとの連携が可能になると考えられる。 例えば、店舗の名前や住所、地名などが記載されている看 板上の文字や、経路情報などの道路交通情報が記載されてい る文字を読み取り、利便性や交通の安全性向上を目的とした システムとの連携が可能である。 現在、光学文字認識(
OCR
)を用いて活字の文書画像をコン ピュータが編集できる形式に変換が可能であるが、情景画像 内の文字を認識することは困難である。文字を認識するには まず、文字の画像内での位置を特定する必要があるが、一般 的に情景画像内の文字の抽出(認識)を困難にする要因として 以下が挙げられる。•
文字情報以外のオブジェクト(空、建物、車、人など)が存 在する•
文書画像と異なり文字の背景が複雑である•
撮影時の状況によって外乱(影や光の反射)を受ける したがって、情景画像内から文字を正確に取得するために は、上記の問題を克服しなければならず、本研究では、前述 したサービスの実現のために、様々な種類の情景画像から文 字列を抽出することを目的とする。 2. 既存研究 情景画像内の文字列の抽出に関する手法は大きく分けて2
つに分けることができ、パッチベース処理、連結成分ベース (領域ベース)処理がある。パッチベース処理では、画像内で 文字列である可能性が高いかどうかを矩形単位で機械学習を 用いて判定し、文字列の抽出を行う(Chen and Yuille, 2004;
Kim et al., 2003
)。しかし、パッチベース処理で得られる抽出 結果は背景と文字列の分離ができておらず、抽出した文字列 を認識するためにはさらに処理を加える必要がある。 パッチベース処理に対して、連結成分ベース処理では、同 一文字のピクセルは類似した特性を持つと仮定し、同一文字 の連結成分を利用してピクセルを領域にグループ化すること で各文字を抽出している。連結成分ベース処理の利点は、連 結成分の濃淡が一般的に文字列の特性(スケール、方向、フォ ント)に依存しないことである、また、連結成分ベース処理 の中でも、文字抽出の際にMaximally Stable Extremal Regions
(MSER
)をベースとした手法が有効である(Chen et al., 2011;
Neumann and Matas, 2012; Yin et al., 2014
)。 し か し、MSER
は多くの領域を検出してしまうことが問題である。そこで、MSER
をベースとしたCSER
(Class Specific Extremal Regions
) では、簡易的に文字、非文字の分類を行っている(Neumann
and Matas, 2012
)。CSER
では、連結成分を2
値化した際に適 切なERs
を抽出するために、文字認識にも有効に利用できる 利点がある。しかし、文字、非文字の分類を行っていながらも、 それでもなお抽出される文字候補の数は多く、その後の文字正しく抽出できない(
Yin et al., 2014
)。さらに、情景内の単一 の文字は既存研究では考慮されていない。 3. データセット 本研究で用いるデータセットは、ICDAR2003
で利用された データセットの合計251
枚である(Lucas et al., 2003
)。データ セットの画像の詳細は以下の通りである。•
画像サイズ:307
×93
から1280
×960
•
対象文字:英数字のみ•
カラー画像のみ•
文字数:最低1
文字以上画像内に存在 4. 提案手法 本研究では、背景と文字が分離できているという利点と簡 易的に文字分類を行っているCSER
を用いて文字候補を抽出 する。そして、得られた領域にOCR
を利用してOCR
スコアを 取得し、それを利用して文字候補の削減を行った後、文字列 を抽出する手法を提案する。またOCR
スコアを利用すること で既存研究では行われていなかった単一文字の抽出も可能で あると考えられる。本研究の流れは、大きく分けて1.
文字候 補の抽出、2.
文字候補の削減、3.
文字列の抽出である。図1
に各段階の処理結果を示す。 4.1 文字列候補の抽出 文字候補の抽出は以下の手順で行う。•
カラー画像をRGB
それぞれの要素に分割する• CSER
を用いて文字候補を抽出する 4.1.1 MSER
MSER
は、Matas et al.
(2004
)で提案された領域分割の手法 であり、画像中の輝度値が類似した画素を1つの領域にまと めていく手法である。抽出された領域は周りの画素値と比較 して明るい、または暗い領域である。MSER
はグレイスケー ル画像に対して閾値を徐々に変化させることで領域を抽出す る。MSER
は以下の手順で処理を行う。•
濃淡画像から、閾値を徐々に変化させ連続する2
値画像を 生成する•
各2
値画像の連結領域(Extremal Regions
)を求める•
面積の変化が最も緩やか(Maximally Stable
)な連結領域を 特徴領域とする 4.1.2 CSERCSER
はNeumann
らによって提案された手法である。基本 的な考え方は、適切なExtremal Regions
(ERs
)を画像の全コ ンポーネント木から選択する点でMSER
に似ている。しかし、CSER
では文字検出の分類学習を利用することで適切なERs
を 選択する点でMSER
と異なる。したがって、MSER
によって抽 出された安定した領域が必ずしも選択されるわけではない。CSER
ではグレイスケール画像を利用するが、本研究ではRGB
各要素[1]
とそれらを反転させた画像[2]
(計6
枚)を利用し、[1]
,[2]
の抽出結果をまとめ、計2
枚の抽出結果を取得した。なお、 グループ化する際には文字候補同士が80 %
以上重なっていれ ば、同一領域とみなした。 4.2 問題点CSER
を利用して文字領域の抽出を行った結果を図2(a)
に 示す。なお、青枠で囲んだ結果はグレイスケール画像をその ままCSER
で検出した領域で、黄色枠で囲んだ結果は、それ らのグレイスケールの画素値を反転させた画像から得られた 領域である。以降に記載する画像に関しても同様である。図2(a)
の “TALLE
” の文字はMSER
では検出されていたが、CSER
の 結果では抽出できなくなっている。 図2(a)
の抽出できなかった文字を切り取り拡大すると図2(b)
のような画像が得られた。図2(b)
より、黒字の上に光や 文字が書かれている材質の影響で白い部分が点のように見え る部分が存在する事が分かる。この部分が影響し、2
値化し た際に一つの領域としてとらえることができずに、CSER
で非 文字に分類されたと考えられる。 そこで、画像全体にメディアンフィルタを適用して輝度値 を平滑化することにより、CSER
で先ほど抽出できなかった領 域が抽出できた(図2(c)
)。しかし、メディアンフィルタで安 定した領域を作った分、CSER
後の文字抽出数が多くなってし まうという問題が出てきた。そこで、MSER
で抽出された領 域に対してのみメディアンフィルタを用いて平滑化すること 図1
:各段階の処理結果 注:(a)元画像、(b)全文字候補、(c)OCRスコア適用後、(d)類 似画像抽出、(e)文字列生成、(f)文字列統合 (a) (b) (c) (d) (e) (f)上野将義他:OCRスコアを利用した情景画像内の文字列抽出 により、画像全体ではなく部分的に平滑化を行い文字抽出数 の増加を抑制させた。 4.3 文字列候補の削減
CSER
を用いて抽出された文字候補では候補数が多いために 文字列の生成を困難にする。したがって、より信頼性の高い 文字候補のみを残すことで文字列の生成を容易にすることを 試みる。文字候補の削減はOCR
スコアと2
つの画像間のヒス トグラムを比較することで行う。 以下にその流れを示す。•
抽出した画像に対してOCR
スコアを計算する• OCR
スコアを閾値として、閾値以上の文字候補のみを抽出 する•
抽出された文字候補を基準として、水平方向に存在した閾 値以下の文字候補との類似度を計算する•
類似性があると判断されれば文字候補として抽出する 4.3.1 OCR スコアの利用 オープンソースのソフトウェアであるTesseract-OCR
を利 用した(Tesseract-OCR, 2015
)。また、事前の実験により同じ 画像でも特に画像サイズが大きい場合に認識精度が悪くなる ため、120
×80
のサイズに正規化を行った。また、正規化す るサイズより小さい画像は拡大することで逆に誤認識したた め、処理を行わなかった。そして、本来文字領域であっても 閾値未満となる可能性があるので、水平方向に存在した文字 候補とのヒストグラムの類似度を算出し、類似していれば文 字とした。また、全ての文字候補が閾値未満の場合は、画像 内から最低1
文字は抽出されるように、スコア値が最も高い 候補を抽出した。 4.3.1 類似画像の抽出 ヒストグラムの類似度の算出には、バタチャリヤ距離を用 いた。バタチャリヤ距離とは、二つの分布を独立事象とみな した時のそれらの同時確率に対する自己情報量として定義さ れる。OCR
スコアが閾値以上であった文字候補と水平方向に 存在する文字候補との垂直方向の割合r
を求め、そのr
に応じ てヒストグラムの類似度s
の閾値(α1
~α4
)を変更し、以下 の条件を満たせば文字候補とした。• r ≥ 0.9
かつs < α1
• 0.7 ≤ r < 0.9
かつs ≤
α2
• 0.6 ≤ r < 0.7
かつs ≤
α3
• 0.5 ≤ r < 0.6
かつs ≤
α4
また、α1
からα4
になるにしたがって閾値の値は小さく設定 した。 4.4 文字列の抽出 4.4.1 文字列の作成 本研究では、英数字文字のみを対象としているため、文字 列は水平方向に存在する。また、同一文字列内の背景色bc
ま たは文字色cc
は同色であると考えられる。したがって、ある 文字候補から水平方向の文字候補を探索し、見つかった文字 候補の背景色または文字色が類似していれば同一文字列とし た。k
平均法(k = 2
)を利用し、あらかじめ抽出候補の画素値 を取得し、それぞれの重心と比較することで背景色と文字色 を決定した。k
平均法では初期値設定によって異なる結果が 得られることがわかっているが、本研究ではk-means++
法を 利用した(Arthur, 2007
)。なお、文字色と背景色を算出した際 に重心の距離を算出し、ほぼ一致する文字候補に関しては同 一の文字候補であると判断し、候補から削除した。文字列の 作成条件を以下に示す。(β1
~β4
)は閾値である。文字列の 作成では、あらかじめ水平方向の文字との垂直方向の重なり 具合(割合r
)を求め、それを基に以下の条件を適用した。また、 文字列内に文字が2
文字存在する場合は、以下の条件に加え 文字同士の距離を計算し、文字の高さより小さければ文字列 とした。• r ≥ 0.9
かつbc < β1
• 0.5 ≤ r <0.6
かつbc < β2
• 0.5 ≤ r <0.6
かつcc ≤ β3
かつbc ≤
β3
• 0.5 ≤ r <0.6
かつcc ≤ β4
かつbc ≤
β4
β4
になるにしたがって値は小さくなるように設定した。これ は文字候補が多くなった場合に、縦方向の重なる割合が低く なると選択される文字候補も多くなり、誤ってグループ化す ることを防ぐためである。 4.4.2 文字列の統合または削除 文字列として作成した文字列内にさらに文字列が作成され ていたり、文字列内に文字が抽出されたりする。これはA
やR
などの文字ではA
の中にある三角の領域や、R
の中にあるD
のように見える領域が抽出されるためである。そこで、重なっ ている文字列または文字を統合または削除するようにした。 以下にその処理の流れ、統合条件を示す。ある文字列T
の高さ、 幅をそれぞれheight (T)
、width (T)
と考える。•
文字列A
と重なっている文字列B
のA
における位置を計算 する• A
を3
等分したときの中間にB
が存在(または共有)しない 場合、B
は独立しているとみなす• B
がA
の中間を共有する場合、B
を削除またはA
とB
を統 (a) (b) (c) 図2
:メディアンフィルタによる平滑化 注:(a)メディアンフィルタ不使用、(b)拡大画像、(c)メディア ンフィルタ使用の拡大する長さを計算し、
A
に存在する文字3
個分の長 さ以下ならば統合、そうでなければB
を削除– height
(B
)≥ height
(A
)の場合は統合– B
がA
の領域の中に完全に存在する場合はB
を削除 4.4.3 単一文字の抽出または削除 文字列を生成しなかった文字候補は単一文字と考えること ができる。しかし、それらをすべて残した場合、非文字が文 字として抽出される(特に文字の場合誤認識)ことが多かっ た。したがって、今回は数字と認識された文字候補のみを単 一文字として抽出した。 5. 実験 本研究では、OpenCV3.0
(OpenCV, 2015
)を利用した。また、CPU
がCore i5 1.80 GHz
のPC
を用いた。 5.1 評価方法 データセット内に正解領域の座標を示したファイルが存在 する。正解データでは単語ごとに文字領域が記されており、 図示すると図3(a)
のようになる。しかし、本手法で対象とす る領域は単語ごとではなく、同一直線上にある場合は1
つの 領域として抽出を行うため、図3(b)
のように正解データの修 正を行った。評価方法には、再現率、適合率、F
値を用いた。•
再現率(Recall
) 画像中の正解データの領域を画素数A
、抽出した領域でか つ正しい領域の画素数をB
とすると、以下の式で定義され る。Recall = A / B
•
適合率(Precision
) 本実験で抽出した文字列領域の画素数をC
とすると、以下 の式で定義される。Precision = B / C
• F
値 再現率と適合率の調和平均であり、再現率をR
、適合率をP
とすると、以下の式で定義される。F-Measure = 2
RP / (R + P)
5.2 実験結果 評価結果を表1
に示す。表中のYun et al.
(2014
)の結果は、 本研究と同じ評価方法で行ったものである。その他の手法 (Pan et al., 2011; Lee et al., 2011; Epshtein et al., 2010
)の結果は 単語ごとの抽出精度に関するものであるが、再現率に関して はほぼ変化がないと考えられるため、その結果から有効性を 確認できる。 6. 考察 6.1 背景と文字が同色の画像 図5
は文字色が背景色と同色のため、文字領域を抽出でき なかった例である。MSER
を利用しても文字色と背景色が同 じ場合は閾値によって2
値化した場合に同じタイミングで変 化するため抽出ができないと考えられる。 図3
:正解データの修正 注:(a)修正前、(b)修正後 (a) (b) 表1
:実験結果Recall(%) Precision(%) F-measure(%)
Proposed method 75.8 73.4 74.6 Yin et al., 2014 69.5 77.1 73.1 Pan et al., 2011 68.0 67.0 67.0 Lee et al., 2011 66.0 75.0 70.0 Epshtein et al. 2010 73.0 60.0 66.0 図
4
:文字抽出結果 図5
:背景と文字が同色の場合上野将義他:OCRスコアを利用した情景画像内の文字列抽出 6.2 文字削減の際に誤って文字を削除した画像 図
6(c)
は、ヒストグラムの類似度を比較したときに誤って 削除した例である。左から抽出した全文字候補、OCR
スコア で文字削減を行った後、ヒストグラムの比較後の画像である。OCR
スコアで文字削減を行った際に、本来文字領域である候 補のスコアが低かったため誤削除が生じている。図6(b)
では、 抽出した全文字候補のスコアが閾値より低かったため、スコ アが最も高い文字が1
個抽出されている。しかし、1
個の場合、 今回のように文字以外の候補を選択する可能性が高くなるた め、適切な個数を抽出するための改善が必要である。 6.3 適合率に関して 本研究では、OCR
スコアを利用したため、ある程度文字候 補が多くても非文字列を抽出した数を減らすことができた。 しかし、画像によっては図7
のように特に窓やレンガなどの 規則性のある個所を文字列と誤判別して抽出してしまうた め、文字部分は正しく抽出できているが、適合率が著しく悪 くなる画像が存在した。したがって、抽出した文字列が実際 に文字列かどうかを判定する処理を加える必要がある。 6.4 単一文字の抽出 本研究では、OCR
スコアを利用したため、文字列のみを対 象としていた従来手法では対象外となっていた単一文字の抽 出を行うことができた。今回は適合率の関係から数字に限定 して抽出を行ったため、本来英字で抽出ができていた文字を 棄却した画像が数枚あった。したがって、今後は数字のみで はなく英字を抽出できるように工夫する必要がある。 6.5 同一文字の要素が離れている画像MSER
やCSER
では、文字が連結している場合は1
つの領域 として抽出が可能であるため、英数字に対しての文字抽出は 有効であるが、平仮名の「い」や「う」のように離れている場合 には有効ではないと考えられる。本研究では英数字を対象と しているが、図9
のように英字でも要素が離れている画像が 存在した。しかし、本手法ではOCR
スコアを利用して抽出し た文字候補から水平方向に類似したヒストグラムを持つ候補 を文字候補として採用することができるため、図9(d)
に示す ように、文字の構成要素が離れていても抽出が可能である。 7. まとめ 現在、カメラ付き携帯端末の普及に伴い利用者は様々な画 像を撮影することが可能である。文書画像内の文字を認識す ることは可能であるが、情景画像内の文字を認識することは、 背景の複雑さや外乱の影響を受けるため、一般的に困難であ る。本研究では、同一文字のピクセルは類似した特性を持つ ことから連結成分ベース処理を利用した。また、MSER
をベー スとした手法であるCSER
を利用した後、文字候補の削減を 目的にOCR
スコアを利用した手法を提案した。その結果、文 字列に対しての抽出精度はF
値で74.6 %
の結果が得られた。 またOCR
スコアを利用することで、今回は数字のみに限定し たが、単一文字に対しての抽出も可能になった。今後は図6
図6
:文字候補の誤削除の例 注:(a)文字候補、(b)OCRスコア適用後、(c)ヒストグラム比 較後 (a) (b) (c) 図7
:適合率が悪くなる画像の例 図8
:単一文字の抽出例 (a) (b) (c) (d) 図9
:非連結文字抽出の成功例 注:(a)全文字候補、(b)OCRスコア適用後、(c)類似画像検出後、 (d)文字抽出後引用文献