IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 凸版印刷株式会社の特許一覧

特開2023-166719文字認識処理システム、文字認識処理方法、及びプログラム
<>
  • 特開-文字認識処理システム、文字認識処理方法、及びプログラム 図1
  • 特開-文字認識処理システム、文字認識処理方法、及びプログラム 図2
  • 特開-文字認識処理システム、文字認識処理方法、及びプログラム 図3
  • 特開-文字認識処理システム、文字認識処理方法、及びプログラム 図4
  • 特開-文字認識処理システム、文字認識処理方法、及びプログラム 図5
  • 特開-文字認識処理システム、文字認識処理方法、及びプログラム 図6
  • 特開-文字認識処理システム、文字認識処理方法、及びプログラム 図7
  • 特開-文字認識処理システム、文字認識処理方法、及びプログラム 図8
  • 特開-文字認識処理システム、文字認識処理方法、及びプログラム 図9
  • 特開-文字認識処理システム、文字認識処理方法、及びプログラム 図10
  • 特開-文字認識処理システム、文字認識処理方法、及びプログラム 図11
  • 特開-文字認識処理システム、文字認識処理方法、及びプログラム 図12
  • 特開-文字認識処理システム、文字認識処理方法、及びプログラム 図13
  • 特開-文字認識処理システム、文字認識処理方法、及びプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023166719
(43)【公開日】2023-11-22
(54)【発明の名称】文字認識処理システム、文字認識処理方法、及びプログラム
(51)【国際特許分類】
   G06V 30/16 20220101AFI20231115BHJP
