【国等の委託研究の成果に係る記載事項】(出願人による申告)平成28年度、総務省、グローバルコミュニケーション計画の推進 −多言語音声翻訳技術の研究開発及び社会実証− 1.多言語音声翻訳技術の研究開発の委託事業、産業技術力強化法第19条の適用を受ける特許出願
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0012】
以下、適宜図面を参照しながら、本発明に係る文字認識システム、文字認識方法、文字認識サーバ及び文字認識端末を具体的に開示した各実施の形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になるのを避け、当業者の理解を容易にするためである。なお、添付図面及び以下の説明は、当業者が本開示を十分に理解するために提供されるのであって、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
【0013】
(実施の形態1)
実施の形態1の文字認識システムでは、文字認識サーバは、ユーザが使用するスマートフォン10により撮像された撮像画像に含まれる文字の認識処理を行うために必要となる二値画像を生成するため、予め規定の実行順序に従った二値画像生成処理(
図8参照)を実行する。また、以下の説明において、二値画像生成処理を「二値化処理」と略記する場合もある。
【0014】
図1は、実施の形態1の文字認識システム1000を構成するスマートフォン10、文字認識サーバ20、翻訳サーバ30の内部構成の一例を詳細に示すブロック図である。
【0015】
ユーザ端末の一例としてのスマートフォン10は、ユーザ(つまり、実施の形態1の文字認識システム1000の利用者であって、例えば外国人訪問者)により所持され、ネットワークNWを介して、文字認識サーバ20や翻訳サーバ30との間で通信可能に接続される。スマートフォン10は、例えばユーザの操作に応じて、文字を有する被写体(例えば背景画像に対して文字が重畳された内容を映し出す情報案内板)を撮像し、被写体の撮像画像を含む認識要求(つまり、文字認識要求)を文字認識サーバ20に送信する。また、スマートフォン10は、例えばユーザの操作に応じて、文字認識処理結果(後述参照)を含む翻訳要求(つまり、文字認識処理結果である文字の翻訳要求)を翻訳サーバ30に送信する。
【0016】
なお、以下の説明では、ユーザ端末の一例としてスマートフォン10を例示しているが、ユーザ端末はスマートフォン10に限定されず、携帯可能であってカメラ機能及びデータ通信機能を備える通信機器であればよい。例えば、ユーザ端末は、携帯電話機、タブレット端末、PDA(Personal Digital Assistant)、携帯可能なノート型PC(Personal Computer)でも構わない。
【0017】
ネットワークNWは、例えば無線LAN(Local Area Network)を用いて構成されるネットワークであり、スマートフォン10と文字認識サーバ20との間、並びにスマートフォン10と翻訳サーバ30との間の無線通信が可能であれば、その無線通信方式は問わない。また、ネットワークNWは、有線を用いて構成されるネットワークでもよく、例えばLAN(Local Area Network)通信ネットワークであってもよい。
【0018】
文字認識サーバ20は、スマートフォン10から送信された認識要求に従って、その認識要求に含まれる撮像画像を用いて、撮像画像に含まれる文字の二値画像を生成するための二値化処理(後述参照)を実行する。文字認識サーバ20は、二値化処理が成功した場合に、二値化処理により得た文字の二値画像を文字認識処理し、その文字認識処理結果をスマートフォン10に送信する。
【0019】
翻訳サーバ30は、翻訳用辞書の一例としての辞書DB34を有し、スマートフォン10から送信された翻訳要求に従って、辞書DB34を用いて、その翻訳要求に含まれる文字認識処理結果(つまり、文字)を翻訳処理し、その翻訳処理結果をスマートフォン10に送信する。
【0020】
次に、それぞれの内部構成について詳細に説明する。
【0021】
スマートフォン10は、撮像部11と、プロセッサ12と、通信I/F13と、メモリ14と、操作部15と、ディスプレイ16とを含む構成である。
【0022】
撮像部11は、例えばレンズとイメージセンサと信号処理部とを用いて構成される。レンズは、スマートフォン10から入射した光をイメージセンサにおいて撮像可能に結像させる。イメージセンサは、例えばCCD(Charge Coupled Device)又はCMOS(Complementary Metal Oxide Semiconductor)を用いて構成される。イメージセンサは、レンズを介して結像された光を光電変換することにより撮像し、撮像により得られた光学像の電気信号を信号処理部に出力する。信号処理部は、イメージセンサの出力(つまり、光学像の電気信号)を用いて既存の画像処理を施すことにより、所定の形式(例えばH.264)を満たす映像を構成するRGB画像又はYUV画像を生成する。撮像部11は、上述したレンズ、イメージセンサ及び信号処理部を用いて、ユーザが注目した被写体を撮影(撮像)してその撮像により得られた撮像画像をプロセッサ12に出力する。
【0023】
プロセッサ12は、例えばCPU(Central Processing Unit)、MPU(Micro Processing Unit)又はDSP(Digital Signal Processor)を用いて構成される。プロセッサ12は、スマートフォン10の各部の動作を統括して制御するための信号処理、他の各部との間のデータの入出力処理、データの演算処理及びデータの記憶処理を行う。プロセッサ12は、例えば撮像部11により撮像された被写体の撮像画像を含むUI(User Interface)画面をディスプレイ16に表示する(
図10参照)。
図10に示すUI画面の詳細については後述する。
【0024】
通信部の一例としての通信I/F13は、文字認識サーバ20又は翻訳サーバ30との間で、例えば所定の無線通信方式(無線LAN、例えばWifi(登録商標))を用いた情報やデータの送受信を行う。また、通信I/F13は、文字認識サーバ20又は翻訳サーバ30との間で、例えば所定の有線通信方式(例えば有線LAN通信)を用いた情報やデータの送受信を行ってもよい。
【0025】
メモリ14は、プロセッサ12の動作(処理)時のワークメモリとして動作するRAM(Random Access Memory)と、プロセッサ12を動作させるためのプログラム及びデータ(例えば各種のアプリケーション)を記憶するROM(Read Only Memory)とを含む。また、メモリ14は、スマートフォン10の電源がオフされた場合でも、例えばプロセッサ12により生成されたデータを記憶、保持するための半導体メモリ(例えばフラッシュメモリ)を含む。
【0026】
操作部15は、ディスプレイ16に表示された各種の画面(例えば
図10に示すUI画面)上に対するユーザの操作(例えばタッチ、タップ)を受け付ける。操作部15は、ユーザの操作に応じて、例えばUI画面に表示されている撮像画像に含まれる文字の認識処理の実行指示、又はその文字の文字認識処理結果(テキスト)の翻訳処理の実行指示を検知してプロセッサ12に出力する。
【0027】
表示部の一例としてのディスプレイ16は、例えばLCD(Liquid Crystal Display)又は有機EL(Electroluminescence)を用いて構成され、ユーザの操作に応じて、スマートフォン10において実行可能にインストールされている各種のアプリケーションの画面(例えば
図10に示すUI画面)を表示する。なお、スマートフォン10において、操作部15及びディスプレイ16においてタッチパネルTPが構成されてよい。
【0028】
文字認識サーバ20は、プロセッサ21と、通信I/F22と、メモリ23とを含む構成である。
【0029】
プロセッサ21は、例えばCPU、MPU又はDSPを用いて構成される。プロセッサ21は、文字認識サーバ20の各部の動作を統括して制御するための信号処理、他の各部との間のデータの入出力処理、データの演算処理及びデータの記憶処理を行う。プロセッサ21は、二値化処理部211と文字認識処理部212とを少なくとも有する。二値化処理部211の詳細については
図2を参照して後述する。
【0030】
二値化処理部211は、スマートフォン10から送信された認識要求に従って、その認識要求に含まれる撮像画像のデータを用いて、撮像画像のデータに含まれる文字の部分を有する二値画像(つまり、白黒画像)を生成するための二値化処理(後述参照)を実行する。二値化処理部211は、二値化処理により得た二値画像のデータを文字認識処理部212に渡す。
【0031】
文字認識部の一例としての文字認識処理部212は、二値化処理部211により生成された二値画像のデータ(つまり、イメージ形式のデータ)とメモリ23に保持される文字認識用辞書(不図示)とを用いて、その二値画像に含まれる文字の部分を切り出して文字認識処理する。文字認識処理部212の処理方法は公知技術であり、その処理方法は特に限定されず、詳細な説明は省略する。通信I/F22は、文字認識処理部212における文字認識処理結果(つまり、テキスト形式のデータ)を取得してスマートフォン10に送信する。
【0032】
通信部の一例としての通信I/F22は、スマートフォン10との間で、例えば所定の無線通信方式(無線LAN、例えばWifi(登録商標))を用いた情報やデータの送受信を行う。また、通信I/F22は、スマートフォン10との間で、例えば所定の有線通信方式(例えば有線LAN通信)を用いた情報やデータの送受信を行ってもよい。
【0033】
メモリ23は、プロセッサ21の動作(処理)時のワークメモリとして動作するRAMと、プロセッサ21を動作させるためのプログラム及びデータ(例えば各種のアプリケーション)を記憶するROMとを含む。また、メモリ23は、文字認識サーバ20の電源がオフされた場合でも、例えばプロセッサ21により生成されたデータを記憶、保持するための半導体メモリ(例えばフラッシュメモリ)を含む。また、メモリ23は、文字認識処理部212における文字認識処理の際に使用される文字認識用辞書(不図示)を保持する。
【0034】
翻訳サーバ30は、プロセッサ31と、通信I/F32と、メモリ33と、辞書DB(Database)34を含む構成である。
【0035】
プロセッサ31は、例えばCPU、MPU又はDSPを用いて構成される。プロセッサ31は、翻訳サーバ30の各部の動作を統括して制御するための信号処理、他の各部との間のデータの入出力処理、データの演算処理及びデータの記憶処理を行う。プロセッサ31は、翻訳処理部311を少なくとも有する。
【0036】
翻訳処理部311は、スマートフォン10から送信された翻訳要求に従って、その翻訳要求に含まれる文字認識処理結果(つまり、テキスト形式のデータ)と辞書DB34とを用いて、文字認識処理結果の翻訳処理を実行する。例えばどの言語に翻訳するかという情報が翻訳要求に含まれている場合、翻訳処理部311は、その情報に基づいて、文字認識処理結果を該当する言語(例えば英語、ドイツ語、フランス語など)に翻訳処理する。上述したどの言語に翻訳するかという情報は、例えばスマートフォン10を使用するユーザの母国語に対応して設定されることが好ましく、スマートフォン10は、自端末の使用言語として設定された言語の情報を、どの言語に翻訳するうかという情報として翻訳要求に含めて生成する。
【0037】
通信部の一例としての通信I/F32は、スマートフォン10との間で、例えば所定の無線通信方式(無線LAN、例えばWifi(登録商標))を用いた情報やデータの送受信を行う。また、通信I/F32は、スマートフォン10との間で、例えば所定の有線通信方式(例えば有線LAN通信)を用いた情報やデータの送受信を行ってもよい。
【0038】
メモリ33は、プロセッサ31の動作(処理)時のワークメモリとして動作するRAMと、プロセッサ31を動作させるためのプログラム及びデータ(例えば各種のアプリケーション)を記憶するROMとを含む。また、メモリ33は、翻訳サーバ30の電源がオフされた場合でも、例えばプロセッサ31により生成されたデータを記憶、保持するための半導体メモリ(例えばフラッシュメモリ)を含む。
【0039】
翻訳用辞書の一例としての辞書DB34は、翻訳処理部311における翻訳処理の際に参照される翻訳用辞書データベースである。
【0040】
図2は、実施の形態1の文字認識サーバ20の二値化処理部211の内部構成の一例を詳細に示すブロック図である。
【0041】
二値化処理部211は、通信I/F22から渡された撮像画像のデータを用いて、撮像画像のデータに含まれる文字の部分を有する二値画像(つまり、白黒画像)を生成するための二値化処理を実行する。二値化処理部211は、二値化制御部2111と、MSER二値化処理部2112と、コントラスト調整部2113と、バイラテラルフィルタ部2114と、ブラックハット変換処理部2115、閾値決定部2116とを含む構成である。
【0042】
二値化制御部2111は、二値化処理部211における二値化処理の制御に関する各種の動作を実行する。二値化制御部2111は、通信I/F22から渡された撮像画像のデータを、MSER二値化処理部2112、コントラスト調整部2113、閾値決定部2116、及びバイラテラルフィルタ部2115にそれぞれ渡す。
【0043】
第1の二値化処理部の一例としてのMSER二値化処理部2112は、スマートフォン10により撮像された撮像画像に含まれる文字の二値画像を生成するための第1の二値化処理の一例として、局所安定領域(MSER:Maximally Stable Extremal region)に基づく二値画像生成の処理を実行する。この二値画像生成の処理について、
図3を参照して説明する。
【0044】
図3は、局所安定領域に基づく二値画像生成処理の説明図である。
【0045】
図3の紙面中央第1段には、例えばグレースケール形式の撮像画像IMG1が示されている。撮像画像の背景領域(つまり、背景画像の領域)では画素値(例えば輝度値。以下同様。)がまばらになり、撮像画像に含まれる文字領域(つまり、文字部分の領域)では画素値がほぼ等しくなるという性質がある。MSER二値化処理部2112は、この性質を利用し、撮像画像IMG1を構成するラインLn1を矢印YJ1の方向にシフトさせながら、それぞれのラインLn1毎に、閾値(つまり、白又は黒のいずれと決定するかを定義付けるための閾値。以下同様。)を例えば0〜255まで上げた時の画素値(輝度値)の分布に対応した二値画像を生成する。二値画像では、閾値以下だと黒と表され、閾値より大きいと白と表される。
【0046】
つまり、上述した性質を利用すると、ある範囲で閾値を変化させたとき、撮像画像内に含まれる文字領域の面積はほぼ変化なく(言い換えると、文字領域の面積変化量は小さく)、一方、背景領域の面積は変化が大きい(言い換えると、背景領域の面積変化量は大きい)。そこで、MSER二値化処理部2112は、閾値を±Δ(例えば
図3の分布Cv1の窪み部分の深さの半分程度の値)の範囲にシフトさせた上で生成した二値画像の中で、連結成分(つまり、黒部分である文字部分)の面積変化量が既定値以下である連結部分を文字成分として抽出する事で、二値画像を生成する。
【0047】
図3の紙面左第2段には、閾値Th1(つまり80)とした場合の、撮像画像IMG1のラインLn1における画素値(輝度値)の分布Cv1が示されている。
図3の紙面左第3段には、閾値Th1(つまり80)とした場合の、MSER二値化処理部2112により生成された二値画像IMGa1が示されている。
【0048】
図3の紙面中央第2段には、閾値Th2(つまり110)とした場合の、撮像画像IMG1のラインLn1における画素値(輝度値)の分布Cv2が示されている。
図3の紙面中央第3段には、閾値Th2(つまり110)とした場合の、MSER二値化処理部2112により生成された二値画像IMGa2が示されている。閾値が80より大きい110の場合には、撮像画像IMG1内の背景部分が黒画素(つまり、閾値未満の画素)となり、細かいノイズが発生している。また、撮像画像IMG1の文字領域「い」の中で、文字領域の輝度値はほぼ同じであるため、閾値が例えば80から110に多少変わってもほぼ同じ形状が得られ、文字領域の面積の変化量が小さい(具体的には、上述した既定値より小さい)。
【0049】
図3の紙面右第2段には、閾値Th3(つまり140)とした場合の、撮像画像IMG1のラインLn1における画素値(輝度値)の分布Cv3が示されている。
図3の紙面右第3段には、閾値Th3(つまり140)とした場合の、MSER二値化処理部2112により生成された二値画像IMGa3が示されている。閾値が110より大きい140の場合には、粗いノイズが増加し、撮像画像IMG1内の黒画素(つまり、閾値未満の画素)が更に増えている。また、撮像画像IMG1の文字領域「い」の中で、背景領域の輝度値はまばらであるため、閾値が例えば110から140に変わると、連結部分が急激に拡大し、文字領域の面積の変化量が大きい(具体的には、上述した既定値より大きい)。
【0050】
コントラスト調整部2113は、二値化制御部2111から渡された撮像画像のデータを用いて、その撮像画像におけるコントラストを増加するように調整し、コントラスト調整済みの撮像画像のデータを、二値化制御部2111を介してMSER二値化処理部2112に渡す。
【0051】
第2の二値化処理部の一例としてのバイラテラルフィルタ部2114は、スマートフォン10により撮像された撮像画像に含まれる文字の二値画像を生成するための第2の二値化処理の一例として、予め設定された既定値としてのパラメータ(具体的には、カーネルサイズk、距離σ、色σ)を用いて、バイラテラルフィルタ処理を施す。具体的には、バイラテラルフィルタ部2114は、上述したパラメータを用いて、撮像画像内のある注目画素f(p)を中心としたカーネルサイズk×kの部分領域R(p)に応じて、部分領域R(p)内の参照画素f(q)をシフトさせながら、参照画素f(q)と注目画素f(p)との距離及び色差に応じた画素値g(p)を算出する。バイラテラルフィルタ部2114は、算出により得た画素値g(p)を有する撮像画像のデータを、二値化制御部2111を介してブラックハット変換処理部2115に渡す。pは撮像画像上の一点を指す2次元座標ベクトルを指す。
【0052】
具体的には、バイラテラルフィルタ部2114は、部分領域R(p)内の各画素(つまり、参照画素)の画素値f(q)に、「空間的距離についての重み係数w
s」と「色差についての重み係数w
c」を積算し、その積算結果を部分領域について総和を算出する(数式(1),数式(2)参照)。
【0053】
数式(1),数式(2)において、w
sは、分散(距離σ)
2となる2次元ガウス分布に応じた係数(つまり、距離σに応じたバイラテラルフィルタ部2114による画素毎の算出値)であり、注目画素から参照画素までの距離が遠い程、小さくなる。w
cは、分散(色σ)
2となる1次元ガウス分布に応じた係数(つまり、色σに応じたバイラテラルフィルタ部2114による算出値)であり、注目画素と参照画素との色差が大きい程、小さくなる。これにより、バイラテラルフィルタ部2114は、撮像画像の部分領域R(p)内の注目画素から距離が遠い又は色差が大きい画素との画素値の差を上げ(つまり、目立たせた)画像を生成でき、更に、距離が近い又は色差が小さい画素との画素値の差を小さくした(つまり、ぼかした)画像を生成できる。このバイラテラルフィルタ処理について、
図4を参照して説明する。
【0056】
図4は、バイラテラルフィルタ処理の説明図である。
【0057】
図4の紙面左側には、撮像画像IMG1が示され、更に、撮像画像IMG1内に部分領域R(p)とその部分領域R(p)の注目画素f(p)とが示されている。
図4の説明では、バイラテラルフィルタ部2114のパラメータとして、例えばカーネルサイズk=5、距離σ=1、色σ=1である。従って、
図4の部分領域R(p)は、カーネルサイズ5×5の画素を有し、注目画素f(p)を5×5の画素の中心画素としている。
【0058】
例えば
図4の紙面中央の第1段に示すように、参照画素f(q)が注目画素f(p)から最も離れており、かつ、注目画素f(p)が藍色かつ参照画素f(q)が灰色である場合には、参照画素f(q)に対応した係数w
s=0となり、更に、色差(|f(p)−f(q)|)は大きくなるので係数w
cは矢印Y1の示す色差(|f(p)−f(q)|)に対応した値(つまり、とても小さい値)となる。
【0059】
例えば
図4の紙面中央の第2段に示すように、参照画素f(q)が注目画素f(p)に少し近い位置にあり、かつ、注目画素f(p)が藍色かつ参照画素f(q)が薄い灰色である場合には、参照画素f(q)に対応した係数w
s=0.013となり、更に、色差(|f(p)−f(q)|)は少し大きくなるので係数w
cは矢印Y2の示す色差(|f(p)−f(q)|)に対応した値(つまり、少し小さい値)となる。
【0060】
例えば
図4の紙面中央の第3段に示すように、参照画素f(q)が注目画素f(p)に更に近い位置にあり、かつ、注目画素f(p)が藍色かつ参照画素f(q)が藍色である場合には、参照画素f(q)に対応した係数w
s=0.022となり、更に、色差(|f(p)−f(q)|)はほぼ無いので係数w
cは矢印Y3の示す色差(|f(p)−f(q)|)に対応した値(つまり、とても大きい値)となる。
【0061】
第2の二値化処理部の一例としてのブラックハット変換処理部2115は、スマートフォン10により撮像された撮像画像に含まれる文字の二値画像を生成するための第2の二値化処理の一例として、バイラテラルフィルタ部2114により生成された撮像画像(つまり、バイラテラルフィルタ処理された撮像画像)を入力画像として取得する。ブラックハット変換処理部2115は、その入力画像のデータを用いて、その入力画像にクロージング処理を施し、かつ、入力画像の各画素値からクロージング処理済みの撮像画像の各画素値を差し引いた画素値からなる画像を生成して出力する。
【0062】
ブラックハット変換処理部2115は、クロージング処理として具体的には、入力画像のデータに対してディレーション処理を施し、かつその出力(つまり、ディレーション処理済みの撮像画像のデータ)に対してエロージョン処理を施す。
【0063】
ディレーション処理は、入力画像における注目画素を中心としたカーネルサイズkを直径とする円領域を構成する各画素の画素値の最大値を用いて注目画素の画素値に割り当てる処理である。ディレーション処理は、入力画像における全ての画素に対して実行される。
【0064】
エロージョン処理は、入力画像における注目画素を中心としたカーネルサイズkを直径とする円領域を構成する各画素の画素値の最小値を用いて注目画素の画素値に割り当てる処理である。エロージョン処理は、入力画像における全ての画素に対して実行される。このブラックハット変換処理について、
図5を参照して説明する。
【0065】
図5は、ブラックハット変換処理の説明図である。
【0066】
図5の紙面左上側には、例えばグレースケール形式の撮像画像IMG2が示されている。この撮像画像IMG2は、例えばバイラテラルフィルタ部2114によりバイラテラルフィルタ処理が施された画像である。ブラックハット変換処理部2115は、撮像画像IMG2を構成するラインLn1を矢印YJ1の方向にシフトさせながら、カーネルサイズkの円領域の画素値を用いて、それぞれのラインLn1毎の画素値の分布Cv1fにクロージング処理を施す。
【0067】
つまり、ブラックハット変換処理部2115は、分布Cv1fにディレーション処理を施したラインLn1毎の画素値の分布Cv1fdを生成する。これにより、入力画像IMG2のラインLn1における文字領域「い」の部分の画素値の低下部分(窪み部分)は、ディレーション処理によってカーネルサイズk(つまり、直径k)の円領域の中の最大画素値に割り当てられ、低下部分がほぼ無くなった形状の分布が得られる。
【0068】
更に、ブラックハット変換処理部2115は、同じラインLn1毎の画素値の分布Cv1fdにエロージョン処理を施したラインLn1毎の画素値の分布Cv1fdeを生成する。これにより、入力画像IMG2のラインLn1におけるディレーション処理結果に対応する画素値の分布は、エロージョン処理によってカーネルサイズk(つまり、直径k)の円領域の中の最小画素値に割り当てられ、ディレーション処理によって画素値の分布全体が多少低下した形状の分布が得られる。
【0069】
更に、ブラックハット変換処理部2115は、入力画像の各画素値からクロージング処理済みの撮像画像の各画素値を差し引いた(つまり、差分をとった)各画素値からなる画像を、ブラックハット変換処理済みの撮像画像として生成し、二値化制御部2111に渡す。二値化制御部2111は、ブラックハット変換処理部2115から渡された撮像画像のデータに対し、白黒反転処理した画像(例えば分布Cv1frv参照)を白黒反転画像として生成し、閾値決定部2116に渡す。分布Cv1frvは、撮像画像IMG2のラインLn1に対応して生成された出力画像の同じラインLn1の画素値の分布を示す。これにより、ブラックハット変換処理部2115は、撮像画像IMG2に含まれる文字部分以外の背景領域をクロージング処理結果として生成でき、撮像画像IMG2に含まれる文字部分を一層目立たせる画像を生成できる。
【0070】
閾値決定部2116は、二値化制御部2111から渡された白黒反転画像のデータを入力画像として取得する。閾値決定部2116は、その入力画像のデータを用いて、入力画像を例えばN×N(N:例えば2のべき乗)のブロックに分割し、ブロック単位で、公知技術である判別分析法(いわゆる、大津の手法)により、ブロックにおける閾値(つまり、白又は黒のいずれと決定するかを定義付けるための閾値)を算出する。つまり、閾値決定部2116は、入力画像のデータと公知技術である判別分析法(いわゆる、大津の手法)とを用いて、例えばN×N個のブロックにおけるそれぞれの閾値を算出する。なお、公知技術である判別分析法(いわゆる、大津の手法)の内容の説明は省略する。
【0071】
閾値決定部2116は、例えばN×Nのブロック毎に、算出により得たブロックにおける閾値より小さい(つまり、黒クラスの)画素値(輝度値)の平均値m
b、画素の数ω
b、閾値より大きい(つまり、白クラスの)画素値(輝度値)の平均値m
w、画素の数ω
wとし、ブロックにおける閾値の分散σ
bw2を算出する。つまり、閾値決定部2116は、画素値(輝度値)の平均値のバラツキ具合(言い換えると、ブロックにおける閾値の適格性)を見分けるために分散を算出する。
【0072】
図6は、撮像画像を構成するブロックにおける閾値の説明図である。
図7は、ブロックを構成するそれぞれの画素における閾値の説明図である。
【0073】
図6及び
図7には、それぞれ二値化制御部2111から閾値決定部2116に渡された入力画像IMG3が示され、例えばN×N個のブロックBLKに分割された様子が示されている。閾値決定部2116は、算出したブロックBLK1の分散σ
bw2がσ
ε(σ
ε:正の既定値。以下同様。)を超えると判断した場合に、そのブロックBKL1における閾値は有効である(言い換えると、適格である)とみなし、その閾値を用いると判断する。一方、閾値決定部2116は、算出したブロックBLK2の分散σ
bw2がσ
ε以下であると判断した場合に、そのブロックBKL2における閾値は無効である(言い換えると、適格でない)とみなし、ブロックBLK2の周囲のブロックにおける有効な閾値の平均値で置き換えて用いると判断する。
【0074】
また、第2の二値化処理部の一例としての閾値決定部2116は、スマートフォン10により撮像された撮像画像に含まれる文字の二値画像を生成するための第2の二値化処理の一例として、全てのブロック(例えばN×N個のブロック)における閾値を算出した後、ブロックを構成する複数のそれぞれの画素(ピクセル)における閾値を算出する。具体的には、閾値決定部2116は、
図7に示すそれぞれのブロックにおける閾値を、そのブロックの中心画素CPEにおける閾値として求め、更に、中心画素CPEではない他の画素における閾値Th
BLKtgについては、その画素の周囲のブロック(例えば
図7に示す4個のブロックBLK3,BLK4,BLK5,BLK6)におけるそれぞれの閾値Th
BLK3gs,Th
BLK4gs,Th
BLK5gs,Th
BLK6gs,を用いた線形補間によって算出する。閾値決定部2116は、ブロックを構成する複数のそれぞれの画素(ピクセル)毎の閾値の算出結果を二値化制御部2111に渡す。
【0075】
これにより、二値化制御部2111は、スマートフォン10により撮像された撮像画像に含まれる文字の二値画像を生成するための第2の二値化処理の一例として、閾値決定部2116により算出された、ブロックを構成する複数のそれぞれの画素(ピクセル)における閾値とそれぞれの画素(ピクセル)の画素値(輝度値)とを比較し、画素値が閾値より大きければその画素を白画素として生成し、一方、画素値が閾値より小さければその画素を黒画素として生成する事で、二値画像を生成できる。二値化制御部2111は、二値画像を文字認識処理部212に渡す。
【0076】
次に、実施の形態1における文字認識サーバ20における二値化処理の全体的な動作手順について、
図8を参照して説明する。
【0077】
図8は、実施の形態1の文字認識サーバ20における二値化処理の全体的な動作手順の一例を詳細に示すフローチャートである。
【0078】
図8に示すそれぞれの処理は、文字認識サーバ20のプロセッサ21により実行される。また、
図8の説明の前提として、スマートフォン10により撮像された被写体の撮像画像を含む認識要求が文字認識サーバ20に送信されて、文字認識サーバ20はその認識要求を受信したとする。
【0079】
図8において、プロセッサ21は、スマートフォン10から送信された認識要求に従って、その認識要求に含まれる撮像画像のデータを用いて、スマートフォン10により撮像された撮像画像に含まれる文字の二値画像を生成するための第1の二値化処理の一例として、局所安定領域(MSER)に基づく二値画像生成の処理(
図3参照)を実行する(S1)。プロセッサ21は、ステップS1の局所安定領域(MSER)に基づく二値画像生成の処理により生成された二値画像に含まれる白画素数を計数する(S2)。白画素数が撮像画像全体の画素数のK(K:既定値。以下同様。)%未満であると判断された場合(つまり、ステップS1の局所安定領域(MSER)に基づく二値画像生成処理が成功した場合)には(S3、YES)、文字認識サーバ20の処理負荷の増大が十分に抑制されつつ、ステップS1の二値画像生成処理結果で十分に文字認識可能であるとして、
図8に示す二値化処理は終了する。
【0080】
一方、プロセッサ21は、白画素数が撮像画像全体の画素数のK%以上であると判断した場合(つまり、ステップS1の局所安定領域(MSER)に基づく二値画像生成処理が失敗した場合)には(S3、NO)、ステップS1により生成した二値画像をメモリ23から破棄(削除)する(S4)。プロセッサ21は、スマートフォン10から送信された認識要求に含まれる撮像画像(例えばフルカラー形式)のデータのコントラストを増加するように調整する(S5)。プロセッサ21は、例えば二値化制御部2111において、コントラストの調整済みの撮像画像(例えばフルカラー形式)のデータからグレースケール形式の撮像画像のデータを生成する(S6)。
【0081】
プロセッサ21は、ステップS6により生成したグレースケール形式の撮像画像のデータを用いて、スマートフォン10により撮像された撮像画像に含まれる文字の二値画像を生成するための第1の二値化処理の一例として、局所安定領域(MSER)に基づく二値画像生成の処理を実行する(S7)。プロセッサ21は、ステップS7の局所安定領域(MSER)に基づく二値画像生成の処理により生成された二値画像に含まれる白画素数を計数する(S8)。白画素数が撮像画像全体の画素数のK%未満であると判断された場合(つまり、ステップS7の局所安定領域(MSER)に基づく二値画像生成処理が成功した場合)には(S9、YES)、文字認識サーバ20の処理負荷の増大が抑制されつつ、ステップS7の二値画像生成処理結果で十分に文字認識可能であるとして、
図8に示す二値化処理は終了する。
【0082】
一方、プロセッサ21は、白画素数が撮像画像全体の画素数のK%以上であると判断した場合(つまり、ステップS7の局所安定領域(MSER)に基づく二値画像生成処理が失敗した場合)には(S9、NO)、ステップS7により生成した二値画像をメモリ23から破棄する(S10)。プロセッサ21は、スマートフォン10により撮像された撮像画像に含まれる文字の二値画像を生成するための第2の二値化処理の一例として、輝度差補正二値化方法による二値画像生成処理を実行する(S11)。これにより、
図8に示すプロセッサ21の処理は終了する。
【0083】
なお、プロセッサ21は、ステップS11の後、輝度差補正二値化方法による二値画像生成処理が成功した場合に、輝度差補正二値化方法による二値画像生成処理により得た二値画像のデータ(つまり、イメージ形式のデータ)とメモリ23に保持される文字認識用辞書(不図示)とを用いて、その二値画像に含まれる文字の部分を切り出して文字認識処理する。
【0084】
次に、実施の形態1における文字認識サーバ20における輝度差補正二値化方法による二値画像生成処理の動作手順について、
図9を参照して説明する。
【0085】
図9は、
図8に示す輝度差補正二値化方法による二値画像生成処理の動作手順の一例を詳細に示すフローチャートである。
【0086】
図9に示すそれぞれの処理は、スマートフォン10により撮像された撮像画像に含まれる文字の二値画像を生成するための第2の二値化処理の一例として、文字認識サーバ20のプロセッサ21の二値化処理部211(
図2参照)により実行される。
【0087】
図9において、二値化処理部211は、例えばバイラテラルフィルタ部2114において、予め設定された既定値としてのパラメータ(具体的には、カーネルサイズk、距離σ、色σ)を用いて、バイラテラルフィルタ処理(
図4参照)を施す(S21)。二値化処理部211は、ステップS21のバイラテラルフィルタ処理により得た撮像画像のデータを用いて、グレースケール形式の撮像画像のデータを生成する(S22)。ステップS22の処理は、例えば
図2に示す二値化制御部2111により実行される。
【0088】
二値化処理部211は、例えばブラックハット変換処理部2115において、ステップS22により生成したグレースケール形式の撮像画像のデータを用いて、クロージング処理(
図5参照)を施し、クロージング処理済みの撮像画像を生成する(S23)。二値化処理部211は、ステップS22により生成したグレースケール形式の撮像画像とステップS23により生成したクロージング処理済みの撮像画像との差分画像をブラックハット変換処理済みの撮像画像として生成する(S24)。
【0089】
二値化処理部211は、ステップS24により生成した差分画像の各画素の白黒を反転した画像(白黒反転画像)を生成する(S25)。
【0090】
二値化処理部211は、ステップS25において生成した白黒反転画像のデータを用いて、例えばN×N(N:例えば2のべき乗)のブロックに分割するとともに、公知技術である判別分析法(いわゆる、大津の手法)により、ブロック領域毎に二値化用の閾値(つまり、白又は黒のいずれと決定するかを定義付けるための閾値)を求めて決定する(S26)。二値化処理部211は、算出した分散に応じて、ブロックにおける閾値の有効性を判断する。例えば、二値化処理部211は、有効な閾値(例えば分散算出値がσ
εを超えた場合の閾値)と判断した場合にはその閾値を用いる。一方、二値化処理部211は、無効な閾値(例えば分散算出値がσ
ε以下となった場合の閾値)と判断した場合には、該当するブロックの周囲のブロックにおける有効な閾値の平均値で置き換えて用いる。
【0091】
二値化処理部211は、全てのブロックにおける閾値を決定した後、ブロックを構成する複数のそれぞれの画素(ピクセル)における閾値を算出する。具体的には、二値化処理部211は、それぞれのブロックにおける閾値を、そのブロックの中心画素における閾値として求め、更に、中心画素ではない他の画素における閾値については、その画素の周囲のブロックにおけるそれぞれの閾値を用いた線形補間によって算出する(S27)。二値化制御部2111は、閾値決定部2116により算出された、ブロックを構成する複数のそれぞれの画素(ピクセル)における閾値とそれぞれの画素(ピクセル)の画素値(輝度値)とを比較し、画素値が閾値より大きければその画素を白画素として生成し、一方、画素値が閾値より小さければその画素を黒画素として生成する事で、二値画像を生成する。
【0092】
これにより、二値化処理部211は、輝度差補正二値化方法による二値画像生成処理により、局所安定領域に基づく二値画像生成処理に比べて、撮像画像に含まれる文字を高精度に文字認識可能なかつ信頼性の高い白黒の二値画像を生成できる。
【0093】
図10は、実施の形態1のスマートフォン10における文字認識結果並びに翻訳結果のUI画面の一例を示す図である。
【0094】
図10に示すUI画面は、スマートフォン10のプロセッサ12により、ディスプレイ16上に表示される。具体的には、UI画面は、「あいうえ」の文字を有する撮像画像IMG10の表示領域AR1と、撮像画像IMG10に含まれる文字部分の文字認識処理結果(つまり、テキスト形式の文字「あいうえ」のデータ)の表示領域AR2と、文字認識処理結果に対する翻訳サーバ30における翻訳処理結果(つまり、例えば英語に翻訳されたテキスト形式の文字「AIUE」のデータ)の表示領域AR3とを有する。
【0095】
また、
図10に示すUI画面は、撮像画像IMG10に含まれる文字の認識を指示するための第1の指示部の一例としての認識アイコンBT1と、撮像画像IMG10に含まれる文字部分の文字認識処理結果に対応する文字の翻訳を指示するための第2の指示部の一例としての翻訳アイコンBT2とを有する。プロセッサ21は、認識アイコンBT1がユーザの操作により指定(例えばタッチ、タップ等の選択)されると、撮像画像を含む認識要求を生成して文字認識サーバ20に送信する。プロセッサ21は、翻訳アイコンBT2がユーザの操作により指定(例えばタッチ、タップ等の選択)されると、文字認識サーバ20における文字認識処理結果を含む翻訳要求を生成して翻訳サーバ30に送信する。
【0096】
以上により、実施の形態1の文字認識システム1000では、スマートフォン10は、文字を有する被写体を撮像し、被写体の撮像画像を含む認識要求を文字認識サーバ20に送信する。文字認識サーバ20は、スマートフォン10から送信された認識要求に従って、撮像画像を用いて、撮像画像に含まれる文字の二値画像を生成するための第1の二値化処理(例えば、局所安定領域に基づく二値画像生成処理、
図3参照)を実行する。文字認識サーバ20は、第1の二値化処理(例えば、局所安定領域に基づく二値画像生成処理)が成功した場合に、撮像画像に含まれる文字の二値画像に対する文字認識処理結果を、スマートフォン10に送信する。文字認識サーバ20は、第1の二値化処理(例えば、局所安定領域に基づく二値画像生成処理)が失敗した場合に、撮像画像を用いて、撮像画像に含まれる文字の二値画像を生成するための第2の二値化処理(例えば、輝度差補正二値化方法による二値画像生成処理、
図9参照)を実行する。文字認識サーバ20は、第2の二値化処理(例えば、輝度差補正二値化方法による二値画像生成処理)が成功した場合に、撮像画像に含まれる文字の二値画像に対する文字認識処理結果を、スマートフォン10に送信する。
【0097】
これにより、文字認識サーバ20は、ユーザ(例えば外国人訪問者)の操作によってスマートフォン10により撮像された撮像画像内に含まれる文字を認識できて高精度な文字の二値画像を出力できる。従って、文字認識サーバ20は、撮像画像内に含まれる文字の二値画像をユーザに教示できるので、ユーザに対する文字の意味の理解を通じて多様なコミュニケーションの実現に寄与する事が可能となる。
【0098】
また、スマートフォン10は、第1の二値化処理(例えば、局所安定領域に基づく二値画像生成処理)又は第2の二値化処理(例えば、輝度差補正二値化方法による二値画像生成処理)が成功した場合に、被写体の撮像画像と文字認識サーバ20から送信された文字認識処理結果とを対比的にディスプレイ16に表示する(
図10参照)。これにより、スマートフォン10は、被写体の撮像画像に含まれる文字とその文字の文字認識処理結果とをユーザに比較させて確認できるので、撮像画像に含まれる文字の的確な理解を促す事が可能となる。
【0099】
また、スマートフォン10は、被写体の撮像画像に含まれる文字の認識を指示するための第1の指示部(例えば認識アイコンBT1)をディスプレイ16に表示する。スマートフォン10は、認識アイコンBT1に対するユーザの操作に応じて、被写体の撮像画像を含む認識要求を文字認識サーバに送信する。これにより、ユーザは、認識アイコンBT1の指示という簡易な操作により、撮像画像に含まれる文字が文字認識サーバ20によって文字認識処理された結果(つまり、テキスト形式のデータ)を簡単に確認できる。
【0100】
また、文字認識システム1000は、スマートフォン10と通信可能に接続され、翻訳用辞書を有する翻訳サーバ30を更に備える。スマートフォン10は、文字認識処理結果に対応する文字の翻訳を指示するための第2の指示部(例えば翻訳アイコンBT2)をディスプレイ16に表示する。スマートフォン10は、翻訳アイコンBT2に対するユーザの操作に応じて、文字認識処理結果を含む翻訳要求を翻訳サーバ30に送信する。翻訳サーバ30は、スマートフォン10から送信された翻訳要求に従って、辞書DB34を用いて文字認識処理結果を翻訳処理し、文字認識処理結果の翻訳処理結果をスマートフォン10に送信する。スマートフォン10は、翻訳サーバ30から送信された翻訳処理結果をディスプレイ16に表示する。これにより、ユーザ(例えば外国人訪問者)は、翻訳アイコンBT2の指示という簡易な操作により、スマートフォン10の設定(例えば、自分の母国語の使用設定)に対応した言語に翻訳された文字認識処理結果をディスプレイ16に表示できるので、ユーザが自ら容易に可能な母国語に翻訳された文字認識処理結果を簡単に確認でき、多様なコミュニケーションを図る事ができる。
【0101】
(実施の形態2)
実施の形態2の文字認識システムでは、文字認識サーバは、実施の形態1の文字認識システムにおける動作(処理)に加え、スマートフォン10により撮像された撮像画像内に含まれる文字の二値化方法をユーザに選択させて、ユーザにより選択された二値画像生成処理を実行する。文字認識サーバは、二値画像生成処理の実行結果である二値画像をスマートフォン10に送信してスマートフォン10に表示させ、ユーザにより文字の二値化方法が再び選択された場合には、その新たに選択された二値画像生成処理を実行する。
【0102】
図11は、実施の形態2の文字認識システム1000Aを構成するスマートフォン10、文字認識サーバ20A、翻訳サーバ30の内部構成の一例を詳細に示すブロック図である。
図1に示す実施の形態1の文字認識システム1000の構成と同一の構成については、同一の符号を付与して説明を簡略化又は省略する。
【0103】
実施の形態2では、スマートフォン10から送信される認識要求には、スマートフォン10により撮像された被写体の撮像画像のデータと既定の二値化方法ID(例えば、後述する二値化方法ID=「A」)とが含まれる。また、ユーザの操作によって個別に選択された二値化方法IDが、スマートフォン10から送信されて文字認識サーバ20Aにおいて受信される。
【0104】
文字認識サーバ20Aは、実施の形態1における文字認識サーバ20Aの動作(処理)に加え、スマートフォン10から送信された認識要求に従って、その認識要求に含まれる撮像画像及び既定の二値化方法IDを用いて、撮像画像に含まれる文字の二値画像を生成するための二値化処理(後述参照)として、その既定の二値化方法IDにより指定された二値化処理を実行する。文字認識サーバ20Aは、二値化処理結果の画像(つまり、二値画像)をスマートフォン10に送信してスマートフォン10のディスプレイ16に表示させる。
【0105】
また、文字認識サーバ20Aは、例えば既定の二値化方法IDにより指定された二値化処理の実行結果(つまり、二値画像)がユーザの意図に合わない場合に、ユーザによって他の二値化方法IDが選択された場合には、スマートフォン10から送信された二値化方法ID(つまり、ユーザによって選択された他の二値化方法ID)により指定された二値化処理を実行する。文字認識サーバ20Aは、二値化処理結果の画像(つまり、二値画像)をスマートフォン10に送信してスマートフォン10のディスプレイ16に表示させる。文字認識サーバ20Aは、ユーザのスマートフォン10に対する操作(例えばディスプレイ16に表示された二値画像で了解した旨の操作)があると、スマートフォン10から送信された二値画像の了解操作に応じて、メモリ23に保持された二値画像を文字認識処理し、その文字認識処理結果をスマートフォン10に送信する。
【0106】
文字認識サーバ20Aは、プロセッサ21Aと、通信I/F22と、メモリ23とを含む構成である。
【0107】
プロセッサ21Aは、二値化処理部211と文字認識処理部212と二値化処理変更部213とを少なくとも有する。
【0108】
二値化処理変更部213は、スマートフォン10から送信された認識要求に含まれる既定の二値化方法IDに基づいて、二値化処理部211において実行される二値化処理の方法を指定する。また、二値化処理変更部213は、スマートフォン10から送信された二値化方法IDに基づいて、他の二値化方法に変更して指定する。二値化処理変更部213は、二値化方法IDを二値化処理部211に渡し、その二値化方法IDにより指定される二値化方法の実行を指示する。二値化処理部211は、二値化処理変更部213から渡された指示に応じて、その指示に含まれる二値化方法IDにより指定される二値化方法を実行する。
【0109】
二値化方法IDにより指定される二値化方法は、例えば実施の形態1において説明した、「局所安定領域に基づく二値画像生成処理(
図3参照)」(例えば
図8のステップS1参照)と、コントラスト調整後の撮像画像に対する「局所安定領域に基づく二値画像生成処理(
図3参照)」(例えば
図8のステップS7参照)と、「輝度差補正二値化方法による二値画像生成処理(
図9参照)」(例えば
図8のステップS11参照)である。
【0110】
実施の形態2では、「局所安定領域に基づく二値画像生成処理(
図3参照)」(例えば
図8のステップS1参照)の二値化方法IDは「A」、コントラスト調整後の撮像画像に対する「局所安定領域に基づく二値画像生成処理(
図3参照)」(例えば
図8のステップS7参照)の二値化方法IDは「B」、「輝度差補正二値化方法による二値画像生成処理(
図9参照)」(例えば
図8のステップS11参照)の二値化方法IDは「C」と定義する。
【0111】
次に、実施の形態2における文字認識サーバ20Aにおける二値化処理の全体的な動作手順について、
図12を参照して説明する。
【0112】
図12は、実施の形態2の文字認識サーバ20Aにおける二値化処理の動作手順の一例を詳細に示すフローチャートである。
【0113】
図12に示すそれぞれの処理は、文字認識サーバ20Aのプロセッサ21Aにより実行される。また、
図12の説明の前提として、スマートフォン10により撮像された被写体の撮像画像が文字認識サーバ20Aに送信されて、文字認識サーバ20Aはその撮像画像を受信したとする。
【0114】
図12において、プロセッサ21Aは、メモリ23内に既に生成した二値画像(例えば、既定の二値化方法IDに対応する二値化処理によって生成された二値画像)が存在しているかどうかを判断する(S31)。二値画像が存在していないと判断された場合には(S31、NO)、プロセッサ21Aの処理はステップS33に進む。
【0115】
一方、プロセッサ21Aは、二値画像が存在していると判断した場合には(S31、YES)、新たに二値化処理を行って二値画像を生成するために、メモリ23に保存されている二値画像を破棄(削除)する(S32)。
【0116】
二値画像が存在していないと判断された場合には(S31、NO)、又はステップS32の後、プロセッサ21Aは、例えば二値化処理変更部213において、スマートフォン10から送信された二値化方法IDが「A」であるかどうかを判断する(S33)。このステップS33は、例えばスマートフォン10から送信された認識要求に含まれる既定の二値化方法IDが「A」であるかどうかの確認処理として位置付けられてもよい。
【0117】
プロセッサ21Aは、スマートフォン10から送信された二値化方法IDが「A」であると判断した場合には(S33、YES)、例えば二値化処理変更部213において、二値化方法ID=「A」に対応する二値化処理の実行を二値化処理部211に指示する。具体的には、プロセッサ21Aは、例えば二値化処理部211において、スマートフォン10から送信された撮像画像のデータを用いて、グレースケール形式の撮像画像のデータを生成し(S34)、そのグレースケール形式の撮像画像のデータを用いて、局所安定領域(MSER)に基づく二値画像生成の処理(
図3参照)を実行する(S35)。プロセッサ21Aは、二値化処理により得た二値画像のデータ(つまり、イメージ形式のデータ)とメモリ23に保持される文字認識用辞書(不図示)とを用いて、その二値画像に含まれる文字の部分を切り出して文字認識処理する。これにより、
図12に示すプロセッサ21Aの処理は終了する。
【0118】
一方、プロセッサ21Aは、スマートフォン10から送信された二値化方法IDが「A」でないと判断した場合には(S33、NO)、スマートフォン10から送信された二値化方法IDが「B」であるかどうかを判断する(S36)。
【0119】
プロセッサ21Aは、スマートフォン10から送信された二値化方法IDが「B」であると判断した場合には(S36、YES)、例えば二値化処理変更部213において、二値化方法ID=「B」に対応する二値化処理の実行を二値化処理部211に指示する。具体的には、プロセッサ21Aは、例えば二値化処理部211において、スマートフォン10から送信された撮像画像のデータのコントラストを増加するように調整する(S37)。プロセッサ21Aは、例えば二値化処理部211において、コントラストの調整済みの撮像画像(例えばフルカラー形式)のデータからグレースケール形式の撮像画像のデータを生成し(S38)、そのグレースケール形式の撮像画像のデータを用いて、局所安定領域(MSER)に基づく二値画像生成の処理(
図3参照)を実行する(S39)。プロセッサ21Aは、二値化処理により得た二値画像のデータ(つまり、イメージ形式のデータ)とメモリ23に保持される文字認識用辞書(不図示)とを用いて、その二値画像に含まれる文字の部分を切り出して文字認識処理する。これにより、
図12に示すプロセッサ21Aの処理は終了する。
【0120】
また、プロセッサ21Aは、スマートフォン10から送信された二値化方法IDが「B」でないと判断した場合には(S36、NO)、例えば二値化処理変更部213において、二値化方法ID=「C」に対応する二値化処理の実行を二値化処理部211に指示する。具体的には、プロセッサ21Aは、例えば二値化処理部211において、スマートフォン10から送信された撮像画像のデータを用いて、輝度差補正二値化方法による二値画像生成処理(
図9参照)を実行する(S40)。プロセッサ21Aは、二値化処理により得た二値画像のデータ(つまり、イメージ形式のデータ)とメモリ23に保持される文字認識用辞書(不図示)とを用いて、その二値画像に含まれる文字の部分を切り出して文字認識処理する。これにより、
図12に示すプロセッサ21Aの処理は終了する。
【0121】
図13Aは、二値画像を入力画像に重畳表示するUI画面の一例を示す図である。
図13Bは、二値化方法選択ボタンを表示するUI画面の一例を示す図である。
【0122】
図13A及び
図13Bにおいて、
図10の説明と重複する内容については同一の符号を付与して説明を簡略化又は省略する。
【0123】
図13Aに示すUI画面は、スマートフォン10のプロセッサ12により、ディスプレイ16上に表示される。
図13Aに示すUI画面は、
図10に示すUI画面に加え、二値化オーバーレイ表示アイコンNTVを更に表示する。プロセッサ21は、二値化オーバーレイ表示アイコンNTVがユーザの操作により指定(例えばタッチ、タップ等の選択)されると、スマートフォン10により撮像された撮像画像IMG10の表示領域AR1に、文字認識サーバ20Aにより生成された二値画像IMG10vを重畳して表示する(
図13Bの表示領域AR1参照)。
【0124】
例えば
図13Bでは、二値画像がオーバーレイ表示された結果として、「うえ」の文字部分はユーザが正確に文字を理解できるので二値化処理の精度としては良いが、「あい」の文字部分はユーザが正確に文字を理解できないので二値化処理の精度としては良くない例である。従って、この場合、ユーザによって例えば現在選択されている二値化方法ID=「A」は他の二値化方法IDに変更して選択される事が好ましい。
【0125】
図13Bに示すUI画面は、上述したように、例えば二値化オーバーレイ表示アイコンNTVの指定に応じて、スマートフォン10のプロセッサ12により、ディスプレイ16上に表示される。
図13Bに示すUI画面は、
図13Aに示すUI画面に加え、二値化方法IDを示す複数のアイコンSL1,SL2,SL3を更に表示する。アイコンSL1は、二値化方法ID=「A」に対応して表示される。アイコンSL2は、二値化方法ID=「B」に対応して表示される。アイコンSL3は、二値化方法ID=「C」に対応して表示される。
【0126】
図13Bでは、現在、アイコンSL1が他のアイコンSL2,SL3と違って白黒反転して表示されているので、二値化方法ID=「A」が選択されている事が示されている。プロセッサ21は、二値化方法ID=「B」に対応するアイコンSL2がユーザの操作により指定(例えばタッチ、タップ等の選択)されると、二値化方法ID=「B」に対応する二値化処理(
図12に示すステップS37〜S39参照)を実行する。プロセッサ21は、二値化方法ID=「C」に対応するアイコンSL3がユーザの操作により指定(例えばタッチ、タップ等の選択)されると、二値化方法ID=「C」に対応する二値化処理(
図12に示すステップS40参照)を実行する。
【0127】
以上により、実施の形態2の文字認識システム1000Aでは、文字認識サーバ20Aは、実施の形態1の文字認識システム1000の文字認識サーバ20における動作(処理)に加え、スマートフォン10により撮像された撮像画像内に含まれる文字の二値化方法をユーザに選択させる。文字認識サーバ20Aは、ユーザにより選択された二値画像生成処理を実行する。文字認識サーバ20Aは、二値画像生成処理の実行結果である二値画像をスマートフォン10に送信してスマートフォン10に表示させ、ユーザにより文字の二値化方法が再び選択された場合には、その新たに選択された二値画像生成処理を実行する。
【0128】
これにより、ユーザは、自ら選択した二値化方法IDに対応した二値化処理が文字認識サーバ20Aにおいて実行されるので、撮像画像の内容に応じて適切な二値化処理を選択して、高精度な文字認識処理結果をスマートフォン10において簡易に確認できる。
【0129】
また、スマートフォン10は、いずれかの二値化処理により生成された二値画像を被写体の撮像画像に重畳表示することを指示するための第3の指示部(例えば二値化オーバーレイ表示アイコンNTV)をディスプレイ16に表示する。スマートフォン10は、二値化オーバーレイ表示アイコンNTVに対するユーザの操作に応じて、いずれかの二値化処理により生成された二値画像(具体的には、二値化方法ID=「A」,「B」,「C」のうちいずれかの二値化方法に対応する二値化処理により生成された二値画像)を被写体の撮像画像に重畳表示してディスプレイ16に表示する。これにより、ユーザは、撮像画像内に含まれる文字の二値画像として容易に理解できるかどうか(言い換えると、二値画像を生成するための二値化処理を指定する二値化方法IDが適切かどうか)を簡単に確認できる。
【0130】
また、スマートフォン10は、第1の二値化処理(例えば、局所安定領域に基づく二値画像生成処理、
図3参照)の実行を指示する第4の指示部の一例としてのアイコンSL1,SL2や、第2の二値化処理(例えば、輝度差補正二値化方法による二値画像生成処理)の実行を指示する第5の指示部の一例としてのアイコンSL3をそれぞれディスプレイ16に表示する。スマートフォン10は、アイコンSL1,SL2,SL3に対するユーザの操作に応じて、その操作に対応する二値化処理の実行要求(例えば二値化方法ID)を文字認識サーバ20Aに送信する。文字認識サーバ20Aは、スマートフォン10から送信された実行要求(例えば二値化方法ID)に応じて、撮像画像を用いて対応する二値化処理を実行する。これにより、ユーザは、撮像画像内に含まれる文字の二値画像として容易に理解できない(言い換えると、二値画像を生成するための二値化処理を指定する二値化方法IDが適切でない)と判断した場合でも、UI画面に表示されたアイコンSL1〜SL3の指定という簡易な操作により、二値画像を生成するための二値化処理のやり方を簡単に変更して文字認識サーバ20Aに指示できる。
【0131】
以上、図面を参照しながら各種の実施の形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。また、発明の趣旨を逸脱しない範囲において、上述実施の形態における各構成要素を任意に組み合わせてもよい。