説明

画像処理装置、画像処理方法、画像処理プログラム、及び、波形データ処理装置

【課題】画像処理を規定するパラメータを適正に調整する。
【解決手段】CPU11は、文字列を構成する少なくとも1つの文字の認識が失敗したか否かを判定する成否判定部113と、成否判定部113によって文字列を構成する少なくとも1つの文字の認識が失敗したと判定された場合に、文字の認識が失敗した原因を推定する原因推定部116と、原因推定部116によって推定された原因に基づいて、画像処理を規定する複数のパラメータのうち、推定された原因に対応する少なくとも1つのパラメータの値を修正する処理修正部117と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認識対象部位を含む物体を撮像して得られる画像に対して予め定められた画像処理を施して、前記認識対象部位を認識する画像処理装置、画像処理方法、及び、画像処理プログラムに関する。また、本発明は、認識対象部位を含む波形データに対して予め定められた認識処理を施して、前記認識対象部位を認識する波形データ処理装置に関する。
【背景技術】
【0002】
従来、認識対象部位を含む物体を撮像して得られる画像に対して予め定められた画像処理を施して、前記認識対象部位を認識する種々の技術が提案されている。
【0003】
例えば、スキャンした原稿画像(文書画像ともいう)を文字認識処理して文字コードを生成し、次に文字コードに基づいて文字画像を生成し、次に、生成された文字画像と原稿画像から切り出したオリジナルの文字画像とを比較して類似度を出力し、類似度に基づいて認識結果の正誤を判定し、誤認識のある文字の部分を含む原稿画像を取り出し、当該誤認識のある文字画像の座標データに基づいて、誤認識のある文字画像をハイライトさせた出力画像データを生成してユーザに表示する文字認識装置が開示されている(特許文献1参照)。
【0004】
オペレータ(正誤判定者)は、すべての文書においてすべての領域で文字認識結果の正誤を確認する必要があったが、特許文献1に記載の文字認識装置によれば、ハイライトされた文字のみを確認するだけでよいため、オペレータによる文字認識結果の正誤判定作業量を低減することができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−61471号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記特許文献1に記載の文字認識装置においては、オペレータ(正誤判定者)の正誤判定作業量を低減することができるものの、文字の認識率を高めるために、文字を認識する画像処理を規定するパラメータの調整を行うことは困難であった。
【0007】
すなわち、物体の表面に形成された文字列を含む画像から、文字列を構成する各文字を認識するためには、種々の画像処理(例えば、回転処理、膨張・収縮処理、コントラスト調整処理、二値化処理等)を施す必要があるため、画像処理全体の処理内容を規定するパラメータの個数が多数(例えば、200個)となる。したがって、文字を認識する画像処理を規定するパラメータの適正な調整を行うことは、高度の知識を必要とする極めて困難な作業であった。
【0008】
本発明は、上記課題に鑑みてなされたものであって、認識対象部位を認識する画像処理(又は認識処理)を規定するパラメータの適正な調整を行うことの可能な画像処理装置、画像処理方法、画像処理プログラム、及び、波形データ処理装置を提供することを目的としている。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明に係る画像処理装置は、以下のように構成されている。
【0010】
すなわち、本発明に係る画像処理装置は、認識対象部位を含む物体を撮像して得られる画像に対して予め定められた画像処理を施して、前記認識対象部位を認識する画像処理装置であって、前記認識対象部位の認識が失敗したか否かを判定する成否判定手段と、前記成否判定手段によって前記認識対象部位の認識が失敗したと判定された場合に、前記文字の認識が失敗した原因を推定する原因推定手段と、前記原因推定手段によって推定された原因に基づいて、前記画像処理を規定する複数のパラメータのうち、前記推定された原因に対応する少なくとも1つのパラメータの値を修正する処理修正手段と、を備えることを特徴としている。
【0011】
かかる構成を備える画像処理装置によれば、認識対象部位の認識が失敗したか否かが判定され、認識対象部位の認識が失敗したと判定された場合に、前記認識対象部位の認識が失敗した原因が推定され、推定された原因に基づいて、前記認識対象部位を含む画像に対して施される画像処理を規定する複数のパラメータのうち、前記推定された原因に対応する少なくとも1つのパラメータの値が修正されるため、認識対象部位を認識する画像処理を規定するパラメータの適正な調整を行うことができる。
【0012】
ここでは、認識対象部位が、例えば、文字列を構成する各文字である場合について説明する。すなわち、例えば、文字の認識が失敗した原因が文字の線幅である(文字が太すぎる、又は、文字が細すぎる)と推定された場合には、予め設定された推奨線幅B0(例えば、実験的に文字の認識率が最も高くなる線幅)と、実際の文字の線幅の平均値(平均線幅)Bavと、の差である差分線幅ΔBの絶対値分だけ黒膨張処理又は白膨張処理を行う設定に修正すればよい(図12参照)。このようにして、前記推定された原因に対応する少なくとも1つのパラメータの値が修正されるため、画像処理を規定するパラメータを適正に調整することができるのである。
【0013】
また、例えば、文字の認識が失敗した原因が、文字列の回転であると推定された場合、文字の滲み(にじみ)又は擦れ(かすれ)であると推定された場合、文字のコントラストが低いことであると推定された場合にも、同様にして、推定された原因に対応する少なくとも1つのパラメータの値が修正される(図18参照)ため、画像処理を規定するパラメータを適正に調整することができるのである。
【0014】
つまり、認識対象部位の認識が失敗する可能性のある原因ごとに、各原因に対応する少なくとも1つのパラメータの値を修正するためのロジック(手順、方法等)を予め構築しておくことによって、推定された原因に対応する少なくとも1つのパラメータの値を適正に修正する(図12、図18参照)ことができるため、画像処理を規定するパラメータを適正に調整することができるのである。
【0015】
また、本発明に係る画像処理装置は、外部からの操作入力を受け付ける操作受付手段と、前記認識対象部位の認識が成功したか否かの判定結果を示す操作入力を、前記操作受付手段を介して受け付ける成否受付手段と、を更に備え、前記成否判定手段が、前記成否受付手段によって受け付けられた操作入力に基づいて、前記認識対象部位の認識が失敗したか否かを判定することが好ましい。
【0016】
かかる構成を備える画像処理装置によれば、外部から(例えば、オペレータによって)認識対象部位の認識が成功したか否かの判定結果を示す操作入力が受け付けられ、認識対象部位の認識が失敗したか否かが、受け付けられた操作入力に基づいて判定されるため、
文字の認識が失敗したか否かの判定を簡素な構成で正確に行うことができる。
【0017】
また、本発明に係る画像処理装置は、前記成否判定手段によって前記認識対象部位の認識が失敗したと判定された場合に、予め設定された複数の原因ごとに、前記認識対象部位の認識が失敗する可能性の高さを定量的に示す失敗確率として評価する原因評価手段を更に備え、前記原因推定手段が、前記原因評価手段によって評価された失敗確率に基づいて、前記文字の認識が失敗した原因を推定することが好ましい。
【0018】
かかる構成を備える画像処理装置によれば、認識対象部位の認識が失敗したと判定された場合に、予め設定された複数の原因ごとに、前記認識対象部位の認識が失敗する可能性の高さを定量的に示す失敗確率が評価され、評価された失敗確率に基づいて、前記認識対象部位の認識が失敗した原因が推定されるため、前記失敗確率を正確に評価することによって、認識対象部位の認識が失敗した原因を正確に推定することができる。
【0019】
ここでは、認識対象部位が、例えば、文字列を構成する各文字である場合について説明する。すなわち、例えば、文字の認識が失敗した原因が文字の線幅である(文字が太すぎる、又は、文字が細すぎる)場合には、予め設定された推奨線幅B0(例えば、実験的に文字の認識率が最も高くなる線幅)と、実際の文字の線幅の平均値(平均線幅)Bavと、の差である差分線幅ΔBの絶対値に重みW1を乗じて、失敗確率P1(図10参照)を評価することができる。このようにして、文字の認識が失敗する可能性の高さを定量的に示す失敗確率P1が評価されるため、認識対象部位の認識が失敗した原因を正確に推定することができるのである。
【0020】
また、例えば、文字の認識が失敗した原因が、文字列の回転である場合、文字の滲み又は擦れである場合、文字のコントラストが低いことである場合にも、同様にして、失敗確率P2、P3、P4(図14、図17、図20参照)を評価することができるため、認識対象部位の認識が失敗した原因を正確に推定することができるのである。
【0021】
つまり、認識対象部位の認識が失敗する可能性のある原因ごとに、各原因に起因する失敗確率Piの値を求めるためのロジック(手順、方法等)を予め構築しておくことによって、各原因に対応する失敗確率を求めて比較することができる(図7のステップS207等、図10、図14、図17、図20参照)ため、認識対象部位の認識が失敗した原因を正確に推定することができるのである。
【0022】
また、本発明に係る画像処理装置は、外部から視認可能に画像を表示する画像表示手段と、前記複数の原因のうち、前記原因評価手段によって失敗確率が高いと評価された順に、予め設定された2以上の所定個数の原因を示す文字又は画像を、前記画像表示手段に表示させる結果表示手段と、を更に備えることが好ましい。
【0023】
かかる構成を備える画像処理装置によれば、複数の原因のうち、失敗確率が高いと評価された順に、予め設定された2以上の所定個数の原因を示す文字又は画像が、外部から視認可能に表示されるため、利便性を向上することができる。すなわち、例えば、オペレータが、LCD等に表示された原因を示す文字又は画像を参照して、認識対象部位の認識が失敗した原因を推定することができるため、認識対象部位の認識が失敗した原因を容易に推定することができるので、利便性を向上することができるのである。
【0024】
また、本発明に係る画像処理装置は、前記結果表示手段が、前記2以上の所定個数の原因に対応付けて、前記原因評価手段によって評価された失敗確率の値を示す文字又は画像を、前記画像表示手段に表示させることが好ましい。
【0025】
かかる構成を備える画像処理装置によれば、2以上の所定個数の原因に対応付けて、失敗確率の値を示す文字又は画像が、外部から視認可能に表示されるため、利便性を更に向上することができる。すなわち、例えば、オペレータが、LCD等に表示された原因を示す文字(又は画像)と、失敗確率の値を示す文字(又は画像)とを参照して、認識対象部位の認識が失敗した原因を推定することができるため、認識対象部位の認識が失敗した原因を更に容易に推定することができるので、利便性を更に向上することができるのである。
【0026】
また、本発明に係る画像処理装置は、前記原因推定手段が、前記結果表示手段によって前記画像表示手段に表示された前記2以上の所定個数の原因の中から、1つの前記認識対象部位の認識が失敗した原因を選択する選択入力を、前記操作受付手段を介して受け付けて、選択された原因を、前記認識対象部位の認識が失敗した原因であると推定することが好ましい。
【0027】
かかる構成を備える画像処理装置によれば、失敗確率が高いと評価されて表示された2以上の所定個数の原因の中から、1つの前記認識対象部位の認識が失敗した原因を選択する選択入力が受け付けられ、選択された原因が、認識対象部位の認識が失敗した原因であると推定されるため、認識対象部位の認識が失敗した原因を容易に推定することができる。
【0028】
また、本発明に係る画像処理装置は、前記処理修正手段が、前記原因推定手段によって前記文字の認識が失敗した原因であると推定された原因について、前記原因評価手段によって評価された失敗確率が大きい程、前記推定された原因に対応する少なくとも1つのパラメータの値を大幅に修正することが好ましい。
【0029】
かかる構成を備える画像処理装置によれば、認識対象部位の認識が失敗した原因であると推定された原因について、評価された失敗確率が大きい程、推定された原因に対応する少なくとも1つのパラメータの値が大幅に修正されるため、画像処理を規定するパラメータを適正に調整することができる。
【0030】
また、本発明に係る画像処理装置は、前記認識対象部位が、前記物体の表面に形成された文字であることが好ましい。
【0031】
この場合には、物体の表面に形成された文字を認識する画像処理を規定するパラメータの適正な調整を行うことができる。
【0032】
また、上記課題を解決するために、本発明に係る波形データ処理装置は、以下のように構成されている。
【0033】
すなわち、本発明に係る波形データ処理装置は、認識対象部位を含む波形データに対して予め定められた認識処理を施して、前記認識対象部位を認識する波形データ処理装置であって、前記認識対象部位の認識が失敗したか否かを判定する成否判定手段と、前記成否判定手段によって前記認識対象部位の認識が失敗したと判定された場合に、前記認識対象部位の認識が失敗した原因を推定する原因推定手段と、前記原因推定手段によって推定された原因に基づいて、前記認識処理を規定する複数のパラメータのうち、前記推定された原因に対応する少なくとも1つのパラメータの値を修正する処理修正手段と、を備えることを特徴としている。
【0034】
かかる構成を備える画像処理装置によれば、認識対象部位の認識が失敗したか否かが判定され、認識対象部位の認識が失敗したと判定された場合に、前記認識対象部位の認識が
失敗した原因が推定され、推定された原因に基づいて、前記認識対象部位を含む波形データに対して施される認識処理を規定する複数のパラメータのうち、前記推定された原因に対応する少なくとも1つのパラメータの値が修正されるため、認識対象部位を認識する認識処理を規定するパラメータの適正な調整を行うことができる。
【0035】
また、上記課題を解決するために、本発明に係る画像処理方法は、以下のように構成されている。
【0036】
すなわち、本発明に係る画像処理方法は、認識対象部位を含む物体を撮像して得られる画像に対して予め定められた画像処理を施して、前記認識対象部位を認識する画像処理方法であって、前記認識対象部位の認識が失敗したか否かを判定する成否判定ステップと、前記成否判定ステップにおいて前記認識対象部位の認識が失敗したと判定された場合に、前記文字の認識が失敗した原因を推定する原因推定ステップと、前記原因推定ステップにおいて推定された原因に基づいて、前記画像処理を規定する複数のパラメータのうち、前記推定された原因に対応する少なくとも1つのパラメータの値を修正する処理修正ステップと、を実行することを特徴としている。
【0037】
また、本発明に係る画像処理プログラムは、以下のように構成されている。
【0038】
すなわち、本発明に係る画像処理プログラムは、認識対象部位を含む物体を撮像して得られる画像に対して予め定められた画像処理を施して、前記文字列を構成する各文字を認識する画像処理装置に配設されたコンピュータにおいて実行される画像処理プログラムであって、前記コンピュータを、前記認識対象部位の認識が失敗したか否かを判定する成否判定手段と、前記成否判定手段によって前記認識対象部位の認識が失敗したと判定された場合に、前記認識対象部位の認識が失敗した原因を推定する原因推定手段と、前記原因推定手段によって推定された原因に基づいて、前記画像処理を規定する複数のパラメータのうち、前記推定された原因に対応する少なくとも1つのパラメータの値を修正する処理修正手段として機能させることを特徴としている。
【0039】
かかる構成を備える画像処理方法及び画像処理プログラムによれば、認識対象部位の認識が失敗したか否かが判定され、認識対象部位の認識が失敗したと判定された場合に、前記認識対象部位の認識が失敗した原因が推定され、推定された原因に基づいて、前記文字列を含む画像に対して施される画像処理を規定する複数のパラメータのうち、前記推定された原因に対応する少なくとも1つのパラメータの値が修正されるため、認識対象部位を認識する画像処理を規定するパラメータの適正な調整を行うことができる。
【0040】
ここでは、認識対象部位が、例えば、文字列を構成する各文字である場合について説明する。すなわち、例えば、文字の認識が失敗した原因が文字の線幅である(文字が太すぎる、又は、文字が細すぎる)と推定された場合には、予め設定された推奨線幅B0(例えば、実験的に文字の認識率が最も高くなる線幅)と、実際の文字の線幅の平均値(平均線幅)Bavと、の差である差分線幅ΔBの絶対値分だけ黒膨張処理又は白膨張処理を行う設定に修正すればよい(図11参照)。このようにして、前記推定された原因に対応する少なくとも1つのパラメータの値が修正されるため、画像処理を規定するパラメータを適正に調整することができるのである。
【0041】
また、例えば、文字の認識が失敗した原因が、文字列の回転であると推定された場合、文字の滲み又は擦れであると推定された場合、文字のコントラストが低いことであると推定された場合にも、同様にして、推定された原因に対応する少なくとも1つのパラメータの値が修正される(図17参照)ため、画像処理を規定するパラメータを適正に調整することができるのである。
【0042】
つまり、認識対象部位の認識が失敗する可能性のある原因ごとに、各原因に対応する少なくとも1つのパラメータの値を修正するためのロジック(手順、方法等)を構築しておくことによって、推定された原因に対応する少なくとも1つのパラメータの値を適正に修正する(図11、図17参照)ことができるため、画像処理を規定するパラメータを適正に調整することができるのである。
【発明の効果】
【0043】
本発明に係る画像処理装置、画像処理方法、画像処理プログラム、及び、波形データ処理装置によれば、認識対象部位の認識が失敗したか否かが判定され、認識対象部位の認識が失敗したと判定された場合に、前記認識対象部位の認識が失敗した原因が推定され、推定された原因に基づいて、前記文字列を含む画像に対して施される画像処理(又は、認識処理)を規定する複数のパラメータのうち、前記推定された原因に対応する少なくとも1つのパラメータの値が修正されるため、認識対象部位を認識する画像処理(又は、認識処理)を規定するパラメータの適正な調整を行うことができる。
【図面の簡単な説明】
【0044】
【図1】本発明に係る画像処理装置の配設状態の一例を示す斜視図である。
【図2】本発明に係る画像処理装置本体の構成の一例を示す構成図である。
【図3】図2に示すCPU等の機能構成の一例を示す機能構成図である。
【図4】図3に示す画像処理部の動作の一例を示すフローチャートである。
【図5】図4に示すフローチャートのステップS103で実行される膨張・収縮処理の一例を示す説明図である。
【図6】図3に示す画像処理部によって実行される画像処理の一例を説明する説明図である。
【図7】図3に示すCPUの動作の一例を示すフローチャートである。
【図8】図7に示すフローチャートのステップS209及びステップS221でそれぞれモニタに表示される結果表示画面の一例を示す画面図である。
【図9】文字の線幅が太すぎることに起因して文字認識が失敗するケースの一例を示す説明図である。
【図10】図7に示すフローチャートのステップS205において、文字の線幅に起因した失敗確率を求める処理の一例を示す詳細フローチャートである。
【図11】図10のステップS301からステップS307において文字の線幅を求める方法の一例を示す説明図である。
【図12】図7に示すフローチャートのステップS217において、選択された失敗原因が文字の線幅である場合にパラメータ値を修正する処理の一例を示す詳細フローチャートである。
【図13】文字列の回転に起因して文字認識が失敗するケースの一例を示す説明図である。
【図14】図7に示すフローチャートのステップS205において、文字列の回転に起因した失敗確率を求める処理の一例を示す詳細フローチャートである。
【図15】画像回転処理における回転角の修正量を求める方法の一例を示す説明図である。
【図16】文字のかすれに起因して文字認識が失敗するケースの一例を示す説明図である。
【図17】図7に示すフローチャートのステップS205において、文字のかすれ(又は、にじみ)に起因した失敗確率を求める処理の一例を示す詳細フローチャートである。
【図18】図7に示すフローチャートのステップS217において、選択された失敗原因が文字の擦れ(又は、滲み)である場合にパラメータ値を修正する処理内容の一例を示す説明図である。
【図19】コントラストが低いことに起因して文字認識が失敗するケースの一例を示す説明図である。
【図20】図7に示すフローチャートのステップS205において、コントラストが低いことに起因した失敗確率を求める処理の一例を示す詳細フローチャートである。
【発明を実施するための形態】
【0045】
以下、本発明に係る画像処理装置、画像処理方法、及び、画像処理プログラムの実施形態を図面に基づいて説明する。
【0046】
−画像処理装置100の配設状態−
まず、図1を参照して、本発明に係る画像処理装置100が配設されている状態の一例について説明する。図1は、本発明に係る画像処理装置100の配設状態の一例を示す斜視図である。画像処理装置100は、例えば、製品5(物体)を製造する工場等において、製品5の表面(本実施形態では、CCDカメラ2と対向する側の面)に形成された複数の文字(例えば、アルファベット3文字)からなる文字列を含む画像に対して画像処理を施して、前記文字列を構成する各文字(認識対象部位)を認識するものである。
【0047】
本実施形態においては、製品5の表面に文字列が形成されている場合について説明するが、物体の表面に文字列が形成されている形態であればよい。例えば、果物、野菜等の農産物、魚介類等の海産物、IC(Integrated Circuit)、抵抗、コンデンサ等の部品、原材料、半製品等の表面に文字列が形成されている形態でもよい。
【0048】
また、本実施形態においては、文字列が形成されている面が、平面状である場合について説明するが、文字列が形成されている面は、曲面であっても、凹凸があってもよい。
【0049】
更に、本実施形態においては、認識対象部位が、文字である場合について説明するが、認識対象部位は、顔画像等の画像である形態でもよい。
【0050】
図1に示すように、画像処理装置100は、画像処理装置本体1、CCDカメラ2、モニタ3、及び、入力装置4を備え、ここでは、製品5を搬送するコンベア6の近傍に配設されている。なお、画像処理装置100のうち、CCDカメラ2は、製品5の表面に形成された文字列を含む画像を生成するものであるから、コンベア6の近傍に配設することが好ましい。一方、画像処理装置本体1、モニタ3、及び、入力装置4は、コンベア6の近傍に配設する必要はない。例えば、画像処理装置本体1、モニタ3、及び、入力装置4は、画像処理装置100を操作するオペレータの部屋等の粉塵が少なく、且つ、温度が常温近傍に維持される場所に配設することが好ましい。
【0051】
画像処理装置本体1は、画像処理装置100全体の動作を制御するものである。画像処理装置本体1の具体的な構成については、図2を用いて後述する。
【0052】
CCD(Charge Coupled Device)カメラ2(以下、単に「カメラ2」ともいう)は、コンベア6上を搬送される各製品5の表面に形成された文字列を含む画像を順に撮像するものであって、レンズをコンベア6上の製品5に向けて配設されている。また、カメラ2によって生成された画像情報は、順次、画像処理装置本体1へ出力される。
【0053】
モニタ3(画像表示手段)は、画像処理装置本体1からの指示に従って、種々の画像を外部から視認可能に表示するものであって、例えば、LCD(Liquid Crystal Display)等を備えている。モニタ3には、例えば、カメラ2によって生成された画像情報、図8を参照して後述する結果表示画面800、810、及び、種々のガイダンス情報等が表示さ
れる。
【0054】
入力装置4(操作受付手段)は、オペレータ等からの操作を受け付ける装置であって、キーボード、マウス等を備えている。なお、入力装置4によって受け付けられたオペレータの操作入力情報は、画像処理装置本体1へ出力される。
【0055】
−画像処理装置本体1の構成−
次に、図2を参照して、画像処理装置本体1の構成について説明する。図2は、本発明に係る画像処理装置本体1の構成の一例を示す構成図である。図2に示すように、画像処理装置本体1は、CPU11、EEPROM12、RAM13、画像メモリ14、A/D変換器15、D/A変換器16、及び、入出力部17を備えている。
【0056】
CPU(Central Processing Unit)11(コンピュータ)は、画像処理装置本体1全体の動作を制御するものであって、図略のROM(Read Only Memory)又は、EEPROM12等に格納される制御プログラムを実行することによって、種々の処理を実行する。なお、本発明に係る画像処理プログラムは、上記の制御プログラムの一部に相当する。
【0057】
EEPROM(Electrically Erasable Programmable Read-Only Memory)12は、書き換え可能な不揮発性メモリであって、図3を用いて後述するように、カメラ2によって生成された画像情報から文字を認識する画像処理に用いられる各種パラメータの値等を記憶するものである。RAM(Random Access Memory)は、CPU11での処理の結果、入力装置4から入力されたデータ等を一時的に記憶するメモリである。
【0058】
A/D変換器15は、カメラ2からのアナログの画像信号を取り込んで、ディジタルの画像情報に変換するものである。変換された濃淡画像情報は、画像メモリ14に記録される。ここでは、濃淡画像情報の各画素には、それぞれ、白色から黒色までの輝度の範囲に対応して、例えば256階調の濃淡を示す値(階調情報ともいう)が割り当てられている。すなわち、濃淡画像情報とは、画素ごとに対応付けられた階調情報である。
【0059】
画像メモリ14は、種々の画像情報を記憶するメモリであって、A/D変換器15から出力された画像情報を記憶すると共に、文字認識の画像処理において2値化処理された画像情報(以下、二値画像ともいう)等を記憶する。D/A変換器16は、画像メモリ14に格納された画像情報を、アナログの表示用画像信号に変換してモニタ3に出力するものである。
【0060】
入出力部17は、CPU11と入力装置4との間、及び、CPU11とモニタ3との間のデータの入出力処理を行うインターフェースである。
【0061】
−CPU11の機能構成−
次に、図3を参照して、CPU11等の構成について説明する。図3は、図2に示すCPU11等の機能構成の一例を示す機能構成図である。CPU11は、図略のROM等に記憶された制御プログラム(本発明に係る画像処理プログラム)を読み出して実行することによって、機能的に、画像処理部111、成否受付部112、成否判定部113、原因評価部114、結果表示部115、原因推定部116、及び、処理修正部117等として機能する。また、CPU11は、図略のROM等に記憶された制御プログラム(本発明に係る画像処理プログラム)を読み出して実行することによって、EEPROM12を、機能的に、パラメータ記憶部121等として機能させる。
【0062】
画像処理部111は、カメラ2によって撮像され画像メモリ14に格納された濃淡画像情報から文字列を構成する各文字を認識する画像処理を行う機能部である。画像処理とし
ては、コントラスト調整処理、回転処理、2値化処理、膨張・収縮処理、投影処理、文字切出処理、文字認識処理等を含む。
【0063】
コントラスト調整処理は、濃淡画像において、最も暗い部分と最も明るい部分の輝度の差を示すコントラストを調整する処理である。画像回転処理は、濃淡画像を、予め設定された向きに、予め設定された角度だけ回転する処理である。
【0064】
膨張・収縮処理は、濃淡画像において文字の線幅を太くする(又は、細くする)処理である。文字の線幅を太くする処理が膨張処理(以下、「黒膨張処理」ともいう)であり、文字の線幅を細くする処理が収縮処理(以下、「白膨張処理」ともいう)である。なお、膨張・収縮処理については、図5を参照して後述する。
【0065】
2値化処理は、濃淡画像を、各画素の明るさが基準値(閾値)以上であるか否かに応じて、黒色と白色との2つの値に変換し、二値画像を生成する処理である。
【0066】
投影処理は、二値画像において、水平方向の位置が同じ黒画素の個数を積算して、積算値の垂直方向の変化を示すグラフ(以下、「垂直投影グラフ」ともいう)を生成する垂直投影処理、及び、垂直方向の位置が同じ黒画素の個数を積算して、積算値の水平方向の変化を示すグラフ(以下、「水平投影グラフ」ともいう)を生成する水平投影処理である。
【0067】
文字切出処理は、投影処理によって得られた垂直投影グラフ及び水平投影グラフに対して閾値処理を施し、文字領域として切り出す処理である。なお、投影処理及び文字切出処理の詳細については、図6(c)を参照して後述する。
【0068】
文字認識処理は、例えば、公知のパターンマッチング等の手法により、文字切出処理によって切り出された文字領域に含まれる文字が、如何なる文字であるかを認識する処理である。
【0069】
ここで、画像処理部111によって実行される画像処理の具体的な処理の手順及び内容について、図4〜図6を参照して以下に説明する。図4は、図3に示す画像処理部111の動作の一例を示すフローチャートである。なお、以下の処理はすべて、画像処理部111によって実行される。また、図4は、図7に示すフローチャートのステップS201において実行される画像処理の一例を示す詳細フローチャートでもある。
【0070】
まず、ステップS101において、画像メモリ14に格納された濃淡画像情報が取得される。そして、ステップS103において、ステップS101で取得された濃淡画像に対して、コントラスト調整処理、画像回転処理、膨張・収縮処理等の前処理が施される。次いで、ステップS105において、ステップS103で前処理が施された画像に対して2値化処理が施され、二値画像が生成される。
【0071】
次にステップS107において、ステップS105で生成された二値画像に対して、垂直投影処理及び水平投影処理が施され、垂直投影グラフ及び水平投影グラフが生成される。そして、生成された垂直投影グラフ及び水平投影グラフに対して、それぞれ、予めパラメータ記憶部121に記憶されている垂直閾値及び水平閾値による閾値処理が施されて、各文字の文字幅及び文字列の高さが求められる。次いで、ステップS109において、ステップS107で求められた、各文字の文字幅及び文字列の高さに基づいて、二値画像から各文字画像が切り出される。次に、ステップS111において、ステップS109で切り出された文字画像ごとに、文字認識処理が行われ、処理が図7に示すフローチャートのステップS203へリターンされる。
【0072】
−膨張・収縮処理の内容−
ここで、膨張・収縮処理の内容について説明する。図5は、図4に示すフローチャートのステップS103で実行される膨張・収縮処理の一例を示す説明図である。図5(a)は、膨張処理を説明する図であり、図5(b)は、収縮処理を説明する図である。図5(a)、図5(b)の上側の図が、膨張・収縮処理を施す前の状態を示す図であり、図5(a)、図5(b)の下側の図が、膨張・収縮処理を施した後の状態を示す図である。
【0073】
各図は、それぞれ、画素Q5の周囲に画素Q1〜画素Q4、及び、画素Q6〜画素Q9が、格子状に配列されている状態を示している。そして、画素Q1〜画素Q9に施した網掛けの密度で、それぞれ、画素Q1〜画素Q9の階調を表している。ここでは、便宜上、画素Q1〜画素Q9に4段階の階調が画像情報として付与されている場合について説明する。ここでは、4段階の階調をそれぞれ、階調A、階調B、階調C、階調Dとし、輝度は、次の(1)式で示す関係にあるものとする。
【0074】
(階調A)>(階調B)>(階調C)>(階調D) (1)
図5(a)に示すように、膨張処理を施す前は、画素Q3、Q5、Q8の画素値が、階調A(ここでは、白色)であって、画素Q4の画素値が、階調B(薄いグレー)であって、画素Q1、Q2、Q6の画素値が、階調C(ここでは、少し濃いグレー)であって、画素Q7、Q9が、階調D(ここでは、濃いグレー)である。
【0075】
そして、ここでは、画素Q5を注目画素(膨張・収縮処理が施される対象の画素)として選択する場合について説明する。本実施形態においては、注目画素(ここでは、画素Q5)の画素値が、注目画素の周囲に隣接する8画素(ここでは、画素Q1〜画素Q4、及び、画素Q6〜画素Q9)の画素値(ここでは、階調A,B,C,D)の中から最も小さい(輝度が低い)画素値(ここでは、階調D)に置換される。すなわち、図5(a)の階調Aの画素Q5に対して膨張処理を施すと、画素Q5の画素値は、図5(a)の下側の図に示すように、階調Dに変更されることになる。
【0076】
また、図5(b)に示すように、収縮処理を施す前は、画素Q7、Q8、Q9の画素値が、階調A(ここでは、白色)であって、画素Q4、Q5の画素値が、階調B(薄いグレー)であって、画素Q1、Q2、Q6の画素値が、階調C(ここでは、少し濃いグレー)であって、画素Q3が、階調D(ここでは、濃いグレー)である。
【0077】
そして、ここでは、画素Q5を注目画素(膨張・収縮処理が施される対象の画素)として選択する場合について説明する。本実施形態においては、注目画素(ここでは、画素Q5)の画素値が、注目画素の周囲に隣接する8画素(ここでは、画素Q1〜画素Q4、及び、画素Q6〜画素Q9)の画素値(ここでは、階調A,B,C,D)の中から最も大きい(輝度が高い)画素値(ここでは、階調A)に置換される。すなわち、図5(a)の階調Bの画素Q5に対して収縮処理を施すと、画素Q5の画素値は、図5(b)の下側の図に示すように、階調Aに変更されることになる。
【0078】
−画像処理の内容−
次に、図6を参照して、画像処理部111によって実行される画像処理の具体的な処理の内容について説明する。図6は、図3に示す画像処理部111によって実行される画像処理の一例を説明する説明図である。図6(a)は、図4に示すフローチャートのステップS101において画像メモリ14から取得された濃淡画像700の一例を示す図である。図6(b)は、図4に示すフローチャートのステップS103及びステップS105において、図6(a)に対して、コントラスト調整処理等の前処理と、2値化処理とが施された後の、二値画像710の一例を示す図である。
【0079】
図6(a)に示す濃淡画像700には、文字701、702、703からなる文字列「ABC」が含まれており、背景704が薄いグレーであることを斜線を施して示している。このような濃淡画像700に対して、前処理でのコントラスト調整処理と、2値化処理とが施されることによって、図6(b)で示すように、背景714が白色となっている。なお、濃淡画像700に含まれる文字701、702、703が濃いグレーである場合にも、前処理でのコントラスト調整処理と、2値化処理とが施されることによって、二値画像710に含まれる文字711、712、713は、黒色の文字に変換される。
【0080】
次に、図6(c)を参照して、投影処理及び文字切出処理について説明する。まず、投影処理について説明する。投影処理は、垂直投影処理と水平投影処理とから構成されている。まず、垂直投影処理は、二値画像720(二値画像710と同一の画像である)において、水平方向(図の左右方向)の位置が同じ黒画素の個数を垂直方向(図の上下方向)に積算して、積算値の水平方向(図の左右方向)の変化を示すグラフ(以下、「垂直投影グラフ」ともいう)Gxを生成する処理である。また、水平投影処理は、垂直方向(図の上下方向)の位置が同じ黒画素の個数を水平方向(図の左右方向)に積算して、積算値の垂直方向(図の上下方向)の変化を示すグラフ(以下、「水平投影グラフ」ともいう)Gyを生成する処理である。ここで、投影処理において、積算される「黒画素」とは、2値化処理によって黒色であるとされた画素を意味しており、ここでは、文字721、722、723を構成する画素である。
【0081】
次いで、文字切出処理について説明する。文字切出処理は、まず、投影処理(水平投影処理)によって生成された水平投影グラフGyに対して、パラメータ記憶部121に予め記憶されている水平投影閾値Tyに基づいて閾値処理を施し、文字列の垂直方向(y軸方向)の下限座標YL及び上限座標YHを求め、下限座標YLから上限座標YHまでの領域として文字領域の高さ範囲hを求める。すなわち、水平投影グラフGyにおいて、積算値が水平投影閾値Ty以上である領域を文字領域の高さ範囲hとして求める。
【0082】
また、投影処理(垂直投影処理)によって生成された垂直投影グラフGxに対して、パラメータ記憶部121に予め記憶されている垂直投影閾値Txに基づいて閾値処理を施し、文字列を構成する文字ごとに、水平方向(x軸方向)の下限座標XL1、XL2、XL3及び上限座標XH1、XH2、XH3を求め、下限座標XL1から上限座標XH1までの領域として幅範囲b1を求め、下限座標XL2から上限座標XH2までの領域として幅範囲b2を求め、下限座標XL3から上限座標XH3までの領域として幅範囲b3を求める。すなわち、垂直投影グラフGxにおいて、積算値が垂直投影閾値Tx以上である領域を文字領域の幅範囲b1、b2、b3として求める。
【0083】
そして、幅範囲b1と高さ範囲hで規定される領域を文字領域721aとして切り出し、幅範囲b2と高さ範囲hで規定される領域を文字領域722aとして切り出し、幅範囲b3と高さ範囲hで規定される領域を文字領域723aとして切り出す。このようにして、文字領域721a、文字領域722a、及び、文字領域723aを切り出すことができる。
【0084】
再び図3に戻って、CPU11等の機能構成について説明する。パラメータ記憶部121は、画像処理部111によって実行される画像処理を規定する複数のパラメータの設定値を予め記憶している機能部である。また、パラメータ記憶部121に記憶されている複数のパラメータのうち、原因推定部116によって推定された文字認識の失敗原因に対応するパラメータの設定値が、処理修正部117によって修正される(書き換えられる)。
【0085】
また、パラメータ記憶部121に設定値が記憶されているパラメータとしては、例えば、回転処理における回転方向及び回転角を規定するパラメータ、2値化処理における基準
値(閾値)を示すパラメータ、膨張・収縮処理における処理の回数(膨張処理回数又は、収縮処理回数)を規定するパラメータ、及び、文字切出処理における水平投影閾値Ty及び垂直投影閾値Txをそれぞれ規定するパラメータが含まれる。
【0086】
成否受付部112(成否受付手段)は、画像処理部111によって実行された画像処理の結果として、画像メモリ14から取得された濃淡画像700に含まれる文字列を構成する少なくとも1つの文字の認識が失敗したとのオペレータの判定結果を示す操作入力を、入力装置4を介して受け付ける機能部である。
【0087】
具体的には、例えば、入力装置4のキーボードに含まれる特定のキー(例えば、「N」キー)が押下された場合に、成否受付部112は、少なくとも1つの文字の認識が失敗したとのオペレータの判定結果を示す操作入力を受け付ける形態でもよい。また、例えば、モニタ3に「OKボタン」と「NGボタン」とを表示し、「NGボタン」上にカーソルが位置する状態で入力装置4のマウスがクリックされた場合に、成否受付部112は、少なくとも1つの文字の認識が失敗したとのオペレータの判定結果を示す操作入力を受け付ける形態でもよい。
【0088】
成否判定部113(成否判定手段)は、濃淡画像700に含まれる文字列を構成する少なくとも1つの文字の認識が失敗したか否かを判定する機能部である。具体的には、成否判定部113は、成否受付部112によって受け付けられた操作入力に基づいて、文字列を構成する少なくとも1つの文字の認識が失敗したか否かを判定するものである。
【0089】
このようにして、成否受付部112によって、外部から(ここでは、オペレータによって)文字列を構成する文字の認識が成功したか否かの判定結果を示す操作入力が受け付けられ、受け付けられた操作入力に基づいて、成否判定部113によって、文字列を構成する少なくとも1つの文字の認識が失敗したか否かが判定されるため、文字列を構成する少なくとも1つの文字の認識が失敗したか否かの判定を簡素な構成で正確に行うことができる。
【0090】
本実施形態では、成否受付部112が、オペレータの判定結果を示す操作入力を受け付ける場合について説明するが、成否受付部112が、オペレータの判定結果を示す操作入力に換えて、文字認識が失敗したか否かを判定する装置(この装置を、便宜上、「認識判定装置」という)から文字認識が失敗したことを示す情報を受け付ける形態でもよい。なお、認識判定装置は、例えば、図4に示すフローチャートのステップS111において、ステップS109で切り出された文字画像に対する文字認識処理が失敗した(例えば、対応する文字が見つからない)場合に、文字認識が失敗したと判定する形態でもよい。この場合には、認識判定装置を、機能部としてCPU11内に構成することが可能となる。
【0091】
原因評価部114は、成否判定部113によって濃淡画像700に含まれる文字列を構成する少なくとも1つの文字の認識が失敗したと判定された場合に、予め設定された複数の原因(例えば、10個の原因)ごとに、文字の認識が失敗する可能性の高さを定量的に示す失敗確率Pi(i=1〜N:Nは失敗原因の個数であって、ここでは10個である)として評価する機能部である。なお、原因評価部114による失敗確率Piの算出方法の具体例については、図9〜図20を参照して後述する。
【0092】
本実施形態では、原因評価部114が失敗確率Piを求める場合について説明するが、原因評価部114は、文字の認識が失敗する可能性の高さを定量的に示すものであればよい。例えば、原因評価部114が、文字の認識が失敗する可能性の高さを示す複数の段階(例えば、8段階)のうち、どの段階に相当するかを示す形態でもよい。
【0093】
結果表示部115(結果表示手段)は、複数の原因(ここでは、10個の原因)のうち、原因評価部114によって失敗確率Pi(i=1〜N:ここでは、N=10)が高いと評価された順に、予め設定された2以上の所定個数(ここでは、3個)の原因を示す文字又は画像を、モニタ3に表示させる機能部である。具体的には、結果表示部115は、モニタ3に結果表示画面800(図8(a)参照)を表示する。結果表示画面800については、図8を参照して後述する。
【0094】
原因推定部116(原因推定手段)は、成否判定部113によって文字列を構成する少なくとも1つの文字の認識が失敗したと判定された場合に、文字の認識が失敗した原因を推定する機能部である。具体的には、原因推定部116は、原因評価部114によって評価された失敗確率Pi(i=1〜N:ここでは、N=10)に基づいて、文字の認識が失敗した原因を推定する。
【0095】
更に具体的には、原因推定部116は、結果表示部115によってモニタ3の結果表示画面800(図8(a)参照)に表示された2以上の所定個数(ここでは、3個)の原因の中から、文字の認識が失敗した原因を1つだけ選択するオペレータによる選択入力を、入力装置4を介して受け付けて、選択された原因を文字の認識が失敗した原因であると推定する。選択入力の具体的な入力方法については、図8を参照して後述する。
【0096】
このようにして、原因評価部114によって失敗確率Pi(i=1〜N:ここでは、N=10)が高いと評価されて、結果表示部115によってモニタ3に表示された2以上の所定個数(ここでは、3個)の原因の中から、原因推定部116によって、文字の認識が失敗した原因を1つだけ選択する選択入力が受け付けられ、選択された原因が、文字の認識が失敗した原因であると推定されるため、文字の認識が失敗した原因を容易に推定することができる。
【0097】
本実施形態では、原因推定部116が、オペレータによる選択入力に基づいて文字の認識が失敗した原因を推定する場合について説明するが、原因推定部116が、原因評価部114によって評価された失敗確率Pi(i=1〜N:N=10)に基づいて、文字の認識が失敗した原因を推定する形態であればよい。例えば、原因推定部116が、失敗確率Piの最も高い原因を、文字の認識が失敗した原因であると推定する形態でもよい。この場合には、オペレータによる選択入力が不要となるため、利便性を向上することができる。
【0098】
また、例えば、原因推定部116が、最も高い失敗確率Piが予め設定された閾値(例えば、60%)以上である場合に限って、失敗確率Piの最も高い原因を、文字の認識が失敗した原因であると推定し、最も高い失敗確率Piが予め設定された閾値(例えば60%)未満である場合には、オペレータによる選択入力に基づいて文字の認識が失敗した原因を推定する形態でもよい。
【0099】
このようにして、文字列を構成する少なくとも1つの文字の認識が失敗したと判定された場合に、原因評価部114によって、予め設定された複数の原因(ここでは、10個の原因)ごとに、文字の認識が失敗する可能性の高さを定量的に示す失敗確率Pi(i=1〜N:N=10)が評価され、原因推定部116によって、評価された失敗確率Piに基づいて、文字の認識が失敗した原因が推定されるため、失敗確率Piを正確に評価することによって、文字の認識が失敗した原因を正確に推定することができる。
【0100】
すなわち、例えば、文字の認識が失敗した原因が文字の線幅である(文字が太すぎる、又は、文字が細すぎる)と推定された場合には、予め設定された推奨線幅B0(例えば、実験的に文字の認識率が最も高くなる線幅)と、実際の文字の線幅の平均値(平均線幅)
Bavと、の差である差分線幅ΔBの絶対値に重みW1を乗じて、失敗確率P1(図10参照)を評価することができる。このようにして、文字の認識が失敗する可能性の高さを定量的に示す失敗確率P1が評価されるため、文字の認識が失敗した原因を正確に推定することができるのである。
【0101】
また、例えば、文字の認識が失敗した原因が、文字列の回転であると推定された場合、文字の滲み(にじみ)又は擦れ(かすれ)であると推定された場合、文字のコントラストが低いことであると推定された場合にも、同様にして、失敗確率P2、P3、P4(図14、図17、図20参照)を評価することができるため、文字の認識が失敗した原因を正確に推定することができるのである。
【0102】
つまり、予め文字の認識が失敗する可能性のある原因ごとに、各原因に起因する失敗確率Piの値を求めるためのロジック(手順、方法等)を構築しておくことによって、各原因に対応する失敗確率Piを求めて比較することができる(図7のステップS205、S207等、図10、図14、図17、図20参照)ため、文字の認識が失敗した原因を正確に推定することができるのである。
【0103】
処理修正部117(処理修正手段)は、原因推定部116によって推定された原因に基づいて、画像処理部111によって実行される画像処理を規定する複数のパラメータ(すなわち、パラメータ記憶部121に格納された複数のパラメータ)のうち、前記推定された原因に対応する少なくとも1つのパラメータの値を修正する機能部である。なお、本実施形態では、画像処理部111によって実行される画像処理を規定する複数のパラメータの値は、パラメータ記憶部121に格納されているため、処理修正部117は、原因推定部116によって推定された原因に基づいて、前記推定された原因に対応する少なくとも1つのパラメータの値を修正して修正後の値に書き換えるものである。
【0104】
具体的には、処理修正部117は、原因推定部116によって前記文字の認識が失敗した原因であると推定された原因について、原因評価部114によって評価された失敗確率Piが大きい程、前記推定された原因に対応する少なくとも1つのパラメータの値を大幅に修正する。なお、処理修正部117によるパラメータの修正方法の具体例については、図9〜図20を参照して後述する。
【0105】
このようにして、文字の認識が失敗した原因であると推定された原因について、評価された失敗確率Piが大きい程、推定された原因に対応する少なくとも1つのパラメータの値が大幅に修正されるため、画像処理を規定するパラメータを適正に調整することができる。
【0106】
−CPU11の動作−
ここで、図7を参照して、CPU11の動作の一例について説明する。図7は、図3に示すCPU11の動作の一例を示すフローチャートである。まず、ステップS201において、画像処理部111によって、画像メモリ14に格納された濃淡画像情報から文字列を構成する各文字を認識する画像処理が実行される。なお、ステップS201において実行される画像処理については、図4に示す詳細フローチャートを参照して上述している。
【0107】
次に、ステップS203(成否判定ステップ)において、成否判定部113によって、成否受付部112により受け付けられた操作入力に基づいて、文字列を構成する少なくとも1つの文字の認識が失敗したか否かが判定される。ステップS203でYESの場合には、処理がステップS205に進められる。ステップS203でNOの場合には、処理がステップS221に進められる。ステップS221において、結果表示部115によって、モニタ3に文字認識が成功したことを示す画面(図8(b)に示す結果表示画面810
)が表示される。そして、処理が終了される。
【0108】
ステップS205において、原因評価部114によって、複数の原因(ここでは、10個の原因)ごとに、文字の認識が失敗する可能性の高さを定量的に示す失敗確率Pi(i=1〜N:N=10)が求められる。なお、ステップS205において行われる失敗確率Piを求める処理を、以下の説明においては「失敗確率算出処理」という。
【0109】
なお、失敗原因が文字の線幅である場合の失敗確率算出処理(この処理を、便宜上、「失敗確率算出処理1」という)については、図10を参照して後述する。また、失敗原因が文字列の回転である場合の失敗確率算出処理(この処理を、便宜上、「失敗確率算出処理2」という)については、図14を参照して後述する。更に、失敗原因が文字の滲み・擦れである場合の失敗確率算出処理(この処理を、便宜上、「失敗確率算出処理3」という)については、図17を参照して後述する。加えて、失敗原因が低コントラストである場合の失敗確率算出処理(この処理を、便宜上、「失敗確率算出処理4」という)については、図20を参照して後述する。
【0110】
次に、ステップS207において、結果表示部115によって、ステップS205で求められた失敗確率Pi(i=1〜N)が高い順にソートされる。そして、ステップS209において、結果表示部115によって、失敗確率Piが高い順に3個の原因を示す文字がモニタ3に表示される(図8参照)。次いで、ステップS211(原因推定ステップ)において、原因推定部116によって、ステップS209で表示された3個の原因の中から1つの原因を選択する選択入力が受け付けられたか否かの判定が行われる。ステップS211でYESの場合には、処理がステップS213に進められる。ステップS211でNOの場合には、処理が待機状態とされる。
【0111】
ステップS213において、処理修正部117によって、ステップS211で選択された原因に対応するパラメータ値の修正を実行するか否かの操作入力が、入力装置4を介して受け付けられたか否かの判定が行われる。ステップS213でYESの場合には、処理がステップS217に進められる。ステップS213でNOの場合には、処理がステップS215に進められる。ステップS215において、処理修正部117によって、ステップS211での選択入力をキャンセルする操作入力が入力装置4を介して受け付けられたか否かの判定が行われる。ステップS215でYESの場合には、処理がステップS211に戻され、ステップS211以降の処理が繰り返し実行される。ステップS215でNOの場合には、処理がステップS213に戻され、ステップS213以降の処理が繰り返し実行される。
【0112】
ステップS217において、処理修正部117によって、ステップS211で選択された原因に対応するパラメータ値の修正が実行される。そして、ステップS219(処理修正ステップ)において、処理修正部117によって、パラメータ記憶部121に格納されたパラメータ値が、ステップS217で修正された値に書き換えられる。そして、処理がステップS201へリターンされ、ステップS201以降の処理が繰り返し実行される。
【0113】
このようにして、製品5の表面に形成された文字列を構成する少なくとも1つの文字の認識が失敗したか否かが判定され、少なくとも1つの文字の認識が失敗したと判定された場合に、予め設定された複数の(ここでは、10個の)原因の中から、文字の認識が失敗した原因が推定され、推定された原因に基づいて、文字列を含む濃淡画像に対して施される画像処理を規定する、パラメータ記憶部121に記憶された複数のパラメータのうち、推定された原因に対応する少なくとも1つのパラメータの値が修正される(書き換えられる)ため、画像処理を規定するパラメータを適正に調整することができる。
【0114】
すなわち、文字の認識が失敗する可能性のある原因ごとに、各原因に対応する少なくとも1つのパラメータの値を修正するためのロジックを予め構築しておくことによって、推定された原因に対応する少なくとも1つのパラメータの値を適正に修正する(図12、図18参照)ことができるため、画像処理を規定するパラメータを適正に調整することができるのである。
【0115】
ここで、図8を参照して、モニタ3に表示される画面の一例について説明する。図8は、図7に示すフローチャートのステップS209及びステップS221でそれぞれモニタ3に表示される結果表示画面800及び結果表示画面810の一例を示す画面図である。図8(a)は、パラメータの調整前にステップS209でモニタ3に表示される結果表示画面800の一例を示す画面図であって、図8(b)は、パラメータの調整後にステップS221でモニタ3に表示される結果表示画面810の一例を示す画面図である。
【0116】
結果表示画面800には、画面左上側に、画像表示部801が表示され、画像表示部801の下側に成否表示部802が表示され、画面右上側に、理由表示部803が表示され、理由表示部803の右側にスクロールバー804が表示され、理由表示部803内の左側にはポインタ807が表示されている。また、成否表示部802の下側には、実行ボタン805及びキャンセルボタン806が表示される。
【0117】
画像表示部801は、図4に示すフローチャートのステップS109において、二値画像から切り出される各文字画像(以下、「切り出し画像」ともいう)を表示するものである。ここでは、図9(a)に示す文字列「ABC」のうち、文字「A」に擦れがあることに起因して、文字の認識が失敗する場合の切り出し画像が表示されている。
【0118】
成否表示部802は、図7に示すフローチャートのステップS203における文字認識の成否を表示するものであって、文字認識が失敗した場合には、図8(a)に示すように「NG」と表示され、成功した場合には図8(b)に示すように「OK」と表示される。
【0119】
理由表示部803は、失敗確率Piが高い順にソートされた失敗原因を文字情報として表示するものであって、ここでは、失敗確率Piが高い3つの失敗原因に対応する失敗原因ボタン803a、803b、803cを表示するものである。ここでは、失敗原因ボタン803aには、「1.かすれ・にじみ」と表示され、最も失敗確率Piが高い失敗原因が「かすれ・にじみ」であることが判る。また、失敗原因ボタン803bには、「2.文字の線幅」と表示され、2番目に失敗確率Piが高い失敗原因が「文字の線幅」であることが判る。更に、失敗原因ボタン803cには、「3.低コントラスト」と表示され、3番目に失敗確率Piが高い失敗原因が「低コントラスト」であることが判る。
【0120】
また、理由表示部803に表示された失敗原因ボタン803a、803b、803cは、選択ボタンとしても機能するものである。すなわち、例えば、図8(a)に示すように、失敗原因ボタン803aを押下することによって、失敗原因ボタン803aに表示されている失敗原因である「かすれ・にじみ」が、原因推定部116によって選択される。ここで、「押下する」とは、ポインタ807の先端をボタン(例えば、失敗原因ボタン803a)に位置させて、マウスをクリックすることを意味している。
【0121】
なお、この選択処理は、図7に示すフローチャートのステップS211において、原因推定部116によって実行される処理である。同様にして、ポインタ807とマウスクリックによって、失敗原因ボタン803b、803cにそれぞれ表示されている失敗原因を選択することも可能である。また、失敗原因ボタン803a、803b、803cは、原因推定部116によって選択されると、結果表示部115によって、その表示態様が変更される(例えば、点滅状態とされたり、表示色が変更されたりする)。
【0122】
スクロールバー804は、失敗確率Piが高い順にソートされ、理由表示部803に表示された失敗原因を上下方向にスクロールする操作を受け付けるものである。すなわち、スクロールバー804は、選択を所望する失敗原因が理由表示部803に表示されていない場合に、オペレータがスクロールバー804を用いて、失敗原因ボタンを上側にスクロールして、失敗確率Piが4番目以降の失敗原因に対応する失敗原因ボタンを表示させ、選択可能とするものである。
【0123】
実行ボタン805は、選択された失敗原因に対応するパラメータ値を修正する場合に押下されるボタンである。すなわち、理由表示部803に表示された失敗原因ボタン803a、803b、803cのいずれかが選択された後に、実行ボタン805がオペレータによって押下されると、選択された失敗原因に対応するパラメータ値を修正する(書き換える)処理が実行される。なお、この処理は、図7に示すフローチャートのステップS219において、処理修正部117によって実行される処理である。
【0124】
キャンセルボタン806は、選択状態をキャンセルし、選択前の状態とする場合に押下されるボタンである。すなわち、理由表示部803に表示された失敗原因ボタン803a、803b、803cのいずれかが選択された後に、オペレータによってキャンセルボタン806が押下されると、選択状態がキャンセルされ、選択前の状態とされる。
【0125】
結果表示画面810にも、結果表示画面800と同様に、画面左上側に、画像表示部811が表示され、画像表示部811の下側に成否表示部812が表示され、画面右上側に、理由表示部813が表示され、理由表示部813の右側にスクロールバー814が表示され、理由表示部813内の左側にはポインタ817が表示されている。また、成否表示部812の下側には、実行ボタン815及びキャンセルボタン816が表示される。
【0126】
ここでは、結果表示画面800と相違する点についてのみ説明する。画像表示部811には、文字の認識が成功する場合の切り出し画像が表示されている。また、成否表示部812には、文字の認識が成功したことを示す「OK」と表示される。なお、理由表示部813には、失敗原因ボタン803a、803b、803cが表示されているが押下することはできない。また、実行ボタン815及びキャンセルボタン816も表示されているが押下することはできない。
【0127】
このようにして、複数の原因のうち、失敗確率Piが高いと評価された順に、予め設定された2以上の所定個数(ここでは、3個)の原因を示す文字(ここでは、失敗原因ボタン803a、803b、803c)が、モニタ3に表示されるため、利便性を向上することができる。
【0128】
すなわち、例えば、オペレータが、モニタ3に表示された原因を示す文字(ここでは、失敗原因ボタン803a、803b、803c)を参照して、文字の認識が失敗した原因を推定することができるため、文字の認識が失敗した原因を容易に推定することができるので、利便性を向上することができるのである。
【0129】
本実施形態においては、失敗原因を示す文字(ここでは、失敗原因ボタン803a、803b、803c)を表示する場合について説明したが、失敗原因を示す文字に換えて(又は、加えて)失敗原因を示すアイコン等の画像を表示する形態でもよい。
【0130】
また、本実施形態においては、失敗確率Piが高いと評価された順に、失敗原因を示す文字(ここでは、失敗原因ボタン803a、803b、803c)を表示する場合について説明するが、失敗原因を示す文字に対応付けて失敗確率Piの値を示す文字又は画像を
表示する形態でもよい。
【0131】
この場合には、例えば、オペレータが、モニタ3に表示された原因を示す文字(又は画像)と、失敗確率Piの値を示す文字(又は画像)とを参照して、文字の認識が失敗した原因を推定することができるため、文字の認識が失敗した原因を更に容易に推定することができるので、利便性を更に向上することができるのである。すなわち、失敗確率Piが高い程、対応する失敗原因が、文字の認識が失敗した原因であると推定してよいとの安心感が高まる。
【0132】
本実施形態では、理由表示部803に3つの失敗原因ボタン803a、803b、803cを選択可能に表示する場合について説明するが、理由表示部803に選択可能に表示する失敗原因ボタンの個数は、「3つ」以外の個数である形態でもよい。例えば、理由表示部803に2つの失敗原因ボタンを選択可能に表示する形態でも良いし、理由表示部803に4つ以上の個数の失敗原因ボタンを選択可能に表示する形態でも良い。理由表示部803に表示する失敗原因ボタンの個数が多い程、オペレータの選択範囲が広がるため、利便性を向上することができる。
【0133】
また、本実施形態では、理由表示部803に表示する失敗原因ボタンの個数が予め設定されている場合について説明するが、理由表示部803に表示する失敗原因ボタンの個数を失敗確率Piの値に基づいて決定する形態でもよい。例えば、失敗確率Piの値が予め設定された確率閾値(例えば、30%)以上の失敗原因に対応する失敗原因ボタンを理由表示部803に表示する形態でもよい。この場合には、選択される可能性の高い失敗原因ボタンが理由表示部803に表示されるため、利便性を向上することができる。
【0134】
−失敗確率算出処理及びパラメータ値修正処理−
−失敗原因が文字の線幅である場合−
以下に、原因評価部114によって実行される失敗確率算出処理、及び、処理修正部117によって実行されるパラメータ値修正処理の具体例について、図9〜図20を参照して説明する。まず、図9〜図12を参照して、失敗原因が「文字の線幅」である場合の失敗確率算出処理及びパラメータ値修正処理について説明する。図9は、文字の線幅が太すぎることに起因して文字認識が失敗するケースの一例を示す説明図である。
【0135】
図9(a)は、「ABC」との文字列を構成するそれぞれの文字の線幅が太い場合の文字切出処理が失敗する状態を示す図である。図9(b)は、図9(a)に示す二値画像910(又は、二値画像910に対応する濃淡画像)に対して文字の線幅を細くする白膨張処理を施すことによって、文字列を適性な線幅とした二値画像900では適正に文字切出処理が行われる状態を示す図である。
【0136】
図9(a)には、線幅が太い「ABC」との文字列911、912、913を含む二値画像910と、それに対応する水平投影グラフGy1、垂直投影グラフGx1が記載されている。水平投影グラフGy1において、積算値が水平投影閾値Ty1以上である領域が文字領域の高さ範囲h1として求められる。また、垂直投影グラフGx1において、積算値が垂直投影閾値Tx1以上である領域が文字領域の幅範囲b11、b12として求められる。
【0137】
すなわち、図9(a)の二値画像910に示すように、線幅が太いために、「A」の文字と「B」の文字とが重なってしまい、「A」の文字と「B」の文字との境界において、垂直投影グラフGx1が垂直投影閾値Tx1以上となってしまうため、幅範囲b11に「A」の文字と「B」の文字とが含まれてしまう結果となっている。このため、文字領域911aとして、「A」の文字と「B」の文字とを含む領域が設定され、これが切り出され
るため、文字認識処理が失敗することになる。
【0138】
これに対して、図9(b)に示すよう文字の線幅を適性な線幅とすれば、「A」の文字と、「B」の文字との重なりが解消されるため、「A」の文字に対応する文字領域901a、「B」の文字に対応する文字領域902a、及び、「C」の文字に対応する文字領域903aが適正に設定されて、文字認識処理が成功することになる。
【0139】
次に、図10、図11を参照して、失敗原因が文字の線幅の場合の失敗確率算出処理について説明する。図10は、図7に示すフローチャートのステップS205において、文字の線幅に起因した失敗確率P1を求める処理(以下、「失敗確率算出処理1」ともいう)の一例を示す詳細フローチャートである。図11は、図10のステップS301からステップS307において文字の線幅Bを求める方法の一例を示す説明図である。
【0140】
まず、図11を参照して、文字の線幅Bを求める方法について説明する。図11(a)は、ここでは、図9(a)に示す二値画像910から切り出された「C」の文字に対応する文字領域912aの画像(以下、「文字画像」ともいう)である。まず、図11(a)に示す文字画像に対して、例えば、Sobelフィルタ(空間1次微分を計算して、輪郭を抽出するフィルタ)をかけることによって、図11(b)に示す、輪郭線画像(以下、「エッジ画像」ともいう)を生成する。
【0141】
次に、輪郭線画像の輪郭線上の各画素に対する法線ベクトルVnを求める。図11(b)には、法線ベクトルVnを矢印で示している。そして、求められた法線ベクトルVnの中から、向きが180度異なる(互いに対向する向きの)法線ベクトルVnのペア(対)を求める。例えば、図11(b)では、法線ベクトルVn1と法線ベクトルVn2とがペアとなり、法線ベクトルVn3と法線ベクトルVn4とがペアとして選定される。次いで、ペアに選定された2つの法線ベクトルの始点である画素間の距離を線幅B(例えば、線幅B1、B2)として求める。
【0142】
ここで、図10を参照して、文字の線幅Bに起因した失敗確率P1を求める手順を説明する。なお、以下の処理は、すべて原因評価部114によって実行される。また、以下の処理は図7に示すフローチャートのステップS205において実行される処理の一部である。まず、ステップS301において、文字画像(図11(a)参照)がエッジ画像(図11(b)参照)に変換される。そして、ステップS303において、文字の輪郭線に対する法線ベクトルVn(図11(b)参照)が求められる。
【0143】
次いで、ステップS305において、法線方向が180度異なる2つの法線ベクトルVnのペアが求められる。そして、ステップS307において、ステップS305でペアとして選定された2つの法線ベクトルの始点間距離が線幅Bとして求められる。次に、ステップS309において、ステップS307で求められた線幅Bの平均値である平均線幅Bavが求められる。そして、ステップS311において、ステップS309で求められた平均線幅Bavと、推奨線幅B0(例えば、実験的に文字の認識率が最も高くなる線幅)との差が、差分線幅ΔBとして次の(2)式により求められる。
【0144】
ΔB=(Bav−B0) (2)
次に、ステップS313において、差分線幅ΔBの絶対値に重みW1を乗じることによって、失敗確率P1が次の(3)式により求められ、処理がリターンされる。
【0145】
P1=W1×|ΔB| (3)
ここで、重みW1は、実験等によって求められるものである。このようにして、文字の認識が失敗した原因が文字の線幅である(文字が太すぎる、又は、文字が細すぎる)場合
に、予め設定された推奨線幅B0(例えば、実験的に文字の認識率が最も高くなる線幅)と、実際の文字の線幅の平均値(平均線幅)Bavと、の差である差分線幅ΔBの絶対値に重みW1を乗じて、失敗確率P1を評価することができる。このようにして、文字の認識が失敗する可能性の高さを定量的に示す失敗確率P1が評価されるため、文字の認識が失敗した原因を正確に推定することができるのである。
【0146】
本実施形態では、平均線幅Bavを求める対象の文字を規定していない(すなわち、文字列に含まれる全ての文字の平均線幅Bavを求める形態でもよい)が、平均線幅Bavを求める対象の文字を認識成功文字とする形態でもよい。この場合には、文字認識が成功した文字に対して平均線幅Bavが求められるため、適正な平均線幅Bavを求めることができる。
【0147】
次に、図12を参照して、失敗原因が文字の線幅の場合のパラメータ値修正処理について説明する。図12は、図7に示すフローチャートのステップS217において、選択された失敗原因が文字の線幅である場合にパラメータ値を修正する処理の一例を示す詳細フローチャートである。なお、以下の処理は、すべて処理修正部117によって実行される。また、以下の処理は、図7に示すフローチャートのステップS217において実行される処理の一部である。
【0148】
まず、ステップS351において、図10に示すフローチャートのステップS311で求められた差分線幅ΔBが正であるか否かの判定が行われる。ステップS351でYESの場合には、処理がステップS353に進められる。ステップS351でNOの場合には、処理がステップS357に進められる。
【0149】
ステップS353において、失敗原因が文字の線幅Bが太すぎることであると判定される。そして、ステップS355において、差分線幅ΔBの絶対値分だけ、白膨張処理する回数を増加する(又は、黒膨張する回数を減少する)設定に修正され(パラメータが書き換えられ)、処理がリターンされる。
【0150】
ステップS357において、失敗原因が文字の線幅Bが細すぎることであると判定される。そして、ステップS359において、差分線幅ΔBの絶対値分だけ、黒膨張処理する回数を増加する(又は、白膨張する回数を減少する)設定に修正され(パラメータが書き換えられ)、処理がリターンされる。
【0151】
このようにして、文字の認識が失敗した原因が文字の線幅Bである(文字が太すぎる、又は、文字が細すぎる)ことであると推定された場合には、予め設定された推奨線幅B0(例えば、実験的に文字の認識率が最も高くなる線幅)と、実際の文字の線幅の平均値(平均線幅)Bavと、の差である差分線幅ΔBの絶対値分だけ黒膨張処理又は白膨張処理を行う設定に修正すればよい。このようにして、推定された原因(ここでは、文字の線幅B)に対応する少なくとも1つのパラメータの値が修正されるため、画像処理を規定するパラメータを適正に調整することができる。
【0152】
−失敗原因が文字列の回転である場合−
次に、図13〜図15を参照して、失敗原因が「文字列の回転」である場合の失敗確率算出処理及びパラメータ値修正処理について説明する。図13は、文字列の回転に起因して文字認識が失敗するケースの一例を示す説明図である。
【0153】
図13(a)は、「ABC」との文字列が反時計回りに回転している場合の文字切出処理が失敗する状態を示す図である。図13(b)は、図13(a)に示す二値画像920(又は、二値画像920に対応する濃淡画像)に対して回転処理を施すことによって、文
字列を水平に並んだ状態とした二値画像900では適正に文字切出処理が行われる状態を示す図である。
【0154】
図13(a)には、反時計回りに回転している「ABC」との文字列921、922、923を含む二値画像920と、それに対応する水平投影グラフGy2、垂直投影グラフGx2が記載されている。水平投影グラフGy2において、積算値が水平投影閾値Ty2以上である領域が文字領域の高さ範囲h2として求められる。また、垂直投影グラフGx2において、積算値が垂直投影閾値Tx2以上である領域が文字領域の幅範囲b21、b22、b23として求められる。
【0155】
すなわち、図13(a)の二値画像920に示すように、文字列921、922、923が反時計回りに回転しているために、高さ範囲h2が文字の高さと比較して過大となってしまうと共に、「A」、「B」、「C」にそれぞれ対応する文字921、922、923が反時計回りに回転しているため、切り出された文字領域921a、922a、923aの文字認識処理が失敗することになる。
【0156】
これに対して、図13(b)に示すよう文字列が水平に並んだ状態とすれば、高さ範囲h0が文字の高さと概ね同じ値となり、且つ、「A」、「B」、「C」にそれぞれ対応する文字921、922、923の回転が修正されるため、「A」の文字に対応する文字領域901a、「B」の文字に対応する文字領域902a、及び、「C」の文字に対応する文字領域903aが適正に設定されて、文字認識処理が成功することになる。
【0157】
次に、図14、図15を参照して、失敗原因が文字列の回転である場合の失敗確率算出処理について説明する。図14は、図7に示すフローチャートのステップS205において、文字列の回転に起因した失敗確率を求める処理(以下、「失敗確率算出処理2」ともいう)の一例を示す詳細フローチャートである。図15は、画像回転処理における回転角の修正値を求める方法の一例を示す説明図である。
【0158】
まず、図15を参照して、画像回転処理における回転角の修正量Δθを求める方法の一例について説明する。まず、各文字領域921a、922a、923aに含まれる黒画素の平均座標が求められる。例えば、文字領域921aに含まれる黒画素の座標を(Xi、Yi)(ここで、i=1、2、・・・、M:Mは、文字領域921aに含まれる黒画素の総数)とおくと、黒画素の平均座標(Xav,Yav)は、次の(3)式、(4)式で求められる。
【0159】
Xav=(X1+X2+・・・+XM)/M (3)
Yav=(Y1+Y2+・・・+YM)/M (4)
そして、各文字領域921a、922a、923aに含まれる黒画素の平均座標に対応する点PO1、PO2、PO3を求め、点PO1、PO2、PO3の近似直線LGを最小二乗法等により求める。近似直線LGの水平方向に対してなす角Δθが画像回転処理における回転角の修正量Δθである。
【0160】
次に、図14を参照して、文字列の回転に起因した失敗確率P2を求める手順を説明する。なお、以下の処理は、すべて原因評価部114によって実行される。また、以下の処理は、図7に示すフローチャートのステップS205において実行される処理の一部である。
【0161】
まず、ステップS401において、各文字の切り出し領域(図15では、文字領域921a、922a、923a)に含まれる黒画素の平均座標が求められる。そして、ステップS403において、ステップS401で求められた黒画素の平均座標に対応する点(図
15では、点PO1、PO2、PO3)の近似直線(図15では、近似直線LG)が最小二乗法により求められる。次いで、ステップS405において、ステップS403で求められた近似直線の水平方向に対してなす角Δθが、画像回転処理における回転角の修正量Δθとして求められる。そして、ステップS407において、失敗確率P2が、次の(5)式により求められ、処理がリターンされる。
【0162】
P2=W2×|Δθ| (5)
ここで、重みW2は、実験等によって求められるものである。このようにして、文字の認識が失敗した原因が文字列の回転である場合に、各文字の切り出し領域921a、922a、923aに含まれる黒画素の平均座標に対応する点PO1、PO2、PO3の近似直線LGの水平方向に対してなす角Δθ(修正量Δθ)の絶対値に重みW2を乗じて、失敗確率P2を評価することができる。このようにして、文字の認識が失敗する可能性の高さを定量的に示す失敗確率P2が評価されるため、文字の認識が失敗した原因を正確に推定することができるのである。
【0163】
次に、失敗原因が「文字列の回転」である場合に、パラメータ値を修正する処理の一例について説明する。上述のようにして、画像回転処理における回転角の修正量Δθが求められるため、現在の画像回転処理において設定された回転角θ0を回転角(θ0+Δθ)とする設定に修正すればよい。
【0164】
このようにして、文字の認識が失敗した原因が「文字列の回転」であると推定された場合には、画像回転処理において設定された回転角θ0を回転角(θ0+Δθ)とする設定に修正すればよい。このようにして、推定された原因(ここでは、文字列の回転)に対応する少なくとも1つのパラメータの値が修正されるため、画像処理を規定するパラメータを適正に調整することができる。
【0165】
−失敗原因が文字の滲み・擦れである場合−
また、図16〜図18を参照して、失敗原因が「文字の滲み・擦れ」である場合の失敗確率算出処理及びパラメータ値修正処理について説明する。図16は、文字の擦れに起因して文字認識が失敗するケースの一例を示す説明図である。
【0166】
図16(a)は、「ABC」との文字列を構成する文字のうち、「A」の文字の一部(ここでは、左側)が擦れている場合の文字切出処理が失敗する状態を示す図である。図16(b)は、図16(a)に示す二値画像930に対応する濃淡画像に対して2値化閾値を修正する(ここでは、2値化閾値を下げる)処理を施すことによって擦れを除去した二値画像900では適正に文字切出処理が行われる状態を示す図である。
【0167】
図16(a)には、「ABC」との文字列931、932、933を含む二値画像930と、それに対応する水平投影グラフGy3、垂直投影グラフGx3が記載されている。ここで、「ABC」との文字列931、932、933に含まれる「A」の文字931は、その一部(ここでは、左側)が擦れている。図16(a)では、「A」の文字931の一部(ここでは、左側)が擦れていることを、「A」の文字内における縦線の太さが次第に細くなることで示している。水平投影グラフGy3において、積算値が水平投影閾値Ty3以上である領域が文字領域の高さ範囲h3として求められる。また、垂直投影グラフGx3において、積算値が垂直投影閾値Tx3以上である領域が文字領域の幅範囲b31、b32、b33として求められる。
【0168】
すなわち、図16(a)の二値画像930に示すように、「A」の文字931の一部が擦れているために、「A」の文字のうち、擦れが発生している左側の領域において、垂直投影グラフGx3が垂直投影閾値Tx3未満となってしまうため、切り出される文字領域
931aの幅範囲b31が「A」の文字の幅より狭くなってしまう結果となっている。すなわち、文字領域931aとして、擦れが発生していない右側の領域が設定され、これが切り出されるため、文字認識処理が失敗することになる。
【0169】
これに対して、図16(b)に示すよう2値化閾値を適性な値とすれば、「A」の文字の擦れが2値化処理において修正されるため、「A」の文字に対応する文字領域901a、「B」の文字に対応する文字領域902a、及び、「C」の文字に対応する文字領域903aが適正に設定されて、文字認識処理が成功することになる。
【0170】
次に、図17を参照して、失敗原因が文字の滲み・擦れであるの場合の失敗確率算出処理について説明する。図17は、図7に示すフローチャートのステップS205において、文字の滲み・擦れに起因した失敗確率P3を求める処理(以下、「失敗確率算出処理3」ともいう)の一例を示す詳細フローチャートである。
【0171】
ここで、図17を参照して、文字の文字の滲み・擦れに起因した失敗確率P3を求める手順を説明する。なお、以下の処理は、すべて原因評価部114によって実行される。また、以下の処理は、図7に示すフローチャートのステップS205において実行される処理の一部である。まず、ステップS501において、文字の認識が失敗した文字(ここでは、文字「A」)について、文字画像(図11(a)参照)がエッジ画像(図11(b)参照)に変換される。そして、ステップS503において、文字の輪郭線に対する法線ベクトルVn(図11(b)参照)が求められる。
【0172】
次いで、ステップS505において、法線方向が180度異なる2つの法線ベクトルVnのペア(対)が求められる。そして、ステップS507において、ステップS505でペアに選定された2つの法線ベクトルの始点間距離が線幅Bとして求められる。次に、ステップS509において、ステップS507で求められた線幅Bの標準偏差σが求められる。そして、ステップS511において、失敗確率P3が、次の(6)式により求められ、処理がリターンされる。
【0173】
P2=W3×σ (6)
ここで、重みW3は、実験等によって求められるものである。このようにして、文字の認識が失敗した原因が文字の滲み・擦れである場合に、文字の線幅Bの標準偏差σに重みW3を乗じて、失敗確率P3を評価することができる。このようにして、文字の認識が失敗する可能性の高さを定量的に示す失敗確率P3が評価されるため、文字の認識が失敗した原因を正確に推定することができるのである。
【0174】
次に、図18を参照して、失敗原因が文字の滲み・擦れである場合のパラメータ値修正処理について説明する。図18は、図7に示すフローチャートのステップS215において、選択された失敗原因が文字の擦れ(又は、滲み)である場合にパラメータ値を修正する処理内容の一例を示す説明図である。なお、以下の処理は、すべて処理修正部117によって実行される。また、以下の処理は、図7に示すフローチャートのステップS217において実行される処理の一部である。
【0175】
まず、ステップS551において、文字認識が成功した文字(ここでは、文字「B」と文字「C」)の線幅の平均値B0が求められる。次に、ステップS553において、文字認識が失敗した文字(ここでは、文字「A」)の線幅の平均値B1が求められる。そして、ステップS555において、平均値B0が平均値B1未満であるか否かの判定が行われる。ステップS555でYESの場合には、処理がステップS557へ進められる。ステップS555でNOの場合には、処理がステップS561へ進められる。
【0176】
ステップS557において、文字認識が失敗した原因は滲みであると判定される。そして、ステップS559において、2値化閾値の設定値TH0が次の(7)式によって求められる設定値TH1に修正され(パラメータが書き換えられ)、処理がリターンされる。
【0177】
TH1=TH0×(1+|B1−B0|/10) (7)
ステップS561において、文字認識が失敗した原因は擦れであると判定される。そして、ステップS563において、2値化閾値の設定値TH0が次の(8)式によって求められる設定値TH2に修正され(パラメータが書き換えられ)、処理がリターンされる。
【0178】
TH2=TH0×(1−|B1−B0|/10) (8)
このようにして、文字の認識が失敗した原因が文字の擦れ(又は滲み)であると推定された場合には、予め設定された2値化閾値の設定値TH0を、設定値TH1(又は、設定値TH2)に修正すればよい。このようにして、推定された原因(ここでは、文字の擦れ、又は、滲み)に対応する少なくとも1つのパラメータの値が修正されるため、画像処理を規定するパラメータを適正に調整することができる。
【0179】
−失敗原因が低コントラストである場合−
また、図19、図20を参照して、失敗原因が「低コントラスト」である場合の失敗確率算出処理及びパラメータ値修正処理について説明する。図19は、低コントラストに起因して文字認識が失敗するケースの一例を示す説明図である。
【0180】
図19(a)は、「ABC」との文字列を構成する文字のうち、「A」、「B」、「C」の各文字が低コントラストである場合に文字切出処理が失敗する状態を示す図である。図19(b)は、図19(a)に示す二値画像940に対応する濃淡画像に対して各画素のコントラストを調整する(ここでは、コントラストを上げる)処理を施した二値画像900では適正に文字切出処理が行われる状態を示す図である。
【0181】
図19(a)には、「ABC」との文字列941、942、943を含む二値画像940と、それに対応する水平投影グラフGy4、垂直投影グラフGx4が記載されている。ここで、「ABC」との文字列941、942、943に含まれる「A」、「B」、「C」の文字941、942、943は、その背景に対するコントラストが低い。図19(a)では、コントラストが低いことを、「A」、「B」、「C」の文字941、942、943に斜線を施すことで示している。水平投影グラフGy4において、積算値が水平投影閾値Ty4以上である領域が文字領域の高さ範囲h4として求められる。また、垂直投影グラフGx4において、積算値が垂直投影閾値Tx4以上である領域が文字領域の幅範囲b41、b42、b43として求められる。
【0182】
すなわち、図19(a)の二値画像940に示すように、「A」、「B」、「C」の文字941、942、943は、その背景に対するコントラストが低いために、「A」の文字のうち、両側の領域において、垂直投影グラフGx4が垂直投影閾値Tx4未満となってしまうため、切り出される文字領域941aの幅範囲b41が「A」の文字の幅より狭くなってしまう結果となっている。したがって、文字領域941aとして、中央部の領域が設定され、これが切り出されるため、文字認識処理が失敗することになる。
【0183】
これに対して、図19(b)に示すようコントラスト調整を適性に行うと、濃淡画像のコントラストが適正な値に調整されるため、「A」の文字に対応する文字領域901a、「B」の文字に対応する文字領域902a、及び、「C」の文字に対応する文字領域903aが適正に設定されて、文字認識処理が成功することになる。
【0184】
次に、図20を参照して、失敗原因が低コントラストであるの場合の失敗確率算出処理
について説明する。図20は、図7に示すフローチャートのステップS205において、コントラストが低いことに起因した失敗確率を求める処理(以下、「失敗確率算出処理4」ともいう)の一例を示す詳細フローチャートである。
【0185】
ここで、図20を参照して、コントラストが低いことに起因した失敗確率P4を求める手順を説明する。なお、以下の処理は、すべて原因評価部114によって実行される。また、以下の処理は、図7に示すフローチャートのステップS205において実行される処理の一部である。まず、ステップS601において、濃淡画像の画像領域内における画素値の最大値Imax及び最小値Iminが求められる。そして、ステップS603において、次の(9)式によって、コントラストCが求められる。
【0186】
C=(Imax−Imin)/(Imax+Imin) (9)
次いで、ステップS605において、次の(10)式によって、失敗確率P4が、求められ、処理がリターンされる。
【0187】
P4=W4×C (10)
ここで、重みW4は、実験等によって求められるものである。このようにして、文字の認識が失敗した原因が低コントラストである場合に、濃淡画像のコントラストCに重みW4を乗じて、失敗確率P4を評価することができる。このようにして、文字の認識が失敗する可能性の高さを定量的に示す失敗確率P4が評価されるため、文字の認識が失敗した原因を正確に推定することができるのである。
【0188】
次に、失敗原因が低コントラストである場合のパラメータ値修正処理について説明する。濃淡画像の各画素の画素値Iを次の(11)式によって求められる画素値I’にコントラスト調整するように、コントラスト調整を規定するパラメータの値を修正する。
【0189】
I’=(I−Imin)×(255/((Imax−Imin)) (11)
このようにして、文字の認識が失敗した原因が低コントラストであると推定された場合には、濃淡画像の各画素の画素値Iを、上記(11)式で規定する画素値I’に修正すればよい。このようにして、推定された原因(ここでは、低コントラスト)に対応する少なくとも1つのパラメータの値が修正されるため、画像処理を規定するパラメータを適正に調整することができる。
【0190】
−他の実施形態−
本実施形態では、画像処理装置100を構成する画像処理部111、成否受付部112、成否判定部113、原因評価部114、結果表示部115、原因推定部116、及び、処理修正部117がすべてCPU11において機能部として実現されている場合について説明したが、画像処理部111、成否受付部112、成否判定部113、原因評価部114、結果表示部115、原因推定部116、及び、処理修正部117の少なくとも1つが電子回路等のハードウェアで構成されている形態でもよい。
【0191】
本実施形態では、失敗確率算出処理及びパラメータ値修正処理については、便宜上、文字の認識が失敗した原因が、文字の線幅、文字列の回転、文字の擦れ・滲み、及び、低コントラストである場合について、具体的な説明を行っているが、文字の認識が失敗した原因が、その他の原因(例えば、文字のサイズ(小さすぎる、大きすぎる)等)であってもよい。
【産業上の利用可能性】
【0192】
本発明は、認識対象部位を含む物体を撮像して得られる画像に対して予め定められた画像処理を施して、前記認識対象部位を認識する画像処理装置、画像処理方法、及び、画像
処理プログラムに利用することができる。また、本発明は、認識対象部位を含む波形データに対して予め定められた認識処理を施して、前記認識対象部位を認識する波形データ処理装置に利用することができる。
【符号の説明】
【0193】
100 画像処理装置
1 画像処理装置本体
11 CPU
111 画像処理部
112 成否受付部(成否受付手段)
113 成否判定部(成否判定手段)
114 原因評価部(原因評価手段)
115 結果表示部(結果表示手段)
116 原因推定部(原因推定手段)
117 処理修正部(処理修正手段)
12 EEPROM
121 パラメータ記憶部
13 RAM
14 画像メモリ
15 変換器
16 変換器
17 入出力部
2 カメラ
3 モニタ(画像表示手段)
4 入力装置(操作受付手段)
5 製品
6 コンベア

【特許請求の範囲】
【請求項1】
認識対象部位を含む物体を撮像して得られる画像に対して予め定められた画像処理を施して、前記認識対象部位を認識する画像処理装置であって、
前記認識対象部位の認識が失敗したか否かを判定する成否判定手段と、
前記成否判定手段によって前記認識対象部位の認識が失敗したと判定された場合に、前記認識対象部位の認識が失敗した原因を推定する原因推定手段と、
前記原因推定手段によって推定された原因に基づいて、前記画像処理を規定する複数のパラメータのうち、前記推定された原因に対応する少なくとも1つのパラメータの値を修正する処理修正手段と、を備えることを特徴とする画像処理装置。
【請求項2】
請求項1に記載の画像処理装置において、
外部からの操作入力を受け付ける操作受付手段と、
前記認識対象部位の認識が成功したか否かの判定結果を示す操作入力を、前記操作受付手段を介して受け付ける成否受付手段と、を更に備え、
前記成否判定手段は、前記成否受付手段によって受け付けられた操作入力に基づいて、前記認識対象部位の認識が失敗したか否かを判定することを特徴とする画像処理装置。
【請求項3】
請求項1又は請求項2に記載の画像処理装置において、
前記成否判定手段によって前記認識対象部位の認識が失敗したと判定された場合に、予め設定された複数の原因ごとに、前記認識対象部位の認識が失敗する可能性の高さを定量的に示す失敗確率として評価する原因評価手段を更に備え、
前記原因推定手段は、前記原因評価手段によって評価された失敗確率に基づいて、前記認識対象部位の認識が失敗した原因を推定することを特徴とする画像処理装置。
【請求項4】
請求項3に記載の画像処理装置において、
外部から視認可能に画像を表示する画像表示手段と、
前記複数の原因のうち、前記原因評価手段によって失敗確率が高いと評価された順に、予め設定された2以上の所定個数の原因を示す文字又は画像を、前記画像表示手段に表示させる結果表示手段と、を更に備えることを特徴とする画像処理装置。
【請求項5】
請求項4に記載の画像処理装置において、
前記結果表示手段は、前記2以上の所定個数の原因に対応付けて、前記原因評価手段によって評価された失敗確率の値を示す文字又は画像を、前記画像表示手段に表示させることを特徴とする画像処理装置。
【請求項6】
請求項4又は請求項5に記載の画像処理装置において、
前記原因推定手段は、前記結果表示手段によって前記画像表示手段に表示された前記2以上の所定個数の原因の中から、1つの前記認識対象部位の認識が失敗した原因を選択する選択入力を、前記操作受付手段を介して受け付けて、選択された原因を前記認識対象部位の認識が失敗した原因であると推定することを特徴とする画像処理装置。
【請求項7】
請求項3から請求項6のいずれか1つに記載の画像処理装置において、
前記処理修正手段は、前記原因推定手段によって前記認識対象部位の認識が失敗した原因であると推定された原因について、前記原因評価手段によって評価された失敗確率が大きい程、前記推定された原因に対応する少なくとも1つのパラメータの値を大幅に修正することを特徴とする画像処理装置。
【請求項8】
請求項1から請求項7のいずれか1つに記載の画像処理装置において、
前記認識対象部位は、前記物体の表面に形成された文字であることを特徴とする画像処
理装置。
【請求項9】
認識対象部位を含む波形データに対して予め定められた認識処理を施して、前記認識対象部位を認識する波形データ処理装置であって、
前記認識対象部位の認識が失敗したか否かを判定する成否判定手段と、
前記成否判定手段によって前記認識対象部位の認識が失敗したと判定された場合に、前記認識対象部位の認識が失敗した原因を推定する原因推定手段と、
前記原因推定手段によって推定された原因に基づいて、前記認識処理を規定する複数のパラメータのうち、前記推定された原因に対応する少なくとも1つのパラメータの値を修正する処理修正手段と、を備えることを特徴とする波形データ処理装置。
【請求項10】
認識対象部位を含む物体を撮像して得られる画像に対して予め定められた画像処理を施して、前記認識対象部位を認識する画像処理方法であって、
前記認識対象部位の認識が失敗したか否かを判定する成否判定ステップと、
前記成否判定ステップにおいて前記認識対象部位の認識が失敗したと判定された場合に、前記認識対象部位の認識が失敗した原因を推定する原因推定ステップと、
前記原因推定ステップにおいて推定された原因に基づいて、前記画像処理を規定する複数のパラメータのうち、前記推定された原因に対応する少なくとも1つのパラメータの値を修正する処理修正ステップと、を実行することを特徴とする画像処理方法。
【請求項11】
認識対象部位を含む物体を撮像して得られる画像に対して予め定められた画像処理を施して、前記認識対象部位を認識する画像処理装置に配設されたコンピュータにおいて実行される画像処理プログラムであって、前記コンピュータを、
前記認識対象部位の認識が失敗したか否かを判定する成否判定手段と、
前記成否判定手段によって前記認識対象部位の認識が失敗したと判定された場合に、前記認識対象部位の認識が失敗した原因を推定する原因推定手段と、
前記原因推定手段によって推定された原因に基づいて、前記画像処理を規定する複数のパラメータのうち、前記推定された原因に対応する少なくとも1つのパラメータの値を修正する処理修正手段として機能させることを特徴とする画像処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2012−190422(P2012−190422A)
【公開日】平成24年10月4日(2012.10.4)
【国際特許分類】
【出願番号】特願2011−55805(P2011−55805)
【出願日】平成23年3月14日(2011.3.14)
【出願人】(000002945)オムロン株式会社 (3,542)
【Fターム(参考)】