【FI】
G06V30/16
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022077428
(22)【出願日】2022-05-10
(71)【出願人】
【識別番号】000003193
【氏名又は名称】TOPPANホールディングス株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100139686
【弁理士】
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100169764
【弁理士】
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100147267
【弁理士】
【氏名又は名称】大槻 真紀子
(72)【発明者】
【氏名】伊藤 秀征
(72)【発明者】
【氏名】畠 康高
(72)【発明者】
【氏名】近藤 洋平
【テーマコード(参考)】
5B029
【Fターム(参考)】
5B029BB02
5B029CC18
5B029EE04
(57)【要約】      (修正有)
【課題】複数の種別の異なる文字認識対象画像ごとに対応して適切な文字認識処理の結果が得られる文字認識処理システム、方法及びプログラムを提供する。
【解決手段】製造工場毎において使用されるユーザ端末と、文字認識サーバと、を備える文字認識処理システムにおいて、文字認識サーバ200は、撮像画像に基づく文字認識対象画像について、認識対象文字列が単一行によるものである第1種別と、複数の認識対象文字列が所定の様式に従って予め定められた位置に配置される第2種別とのいずれであるのかを判定する種別判定部222と、第1種別と判定された文字認識画像については、第1種別に対応する第1文字認識前処理を実行し、第2種別と判定された文字認識対象画像については、第2種別に対応する第2文字認識前処理を実行し、第1文字認識前処理または第2文字認識前処理が行われた文字認識対象画像から文字を認識する文字認識処理部223と、を備える。
【選択図】図3
【特許請求の範囲】
【請求項1】
撮像画像に基づく文字認識対象画像について、認識対象文字列が単一行によるものである第1種別と、複数の認識対象文字列が所定の様式に従って予め定められた位置に配置される第2種別とのいずれであるのかを判定する種別判定部と、
前記第1種別と判定された文字認識画像については、前記第1種別に対応する第1文字認識前処理を実行し、前記第2種別と判定された文字認識対象画像については、前記第2種別に対応する第2文字認識前処理を実行し、前記第1文字認識前処理または前記第2文字認識前処理が行われた文字認識対象画像から文字を認識する文字認識処理部と
を備える文字認識処理システム。
【請求項2】
前記文字認識処理部は、前記第1文字認識前処理において、文字認識対象画像内の1行の認識対象文字列を水平にする傾き補正を行うようにされ、前記傾き補正は、前記1行の認識対象文字列に対する外接矩形を形成し、形成した外接矩形について傾き補正を行う
請求項1に記載の文字認識処理システム。
【請求項3】
前記文字認識処理部は、認識対象文字列の第1色と背景の第2色とで色分けした文字認識対象画像について、第2色の画素と所定の位置関係にある第1色の画素を第2色に変換するようにフィルタ処理を実行することで前記外接矩形を形成する
請求項2に記載の文字認識処理システム。
【請求項4】
前記文字認識処理部は、1の文字列に対応する文字認識の対象となる文字認識対象画像部分について文字認識を行った結果として1以上の単位文字列が存在する場合には、水平方向において重複することなく配置された位置関係にある複数の単位文字列を結合して得られる結合文字列を生成し、生成した結合文字列のうちから対応の文字列の条件を満たす結合文字列を、文字認識結果とする
請求項1から3のいずれか一項に記載の文字認識処理システム。
【請求項5】
文字認識処理システムにおける文字認識処理方法であって、
撮像画像に基づく文字認識対象画像について、認識対象文字列が単一行によるものである第1種別と、複数の認識対象文字列が所定の様式に従って予め定められた位置に配置される第2種別とのいずれであるのかを判定する種別判定ステップと、
前記第1種別と判定された文字認識画像については、前記第1種別に対応する第1文字認識前処理を実行し、前記第2種別と判定された文字認識対象画像については、前記第2種別に対応する第2文字認識前処理を実行し、前記第1文字認識前処理または前記第2文字認識前処理が行われた文字認識対象画像から文字を認識する文字認識処理ステップと
を備える文字認識処理方法。
【請求項6】
文字認識処理システムにおけるコンピュータを、
撮像画像に基づく文字認識対象画像について、認識対象文字列が単一行によるものである第1種別と、複数の認識対象文字列が所定の様式に従って予め定められた位置に配置される第2種別とのいずれであるのかを判定する種別判定部、
前記第1種別と判定された文字認識画像については、前記第1種別に対応する第1文字認識前処理を実行し、前記第2種別と判定された文字認識対象画像については、前記第2種別に対応する第2文字認識前処理を実行し、前記第1文字認識前処理または前記第2文字認識前処理が行われた文字認識対象画像から文字を認識する文字認識処理部
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、文字認識処理システム、文字認識処理方法、及びプログラムに関する。
【背景技術】
【0002】
スキャナにより紙帳票をスキャンして得られた文書画像から抽出した文字情報を構造化するようにされた技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2019-82814号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
文字認識処理にあたり、文字認識対象画像として、例えば賞味期限の年月日等のように単一行の文字列によるものである種別ものと、帳票等のように規定の様式に従って複数の所定の項目ごとに文字列が配置される種別とのそれぞれに対応する場合がある。このように複数の種別の異なる文字認識対象画像に対応して文字認識処理を行う場合、種別ごとに適切な文字認識処理の結果が得られるようにすることが求められる。
【0005】
本発明は、このような事情に鑑みてなされたもので、複数の種別の異なる文字認識対象画像ごとに対応して適切な文字認識処理の結果が得られるようにすることを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決する本発明の一態様は、撮像画像に基づく文字認識対象画像について、認識対象文字列が単一行によるものである第1種別と、複数の認識対象文字列が所定の様式に従って予め定められた位置に配置される第2種別とのいずれであるのかを判定する種別判定部と、前記第1種別と判定された文字認識画像については、前記第1種別に対応する第1文字認識前処理を実行し、前記第2種別と判定された文字認識対象画像については、前記第2種別に対応する第2文字認識前処理を実行し、前記第1文字認識前処理または前記第2文字認識前処理が行われた文字認識対象画像から文字を認識する文字認識処理部とを備える文字認識処理システムである。
【0007】
本発明の一態様は、文字認識処理システムにおける文字認識処理方法であって、撮像画像に基づく文字認識対象画像について、認識対象文字列が単一行によるものである第1種別と、複数の認識対象文字列が所定の様式に従って予め定められた位置に配置される第2種別とのいずれであるのかを判定する種別判定ステップと、前記第1種別と判定された文字認識画像については、前記第1種別に対応する第1文字認識前処理を実行し、前記第2種別と判定された文字認識対象画像については、前記第2種別に対応する第2文字認識前処理を実行し、前記第1文字認識前処理または前記第2文字認識前処理が行われた文字認識対象画像から文字を認識する文字認識処理ステップとを備える文字認識処理方法である。
【0008】
本発明の一態様は、文字認識処理システムにおけるコンピュータを、撮像画像に基づく文字認識対象画像について、認識対象文字列が単一行によるものである第1種別と、複数の認識対象文字列が所定の様式に従って予め定められた位置に配置される第2種別とのいずれであるのかを判定する種別判定部、前記第1種別と判定された文字認識画像については、前記第1種別に対応する第1文字認識前処理を実行し、前記第2種別と判定された文字認識対象画像については、前記第2種別に対応する第2文字認識前処理を実行し、前記第1文字認識前処理または前記第2文字認識前処理が行われた文字認識対象画像から文字を認識する文字認識処理部として機能させるためのプログラムである。
【発明の効果】
【0009】
以上説明したように、本発明によれば、複数の種別の異なる文字認識対象画像ごとに対応して適切な文字認識処理の結果が得られるようになるという効果が得られる。
【図面の簡単な説明】
【0010】
図1】本実施形態における文字認識処理システムの構成例を示す図である。
図2】本実施形態のユーザ端末にて表示される文字認識支援アプリケーションのアプリケーション画面の一例を示す図である。
図3】本実施形態における文字認識サーバの構成例を示す図である。
図4】本実施形態におけるフォーマットデータの一例を示す図である。
図5】本実施形態における文字列ルールテーブルの一例を示す図である。
図6】本実施形態における文字変換テーブルの一例を示す図である。
図7】本実施形態における文字認識サーバが文字認識に対応して実行する処理手順例を示す図である。
図8】本実施形態における文字認識サーバが2値化に対応して実行する処理手順例を示すフローチャートである。
図9】本実施形態における文字認識サーバが傾き補正に対応して実行する処理手順例を示すフローチャートである。
図10】本実施形態における文字認識サーバが、文字補正に対応して実行する処理手順例を示すフローチャートである。
図11】本実施形態における単一行文字列の種別の文字認識対象画像を示す図である。
図12】本実施形態におけるフォーマット化書面の種別の文字認識対象画像を示す図である。
図13】本実施形態における傾き補正の例について説明する図である。
図14】本実施形態における結合文字列の生成の例について説明する図である。
【発明を実施するための形態】
【0011】
[文字認識処理システムの構成例]
図1は、本実施形態の文字認識処理システムの構成例を示している。本実施形態の文字認識処理システムは、製造工場FCにおける製品の製造管理の支援として、製造工場FCにおける所定の対象についてOCR(Optical Character Reader)による文字認識処理を行い、文字認識結果を製造工場FCにおける管理者等のユーザが確認可能とされる。
【0012】
本実施形態の文字認識処理システムは、製造工場FCごとにおいて使用されるユーザ端末100と、文字認識サーバ200とを備える。
【0013】
ユーザ端末100は、製造工場FCにおいて文字認識対象を撮像するのに用いられる。また、ユーザ端末100は、文字認識処理結果を表示することができる。ユーザ端末100は、本実施形態の文字認識処理システムに対応する文字認識支援アプリケーションが動作するようにされてよい。文字認識支援アプリケーションは、ユーザの撮像の操作に応じて得られた文字認識対象画像を文字認識サーバ200に送信し、文字認識サーバ200が受信した文字認識対象画像を対象に実行した文字認識処理結果を表示することができる。
【0014】
ユーザ端末100は、例えばユーザが所持するスマートフォンやタブレット端末等の携帯端末であってもよい。この場合には、ユーザがユーザ端末100を操作して文字認識対象を撮像するようにされる。あるいは、ユーザ端末は、例えばベルトコンベアなどにより運ばれる製品における文字認識対象の箇所を撮像するカメラと、当該カメラと接続されたコンピュータ装置とにより構成されてよい。
【0015】
本実施形態において文字認識対象は、例えば製品のパッケージに印刷された賞味期限などであってよい。また、文字認識対象は、製造装置や製造管理装置などにおいて表示される温度等の製造管理に関する情報などであってよい。このような賞味期限、装置での表示による温度等の情報は、単一行による文字列が文字認識対象となる。
【0016】
また、文字認識対象は、製品に貼り付けられるラベルなどであってよい。また、文字認識情報は、受注や発注等に関連する帳票であってよい。このようなラベルや帳票等は、当該ラベルや帳票が対応する範囲において、規定のフォーマット(様式)に従って所定位置に配置された項目ごとに含まれる文字列が文字認識対象となる。
【0017】
本実施形態の文字認識支援システムは、文字認識対象の種別として、単一行の文字列によるもの(単一行文字列:第1種別の一例)と、ラベルや帳票などのようにフォーマットが定められたもの(フォーマット化書面:第2種別の一例)とのそれぞれに対応して文字認識処理を行うことが可能とされている。
【0018】
[文字認識支援アプリケーションについて]
図2は、ユーザ端末100にて表示される文字認識支援アプリケーションのアプリケーション画面の一例を示している。図2(A)は、単一行文字列を文字認識対象とする場合のアプリケーション画面の一例であり、図2(B)は、フォーマット化書面を文字認識対象とする場合のアプリケーション画面の一例である。
同図のアプリケーション画面において、撮像画像エリアAR1は、カメラにより撮像されている撮像画像が表示されるエリアである。撮像画像エリアAR1においては、単一行文字列の撮像に際してガイドとなるフレームエリアAR2が配置されている。
【0019】
撮像画像エリアAR1内にはフレームエリアAR2が配置されている。フレームエリアAR2は、撮像画像の全体において、単一行文字列を文字認識対象とする場合に対応して文字認識対象画像として撮像される領域部分を示す。
【0020】
ユーザは、単一行文字列を文字認識対象とする場合には、図2(A)に示すように、フレームエリアAR2内に文字認識対象の文字列が収まるようにして撮像する操作を行う。また、ユーザは、フォーマット化書面を文字認識対象とする場合には、撮像画像エリアAR1内に文字に新式対象のフォーマット化書面が収まるようにして撮像する操作を行う。
ユーザ端末100は、撮像の操作が行われたことに応じて、撮像画像から撮像画像エリアAR1に対応する画像部分とフレームエリアAR2に対応して抜き出した画像部分とのそれぞれを、文字認識対象画像として文字認識サーバ200に送信する。
なお、ユーザ端末100は、撮像画像エリアAR1に対応する画像部分と、当該画像部分においてフレームエリアAR2に対応する座標の情報とを送信してもよい。
【0021】
文字認識サーバ200は、受信した文字認識対象画像に基づいて、今回の文字認識対象が、単一行文字列とフォーマット化書面とのいずれであるのかを判定し、判定した文字認識対象に応じた文字認識処理を実行する。文字認識サーバ200は、文字認識処理結果として得られた文字列をユーザ端末100に送信する。
ユーザ端末100は、文字認識処理結果としての文字列を受信すると、受信した文字列をアプリケーション画面における認識結果エリアAR3に表示させる。また、ユーザ端末100は、受信した文字認識処理結果としての文字列を自己が備える記憶部に記憶してよい。あるいは、ユーザ端末100は、製造工場FCにおける所定の装置、サーバ等(図示せず)に文字認識処理結果を送信してよい。
製造工場FCの装置、サーバ等は送信された文字認識結果を記憶してよい。このようにユーザ端末100あるいは製造工場FC内の装置、サーバ等にて記憶された文字認識処理結果としての文字列は、製造工場FCにおける各種の製造管理等に用いられてよい。
文字認識サーバ200は、フォーマット化書面を文字認識対象とした場合には、撮像されたフォーマット化書面において認識した所定項目ごとの文字列の情報を文字認識処理結果としてユーザ端末100に送信する。
また、この場合にも、ユーザ端末100は、受信した文字認識処理結果を、自己が備える記憶部または製造工場FC内の装置、サーバ等に記憶させてよい。
また、この場合にもユーザ端末100は、所定の態様で文字認識処理結果を表示してよい。一例として、ユーザ端末100は、フォーマット化書面において文字認識対象とされている項目名ごとに認識された文字列のリストを表示してよい。
【0022】
[文字認識サーバの構成例]
図3は、文字認識サーバ200の機能構成例を示している。同図の文字認識サーバ200は、通信部201、制御部202、及び記憶部203を備える。
通信部201は、ネットワーク経由でユーザ端末100と通信を行う。
【0023】
制御部202は、文字認識サーバ200における各種の制御を実行する。制御部202は、画像取得部221、種別判定部222、文字認識処理部223、及び処理結果送信部224を備える。
画像取得部221は、ユーザ端末100から送信された文字認識対象画像を取得する。
【0024】
種別判定部222は、画像取得部221により取得された文字認識対象画像の種別が単一行文字列とフォーマット化書面とのいずれであるのかを判定する。
【0025】
文字認識処理部223は、取得された文字認識対象画像を対象に文字認識処理を実行する。文字認識処理部223は、種別判定部222により判定された文字認識対象画像の種別に応じた処理を実行する。つまり、文字認識処理部223は、種別判定部222により文字認識対象画像が単一行文字列であると判定された場合には、単一行文字列に対応する文字認識処理を実行し、種別判定部222により文字認識対象画像がフォーマット化書面であると判定された場合には、フォーマット化書面に対応する文字認識処理を実行する。
【0026】
処理結果送信部224は、文字認識処理部223により認識された文字列を示す文字認識処理結果を、文字認識対象画像の送信元のユーザ端末100に送信する。
【0027】
記憶部203は、文字認識サーバ200が対応する各種の情報を記憶する。記憶部203は、フォーマットデータベース記憶部231、文字列ルールテーブル記憶部232、及び文字変換テーブル記憶部233を備える。
フォーマットデータベース記憶部231は、フォーマットデータベースを記憶する。フォーマットデータベースは、文字認識対象として製造工場FCから登録されたフォーマット化書面ごとのフォーマットのデータベースである。
【0028】
フォーマットデータベースは、フォーマットごとのフォーマットデータを格納する。
図4は、1つのフォーマットに対応するフォーマットデータの一例を示している。同図のフォーマットデータは、フォーマットID、フォーマット名、画像データ、及び項目データの領域を含む。
【0029】
フォーマットIDの領域は、対応のフォーマットを一意に示すフォーマットIDを格納する。
【0030】
フォーマット名の領域は、対応のフォーマットに付されたフォーマットの名称(フォーマット名)を格納する。
【0031】
画像データの領域は、対応のフォーマットによるフォーマット化書面の画像データを格納する。フォーマット化書面の画像データは、例えばフォーマット化書面のファイルを画像ファイルに変換したものであってよい。
【0032】
項目データの領域は、対応のフォーマットにおいて文字認識対象として指定される項目ごとに対応するデータ(項目データ)を格納する。
【0033】
1つの項目に対応する項目データは、項目ID、項目名、及び座標の領域を含む。
項目IDの領域は、対応の項目を一意に示す項目IDを格納する。
項目名の領域は、対応の項目に付された名称(項目名)を格納する。
座標の領域は、フォーマット化書面において対応の項目が配置されている座標を格納する。座標は、例えばフォーマット化書面における対応の項目に配置される文字列に外接矩形を設定し、当該外接矩形の位置を示すものとして定められてよい。
【0034】
なお、1つのフォーマットに対応するフォーマットデータは、例えば対応のフォーマットを登録した製造工場FCを示す工場IDを格納してもよい。
【0035】
説明を図3に戻す。文字列ルールテーブル記憶部232は、文字列ルールテーブルを記憶する。文字列ルールテーブルは、各製造工場FCが文字認識対象とする単一行文字列ごとに対応する文字列ルールと、各製造工場FCが文字認識対象として登録したフォーマット化書面における項目ごとの文字列ルールとを記憶する。
【0036】
図5は、文字列ルールテーブルの一例を示している。図5(A)は、単一行文字列を文字認識対象とする場合の文字列ルールテーブルである。単一行文字列に対応する文字列ルールテーブルは、単一行文字列に対して1以上の文字列ルールを定義する構造である。1つの単一行文字列に対応する文字列ルールに対してはシーケンス番号が付与される。
図5(B)は、フォーマット化書面に対応する文字列ルールテーブルである。フォーマット化書面に対応する文字列ルールテーブルは、フォーマット化書面ごとに対応するフォーマットIDを格納し、1つのフォーマットIDに対応して、フォーマット化書面において含まれる1以上の項目IDと、各項目IDに対応する1以上の文字列ルールとが格納される。1つの項目IDが示す項目に対応する1以上の文字列ルールには、1から昇順によるシーケンス番号が付与される。
文字列ルールは、例えば文字の桁ごとに指定される文字あるいは文字の範囲の条件を指定する。
なお、文字列ルールのない単一行文字列あるいは項目の文字列については、文字列ルールテーブルに対応の文字列ルールが格納されなくともよい。
【0037】
説明を図3に戻す。文字変換テーブル記憶部233は、文字変換テーブルを記憶する。文字変換テーブルは、後述のように文字認識処理によって認識された文字についてのご認識を補正するにあたって使用されるテーブルである。
【0038】
図6は、文字変換テーブルの一例を示している。同図の文字変換テーブルは、変換対象となる文字(変換対象文字)ごとに1以上の変換候補文字が対応付けられる。また、1の変換対象文字に対応付けられた変換候補文字ごとに優先度(優先順位)が対応付けられる。
【0039】
[処理手順例]
図7図10のフローチャートを参照して、文字認識サーバ200が実行する処理手順例について説明する。また、図7図10の説明において、適宜、図11図14を参照して処理についての説明を行う。
【0040】
図7のフローチャートは、文字認識サーバ200が文字認識に対応して実行する処理手順例を示している。
ステップS100:文字認識支援アプリケーションがインストールされたユーザ端末100は、文字認識対象を撮像したことに応じて、文字認識対象画像を文字認識サーバ200に送信する。文字認識サーバ200において画像取得部221は、ユーザ端末100から送信された文字認識対象画像を取得する。
【0041】
ステップS102:種別判定部222は、ステップS100により取得された文字認識対象画像に対応する文字認識対象の種別が単一行文字列とフォーマット化書面とのいずれであるのかを判定する。
【0042】
図11図12を参照して、ステップS102による文字認識対象の種別判定の一例について説明する。
図11は、単一行文字列としての種別の文字認識対象画像P1を示している。図12は、フォーマット化書面としての種別の文字認識対象画像P2を示している。文字認識対象画像P1は、フレームエリアAR2に対応して抜き出された画像部分に対応する。文字認識対象画像P2は、撮像画像エリアAR1に対応する画像部分に対応する。
以降の説明において文字認識対象画像P1、P2について特に区別しない場合には、文字認識対象画像Pと記載する。
ステップS102において、種別判定部222は、ステップS100により取得された文字認識対象画像P1の高さh1を測定するとともに、文字認識対象画像P1において存在する文字列に対応する高さのうちで最も大きい値を高さh2として測定する。種別判定部222は、h2/h1と所定のしきい値Kとを比較する。種別判定部222は、h2/h1がしきい値Kより大きければ、文字認識対象は単一行文字列の種別であると判定し、h2/h1がしきい値K以下であれば、文字認識対象はフォーマット化書面の種別であると判定する。
【0043】
また、種別判定部222は、先のステップS102による文字認識対象の種別判定を以下のようにして行ってもよい。
種別判定部222は、上記のステップS112と同様に、フォーマットデータベースにおいてフォーマットごとに対応して格納される画像データの特徴量のうちから、ステップS100により取得した文字認識対象画像P2の特徴量に最も近いものを検索する。
近似値が所定の閾値より大きいフォーマットの画像データの特徴量が検索されない場合、文字認識対象画像P2と同じ内容のフォーマットの画像データは無いということになる。この場合、種別判定部222は、文字認識対象の種別が単一行文字列であると判定してよい。一方、一致するフォーマットの画像データの特徴量が検索された、文字認識対象画像Pは、一致したと判定された画像データの特徴量が対応するフォーマット化書面であることになる。この場合、種別判定部222は、文字認識対象の種別がフォーマット化書面であると判定する。
そして、このようにステップS102の種別判定を行った場合において、文字認識対象の種別がフォーマット化書面であると判定した場合には、当該ステップS102による判定結果が得られた段階で、フォーマット特定も行われたことになる。この場合、図7におけるステップS112の処理は省略されてよい。
【0044】
説明を図7に戻す。
ステップS104:種別判定部222は、ステップS104により判定された文字認識対象の種別について、単一行文字列とフォーマット化書面とのいずれであるのかを判定する。
【0045】
ステップS106:ステップS104により文字認識対象の種別が単一行文字列であると判定された場合、文字認識処理部223は、ステップS106~S110による前処理(第1文字認識前処理の一例)を実行する。単一行文字列の種別に対応する前処理として、文字認識処理部223は、まずステップS106により、文字認識対象画像Pの2値化を実行する。
【0046】
図8のフローチャートを参照して、ステップS106としての2値化の処理手順例について説明する。
ステップS200:文字認識処理部223は、単一行文字列の種別に対応する文字認識対象画像P1についてリサイズを行う。リサイズとして、文字認識処理部223は、例えば文字認識対象画像P1の高さ(縦)と幅(横)について、それぞれ所定の画素数に変更する処理となる。このようなリサイズの処理によって、後述の適応的2値化に際しては、認識対象の文字の大きさによっては、文字部分に白抜けが生じる可能性がある。当該ステップS200のリサイズにより認識対象の文字のサイズについて白抜きが生じないように調整することができる。
【0047】
ステップS202:ステップS100により取得された文字認識対象画像P1はカラー画像である。そこで、文字認識処理部223は、ステップS200によりリサイズした文字認識対象画像をグレースケールの画像に変換するグレースケール化を実行する。
【0048】
ステップS204:文字認識処理部223は、ステップS202によりグレースケール化された文字認識対象画像の平滑化を実行する。平滑化により文字認識対象画像からノイズが除去される。
【0049】
ステップS206:ステップS100にて取得された文字認識対象画像P1の背景の色と文字との色の関係によっては、文字認識処理部223は、ステップS204により平滑化された文字認識対象画像において背景が黒色で文字が白色である場合に、白黒反転する処理を実行する。これにより、文字認識対象画像は、白色の背景に黒色の文字が配置されたものとなり、次の適応的2値化に適した画像となる。
【0050】
ステップS208:文字認識処理部223は、ステップS206により白黒反転された文字認識対象画像について、適応的2値化を実行する。適応的2値化では、2値化のしきい値を画素ごとに求めつつ2値化が行われることから、文字認識対象画像において部分的に明るさが変化するような状態に対応して適切な2値化の結果を得ることができる。
【0051】
ステップS210:文字認識処理部223は、ステップS208により適応的2値化された後の文字認識対象画像について、例えばステップS200によりリサイズされる前のサイズに戻すためのリサイズを実行する。
【0052】
説明を図7に戻す。
ステップS108:文字認識処理部223は、ステップS106により2値化された文字認識対象画像について傾き補正を実行する。ステップS100により取得された文字認識対象画像Pにおける文字列は、撮像時の被写体とカメラとの角度関係により傾いている場合がある。文字認識処理にあたっては、認識対象の文字は水平であることが求められる。そこで、文字認識処理部223は、傾き補正として、文字認識対象画像Pにおける文字列が水平となるように補正を行う。
【0053】
図9のフローチャートを参照して、ステップS108としての傾き補正の処理手順例について説明する。
ステップS300:文字認識処理部223は、ステップS106による2値化が完了した文字認識対象画像における文字を白色に変換する処理を実行する。この際、背景については黒色に変換する。これにより、背景が黒色で文字が白色の文字認識対象画像が得られる。
【0054】
ステップS302:文字認識処理部223は、文字認識対象画像における文字列の塗りつぶし処理を実行する。塗りつぶし処理は、例えばモルフォロジー変換における膨張処理であってよい。例えば、このような膨張処理では、文字列認識対象画像の各画素を中心としたN画素×N画素を抜き出し、白の画素が一つでも含まれれば各画素値を白に、白の画素が含まれなければ黒に出力するようにして白の画素領域を膨張させていく。
塗りつぶし処理が文字認識対象画像の全体に対して実行されることで、例えば図13(A)に示されるように、ステップS300により得られた文字認識対象画像P10において文字列(認識対象文字列)が存在する領域は、図13(B)に示されるように1つの白色のかたまりによる塗りつぶし領域AR21に変換される。
【0055】
ステップS304:文字認識処理部223は、ステップS302により得られた塗りつぶし領域AR21に対応する外接矩形SQ(図13(B))を算出する。
【0056】
ステップS306:文字認識処理部223は、ステップS304により算出された外接矩形SQを対象に、傾き補正に対応する回転処理を実行する。文字認識処理部223は、算出された外接矩形SQの水平に対する傾き角度を算出し、算出した傾き角度がゼロとなるように外接矩形SQを回転させる。
なお、ステップS302により複数の塗りつぶし領域AR21が得られたことに応じて複数の外接矩形SQが算出された場合には、文字認識処理部223は、文字認識対象画像P10における中心位置に最も近い外接矩形SQを利用して傾き補正を行ってよい。また、文字認識処理部223は、算出された複数の外接矩形SQのうちで高さが一定以上の外接矩形SQを利用して傾き補正を行うようにしてもよい。
【0057】
説明を図7に戻す。
ステップS110:文字認識処理部223は、文字認識対象画像部分の抽出(抜き出し)を行う。つまり、文字認識処理部223は、ステップS108により傾き補正が行われた外接矩形SQに対して元の文字列を当てはめる。文字認識処理部223は、文字認識対象画像P10から、文字列を当てはめた外接矩形SQの画像部分を、文字認識対象画像部分として抽出してよい。これにより、水平の文字列を含む文字認識対象画像部分が得られる。また、このように文字認識対象画像部分を抽出することで、項目に対応する文字列以外で文字として認識されるノイズを除去できる。
【0058】
ステップS112:ステップS104にて文字認識対象画像P1の種別がフォーマット化書面であると判定された場合、文字認識処理部223は、ステップS112~S116による前処理(第2文字認識前処理の一例)を実行する。フォーマット化書面の種別に対応する前処理として、文字認識処理部223は、まず、ステップS112により、フォーマット特定を実行する。フォーマット特定は、文字認識対象画像P1が対応するフォーマット化書面のフォーマットを特定することである。
【0059】
図12を再度参照して、ステップS112によるフォーマット特定について説明する。
ステップS100により、図12に示すラベルを撮像した文字認識対象画像P2が得られた。この場合には、ステップS102、S104により文字認識対象画像P2がフォーマット化書面であることが判定される。
この場合、文字認識処理部223は、ステップS112のフォーマット特定として、文字認識対象画像P2の特徴量を算出する。また、種別判定部222は、フォーマットデータベースにおいてフォーマットごとに対応して格納される画像データの特徴量についても算出する。なお、フォーマットデータベースにおいて、フォーマットごとに画像データの特徴量も予め格納しておき、種別判定部222は、格納された画像データの特徴量を用いるようにされてもよい。種別判定部222は、フォーマットの画像データの特徴量のうちで、文字認識対象画像P2の特徴量と最も近いものを検索する。検索された特徴量が対応するフォーマットが、文字認識対象画像P1が対応するフォーマット化書面のフォーマットであるとして特定される。
【0060】
文字認識処理部223は、上記のように、文字認識対象画像P2の特徴量と一致するフォーマットの画像データの特徴量を検索するにあたり、取得した文字認識対象画像P2において項目に該当する文字列を含まない画像部分を抜き出してよい。文字認識処理部223は、抜き出した画像部分と同じ特徴量を含むフォーマットの画像データの特徴量を検索するようにされてよい。
【0061】
例えば、文字認識対象画像P2においては、項目ごとに対応する文字列領域AR12(AR12-1~AR12-7)を含む。項目に対応する文字列領域AR12において示される文字列は固定ではなく変更されるものも多い。このため、同じフォーマットのフォーマット化書面であっても、文字認識対象画像P2におけるフォーマット化書面の内容と、フォーマットデータにおいて格納されるフォーマット化書面の画像データの内容とで項目の文字が異なっている場合がある。つまり、文字認識対象画像P2の特徴量と、フォーマットデータにおいて格納される画像データの特徴量とを比較した場合には、一定以上の相違が生じて検索の精度が低下する可能性がある。
そこで、上記のように、文字認識対象画像P2において項目に該当する文字列を含まない画像部分の特徴量を検索に用いることで検索の精度を高めることができる。
【0062】
具体的に図12の例では、文字認識処理部223は、文字認識対象画像P2における画像部分AR13を抜き出して検索に用いてよい。画像部分AR13は、項目に対応する文字列を含まず固定的な内容を有し絵柄も特徴的であることから、検索に有効である。
文字認識処理部223は、例えば文字認識対象画像において項目に対応する文字列が配置されていると推定される領域を推定し、推定した領域ができるだけ少なく、絵柄等が含まれる領域を検索に用いる画像部分として決定してよい。このように画像部分を決定する処理は、例えば各種のフォーマット化書面の画像と検索に用いる画像部分との対応を学習させた学習済みモデルを用いて実行されてよい。
【0063】
ステップS114:文字認識処理部223は、ステップS100にて取得した文字認識対象画像からフォーマット化書面に対応する画像部分を抽出する。
【0064】
ステップS116:文字認識処理部223は、ステップS114により抽出したフォーマット化書面の画像部分から、項目に対応する画像部分を文字認識対象画像部分として抽出する。具体的に、ステップS114により抽出されたフォーマット化書面の画像部分が図12に示されるものであった場合、文字認識処理部223は、文字列領域AR12(AR12-1~AR12-7)を文字認識対象画像部分として抽出してよい。
この場合において、文字認識処理部223は、ステップS112にて特定されたフォーマットのフォーマットデータにおける項目ごとの座標の情報を用いて、文字認識対象画像における項目ごとの位置を特定し、特定した位置に対応する画像部分を文字認識対象画像部分として抽出してよい。このように文字認識対象画像部分を抽出することで、項目に対応する文字列以外で文字として認識されるノイズを除去できる。
また、例えば図12における文字列領域AR12-7におけるURLのように変更されることなく固定的となる文字列の項目については、例えば文字認識対象画像部分から除外されてよい。このためには、例えばフォーマットデータにおける項目のデータのうちに、文字列領域AR12-7に対応する項目のデータを含めないようにしてよい。
【0065】
なお、ステップS114によるフォーマット化書面に対応する画像部分の抽出に際して、文字認識処理部223は、傾き補正を実行してよい。この場合の傾き補正として、文字認識処理部223は、フォーマット化書面に対応する画像部分においてフォーマットデータと一致する特徴部分を、フォーマットデータにおいて特徴が一致した特徴部分と同じ位置とするように射影変換を行ってよい。
【0066】
ステップS118:文字認識処理部223は、ステップS110またはステップS116により抽出された文字認識対象画像部分を対象に文字認識処理を実行する。つまり、文字認識処理部223は、文字認識対象画像部分における文字列を認識する。
【0067】
ステップS120:ステップS118による文字認識処理の結果に誤りが含まれている可能性がある。そこで、文字認識処理部223は、ステップS118により認識された文字列における文字の補正(文字補正)を実行する。
【0068】
図10のフローチャートを参照して、ステップS122としての文字補正の処理手順例について説明する。なお、以降の説明から理解されるように、文字補正の処理は、文字認識対象画像部分ごとに対応して最終的な文字認識結果を確定させる処理となる。
【0069】
ステップS400:文字認識処理部223は、ステップS118により文字認識処理を行った文字認識対象画像部分のうちから補正対象とする文字認識対象画像部分を1つ選択する。
【0070】
ステップS402:文字認識処理部223は、補正対象の文字認識対象画像部分に対するステップS118の文字認識処理の結果として、認識された文字列単位が複数存在するか否かを判定する。文字列単位とは、1以上の文字によるひとまとまりの単位である。1つの文字が水平方向において他の文字と一定の距離を隔てている場合には、当該1つの文字により1つの単位文字列が形成され、複数の文字が水平方向において互いに隣り合う文字が一定の距離にある複数の文字により1つの単位文字列が形成される。
【0071】
ステップS404:ステップS402において単位文字列が複数存在すると判定された場合、文字認識処理部223は、文字認識対象画像部分において存在する複数の単位文字列の配置に応じて、複数の単位文字列を結合させた結合文字列を生成する。
【0072】
図14を参照して、結合文字列の設定例について説明する。同図は、ステップS400により選択された文字認識対象画像部分P20に対する含まれる文字認識処理の結果の一例が示されている。
1の文字認識対象画像部分P20においては、単一行文字列に対応する1つの単位文字列、もしくはフォーマットにおける1つの項目に対応する1つの単位文字列が存在する。しかしながら、例えば文字認識対象画像部分においてこれまでの処理により除去しきれなかったノイズ等がある場合には、ステップS118による文字認識処理の結果として、複数の単位文字列が得られる場合がある。同図においては、左上の認識単位文字列UN-1と右上の認識単位文字列UN-2と、左下の認識単位文字列UN-3と、右下の認識単位文字列UN-4との4つが存在するとの文字認識処理の結果が得られている。認識単位文字列UN(UN-1、UN-2、UN-3、UN-4)のそれぞれにおいて文字列を形成する各文字が認識されている。
【0073】
このように1つの文字認識対象画像部分P20において複数の認識単位文字列UNが存在することとなった場合、文字認識処理部223は、正解の単位文字列となり得る認識単位文字列UNの組み合わせごとに単位文字列を連結して連結単位文字列を設定する。
具体的に、図14の例の場合には、文字認識処理部223は、単独の認識単位文字列UN-1、UN-2、UN-3、UN-4のそれぞれを、単独で連結単位文字列として設定する。また、文字認識処理部223は、文字認識対象画像部分P20内で水平方向において重複することなく存在する位置関係にある複数の認識単位文字列UNにより連結単位文字列を設定する。具体的には、文字認識処理部223は、認識単位文字列UN-1と認識単位文字列UN-2とにより連結単位文字列を設定し、認識単位文字列UN-3と認識単位文字列UN-2とにより連結単位文字列を設定してよい。なお、認識単位文字列UN-1と認識単位文字列UN-4とは、破線で示すように水平方向において重複することから、連結単位文字列として設定されない。
【0074】
文字認識処理部223は、上記のように設定した連結単位文字列ごとに、認識単位文字列UNの左から右にかけて順に文字列を結合していくことで1つの文字列(結合文字列)を生成する。具体的に、認識単位文字列UN-1の文字列が「12345」で認識単位文字列UN-2の文字列が「AB-CD」である場合、連結単位文字列は、「12345AB-CD」となる。単一の認識単位文字列UNによる連結単位文字列については、対応の認識単位文字列UNにおける文字列をそのまま結合文字列として生成してよい。
また、ステップS402による文字認識処理の結果として、文字認識対象画像部分P20の外枠からはみ出す部分があるようにして存在する認識単位文字列UN-5が得られる場合がある。このような認識単位文字列UN-5について、文字認識処理部223は、ステップS404において連結単位文字列から除外してよい。
【0075】
ステップS406:文字認識処理部223は、ステップS404により生成した結合文字列ごとに、文字列ルールテーブル記憶部232に記憶されている対応の文字列ルールと一致しているか否かの判定(ルール一致判定)を行う。
【0076】
ステップS408:文字認識処理部223は、ステップS406のルール一致判定により、対応の文字列ルールと一致していると判定された結合文字列が有るか否かを判定する。
【0077】
ステップS410:ステップS404により生成された結合文字列のうちのいずれか1つが正しい文字認識結果に対応しているのであるが、ステップS408により対応の文字列ルールと一致していると判定された結合文字列がないと判定された場合には、正しい文字認識結果に対応している結合文字列において誤認識された文字が含まれていることになる。
そこで、文字認識処理部223は、結合文字列ごとに、文字の補正と補正後の結合文字列についてのルール一致判定とを行う。
1つの結合文字列の補正にあたり、文字認識処理部223は、文字変換テーブルに記憶されている文字変換テーブルを利用する。文字認識処理部223は、補正対象の結合文字列において、ルール一致判定の結果として文字列ルールに一致していないことが特定された文字を変換対象として、文字変換テーブルを用いて文字の変換を行う。例えば結合文字列においてアルファベットの「O」として認識されている文字を変換対象とする場合、文字認識処理部223は、文字変換テーブル(図6)を参照して、変換対象文字としてのアルファベットの「O」に対応付けられた変換候補文字のうちで先ず優先度が最も高い数字の「0」に変換する。
文字認識処理部223は、補正後の結合文字列ごとに再度、ルール一致判定を行う。
【0078】
ステップS412:ステップS402にて存在する単位文字列が1つであると判定された場合、文字認識処理部223は、当該1つの単位文字列についてルール一致判定を行う。
【0079】
ステップS414:文字認識処理部223は、ステップS412によるルール一致判定について対応の文字列ルールに一致するとの判定結果が得られたか否かを判定する。
【0080】
ステップS416:ステップS414にて対応の文字列ルールに一致していないと判定された場合、文字認識処理部223は、ステップS410に準じて、対象の単位文字列において文字列ルールに一致していないことが特定された文字について文字変換テーブルを用いて変換するようにして補正を行う。文字認識処理部223は、補正された単位文字列について再度ルール一致判定を行う。
【0081】
ステップS418:文字認識処理部223は、今回選択された文字認識対象画像部分に対応する最終的な文字認識結果を確定させる。
具体的に、文字認識処理部223は、ステップS408にて文字列ルールと一致した結合文字列が有ると判定された場合には、文字列ルールと一致した結合文字列を最終的に認識した文字列として確定させる。
また、文字認識処理部223は、ステップS414にて対象の単位文字列が文字列ルールに一致したと判定された場合には、当該対象の単位文字列を、最終的に認識した文字列として確定させる。
また、文字認識処理部223は、ステップS410の処理を経た場合には、当該ステップS410にて文字列ルールと一致したことが判定された補正後の結合文字列を、最終的に認識した文字列として確定させる。また、ステップS410の処理の結果、文字列ルールと一致する補正後の結合文字列がなかったと判定された場合には、文字認識エラーであると確定させてよい。
また、文字認識処理部223は、ステップS414にて文字列ルールと一致したことが判定された場合には、対象の単位文字列を、最終的に認識した文字列として確定させる。
また、文字認識処理部223は、ステップS416を経た場合として、当該ステップS416にて補正後の単位文字列が文字列ルールと一致した場合には、補正後の単位文字列を、最終的に認識した文字列として確定させる。一方、ステップS416を経た場合として、当該ステップS416にて補正後の単位文字列が文字列ルールと一致しなかった場合には、文字認識エラーであると確定させてよい。
【0082】
ステップS420:文字認識処理部223は、現段階にて、全ての文字認識対象画像部分を対象とする文字補正(文字認識結果の確定)の処理が完了したか否かを判定する。
全ての文字認識対象画像部分を対象とする処理が完了していないと判定された場合には、ステップS400に処理が戻されることで、次の文字認識対象画像部分を対象とする処理が実行される。
文字認識対象画像の種別が単一行文字列であった場合には、文字認識対象画像部分は1つであることから、1回目のステップS420にて全ての文字認識対象画像部分を対象とする処理が完了したと判定される。また、文字認識対象画像の種別がフォーマット化書面であった場合には、対応のフォーマットにおける全ての項目ごとに対応する文字認識対象画像部分ごとの処理が完了したことを以て、ステップS420にて全ての文字認識対象画像部分を対象とする処理が完了したと判定される。
【0083】
説明を図7に戻す。
ステップS122:処理結果送信部224は、ステップS418により得られた最終的な文字認識結果を示す文字認識結果情報を、文字認識対象画像の送信元のユーザ端末100に送信する。ユーザ端末100は、受信した文字認識結果情報を表示等により出力する。
なお、ステップS122の処理は、図2の例のように即座に文字認識結果が表示されるように、文字認識結果が確定され次第、文字認識結果情報を送信する場合の手順となる。例えば、処理結果送信部224は、ステップS418による最終的な文字認識結果を記憶しておき、ユーザ端末100から要求されたことに応じて、記憶していた文字認識結果の文字認識結果情報をユーザ端末100に送信してもよい。
【0084】
製造工場FCにおいて、管理者等のユーザは、文字認識サーバ200から送信された文字認識結果情報を用いて製造に関する管理を行うことができる。
一例として、例えば製造工場FCにおいて、製品のパッケージ等に印刷された製品の賞味期限等の所定項目の印刷内容についての文字認識結果情報を確認することで、製品における印刷間違い等を効率良く発見することができる。
なお、製造工場FCのユーザが文字認識サーバ200に賞味期限等の正しい文字列の情報を登録しておくようにされたうえで、文字認識サーバ200が文字認識結果と登録された文字列とを比較し、相違していれば、ユーザ端末100に対して印刷間違いが生じていることを報知するようにされてもよい。
【0085】
また、例えば製造工場FCにおいて、製品に付された型番等についてバーコードなどによりコード化されていない場合においては、ユーザが型番等の文字認識処理結果を利用することで、効率良く棚卸し等を行うこともできる。
【0086】
また、製造工場FCにおける設備における計器の計測値などをユーザ端末100により撮像して、計測値の文字認識結果を保管(記憶)しておくようにして設備のメンテナンスに利用することができる。
【0087】
また、ユーザは、ユーザ端末100により帳票を撮像し、帳票単位で文字認識結果を保管しておくようにすることで、例えば受注番号に応じた帳票の分類などの帳票に関する管理を、コンピュータを用いて行うことができる。
【0088】
なお、文字認識サーバ200は、印刷された単一行文字列や帳票等をスキャンして得られた画像データやPDF形式等をはじめとする文書ファイルを取得して文字認識対象としてよい。また、他の任意のシステムから電子データとして出力された画像データや文書ファイルを取得して文字認識対象としてよい。
【0089】
なお、本実施形態の文字認識処理システムの用途は特に限定されるものではなく、製造工場FC以外の環境に対応して利用されてよい。
【0090】
なお、上述のユーザ端末100、文字認識サーバ200等の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより上述のユーザ端末100、文字認識サーバ200等の処理を行ってもよい。ここで、「記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行する」とは、コンピュータシステムにプログラムをインストールすることを含む。ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。このように、プログラムを記憶した記録媒体は、CD-ROM等の非一過性の記録媒体であってもよい。また、記録媒体には、当該プログラムを配信するために配信サーバからアクセス可能な内部または外部に設けられた記録媒体も含まれる。配信サーバの記録媒体に記憶されるプログラムのコードは、端末装置で実行可能な形式のプログラムのコードと異なるものでもよい。すなわち、配信サーバからダウンロードされて端末装置で実行可能な形でインストールができるものであれば、配信サーバで記憶される形式は問わない。なお、プログラムを複数に分割し、それぞれ異なるタイミングでダウンロードした後に端末装置で合体される構成や、分割されたプログラムのそれぞれを配信する配信サーバが異なっていてもよい。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0091】
100 ユーザ端末、200 文字認識サーバ、201 通信部、202 制御部、203 記憶部、221 画像取得部、222 種別判定部、223 文字認識処理部、224 処理結果送信部、231 フォーマットデータベース記憶部、232 文字列ルールテーブル記憶部、233 文字変換テーブル記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14