本発明の実施例では、画像中の各画素の座標を直交座標や極座標で表現する。そこで、直交座標と極座標について説明することにする。
図1は、直交座標と極座標について説明するための図である。図1Aのような正方形の画像中の各画素の座標は、直交座標(x,y)では図1Bのように表現される。図1Bでは、原点は画像の左上隅画素Pに、x方向は右向きに、y方向は下向きに取られている。図1Aのような正方形の画像中の各画素の座標は、極座標(r,θ)では図1Cのように表現される。図1Cでは、原点は画像の重心Qに、r方向は原点から外向きに、θ方向は原点左側から反時計回りに取られている。図1Dは、図1Cの極座標(r,θ)のr方向を下向きに、図1Cの極座標(r,θ)のθ方向を右向きに取った座標系である。図1Eは、図1Aの画像を図1Dの座標系で表現したものである。図1Aの画像を元画像、図1Eの画像を極座標画像、図1Aの画像を図1Eの画像に変換することを極座標変換、図1Eの画像を図1Aの画像に変換することを逆極座標変換と言う。
図2は、画像中の各画素の座標表現について説明するための図である。各画素は点ではないため、各画素の座標は各画素の重心の座標をもって表現する。例えば、図1Aの画像の大きさを40×40画素とする場合には、図2のように、画素S1の座標は画素S1の重心T1の座標をもって(x,y)=(19,19)且(r,θ)=(1/√2,7π/4)となり、画素S2の座標は画素S2の重心T2の座標をもって(x,y)=(21,18)且(r,θ)=(3/√2,5π/4)となる。画像中の各画素の座標(r,θ)を(r,θ+φ)に置き換えることで、画像をφ回転させることができる。例えば、画像中の各画素の座標(r,θ)を(r,θ+π)に置き換えることで、画像を180度回転させることができる。
図3は、図1Aの画像中の各画素の直交座標と極座標の対応表である。ここで、極座標のr方向の目盛りDを、各画素のr値の大きさの順番のマイナス1が各画素のD値となるように割り振る。例えば、図3のように、r=0.71は1番小さいのでD=0となり、r=1.58は2番目に小さいのでD=1となり、r=2.12は3番目に小さいのでD=2となる。さらに、極座標のθ方向の目盛りFを、θ/U(U=2π/Θ)として定義する。Θは図1Aの画像のθ方向の画素数であるため、図1Aの画像中の各画素のθ値は(2π/Θ)×0,,,n,,,Θとなり、図1Aの画像中の各画素のF値は0,,,n,,,Θとなる。例えば、図1Aの画像のθ方向の画素数Θを192とする場合には、図3のように、x=19,y=20(θ=π/4)ではF=24となり、x=20,y=20(θ=3π/4)ではF=72となり、x=20,y=19(θ=5π/4)ではF=120となり、x=19,y=19(θ=7π/4)ではF=168となる。図3の対応表により直交座標x,yと極座標r,θ(D,F)を相互に変換することで、図1Aの画像中の各画素の座標を「直交座標表現から極座標表現に」且つ「極座標表現から直交座標表現に」変換することができる。図3の対応表を座標変換テーブルと言う。
図4は、図1Dと同様にしてDを下向きにFを右向きに取った座標系である。図4にはさらに、図1Aの画像を図4の座標系で表現した場合の各画素も記載されている。Rは図1Aの画像のr方向の画素数(167)であり、Θは図1Aの画像のθ方向の画素数(192)である。なお、図5Aの画像(元画像)を図4の座標系で表現したものが図5Bの画像(極座標画像)である。
本発明の実施例では、画像中に存在する特定画像を検出する画像認識処理を実行する。そこで、画像認識処理の手順について説明することにする。
図6は、画像認識処理の手順に係るフローチャートである。S1では、画像中から特定画像の候補となる領域を切り出す。例えば、画像中に存在する印鑑画像を検出する場合、画像中から円形の領域(印鑑画像の輪郭が円形)を切り出す。S2では、切り出した画像と特定画像を検出するための辞書画像とを重ね合わせ法等で比較する。例えば、画像中に存在する印鑑画像を検出する場合、切り出した画像と印鑑画像を検出するための辞書画像とを重ね合わせ法等で比較する。S3では、比較結果に基づいて画像中に特定画像が存在するか否かを判定する。例えば、全100画素中の90画素(閾値)以上が一致した場合には「存在」と判定し、全100画素中の90画素(閾値)未満が一致した場合には「不存在」と判定する。なお、画像中にどのような角度で特定画像が存在するか解らない場合には、辞書画像を変更(この詳細については後述)してS2とS3を繰り返す。そして、その内の1回でも「存在」と判定されれば画像中から特定画像が検出されたことになり、その内の1回も「存在」と判定されなければ画像中から特定画像が検出されなかったことになる。なお、S2とS3を繰り返すと言っても、S2,S3,S2,S3,S2,S3というようにS2とS3を交互に繰り返す必要はなく、S2,S2,S2,S3,S3,S3というようにS2とS3が結果的に繰り返されていれば十分である。実際、後述する画像認識処理では、後者のようにしてS2とS3を繰り返すことになる。
(画像認識用IC)
図7は、本発明の実施例の画像認識用IC101を表す。図7の画像認識用IC101は、画像中に存在する特定画像を検出する画像認識処理を実行するICチップ(集積回路チップ)である。図7の画像認識用IC101は、辞書画像保持部111、画像処理部121、画像保持部122、比較判定部131、制御部141等の機能ブロックを備える。図7の画像認識用IC101には、画像入力I/F(インタフェース)151、画像入力端子152、画像認識結果出力I/F(インタフェース)153、画像認識結果出力端子154、CPUI/F(インタフェース)155等が存在する。
図7の画像認識用IC101はここでは、コピー機に内蔵されているものとする。図7の画像認識用IC101にはここでは、コピー機により読取原稿から読み取られた画像が入力されるものとする。図7の画像認識用IC101はここでは、コピー機から当該画像認識用IC101に入力された画像中に存在する特定画像を検出し、その検出結果を当該画像認識用IC101からコピー機に出力する。
辞書画像保持部111は、辞書画像を一時的に保持するためのメモリであり、SRAMとSRAM制御部により構成される。辞書画像は、極座標画像の状態すなわち元画像から極座標画像に極座標変換された状態で画像認識用IC101の外部のROM(コピー機に内蔵されているROM。図7参照)に保存されており、極座標画像の状態で辞書画像保持部111に起動されるものである。ROMではなくHDDに保存しておいてもよい。当該ROMはここでは、フラッシュメモリ等のEPROMである。
画像処理部121は、画像認識用IC101に入力された画像認識対象の画像について画像処理を実行する機能ブロックである。画像処理部121は、γ補正や2値化や図6のS1の切出処理等の画像処理により、画像認識用IC101に入力されたRGB画像を2値画像に変換し、2値画像中から特定画像の候補となる領域を切り出す。画像保持部122は、画像認識用IC101に入力された画像認識対象の画像(を画像処理したもの)を一時的に保持するためのメモリであり、フリップフロップにより構成される。画像認識対象の画像は、元画像の状態すなわち極座標変換されてない状態で画像認識用IC101に入力され、元画像の状態で画像保持部122に保持される。
比較判定部131は、画像認識用IC101に入力された画像認識対象の画像(元画像の状態)と辞書画像(極座標画像の状態)とを比較して、画像認識用IC101に入力された画像認識対象の画像中に特定画像が存在するか否かを判定する機能ブロックである。前者の画像は画像保持部122に保持されている画像であり、後者の辞書画像は辞書画像保持部111に保持されている辞書画像である。比較判定部131は、比較器と蓄積部と判定器により構成され、当該蓄積部は、加算器とリング状のシフトレジスタにより構成される。比較処理と判定処理はそれぞれ比較器と判定器により実行される。比較処理の例としては、論理ANDや論理XOR等が挙げられる。判定処理の例としては、閾値処理等が挙げられる。
図8は、辞書画像の極座標変換について説明するための図である。図8Aのような辞書画像(元画像)は、極座標変換によって、図8Bのような辞書画像(極座標画像)に変換される。ここでは、辞書画像のθ方向の画素数Θを64とする。図8Bには、θ方向の目盛りFが0である領域,θ方向の目盛りFが1である領域,θ方向の目盛りFが2である領域,,,というように、辞書画像がr方向の1ラインごとに64の領域に領域分割されて記載されている。図8Bのような辞書画像(極座標画像)は、逆極座標変換によって、図8Cのような辞書画像に変換(復元)される。ここで注意すべきは、図8C左側は図8Bをそのまま変換したものであるが、図8中央は図8Bを読出位置を8目盛りずらして変換したものであり、図8右側は図8Bを読出位置を16目盛りずらして変換したものであるということである。すなわち、図8Aは元画像となるが、図8Bは元画像を45度回転させた画像となり、図8Cは元画像を90度回転させた画像となるのである。このように、極座標画像のr方向(極座標半径方向)のラインの読出位置をθ方向(極座標角度方向)にずらす操作は、復元画像を回転させる操作に相当する。読出位置が1目盛りずれるごとに、復元画像が5.625度(=360/64度)回転されることになる。
図9は、画像認識対象の画像(元画像)と辞書画像(元画像)の例である。ここでは共に、直交座標表現で16×16画素の画像である。図9Aの画像と図9Bの辞書画像とを比較するに、2個の画素(画素Aと画素B)が黒エラーになっており、1個の画素(画素C)が白エラーになっている。比較判定部131は、エラー1個をエラー1点として画像認識対象の画像と辞書画像の一致度を点数化して行き、画像認識対象の画像と辞書画像の一致度が閾値以上か未満か(閾値超過か以下かでも可)をもって画像中に特定画像「あ」が存在するか否かを判定する。ただし、画像認識対象の画像は「元画像の状態」で、辞書画像は「極座標画像の状態」で、比較判定処理が実行されることになる。
なお、図9Aの画像中に存在する「あ」は、厳密に言うと、特定画像「あ」そのものではなく特定画像「あ」と合致すると判定される画像である。この点を厳密に区別して議論する場合には適宜、図9Aの画像中に存在する「あ」を、特定画像ではなく『特定画像と合致する画像』または『特定画像と合致すると判定される画像』と呼ぶとよい。例えば、比較判定部131は画像中に特定画像が存在するか否かを判定すると表現する代わりに、比較判定部131は画像中に特定画像と合致する画像が存在するか否かを判定すると表現する。図9では、エラー3点なので、エラー5点を閾値とすれば、図9Aの画像中に特定画像「あ」と合致する画像が存在すると判定されることになる。
図7の画像認識用IC101は、図9のような比較判定処理を、図8のようにして辞書画像の角度を変えて繰り返し実行する。これにより、画像中に任意の角度で存在する特定画像を検出するのである。これは、図6のS2とS3の繰り返しに相当する。図7の画像認識用IC101は、1の画像につき、図9のような比較判定処理にて1回でも「存在」と判定されれば画像中から特定画像が検出された旨の検出結果を出力し、1回も「存在」と判定されなければ画像中から特定画像が検出されなかった旨の検出結果を出力する。
図7の画像認識用IC101にて、画像認識対象の画像は画像入力I/F151により画像入力端子152を介して入力されて、画像認識結果(検出結果)は画像認識結果出力I/F153により画像認識結果出力端子154を介して出力される。
図10は、画像保持部122の領域分割について説明するための図である。画像保持部122は、保持する画像を複数回に分けて出力すべく、図10のように、複数個の領域に領域分割されている。図10Aは4の領域に領域分割されている画像保持部122の例、図10Bは8の領域に領域分割されている画像保持部122の例、図10Cは16の領域に領域分割されている画像保持部122の例である。画像保持部122に保持されている画像は、画像保持部122の分割領域毎に出力される。もちろん、画像保持部122を、複数個の領域に領域分割しなくてもよい。
図11は、画像保持部122の構成について説明するための図である。画像保持部122は、直交座標表現でn×n画素の画像を保持すべく、図11のように、格子状の配列のn×n個のフリップフロップにより構成されている。図11Aは4×4のフリップフロップにより構成されている画像保持部122の例、図11Bは8×8のフリップフロップにより構成されている画像保持部122の例、図11Cは16×16のフリップフロップにより構成されている画像保持部122の例である。画像認識対象の画像の各画素は、画像保持部122を構成する各フリップフロップに格納される。
なお、直交座標表現でn×n画素の画像を保持するための画像保持部122を、図12のように、格子状の配列の(n+N)×(n+N)のフリップフロップにより構成してもよい。図12Aは(4+2)×(4+2)のフリップフロップにより構成されている画像保持部122の例、図12Bは(8+2)×(8+2)のフリップフロップにより構成されている画像保持部122の例、図12Cは(16+2)×(16+2)のフリップフロップにより構成されている画像保持部122の例である。これにより、画像保持部122に保持されている画像をシフトさせて出力することが可能になる。画像認識用IC101の回路規模をなるべく小規模化すべく、Nはnより小さい値であることが望ましい。
図13は、画像保持部122を構成するフリップフロップを表す。フリップフロップの入力としては、左に隣接するフリップフロップのQ出力,右に隣接するフリップフロップのQ出力,下に隣接するフリップフロップのQ出力,回転に対応するフリップフロップのQ出力,をセレクトするセレクタが用意されている。制御部141からのセレクト信号により、画像保持部122に保持されている画像の右シフト,左シフト,上シフト,回転,が実行される。図14は画像保持部122の左端を構成するフリップフロップを表し、図15は画像保持部122の右端を構成するフリップフロップを表す。図13の「左に隣接するフリップフロップのQ出力」が図14では「外部入力」に置き換わっており、図13の「右に隣接するフリップフロップのQ出力」が図15では「外部入力」に置き換わっている。図16は、画像保持部122を構成するフリップフロップの接続関係を表す。
図17は、画像保持部122に保持されている画像の回転について説明するための図である。図17の画像保持部122は、4×4のフリップフロップにより構成されており、図17には、90度回転に対応するフリップフロップ間の接続が矢印で記載されている。例えば、1a,1b,1c,1dのQ出力はそれぞれ1d,1a,1b,1cのセレクタに入力される。また、2a,2b,2c,2dのQ出力はそれぞれ2d,2a,2b,2cのセレクタに入力される。また、3a,3b,3c,3dのQ出力はそれぞれ3d,3a,3b,3cのセレクタに入力される。また、4a,4b,4c,4dのQ出力はそれぞれ4d,4a,4b,4cのセレクタに入力される。これにより、画像保持部122に保持されている画像が1クロックで90度回転されることになる。
図18は、画像保持部122からの画像出力について説明するための図である。図18の画像保持部122は、4個の領域に領域分割されており、図18の画像保持部122に保持されている画像は、画像保持部122の1分割領域ごとに出力される。具体的には、図18の画像保持部122からは斜線で示す1/4領域が出力されるようになっており、残りの3/4領域についても図17の回転機能により同様に出力されることになる。これにより、画像保持部122に保持されている画像が4クロックですべて出力されることになる。
ここで、図17と図18の関係について補足しておく。画像保持部122の領域分割数を4とする場合に1/4領域出力を実現するためには90度回転機能が、画像保持部122の領域分割数を8とする場合に1/8領域出力を実現するためには45度回転機能が、画像保持部122の領域分割数を16とする場合に1/16領域出力を実現するためには22.5度回転機能が必要となる。しかし例えば、図18の1/4領域を半分づつ(すなわち1/8領域づつ)出力できるようにしておくことで、図17の90度回転機能により1/8領域出力を実現することもできる。または例えば、図19のように1/8領域分の画像を反転できるようにしておくことで、図17の90度回転機能により1/8領域出力を実現することもできる。この場合には、1/8領域分の画像の領域順が反転してしまうため、1/8領域分の画像の反転に応じて、図20のように比較器から加算器(蓄積部)までの経路をP1からP2に切り替える。これにより、シフトレジスタ(蓄積部)に蓄積しようとする比較結果の蓄積順が反転されるため、1/8領域分の画像の領域順の反転がキャンセルされる。
図21は、比較判定処理の手順について説明するための図である。
画像認識対象の画像(元画像)は、画像保持部122に保持されている。画像認識対象の画像のθ方向の画素数Θは64である。画像認識対象の画像は、θ方向の目盛りFが0である領域,θ方向の目盛りFが1である領域,θ方向の目盛りFが2である領域,,,というように、r方向の1ラインごとに64の領域に領域分割されて、比較判定部131に各領域ごとに並列的に入力されることになる。なお、画像保持部122が領域分割されていない場合、画像認識対象の画像の64の領域が比較判定部131に並列的に入力されることになる。また、画像保持部122が4,8,16の領域に領域分割されている場合、画像認識対象の画像の16,8,4の領域が比較判定部131に並列的に入力されることになる。画像保持部122の領域分割数は、ここでは「4」であるとする。画像認識対象の画像の領域分割数は、線対称性により回路の共通化を図るべく、8の倍数であることが望ましい。
辞書画像(極座標画像)は、辞書画像保持部111に保持されている。辞書画像のθ方向の画素数Θは64である。辞書画像は、θ方向の目盛りFが0である領域,θ方向の目盛りFが1である領域,θ方向の目盛りFが2である領域,,,というように、r方向の1ラインごとに64の領域に領域分割されて、比較判定部131に各領域ごとに順々に入力されることになる。
比較判定部131では、画像保持部122の分割領域毎に処理が実行される。画像保持部122はここでは4の領域に領域分割されているため、比較判定部131ではここでは4段階にて処理が実行される。第1段階では、画像認識対象の画像の領域0,1,2,,,15(画像保持部122の第1分割領域)が処理の対象となる。第2段階では、画像認識対象の画像の領域16,17,18,,,31(画像保持部122の第2分割領域)が処理の対象となる。第3段階では、画像認識対象の画像の領域32,33,34,,,47(画像保持部122の第3分割領域)が処理の対象となる。第4段階では、画像認識対象の画像の領域48,49,50,,,63(画像保持部122の第4分割領域)が処理の対象となる。
比較判定部131ではまず、画像認識対象の画像の領域0,1,2,,,15と辞書画像の領域「0」とがそれぞれ比較器0,1,2,,,15により並列的に比較されて、比較器0,1,2,,,15による比較結果がそれぞれ蓄積部「0,1,2,,,15」に並列的に蓄積される。蓄積部0には画像認識対象の画像の領域0と辞書画像の領域0との比較結果が、蓄積部1には画像認識対象の画像の領域1と辞書画像の領域0との比較結果が、蓄積部2には画像認識対象の画像の領域2と辞書画像の領域0との比較結果が蓄積される。
比較判定部131では次に、画像認識対象の画像の領域0,1,2,,,15と辞書画像の領域「1」とがそれぞれ比較器0,1,2,,,15により並列的に比較されて、比較器0,1,2,,,15による比較結果と蓄積部「63,0,1,2,,,14」による蓄積内容とがそれぞれ加算されて蓄積部「63,0,1,2,,,14」に並列的に蓄積される。蓄積部0には画像認識対象の画像の領域0,1と辞書画像の領域0,1との各比較結果の和が、蓄積部1には画像認識対象の画像の領域1,2と辞書画像の領域0,1との各比較結果の和が、蓄積部2には画像認識対象の画像の領域2,3と辞書画像の領域0,1との各比較結果の和が蓄積される。なお、蓄積部は加算器とシフトレジスタにより構成されており、加算処理と蓄積処理はそれぞれ加算器とシフトレジスタにより実行される。
比較判定部131では次に、画像認識対象の画像の領域0,1,2,,,15と辞書画像の領域「2」とがそれぞれ比較器0,1,2,,,15により並列的に比較されて、比較器0,1,2,,,15による比較結果と蓄積部「62,63,0,1,2,,,13」の蓄積内容とがそれぞれ加算されて蓄積部「62,63,0,1,2,,,13」に並列的に蓄積される。蓄積部0には画像認識対象の画像の領域0,1,2と辞書画像の領域0,1,2との各比較結果の和が、蓄積部1には画像認識対象の画像の領域1,2,3と辞書画像の領域0,1,2との各比較結果の和が、蓄積部2には画像認識対象の画像の領域2,3,4と辞書画像の領域0,1,2との各比較結果の和が蓄積される。なお、蓄積部は加算器とシフトレジスタにより構成されており、加算処理と蓄積処理はそれぞれ加算器とシフトレジスタにより実行される。
比較判定部131は、このような処理を、辞書画像の領域「0」から「63」まで繰り返す。これによって、蓄積部0には画像認識対象の画像の領域0,1,2,,,15と辞書画像の領域0,1,2,,,15との各比較結果の和、蓄積部1には画像認識対象の画像の領域1,2,3,,,15,0と辞書画像の領域0,1,2,,,14,63との各比較結果の和、蓄積部2には画像認識対象の画像の領域2,3,4,,,15,0,1と辞書画像の領域0,1,2,,,13,62,63との各比較結果の和、、、が蓄積される。以上が第1段階処理である。
比較判定部131では次に、画像認識対象の画像の領域16,17,18,,,31と辞書画像の領域「0」とがそれぞれ比較器0,1,2,,,15により並列的に比較されて、比較器0,1,2,,,15による比較結果と蓄積部「16,17,18,,,31」による蓄積内容とがそれぞれ加算されて蓄積部「16,17,18,,,31」に並列的に蓄積される。蓄積部16には画像認識対象の画像の領域16,0,1,2,,,15と辞書画像の領域0,48,49,50,,,63との各比較結果の和が、蓄積部17には画像認識対象の画像の領域17,0,1,2,,,15と辞書画像の領域0,47,48,49,,,62との各比較結果の和が、蓄積部18には画像認識対象の画像の領域18,0,1,2,,,15と辞書画像の領域0,46,47,48,,,61との各比較結果の和が蓄積される。
比較判定部131では次に、画像認識対象の画像の領域16,17,18,,,31と辞書画像の領域「1」とがそれぞれ比較器0,1,2,,,15により並列的に比較されて、比較器0,1,2,,,15による比較結果と蓄積部「15,16,17,,,30」による蓄積内容とがそれぞれ加算されて蓄積部「15,16,17,,,30」に並列的に蓄積される。蓄積部16には画像認識対象の画像の領域16,17,0,1,2,,,15と辞書画像の領域0,1,48,49,50,,,63との各比較結果の和、蓄積部17には画像認識対象の画像の領域17,18,0,1,2,,,15と辞書画像の領域0,1,47,48,49,,,62との各比較結果の和が、蓄積部18には画像認識対象の画像の領域18,19,0,1,2,,,15と辞書画像の領域0,1,46,47,48,,,61との各比較結果の和が蓄積される。
比較判定部131では次に、画像認識対象の画像の領域16,17,18,,,31と辞書画像の領域「2」とがそれぞれ比較器0,1,2,,,15により並列的に比較されて、比較器0,1,2,,,15による比較結果と蓄積部「14,15,16,,,29」による蓄積内容とがそれぞれ加算されて蓄積部「14,15,16,,,29」に並列的に蓄積される。蓄積部16には画像認識対象の画像の領域16,17,18,0,1,2,,,15と辞書画像の領域0,1,2,48,49,50,,,63との各比較結果の和が、蓄積部17には画像認識対象の画像の領域17,18,19,0,1,2,,,15と辞書画像の領域0,1,2,47,48,49,,,62との各比較結果の和が、蓄積部18には画像認識対象の画像の領域18,19,20,0,1,2,,,15と辞書画像の領域0,1,2,46,47,48,,,61との各比較結果の和が蓄積される。
比較判定部131は、このような処理を、辞書画像の領域「0」から「63」まで繰り返す。これによって、蓄積部0には画像認識対象の画像の領域0,1,2,,,31と辞書画像の領域0,1,2,,,31との各比較結果の和、蓄積部1には画像認識対象の画像の領域1,2,3,,,31,0と辞書画像の領域0,1,2,,,30,63との各比較結果の和、蓄積部2には画像認識対象の画像の領域2,3,4,,,31,0,1と辞書画像の領域0,1,2,,,29,62,63との各比較結果の和、、、が蓄積される。以上が第2段階処理である。第3段階処理と第4段階処理も同様である。
比較判定部131は、このようにして、第1,第2,第3,第4段階処理を順々に実行する。これによって、蓄積部0には画像認識対象の画像の領域0,1,2,,,63と辞書画像の領域0,1,2,,,63との各比較結果の和、蓄積部1には画像認識対象の画像の領域1,2,3,,,63,0と辞書画像の領域0,1,2,,,62,63との各比較結果の和、蓄積部2には画像認識対象の画像の領域2,3,4,,,63,0,1と辞書画像の領域0,1,2,,,61,62,63との各比較結果の和、、、が蓄積される。これはすなわち、蓄積部0には「元画像の状態」の画像と「元画像の状態」の辞書画像とを比較した場合の比較結果に相当する比較結果が、蓄積部1には「元画像の状態」の画像と「元画像を5.625度回転させた状態」の辞書画像とを比較した場合の比較結果に相当する比較結果が、蓄積部2には「元画像の状態」の画像と「元画像を5.625×2度回転させた状態」の辞書画像とを比較した場合の比較結果に相当する比較結果が、蓄積されたことになる。解りやすい例を挙げると、蓄積部8には「元画像の状態」の画像と「元画像を45度回転させた状態」の辞書画像とを比較した場合の比較結果に相当する比較結果が、蓄積部16には「元画像の状態」の画像と「元画像を90度回転させた状態」の辞書画像とを比較した場合の比較結果に相当する比較結果が、蓄積されたことになる。こうして、元画像の状態の画像と「極座標画像の状態」の辞書画像との比較処理を通じて、元画像の状態の画像と「元画像又は元画像を回転させた状態」の辞書画像とを比較した場合の比較結果が得られるのである。
比較判定部131では最後に、蓄積部0,1,2,,,63による蓄積内容に基づいて元画像を5.625×(0,1,2,,,63)度回転させた画像中に特定画像が存在するか否かが判定器により順々に判定される。シフトレジスタ(蓄積部)は蓄積内容をシリアルに出力することができるため、判定器は1個でも十分である。
図7の画像認識用IC101は、図9のような比較判定処理を、図21のような手順により実行する。これにより、図7の画像認識用IC101は、図9のような比較判定処理を、図8のようにして辞書画像の角度を変えて繰り返し実行したことになる。こうして、画像中に任意の角度で存在する特定画像を検出するのである。これは、図6のS2とS3の繰り返しに相当する。図7の画像認識用IC101は、1の画像につき、図9のような比較判定処理にて1回でも「存在」と判定されれば画像中から特定画像が検出された旨の検出結果を出力し、1回も「存在」と判定されなければ画像中から特定画像が検出されなかった旨の検出結果を出力する。
図7の画像認識用IC101にて、画像認識対象の画像は画像入力I/F151により画像入力端子152を介して入力されて、画像認識結果(検出結果)は画像認識結果出力I/F153により画像認識結果出力端子154を介して出力される。
なお、画像保持部122に保持されている画像の64の領域や、辞書画像保持部111に保持されている辞書画像の64の領域の全てを比較判定処理の対象とする必要はない。例えば、画像の奇数領域だけや偶数領域だけを比較判定処理の対象としてもよいし、辞書画像の奇数領域だけや偶数領域だけを比較判定処理の対象としてもよい。そのため、比較判定処理の対象とする画像の領域を限定する設定や、比較判定処理の対象とする辞書画像の領域を限定する設定が可能な回路構成となっていてもよい。これにより、比較判定処理のステップ数が削減されることになる。このような設定は、設定信号やレジスタ設定等により実現可能である。
図22は、画像認識対象の画像の領域分割の例である。図22では、直交座標表現で8×8画素でθ方向の画素数Θが32の画像が、θ方向の目盛りFが0である領域,θ方向の目盛りFが1である領域,θ方向の目盛りFが2である領域,,,というように、r方向の1ラインごとに32の領域に領域分割されている。図22には、画像認識対象の画像の領域分割の例として、θ方向の目盛りFがそれぞれ0,1,2,,,7である8個の領域が記載されている。
図23は、図21の比較判定処理を実行する比較判定部131の構成について説明するための図である。比較判定部131の蓄積部は、図23のように、加算器0,1,2,,,15とレジスタ0,1,2,,,63により構成されている。レジスタ0,1,2,,,63は、パラレル入力及びシリアル出力(図中左端から出力)でリング状のシフトレジスタを構成している。加算器は、比較器による比較結果とレジスタによる蓄積内容とを加算し、加算結果を1個先のレジスタに蓄積する。シフトレジスタは、比較処理と同時に蓄積内容を図中右方向に1bitシフトさせると共に、第1,第2,第3段階処理の終了と同時に蓄積内容を図中左方向に16bitシフトさせる。図24は比較判定部131の蓄積部の構成例を表し、図25は比較判定部131の比較器の構成例を表す。
図26は、図21の比較判定処理を実行する比較判定部131の動作について説明するための図である。
図26Aは、図21の比較判定処理を実行する前の比較判定部131を表す。レジスタは0,1,2,,,63という並び順になっており、加算器0,1,2,,,15の加算結果はそれぞれレジスタ1,2,3,,,16に蓄積される状態になっている。
図26Bは、図21の比較判定処理でまず、画像認識対象の画像の領域0,1,2,,,15と辞書画像の領域「0」とがそれぞれ比較器0,1,2,,,15により並列的に比較されて、比較器0,1,2,,,15による比較結果がそれぞれ蓄積部「0,1,2,,,15」に並列的に蓄積される際の比較判定部131を表す。図26Aから図26Bまでの間にシフトレジスタの蓄積内容が1bitシフトされたため、レジスタは63,0,1,,,62という並び順になっており、加算器0,1,2,,,15の加算結果がそれぞれレジスタ0,1,2,,,15に蓄積される状態になっている。このようにして、比較器0,1,2,,,15による比較結果がそれぞれレジスタ「0,1,2,,,15」に蓄積されるのである。
図26Cは、図21の比較判定処理で次に、画像認識対象の画像の領域0,1,2,,,15と辞書画像の領域「1」とがそれぞれ比較器0,1,2,,,15により並列的に比較されて、比較器0,1,2,,,15による比較結果と蓄積部「63,0,1,,,14」による蓄積内容とがそれぞれ加算されて蓄積部「63,0,1,,,14」に並列的に蓄積される際の比較判定部131を表す。図26Bから図26Cまでの間にシフトレジスタの蓄積内容が1bitシフトされたため、レジスタは62,63,0,,,61という並び順になっており、加算器0,1,2,,,15の加算結果がそれぞれレジスタ63,0,1,,,14に蓄積される状態になっている。このようにして、比較器0,1,2,,,15による比較結果とレジスタ「63,0,1,,,14」による蓄積内容とがそれぞれ加算されレジスタ「63,0,1,,,14」に蓄積されるのである。
図26Dは、図21の比較判定処理で次に、画像認識対象の画像の領域0,1,2,,,15と辞書画像の領域「2」とがそれぞれ比較器0,1,2,,,15により並列的に比較されて、比較器0,1,2,,,15による比較結果と蓄積部「62,63,0,,,13」による蓄積内容とがそれぞれ加算されて蓄積部「62,63,0,,,13」に並列的に蓄積される際の比較判定部131を表す。図26Cから図26Dまでの間にシフトレジスタの蓄積内容が1bitシフトされたため、レジスタは61,62,63,,,60という並びになっており、加算器0,1,2,,,15の加算結果がそれぞれレジスタ62,63,0,,,13に蓄積される状態になっている。このようにして、比較器0,1,2,,,15による比較結果とレジスタ「62,63,0,,,13」による蓄積内容とがそれぞれ加算されレジスタ「62,63,0,,,13」に蓄積されるのである。
このようにして、第1段階処理が実行される。同様にして、第2,第3,第4段階処理が実行される。なお、第1段階処理と第2段階処理との間,第2段階処理と第3段階処理との間,第3段階処理と第4段階処理との間にはそれぞれ、シフトレジスタの蓄積内容が16bitシフトされる。第4段階処理が実行された後には、蓄積内容の出力処理が実行される。
図27は、図7の画像認識用IC101により実行される画像認識処理に係るタイミングチャートである。図27AのRES_N信号はリセット信号である。これにより、画像認識用IC101がリセットされる。図27BのINIT_ACT信号は初期設定信号である。これにより、辞書画像(極座標画像の状態)が辞書画像保持部111に起動されると共に、γ補正のパラメータや比較判定処理の閾値等が設定される。図27CのIMG_IN信号は画像入力信号である。これにより、コピー機により読取原稿から読み取られた画像が入力される。図27DのAREA_SEL信号は領域選択信号である。この間に、画像保持部122の分割領域の選択処理が実行される。図27EのCOMP_ACT信号は比較信号である。この間に、画像認識対象の画像と辞書画像の比較処理が実行される。図27FのSTORE_ACT信号は蓄積信号である。この間に、上記の比較結果の蓄積処理が実行される。図27GのJUDGE_ACT信号は判定信号である。この間に、上記の蓄積内容に基づいた判定処理が実行される。図27HのSHIFT_REG信号はシフトレジスタ信号である。この間に、上記の蓄積内容のシフト処理が実行される。図中、IMG_CYCは1画像分の処理サイクルであり、AREA_CYCは1領域分の処理サイクルである。なお、図27の各信号は、画像認識用IC101の外部のCPU(コピー機に内蔵されているCPU。図7参照)による制御の下、制御部141が取り扱う。
図28は、画像入力信号に係るタイミングチャートである。図28AのCLK信号は、クロック信号である。図28BのIMG_IN信号は、図27Cの画像入力信号である。画像入力信号のパルス1個分が1画像に相当する。図28CのIMG_DATA信号は、画像データ信号である。画像データ信号のパルス1個分が1ライン分の画像データに相当する。図28DのIMG_EN信号は、画像データ信号の有効信号である。
(コピー機)
図29は、本発明の実施例のコピー機201を表す。図23のコピー機201は、撮像部211、印刷部212、操作表示部213、制御部214、通信部215等により構成されている。これらの構成部分は、システムバス221に接続されている。
撮像部211は、読取原稿から画像(画像データ)を読み取る構成部分である。撮像部211は、読取原稿に関する機構として、読取原稿のセット先となる読取原稿セット部等を備える。
印刷部212は、画像(画像データ)を印刷用紙等に印刷する構成部分である。印刷部212は、印刷用紙等に関する機構として、印刷用紙等の給紙先となる給紙部、印刷用紙等の排紙先となる排紙部等を備える。
操作表示部213は、ユーザがコピー機201に入力を行うための構成部分(操作部)であり、ユーザがコピー機201から出力を得るための構成部分(表示部)である。操作表示部213は、タッチ操作で入力を行うための構成部分(タッチ操作部)であり、画面表示で出力を得るための構成部分(画面表示部)であるタッチパネル、ボタン操作で数字入力を行うための数字ボタン、ボタン操作でスタート操作を行うためのスタートボタン、ボタン操作でリセット操作を行うためのリセットボタン等により構成される。
制御部214は、コピー機201の制御等に係る情報処理を実行する構成部分である。制御部214は、種々の情報処理を実行するCPU、上記の情報処理用のプログラム等が格納されたROM、上記の情報処理用のメモリであるRAM、上記の情報処理用のストレージであり、上記の情報処理用のプログラム等が格納されたHDD等により構成される。制御部214には、図7の画像認識用IC101が存在する。
通信部215は、コピー機201をネットワーク等に接続するための構成部分である。通信部215は、コピー機201をイーサネット(登録商標)に接続するためのNIC、コピー機201を電話回線に接続するためのMODEM等により構成される。
コピー機201では、撮像部211の読取原稿セット部に読取原稿がセットされている場合、操作表示部213のスタートボタンが押されることで、撮像部211がその読取原稿から画像を読み取り、画像認識用IC101にその画像が入力され、画像認識用IC101がその画像中に存在する特定画像を検出し、画像認識用IC101からその検出結果が出力され、画像中に特定画像が存在しない旨の検出結果を要件にして、印刷部212がその画像を印刷用紙等に印刷する。すなわち、画像中に特定画像が存在しない場合は印刷処理が実行されるものの、画像中に特定画像が存在する場合は印刷処理が実行されない。なお、印刷用紙等の給紙先は印刷部212の給紙部となり、印刷用紙等の排紙先は印刷部212の排紙部となる。