JP2018180606A - 画像処理装置、画像処理方法、及びコンピュータプログラム - Google Patents
画像処理装置、画像処理方法、及びコンピュータプログラム Download PDFInfo
- Publication number
- JP2018180606A JP2018180606A JP2017074026A JP2017074026A JP2018180606A JP 2018180606 A JP2018180606 A JP 2018180606A JP 2017074026 A JP2017074026 A JP 2017074026A JP 2017074026 A JP2017074026 A JP 2017074026A JP 2018180606 A JP2018180606 A JP 2018180606A
- Authority
- JP
- Japan
- Prior art keywords
- character
- recognition
- image processing
- complexity
- processing apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Character Discrimination (AREA)
Abstract
【課題】 撮像時の手ブレやフォーカスのずれ等に起因するボケが撮像画像上に生じるようなケースであっても、撮像画像に対する文字認識をより高速且つ正確に実施するための技術を提供すること。【解決手段】 撮像画像中の文字に対する文字認識の結果として得られた認識文字の複雑度及び該文字認識の信頼度を取得する。複雑度と信頼度とに基づいて、認識文字を、文字に対する最終的な文字認識結果の候補に決定するのか否かを判断する。候補として決定済みの認識文字群に基づいて、文字に対する最終的な文字認識結果を決定して出力する。【選択図】 図1
Description
本発明は、文字認識技術に関するものである。
カメラ付きのスマートフォンやタブレットの普及により、健康診断表など様々な文書をカメラによって撮影し、文書内の文字を認識する技術が開発されている。スマートフォンやタブレットなどで文字認識を行う場合、カメラは手持ちである場合が多く、手ぶれが発生したり、フォーカスが合わない画像が入力されたりすることがある。このような手ぶれやフォーカスが合わない画像に対して文字認識を行った場合、認識性能が低下するという問題があった。特許文献1には、カメラから連続的に入力される画像に対し、文字認識に適しているか否かを判断するための評価値を、撮影対象領域に含まれる高周波成分の量から求め、この量が一定値以上となる画像を用いて文字認識を行う方法が開示されている。
しかし、文字の複雑さは文字種によって異なり、撮影時にボケが生じていても正しく認識できる文字もある。特許文献1の方法では、そのような正しく認識できる文字を文字認識に用いず認識までに多くの時間を要してしまう。例えばこれを回避するために、評価値の低い画像も用いて文字認識を行うと、ボケが生じると正しく認識できない文字を誤認識し精度が低下する。
本発明はこのような問題に鑑みてなされたものであり、撮像時の手ブレやフォーカスのずれ等に起因するボケが撮像画像上に生じるようなケースであっても、撮像画像に対する文字認識をより高速且つ正確に実施するための技術を提供する。
本発明の一様態は、撮像画像中の文字に対する文字認識の結果として得られた認識文字の複雑度及び該文字認識の信頼度を取得する認識手段と、前記複雑度と前記信頼度とに基づいて、前記認識文字を、前記文字に対する最終的な文字認識結果の候補に決定するのか否かを判断する判断手段と、前記候補として決定済みの認識文字群に基づいて、前記文字に対する最終的な文字認識結果を決定して出力する出力手段とを備えることを特徴とする。
本発明の構成によれば、撮像時の手ブレやフォーカスのずれ等に起因するボケが撮像画像上に生じるようなケースであっても、撮像画像に対する文字認識をより高速且つ正確に実施することができる。
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の1つである。
[第1の実施形態]
先ず、本実施形態に係る画像処理装置100の構成例について、図1のブロック図を用いて説明する。なお、図1には、以下に説明する各処理に関連する主要な構成を示している。
先ず、本実施形態に係る画像処理装置100の構成例について、図1のブロック図を用いて説明する。なお、図1には、以下に説明する各処理に関連する主要な構成を示している。
撮影部101は、静止画像を連続して撮像する若しくは動画像を撮像する。通知部102は、制御部103による処理結果をユーザに通知する。本実施形態では、通知部102はタッチパネル画面であるものとする。制御部103は、CPUやメモリなどにより構成されている。制御部103は、該メモリに格納されているコンピュータプログラムやデータを用いて処理を実行することで画像処理装置100全体の動作制御を行うと共に、画像処理装置100が行うものとして後述する各処理を実行若しくは制御する。記憶部104は、不揮発性メモリであり、OS(オペレーティングシステム)や、画像処理装置100に係る様々なデータや動作プログラムなどが保存されている。記憶部104に保存されている動作プログラムには、画像処理装置100が行うものとして後述する各処理を制御部103に実行若しくは制御させるためのコンピュータプログラムが含まれている。記憶部104に保存されているデータには、以下の説明において既知の情報として説明するものが含まれている。
次に、制御部103の機能構成例を図2のブロック図に示す。図2に示した各機能部はハードウェアで実装されても良いし、コンピュータプログラムで実装されても良い。後者の場合、このコンピュータプログラムは、上記の動作プログラムに含まれることになる。以下では、図2の機能部を処理の主体として説明する場合があるが、この機能部をコンピュータプログラムで実装する場合、実際には、このコンピュータプログラムを制御部103が実行することで、対応する機能部の機能が実現される。図2に示した各機能部の動作の説明は、図4のフローチャートに係る説明の中で行う。
次に、画像処理装置100が文字列(1文字以上の文字を含む文字列)が記された文書を撮像し、該撮像により得られる撮像画像中の各文字を認識してユーザに提示するために画像処理装置100が行う処理について、図4のフローチャートを用いて説明する。
ユーザは画像処理装置100を手にして撮影部101の撮像視界内に文書を収め、その状態で撮像開始指示を入力する。撮像開始指示は、例えば、通知部102であるタッチパネル画面上に表示されている撮像開始指示ボタンをユーザがタップすることで入力することができる。制御部103が撮像開始指示の入力を検知すると、図4のフローチャートに従った処理が開始される。なお、図4のフローチャートに従った処理の開始のトリガはこれに限らない。
ユーザが撮像しにくさを感じないためには、15〜30fps程度のフレームレートが必要である。例えば、文書を撮像することで得られる撮像画像中に50文字存在した場合、ステップS403で行う文字列領域の検出処理には約200msの処理時間が必要である。またステップS405〜ステップS410では約100ms程度の処理時間が必要である。そのためステップS403の処理、ステップS405〜ステップS410の処理、の各処理を、撮影部101から入力される全ての撮像画像に対して行った場合、十分なフレームレートを確保できない。十分なフレームレートを確保するために、本実施形態では、ステップS403の処理とステップS405〜ステップS410の処理とを別スレッドで実施する。そして、撮影部101から入力された撮像画像のうち一定の頻度で選択された撮像画像をステップS403の処理、ステップS405〜ステップS410の処理の対象とする。
撮影部101は連続して文書を撮像して撮像画像を出力しており、撮影部101から出力された撮像画像は連続的に記憶部104に書き込まれる。ステップS401では、入力部201は、最近に記憶部104に書き込まれた撮像画像をフレーム画像に設定する。
ステップS402では、判定部202は、文字列の領域(文字列領域)を検出する対象となるフレーム画像(未だ文字列領域が検出されていないフレーム画像)を検出フレーム画像として記憶部104から選択する。撮影部101による撮像時のフレームレートが30fps、ステップS403の処理に約200msの処理時間がかかると想定される場合、検出フレーム画像は撮影部101から入力される撮像画像のうち6フレームに1回の頻度で選択される。なお、ステップS403の処理が完了した時点での最新のフレーム画像を検出フレーム画像として選択しても良い。
記憶部104から検出フレーム画像が選択できた場合には、処理はステップS403に進み、選択できなかった場合(文字列領域が未検出のフレーム画像が未だ記憶部104に格納されていない場合)には、処理はステップS404に進む。
ステップS403では、同定部203は、検出フレーム画像から文字列領域を検出する。文字列を含む画像から該文字列の領域を検出する技術は周知の技術であり、例えば、周波数成分を用いる手法やエッジの多さを用いる手法等、公知の方法により実現することができる。周波数成分を用いる手法では、画像領域を周波数成分に分解し、周波数成分が大きい場合には文字や図形と判定する。エッジの多さを用いる手法では、差分フィルタ等で画像に対して重み付け処理をして、その値が大きい場合には、画像領域内にエッジが存在すると判別する。エッジ数が大きい場合には文字・図形などと判別する。
一方、ステップS404では、判定部202は、記憶部104から、文字列領域内の文字列を認識する対象となるフレーム画像(文字列領域内の文字列の認識を未だ行っていないフレーム画像)を認識フレーム画像として記憶部104から選択する。例えば、撮影部101による撮像時のフレームレートが30fps、ステップS405〜ステップS410の処理に約100msの処理時間がかかると想定される場合、認識フレーム画像は3フレームに1回の頻度で選択される。なお、ステップS410が完了した時点での最新のフレーム画像を認識フレーム画像として選択しても良い。
記憶部104から認識フレーム画像が選択できた場合、処理はステップS405に進み、選択できなかった場合(文字列領域内の文字列の認識を未だ行っていないフレーム画像が未だ記憶部104に格納されていない場合)、処理はステップS411に進む。
ステップS405の処理は、認識フレーム画像において文字列領域が検出されていない場合に行う処理である。ステップS405では、同定部203は、認識フレーム画像の最近の検出フレーム画像における文字列領域に対応する、認識フレーム画像内の領域を追跡し、該追跡した領域を認識フレーム画像における文字列領域とする。本ステップにおける処理は、例えばオプティカルフローによる文字列の追跡、局所特徴量とRANSACによるホモグラフィ行列推定等、公知の方法により実現することができる。オプティカルフローは、画像中の物体の動きをベクトルで表す手法である。動画像からの物体追跡に広く用いられ、これにより文字列の追跡が可能である。局所特徴量は、画像中の濃淡の変化が大きい点の周囲を画素値や微分値により、特徴量として表す手法である。局所特徴量を用いることで、異なるフレーム間で類似した局所領域の対応点群を求めることができる。またRANSACによるホモグラフィ行列推定とは、外れ値を含む対応点群から高精度にホモグラフィを推定する手法である。
そして、認識フレーム画像における文字列領域中の各文字について、ステップS406〜S410の処理が行われる。ステップS406では、文字認識部204は、認識フレーム画像における文字列領域中の文字列を構成する各文字のうち未認識の文字を選択文字として選択する。そして文字認識部204は、選択文字に対して文字認識を行い、該文字認識の結果として得られた認識文字の文字コードと、該選択文字に対する文字認識の信頼度(認識信頼度)と、を出力する。文字認識には様々な技術が存在する。例えば、文字の特徴量が属する空間である特徴空間上でクエリ文字とデータベース文字の幾何関係を比較する等、公知の方法により実現することができる。認識信頼度とは、選択文字に対する認識文字の確からしさを表す数値であり、例えば、選択文字(文字認識時のクエリ文字)と、該選択文字に対する文字認識の結果として得られる認識文字(データベース文字)と、の間の特徴空間における距離である。
ステップS407では、算出部205は、認識文字の複雑の度合いを表す複雑度特徴量を求める。ステップS407における処理の詳細については、図5のフローチャートを用いて後述する。
ステップS408で評価部206は、ステップS407で求めた認識文字の複雑度特徴量とステップS406で求めた選択文字の認識信頼度とに基づいて、認識文字を、選択文字に対する最終的な文字認識結果の候補に決定するのか否かを(評価)判断する。ステップS408における処理の詳細については、図6のフローチャートを用いて後述する。そして、認識文字を上記候補に決定すると評価部206が判断した(認識結果統合に用いると判断した)場合には、処理はステップS409を介してステップS410に進む。一方、認識文字を上記候補に決定しないと評価部206が判断した(認識結果統合に用いないと判断した)場合には、処理はステップS409を介してステップS411に進む。
ステップS410では、統合部207は、認識文字を上記候補に決定する。なお、認識フレーム画像を選択する度に、選択文字の認識文字が上記候補となるのか否かを判断し、上記候補になると判断された場合には、該認識文字を上記候補とするので、選択文字については上記候補として複数の認識文字が決定されている。然るに統合部207は、この複数の認識文字(候補として決定済みの認識文字群)のうち1つの認識文字を、選択文字に対する最終的な文字認識結果として決定する(認識結果を統合する)。例えば、複数の認識文字を同じ文字コードを有する認識文字のグループに分割し、最も多くの認識文字を含むグループに属する認識文字を、選択文字に対する最終的な文字認識結果として決定する方法がある。また、複数の認識文字のうち最近の認識文字を、選択文字に対する最終的な文字認識結果として決定する方法もある。また、上記のグループ分割を行い、グループ内の認識信頼度の合計が最も高いグループに属する認識文字を、選択文字に対する最終的な文字認識結果として決定する方法もある。また、複数の認識文字のうち最も認識信頼度が高い認識文字を、選択文字に対する最終的な文字認識結果として決定する方法もある。
通知部102は、統合部207により、選択文字に対する最終的な文字認識結果として決定した認識文字の文字コードに対応する文字をタッチパネル画面に表示する。ステップS406〜S410の処理を、文字列領域内の各文字について行うことで、タッチパネル画面には、文字列領域内の各文字の認識結果としての認識文字が表示されることになる。これによりユーザは撮像した文書中の文字列の認識結果を目視で確認することができる。例えば、図3に示す如く、健康診断書302を撮像することで得られた撮像画像群から選択された認識フレーム画像群301に含まれている「64.5」という文字列303を認識対象とするケースを考える。図3では、フレーム番号(t−4)〜(t−2)のそれぞれにおける認識フレーム画像から上記の候補として取得した認識文字列(認識結果304)は「84.5」となっており、上記の文字列303とは異なっている。また、フレーム番号(t−1)〜tのそれぞれにおける認識フレーム画像から上記の候補として取得した認識文字列は「64.5」となっており、上記の文字列303と一致する。図3の場合、統合部207は、フレーム番号t〜(t−4)のそれぞれに対応する認識結果304を統合して1つの認識結果である統合結果305を得る。然るに、この統合結果305は、新たな認識フレーム画像から上記候補を決定する度に更新されることになる。
図4に戻って、次にステップS411では制御部103は、タッチパネル画面を介してユーザから撮像終了指示が入力されたか否かを判断する。この判断の結果、タッチパネル画面を介してユーザから撮像終了指示が入力された場合には、図4のフローチャートに従った処理を終了する。一方、タッチパネル画面を介してユーザから撮像終了指示が入力されていない場合には、処理はステップS401に戻り、次のフレーム画像について以降の処理を行う。
次に、上記のステップS407における処理の詳細について、図5のフローチャートに従って説明する。ステップS501では算出部205は、認識フレーム画像中に写っている文書のレイアウト解析を行って、認識文字の属性を特定する。例えば、文書が帳票の場合、帳票の画像とその帳票が含む各文字の属性を登録したデータベースに対して、認識フレーム画像を照合し、該認識フレーム画像中の認識文字の属性を特定する。ここでいうところの「属性」とは、文字が数字、漢字、カタカナ、ひらがな、アルファベットといった文字の種別を指し、ステップS501では、認識文字が数字、漢字、カタカナ、ひらがな、アルファベットの何れであるのかを特定する。なお、認識文字の属性の特定方法は特定の方法に限らない。例えば、認識文字の文字コードから、該認識文字が数字、漢字、カタカナ、ひらがな、アルファベットの何れであるのかを特定しても良い。
ステップS502では、算出部205は、ステップS501で特定した認識文字の属性が「数字」(項目値)であるのか否かを判断する。この判断の結果、ステップS501で特定した認識文字の属性が「数字」であれば、処理はステップS504に進み、ステップS501で特定した認識文字の属性が「数字」(項目値)でなければ、処理はステップS503に進む。
ステップS503では、算出部205は、レイアウト特徴として「項目値以外」を設定する。一方、ステップS504では、算出部205は、レイアウト特徴として「項目値」を設定する。
ステップS505では、算出部205は、レイアウト特徴として「項目値」が設定されているのか否かを判断する。この判断の結果、レイアウト特徴として「項目値」が設定されていれば、処理はステップS507に進み、レイアウト特徴として「項目値以外」が設定されていれば、処理はステップS506に進む。
ステップS507では、算出部205は、複雑度特徴量として「単純」を示す値(本実施形態では「0」とする)を設定する。一方、ステップS506では、算出部205は、複雑度特徴量として「複雑」を示す値(本実施形態では「1」とする)を設定する。数字は漢字やひらがなと比べて、その形状は比較的単純である。然るに、認識文字の属性が「数字」であれば、該認識文字の複雑の度合いは「簡単」とし、複雑度特徴量として「簡単」を示す値を設定する。一方、認識文字の属性が「数字以外」であれば、該認識文字の複雑の度合いは「複雑」とし、複雑度特徴量として「複雑」を示す値を設定する。
なお、ユーザがタッチパネル画面上で項目値が写る領域(第1の領域)と、非項目値が写る領域(第2の領域)を指定しておいても良い。この場合、認識フレーム画像がタッチパネル画面上に表示されたときにおける第1の領域内の文字については複雑度特徴量として「簡単」を表す値を設定し、第2の領域内の文字については複雑度特徴量として「複雑」を表す値を設定する。
なお、ここでは簡単な文字の種別として数字、複雑な文字の種別として数字以外としたが、簡単な文字の種別、複雑な文字の種別はこれらの文字に限らない。例えば、規定量以上の高周波数成分を有する文字を複雑な文字とし規定量未満の高周波数成分を有する文字を簡単な文字としても良い。
次に、上記のステップS408における処理の詳細について、図6のフローチャートを用いて説明する。ステップS601では、評価部206は、ステップS407で求めた複雑度特徴量に対応する認識信頼度の閾値、すなわち「正しい認識結果が得られたと十分に判断できる認識信頼度の閾値」を取得する。認識信頼度が高いほど、認識結果が正しい可能性も高い。ただし単純な文字では多少のボケが生じて認識信頼度が低下しても、正しく認識できることが多く、複雑な文字では少しでもボケが生じて認識信頼度が低下すると、正しく認識できないことが多い。このように文字の複雑さに応じて認識信頼度における正しく認識できたか否かの閾値が変わることから、「正しい認識結果が得られたと十分に判断できる認識信頼度の閾値」を複雑度特徴量を用いて推測する。この推測で用いる関数fは、例えば次のような方法によって予め求めておくことができる。関数fは、機械学習によって認識エンジン毎に学習する。関数fの学習では、まず様々な種類の文字の画像(ボケの度合いが異なる画像を含んでも良い)を学習用画像として用意し、それぞれの学習用画像に対して文字認識を行って、文字毎に、複雑度特徴量、認識信頼度、そして認識の成功/失敗、のセットを得る。そして、得たセット群のうち認識成功のセットを対象セットとし、それぞれの対象セット中の複雑度特徴量と認識信頼度とを用いて、複雑度特徴量から対応する認識信頼度を推定する関数fを学習する。例えば、対象セット群から複雑度特徴量の値が「1」に対応する認識信頼度の集合を取得し、該取得した認識信頼度の平均値、最大値、最小値などの統計値θ1を求める。また、対象セット群から複雑度特徴量の値が「0」に対応する認識信頼度の集合を取得し、該取得した認識信頼度の平均値、最大値、最小値などの統計値θ2(<θ1)を求める。そして以下のような性質を有する関数fを得る。
θ1=f(1)
θ2=f(0)
然るにステップS601では、このような関数fの引数にステップS407で求めた複雑度特徴量を与えたときの関数fの出力値を、対応する閾値として取得する。なお、このような関数fはコンピュータプログラムにおける関数として実装しても良いし、テーブルデータとして実装しても良い。なお、ステップS407で求めた複雑度特徴量に対応する「正しい認識結果が得られたと十分に判断できる認識信頼度の閾値」の決定方法や取得方法は特定の決定方法、取得方法に限らない。
θ2=f(0)
然るにステップS601では、このような関数fの引数にステップS407で求めた複雑度特徴量を与えたときの関数fの出力値を、対応する閾値として取得する。なお、このような関数fはコンピュータプログラムにおける関数として実装しても良いし、テーブルデータとして実装しても良い。なお、ステップS407で求めた複雑度特徴量に対応する「正しい認識結果が得られたと十分に判断できる認識信頼度の閾値」の決定方法や取得方法は特定の決定方法、取得方法に限らない。
ステップS602では、評価部206は、ステップS406で求めた認識文字の認識信頼度がステップS601で取得した閾値よりも高いか否かを判断する。この判断の結果、ステップS406で求めた認識文字の認識信頼度がステップS601で取得した閾値よりも高い場合には、処理はステップS603に進む。一方、ステップS406で求めた認識文字の認識信頼度がステップS601で取得した閾値以下の場合には、処理はステップS604に進む。
ステップS603では、評価部206は、認識文字は正しい認識結果であると判断し、該認識文字を、選択文字に対する最終的な文字認識結果の候補に決定する(認識結果の統合に用いる)と判断する。複雑度特徴量を用いて閾値を推定するため、複雑な文字は認識できないようなボケが生じたとしても、正しく認識できる程に単純な文字については、認識結果統合に用いるべきと判定される。
一方、ステップS604では、評価部206は、認識文字は間違った認識結果であると判断し、該認識文字を、選択文字に対する最終的な文字認識結果の候補に決定しない(認識結果の統合に用いない)と判断する。
このように、本実施形態によれば、手ブレやフォーカスのずれ等に起因するボケが生じていても、認識結果を信頼するべきか否かを文字毎に正確に判断することができる。これにより、ボケが生じていても正しく認識できる単純な文字の認識結果を、統合に反映せずに破棄することが無くなるので、少ない認識時間で文書内の文字を認識できる。
[第2の実施形態]
本実施形態を含め、以下の各実施形態については、第1の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第1の実施形態と同様であるものとする。第1の実施形態では、簡単な文字を数字のみとした。しかし、「ヘモグロビン」のように、カタカナであっても単純な文字であったりする場合があり、単純で正しく認識できる文字列を誤って複雑な文字と判断すると、認識信頼度の閾値を誤って高く推定してしまう。その場合、正しい認識結果を統合に反映せずに破棄する可能性があり、認識時間が増加してしまう。
本実施形態を含め、以下の各実施形態については、第1の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第1の実施形態と同様であるものとする。第1の実施形態では、簡単な文字を数字のみとした。しかし、「ヘモグロビン」のように、カタカナであっても単純な文字であったりする場合があり、単純で正しく認識できる文字列を誤って複雑な文字と判断すると、認識信頼度の閾値を誤って高く推定してしまう。その場合、正しい認識結果を統合に反映せずに破棄する可能性があり、認識時間が増加してしまう。
本実施形態では、レイアウト特徴に加えて、選択文字の画像特徴をも参酌して、認識文字の複雑の度合いを表す複雑度特徴量を求める。本実施形態では、上記のステップS407において、図7のフローチャートに従った処理を行う。ステップS701〜S704のそれぞれのステップでは、上記のステップS501〜S504と同様の処理を行う。
ステップS705では、算出部205は、選択文字の画像領域における画像特徴として、該選択文字の孔数、該選択文字の連結成分の形状の分布、を求める。
選択文字の孔数について、図8を例にとり説明する。複雑な文字では孔が多く、単純な文字では孔が少ないことが多いため、1文字辺りの孔数によって文字の複雑度を表すことができる。例えば、「障」という文字を撮像して二値化した文字画像801では、孔802a〜孔802eの5つの孔が存在する。一般に良く用いられる非装飾フォント(ゴシック体等)のアラビア数字の場合、孔数は高々2(“8”)であり、文字画像801はアラビア数字と比べて複雑な形状の文字であることが分かる。なお、ステップS705で求める孔数は、実際の選択文字の総孔数を該選択文字を含む文字列の幅(若しくは高さ)で割って正規化した値とする。総孔数は画像サイズの影響を受けやすく、同じ文字であっても、画像サイズが小さい場合は文字潰れが生じるため総孔数が小さくなりやすい。そのため、正規化することで画像サイズに対する頑健性を保つことができる。
選択文字の連結成分の形状の分布について、図9を例にとり説明する。図9には、文字列画像901と、該文字列画像901中の黒画素連結成分の高さ、幅、頻度を示したヒストグラム902と、を示している。ヒストグラム902の第2軸“高さ”の上限値は文字列画像の縦幅である。第1軸“幅”の上限値は第2軸“高さ”の上限値と同値とする。これは横書きの場合、文字列画像の幅が文字列毎に大きく異なるためである。縦書きの場合は第1軸“幅”の上限値を文字列画像の横幅とし、第2軸“高さ”の上限値をこれと同値とする。ヒストグラム902の階級幅は1とする。ヒストグラム902を構成するビンのうち、要素数が0では無いビンの割合を特徴とする。図9では、第1軸“幅”、及び第2軸“高さ”の上限値は30であり、要素数が0では無いビンの数は9である。よって、9/(30×30)=0.01が「連結成分の形状の分布」として得られる。文字列が単純なほど要素を持つビンの割合は少なく、文字列が複雑なほど要素を持つビンの割合は増加する。本実施形態では、1つの文字列について求めた「連結成分の形状の分布」を、該文字列を構成する各文字の「連結成分の形状の分布」として用いる。
「項目値」が設定されたレイアウト特徴の値を「0」、「項目値以外」が設定されたレイアウト特徴の値を「1」とすると、レイアウト特徴は1次元の値である。選択文字の孔数、該選択文字の連結成分の形状の分布のそれぞれも1次元の値である。算出部205は、{レイアウト特徴、選択文字の孔数、該選択文字の連結成分の形状の分布}を成分に有する3次元ベクトルを形成する。
ステップS706では、算出部205は、ステップS705で生成した3次元ベクトルから、複雑度特徴量の値を決定する。例えば、3次元ベクトルにおけるレイアウト特徴の値が「0」であれば、複雑度特徴量の値を「0」とする。また例えば、3次元ベクトルにおけるレイアウト特徴の値が「1」であっても、選択文字の孔数が規定の閾値未満であったり、選択文字の連結成分の形状の分布が規定の閾値未満であれば、複雑度特徴量の値を「0」とする。このようにして、3次元ベクトルのそれぞれの要素を活用して、複雑度特徴量を求めることで、単純で正しく認識できる文字列を誤って複雑な文字と判断することが無くなる。
このように本実施形態によれば、文字の属性だけでなくその画像特徴も参酌して該文字の複雑度特徴量を決定することができるので、単純で正しく認識できる文字列を誤って複雑な文字と判断するといった誤った判断を軽減することができる。そのため、認識信頼度を誤って高く推定し、正しい認識結果を統合に反映せずに破棄することが無くなる。したがって少ない認識時間で認識することができる。
[第3の実施形態]
第1の実施形態では、複雑度特徴量から認識信頼度の閾値を求め、該求めた閾値と認識文字の認識信頼度との大小比較を行っていた。認識信頼度は認識エンジンに大きく依存するため、認識信頼度に基づく第1の実施形態に係る方法では、認識エンジン毎に複雑度特徴量と認識信頼度との関係を学習する必要がある。学習で使用したものとは異なる認識エンジンを用いて認識した場合、認識信頼度の閾値を正しく求められず、正しい認識結果を統合に反映せずに破棄する可能性があり、認識時間が増加してしまう。
第1の実施形態では、複雑度特徴量から認識信頼度の閾値を求め、該求めた閾値と認識文字の認識信頼度との大小比較を行っていた。認識信頼度は認識エンジンに大きく依存するため、認識信頼度に基づく第1の実施形態に係る方法では、認識エンジン毎に複雑度特徴量と認識信頼度との関係を学習する必要がある。学習で使用したものとは異なる認識エンジンを用いて認識した場合、認識信頼度の閾値を正しく求められず、正しい認識結果を統合に反映せずに破棄する可能性があり、認識時間が増加してしまう。
認識エンジンへの依存度が小さく認識結果の正しさに関係を持つ尺度として、画像のコントラストの大きさやエッジの鮮明さといった画質がある。画質が高い文字は認識結果が正しい可能性が高く、画質が低い文字は認識結果が正しくない可能性が高い。また単純な文字では多少のボケが生じて画質が低下しても正しく認識できることが多く、複雑な文字では少しでもボケが生じて画質が低下すると正しく認識できないことが多い。すなわち文字の複雑さに応じて、正しい認識結果が得られたか否かの画質の閾値は異なる。そこで本実施形態では、複雑度特徴量から文字画像の画質の閾値を求め、選択文字の画質と比較する。
本実施形態では、ステップS406では認識信頼度は算出せず、上記のステップS408において図10のフローチャートに従った処理を行う。ステップS1001では、評価部206は、選択文字の画質を求める。例えば選択文字の画像領域におけるコントラストの大きさやエッジの鮮明さ等、公知の方法により定義することができる。コントラストの大きさは、選択文字の画像領域内の輝度値の最大値をL_max、最小値をL_minとした場合に、L_max/L_minとして表すことができる。エッジの鮮明さは、選択文字の画像領域に対してCanny法などの公知のエッジ抽出法によってエッジ画素を求め、該エッジ画素に隣接する画素の輝度勾配の平均として表すことができる。
ステップS1002では、評価部206は、ステップS407で求めた複雑度特徴量に対応する画質の閾値、すなわち「正しい認識結果が得られたと十分に判断できる画質の閾値」を関数gを用いて取得する。関数gは、例えば次のような方法でもって生成することができる。まず様々な種類の文字の画像(ボケの度合いが異なる画像を含んでも良い)を学習用画像として用意し、それぞれの学習用画像に対して文字認識を行って、複雑度特徴量、画質、そして認識の成功/失敗、のセットを得る。そして、得たセット群のうち認識成功のセットを対象セットとし、それぞれの対象セット中の複雑度特徴量と画質とを用いて、複雑度特徴量から対応する画質を推定する関数gを学習する。例えば、対象セット群から複雑度特徴量の値が「1」に対応する画質の集合を取得し、該取得した画質の平均値、最大値、最小値などの統計値θ3を求める。また、対象セット群から複雑度特徴量の値が「0」に対応する画質の集合を取得し、該取得した画質の平均値、最大値、最小値などの統計値θ4(<θ3)を求める。そして以下のような性質を有する関数gを得る。
θ3=g(1)
θ4=g(0)
然るにステップS1002では、このような関数gの引数にステップS407で求めた複雑度特徴量を与えたときの関数gの出力値を、対応する閾値として取得する。なお、このような関数gはコンピュータプログラムにおける関数として実装しても良いし、テーブルデータとして実装しても良い。また、ステップS407で求めた複雑度特徴量に対応する「正しい認識結果が得られたと十分に判断できる画質の閾値」の決定方法や取得方法は特定の決定方法、取得方法に限らない。
θ4=g(0)
然るにステップS1002では、このような関数gの引数にステップS407で求めた複雑度特徴量を与えたときの関数gの出力値を、対応する閾値として取得する。なお、このような関数gはコンピュータプログラムにおける関数として実装しても良いし、テーブルデータとして実装しても良い。また、ステップS407で求めた複雑度特徴量に対応する「正しい認識結果が得られたと十分に判断できる画質の閾値」の決定方法や取得方法は特定の決定方法、取得方法に限らない。
ステップS1003では、評価部206は、ステップS1001で求めた選択文字の画質がステップS1002で取得した閾値よりも高いか否かを判断する。この判断の結果、ステップS1001で求めた選択文字の画質がステップS1002で取得した閾値よりも高い場合には、処理はステップS1004に進む。一方、ステップS1001で求めた選択文字の画質がステップS1002で取得した閾値以下の場合には、処理はステップS1005に進む。
ステップS1004では、評価部206は、認識文字は正しい認識結果であると判断し、該認識文字を、選択文字に対する最終的な文字認識結果の候補に決定する(認識結果の統合に用いる)と判断する。
一方、ステップS1005では、評価部206は、認識文字は間違った認識結果であると判断し、該認識文字を、選択文字に対する最終的な文字認識結果の候補に決定しない(認識結果の統合に用いない)と判断する。
このように本実施形態によれば、文字の複雑さを考慮して、正しい認識結果が得られたと十分に判断できる画質の閾値を判断する。そのため、学習で使用したものとは異なる認識エンジンを用いて認識しても、正しい認識結果が得られたか否かの閾値を正しく求めることができる。そのため、正しい認識結果を統合に反映せずに破棄することがなくなる。したがって、学習で使用したものとは異なる認識エンジンを用いた場合であっても、少ない認識時間で文字を認識することができる。
[第4の実施形態]
図1では画像処理装置100は撮影部101を内蔵しているが、撮影部101は画像処理装置100の外部装置としても良い。この場合、画像処理装置100は有線若しくは無線でもって撮影部101から撮像画像を取得する。また、このように撮影部101と画像処理装置100とが通信を行う場合には、撮影部101と画像処理装置100との間に1以上の装置を介在させても良い。このような場合、例えば、撮影部101が撮像した撮像画像は中間装置に対して送信し、画像処理装置100は必要に応じて該中間装置から撮像画像を取得する。また、第1〜4の実施形態のそれぞれに係る構成の一部若しくは全部を、適宜組み合わせて使用しても良いし、選択的に使用しても良い。
図1では画像処理装置100は撮影部101を内蔵しているが、撮影部101は画像処理装置100の外部装置としても良い。この場合、画像処理装置100は有線若しくは無線でもって撮影部101から撮像画像を取得する。また、このように撮影部101と画像処理装置100とが通信を行う場合には、撮影部101と画像処理装置100との間に1以上の装置を介在させても良い。このような場合、例えば、撮影部101が撮像した撮像画像は中間装置に対して送信し、画像処理装置100は必要に応じて該中間装置から撮像画像を取得する。また、第1〜4の実施形態のそれぞれに係る構成の一部若しくは全部を、適宜組み合わせて使用しても良いし、選択的に使用しても良い。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
201:入力部 202:判定部 203:同定部 204:文字認識部 205:算出部 206:評価部 207:統合部
Claims (18)
- 撮像画像中の文字に対する文字認識の結果として得られた認識文字の複雑度及び該文字認識の信頼度を取得する認識手段と、
前記複雑度と前記信頼度とに基づいて、前記認識文字を、前記文字に対する最終的な文字認識結果の候補に決定するのか否かを判断する判断手段と、
前記候補として決定済みの認識文字群に基づいて、前記文字に対する最終的な文字認識結果を決定して出力する出力手段と
を備えることを特徴とする画像処理装置。 - 前記認識手段は、認識文字が第1の属性を有する文字に該当する場合には、簡単を表す値、認識文字が第2の属性を有する文字に該当する場合には、複雑を表す値、を前記複雑度として取得することを特徴とする請求項1に記載の画像処理装置。
- 前記第1の属性を有する文字は数字であることを特徴とする請求項2に記載の画像処理装置。
- 前記第2の属性を有する文字は、漢字、カタカナ、ひらがな、アルファベットを含むことを特徴とする請求項2又は3に記載の画像処理装置。
- 前記認識手段は、特徴空間における前記文字と前記認識文字との間の距離を前記信頼度として取得することを特徴とする請求項1乃至4の何れか1項に記載の画像処理装置。
- 前記判断手段は、前記複雑度に対応する閾値を取得し、前記信頼度が該閾値よりも高い場合には、前記認識文字を前記候補に決定することを特徴とする請求項1乃至5の何れか1項に記載の画像処理装置。
- 複雑を表す値を有する複雑度に対応する閾値は、簡単を表す値を有する複雑度に対応する閾値よりも高いことを特徴とする請求項6に記載の画像処理装置。
- 前記認識手段は、認識文字の属性と前記文字の画像特徴とに基づいて、該認識文字の複雑度を決定することを特徴とする請求項1に記載の画像処理装置。
- 前記文字の画像特徴は、前記文字の孔数、前記文字を含む文字列の連結成分の形状の分布、を含むことを特徴とする請求項8に記載の画像処理装置。
- 撮像画像中の文字に対する文字認識の結果として得られた認識文字の複雑度及び該文字の画質を取得する認識手段と、
前記複雑度と前記画質とに基づいて、前記認識文字を、前記文字に対する最終的な文字認識結果の候補に決定するのか否かを判断する判断手段と、
前記候補として決定済みの認識文字に基づいて、前記文字に対する最終的な文字認識結果を決定して出力する出力手段と
を備えることを特徴とする画像処理装置。 - 前記判断手段は、前記複雑度に対応する閾値を取得し、前記画質が該閾値よりも高い場合には、前記認識文字を前記候補に決定することを特徴とする請求項10に記載の画像処理装置。
- 複雑を表す値を有する複雑度に対応する閾値は、簡単を表す値を有する複雑度に対応する閾値よりも高いことを特徴とする請求項11に記載の画像処理装置。
- 前記出力手段は、複数の撮像画像のそれぞれから前記候補として決定済みの認識文字から前記最終的な文字認識結果を決定して出力することを特徴とする請求項1乃至12の何れか1項に記載の画像処理装置。
- 前記出力手段は、前記最終的な文字認識結果を表示することを特徴とする請求項1乃至13の何れか1項に記載の画像処理装置。
- 更に、文字を含む文書を撮像する撮像手段を備えることを特徴とする請求項1乃至14の何れか1項に記載の画像処理装置。
- 画像処理装置が行う画像処理方法であって、
前記画像処理装置の認識手段が、撮像画像中の文字に対する文字認識の結果として得られた認識文字の複雑度及び該文字認識の信頼度を取得する認識工程と、
前記画像処理装置の判断手段が、前記複雑度と前記信頼度とに基づいて、前記認識文字を、前記文字に対する最終的な文字認識結果の候補に決定するのか否かを判断する判断工程と、
前記画像処理装置の出力手段が、前記候補として決定済みの認識文字群に基づいて、前記文字に対する最終的な文字認識結果を決定して出力する出力工程と
を備えることを特徴とする画像処理方法。 - 画像処理装置が行う画像処理方法であって、
前記画像処理装置の認識手段が、撮像画像中の文字に対する文字認識の結果として得られた認識文字の複雑度及び該文字の画質を取得する認識工程と、
前記画像処理装置の判断手段が、前記複雑度と前記画質とに基づいて、前記認識文字を、前記文字に対する最終的な文字認識結果の候補に決定するのか否かを判断する判断工程と、
前記画像処理装置の出力手段が、前記候補として決定済みの認識文字に基づいて、前記文字に対する最終的な文字認識結果を決定して出力する出力工程と
を備えることを特徴とする画像処理方法。 - コンピュータを、請求項1乃至15の何れか1項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017074026A JP2018180606A (ja) | 2017-04-03 | 2017-04-03 | 画像処理装置、画像処理方法、及びコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017074026A JP2018180606A (ja) | 2017-04-03 | 2017-04-03 | 画像処理装置、画像処理方法、及びコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018180606A true JP2018180606A (ja) | 2018-11-15 |
Family
ID=64275456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017074026A Pending JP2018180606A (ja) | 2017-04-03 | 2017-04-03 | 画像処理装置、画像処理方法、及びコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018180606A (ja) |
-
2017
- 2017-04-03 JP JP2017074026A patent/JP2018180606A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3163509A1 (en) | Method for region extraction, method for model training, and devices thereof | |
CN108694400B (zh) | 信息处理装置、其控制方法及存储介质 | |
US10937168B2 (en) | System and method for finding and classifying lines in an image with a vision system | |
US11341739B2 (en) | Image processing device, image processing method, and program recording medium | |
US10621427B2 (en) | Information processing apparatus, storage medium, and information processing method for character recognition by setting a search area on a target image | |
EP2639743A2 (en) | Image processing device, image processing program, and image processing method | |
KR101842535B1 (ko) | 부호의 광학적 검출 방법 | |
CN113095292A (zh) | 手势识别方法、装置、电子设备及可读存储介质 | |
JP6107372B2 (ja) | 画像処理装置、画像処理方法および画像処理プログラム | |
CN110619672B (zh) | 图形边缘线选取方法、机器可读存储介质及数据处理设备 | |
US10915772B2 (en) | Apparatus and method for registering face pose for face recognition | |
JP2024016287A (ja) | ビジョンシステムでラインを検出するためのシステム及び方法 | |
CN110211021B (zh) | 图像处理装置、图像处理方法和存储介质 | |
US10134138B2 (en) | Information processing apparatus, computer-readable storage medium, information processing method | |
JP2019144703A (ja) | 読取システム、読取方法、プログラム、及び記憶媒体 | |
JP5857634B2 (ja) | 単語間空白検出装置、単語間空白検出方法及び単語間空白検出用コンピュータプログラム | |
CN112232282A (zh) | 一种手势识别方法、装置、存储介质和电子设备 | |
US20190147238A1 (en) | Information processing apparatus, information processing method, and storage medium | |
JP2018180606A (ja) | 画像処理装置、画像処理方法、及びコンピュータプログラム | |
JP2007219899A (ja) | 個人識別装置、個人識別方法および個人識別プログラム | |
JP2019145182A (ja) | 読取システム、読取方法、プログラム、及び記憶媒体 | |
US20240265729A1 (en) | Information processing apparatus, information processing system, information processing method, and storage medium | |
CN109977746B (zh) | 用于登记面部姿态以用于面部识别的设备和方法 | |
JP7211496B2 (ja) | 教師データ生成装置 | |
US10304195B2 (en) | Information processing apparatus, computer-readable storage medium, and information processing method for judging a recognition target area |