(第1の実施形態)
図1は、第1の実施形態に係る認識装置1、第2の実施形態に係る認識装置1´の機能ブロックを例示する。
図1において、第1の実施形態に係る認識装置1は、画像入力部10、背景処理部11、文字解析・位置特定部12、認識結果出力部13、及び制御部14等を備える。画像入力部10、背景処理部11、文字解析・位置特定部12、及び認識結果出力部13は、制御部14に接続されている。なお、これ以外の接続関係があってもよい。
背景処理部11は、色除去部110、均一化部111、及び補正部112等を備える。色除去部110は均一化部111と接続され、均一化部111は補正部112と接続されている。なお、接続関係はこれらに限らない。
画像入力部10は、スキャナ等の画像入力装置によって読み取った画像データの入力を受け付け、これを制御部14へ出力する。なお、本実施形態における画像入力部10から入力される画像データは、RGB表色系のデータであるとする。
背景処理部11の色除去部110は、制御部14からの指示に基づき、入力された画像データにおける画素の色の除去を行う。この処理のために、色除去部110は、画像データの各画素の輝度の値(輝度値)を算出し、また当該画像データのRGB表色系からHSV表色系への変換を行う。
ここで輝度Yは、以下の数1式を用いて表される。なお、輝度は、例えば、0から255までの値を取り得、輝度値は、以下の実施形態において整数であるとして説明を行う。ただし、輝度値は、整数に限定されない。
ここでR、G、Bは、それぞれ赤色光、緑色光、青色光の階調を示し、それぞれの値(階調値)は0以上255以下の整数である。なお、赤色光、緑色光、青色光は、それぞれ約700nm、約546.1nm、約435.8nmの波長の光である。数1式に示す輝度値の算出のための式や、以下のHSV表色系への変換式は公知であるが、以下の説明において理解容易のためにここに記載する。
入力された画像データのHSV表色系への変換式は以下のようになる。
ここでS、Vは、それぞれ彩度、明度を表し、例えば、0から1までの値を取り得る。またHは、色相を表し、例えば、0から360までの値を取り得る。MAX(R,G,B)は、R、G、Bの各階調値のうちの、最大の階調値を意味する。
数3式は、MAX(R,G,B)=0の場合にはS=0とする。数4式、数5式、数6式は、それぞれMAX(R,G,B)=Rの場合の色相、MAX(R,G,B)=Gの場合の色相、MAX(R,G,B)=Bの場合の色相を表す。ただしこれらにおいてHがマイナスの値となった場合には、この値に360を加算したものをHと置き直す。
また色除去部110は、HSV表色系の画像データのRGB表色系への変換も行う。なお、この変換処理は公知であることより、説明を省略する。
色除去部110は、輝度値が第1の閾値以上で、彩度の値(彩度値)が第2の閾値以上の画素の彩度値を、例えば0、又は0に近い値に変換する。ここで第1の閾値は、例えば130であり、第2の閾値は、例えば0.10である。また変換後の彩度値は、例えば0、又は0.1などの第2の閾値より小さい値であるとする。この変換により、輝度値が第1の閾値以上、且つ彩度値が第2の閾値以上の画素は、無色又は無色に近い色になる。
また色除去部110は、当該画素の彩度値を0(又は0に近い値)にしたまま、その明度を上げる。色除去部110は、当該画素の元の明度の値(明度値)に対し、例えば0.15を加算させたものを、当該画素の新たな明度値とする。一般的に彩度値が0(又は0に近い値)となる色は、白色、灰色、黒色であり、黒色は明度(輝度)が0(又は0に近い値)、白色は明度と輝度が最大値(又は最大値に近い値)であることから、ここでは色除去部110は、画素を白(又は白に近い色)へと変換している。なお以下では、白色を彩度が0で輝度が255の色とし、黒色を彩度が0で輝度が0の色であるとする。ただしこれに限定されない。
第1の閾値以上の輝度値の画素は、例えば黒色等の文字で表される情報伝達のための画素(情報伝達用画素とも記載する)である場合が少ないと考えられ、代わりに背景を構成するための画素として用いられる場合が多いと考えられる。一方、輝度値が第1の閾値以上であっても、彩度値が第2の閾値以上の画素は、背景用の画素であるとしても、色彩を伴うため、情報伝達用画素と区別できなくなる可能性がある。
これらのことから、色除去部110は、情報伝達用画素を認識装置1が正確に認識するために、背景用の画素の色を、情報伝達用画素に一般的に用いられる黒又はこれに近い色から区別しやすい、例えば白などの色へと変換させる。なお、情報伝達用画素は、黒色又は黒色に近い濃い色であるとし、例えば輝度値が80以下の画素を情報伝達用画素とする。
均一化部111は、色除去部110による上記処理に続き、画像データにおける画素のうち輝度値が第3の閾値以上の画素を、背景用の画素として、(R、G、B)=(255、255、255)の白色の画素へと置き換える。ここで第3の閾値は、例えば230である。なお、均一化部111は、輝度値が第3の閾値以上の画素を、(R、G、B)≒(255、255、255)の白色に近い画素に置き換えてもよい。なお、「≒」は、ほぼ等しいことを示す。
補正部112は、均一化部111による上記処理に続き、情報伝達用画素の周囲に発生するノイズの除去処理を行う。この処理について詳細に説明する。読み取られた画像データにおいて、情報伝達用画素の近傍の画素であって本来背景を表すはずの画素が、情報伝達用画素と区別できない場合がある。すなわち、本来背景を表すはずの、情報伝達用画素の近傍の画素の輝度値が、例えば80以下であるなど、情報伝達用画素の輝度値に近く、当該画素がノイズとなってしまう場合がある。これを防いで認識装置1が情報伝達用画素から正確に文字情報を得るために、補正部112は情報伝達用画素付近の画素の輝度等に対し補正を行う。
背景処理部11は、制御部14からの指示に応じて、色除去部110と均一化部111と補正部112による処理後の画像データを制御部14へ出力する。
文字解析・位置特定部12は、制御部14から、背景処理部11による背景に係る画素のデータが補正された画像データを取得し、当該画像データにおける情報伝達用画素を用いて、当該画素が形成する文字が何の文字なのか解析したり、文字列の位置を特定したりし、必要な情報の認識を行う。これらの処理は、既存のものであることから、ここでは説明を省略する。文字解析・位置特定部12は、処理結果を制御部14へ出力する。
認識結果出力部13は、制御部14からの指示等を受け、文字解析・位置特定部12により認識された文字(認識済み文字とも記載する)を、例えば画面上へ表示するための処理や、他の認証装置等に認識済み文字に係るデータを出力する処理等を行う。
制御部14は、画像入力部10、背景処理部11、文字解析・位置特定部12、及び認識結果出力部13との間で必要な情報の授受を行うとともに、これらの機能ブロックに対し適宜指示を出力する。
図2は、背景処理部11による処理の流れを示す図である。
画像データを取得した背景処理部11では、まず色除去部110による処理が実行される(ステップS200)。色除去部110により、背景の画素の色を無色へと変換された画像データは、均一化部111へ出力される。ここで無色とは、彩度が0又はこれに近い値の色であるとする。均一化部111は、画像データにおいて、輝度が第3の閾値以上の画素を白色画素へと変換する(ステップS201)。均一化部111により、背景の画素を均一に白色画素に置き換えられた画像データは、補正部112へ出力される。続いて補正部112による処理が行われ(ステップS202)、この処理結果が制御部14へと出力される。
図3は、ステップS200の色除去部110による処理を、より詳細に示したフローチャートである。
色除去部110は、取得した画像データにおける或る画素のR、G、Bの各値(以下、R、G、Bの各階調値とも記載し、これらをまとめたものをRGB階調値とも記載する)から輝度を算出する(ステップS300)。また色除去部110は、当該画素のRGB階調値から、H、S、Vを算出する(ステップS301)。この算出は、RGB表色系における値からHSV表色系における値への変換に相当する。なお、色除去部110は、ステップS300とステップS301の各処理を、順序を逆にして実行しても、並行して実行してもよい。
色除去部110は、画素の輝度値が第1の閾値以上であるか否か判定する(ステップS302)。
画素の輝度値が第1の閾値以上である場合(ステップS302:Yes)、色除去部110は、当該画素の彩度値が第2の閾値以上であるが判定する(ステップS303)。画素の輝度値が第1の閾値より小さい場合(ステップS302:No)、色除去部110は、少なくともステップS300からステップS302までの処理を未だに実行していない他の画素についてステップS300以降の処理を実行する。画素の輝度値が第1の閾値より小さい場合(ステップS302:No)であって、全ての画素について少なくともステップS300からステップS302の処理が済んでいる場合には、色除去部110による処理は終了する。
色除去部110は、画素の彩度値が第2の閾値以上であるか否か判定する(ステップS303)。
画素の彩度値が第2の閾値以上であれば(ステップS303:Yes)、色除去部110は、当該画素の彩度値を0又は0に近い値へ置き換える(ステップS304)。画素の彩度値が第2の閾値より小さい場合には(ステップS303:No)、色除去部110は、少なくともステップS300からステップS302の処理を未だに実行していない他の画素についてステップS300以降の処理を実行する。画素の彩度値が第2の閾値より小さい場合(ステップS303:No)であって、全ての画素について少なくともステップS300からステップS302の処理が済んでいる場合には、色除去部110による処理は終了する。
ステップS304に続き、色除去部110は、当該画素の明度を上昇させ、元の明度値より大きい値を当該画素の新たな明度値とする(ステップS305)。色除去部110は、例えば、元の明度値に対し、0.15を加算した値を新たな明度値とする。なお、色除去部110は、ステップS305の処理を、ステップS304の処理の前に行ってもよく、又はステップS304の処理と並行して行ってもよい。
色除去部110は、ステップS304とステップS305の各々の処理において変換した彩度値と明度値に基づき、画素のR、G、Bの各階調値を算出する(ステップS306)。この処理はHSV表色系における値から、RGB表色系における値への変換に相当する。
色除去部110は、元の画像データにおける画素のR、G、Bの各階調値を、ステップS306で算出した当該画素のR、G、Bの各階調値へと置き換える(ステップS307)。
色除去部110は、ステップS300からステップS307(又はステップS302若しくはステップS303)までの処理を、画像データの全ての画素に対して行う。画像データの全ての画素に対し、ステップS300からステップS307(又はステップS302若しくはステップS303)までの処理を実行した色除去部110は、処理結果を均一化部111へ出力する。これにより背景処理部11による処理は、図2においてステップS200からステップS201へ移行する。
図4は、ステップS201の均一化部111による処理を、より詳細に示したフローチャートである。
均一化部111は、色除去部110により背景の色が除去された画像データにおける任意の1つの画素のRGB階調値から、当該画素の輝度値を算出する(ステップS400)。均一化部111は、ステップS400において算出した輝度値が第3の閾値以上であるか否かを判定する(ステップS401)。この第3の閾値は、例えば230である。
輝度値が第3の閾値以上である場合(ステップS401:Yes)、均一化部111は、当該画素を背景画素に置き換える(ステップS402)。
ここで背景画素とは、背景を表すための画素として、R、G、Bの各階調値を置き換えた画素を意味するものとする。本実施形態においては、背景画素のR、G、Bの階調値は、全て255であるとする。すなわち本実施形態における背景画素は白色画素であるとする。ただし、これに限定されず、彩度が例えば0.1より小さく、輝度が例えば230以上の画素を背景画素としてもよい。
輝度値が第3の閾値より小さい場合(ステップS401:No)、均一化部111は、少なくともステップS400とステップS401の処理が未だ行われていない画素について、ステップS400以降の処理を行う。輝度値が第3の閾値より小さい場合(ステップS401:No)であって、全ての画素について少なくともステップS400とステップS401の処理が済んでいる場合には、均一化部111による処理は終了する。
均一化部111は、全ての画素についてステップS400からステップS402(又はステップS401)の処理を行った画像データを補正部112へ出力する。
図5は、補正部112による処理の概略を例示する。
図5の左側には、色除去部110による処理と均一化部111による処理の後の画像データが示される。ここからわかるように、情報伝達用画素と背景画素との間の画素は、背景画素であるべき画素であっても、当該画素の輝度値が上記第3の閾値より小さい場合があるため、均一化部111により背景画素として置き換えがされていない場合がある。これにより情報伝達用画素は、その近傍の、背景画素として置き換えられていない、背景画素であるべき画素に紛れてしまうことがある。そしてこれにより、情報伝達用の文字の付近にノイズが発生し、文字の認識が正確に行われなくなる場合がある。補正部112は、情報伝達用画素の近傍の画素に注目し、この画素とその周辺の画素の各輝度値を用いて、当該画素が背景画素であるべきと判定した場合に、当該画素を背景画素へ置き換える。図5の右側には、補正部112による処理後の画像データが示される。図5の左側に示された情報伝達用画素近傍の、輝度値が第3の閾値より小さい、背景画素となるべき画素が、図5の右側においては背景画素へと置き換えられている。
図6は、補正部112による、情報伝達用画素付近の画素の判定方法の概略を例示する。
図6の左側には、画像データにおける情報伝達用画素とその近傍が示される。ここでは、補正部112が、四角aに囲まれた画素に注目する場合を考える。すなわち補正部112は、四角aに囲まれた画素を背景画素か情報伝達用画素かに分類する場合を考える。この四角aで囲まれた画素のように、補正部112が背景画素に分類すべきかどうかについて注目する画素を注目画素とも記載する。補正部112は、注目画素の分類に際し、その注目画素に隣接する、四角bに囲まれた画素の各輝度値を用いる。
図6の右側に示される四角内には、左側において四角b内に示されている各画素に対応する小さな四角(小四角と記載する)が示されており、これらの小四角には、(1)から(9)までの番号が付されている。この小四角の配置は、四角bに囲まれた画素の配置と対応する。すなわち四角bにおいて左上の画素は、(1)の小四角により表され、四角aに囲まれた画素は、(5)の小四角により表される。
(1)、(4)、(7)の各小四角に対応する画素は、図6の左側に示されるように背景画素である。なおここでは、理解容易のために、各画素の彩度値が0である場合について説明する。(2)、(5)、(8)の各小四角に対応する画素は、図6の左側に示されるように、薄い灰色の画素である。さらにまた(3)、(6)、(9)の各小四角に対応する画素は、図6の左側に示されるように、濃い灰色の画素である。
図7は、注目画素を分類するための、判定のパターンを例示する。
図7における(A)は、情報伝達用画素と背景画素が、これらの境界を挟んで、それぞれ右と左に位置する場合を示す。(B)は、情報伝達用画素と背景画素が、これらの境界を挟んで、それぞれ上と下に位置する場合を示す。(C)は、情報伝達用画素と背景画素が、これらの境界を挟んで、それぞれ左と右に位置する場合を示す。(D)は、情報伝達用画素と背景画素が、これらの境界を挟んで、それぞれ下と上に位置する場合を示す。
補正部112は、この(A)から(D)の4つのパターンのうちの任意の1以上のパターンを用いて、注目画素に隣接する画素(隣接画素とも記載する)の濃淡(輝度値の大小)に応じて、境界における注目画素を情報伝達用画素と背景画素のいずれかへ分類する。
補正部112による補正処理に先立ち、画像データにおける各画素には、次のような座標が割り当てられる。この割り当ては、補正部112により行われてもよいし、色除去部110や均一化部111や制御部14等により予め行われていてもよい。ここでは補正部112により当該割り当てが行われるとする。補正部112は、画像データに係る画像において横方向をX方向とし、縦方向をY方向とし、当該画像の左上端の座標を(0,0)、右上端の座標を(M−1,0)、左下端の座標を(0,N−1)、右下端の座標を(M−1,N−1)とする。なおMは、画像の横サイズの大きさを表し、X方向における画素の総数に相当する。またNは、画像の縦サイズの大きさを表し、Y方向における画素の総数に相当する。補正部112は、注目画素のX方向の座標を変数Xに格納し、Y方向の座標を変数Yに格納する。すなわち補正部112は、注目画素の座標を(X,Y)に格納する。
また補正部112は、注目画素の隣接画素の各々の座標を以下のように置く。
図8は、注目画素の座標と、注目画素の座標を(X,Y)としたときの、隣接画素の座標を示す。
図8において、図6、7における(1)の小四角に対応する画素、(2)の小四角に対応する画素、(3)の小四角に対応する画素の各座標を、(X−1,Y−1)、(X,Y−1)、(X+1,Y−1)とする。また図8において、(4)の小四角に対応する画素、(6)の小四角に対応する画素の各座標を、(X−1,Y)、(X+1,Y)とする。また図8において、(7)の小四角に対応する画素、(8)の小四角に対応する画素、(9)の小四角に対応する画素の各座標を、(X−1,Y+1)、(X,Y+1)、(X+1,Y+1)とする。なお、図8において、注目画素の座標(X,Y)は、図6、7における(5)の小四角に対応する画素である。
図9は、図2におけるステップS202の、補正部112による処理のフローチャートである。
ここでは、理解を容易にするため、補正部112は、図7に例示したパターン(A)を例に用いて補正処理を行う場合について説明する。但し、補正部112は、他のパターンを用いてもよいし、(A)から(D)のうちの1以上のパターンを用いた補正処理に続き、他のパターンを用いた補正処理を行ってもよい。
補正部112は、最初に、(X,Y)=(1,1)の注目画素について、ステップS500からS506(又はステップS501、ステップS502、ステップS503、ステップS504、若しくはステップS505)までの処理を行う。
補正部112は、(X,Y)=(m,n)である注目画素に対し、以下のステップS500からステップS506(又はステップS501、ステップS502、ステップS503、ステップS504、若しくはステップS505)までの処理を行い、次に(X,Y)=(m+1,n)の注目画素について、ステップS500からステップS506(又はステップS501、ステップS502、ステップS503、ステップS504、若しくはステップS505)までの処理を行う。なおmとnは、それぞれ、1以上でM−2以下の整数、1以上でN−2以下の整数である。
補正部112は、(X,Y)=(M−2,n)の注目画素について、ステップS500からステップS506(又はステップS501、ステップS502、ステップS503、ステップS504、若しくはステップS505)までの処理を実行すると、次に(X,Y)=(1,n+1)の注目画素について、ステップS500からステップS506(又はステップS501、ステップS502、ステップS503、ステップS504、若しくはステップS505)までの処理を行う。補正部112は、同様に、(X,Y)=(m,n+1)である注目画素に対し、ステップS500からステップS506(又はステップS501、ステップS502、ステップS503、ステップS504、若しくはステップS505)までの処理を行った後、(X,Y)=(m+1,n+1)の注目画素について、ステップS500からステップS506(又はステップS501、ステップS502、ステップS503、ステップS504、若しくはステップS505)までの処理を行う。そして補正部112は、(X,Y)=(M−2,N−2)の注目画素について、ステップS500からステップS506(又はステップS501、ステップS502、ステップS503、ステップS504、若しくはステップS505)までの処理を行った後、補正処理を終了する。
ステップS500において、補正部112は、図8を参照して上述した(1)から(9)の小四角に対応する画素の輝度値を、RGB階調値から算出する(ステップS500)。
補正部112は、図6における(5)の注目画素が、背景画素(本実施形態では白色画素)、又は背景画素の輝度値と近い輝度値の画素であるか否かを判定する(ステップS501)。なお、ここではステップS501の判定条件として、注目画素の輝度値が、図4でのステップS401における第3の閾値として例示した230以上であるか否かとしているが、これに限定されない。
補正部112は、(5)の注目画素の輝度値が230以上であれば(ステップS501:Yes)、当該画素を背景用の画素とみなし、当該注目画素には処理を行わない。そして補正部112は、当該注目画素のXがM−1より小さい場合には、X+1の値をXの値として置き直し、XがM−1である場合には、Xの値を1とし、Y+1の値をYの値として置き直し、(X,Y)の座標の画素を次の注目画素としてステップS500からの処理を行う。補正部112は、注目画素の輝度値が230以上であって(ステップS501:Yes)、この注目画素の座標(X,Y)が(M−1,N−1)であるときは、処理を終了し、全ての画素についての処理結果を制御部14へ出力する。
注目画素の輝度値が230より小さい場合(ステップS501:No)、補正部112は、注目画素が情報伝達用画素であるか否か判定する(ステップS502)。ここでは、補正部112は、注目画素の輝度値が80以下の場合に、情報伝達用画素であると判定する。ただし当該判定条件の情報伝達用画素の輝度値は、80以下に限られない。
(5)の注目画素の輝度値が80以下の場合(ステップS502:Yes)、補正部112は、当該注目画素に対し処理を行わず、次の注目画素へと処理を移行するか、処理を終了する。
注目画素の輝度値が80より大きい場合(ステップS502:No)、補正部112は、図8に示される(1)、(4)、且つ(7)の各隣接画素(又は(1)、(4)、若しくは(7)の各隣接画素)の輝度値が230以上か否か、すなわちこれらの隣接画素が背景画素か否か判定を行う(ステップS503)。
(1)、(4)、且つ(7)の各隣接画素(又は(1)、(4)、若しくは(7)の各隣接画素)の輝度値が230より小さい場合には(ステップS503:No)、補正部112は、当該注目画素に対し、処理を行わず、次の注目画素へと処理を移行するか、処理を終了する。
(1)、(4)、且つ(7)の各隣接画素(又は(1)、(4)、若しくは(7)の各隣接画素)の輝度値が230以上の場合には(ステップS503:Yes)、補正部112は、図8に示される(3)、(6)、且つ(9)の各隣接画素(又は(3)、(6)、若しくは(9)の各隣接画素)の輝度値が80以下か否か、すなわちこれらの隣接画素が情報伝達用画素か否か判定を行う(ステップS504)。
(3)、(6)、且つ(9)の各隣接画素(又は(3)、(6)、若しくは(9)の各隣接画素)の輝度値が80より大きい場合(ステップS504:No)、補正部112は、当該注目画素に対し処理を行わず、次の注目画素へと処理を移行するか、処理を終了する。
(3)、(6)、且つ(9)の各隣接画素(又は(3)、(6)、若しくは(9)の各隣接画素)の輝度値が80以下の場合(ステップS504:Yes)、補正部112は、(5)の注目画素と(6)の隣接画素の各輝度値の差の絶対値が、第4の閾値以上か否か判定する(ステップS505)。
(5)の注目画素と(6)の隣接画素の各輝度値の差の絶対値が、第4の閾値より小さい場合(ステップS505:No)、補正部112は、当該注目画素に対し処理を行わず、次の注目画素へと処理を移行するか、処理を終了する。
(5)の注目画素と(6)の隣接画素の各輝度値の差の絶対値が、第4の閾値以上の場合(ステップS505:Yes)、補正部112は、注目画素を背景画素へと置き換える。
補正部112は、上記ステップS500からステップS506(又はステップS501、ステップS502、ステップS503、ステップS504、若しくはステップS505)までの処理を画像データにおける全ての画素について実行した後に、その処理を終了する。そして、補正部112又は背景処理部11は、処理結果を文字解析・位置特定部12へ出力する。
図10は、認識装置1のハードウェア構成を例示する。
ここでは、認識装置1は、一般的なコンピュータとしてハードウェアを有し、認識装置1による処理は、以下に示すハードウェア6を具体的に利用することにより実行される。ハードウェア6は、互いにバス60によって接続されたプロセッサ61、メモリ62、記憶装置63、及び入出力インターフェース回路64を備える。
プロセッサ61は、例えばシングルコア、デュアルコア、又はマルチコアのプロセッサである。
メモリ62は、例えばROM(Read Only Memory)、RAM(Random Access Memory)、又は半導体メモリである。
プロセッサ61が、メモリ62に記憶された情報、又は後述する記憶装置63からメモリ62に読み込んだ情報を用いて、メモリ62に記憶された各種プログラムを実行することにより、背景処理部11と文字解析・位置特定部12と制御部14の各機能が実現される。
記憶装置63は、例えばハードディスクドライブ、光ディスク装置等であり、外部記憶装置や可搬型記憶媒体でもよい。プロセッサ61が記憶装置63に記憶されている文字に関する情報等を用いることにより、上記文字解析・位置特定部12の機能が実現される。また、プロセッサ61が記憶装置63に記憶されている各種情報を用いることにより、上記背景処理部11の機能が実現されてもよい。
入出力インターフェース回路64は、認識装置1とスキャナ等の画像入力装置とを接続し、画像入力装置を介して認識装置1が画像データを取得するためのインターフェース回路を含む回路である。また入出力インターフェース回路64は、画像読取結果等を出力するための、例えば、液晶ディスプレイ等の表示装置等と認識装置1とを接続するためのインターフェース回路を含む回路である。入出力インターフェース回路64により、上記画像入力部10と認識結果出力部13の各機能が実現される。
なお、上述した場合以外にも、認識装置1の機能ブロックの全て、又はその一部の機能は、適宜、専用のハードウェアにより実現されることもできる。
以下、図11から図13、及び図5を参照し、本実施形態に係る認識装置1を用いた場合の効果について説明する。
図11は、従来の文字認識の方法を用いた場合の出力結果を例示する。
図11の左側は、スキャナ等の画像入力装置による入力の元となる書類上に付された画像を示す。書類は、例えば、健康保険証であり、当該健康保険証の券面において、cで示される背景部分は白色であり、dで示されるハッチングを施した背景部分には、例えば輝度が230より小さい値の色が施されているとする。従来の認識装置においては、上述したような色除去部110による色除去処理や、均一化部111による均一化処理は行われない。このため、背景がcの部分と背景がdの部分の境界部分の文字、例えば「○○1丁目1番1号」の文字における「丁」の付近には、色の変化によるノイズが発生してしまう。これにより、当該「丁」の文字が正確に読み取られない場合が生じ得る。このように互いに色が異なる2以上の背景に跨り表示されている文字は、従来の認識装置によれば、正確に認識されない場合があった。
図12は、本実施形態に係る認識方法を用いた場合の、画像データの背景部分の出力結果を例示する。
図11の場合と同様、図12においてハッチングが付されている部分には、カラー(ここでは白以外の色を指し、黒や灰色も含む)が施されているとする。なお図12において、ハッチングが濃ければ濃いほど、そのハッチングに対応する色が濃いものとする。
図12の左側は、画像入力部10による入力の元となる券面上に付された画像における背景部分、又は画像入力部10を介して認識装置1に入力された画像の背景部分を示す。ここで、図12の左側の画像におけるハッチング部分の画素の輝度値は、第1の閾値以上であるとする。色除去部110による処理により、図12の左側の画像は、図12における真ん中の画像へと変換される。この真ん中の画像におけるハッチング部分の画素の彩度値は、上記ステップS304(図3)より、0又は0に近い値である。また、この真ん中の画像における当該ハッチング部分の画素の明度値は、ステップS305の処理により、図12の左側における元の画素の明度値よりも高い。これらから、図12の真ん中の画像におけるハッチング部分の画素は、色除去部110による処理前の画素よりも明るい、より白に近い色に変換されていることがわかる。
図12の右側には、均一化部111による処理後の画像の背景部分が示される。均一化部111によるステップS402(図4)の処理により、背景部分におけるグレー等の画素が、均一な背景画素(本実施形態では白色画素)へと変換されたことがこの図12からわかる。
図13は、色除去部110による処理及び均一化部111による処理の前後における各画像を例示する。
図13においても、上記と同様、ハッチング部分はカラーを有する部分である。図13は、画像において文字部分を表す情報伝達用画素も含めた場合を表す。
図13の左側には、色除去部110による処理と均一化部111による処理の前の画像が示され、右側にはこれらの処理の後の画像が示される。ここに示されるように、本実施形態における色除去部110及び均一化部111により、背景の中に互いに大きく異なる色彩が付された部分がなくなり(図3のステップS304、ステップS305、図4のステップS402より)、背景が均一となり(ステップS402より)、複数の互いに異なる色彩部分同士の境界がなくなっている。これにより、文字認識におけるノイズの発生が低減する。また、背景画素の輝度値を大きい値とすることにより(ステップS402)、文字情報を構成する情報伝達用画素との差別化を図ることができ、文字情報が背景から抽出しやすいものとなる。
また図5の右側を参照すると、補正部112が、情報伝達用画素と背景画素との境界において、その境界の画素の輝度値と情報伝達用画素の輝度値の差の絶対値が大きい場合に(図9のステップS505)、当該境界の画素を背景画素へと置き換えることにより、情報伝達用画素の周囲のノイズとなる部分がなくなり、文字情報が正確に抽出されるようになる。
以上のことから、本実施形態に係る認識装置1によれば、背景デザインに関係なく、文字を正しく抽出できる。
(第2の実施形態)
上記第1の実施形態に係る認識装置1は、色除去部110による処理の後の画素であって、輝度値が第3の閾値以上の画素を背景用の画素とみなし、これを白色画素とした。しかしこの場合、第3の閾値が大きい場合などに、本来背景部分となるはずの画素が、第3の閾値よりもその輝度値が小さいために、背景画素への変換がされず、情報伝達用画素と共に画像上に残される可能性がある。そして、このような画素が文字認識等においてノイズとなる場合があり得る。
本実施形態に係る認識装置1´は、元の画像の各画素の輝度の分布を調べ、その分布に応じて背景画素とすべき画素を選択することで、情報伝達用画素の抽出においてノイズをより低減させ、より正確に必要な情報を抽出する。
本実施形態に係る認識装置1´は、図1に示されるように、上記認識装置1における均一化部111に代わり、均一化部111´を備える。この他の機能ブロックは、第1の実施形態におけるものと同様であるため、説明を省略する。
均一化部111´は、色除去部110から出力される色除去が行われた画像データへの処理に先立ち、未だ色除去部110により処理されていない画像データ、すなわち画像入力部10により入力された元の画像データにおける画素の輝度のヒストグラム(輝度ヒストグラムとも記載する)を作成する。均一化部111´は、輝度が或る値となる画素の数をカウントし、各輝度値の画素数を記憶する。ここでは均一化部111´は、輝度値をインデックスとする配列である輝度配列[輝度値]を記憶し、このインデックスの輝度値の画素数をこの輝度配列[輝度値]に格納する。均一化部111´は、この任意の輝度値の輝度配列を輝度ヒストグラムとしてもよいし、この輝度配列に基づき生成したグラフを輝度ヒストグラムとしてもよい。
均一化部111´は、生成した輝度ヒストグラムに基づき、例えば100以上の輝度値であって、最も多い画素数が分布する輝度値(ピーク輝度値とも記載する)を背景画素の輝度値とする。また均一化部111´は、ピーク輝度値における画素数を用いて、背景画素とすべき画素の輝度値の下限値を導出し、この下限値以上の輝度値の画素を背景画素として変換し、背景の均一化を行う。
図14は、均一化部111´による輝度ヒストグラムの生成処理のフローチャートである。
均一化部111´は、制御部14を介して画像入力部10から背景処理部11が取得した画像データの全ての各画素について、以下のステップS600からステップS603(又はステップS602)までの処理を行う。
ステップS600において、均一化部111´は、或る画素のRGB階調値から輝度値を算出する(ステップS600)。
均一化部111´は、ステップS600で算出した輝度値の画素数を格納する輝度配列[輝度値]のこの画素数に対し1を加算し、この加算後の値をこの輝度配列[輝度値]に格納する(ステップS601)。
均一化部111´は、ステップS601において加算処理と格納処理を行った輝度配列[輝度値]の画素数が1であるか否か判定する(ステップS602)。
この判定において画素数が1であれば(ステップS602:Yes)、均一化部111´は、ステップS600においてその輝度値を算出した画素のRGB階調値を記憶する(ステップS603)。ここでは、均一化部111´は、RGB階調値を記憶しておくためのRGBサンプル領域を有し、当該RGBサンプル領域には、各輝度値をインデックスとする配列のRGBサンプル[輝度値]が記憶され、RGBサンプル[輝度値]にはこのインデックスが示す輝度値におけるRGB階調値が格納される。このステップS603において均一化部111´は、ステップS600において算出した輝度値をインデックスとするRGBサンプル[輝度値]に、同じくステップS600で当該輝度値の算出の元となったRGB階調値を格納する。
ステップS602の判定において画素数が1ではないとき、又は、ステップS603の処理が行われた後、均一化部111´は、少なくともステップS600からステップS602までの処理が、未だ行われていない他の画素について、上記ステップS600以降の処理を行う。また、ステップS602の判定において画素数が1ではなく、且つ全ての画素について少なくとも上記ステップS600からステップS602までの処理が行われた場合、均一化部111´は、後述する図16に示される処理を行う。また、ステップS603の処理が行われ、且つ全ての画素について少なくとも上記ステップS600からステップS602までの処理が行われた場合、均一化部111´は、図16に示される処理を行う。
図15は、均一化部111´により生成される輝度ヒストグラムをグラフとして表現したものの一例を示す図である。
輝度ヒストグラムにおいて、横軸は輝度値、縦軸は画素数を表す。この図15において、iとjで示される互いに離れた2つのピークが存在する。ここでは、iにおける輝度値は小さく、jにおける輝度値は大きい。iにおける輝度値は、情報伝達用画素の輝度値であり、jにおける輝度値は、背景である画素の輝度値である。iとjにより示されるように、背景である画素の大部分の輝度値と、情報伝達用画素の大部分の輝度値は、大きく異なる。また、kの部分に示されるように、iとjの各輝度値の中間の輝度値における画素の数は多くないことがわかる。
図16は、均一化部111´による背景の均一化処理のフローチャートである。
均一化部111´は、100以上255以下の各輝度値をインデックスとする輝度配列[輝度値]を対象に、以下のステップS700からステップS702の処理を実行する。ここでは、均一化部111´は、輝度値が100の輝度配列[100]から輝度値が255の輝度配列[255]まで、輝度値の昇順に以下のステップS700からステップS702の処理を実行する。
ここで均一化部111´は、上述したピーク輝度値における画素数(ピーク画素数とも記載する)を記憶する。均一化部111´は、まず輝度配列[100]を対象としたステップS700からステップS702までの処理として、輝度配列[100]の画素数をピーク画素数として記憶し、ピーク輝度値を100として記憶する。あるいは、均一化部111´は、予めピーク画素数及びピーク輝度値として任意の初期値を設定し、以下の処理を実行してもよい。
均一化部111´は、輝度値がα(α:100以上、255以下の整数)における輝度配列[α]の画素数が、記憶されているピーク画素数より大きいか否か判定を行う(ステップS700)。
輝度配列[α]の画素数が、ピーク画素数より大きい場合には(ステップS700:Yes)、均一化部111´は、ピーク画素数の値を輝度配列[α]の画素数に更新する(ステップS701)。そして均一化部111´は、ピーク輝度値をαへ更新する(ステップS702)。なお、ステップS701とステップS702の各処理は、上記順番とは逆の順番で実行されても、並列に実行されてもよい。
輝度配列[α]の画素数がピーク画素数以下の場合(ステップS700:No)、又はステップS702の処理の後、均一化部111´は、αが255より小さいときは、輝度配列[α+1]を対象としてステップS700以降の上記の処理を実行する。
αが255のときであって、輝度配列[α]の画素数がピーク画素数以下の場合(ステップS700:No)、又はステップS702の処理後、均一化部111´は、RGBサンプル[ピーク輝度値]に格納されたRGB階調値を取得する(ステップS703)。均一化部111´は、ステップS703で得られたRGB階調値を、背景画素のRGB階調値とする。
次に、均一化部111´は、背景画素として置き換えるための画素の輝度値の下限値(上記第1の実施形態における第3の閾値に相当し、背景下限値とも記載する)を算出するため、輝度値の降順に、ピーク輝度値から100までの各輝度値における輝度配列[輝度値]を対象とし、以下のステップ704からステップS705の処理を、実行する。
まず均一化部111´は、背景下限値として、ピーク輝度値を記憶しておく。均一化部111´は、輝度値がβ(β:100以上でピーク輝度値以下)の輝度配列[β]の画素数がピーク画素数の例えば60%以上になるか否か判定する(ステップS704)。ただし、ここでの判定条件はピーク画素数の60%以上とは限られず、例えば50%や70%等でもよい。
輝度配列[β]の画素数がピーク画素数の例えば60%以上であるならば(ステップS704:Yes)、均一化部111´は、背景下限値をβに更新する(ステップS705)。
輝度配列[β]の画素数がピーク画素数の例えば60%未満の場合(ステップS704:No)、又はステップS705の処理後、均一化部111´は、βが100より大きいときは、輝度配列[β−1]を対象としてステップS704以降の上記の処理を実行する。
βが100のときであって、輝度配列[β]の画素数がピーク画素数の例えば60%未満の場合(ステップS704:No)、又はステップS705の処理後、均一化部111´は、以下に述べるステップS706以降の処理を実行する。
ここで、背景下限値について、図15を再度参照して説明する。図15において、ピーク輝度値は、jにおける輝度値となる。そして、輝度値がピーク輝度値から下がり、情報伝達用画素が分布する輝度値へ近づくにつれ、画素数は減少していく。本実施形態では、ピーク輝度値における画素数の例えば60%以上の画素数となる輝度値であって、100以上の輝度値を背景下限値としている。これにより100に近い輝度値の画素も背景用の画素か否かの考慮がされ、背景とすべき画素が漏れなく抽出されることができる。なお、図9のステップS504の場合のように、輝度値が例えば80以下の画素を情報伝達用画素としても、図15におけるiに相当するピークにおける情報伝達用画素の画素数や、このiに相当するピーク近傍の輝度値の画素数は、ピーク画素数の60%程度には及ばない場合が多いので、100以上の輝度値を背景用の輝度値として考慮しても、情報伝達用画素が背景用の画素として取り扱われる可能性は低いと考えられる。
次に均一化部111´は、色除去部110により色の除去がされた画像データの全ての画素について、以下のステップS706からステップS708(又はステップS707)までの処理を実行する。均一化部111´は、或る画素のRGB階調値から輝度値を算出する(ステップS706)。均一化部111´は、ステップS706において算出した輝度値が、上述した処理により得られた背景下限値以上か否か判定を行う(ステップS707)。
ステップS707において、輝度値が背景下限値以上の場合には(ステップS707:Yes)、均一化部111´は、当該画素を、RGBサンプル[ピーク輝度値]に格納されているRGB階調値の画素へ置き換える(ステップS708)。なお、均一化部111´は、RGBサンプル[ピーク輝度値]に格納されているRGB階調値の画素への置き換えに代えて、当該画素を例えば白色画素へと置き換えてもよい。
ステップS707において、輝度が背景下限値より小さい場合(ステップS707:No)、又はステップS708の処理後、均一化部111´は、ステップS706の処理が未だ実行されていない他の画素について、上記ステップS706以降の処理を繰り返す。
全ての画素について、上記ステップS706からステップS708(又はステップS707)までの処理を実行した均一化部111´は、処理を終了すると共に、補正部112に対し、処理後の画像データを出力する。
補正部112は、図9におけるステップS501の判定条件を、注目画素の輝度値が背景下限値以上か否かとする判定条件を用いて処理を実行する。また補正部112は、ステップS503における判定条件を、例えば(1)、(4)、且つ(7)の各隣接画素((1)、(4)、又は(7)の各隣接画素)の輝度値が背景下限値以上か否かとする判定条件を用いて処理を実行する。
本実施形態に係る認識装置1´の各機能ブロックも、図10に示すハードウェア6により実現可能であり、機能ブロックとハードウェア6の構成要素の対応関係は、上記第1の実施形態と同様である。また認識装置1´の機能ブロックの全て、又はその一部の機能は、適宜、専用のハードウェアにより実現されることができることも、上記第1の実施形態と同様である。
本実施形態に係る認識装置1´によれば、上記第1の実施形態における効果に加え、以下の効果を得ることができる。認識装置1´は、背景用の画素となるべき画素を、漏れなく抽出することができる。そして認識装置1´は、漏れなく抽出された背景画素となるべき画素をピーク輝度値の画素へ置き換えることにより、情報伝達用画素を背景画素からより区別しやすいものにし、文字等の情報を正確に抽出する。
本発明は、本発明の広義の精神と範囲を逸脱することなく、様々な実施形態及び変形が可能とされるものである。また、上述した実施形態は、本発明を説明するためのものであり、本発明の範囲を限定するものではない。特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形も、本発明の範囲内とみなされる。