以下に添付図面を参照しながら、本開示に係る実施形態について説明する。なお、本明細書及び図面において実質的に同一の機能を有する要素については、同一の符号を付することにより重複説明を省略する場合がある。
<1.第1実施形態>
第1実施形態について説明する。
図1を参照しながら、第1実施形態に係る情報処理装置10について説明する。図1は、第1実施形態に係る情報処理装置の一例を示した図である。
図1に示すように、情報処理装置100は、記憶部11、及び演算部12を有する。
なお、記憶部11は、RAM(Random Access Memory)などの揮発性記憶装置、或いは、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置である。演算部12は、CPU(Central Processing Unit)やDSP(Digital Signal Processor)などのプロセッサである。但し、演算部12は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの電子回路であってもよい。演算部12は、例えば、記憶部11又は他のメモリに記憶されたプログラムを実行する。
記憶部11には、設定した文字群CGの文字で表現される複数の第1文字列L1が格納される。図1の例では、「雪」、「通」、「病」、「富」、「桶」などの文字を含む文字群CGが設定されている。第1文字列L1は、文字群CGに含まれる文字を組み合わせた文字列である。図1には、文字群CGに含まれる「富」、「通」を組み合わせた文字列「富通」などが第1文字列L1の例として示されている。なお、第1実施形態に係る説明の中で、説明の都合上、第1文字列L1の例として文字列「富通」を挙げ、この例を念頭に置いて説明する場合がある。
また、記憶部11には、複数の第1文字列L1のそれぞれについて、第1文字列L1を含む第1画像P1から切り出される文字部分の形状と類似する文字群CGの文字を集めた第1集合G1が格納される。
図1には、文字列「富通」を含む第1画像P1が例示されている。第1画像P1は、例えば、街頭に設置された看板に記載の文字列「富通」をカメラで撮像した撮像画像や、設定したフォントで紙面に印刷した文字列「富通」をカメラで撮像した撮像画像である。画像処理により第1画像P1から、文字列「富通」を含む文字列部分を切り出すことができる。さらに、文字列部分から、1文字ずつ文字部分を切り出すことができる。図1の例では、1文字目の文字部分(「富」を含む文字部分)と、2文字目の文字部分(「通」を含む文字部分)とが切り出されている。
第1画像P1から文字部分の画像が切り出されると、例えば、パターンマッチングなどの方法により、文字群CGの中から、切り出した文字部分の形状に類似する文字を抽出することができる。例えば、文字群CGに含まれる文字のテンプレート画像又はその特徴量を用意しておき、文字部分の画像とテンプレート画像との類似度を計算し、類似度が高い文字を文字群CGから抽出する方法などが考えられる。その他にも、ある文字が、文字部分に記載された文字である可能性の高さ(例えば、確率で表現される。)を表す信頼度を用いて文字群CGから文字を抽出する方法などが考えられる。
類似度や信頼度などの指標値を利用して文字群CGから文字を抽出する方法の場合、指標値が大きい順に、候補となる複数の文字が文字群CGから抽出される。そして、指標値が最も大きい文字が結果として出力される。上記第1集合G1は、例えば、指標値が大きい順に、切り出された文字部分毎に、設定した数の文字を集めた集合である。記憶部11には、第1文字列L1を含む第1画像P1の文字部分に対応する文字を抽出する際に得られた第1集合G1が、第1文字列L1に対応付けて格納されている。
演算部12は、第2画像P2から切り出される文字部分の形状と類似する文字群CGの文字を集めた第2集合G2を生成する。第2画像P2は、例えば、カメラで撮像した撮像画像である。また、第2画像P2に含まれる文字列(「富通」)は未知である。演算部12は、例えば、第1文字列L1を含む第1画像P1から第1集合G1を生成する方法と同じ方法で、指標値が大きい順に、候補となる複数の文字を文字群CGから抽出し、抽出した文字の集合である第2集合G2を生成する。
また、演算部12は、第2集合G2に基づいて第1文字列L1を選択する。例えば、演算部12は、第2集合G2に含まれる文字を組み合わせて文字列を生成し、生成した文字列に一致する第1文字列L1を選択する。なお、第2画像P2に第1文字列L1が含まれていない場合、演算部12は、第2集合G2から第1文字列L1を選択できない可能性がある。しかし、第2画像P2に第1文字列L1が含まれている場合、演算部12は、第2集合G2から第1文字列L1を選択できる可能性が高い。図1の例では、第2画像P2に含まれる文字を組み合わせて文字列「富通」を生成できるため、この場合には第1文字列L1として文字列「富通」が選択される。
また、演算部12は、選択した第1文字列L1に対応する第1集合G1と第2集合G2との違いを表す評価値を計算する。評価値としては、例えば、第1集合G1と第2集合G2との間で共通に含まれる文字の個数などを用いることができる。共通に含まれる文字の個数が少なければ、第1集合G1と第2集合G2との違いが大きいと評価できる。また、第1集合G1及び第2集合G2に含まれる各文字について指標値が得られている場合には、共通して含まれる文字に対応する指標値の差を評価値として用いることもできる。例えば、1文字あたりの指標値の差が大きければ、第1集合G1と第2集合G2との違いが大きいと評価できる。
また、演算部12は、設定した閾値より評価値が小さい場合に、選択した第1文字列L1を認識結果とする。つまり、第1集合G1と第2集合G2との違いが許容範囲内の違いである場合に、第2画像P2から認識された第1文字列L1が出力される。特殊なフォントやデザイン文字などを含む画像から文字列を認識しようとする場合、誤検出や誤認識が生じる可能性がある。しかし、同じ文字列を含む画像に対する認識処理の過程で得られた候補文字の集合は似通った性質を有する。そのため、上記のような評価値に基づく検証処理を行うことで、誤検出や誤認識が生じるリスクを低減することが可能になり、文字列の認識精度を向上させることができる。
以上、第1実施形態について説明した。
<2.第2実施形態>
次に、第2実施形態について説明する。
[2−1.システム]
まず、図2を参照しながら、第2実施形態に係る情報提供システムについて説明する。図2は、第2実施形態に係る情報提供システムの一例を示した図である。
図2に示すように、第2実施形態に係る情報提供システムは、端末装置100及びサーバ装置200を含む。端末装置100は、サーバ装置200と通信可能である。例えば、端末装置100は、無線LAN(Local Area Network)や携帯電話回線などの無線通信回線を利用してサーバ装置200とデータ通信を行うことが可能である。
この情報提供システムでは、端末装置100からサーバ装置200へと写真PTが送信されると、写真PTに含まれる単語に関連する登録情報Aがサーバ装置200から端末装置100へと提供される。
サーバ装置200は、単語と対応付けて登録情報Aが記録された情報データベース201aを保持している。登録情報Aとしては、例えば、地名、店名、観光情報、施設情報(例えば、施設名、入園料、開園時間、住所、電話番号など)、地図情報、商品情報、お得情報(例えば、割引券、クーポンなど)などがある。例えば、情報データベース201aには、単語「富士園」に対応付けて、施設名「富士園」、入園料「500円」、開園時間「9時〜17時」などの登録情報Aが格納されている。
例えば、看板やポスターなどの写真PTを端末装置100からサーバ装置200へと送信すると、サーバ装置200は、受信した写真PTから文字列を含む画像領域WAを切り出し、その文字列に含まれる文字を認識する。さらに、サーバ装置200は、認識した文字の組み合わせに該当する単語を検出する。
サーバ装置200は、情報データベース201aに登録された単語を記録した単語データベース201bを保持している。サーバ装置200は、単語データベース201bを参照し、認識した文字の組み合わせに該当する単語を検出する。該当する単語を検出したサーバ装置200は、情報データベース201aから、検出した単語に対応する登録情報Aを抽出する。そして、サーバ装置200は、抽出した登録情報Aを端末装置100に送信する。登録情報Aを受信した端末装置100は、受信した登録情報Aを画面に表示する。
このように、第2実施形態に係る情報提供システムを利用すると、ユーザは、看板などの文字列を撮像した撮像画像をサーバ装置200へと送信するだけで、その看板などに関連する登録情報Aを容易に取得することが可能になる。二次元バーコードなどの特殊な情報表示を利用しておらず、一般的な文字列が記載されていればよいため、様々な場所に設置された看板などを情報源として利用することができる。そのため、たまたま目にした看板や、広告に記載された単語などを利用して容易に登録情報Aを得ることができるため、利便性が高い。
但し、看板などの文字は、特殊なフォントやデザイン文字で描かれていることが多い。書籍に記載された文字列や、申請書類などの書面に記載された文字列を読み取り、文字情報をデジタルデータとして記録するOCR機能を利用した場合、看板などに描かれた特殊な形状の文字を正しく認識できない可能性が高い。単語が認識できない場合や、正しい単語とは異なる単語が検出される場合などが想定される。そこで、第2実施形態では、特殊なフォントやデザイン文字など、文字認識の誤りが生じやすい文字を含む単語を正しく認識する仕組みを提案する。この仕組みを適用することで単語の認識精度が向上し、図2に例示した情報提供システムなどに応用することでユーザの利便性向上に寄与する。
以上、第2実施形態に係る情報提供システムについて説明した。なお、サーバ装置200が有する機能のうち、文字認識に関する機能を端末装置100に組み込み、端末装置100単体で撮像画像から文字列を認識できるようにしてもよい。さらに、サーバ装置200が有する情報データベース201aの情報を端末装置100に保持させ、端末装置100単体で、認識した文字列から観光情報などの情報が得られるようにしてもよい。以下では、図2に示した情報提供システムを念頭に説明を進めるが、このような変形例も第2実施形態の技術的範囲に含まれる。
[2−2.ハードウェア]
次に、図3を参照しながら、端末装置100のハードウェアについて説明する。図3は、第2実施形態に係る端末装置が有する機能を実現可能なハードウェアの一例を示した図である。端末装置100が有する機能は、例えば、図3に示す情報処理装置のハードウェア資源を用いて実現することが可能である。つまり、端末装置100が有する機能は、コンピュータプログラムを用いて図3に示すハードウェアを制御することにより実現される。
図3に示すように、このハードウェアは、主に、CPU902と、ROM(Read Only Memory)904と、RAM906と、ホストバス908と、ブリッジ910とを有する。さらに、このハードウェアは、外部バス912と、インタフェース914と、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926とを有する。
CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、CPU902に読み込まれるプログラムや演算に用いるデータなどを格納する記憶装置の一例である。RAM906には、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に変化する各種パラメータなどが一時的又は永続的に格納される。
これらの要素は、例えば、高速なデータ伝送が可能なホストバス908を介して相互に接続される。一方、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続される。また、入力部916としては、例えば、マウス、キーボード、タッチパネル、タッチパッド、ボタン、スイッチ、及びレバーなどが用いられる。さらに、入力部916としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラが用いられることもある。
出力部918としては、例えば、CRT(Cathode Ray Tube)、LCD(Liquid Crystal Display)、PDP(Plasma Display Panel)、又はELD(Electro-Luminescence Display)などのディスプレイ装置が用いられる。また、出力部918として、スピーカやヘッドホンなどのオーディオ出力装置、又はプリンタなどが用いられることもある。つまり、出力部918は、情報を視覚的又は聴覚的に出力することが可能な装置である。
記憶部920は、各種のデータを格納するための装置である。記憶部920としては、例えば、HDDなどの磁気記憶デバイスが用いられる。また、記憶部920として、SSD(Solid State Drive)やRAMディスクなどの半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイスなどが用いられてもよい。
ドライブ922は、着脱可能な記録媒体であるリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどが用いられる。
接続ポート924は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、光オーディオ端子など、外部接続機器930を接続するためのポートである。外部接続機器930としては、例えば、イヤホン、カメラ、フラッシュ、プリンタなどがある。なお、接続ポート924を介さずにカメラやフラッシュなどのデバイスがインタフェース914に接続されていてもよい。
通信部926は、ネットワーク932に接続するための通信デバイスである。通信部926としては、例えば、有線又は無線LAN用の通信回路、WUSB(Wireless USB)用の通信回路、光通信用の通信回路やルータ、ADSL(Asymmetric Digital Subscriber Line)用の通信回路やルータ、携帯電話ネットワーク用の通信回路などが用いられる。通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークであり、例えば、インターネット、LAN、放送網、衛星通信回線などを含む。
以上、端末装置100のハードウェアについて説明した。なお、サーバ装置200が有する機能も、端末装置100と同様に、図3に例示したハードウェアを用いて実現可能である。従って、サーバ装置200のハードウェアについては詳細な説明を省略する。
[2−3.端末装置の機能]
次に、図4を参照しながら、端末装置100の機能について説明する。図4は、第2実施形態に係る端末装置が有する機能の一例を示したブロック図である。
図4に示すように、端末装置100は、画像取得部101、画像送信部102、情報受信部103、及び情報表示部104を有する。画像送信部102及び情報受信部103の機能は、上述した接続ポート924や通信部926などを用いて実現できる。画像取得部101及び情報表示部104の機能は、上述したCPU902などを用いて実現できる。
画像取得部101は、端末装置100のカメラ機能を利用して撮像された撮像画像や、端末装置100に接続されたリムーバブル記録媒体928に格納された撮像画像など、単語の認識に用いられる画像(以下、対象画像)を取得する。画像取得部101により取得された対象画像は、画像送信部102に入力される。画像送信部102は、画像取得部101から入力された対象画像をサーバ装置200へ送信する。
サーバ装置200において対象画像から単語が検出された場合、検出された単語に対応する登録情報Aが端末装置100に送信される。情報受信部103は、サーバ装置200から送信された登録情報Aを受信する。情報受信部103により受信された登録情報Aは、情報表示部104に入力される。情報表示部104は、情報受信部103から入力された登録情報Aを端末装置100の画面に表示する。
以上、端末装置100の機能について説明した。
[2−4.サーバ装置の機能]
次に、図5を参照しながら、サーバ装置200の機能について説明する。図5は、第2実施形態に係るサーバ装置が有する機能の一例を示したブロック図である。なお、説明の中で、図6〜図12を適宜参照する。
図5に示すように、サーバ装置200は、記憶部201、画像受信部202、単語認識部203、情報送信部204、及びデータベース更新部205を有する。記憶部201の機能は、上述したRAM906や記憶部920などを用いて実現できる。画像受信部202及び情報送信部204の機能は、上述した接続ポート924や通信部926などを用いて実現できる。単語認識部203の機能は、上述したCPU902などを用いて実現できる。
(記憶部201)
記憶部201は、情報データベース201a、単語データベース201b、登録文字データベース201c、及び誤り文字列データベース201dを有する。
情報データベース201aは、単語に対応付けて登録情報Aが格納されたデータベースである。単語データベース201bは、文字認識の結果から単語を検出するための情報が格納されたデータベースである。登録文字データベース201cは、文字認識に用いる文字(以下、登録文字)のテンプレートが格納されたデータベースである。誤り文字列データベース201dは、誤った文字列が検出されやすい画像を対象に文字認識した際の認識結果に関する情報が格納されたデータベースである。
(情報データベース201a)
ここで、図6を参照しながら、情報データベース201aについて、さらに説明する。図6は、第2実施形態に係る情報データベースの一例を示した図である。
図6に例示した情報データベース201aには、「単語」及び「情報」の欄が設けられている。また、「単語」の欄には、「富士園」、「雪土国」、「愛染明王像」などの単語が記載されている。但し、「単語」の欄に記載されている単語は、単語データベース201bに格納されている単語である。
さらに、「情報」の欄には、単語毎に、「入園料 500円、開園時間 9時〜17時」などの登録情報Aが記載されている。なお、「No.」の欄に記載された数字は、情報データベース201aのレコードを識別するための番号である。この例のように、情報データベース201aには、単語と登録情報Aとが対応付けて格納されている。
(単語データベース201b)
次に、図7を参照しながら、単語データベース201bについて、さらに説明する。図7は、第2実施形態に係る単語データベースの一例を示した図である。
図7に例示した単語データベース201bには、「単語」、「候補順位」、「1文字目」、「2文字目」、「3文字目」、…の欄が設けられている。なお、以下では、「1文字目」、「2文字目」、「3文字目」の欄を「候補文字群」の欄と呼ぶ場合がある。「単語」の欄には、「富士園」、「雪土国」などの単語が記載されている。また、「候補順位」の欄には、単語毎に「第1位」、…、「第4位」の記載がある。そして、「候補文字群」の欄には、文字種及びコストが記載されている。
「単語」の欄に記載されている単語は、単語データベース201bに格納されている単語である。「候補文字群」の欄に記載された文字種及びコストは、対応する単語を含む画像から文字認識を行った際に、認識結果の候補として抽出された文字(以下、候補文字)及び認識コストの値を表す。
なお、認識コストとは、候補文字が誤りである可能性の高さを表す指標値の一例である。つまり、認識コストは、値が小さくなるほど正しい文字(以下、正解文字)らしいことを示す量であり、相違度と呼ばれることもある。第2実施形態では、認識コストを指標値として利用する例を中心に説明するが、例えば、認識スコアを指標値として利用することもできる。認識スコアとは、候補文字が、正解文字である可能性の高さを表す指標値の一例である。つまり、認識スコアは、値が大きくなるほど正解文字らしいことを示す量であり、類似度と呼ばれることもある。類似度は、尤もらしさを表す確信度や、正解文字である確率を表す確率値などで表現される場合もある。
図7の例では、単語に含まれる文字毎に4つの候補文字が記載されている。例えば、単語「富士園」の第1文字目「富」に対応する候補文字として、「富」、「雪」、「窓」、「冨」が記載されている。また、図7の例では、コストが低い順に上位4つの候補文字が記載されている。「候補順位」の欄に記載された順位の数字は、コストが低い順に順番を表した順位である。
なお、図7の例では第4位までの候補文字を記載しているが、第3位までの候補文字を記載する設定にすることも可能であるし、第4位より下位の候補文字を記載する設定にすることも可能である。このように、単語データベース201bには、単語と共に候補文字群が格納されている。
(誤り文字列データベース201d)
次に、図8を参照しながら、誤り文字列データベース201dについて、さらに説明する。図8は、第2実施形態に係る誤り文字列データベースの一例を示した図である。
図8に例示した誤り文字列データベース201dには、「単語」、「誤り文字列」、「候補順位」、「1文字目」、「2文字目」、「3文字目」、…の欄が設けられている。なお、「1文字目」、「2文字目」、「3文字目」の欄は「候補文字群」の欄である。「単語」の欄には、「富士園」などの単語が記載されている。また、「誤り文字列」の欄には、単語毎に文字列が記載されている。「候補順位」の欄には、単語毎に「第1位」、…、「第4位」の記載がある。そして、「候補文字群」の欄には、文字種及びコストが記載されている。
「単語」の欄に記載されている単語は、単語データベース201bに格納されている単語である。なお、「単語」の欄には、単語毎に誤り文字列の数が記載されている。「誤り文字列」の欄に記載された文字列は、対応する単語を含む画像から文字認識を行った際に誤認識された文字列(以下、誤り文字列)を表す。
例えば、候補文字群の中に正解文字が存在しない場合、候補順位が最上位に位置する候補文字の組み合わせが誤り文字列として得られる。「候補文字群」の欄に記載された文字種及びコストは、対応する単語を含む画像から文字認識を行った際に抽出された候補文字及び認識コストの値を表す。なお、認識コストに代えて認識スコアを指標値として利用することもできる。
図8の例では、単語「富士園」に対応付けて2つの誤り文字列「蔦企国」、「雪土国」が記載されている。また、誤り文字列「蔦企国」に含まれる文字毎に4つの候補文字が記載されている。例えば、単語「富士園」の第1文字目「富」に対応する誤り文字列「蔦企国」の第1文字目「蔦」について、「蔦」、「夢」、「言」、「雪」が記載されている。
なお、図8の例では第4位までの候補文字を記載しているが、第3位までの候補文字を記載する設定にすることも可能であるし、第4位より下位の候補文字を記載する設定にすることも可能である。また、単語データベース201bに記載される候補文字の数(順位数)と、誤り文字列データベース201dに記載される候補文字の数(順位数)とは異なる数に設定されていてもよい。例えば、単語データベース201bでは第4位までの候補文字を考慮し、誤り文字列データベース201dでは第8位までの候補文字を考慮するような設定にすることが可能である。
(画像受信部202)
再び図5を参照する。画像受信部202は、端末装置100から単語認識の対象となる写真PTを受信する。画像受信部202により受信された写真PTは、単語認識部203に入力される。なお、画像受信部202により受信された写真PTは、記憶部201に一旦格納されてもよい。
(単語認識部203)
単語認識部203は、画像受信部202により入力された写真PTから単語を検出する。例えば、単語認識部203は、写真PTから文字列を含む画像領域WAを切り出す。画像領域WAの切り出しとしては、例えば、写真PTの画像データを2値化し、2値画像から文字列を切り出す方法などがある。画像領域WAを切り出した単語認識部203は、登録文字データベース201cを利用し、画像領域WAから各文字を含む部分(以下、文字領域)を切り出す。文字領域の切り出し方法としては、現在又は将来において開示されている任意の文字認識技術を適用することができる。
文字領域を切り出した単語認識部203は、登録文字データベース201cに格納された登録文字のテンプレートを用いて、各登録文字と文字領域の文字形状とのマッチングを行い、登録文字毎に認識コストを計算する。認識コストの計算方法としては、現在又は将来において開示されている任意の方法を適用することができる。また、単語データベース201b及び誤り文字列データベース201dに記載の指標値が認識スコアである場合には、認識コストに代えて認識スコアが計算される。
単語認識部203は、認識コストが低い順に予め設定された数の登録文字を候補文字として抽出する。つまり、文字領域毎に複数の候補文字を含む候補文字群が生成される。候補文字群を生成した単語認識部203は、候補文字群に含まれる候補文字を組み合わせて、単語データベース201bに記載された単語を検出する。例えば、単語認識部203は、図9に例示するような方法で単語を検出する。図9は、第2実施形態に係るサーバ装置による単語認識処理について説明するための第1の図である。
図9には、写真PTから切り出された画像領域WAである画像P01から単語を検出する処理の例が記載されている。画像P01には、単語「富士園」が記載されている。また、第1文字目「富」を含む文字領域に対する候補文字として、上位から順に「冨」、「富」、「雪」、「言」が得られている。同様に、第2文字目「士」を含む文字領域に対する候補文字として、上位から順に「士」、「土」、「工」、「大」が得られている。さらに、第3文字目「園」を含む文字領域に対する候補文字として、上位から順に「国」、「園」、「回」、「酉」が得られている。
文字認識結果である候補文字群の最上位に位置する候補文字を組み合わせると「冨士国」となり、正解の文字列である「富士園」とはならない。しかし、下位の候補文字も含めて候補文字群を参照すれば、単語データベース201bに含まれる単語「富士園」の第1文字目「富」、第2文字目「士」、第3文字目「園」が得られる。単語認識部203は、図9に例示したように、下位の候補文字を含めた候補文字群の中から、単語データベース201bに記載された単語を検出する。図9の例では、単語認識結果として正しく「富士園」が検出される。
上記の方法で単語データベース201bに記載された単語を検出できなかった場合、単語認識部203は、候補文字群に含まれる候補文字を組み合わせて、誤り文字列データベース201dに記載された誤り文字列を検出する。例えば、単語認識部203は、図10に例示するような方法で誤り文字列を検出する。図10は、第2実施形態に係るサーバ装置による単語認識処理について説明するための第2の図である。
図10には、写真PTから切り出された画像領域WAである画像P02から単語を検出する処理の例が記載されている。画像P02には、単語「富士園」が記載されている。但し、画像P02に記載された各文字は不鮮明である。
そのため、第1文字目「富」を含む文字領域に対する候補文字として、例えば、上位から順に「蔦」、「夢」、「言」、「雪」が得られている。また、第2文字目「士」を含む文字領域に対する候補文字として、上位から順に「企」、「士」、「述」、「工」が得られている。さらに、第3文字目「園」を含む文字領域に対する候補文字として、上位から順に「国」、「酉」、「田」、「具」が得られている。
文字認識結果である候補文字群の最上位に位置する候補文字を組み合わせると「蔦企国」となり、正解の文字列である「富士園」とはならない。さらに、下位の候補文字も含めて候補文字群を参照しても、単語データベース201bに含まれる単語「富士園」の第1文字目「富」、第3文字目「園」が得られない。しかし、候補文字群の最上位に位置する候補文字を組み合わせた文字列「蔦企国」は、誤り文字列データベース201dに記載されている。そこで、単語認識部203は、誤り文字列データベース201dを参照し、誤り文字列「蔦企国」に対応する単語「富士園」を単語認識結果とする。この方法により、図10の例では、単語認識結果として正しく「富士園」が検出される。
(考察#1:写真PTに誤り文字列を含む場合)
ここで、誤り文字列データベース201dに記載された誤り文字列と同じ単語が写真PTに含まれている場合について考えてみたい。例えば、単語データベース201bには記載のない単語「蔦企国」を含む看板を撮影した写真PTが入力された場合、単語認識部203は、図10の例と同様に、誤り文字列データベース201dを利用して候補文字群から誤り文字列「蔦企国」を検出する。この例では正しい単語は「蔦企国」であるため、この検出結果に対応する単語「富士園」を単語認識結果とすると誤りとなる。
そこで、単語認識部203は、誤り文字列「蔦企国」に対応する単語「富士園」が正しい単語認識結果であるか否かを検証する。正しい単語認識結果と認められる場合、単語認識部203は、誤り文字列「蔦企国」に対応する単語「富士園」を単語認識結果とする。一方、正しい単語認識結果と認められない場合、単語認識部203は、誤り文字列「蔦企国」に対応する単語「富士園」を単語認識結果としない。この場合、単語認識部203は、単語の認識に失敗したと判断する。
(考察#2:候補文字群に複数の単語を含む場合)
ここで、候補文字群の中から複数の単語が検出された場合について考えてみたい。例えば、図9に示した文字認識結果(候補文字群)が得られた場合、この候補文字群の中から、2つの単語「富士園」及び「雪土国」が検出される。
そこで、単語認識部203は、2つの単語「富士園」及び「雪土国」のうち、いずれの単語が正しい単語認識結果であるかを検証する。単語の選択方法としては、例えば、認識コストの和や平均が最も小さい単語を選択する方法などが考えられる。但し、第2実施形態では、候補文字群を利用した検証方法を提案する。単語認識部203は、正しい単語認識結果と認められた単語を単語認識結果とする。なお、いずれの単語も正しい単語認識結果と認められない場合、単語認識部203は、単語の認識に失敗したと判断する。
(考察#3:誤り文字列と同じ登録単語が存在する場合)
ここで、誤り文字列データベース201dに記載された誤り文字列と同じ単語が単語データベース201bに記載されている場合について考えてみたい。
上記の説明では、単語データベース201bに記載された単語が候補文字群に含まれない場合に、候補文字群から誤り文字列を検出する方法を例示した。しかし、たまたま候補文字群の中に単語データベース201bに記載された単語と同じ文字列が含まれているが、その単語が正解ではない場合も考えられる。そのため、単語データベース201bに記載された単語と、誤り文字列データベース201dに記載された誤り文字列とを候補文字群から検出し、それぞれの検出結果から正しい文字認識結果を選択する方法を考える。
例えば、図7に例示した単語データベース201bには単語「雪土国」が記載され、図8に例示した誤り文字列データベース201dには誤り文字列「雪土国」が記載されている。この場合、単語認識部203は、図11に示すように、単語データベース201bに記載された単語に基づく単語認識結果#1と、誤り文字列に基づく単語認識結果#2とのいずれが正しい単語認識結果であるかを検証する。図11は、第2実施形態に係るサーバ装置による単語認識処理について説明するための第3の図である。図11の例では、検証の結果、誤り文字列に基づく単語認識結果#2が正しい単語認識結果として得られる。
(検証方法について)
上記考察#1〜#3で述べたように、単語認識部203は、単語データベース201b、及び誤り文字列データベース201dに基づいて検出した単語をそのまま文字認識結果とせずに検証処理を実施する。ここで、図12を参照しながら、単語認識部203による検証処理について説明する。なお、図12は、第2実施形態に係るサーバ装置による単語認識処理について説明するための第4の図である。
(登録単語に基づく単語認識結果の検証)
画像領域WAに対する文字認識結果(以下、候補文字群X)から、単語データベース201bに記載された単語が検出された場合、単語認識部203は、その単語に対応する単語データベース201bに記載の候補文字群(以下、候補文字群Y)を抽出する。次いで、単語認識部203は、2つの候補文字群X、Yを比較し、両者に共通して存在する候補文字(以下、共通候補文字)の数をカウントする。
次いで、単語認識部203は、共通候補文字の数が、設定した閾値(例えば、7個)よりも大きいか否かを判定する。なお、共通候補文字の数は評価値の一例である。共通候補文字の数が、設定した閾値よりも大きい場合、単語認識部203は、候補文字群Xから検出した単語を文字認識結果とする。一方、共通候補文字の数が、設定した閾値よりも小さい場合、単語認識部203は、候補文字群Xから検出した単語を文字認識結果としない。なお、閾値は、例えば、候補文字群X、Yの一方又は両方に含まれる候補文字の数に基づいて設定される。
図12の例では、候補文字群X(図中の「文字認識結果」)と、単語「雪土国」に対応する候補文字群Y(図中の「単語DBより」)とを比較した結果、5個の共通候補文字が得られている。閾値が7個に設定されている場合、共通候補文字数が閾値より小さいため、単語「雪土国」は単語認識結果とされない。なお、候補文字群Xから複数の単語が検出された場合、共通候補文字数が閾値より大きい単語が文字認識結果とされる。
(誤り文字列に基づく単語認識結果の検証)
画像領域WAに対する文字認識結果(候補文字群X)から、誤り文字列データベース201dに記載された誤り文字列が検出された場合、単語認識部203は、その誤り文字列に対応する候補文字群(以下、候補文字群Z)を誤り文字列データベース201dから抽出する。次いで、単語認識部203は、2つの候補文字群X、Zを比較し、両者に共通して存在する候補文字(共通候補文字)の数をカウントする。
次いで、単語認識部203は、共通候補文字の数が、設定した閾値(例えば、7個)よりも大きいか否かを判定する。共通候補文字の数が、設定した閾値よりも大きい場合、単語認識部203は、候補文字群Xから検出した誤り文字列に対応する単語を文字認識結果とする。一方、共通候補文字の数が、設定した閾値よりも小さい場合、単語認識部203は、候補文字群Xから検出した誤り文字列に対応する単語を文字認識結果としない。なお、閾値は、例えば、候補文字群X、Zの一方又は両方に含まれる候補文字の数に基づいて設定される。
図12の例では、候補文字群X(図中の「文字認識結果」)と、誤り文字列「雪土国」に対応する候補文字群Z(図中の「誤り文字列DBより」)とを比較した結果、9個の共通候補文字が得られている。閾値が7個に設定されている場合、共通候補文字数が閾値より大きいため、誤り文字列「雪土国」に対応する単語「富士園」が単語認識結果とされる。図12の例では、候補文字群Y(図中の「単語DBより」)、候補文字群Z(図中の「誤り文字列DBより」)が得られているが、誤り文字列「雪土国」に対応する単語「富士園」が単語認識結果とされる。
(検証処理の実装について)
ここで、上記の検証処理の実装形態について述べる。上記の説明では様々な場合について検証処理の適用方法を議論してきたが、実際に上記の検証処理を実装する際には、その一部を省略することもできる。例えば、単語データベース201bに記載された単語が候補文字群Xから検出された場合には、その検出結果について検証を行わないようにしてもよい。この場合、候補文字群から誤り文字列が検出された際に、その誤り文字列に対応する単語について上記の検証が行われる。このように、認識精度への寄与度などを考慮して適用方法を選択することで、認識精度と処理負荷とのバランスを調整することができる。
再び図5を参照する。単語認識に成功した場合、単語認識部203は、単語認識結果とした単語を情報送信部204に入力する。一方、単語認識に失敗した場合、単語認識部203は、単語認識に失敗した旨を示す情報を情報送信部204に入力する。この場合、単語認識部203は、単語認識に失敗した旨を示す情報、及び画像領域WAから検出した候補文字群の情報をデータベース更新部205に入力する。
(情報送信部204)
情報送信部204は、単語認識部203から単語認識結果(単語)が入力された場合、入力された単語に対応する登録情報Aを情報データベース201aから抽出する。そして、情報送信部204は、情報データベース201aから抽出した登録情報Aを端末装置100に送信する。一方、単語認識部203から単語認識に失敗した旨の情報が入力された場合、情報送信部204は、単語認識に失敗した旨を端末装置100に通知する。
(データベース更新部205)
データベース更新部205は、誤り文字列データベース201dを更新する。例えば、データベース更新部205は、単語認識に失敗した旨の情報、及び画像領域WAから検出した候補文字群の情報が単語認識部203から入力された場合、入力された情報を用いて誤り文字列データベース201dを更新する。
更新方法としては、例えば、入力された候補文字群から最上位の候補文字を組み合わせた誤り文字列を生成し、候補文字群と誤り文字列とを対応付けて誤り文字列データベース201dに格納する方法が考えられる。この方法は、データベース更新部205が、画像領域WAに含まれる正しい単語の情報を取得できた場合に適用される。例えば、正しい単語の情報が端末装置100からサーバ装置200に通知された場合、データベース更新部205は、通知された単語に、生成した誤り文字列と候補文字群とを対応付けて格納する。サーバ装置200に直接、正しい単語の情報が入力された場合も同様である。
なお、単語認識に成功した場合に誤り文字列データベース201dを更新してもよい。例えば、候補文字群から生成した誤り文字列が誤り文字列データベース201dに既に存在する場合に、画像領域WAから得た候補文字のコストを用いて誤り文字列データベース201dの候補文字群を更新する方法が考えられる。例えば、画像領域WAから得た候補文字のコストと、その候補文字と同じ候補文字に対応する誤り文字列データベース201dに記載のコストとの平均値を計算し、その平均値で誤り文字列データベース201dの記載を更新する方法が考えられる。この方法を適用した場合、更新後のコストに基づいて各候補文字の候補順位も更新される。
以上、サーバ装置200の機能について説明した。
[2−5.認識処理について]
次に、図13〜図16を参照しながら、サーバ装置200が実行する単語認識処理の流れについて説明する。図13は、第2実施形態に係るサーバ装置が実行する単語認識処理の流れを示した第1の図である。図14は、第2実施形態に係るサーバ装置が実行する単語認識処理の流れを示した第2の図である。図15は、第2実施形態に係るサーバ装置が実行する単語認識処理の流れを示した第3の図である。図16は、第2実施形態に係るサーバ装置が実行する単語認識処理の流れを示した第4の図である。
(全体的な処理の流れ)
まず、図13を参照しながら、全体的な処理の流れについて説明する。
(S101)画像受信部202は、端末装置100から単語認識の対象となる写真PTを受信する。画像受信部202により受信された写真PTは、単語認識部203に入力される。なお、画像受信部202により受信された写真PTは、記憶部201に一旦格納されてもよい。
(S102)単語認識部203は、写真PTから文字列を含む画像領域WAを切り出す。画像領域WAを切り出した単語認識部203は、画像領域WAから各文字を含む部分(文字領域)を切り出す。
(S103)文字領域を切り出した単語認識部203は、登録文字データベース201cに格納された登録文字のテンプレートを用いて、各登録文字と文字領域の文字形状とのマッチングを行い、登録文字毎に認識コストを計算する。また、単語認識部203は、認識コストが低い順に予め設定された数の登録文字を候補文字として抽出する。つまり、文字領域毎に複数の候補文字を含む候補文字群が生成される。
(S104)候補文字群を生成した単語認識部203は、候補文字群に含まれる候補文字に基づいて単語データベース201bに記載された単語を検出する。但し、候補文字群に含まれる候補文字を組み合わせても単語データベース201bに記載された単語が検出されない場合、単語認識部203は、誤り文字列データベース201dを利用して候補文字群から単語を検出する。さらに、単語認識部203は、検出した単語が正しい単語認識結果であるか否かを検証する。なお、単語検出に係る処理の流れについては、後段において詳述する。
(S105)単語認識部203は、単語検出に成功したか否かを判定する。単語検出に成功した場合、処理はS107に進む。一方、単語検出に失敗した場合、処理はS106に進む。この場合、単語認識部203から単語認識に失敗した旨の情報が単語認識部203から情報送信部204に入力される。
(S106)情報送信部204は、単語認識に失敗した旨を端末装置100に通知する。S106の処理が完了すると、図13に示した一連の処理は終了する。
(S107)情報送信部204は、単語認識部203から単語認識結果(単語)が入力された場合、入力された単語に対応する登録情報Aを情報データベース201aから抽出する。そして、情報送信部204は、情報データベース201aから抽出した登録情報Aを端末装置100に送信する。S107の処理が完了すると、図13に示した一連の処理は終了する。
(単語検出に係る処理の流れ)
ここで、図14及び図15を参照しながら、単語検出に係る処理の流れについて、さらに説明する。なお、図14及び図15に示した処理は、S104の処理に対応する。
(S111)単語認識部203は、単語データベース201bに記載された単語を選択する。例えば、単語認識部203は、画像領域WAからM個(Mは2以上の自然数)の文字領域が切り出されている場合、M文字の単語を1つ選択する。このとき、単語認識部203は、図14及び図15に示した一連の処理において未選択の単語を選択する。
(S112)単語認識部203は、画像領域WAから認識した文字の組み合わせ(候補文字群)の中から、S111で選択した単語を探索する。例えば、単語認識部203は、単語から第1文字目の文字を選択し、第1文字目の候補文字から、選択した第1文字目の文字を抽出する。同様に、単語認識部203は、第k文字目(k=2,…,M)の文字を選択し、第k文字目の候補文字から、選択した第k文字目の文字を抽出する。
第1文字目〜第M文字目まで、全ての文字が候補文字群から抽出できた場合、単語認識部203は、S111で選択した単語が検出できたと判断する。一方、第1文字目〜第M文字目の中で、候補文字群から単語の文字が1つでも抽出できなかった場合、単語認識部203は、S111で選択した単語が検出できなかったと判断する。
(S113)単語認識部203によりS112の処理で単語が検出された場合、処理はS120(図15を参照)に進む。一方、単語認識部203によりS112の処理で単語が検出されなかった場合、処理はS114に進む。
(S114)単語認識部203は、単語データベース201bに記載された全ての単語について処理が完了したか否かを判定する。単語データベース201bに記載された全ての単語について処理が完了した場合、処理はS115に進む。一方、単語データベース201bに記載された全ての単語について処理が完了していない場合、処理はS111に進む。例えば、画像領域WAからM個の文字領域が切り出されている場合に、S111の処理で選択されていないM文字の単語が存在する場合、処理はS111に進む。
(S115)単語認識部203は、誤り文字列データベース201dに記載された誤り文字列を選択する。例えば、単語認識部203は、画像領域WAからM個の文字領域が切り出されている場合、M文字の誤り文字列を1つ選択する。このとき、単語認識部203は、図14及び図15に示した一連の処理において未選択の誤り文字列を選択する。
(S116)単語認識部203は、画像領域WAから認識した文字の組み合わせ(候補文字群)の中から、S115で選択した誤り文字列を探索する。例えば、単語認識部203は、誤り文字列から第1文字目の文字を選択し、第1文字目の候補文字から、選択した第1文字目の文字を抽出する。同様に、単語認識部203は、第k文字目(k=2,…,M)の文字を選択し、第k文字目の候補文字から、選択した第k文字目の文字を抽出する。
第1文字目〜第M文字目まで、全ての文字が候補文字群から抽出できた場合、単語認識部203は、S115で選択した誤り文字列が検出できたと判断する。一方、第1文字目〜第M文字目の中で、候補文字群から誤り文字列の文字が1つでも抽出できなかった場合、単語認識部203は、S115で選択した誤り文字列が検出できなかったと判断する。
(S117)単語認識部203によりS116の処理で誤り文字列が検出された場合、処理はS123(図15を参照)に進む。一方、単語認識部203によりS116の処理で誤り文字列が検出されなかった場合、処理はS118に進む。
(S118)単語認識部203は、誤り文字列データベース201dに記載された全ての誤り文字列について処理が完了したか否かを判定する。誤り文字列データベース201dに記載された全ての誤り文字列について処理が完了した場合、処理はS119に進む。一方、誤り文字列データベース201dに記載された全ての誤り文字列について処理が完了していない場合、処理はS115に進む。例えば、画像領域WAからM個の文字領域が切り出されている場合に、S115の処理で選択されていないM文字の誤り文字列が存在する場合、処理はS115に進む。
(S119)単語認識部203は、単語検出に失敗したと判断する。この場合、単語認識部203は、単語認識に失敗した旨を示す情報を情報送信部204に入力する。また、単語認識部203は、単語認識に失敗した旨を示す情報、及び画像領域WAから検出した候補文字群の情報をデータベース更新部205に入力する。正しい単語の情報が得られている場合、データベース更新部205は、誤り文字列データベース201dを更新する。S119の処理が完了すると、図14及び図15に示した一連の処理は終了する。
(S120)単語認識部203は、検出結果の検証処理を実行する。例えば、単語認識部203は、検出された単語に対応する候補文字群Yを単語データベース201bから抽出し、画像領域WAに対する文字認識結果(候補文字群X)と比較する。そして、単語認識部203は、2つの候補文字群X、Yに共通する共通候補文字の数をカウントする。共通候補文字の数が閾値よりも大きい場合、単語認識部203は、検出結果が正しいと判断する。一方、共通候補文字の数が閾値よりも小さい場合、単語認識部203は、検出結果が正しくないと判断する。
(S121)S120の処理で検出結果が正しいと判断された場合、処理はS122に進む。一方、S120の処理で検出結果が正しくないと判断された場合、処理はS115(図14を参照)に進む。
(S122)単語認識部203は、単語検出に成功したと判断する。S122の処理が完了すると、図14及び図15に示した一連の処理は終了する。なお、単語データベース201bに記載された単語が検出された時点で、その検出結果を信頼し、検証処理を省略する仕組みとする場合、S120、S121の処理を省略してもよい。この省略により単語認識に係る処理負荷が低減される。
(S123)単語認識部203は、検出結果の検証処理を実行する。例えば、単語認識部203は、検出された誤り文字列に対応する候補文字群Zを誤り文字列データベース201dから抽出し、画像領域WAに対する文字認識結果(候補文字群X)と比較する。そして、単語認識部203は、2つの候補文字群X、Zに共通する共通候補文字の数をカウントする。共通候補文字の数が閾値よりも大きい場合、単語認識部203は、検出結果が正しいと判断する。一方、共通候補文字の数が閾値よりも小さい場合、単語認識部203は、検出結果が正しくないと判断する。
(S124)S123の処理で検出結果が正しいと判断された場合、処理はS122に進む。一方、S123の処理で検出結果が正しくないと判断された場合、処理はS119(図14を参照)に進む。
(検証処理の流れ)
ここで、図16を参照しながら、検出結果の検証に係る処理の流れについて、さらに説明する。なお、図16に示した処理は、S123の処理に対応する。
(S131)単語認識部203は、検出結果に対応する候補文字群を取得する。例えば、文字認識時に生成した候補文字群Xから、単語データベース201bに記載の単語が検出された場合、単語認識部203は、検出した単語に対応する候補文字群Yを単語データベース201bから取得する。また、候補文字群Xから、誤り文字列データベース201dに記載の誤り文字列が検出された場合、単語認識部203は、検出した誤り文字列に対応する候補文字群Zを誤り文字列データベース201dから取得する。
(S132)単語認識部203は、S131で取得した候補文字群と、文字認識時に生成した候補文字群とを比較する。そして、単語認識部203は、比較対象とする2つの候補文字群に共通する共通候補文字の数をカウントする。
(S133)単語認識部203は、カウントした共通候補文字の文字数が閾値よりも大きいか否かを判定する。共通する候補文字の文字数が閾値よりも大きい場合、処理はS134に進む。一方、共通する候補文字の文字数が閾値よりも大きくない場合、処理はS135に進む。なお、閾値は予め設定された値であり、例えば、考慮する候補文字の数などに応じて設定される。
(S134)単語認識部203は、検出結果が正しいと判断する。S134の処理が完了すると、図16に示した一連の処理は終了する。
(S135)単語認識部203は、検出結果が正しくないと判断する。S135の処理が完了すると、図16に示した一連の処理は終了する。
(変形例:コストを考慮した検証方法)
ここで、図17〜図19を参照しながら、コストを考慮した検証方法に係る処理の流れについて説明する。図17は、第2実施形態の一変形例に係る検証方法について説明するための第1の図である。図18は、第2実施形態の一変形例に係る検証方法について説明するための第2の図である。図19は、第2実施形態の一変形例に係る検証方法について説明するための第3の図である。
(評価値Pの計算について)
これまで、共通候補文字の数を閾値と比較し、その比較結果に応じて検出結果の正否を判定する方法について説明してきた。ここでは、コストを考慮した検証方法を提案する。図17に示すように、本変形例では共通候補文字のコストに注目し、共通候補文字のコストに基づく評価値Pを用いて検証を行う方法を紹介する。
評価値Pは、下記の式(1)により定義される。評価値Pは、単語(又は誤り文字列)毎に計算した共通候補文字1つあたりの距離の平均値に重みを考慮した値である。この中で、Mは、単語(又は誤り文字列)に含まれる文字の数である。Nは、単語(又は誤り文字列)の1文字に対応する候補文字の数である。Cは、重み値である。Cの値は、例えば、実験結果などに基づいて予め決められる値である。
Dij及びdijは、単語(又は誤り文字列)に含まれる第i番目の文字に対応する共通候補文字のうち、第j番目の共通候補文字に対応するコストである。但し、Dijは、単語データベース201b(又は誤り文字列データベース201d)に記載のコストである。また、dijは、文字認識結果として得たコストである。niは、単語(又は誤り文字列)に含まれる第i番目の文字に対応する共通候補文字の数である。
図17の例では、誤り文字列データベース201dから得た候補文字毎のコストと、文字認識結果のコストとに基づいて計算した評価値Pは111となる。一方、単語データベース201bから得た候補文字毎のコストと、文字認識結果のコストとに基づいて計算した評価値Pは778となる。
単語認識部203は、評価値Pが閾値T(図17の例ではT=500)より小さいか否かを判定する。図17の例では、誤り文字列に基づく検出結果の評価値Pが閾値Tより小さく、単語に基づく検出結果の評価値Pが閾値Tより大きい。この場合、単語認識部203は、誤り文字列「雪土国」に対応する単語「富士園」を単語認識結果とする。
(検証処理の流れについて)
ここで、図18及び図19を参照しながら、検出結果の検証に係る処理の流れについて、さらに説明する。なお、図18及び図19に示した処理は、S123の処理に対応する。
なお、説明の都合上、文字認識時に生成した候補文字群Xから、誤り文字列データベース201dに記載の誤り文字列が検出され、その検出結果を検証する場合を例に説明を進める。但し、文字認識時に生成した候補文字群Xから、単語データベース201bに記載の単語が検出され、その検出結果を検証する場合も同様である。この場合、誤り文字列データベース201dを単語データベース201bに読み替えればよい。
(S141)単語認識部203は、検出結果に対応する候補文字群(候補文字群Z)を誤り文字列データベース201dから取得する。
(S142)単語認識部203は、インデックスKを1に初期化する。
(S143)単語認識部203は、候補文字群Xから、単語(又は誤り文字列)のK文字目に対応する共通候補文字の文字群(以下、候補A)を抽出する。
(S144)単語認識部203は、S141の処理で取得した候補文字群Zから、単語(又は誤り文字列)のK文字目に対応する共通候補文字の文字群(以下、候補B)を選択する。
(S145)単語認識部203は、候補Aから候補文字を1つ選択する。このとき、単語認識部203は、図18及び図19に示した一連の処理の中で未選択の候補文字を選択する。
(S146)単語認識部203は、S145の処理で選択した候補文字が候補Bに存在するか否かを判定する。S145の処理で選択した候補文字が候補Bに存在する場合、処理はS147に進む。一方、S145の処理で選択した候補文字が候補Bに存在しない場合、処理はS149に進む。
(S147)単語認識部203は、候補A、Bに共通して存在する候補文字についてコストの差を計算する。まず、単語認識部203は、S145の処理で選択した候補Aの候補文字に対応するコストを誤り文字列データベース201dから取得する。次いで、単語認識部203は、候補Aの候補文字に対応する候補Bの候補文字について文字認識時に算出したコストと、誤り文字列データベース201dから取得したコストとの差の絶対値を計算する。
(S148)単語認識部203は、S147の処理で計算したコストの差の絶対値を値Q(Qの初期値は0)に加算する。S148の処理が完了すると、処理はS150に進む。
(S149)単語認識部203は、定数Cを値Qに加算する。定数Cは、上記の式(1)に含まれる値Cと同じである。S149の処理が完了すると、処理はS150に進む。
(S150)単語認識部203は、候補Aに含まれる全ての候補文字をS145の処理で選択したか否かを判定する。候補Aに含まれる全ての候補文字が選択されている場合、処理はS151(図19を参照)に進む。一方、候補Aに含まれる未選択の候補文字が存在する場合、処理はS145に進む。
(S151)単語認識部203は、インデックスKが誤り文字列の文字数Mよりも小さいか否かを判定する。インデックスKが誤り文字列の文字数Mよりも小さい場合(K<Mの場合)、処理はS152に進む。一方、インデックスKが誤り文字列の文字数Mよりも小さくない場合(K=Mの場合)、処理はS153に進む。
(S152)単語認識部203は、インデックスKを1増加させる。S152の処理が完了すると、処理はS143(図18を参照)に進む。
(S153)単語認識部203は、1文字あたりの値Q(評価値P)を計算する。つまり、単語認識部203は、値Qを文字数で割った平均値を評価値Pとする。
(S154)単語認識部203は、評価値Pが閾値Tよりも小さいか否かを判定する。評価値Pが閾値Tよりも小さい場合(P<T)、処理はS155に進む。一方、評価値Pが閾値Tよりも小さくない場合(P≧T)、処理はS156に進む。
(S155)単語認識部203は、検出結果が正しいと判断する。S155の処理が完了すると、図18及び図19に示した一連の処理は終了する。
(S156)単語認識部203は、検出結果が正しくないと判断する。S156の処理が完了すると、図18及び図19に示した一連の処理は終了する。
以上、サーバ装置200が実行する単語認識処理の流れについて説明した。
[2−6.更新処理について]
次に、図20〜図22を参照しながら、誤り文字列データベース201dの更新処理について、さらに説明する。図20は、第2実施形態に係る誤り文字データベースの更新処理の流れを示した第1の図である。図21は、第2実施形態に係る誤り文字データベースの更新処理の流れを示した第2の図である。図22は、第2実施形態に係る誤り文字データベースの更新処理の流れを示した第3の図である。
(全体的な処理の流れ)
まず、図20を参照しながら、全体的な処理の流れについて説明する。なお、以下に示す処理は、主にデータベース更新部205により実行される。
(S161)データベース更新部205は、単語認識部203により、文字認識時に生成された候補文字群の中から単語データベース201bに記載された単語が検出されたか否かを判定する。単語が検出された場合、図20に示した一連の処理は終了する。一方、単語が検出されなかった場合、処理はS162に進む。例えば、候補文字群の中から誤り文字列が検出され、その誤り文字列に対応する単語が単語認識結果とされた場合、処理はS162に進む。
(S162)データベース更新部205は、単語認識部203により、文字認識時に生成された候補文字群の中から誤り文字列データベース201dに記載された誤り文字列が検出されたか否かを判定する。誤り文字列が検出された場合、処理はS163に進む。一方、誤り文字列が検出されていない場合、処理はS164に進む。
(S163)データベース更新部205は、文字認識時に生成された候補文字群に基づいて誤り文字列データベース201dを更新する。この場合、候補文字群から生成した誤り文字列が誤り文字列データベース201dに既に存在する。そこで、データベース更新部205は、例えば、文字認識時に計算した候補文字のコストを利用し、共通候補文字に関する誤り文字列データベース201dに記載のコストを更新する。S163の処理が完了すると、図20に示した一連の処理は終了する。
(S164)データベース更新部205は、単語認識の対象とした写真PTについて、正解の単語が通知されたか否かを判定する。正解の単語が通知された場合、処理はS165に進む。例えば、端末装置100から正解の単語が通知された場合や、サーバ装置200に正解の単語が入力された場合、処理はS165に進む。一方、正解の単語が通知されない場合、図20に示した一連の処理は終了する。
(S165)データベース更新部205は、文字認識時に生成された候補文字群に基づいて誤り文字列を生成し、生成した誤り文字列と候補文字群とを対応付けて誤り文字列データベース201dに追加する。S165の処理が完了すると、図20に示した一連の処理は終了する。
(更新処理について)
ここで、図21を参照しながら、更新処理について、さらに説明する。図21に示した処理は、S163の処理に対応する。
(S171)データベース更新部205は、文字認識時に生成された候補文字群Xと、誤り文字列データベース201dに記載された候補文字群Zとについて、対応する候補文字間におけるコストの重み付け平均値を計算する。但し、候補文字群Zは、候補文字群Xから検出された誤り文字列に対応する候補文字群である。また、2つの候補文字群X、Zに共通する候補文字を共通候補文字と呼ぶ。
誤り文字列に含まれるi番目の文字に対応する候補文字群Xの候補文字のうち、j番目の共通候補文字に対応するコストをcijと表記する。また、誤り文字列に含まれるi番目の文字に対応する候補文字群Zの候補文字のうち、j番目の共通候補文字に対応するコストをCijと表記する。また、重みw1、w2を定義する。重みw1、w2は、例えば、「w1=0.75」、「w2=0.25」などと設定される。但し、「w1+w2=1」である。データベース更新部205は、取り得る全てのi、jについて、下記の式(2)により更新後のコストCrijを計算する。
Crij=w1・Cij + w2・cij
…(2)
(S172)データベース更新部205は、誤り文字列データベース201dに記載のコストを、S171の処理で計算した重み付け平均値(更新後のコスト)Crijに置換する。つまり、データベース更新部205は、誤り文字列に含まれるi番目の文字に対応する候補文字群Zの候補文字のうち、j番目の共通候補文字に対応するコストCijを重み付け平均値Crijに置き換える。なお、データベース更新部205は、取り得る全てのi、jについてコストCijの置き換え処理を実行する。
(S173)データベース更新部205は、置換後のコストに基づいて誤り文字列データベース201dのレコードをソートし直す。つまり、候補文字の候補順位が更新される。また、最上位の候補文字が変更された場合、データベース更新部205は、最上位の候補文字を組み合わせた誤り文字列を生成する。そして、データベース更新部205は、生成した誤り文字列で、誤り文字列データベース201dに記載されていた誤り文字列を更新する。S173の処理が完了すると、図21に示した一連の処理は終了する。
(追加処理について)
ここで、図22を参照しながら、追加処理について、さらに説明する。図22に示した処理は、S165の処理に対応する。
(S181)データベース更新部205は、文字認識時に生成された候補文字群Xの最上位に位置する候補文字を組み合わせて誤り文字列を生成する。
(S182)データベース更新部205は、誤り文字列及び候補文字群を正解の単語に対応付けたレコードを誤り文字列データベース201dに記録する。
(S183)データベース更新部205は、正解の単語に対応する誤り文字列の数を1増加させる。例えば、図8に例示した誤り文字列データベース201dの場合、単語「富士園」には2つの誤り文字列「蔦企国」及び「雪土国」が対応付けられ、誤り文字列数が2となっている。この単語「富士園」に新たな誤り文字列「賃圭圓」が追加された場合、誤り文字列の欄に「賃圭圓」が追加され、対応する候補文字群が追加され、誤り文字数が3に更新される。S183の処理が完了すると、図22に示した一連の処理は終了する。
以上、誤り文字列データベース201dの更新処理について説明した。
以上、第2実施形態について説明した。
以上説明したように、第2実施形態に係る単語認識方法は、候補文字群を利用した検証処理を含む。この検証処理は、単語認識の結果、いずれの画像からも正しい単語が検出されない場合でも、同じ単語を含む画像であれば、同じ傾向をもった候補文字の集合が得られるという性質を利用している。認識スコアや認識コストなどの指標値を利用して単語認識を行うシステムの場合、単語認識の過程で候補文字群が得られる。そのため、検証には既に得られた候補文字群を利用すればよく、検証処理に伴う負荷の増加も少ない。
第2実施形態では、検出された単語を候補文字群により検証する方法と、誤り文字列に基づいて検出された単語を候補文字群により検証する方法とを提案した。誤り文字列を利用することで、デザイン文字で記載された単語など、認識に失敗しやすい単語の検出が可能になる。一方、誤り文字列を利用した単語認識を適用する場合、誤った単語が検出されるリスクが高い。しかし、第2実施形態の方法を適用すれば、単語の誤検出を減らして認識精度を向上させることができ、誤り文字列を利用した単語認識の実用性が向上する。
このように、第2実施形態によれば、負荷の増大を抑制しつつ、単語の認識精度を向上させることができる。その結果、特殊なフォントの文字やデザイン文字などを含む単語が記載された看板やポスターなどをユーザが撮影すると、その写真から自動認識された単語に基づく登録情報Aがユーザに提供されるというサービスが提供可能になる。もちろん、第2実施形態に係る技術を、手書き文書や印刷物から単語を認識するシステムに適用することも可能であり、このようなシステムに適用した場合でも認識率の向上効果が期待できる。
以上、添付図面を参照しながら好適な実施形態について説明したが、本発明は係る例に限定されない。当業者であれば、特許請求の範囲に記載された範疇内において、様々な変形例や修正例に想到し得ることは明らかであり、こうした変形例や修正例についても当然に本開示の技術的範囲に属することは言うまでもない。