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

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

▶ シャープ株式会社の特許一覧

特開2024-118511画像処理装置、画像処理方法、及び画像処理プログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024118511
(43)【公開日】2024-09-02
(54)【発明の名称】画像処理装置、画像処理方法、及び画像処理プログラム
(51)【国際特許分類】
   G06V 30/14 20220101AFI20240826BHJP
   G06V 30/12 20220101ALI20240826BHJP
【FI】
G06V30/14 340A
G06V30/12 C
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2023024825
(22)【出願日】2023-02-21
(71)【出願人】
【識別番号】000005049
【氏名又は名称】シャープ株式会社
(74)【代理人】
【識別番号】100167302
【弁理士】
【氏名又は名称】種村 一幸
(74)【代理人】
【識別番号】100135817
【弁理士】
【氏名又は名称】華山 浩伸
(74)【代理人】
【識別番号】100181869
【弁理士】
【氏名又は名称】大久保 雄一
(72)【発明者】
【氏名】石倉 知弥
(72)【発明者】
【氏名】高島 真彦
(72)【発明者】
【氏名】五十嵐 大輔
【テーマコード(参考)】
5B029
5B064
【Fターム(参考)】
5B029CC21
5B029CC25
5B064EA07
5B064EA18
(57)【要約】
【課題】入力画像の文字列を適切に認識することが可能な画像処理装置、画像処理方法、及び画像処理プログラムを提供する。
【解決手段】画像処理装置は、画像から複数の文字で構成される文字列を認識する文字列認識処理部と、前記画像から1文字単位の文字を認識する1文字認識処理部と、前記文字列認識処理部による認識結果と、前記1文字認識処理部による認識結果とに基づいて、前記文字列認識処理部により認識される前記文字列を補正する補正処理部と、を備える。
【選択図】図1
【特許請求の範囲】
【請求項1】
画像から複数の文字で構成される文字列を認識する文字列認識処理部と、
前記画像から1文字単位の文字を認識する1文字認識処理部と、
前記文字列認識処理部による認識結果と、前記1文字認識処理部による認識結果とに基づいて、前記文字列認識処理部により認識される前記文字列を補正する補正処理部と、
を備える画像処理装置。
【請求項2】
前記文字列認識処理部は、認識した前記文字列に対応する文字列矩形を設定し、
前記1文字認識処理部は、認識した前記文字に対応する1文字矩形を設定し、
前記補正処理部は、前記文字列矩形の長手方向の端部に前記1文字矩形が重なる場合に、前記文字列矩形の端部を前記1文字矩形の端部に拡張する、
請求項1に記載の画像処理装置。
【請求項3】
前記文字列認識処理部は、認識した前記文字列に対応する文字列矩形を設定し、
前記1文字認識処理部は、認識した前記文字に対応する1文字矩形を設定し、
前記補正処理部は、前記文字列矩形の端部の長手方向の近傍に前記1文字矩形が配置される場合に、前記文字列矩形の端部を前記1文字矩形の端部に拡張する、
請求項1に記載の画像処理装置。
【請求項4】
前記文字列矩形の長手方向の端部に重なる前記1文字矩形、又は、前記文字列矩形の端部の長手方向の近傍に配置される前記1文字矩形と、前記長手方向に隣り合う他の1文字矩形との間の距離が所定距離未満の場合に、前記補正処理部は、前記文字列矩形の端部を前記他の1文字矩形の端部に拡張し、
前記距離が所定距離以上の場合に、前記補正処理部は、前記文字列矩形の端部を前記1文字矩形の端部に拡張する、
請求項2又は3に記載の画像処理装置。
【請求項5】
前記文字列認識処理部は、認識した前記文字列に対応する文字列矩形を設定し、
前記1文字認識処理部は、認識した前記文字に対応する1文字矩形を設定し、
前記補正処理部は、前記文字列矩形の短手方向の端部に前記1文字矩形が重なる場合に、前記文字列矩形の端部を前記1文字矩形の端部に拡張する、
請求項1に記載の画像処理装置。
【請求項6】
前記文字列矩形と前記1文字矩形とを、表示画面に表示される前記画像上に表示させる、
請求項2又は3に記載の画像処理装置。
【請求項7】
前記補正処理部により補正された前記文字列に対して文字認識処理を実行する、
請求項1に記載の画像処理装置。
【請求項8】
画像から複数の文字で構成される文字列を認識する文字列認識処理を実行することと、
前記画像から1文字単位の文字を認識する1文字認識処理を実行することと、
前記文字列認識処理の認識結果と、前記1文字認識処理の認識結果とに基づいて、前記文字列認識処理により認識される前記文字列を補正することと、
を一又は複数のプロセッサーが実行する画像処理方法。
【請求項9】
画像から複数の文字で構成される文字列を認識する文字列認識処理を実行することと、
前記画像から1文字単位の文字を認識する1文字認識処理を実行することと、
前記文字列認識処理の認識結果と、前記1文字認識処理の認識結果とに基づいて、前記文字列認識処理により認識される前記文字列を補正することと、
を一又は複数のプロセッサーに実行させるための画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像に対して文字認識等の画像処理を実行する技術に関する。
【背景技術】
【0002】
従来、文書、帳票等の書類の画像から文字列を抽出する技術が知られている。例えば、設定した基準値に基づいて矩形の有効/無効を判断し、領域識別処理の結果に基づいて行方向の設定を行い、有効矩形を対象に切り出した行矩形を1文字単位に分割し、切り出した1文字の画像特徴とパターン辞書の文字特徴とを比較して文字認識する文字認識装置が知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003-256772号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
例えば、画像から認識される文字列が長い場合に、文字列の端部(始端文字、終端文字など)を適切に認識できない問題が生じ得る。この場合、文字列として認識した範囲(文字列矩形)を文字列の端部の周辺の画素を探索しながら適切な位置まで拡張させる方法が考えられるが、処理負荷が大きくなる問題が生じる。また、文字列の端部の周辺に意図しない文字(表の罫線、イラストなど)が存在している場合、これらの文字を文字列として取り込んでしまう問題も生じる。文字列を適切に検出できない場合、文字列に対する文字認識処理(OCR)の精度が低下してしまう。
【0005】
本開示の目的は、入力画像の文字列を適切に認識することが可能な画像処理装置、画像処理方法、及び画像処理プログラムを提供することにある。
【課題を解決するための手段】
【0006】
本開示の一の態様に係る画像処理装置は、画像から複数の文字で構成される文字列を認識する文字列認識処理部と、前記画像から1文字単位の文字を認識する1文字認識処理部と、前記文字列認識処理部による認識結果と、前記1文字認識処理部による認識結果とに基づいて、前記文字列認識処理部により認識される前記文字列を補正する補正処理部と、を備える。
【0007】
本開示の他の態様に係る画像処理方法は、画像から複数の文字で構成される文字列を認識する文字列認識処理を実行することと、前記画像から1文字単位の文字を認識する1文字認識処理を実行することと、前記文字列認識処理の認識結果と、前記1文字認識処理の認識結果とに基づいて、前記文字列認識処理により認識される前記文字列を補正することと、を一又は複数のプロセッサーが実行する方法である。
【0008】
本開示の他の態様に係る画像処理プログラムは、画像から複数の文字で構成される文字列を認識する文字列認識処理を実行することと、前記画像から1文字単位の文字を認識する1文字認識処理を実行することと、前記文字列認識処理の認識結果と、前記1文字認識処理の認識結果とに基づいて、前記文字列認識処理により認識される前記文字列を補正することと、を一又は複数のプロセッサーに実行させるためのプログラムである。
【発明の効果】
【0009】
本開示によれば、入力画像の文字列を適切に認識することが可能な画像処理装置、画像処理方法、及び画像処理プログラムを提供することができる。
【図面の簡単な説明】
【0010】
図1図1は、本開示の実施形態に係る画像処理装置の構成を示す機能ブロック図である。
図2図2は、本開示の実施形態に係る入力画像の一例(見積書)を示す図である。
図3図3は、本開示の実施形態に係る入力画像の文字列認識結果の一例を示す図である。
図4A図4Aは、本開示の実施形態に係る入力画像の一例を示す図である。
図4B図4Bは、本開示の実施形態に係る入力画像の文字列認識結果の一例を示す図である。
図5図5は、本開示の実施形態に係る入力画像の1文字認識結果の一例を示す図である。
図6A図6Aは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図6B図6Bは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図6C図6Cは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図7A図7Aは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図7B図7Bは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図7C図7Cは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図8A図8Aは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図8B図8Bは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図8C図8Cは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図8D図8Dは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図9A図9Aは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図9B図9Bは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図9C図9Cは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図9D図9Dは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図9E図9Eは、本開示の実施形態に係る文字列補正処理の一例を示す図である。
図10図10は、本開示の実施形態に係る画像処理装置において実行される画像処理の手順の一例を示すフローチャートである。
図11図11は、本開示の実施形態に係る画像処理装置において実行される画像処理(文字列補正処理)の手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、添付図面を参照しながら、本開示の実施形態について説明する。なお、以下の実施形態は、本開示を具体化した一例であって、本開示の技術的範囲を限定する性格を有さない。
【0012】
[画像処理装置1]
図1は、本開示の実施形態に係る画像処理装置1の構成を示すブロック図である。画像処理装置1は、入力画像(画像データ)に含まれる文字列(文書パーツ)を認識し、認識した文字列に対して周知の文字認識処理(OCR処理)を実行して文字認識結果を出力するものである。
【0013】
図1に示すように、画像処理装置1は、制御部11、記憶部12、操作表示部13、通信部14などを備える。画像処理装置1は、1台又は複数台のクラウドサーバーであってもよいし、1台又は複数台の物理サーバーであってもよい。
【0014】
通信部14は、画像処理装置1を有線又は無線でネットワークN1に接続し、ネットワークN1を介して外部機器(操作端末2など)との間で所定の通信プロトコルに従ったデータ通信を実行するための通信インターフェースである。ネットワークN1は、例えばインターネット、LANなどで構成される。
【0015】
操作表示部13は、各種の情報を表示する液晶ディスプレイ又は有機ELディスプレイのような表示部と、操作を受け付けるマウス、キーボード、又はタッチパネルなどの操作部とを備えるユーザーインターフェースである。
【0016】
記憶部12は、各種の情報を記憶するHDD(Hard Disk Drive)、SSD(Solid State Drive)、又はフラッシュメモリーなどの不揮発性の記憶部である。記憶部12には、制御部11に後述の画像処理(図10及び図11参照)を実行させるための画像処理プログラム(本開示の画像処理プログラムの一例)などの制御プログラムが記憶されている。例えば、前記画像処理プログラムは、CD又はDVDなどのコンピュータ読取可能な記録媒体に非一時的に記録され、画像処理装置1が備えるCDドライブ又はDVDドライブなどの読取装置(不図示)で読み取られて記憶部12に記憶される。なお、前記画像処理プログラムは、クラウドサーバーから配信されて記憶部12に記憶されてもよい。
【0017】
また、記憶部12には、外部機器(操作端末2など)から取得する文書等の画像データ(スキャンデータなど)が記憶されている。
【0018】
図2には、文書の一例として見積書を示している。図2に示すように、見積書には、書類の区分(「見積書」)、発行日、宛先、見積者の連絡先、見積額、商品名、数量、標準価格、値引き額、小計、消費税、合計金額など、複数の項目が含まれる。ユーザーは、操作端末2において、前記見積書をスキャンして画像データ(入力画像)を画像処理装置1にアップロードする。なお、ユーザーは、カメラ機能を有する操作端末2により撮影した画像データをネットワーク経由で画像処理装置1にアップロードしてもよいし、操作端末2とは異なる情報端末から画像データをネットワーク経由で画像処理装置1にアップロードしてもよい。制御部11は、見積書の画像データを取得すると記憶部12に記憶する。他の実施形態として、制御部11は、操作端末2において作成された見積書の文書ファイルを取得し、当該文書ファイルを記憶部12に記憶してもよい。
【0019】
制御部11は、CPU、ROM、及びRAMなどの制御機器を有する。前記CPUは、各種の演算処理を実行するプロセッサーである。前記ROMは、前記CPUに各種の処理を実行させるためのBIOS及びOSなどの制御プログラムを予め記憶する。前記RAMは、各種の情報を記憶し、前記CPUが実行する各種の処理の一時記憶メモリー(作業領域)として使用される。そして、制御部11は、前記ROM又は記憶部12に予め記憶された各種の制御プログラムを前記CPUで実行することにより画像処理装置1を制御する。
【0020】
制御部11は、文書の画像データを取得すると、画像データに対して解像度変換処理、スキュー補正処理、下地除去処理などの前処理を実行し、その後に文字列(文書パーツ)の認識処理(抽出処理)を実行する。例えば、制御部11は、前記前処理を実行した画像データにおいて、文字列、表、イラスト、捺印などの各パーツをオブジェクトの矩形領域として認識する。また、制御部11は、文書パーツの認識処理を実行すると、画像データの全体(全体画像)において文字認識処理(OCR処理)を実行する。また、制御部11は、OCR処理の結果を用いて、文字データを文字列として統合(単語化)する。
【0021】
例えば図3に示す見積書の画像データP1において、制御部11は、物体認識処理AIを用いて文字列を認識する。制御部11は、画像データP1において、認識した各文字列の範囲を示す文字列矩形を設定する。図3において、矩形枠は文字列矩形の一例である。文字列を適切に認識できた場合は、図3に示すように、各文字列の始端文字から終端文字までの複数の文字が文字列矩形内に収まる。
【0022】
ここで、従来の技術では、例えば文書画像において文字列が長文の場合に、文字列の端部(始端文字、終端文字など)を適切に認識できない問題が生じ得る。以下では、図4Aに示す文書を例に挙げて説明する。従来のシステムでは、図4Aに示す文書を文字列として認識した場合、比較的短い文書については適切に文字列矩形K1を設定することができる(図4B参照)。これに対して、文書が長くなると、始端文字(「ご」)、終端文字(「す」、「。」)を適切に認識できず、端部の文字が欠けた状態で文字列を抽出してしまう。この場合に、文字列矩形を補正しようとすると、文字列の端部の周辺の画素を探索しながら適切な位置まで拡張させなければならないため処理負荷が大きくなったり、文字列の端部の周辺に意図しない文字(表の罫線、イラストなど)が存在している場合にこれらの文字を文字列として取り込んでしまったりする問題が生じる。これに対して、本開示に係る画像処理装置1は、以下に示すように、入力画像の文字列を適切に認識することが可能である。
【0023】
具体的には、制御部11は、図1に示すように、取得処理部111、文字列認識処理部112、1文字認識処理部113、補正処理部114などの各種の処理部を含む。なお、制御部11は、前記画像処理プログラムに従った各種の処理を実行することによって前記各種の処理部として機能する。また、制御部11に含まれる一部又は全部の処理部が電子回路で構成されていてもよい。なお、前記画像処理プログラムは、複数のプロセッサーを前記各種の処理部として機能させるためのプログラムであってもよい。
【0024】
取得処理部111は、入力画像を取得する。具体的には、取得処理部111は、文字認識対象の画像(入力データ)を操作端末2から取得する。例えば、取得処理部111は、図2に示す見積書などの各種文書画像の画像データを取得する。
【0025】
文字列認識処理部112は、取得処理部111により取得された入力画像において文書パーツの認識処理を実行する。具体的には、文字列認識処理部112は、入力画像から複数の文字で構成される文字列を認識する文字列認識処理を実行する。また、文字列認識処理部112は、認識した文字列に対応する文字列矩形を設定する。すなわち、文字列認識処理部112は、複数の文字の塊を文字列矩形として認識する。例えば図4Aに示す入力画像において、文字列認識処理部112は、各文字列に対応する複数の文字列矩形K1を設定する。なお、図4Bに示すように、「ご注文に適用される売買条件はご注文時に有効な弊社販売条項に基づきます。」の長文については、始端文字(「ご」)及び終端文字(「す」、「。」)が欠けた状態の文字列矩形K1が設定される。
【0026】
1文字認識処理部113は、取得処理部111により取得された入力画像において1文字単位の文字を認識する1文字認識処理を実行する。また、1文字認識処理部113は、認識した文字に対応する1文字矩形を設定する。すなわち、1文字認識処理部113は、最小単位の文字を文字列矩形として認識する。例えば図5に示すように、1文字認識処理部113は、各文字に対応する複数の1文字矩形K2を設定する。
【0027】
補正処理部114は、文字列認識処理部112が認識した文字列に内包されない文字が存在する場合に、文字列を補正する処理(文字列補正処理)を実行する。具体的には、補正処理部114は、文字列認識処理部112による認識結果と、1文字認識処理部113による認識結果とに基づいて、文字列認識処理部112により認識される文字列(文字列矩形K1)を補正する。例えば、補正処理部114は、文字列矩形K1の長手方向の端部に1文字矩形K2が重なる場合に、文字列矩形K1の端部を1文字矩形K2の端部に拡張する。また、補正処理部114は、文字列矩形K1の端部の長手方向の近傍に1文字矩形K2が配置される場合に、文字列矩形K1の端部を1文字矩形K2の端部に拡張する。すなわち、補正処理部114は、文字列認識処理部112が認識した文字列に内包されない文字が存在する場合に、当該文字が文字列内に内包されるように文字列の範囲を補正する。
【0028】
図6Aに示す例では、文字列矩形K1の長手方向の左端部に「ご」の1文字矩形K2が重なっており、文字列矩形K1の長手方向の右端部に「す」の1文字矩形K2が重なっている。この場合、補正処理部114は、図6Bに示すように、文字列矩形K1の左端部を「ご」が含まれる位置まで拡張し、文字列矩形K1の右端部を「す」が含まれる位置まで拡張する。
【0029】
また図6Bに示すように、文字列矩形K1の右端部を拡張後、右端部の長手方向の近傍(「す」の隣)に「。」の1文字矩形K2が存在している。補正処理部114は、図6Cに示すように、文字列矩形K1の右端部を「。」が含まれる位置までさらに拡張する。
【0030】
図7A図7Cには他の例を示している。図7Aには、罫線で区画された表画像から認識された文字列の文字列矩形K1を示している。従来のシステムでは、図7Aに示す文字列矩形K1の拡張処理を実行すると、表画像の罫線が文字の色と類似する場合に、文字列矩形K1を、罫線を含む範囲まで拡張してしまう(図7B参照)。この場合、文字列矩形K1の範囲をOCR処理すると、図7Cに示すように、本来の文字列の先頭に意図しない文字が認識されてしまう。
【0031】
この点、本開示の実施形態では、文字列認識処理部112が文字列を認識して文字列矩形K1を設定し(図8A参照)、1文字認識処理部113が各文字を認識して1文字矩形K2を設定する(図8B参照)。そして、補正処理部114は、文字列矩形K1の端部(ここでは左端部)が1文字矩形K2に重なる場合に(図8C参照)、図8Dに示すように1文字矩形K2(文字「W」)に重なる文字列矩形K1の左端部を、文字「W」が含まれる位置まで拡張する。
【0032】
このように、補正処理部114は、文字列認識処理部112が認識した文字列に1文字認識処理部113が認識した文字が重なる場合、又は、当該文字列の近傍に当該文字が存在する場合に、当該文字が文字列内に含まれるように文字列の範囲(文字列矩形K1)を補正する。これにより、画像から文字列を適切に抽出することができる。
【0033】
なお、「近傍」は、文字列矩形K1と1文字矩形K2とが隣接している場合(「隣接」の意味)に限定されず、文字列矩形K1と1文字矩形K2との間の距離が所定距離未満である場合も含まれる。前記所定距離は、例えば、1文字矩形K2の横幅に設定されてもよいし、文字列矩形K1の横幅に応じて設定(文字列矩形K1の横幅が大きいほど、前記所定距離を大きくするなど)されてもよい。
【0034】
図8Dに示す例では、文字列矩形K1の左端部から文字「.」の1文字矩形K2までの距離L1が所定距離以上であるため、補正処理部114は、文字列矩形K1を、文字「.」が含まれる位置までは拡張しない。すなわち、文字列矩形K1の長手方向の端部に重なる1文字矩形K2、又は、文字列矩形K1の端部の長手方向の近傍に配置される1文字矩形K2と、長手方向に隣り合う他の1文字矩形K2との間の距離が所定距離未満の場合に、補正処理部114は、文字列矩形K1の端部を他の1文字矩形の端部に拡張し、前記距離が所定距離以上の場合には、補正処理部114は、文字列矩形K1の端部を1文字矩形K2の端部に拡張する(他の1文字矩形K2の端部までは拡張しない)。これにより、意図しない文字が1つの文字列として認識されることを防ぐことができる。
【0035】
図9A図9Eにはさらに他の例を示している。図9Aには入力画像を示し、図9Bには、入力画像から認識された文字列の文字列矩形K1を示している。例えば図9Bに示すように、「合計」の文字の高さと「7点」の文字の高さとが互いに異なる場合に、高さの低い文字(「7点」)に合わせて文字列矩形K1が設定される場合がある。本実施形態では、1文字認識処理部113が「合計 7点」の各文字を認識して1文字矩形K2を設定する(図9C参照)。また、1文字認識処理部113は、文字ごとに幅及び高さに合う1文字矩形K2を設定する。
【0036】
文字列認識処理部112が文字列を認識し、1文字認識処理部113が1文字単位で各文字を認識した結果、図9Dに示すように、高さ方向に1文字矩形K2が文字列矩形K1に重なる場合に、補正処理部114は、文字列矩形K1の上端部(上辺)を、文字列矩形K1に重なる文字「合」及び「計」が含まれる位置まで上方向に拡張する(図9E参照)。すなわち、補正処理部114は、文字列矩形K1の短手方向の端部に1文字矩形K2が重なる場合に、文字列矩形K1の端部を1文字矩形K2の端部に拡張する。このように、文字列矩形K1の補正方向(拡張方向)は、長手方向(文字の並び方向)であってもよいし、短手方向(文字の並び方向に直交する方向)であってもよい。
【0037】
以上のように、制御部11は、入力画像を取得すると、入力画像から文字列を認識する処理(文字列認識処理)を実行するとともに、入力画像から1文字単位の文字を認識する処理(1文字認識処理)を実行し、認識した文字列に内包されない文字(文字列に重複する文字、文字列に近接する文字)が存在する場合に文字列を補正する処理(文字列補正処理)を実行する。制御部11は、文字列認識処理及び1文字認識処理を任意の順に実行してもよいし、両処理を並行して実行してもよい。
【0038】
なお、制御部11は、文字列認識処理の結果(文字列矩形K1)と1文字認識処理の結果(1文字矩形K2)とを画像上に表示させてもよい。これにより、ユーザーは、文字列及び文字の認識状況を把握することができる。また、制御部11は、ユーザーの補正指示の操作に応じて前記文字列補正処理を実行してもよい。
【0039】
制御部11は、文字列補正処理が不要な文字列、文字列補正処理を実行した文字列のそれぞれについて既存のOCR処理を実行して、OCR結果(文字認識結果)を出力する。なお、OCR処理には、OCRの精度を向上させる前処理(背景除去、反転、罫線除去、捺印除去、斜体補正などの処理)が含まれる。
【0040】
[操作端末2]
図1に示すように、操作端末2は、制御部21、記憶部22、操作表示部23、及び通信部24などを備える。操作端末2は、例えば、画像形成機能(例えばスキャン機能)を備えた画像形成装置、複合機などである。なお、操作端末2は、例えばパーソナルコンピュータ、スマートフォン、タブレット端末などであってもよい。
【0041】
通信部24は、操作端末2を有線又は無線でネットワークN1に接続し、ネットワークN1を介して画像処理装置1などの外部機器との間で所定の通信プロトコルに従ったデータ通信を実行するための通信インターフェースである。
【0042】
操作表示部23は、各種のウェブページなどの情報を表示する液晶ディスプレイ又は有機ELディスプレイのような表示部と、操作を受け付けるマウス、キーボード、又はタッチパネルのような操作部とを備えるユーザーインターフェースである。
【0043】
記憶部22は、各種の情報を記憶するHDD、SSD、又はフラッシュメモリーなどの不揮発性の記憶部である。記憶部22には、制御部21に各種処理を実行する制御プログラムが記憶されている。例えば、前記制御プログラムは、CD又はDVDなどのコンピュータ読取可能な記録媒体に非一時的に記録され、操作端末2が備えるCDドライブ又はDVDドライブなどの読取装置(不図示)で読み取られて記憶部22に記憶される。なお、前記制御プログラムは、クラウドサーバー又は画像処理装置1から配信されて記憶部22に記憶されてもよい。
【0044】
制御部21は、CPU、ROM、及びRAMなどの制御機器を有する。前記CPUは、各種の演算処理を実行するプロセッサーである。前記ROMは、前記CPUに各種の処理を実行させるためのBIOS及びOSなどの制御プログラムが予め記憶された不揮発性の記憶部である。前記RAMは、各種の情報を記憶する揮発性又は不揮発性の記憶部であり、前記CPUが実行する各種の処理の一時記憶メモリー(作業領域)として使用される。そして、制御部21は、前記ROM又は記憶部22に予め記憶された各種の制御プログラムを前記CPUで実行することにより操作端末2を制御する。なお、制御部21に含まれる一部又は全部の処理部は電子回路で構成されていてもよい。
【0045】
具体的には、制御部21は、記憶部22に記憶されている前記制御プログラムに従って各種の処理を実行する。例えば、制御部21は、見積書、注文書、請求書、納品書などの紙媒体の帳票をスキャンして生成した画像データを画像処理装置1に送信する。また、制御部21は、文書作成アプリケーションなどによりユーザーの操作に基づいて前記帳票の文書ファイルを作成し、当該文書ファイルを画像データとして画像処理装置1に送信する。
【0046】
他の実施形態として、制御部21は、画像処理装置1からネットワークN1を介して提供されるウェブページを操作表示部23に表示させ、操作表示部23に対する操作を画像処理装置1に入力するブラウザ処理を実行してもよい。この場合、制御部21は、前記ウェブページにおいて、前記画像データのアップロード処理を実行する。
【0047】
また、制御部21は、画像処理装置1による文字認識結果(OCR結果)を表示させる。なお、操作端末2は、画像処理装置1の各処理部を備えてもよい。この場合、操作端末2は、入力画像に対して上述した各処理を実行する。例えば、操作端末2は、後述の画像処理を実行させるための画像処理プログラムを取得(ダウンロード)して実行してもよい。
【0048】
[画像処理]
図10は、画像処理装置1において実行される画像処理の手順の一例を示すフローチャートである。
【0049】
なお、本開示は、前記画像処理に含まれる一又は複数のステップを実行する画像処理方法(本開示の画像処理方法)として捉えることができる。また、ここで説明する前記画像処理に含まれる一又は複数のステップが適宜省略されてもよい。また、前記画像処理における各ステップは、同様の作用効果を生じる範囲で実行順序が異なってもよい。さらに、ここでは画像処理装置1の制御部11が前記画像処理における各ステップを実行する場合を例に挙げて説明するが、他の実施形態では、一又は複数のプロセッサーが前記画像処理における各ステップを分散して実行してもよい。また、制御部11は、外部機器(操作端末2など)から入力画像の画像データを取得すると、画像データごとに前記画像処理を並行して実行することが可能である。
【0050】
ステップS1において、制御部11は、入力画像を取得する。例えば、制御部11は、図2に示す文書画像(見積書)の画像データを取得する。制御部11は、入力画像を取得すると、ステップS21、S22に移行し、ステップS21、S22の処理を並行して実行する。
【0051】
ステップS21において、制御部11は、入力画像において、複数の文字で構成される文字列を認識する文字列認識処理を実行する。また、制御部11は、認識した文字列に対応する文字列矩形を設定する。例えば図4Aに示す入力画像において、制御部11は、各文字列に対応する複数の文字列矩形K1を設定する。
【0052】
ステップS22において、制御部11は、入力画像において、1文字単位の文字を認識する1文字認識処理を実行する。また、制御部11は、認識した文字に対応する1文字矩形を設定する。例えば図5に示すように、制御部11は、各文字に対応する複数の1文字矩形K2を設定する。
【0053】
制御部11は、ステップS21、S22の処理が終了すると、文字列認識処理の認識結果(図4B参照)と1文字認識処理の認識結果(図5参照)とを取得する。
【0054】
ステップS3において、制御部11は、認識した文字列に内包されない文字が存在するか否かを判定する。具体的には、制御部11は、文字列矩形K1の端部に重なる1文字矩形K2が存在するか否かを判定する。また、制御部11は、文字列矩形K1の端部の近傍に1文字矩形K2が存在するか否かを判定する。制御部11は、認識した文字列に内包されない文字が存在すると判定すると(S3:Yes)、処理をステップS4に移行させる。一方、制御部11は、認識した文字列に内包されない文字が存在しないと判定すると(S3:No)、処理をステップS5に移行させる。
【0055】
ステップS4において、制御部11は、文字列補正処理を実行する。図11には、文字列補正処理の具体例を示している。
【0056】
文字列補正処理では、ステップS41において、制御部11は、文字列矩形K1内の1文字矩形K2の文字数(1文字矩形数)を算出する。
【0057】
ステップS42において、制御部11は、算出した文字数が0文字であるか否かを判定する。制御部11は、算出した文字数が0文字でない(1文字以上である)場合(S42:No)、処理をステップS43に移行させる。一方、制御部11は、算出した文字数が0文字の場合(S42:Yes)、文字列補正処理を終了して処理をステップS5(図10参照)に移行させる。
【0058】
ステップS43において、制御部11は、算出した文字数が2文字以上であるか否かを判定する。制御部11は、算出した文字数が2文字以上の場合(S43:Yes)、処理をステップS44に移行させる。一方、制御部11は、算出した文字数が1文字である場合(S43:No)、処理をステップS431に移行させる。
【0059】
ステップS44において、制御部11は、文字列矩形K1内の1文字矩形K2の並び方向及び文字間隔を特定(確認)する。例えば、制御部11は、複数の文字が横並び(横書き)であるか縦並び(縦書き)であるかを確認する。また、制御部11は、複数の文字の間隔を確認する。ステップS44の後、制御部11は、処理をステップS45に移行させる。
【0060】
ステップS431において、制御部11は、文字サイズを特定(確認)する。前記文字サイズは、ステップS45において、隣り合う文字の間の距離を判定するための判定距離に利用される。ステップS431の後、制御部11は、処理をステップS45に移行させる。
【0061】
ステップS45において、制御部11は、文字列を拡張させる。例えば、制御部11は、1文字認識結果の文字(1文字矩形K2)が、ステップS44で確認した並び方向であって、文字間隔が所定距離未満である場合に、文字列矩形K1を拡張する。また、文字列矩形K1内の文字数が1文字の場合は、制御部11は、文字間隔が文字サイズの距離未満である場合に文字列矩形K1を拡張する。
【0062】
ステップS46において、制御部11は、文字列を結合する。制御部11は、文字列同士を結合する必要がある場合に結合処理を実行する。なお、制御部11は、文字列同士を結合する必要がない場合にはステップS46をスキップして処理をステップS47に移行させる。
【0063】
ステップS47において、制御部11は、文字列矩形K1を縮小する。例えば文字列矩形K1内の各文字(1文字矩形K2)の高さが文字列矩形K1の高さよりも低い場合に、制御部11は、文字列矩形K1の高さを1文字矩形K2の高さに縮小する処理を実行する。また、例えば文字列矩形K1の端部と、端部に隣り合う文字(1文字矩形K2)との間に空間がある場合に、制御部11は、文字列矩形K1の横幅を縮小する処理を実行する。制御部11は、文字列を縮小する必要がある場合に縮小処理を実行する。なお、制御部11は、文字列を縮小する必要がない場合にはステップS47をスキップして文字列補正処理を終了し、処理をステップS5(図10参照)に移行させる。
【0064】
制御部11は、前記文字列補正処理を終了すると、ステップS5において、OCR処理を実行する。具体的には、制御部11は、認識した文字列に内包されない文字が存在する場合には(S3:Yes)、前記文字列補正処理により補正した文字列矩形K1(図6C図8D図9E参照)を対象にOCR処理を実行してOCR結果を出力する。一方、制御部11は、認識した文字列に内包されない文字が存在しない場合には(S3:No)、ステップS21において認識した文字列矩形K1を対象にOCR処理を実行してOCR結果を出力する。
【0065】
以上説明したように、本実施形態に係る画像処理装置1は、画像から複数の文字で構成される文字列を認識する文字列認識処理と、前記画像から1文字単位の文字を認識する1文字認識処理とを実行し、前記文字列認識処理による認識結果と、前記1文字認識処理による認識結果とに基づいて、前記文字列認識処理により認識される前記文字列を補正する。
【0066】
また、画像処理装置1は、前記文字列認識処理において、認識した前記文字列に対応する文字列矩形を設定し、前記1文字認識処理において、認識した前記文字に対応する1文字矩形を設定し、前記文字列矩形の長手方向の端部に前記1文字矩形が重なる場合に、前記文字列矩形の端部を前記1文字矩形の端部に拡張する。
【0067】
上記構成によれば、例えば図4Bに示すように長文の文字列(文字列矩形K1)の端部を適切に認識できない場合であっても、1文字認識処理により認識される1文字矩形K2を利用することにより、文字列矩形K1を適切な位置に補正することができる。よって、入力画像の文字列を適切に認識することが可能になり、その後のOCR処理の精度を向上させることができる。
【0068】
なお、画像処理装置1は、文字列矩形の設定処理に関する機械学習と、1文字列矩形の設定処理に関する機械学習とを実行することにより、文字列認識処理及び1文字認識処理の認識精度を向上させることが可能になる。また、画像処理装置1は、文字列認識処理の学習済みモデル、及び、1文字認識処理の学習済みモデルを生成してもよい。
【0069】
上述の実施形態では、画像処理装置1単体が本開示に係る画像処理装置に相当するが、本開示に係る画像処理装置は、操作端末2単体で構成されてもよい。また、本開示は、画像処理装置1及び操作端末2を含む画像処理システムにより構成されてもよい。例えば、画像処理装置1及び操作端末2の構成要素が協働して前記画像処理を分担して実行してもよい。
【0070】
[開示の付記]
以下、上述の実施形態から抽出される開示の概要について付記する。なお、以下の付記で説明する各構成及び各処理機能は取捨選択して任意に組み合わせることが可能である。
【0071】
<付記1>
画像から複数の文字で構成される文字列を認識する文字列認識処理部と、
前記画像から1文字単位の文字を認識する1文字認識処理部と、
前記文字列認識処理部による認識結果と、前記1文字認識処理部による認識結果とに基づいて、前記文字列認識処理部により認識される前記文字列を補正する補正処理部と、
を備える画像処理装置。
【0072】
<付記2>
前記文字列認識処理部は、認識した前記文字列に対応する文字列矩形を設定し、
前記1文字認識処理部は、認識した前記文字に対応する1文字矩形を設定し、
前記補正処理部は、前記文字列矩形の長手方向の端部に前記1文字矩形が重なる場合に、前記文字列矩形の端部を前記1文字矩形の端部に拡張する、
付記1に記載の画像処理装置。
【0073】
<付記3>
前記文字列認識処理部は、認識した前記文字列に対応する文字列矩形を設定し、
前記1文字認識処理部は、認識した前記文字に対応する1文字矩形を設定し、
前記補正処理部は、前記文字列矩形の端部の長手方向の近傍に前記1文字矩形が配置される場合に、前記文字列矩形の端部を前記1文字矩形の端部に拡張する、
付記1又は2に記載の画像処理装置。
【0074】
<付記4>
前記文字列矩形の長手方向の端部に重なる前記1文字矩形、又は、前記文字列矩形の端部の長手方向の近傍に配置される前記1文字矩形と、前記長手方向に隣り合う他の1文字矩形との間の距離が所定距離未満の場合に、前記補正処理部は、前記文字列矩形の端部を前記他の1文字矩形の端部に拡張し、
前記距離が所定距離以上の場合に、前記補正処理部は、前記文字列矩形の端部を前記1文字矩形の端部に拡張する、
付記1~3のいずれかに記載の画像処理装置。
【0075】
<付記5>
前記文字列認識処理部は、認識した前記文字列に対応する文字列矩形を設定し、
前記1文字認識処理部は、認識した前記文字に対応する1文字矩形を設定し、
前記補正処理部は、前記文字列矩形の短手方向の端部に前記1文字矩形が重なる場合に、前記文字列矩形の端部を前記1文字矩形の端部に拡張する、
付記1~4のいずれかに記載の画像処理装置。
【0076】
<付記6>
前記文字列矩形と前記1文字矩形とを、表示画面に表示される前記画像上に表示させる、
付記1~5のいずれかに記載の画像処理装置。
【0077】
<付記7>
前記補正処理部により補正された前記文字列に対して文字認識処理を実行する、
付記1~6のいずれかに記載の画像処理装置。
【符号の説明】
【0078】
1 :画像処理装置
2 :操作端末
11 :制御部
111 :取得処理部
112 :文字列認識処理部
113 :1文字認識処理部
114 :補正処理部
K1 :文字列矩形
K2 :1文字矩形
図1
図2
図3
図4A
図4B
図5
図6A
図6B
図6C
図7A
図7B
図7C
図8A
図8B
図8C
図8D
図9A
図9B
図9C
図9D
図9E
図10
図11