(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024006813
(43)【公開日】2024-01-17
(54)【発明の名称】文字列検出装置及び文字列検出方法
(51)【国際特許分類】
G06V 30/12 20220101AFI20240110BHJP
G06V 20/62 20220101ALI20240110BHJP
【FI】
G06V30/12 Z
G06V20/62
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022108054
(22)【出願日】2022-07-04
(71)【出願人】
【識別番号】504373093
【氏名又は名称】日立チャネルソリューションズ株式会社
(74)【代理人】
【識別番号】110001689
【氏名又は名称】青稜弁理士法人
(72)【発明者】
【氏名】大館 良介
【テーマコード(参考)】
5B064
5L096
【Fターム(参考)】
5B064EA07
5B064EA20
5L096BA17
5L096CA22
5L096DA04
5L096FA72
5L096JA11
(57)【要約】
【課題】文字列の検出精度を向上できる文字列検出装置及び文字列検出方法を提供する。
【解決手段】文字列検出装置は、入力画像内の文字列を検出する計算機を含む。計算機は、入力画像から検出した文字列である検出文字列の特定の状態を推定し、推定した状態に基づいて、入力画像から検出した検出文字列の検出状態が異常であるか否かの異常判定を行う。計算機は、異常判定により異常であると判定された異常検出文字列について、異常検出文字列及び当該異常検出文字列の周辺からなる領域から抽出された画像特徴を再度取得する画像特徴再取得処理を実行し、再度取得した画像特徴に基づいて、異常判定を行う。
【選択図】
図2
【特許請求の範囲】
【請求項1】
入力画像内の文字列を検出する計算機を含む文字列検出装置であって、
前記計算機は、
前記入力画像から抽出した画像特徴に基づいて、前記入力画像から検出した前記文字列である検出文字列の検出状態が異常であるか否かの異常判定を行う、
ように構成された、
文字列検出装置。
【請求項2】
請求項1に記載の文字列検出装置において、
前記計算機は、
前記入力画像から抽出した前記画像特徴を用いて、前記検出文字列の特定の状態を推定し、推定した状態に基づいて、前記異常判定を行う、
ように構成された、
文字列検出装置。
【請求項3】
請求項1に記載の文字列検出装置において、
前記計算機は、
前記入力画像から抽象度が異なる複数の前記画像特徴を抽出し、
抽象度が異なる複数の前記画像特徴のそれぞれを用いて、前記抽象度毎の前記検出文字列の特定の状態を推定し、前記抽象度毎の前記検出文字列の特定の状態に基づいて、前記異常判定を行う、
ように構成された、
文字列検出装置。
【請求項4】
請求項2に記載の文字列検出装置において、
前記計算機は、
複数の前記特定の状態を推定する、
ように構成された、
文字列検出装置。
【請求項5】
請求項2に記載の文字列検出装置において、
前記計算機は、
前記特定の状態として、
前記検出文字列の言語的正しさの状態、ノイズの混入の有無の状態、及び、前記検出文字列の左右の文字列との配置関係の状態の少なくとも一つを推定する、
ように構成された、
文字列検出装置。
【請求項6】
請求項4に記載の文字列検出装置において、
前記計算機は、
複数の前記特定の状態として、前記検出文字列の言語的正しさの状態、ノイズの混入の有無の状態、及び、前記検出文字列の左右の文字列との配置関係の状態を推定するように構成され、
前記計算機は、
前記検出文字列の言語的正しさの状態を示す第1状態パラメータ、前記ノイズの混入の有無の状態を示す第2状態パラメータ、及び、前記検出文字列の左右の文字列との配置関係の状態を示す第3状態パラメータを計算することにより、前記特定の状態を推定し、
計算した第1状態パラメータ乃至第3状態パラメータを用いて、前記異常判定を行う、
ように構成された、
文字列検出装置。
【請求項7】
請求項1に記載の文字列検出装置において、
前記計算機は、
前記異常判定により異常であると判定された前記検出文字列である異常検出文字列について、前記異常検出文字列及び当該異常検出文字列の周辺からなる領域から抽出された前記画像特徴を再度取得する画像特徴再取得処理を実行し、再度取得した前記画像特徴に基づいて、前記異常判定を行う、
ように構成された、
文字列検出装置。
【請求項8】
請求項7に記載の文字列検出装置において、
前記計算機は、
前記画像特徴再取得処理が所定の閾値回数以上実行された領域を、文字列の検出難度が高い領域と判定する、
ように構成された、
文字列検出装置。
【請求項9】
請求項2に記載の文字列検出装置において、
画像を表示可能な表示装置を備え、
前記計算機は
前記異常判定を行う異常判定機能をONの状態及びOFFの状態の何れかに設定するために操作される画像と、
前記特定の状態を推定対象に設定するONの状態及び前記特定の状態を推定対象に設定しないOFFの状態の何れかに設定するために操作される画像と、
を含むGUI画面を前記表示装置に表示する、
ように構成された、
文字列検出装置。
【請求項10】
請求項1に記載の文字列検出装置において、
画像を表示可能な表示装置を備え、
前記計算機は、
前記異常判定の結果を示す画像を含むGUI画面を前記表示装置に表示する、
ように構成された、
文字列検出装置。
【請求項11】
請求項3に記載の文字列検出装置において、
前記計算機は、
前記入力画像を入力として、抽象度が異なる複数の前記画像特徴を抽出する特徴抽出モデルを用いて、前記入力画像から抽象度が異なる複数の前記画像特徴を抽出する、
ように構成された、
文字列検出装置。
【請求項12】
入力画像内の文字列を検出する計算機を用いた文字列検出方法であって、
前記計算機によって、
前記入力画像から抽出した画像特徴に基づいて、前記入力画像から検出した前記文字列である検出文字列の検出状態が異常であるか否かの異常判定を行う、
文字列検出方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、文字列検出装置及び文字列検出方法に関する。
【背景技術】
【0002】
機械学習技術の発達により、文字認識、画像認識及び音声認識等の認識技術が向上し、多様なシステムで活用されている。
【0003】
文字認識においては、入力された画像への画像処理、文字列の検出及び検出した文字列の識別、という3つの処理による構成が一般的である。各処理における特徴抽出、回帰及び識別等には、Convolutional Neural Network(CNN)を採用した深層学習ベースの手法が広く用いられている。CNNとは、入力を一連の畳み込み層やプーリング層を通すことで特徴抽出するニューラルネットワークのことである。例えば文字の識別において、入力された文字画像に対して、近傍数画素へ重み付けフィルタを適用する処理を一定の移動幅で実施(畳み込み)し、フィルタ適用後の数値マップの一部を間引きながら(プーリング)最適なフィルタの重みを学習することで、識別器を構築することができる。
【0004】
一般的に、文字認識においては、上記の3つの処理の中で、検出した文字列の識別の精度が論じられることが多い。しかし、現実的な文字認識システムにおいては、前段の処理である、文字列の検出の精度がより重要であることが多い。そもそも文字列を検出できなければ、その後の識別処理への適用すらできないためである。そこで、文字列の検出に関する方法が検討されている。
【0005】
例えば、非特許文献1には、「入力から深層学習の特徴抽出部を用いて特徴を抽出し、特徴の階層ごとに文字列候補を抽出し、続くFast R-CNNを用いて前記文字列候補から文字列を検出することを特徴とする認識方法。」が記載されている。非特許文献1に記載の技術(以下、「従来技術」と称呼される。)を用いることで、文字列の候補領域を文字サイズごとに取得し高精度に文字列を検出することができる。
【先行技術文献】
【非特許文献】
【0006】
【非特許文献1】Zhuoyao Zhong,“An anchor-free region proposal network for Faster R-CNN-based text detection approaches”,International Journal on Document Analysis and Recognition (IJDAR),Vol22-3,pp.315-327,2019.
【発明の概要】
【発明が解決しようとする課題】
【0007】
従来技術は、深層学習の特徴を階層ごとに用いることで、文字サイズの変動に頑強な文字列検出を可能とする。しかし、従来技術は、文書画像内において、急な段組の変化、活字と手書きの混在、同一文字列内で各文字の間隔が離れている、等の状態が発生している場合、正しい検出が困難になるという課題が有る。
【0008】
本開示は上記課題を解決するためになされた。即ち、本開示の目的の一つは、文字列の検出精度を向上できる文字列検出装置及び文字列検出方法を提供することにある。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本開示の文字列検出装置は、入力画像内の文字列を検出する計算機を含む文字列検出装置であって、前記計算機は、前記入力画像から抽出した画像特徴に基づいて、前記入力画像から検出した前記文字列である検出文字列の検出状態が異常であるか否かの異常判定を行う、ように構成されている。
【0010】
本開示の文字列検出方法は、入力画像内の文字列を検出する計算機を用いた文字列検出方法であって、前記計算機によって、前記入力画像から抽出した画像特徴に基づいて、前記入力画像から検出した前記文字列である検出文字列の検出状態が異常であるか否かの異常判定を行う。
【発明の効果】
【0011】
本開示によれば、文字列の検出精度を向上できる文字列検出装置及び文字列検出方法を提供することにある。
【図面の簡単な説明】
【0012】
【
図1】
図1は計算機のハードウェア構成を示す図である。
【
図2】
図2は計算機による文字列検出処理の概要を示すデータフロー図である。
【
図3】
図3は計算機による文字列検出処理の概要を示す模式図である。
【
図4】
図4は文字列状態データの一例を説明するための図である。
【
図5】
図5は異常文字列判定処理の一例を説明するフローチャートである。
【
図6】
図6は異常文字列判定処理の設定画面及び処理結果を表示するGUIの一例を示す図である。
【発明を実施するための形態】
【0013】
以下、本開示の実施形態について、図面を順番に参照して説明する。なお、実施形態を説明する図において、同一の機能を有する箇所には同一の符号を付し、その繰り返しの説明は省略する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態において説明されている各要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0014】
また、以下の説明では、情報の一例として「xxxデータ」といった表現を用いる場合があるが、情報のデータ構造はどのようなものでもよい。すなわち、情報がデータ構造に依存しないことを示すために、「xxxデータ」を「xxxテーブル」と言うことができる。また、以下の説明において、各情報の構成は一例であり、情報を分割して保持したり、結合して保持したりしても良い。
【0015】
<<実施形態>>
まず、
図1を参照し、本開示の実施形態に係る文字列検出装置を構成する計算機のハードウェア構成及びソフトウェア構成を説明し、
図2以降で前記計算機の実行する処理の説明をする。
【0016】
図1は計算機のハードウェア構成及びソフトウェア構成を説明する図である。計算機100は、文字認識を実行する。また、GUIに関する処理も実行する。
【0017】
計算機100は、プロセッサ101、入力装置102、及び出力装置103、主記憶装置104、副記憶装置105及びネットワークインタフェース106を有する。各ハードウェアは内部バス等を介して互いに接続される。
図1では、各ハードウェアの数は一つであるが、二つ以上でもよい。接続するネットワークの種類は限定されない。ネットワークや直接の接続を介して、他の計算機や記憶装置とデータの送受信や処理の分担をしてもよい。
【0018】
プロセッサ101は、主記憶装置104に格納されるプログラムを実行する。プロセッサ101がプログラムにしたがって処理を実行することによって、特定の機能を実現する。以降の説明においてプログラム(モジュール)を主語に処理を説明する場合、プロセッサ101がプログラム(モジュール)を実行していることを示す。
【0019】
入力装置102は、計算機100に対してデータを入力するための装置である。例えば、入力装置102は、キーボード、マウス、及びタッチパネル等の計算機操作のための機器を含む。また、入力装置102は、スキャナ、デジタルカメラ及びスマートフォン等の画像取得のための機器も含む。
【0020】
出力装置103は、データの入力画面及び処理結果等を出力する装置である。出力装置103は、タッチパネル及びディスプレイ等の表示装置を含む。
【0021】
主記憶装置104は、プロセッサ101が実行するプログラム及びプログラムが使用する情報を格納する。また、主記憶装置104は、プログラムが一時的に使用するワークエリアを含む。主記憶装置104は、例えば、メモリ等が考えられる。
【0022】
本実施形態において、主記憶装置104は、画像特徴抽出エンコーダモジュール111、画像特徴抽出デコーダモジュール112、文字列候補識別及び回帰モジュール113、文字列検出モジュール114、文字列状態推定モジュール115、並びに、異常文字列判定モジュール116から成る文字列検出プログラム110(以下、単に「プログラム110」と称呼される場合がある。)を格納する。なお、画像特徴抽出エンコーダモジュール111、画像特徴抽出デコーダモジュール112、文字列候補識別及び回帰モジュール113、文字列検出モジュール114、文字列状態推定モジュール115、並びに、異常文字列判定モジュール116のそれぞれは、「モジュールXXX」とも称呼される場合がある(XXXは、対応する参照符号である。)。
【0023】
プログラム110は
図2と対応し、モジュール111乃至モジュール115は、
図2のステップS201からステップS205の処理とそれぞれ対応し、モジュール116はステップS206及びステップS207の処理と対応している。また、主記憶装置104は、文字列状態データ121を格納する。文字列状態データ121の詳細については、
図4に記載している。主記憶装置104が実行する各モジュールの処理の詳細、及び主記憶装置104に格納される情報については、
図2以降を参照する際に説明する。
【0024】
主記憶装置104は、必要な一部のモジュールを実現できればよく、すべてのモジュールを実現するプログラム及び情報を格納している必要はない。副記憶装置105は、データを永続的に格納する。副記憶装置105は、例えば、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等のデータを読み出し及び書き込み可能な不揮発性の記憶媒体である。なお、主記憶装置104に格納されるプログラム及び情報は、副記憶装置105に格納されてもよい。この場合、プロセッサ101が、副記憶装置105からプログラム及び情報を読み出し、主記憶装置104にロードする。
【0025】
図2は、計算機100による文字列検出処理の概要を示すデータフロー図である。文字列検出処理では、以下に述べるステップS201乃至ステップS207の順に処理が実行される。
【0026】
ステップS201:モジュール111は入力された画像に対して画像特徴抽出エンコード処理を実施する。画像特徴抽出エンコード処理とは、入力された画像から段階的に抽象度を上げながら特徴量(画像特徴(特徴))を抽出する一般的な処理であり、公知の手法を用いて実現可能である。例えば、ルールベースの方向特徴の抽出や、CNNを用いた特徴抽出等が考えられる。なお、ステップS201の入力画像は、入力装置102から取得したものの他、副記憶装置105や外部の記憶装置などに格納されたものでもよいしネットワークインタフェース106を介して取得したものでも良い。
【0027】
ステップS202:モジュール112はステップS201で抽出された特徴量(画像特徴(特徴))に対して画像特徴抽出デコード処理を実施する。画像特徴抽出デコード処理とは、入力時と同じ抽象度まで画像特徴を段階的にアップサンプリングし、抽象度を下げる処理であり、公知の手法を用いて実現可能である。
図3を用いて後に模式的に示すが、ステップS201とステップS202とで抽出した特徴は、抽象度の低いものから高いものに向かってピラミッドのような構成となる。このとき、計算機100は、各抽象度(特徴レベル)において、エンコード特徴とデコード特徴とを用いて、後続の処理を実施する。
【0028】
ステップS203:モジュール113は文字列候補識別及び回帰処理を実施する。文字列候補識別及び回帰処理とは、各特徴レベルにおいて、ステップS201で取得したエンコード特徴とS202で取得したデコード特徴とを用いて、文字列候補である画素の検出及び回帰をする処理であり、公知の手法を用いて実現可能である。例えば、サポートベクターマシンや多層パーセプトロンのような識別器の利用が考えられる。なお、この処理は画素に対する文字列か否かの大分類とみなすことが可能であり、2つで1つとみなしても良いし、最初からステップS204のような詳細な文字列検出処理のみで十分な場合は、本ステップを省略しても良い。
【0029】
ステップS204:モジュール114は文字列検出処理を実施する。文字列検出処理とは、入力特徴に基づいて文字列を検出する処理であり、本例の場合は、ステップS203で抽出した文字列候補からさらに詳細に文字列を検出する。公知の手法を用いて実現可能であり、例えば、Fast R-CNNの利用が考えられる。
【0030】
ステップS205:モジュール115は文字列状態推定処理を実施する。文字列状態推定処理とは、検出された文字列に対して、枠線等のノイズが混入していないか、言語的に意味が通るか、左右の文字列と等間隔で配置されているか、等を推定する処理である。この処理で出力する状態データ(文字列状態データ121)については、
図4を参照して後述する。なお、推定する状態の種類や数は任意である。
【0031】
ステップS206及びステップS207:モジュール116は異常文字列判定処理を実行し、ステップS207にて、ステップS206の文字列の異常判定結果に応じて、処理を分岐させる。異常文字列判定処理とは、ステップS205で出力した状態データ(文字列状態データ121)に基づいて、検出された文字列(検出文字列)が異常文字列であるかを判定する処理である。ステップS206及びステップS207の処理の詳細については、
図5以降を参照して後述する。なお、本例では、文字列の状態推定と状態に基づく異常判定と言う二段階にしているが、一つの処理で異常判定する事が可能な場合、分けなくても良い。
【0032】
異常判定された文字列がある場合、モジュール116は「YES」と判定して、異常と判定された文字列について、当該文字列及び周辺領域の特徴を収集し、ステップS203へ送ることで、異常文字列周辺領域についてより詳細に文字列検出処理をする。
【0033】
異常判定された文字列がない場合、モジュール116は「NO」と判定して文字列検出処理が一旦終了される。
【0034】
図3は計算機100による文字列検出処理の概要を示す模式図である。模式図の処理301から処理306は
図2のデータフロー図のステップS201からS206とそれぞれ対応している。文字列検出処理では、前記の通り、各特徴レベルで異なる文字サイズの文字列を検出する。一般的に特徴の抽象度が上がると、より広い範囲の特徴を抽出していることになるため、検出される文字列の文字サイズも大きくなる。本例において、検出される文字列の文字サイズは、「Large text line」、「Medium text line」及び「Small text line」の3段階の文字サイズである。
【0035】
処理301及び処理302は、ステップS201及びステップS202に対応し、本例において、公知のコンボリューションエンコーダ-デコーダを用いた特徴抽出の例を表している。
【0036】
エンコーダネットワーク(Encoder network)は、図示しない入力層と、複数の階層Ly2乃至Ly5とを含む。階層Ly2及び階層Ly5のそれぞれは各特徴レベルの特徴量を作成(抽出、出力)するための複数の層のセットを含む。例えば、階層Ly2乃至階層L5のそれぞれは、複数の畳み込み層及びプーリング層のセットを含む。
【0037】
エンコーダネットワーク(Encoder network)では、ある階層の出力を他の階層に入力する処理を繰り返し行うことにより階層的に処理が行われる。
【0038】
エンコーダネットワーク(Encoder network)では、入力層に入力画像(Input image)が入力されると、階層的な処理が実行されることにより、抽象度が異なる第1特徴量(Feature level 2)、第2特徴量(Feature level 3)、第3特徴量(Feature level 4)及び第4特徴量(Feature level 5)が作成(抽出、出力)される。なお、エンコーダネットワーク(Encoder network)では、画像に対して複数のフィルタを適用することにより、畳み込みが行われる。よって、各特徴量は、フィルタの数に応じた数の特徴(特徴マップ)を含む(デコーダネットワーク(Decoder network)による特徴量も同様。)。
【0039】
デコーダネットワーク(Decoder network)は、複数の階層Ly6乃至階層Ly8を含む。階層Ly6乃至階層Ly8のそれぞれは、階層Ly2及び階層Ly4により作成される特徴量と同様の各特徴レベルの特徴量を作成(抽出、出力)するための複数の層のセットを含む。例えば、階層Ly6乃至階層L8のそれぞれは、複数の逆畳み込み層及びアンプーリング層のセットを含む。
【0040】
デコーダネットワーク(Decoder network)では、ある階層の出力を他の階層に入力する処理を繰り返し行うことにより階層的に処理が行われる。
【0041】
デコーダネットワーク(Decoder network)では、階層Ly6に第4特徴量(Feature level 5)が入力されると、階層的な処理が実行されることにより、抽象度が異なる第5特徴量(Feature level 4)、第6特徴量(Feature level 3)及び第7特徴量(Feature level 2)が作成(抽出、出力)される。
【0042】
上記場合において、第1特徴量乃至第3特徴量が、上述したエンコード特徴であり、第5特徴量乃至第7特徴量が、上述したデコード特徴である。
【0043】
処理303は、ステップS203に対応し、説明文St11に示すように、エンコード特徴及びデコード特徴を用いて、特徴レベル毎に、入力全体に対して文字列/文字列の識別及びバウンディングボックス回帰を画素単位で実施し文字列候補領域を出力する(大分類。)。
【0044】
処理304は、ステップS204に対応し、説明文St12に示すように、特徴レベル毎に、各文字列候補領域に対して文字列/文字列の識別及びバウンディングボックス回帰を画素単位で実施することにより、文字列を検出する(詳細分類。)。
【0045】
処理305は、ステップS205に対応し、言語異常判定部305a(Linguistic)、ノイズ判定部305b(Noise mixing)及び配置異常判定部305c(Arrangement relationship)によって、検出した文字列(検出文字列)の状態を推定する(文字列状態データ121を計算する。)。
【0046】
言語異常判定部305aでは、例えば、検出文字列を認識した結果をRNN(Recurrent Neural Network(リカレントニューラルネットワーク))等に入力して言語処理を掛けて文字列の状態)を推定する(文字列状態データ121を計算する。)。
【0047】
ノイズ判定部305bでは、処理301及び処理302で取得した特徴に対して、多層パーセプトロン+アクティベーション+ソフトマックス等を用いた確率推定ネットワークを付与することで、文字列の状態を推定する(文字列状態データ121を計算する。)。
【0048】
なお、上記は深層学習ベースの例だが、独立したルールベースのファンクションで実現しても良い。
【0049】
処理306は、ステップS206に対応し、特徴レベル毎に推定した状態(文字列状態データ121)に基づいて検出された文字列が、検出状態が異常な文字列である異常文字列であるか否かを判定する。
【0050】
なお、特徴レベル毎の判定結果の少なくとも一つが、異常文字列であるとの判定の場合、その検出文字列が異常文字列であると判定し、特徴レベル毎の判定結果が全て異常文字列ではないとの判定の場合、その検出文字列が異常文字列ではないと判定する。
【0051】
図4は、文字列状態データ121の一例を説明するための図である。文字列状態データ121は、検出された文字列ごとに状態推定結果を纏めたものをエントリ(行単位の情報)とする。文字列状態データ121は、エントリ番号401(文字列番号401)、状態1推定結果402、状態2推定結果403及び状態3推定結果404を有する。エントリ番号401は、各エントリ(行単位の情報)を一意に特定するための番号を格納している。状態1推定結果402乃至状態3推定結果404のそれぞれは、推定したい各状態の発生している確率を格納する。推定する状態の種類や数は任意である。格納するものは確率の他、「0」と「1」のフラグ等でも良い。本例において、例えば、状態1は言語異常判定部305aによって実行された状態推定の結果に対応し、状態2はノイズ判定部305bによって実行された状態推定の結果に対応し、状態3は配置異常判定部305cによって実行された状態推定の結果に対応する。
【0052】
図5は、異常文字列判定処理の一例を説明するフローチャートである。
【0053】
ステップS501では、モジュール116は文字列状態データ121(状態データ121)を取得する。
【0054】
ステップS502では、モジュール116は各特徴レベルにおいて検出された文字列(検出文字列)を取得する。
【0055】
ステップS503では、モジュール116は各文字列について、文字列状態データ121の確率の重み付け和を算出する。
【0056】
ステップS504では、モジュール116は確率の重み付け和が閾値α以上の文字列があるか否かで後続の処理を分岐する。なお、例えば、確率の重み付け和は、状態1の確率×重みw1+状態2の確率×重みw2+状態3の確率×重みw3(重みw1乃至重みw3の合計は1であり、各重みには任意の数値が設定される。)により計算される。
【0057】
本例では重み付け和の算出とそれに対する閾値処理とを採用したが、状態推定から異常判定までをエンドツーエンドに実施しても良いし、文字列状態データ121に「0」と「1」のフラグ等を格納する場合には、オンのフラグが閾値β個以上ある等のルールで判定されても良い。なお、α及びβは任意の数値であり、文字列検出装置を含む文字認識システムの管理者が決定する。
【0058】
ステップS505では、モジュール116は同一領域についてr回の検出処理をしたか否かを判定する。即ち、検出処理の回数とは、当該検出文字列を含む領域についてステップS506の収集処理を行った回数である。モジュール116は収集処理の回数が閾値回数(=r回)以上であるか否かを判定する。なお、γは任意の数値であり、文字認識システムの管理者が決定する。
【0059】
同一領域についてr回の検出処理をしていない場合(即ち、収集処理の回数がr回未満である場合)、モジュール116は「NO」と判定してステップS506に進む。
【0060】
同一領域についてγ回の検出処理をした場合(即ち、収集処理の回数がr回以上である場合)、モジュール116は「YES」と判定してステップS508に進み、当該領域を検出難度高領域と判定して、本処理フローを一旦終了する。
【0061】
ステップS506では、モジュール116は、「検出異常有りと判定された文字列及び文字列の周辺の所定領域の周辺画素」から抽出した特徴を収集する。なお、本例では、既に抽出済みの特徴の当該部分を収集する。文字列及び文字列の周辺の所定領域は、例えば、検出文字列に対応するバウンディングボックスの領域又は検出文字列に対応するバウンディングボックスを含む当該バウンディングボックスより大きい所定の領域などである。
【0062】
ステップS507では、モジュール116は収集した特徴をステップS203へ再度送る。なお、本例では、既に抽出済みの特徴の当該部分を再利用するが、もとの入力画像の当該部分がS201に再度入力されたり、当該領域に対して別な文字列検出手法が適用されたりしても良い。
【0063】
なお、ステップS203乃至ステップS207及びステップS501乃至ステップS508については、必要とする処理だけが採用されても良い。
【0064】
図6は、異常文字列判定処理の設定画面及び処理結果を表示するGUI(Graphical User Interface)を構成するGUI画面の一例を示す図である。
【0065】
GUI画面600は、出力装置103(表示装置)に表示される。GUI画面600は、第1画像601と、第2画像602と、第3画像603と、第4画像604と、第5画像605とを含む。第1画像601は、入力画像を表す画像である。第2画像602は、異常判定された文字列検出結果を表す画像である。本例の場合、全体を一つの行と推定され、言語的に意味が通らず異常判定された例を示している。第2画像602は、異常判定された検出文字列が強調表現された画像(他の箇所に比べて視認され易い態様で表現された画像)である。
【0066】
第3画像603は、通常の文字列検出結果を表す画像である。第4画像604は、状態推定ルールの設定GUIである。第4画像604は、チェックボックスと、チェックボックスの右隣に表示される検出文字列の状態の推定方法の種類を示す文とを含む。ユーザによって、チェックボックスがOFFの状態からONの状態に操作されることによって、ONの状態に操作されたチェックボックスに対応する検出文字列の状態の推定方法が指定される。第5画像605は、画像で構成された機能のオンオフ切り替えボタンである。ユーザによって、オンオフ切り替えボタンが操作されることにより、検出文字列の異常判定を行う機能をオンの状態及びオフの状態の何れかに設定できる。なお、閾値回数(r回)を設定するために操作される画像がGUI画面600に表示されるようにして、GUI画面600を介して、閾値回数(r回)が設定されるようにしてもよい。閾値回数(r回)を示す画像がGUI画面600に表示されるようにしてもよい。
【0067】
<効果>
以上説明したように、本開示の実施形態に係る文字列検出装置は、急な段組の変化、活字と手書きの混在、同一文字列内で各文字の間隔が離れている、等の状態における検出失敗を避けるため、文字列の検出状態が異常である否かを判定する異常判定を実行する。更に、実施形態に係る文字列検出装置は、異常判定の結果、異常文字列と判定された場合に、異常文字列及び異常文字列の周辺に絞って再度文字列検出し、異常判定を実行する。これにより、実施形態に係る文字列検出装置は、文字列の検出精度を向上できる。
【0068】
<<変形例>>
上記した実施形態は本開示を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記実施形態の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0069】
上記実施形態において、検出された文字列の状態が一つだけ推定され、その一つの状態に基づいて異常判定が実行されるようにしてもよい。
【0070】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本開示は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本開示を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0071】
また、上記実施形態に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0072】
さらに、上記実施形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい
上記実施形態において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【0073】
本開示は以下の構成をとることもできる。
【0074】
[1]
入力画像内の文字列を検出する計算機を含む文字列検出装置であって、
前記計算機は、
前記入力画像から抽出した画像特徴に基づいて、前記入力画像から検出した前記文字列である検出文字列の検出状態が異常であるか否かの異常判定を行う、
ように構成された、
文字列検出装置。
【0075】
[2]
[1]に記載の文字列検出装置において、
前記計算機は、
前記入力画像から抽出した前記画像特徴を用いて、前記検出文字列の特定の状態を推定し、推定した状態に基づいて、前記異常判定を行う、
ように構成された、
文字列検出装置。
【0076】
[3]
[1]に記載の文字列検出装置において、
前記計算機は、
前記入力画像から抽象度が異なる複数の前記画像特徴を抽出し、
抽象度が異なる複数の前記画像特徴のそれぞれを用いて、前記抽象度毎の前記検出文字列の特定の状態を推定し、前記抽象度毎の前記検出文字列の特定の状態に基づいて、前記異常判定を行う、
ように構成された、
文字列検出装置。
【0077】
[4]
[2]に記載の文字列検出装置において、
前記計算機は、
複数の前記特定の状態を推定する、
ように構成された、
文字列検出装置。
【0078】
[5]
[2]に記載の文字列検出装置において、
前記計算機は、
前記特定の状態として、
前記検出文字列の言語的正しさの状態、ノイズの混入の有無の状態、及び、前記検出文字列の左右の文字列との配置関係の状態の少なくとも一つを推定する、
ように構成された、
文字列検出装置。
【0079】
[6]
[4]に記載の文字列検出装置において、
前記計算機は、
複数の前記特定の状態として、前記検出文字列の言語的正しさの状態、ノイズの混入の有無の状態、及び、前記検出文字列の左右の文字列との配置関係の状態を推定するように構成され、
前記計算機は、
前記検出文字列の言語的正しさの状態を示す第1状態パラメータ、前記ノイズの混入の有無の状態を示す第2状態パラメータ、及び、前記検出文字列の左右の文字列との配置関係の状態を示す第3状態パラメータを計算することにより、前記特定の状態を推定し、
計算した第1状態パラメータ乃至第3状態パラメータを用いて、前記異常判定を行う、
ように構成された、
文字列検出装置。
【0080】
[7]
[1]に記載の文字列検出装置において、
前記計算機は、
前記異常判定により異常であると判定された前記検出文字列である異常検出文字列について、前記異常検出文字列及び当該異常検出文字列の周辺からなる領域から抽出された前記画像特徴を再度取得する画像特徴再取得処理を実行し、再度取得した前記画像特徴に基づいて、前記異常判定を行う、
ように構成された、
文字列検出装置。
【0081】
[8]
[7]に記載の文字列検出装置において、
前記計算機は、
前記画像特徴再取得処理が所定の閾値回数以上実行された領域を、文字列の検出難度が高い領域と判定する、
ように構成された、
文字列検出装置。
【0082】
[9]
[2]に記載の文字列検出装置において、
画像を表示可能な表示装置を備え、
前記計算機は
前記異常判定を行う異常判定機能をONの状態及びOFFの状態の何れかに設定するために操作される画像と、
前記特定の状態を推定対象に設定するONの状態及び前記特定の状態を推定対象に設定しないOFFの状態の何れかに設定するために操作される画像と、
を含むGUI画面を前記表示装置に表示する、
ように構成された、
文字列検出装置。
【0083】
[10]
[1]に記載の文字列検出装置において、
画像を表示可能な表示装置を備え、
前記計算機は、
前記異常判定の結果を示す画像を含むGUI画面を前記表示装置に表示する、
ように構成された、
文字列検出装置。
【0084】
[11]
[3]に記載の文字列検出装置において、
前記計算機は、
前記入力画像を入力として、抽象度が異なる複数の前記画像特徴を抽出する特徴抽出モデルを用いて、前記入力画像から抽象度が異なる複数の前記画像特徴を抽出する、
ように構成された、
文字列検出装置。
【0085】
[12]
入力画像内の文字列を検出する計算機を用いた文字列検出方法であって、
前記計算機によって、
前記入力画像から抽出した画像特徴に基づいて、前記入力画像から検出した前記文字列である検出文字列の検出状態が異常であるか否かの異常判定を行う、
文字列検出方法。
【符号の説明】
【0086】
100…計算機、101…プロセッサ、102…入力装置、103…出力装置、104…主記憶装置、105…副記憶装置、106…ネットワークインタフェース、110…文字列検出プログラム、111…画像特徴抽出エンコーダモジュール、112…画像特徴抽出デコーダモジュール、113…文字列色別及び回帰モジュール、114…文字列検出モジュール、115…文字列状態推定モジュール、116…異常文字列判定モジュール、121…文字列状態データ