(58)【調査した分野】(Int.Cl.,DB名)
前記認識部は、前記第1の文字列及び前記第2の文字列において互いに対応する桁毎かつ前記候補文字群中の候補文字毎に前記第1の類似度群に含まれる類似度と前記第2の類似度群に含まれる類似度とを合算した値に基づく第1の計算値群を算出し、前記桁毎に前記第1の計算値群の中の最大値を抽出し、前記最大値に対応する候補文字の集合を前記第1の被写体における文字列として認識する、請求項1記載の画像処理装置。
前記認識部は、画像に写る文字列の位置に依存する第1の重み係数を前記第2の画像に写る前記第2の文字列の位置に基づいて前記第1の類似度群に含まれる各類似度に乗算し、前記第1の重み係数を前記第2の画像に写る前記第2の文字列の位置に基づいて前記第2の類似度群に含まれる各類似度に乗算する、請求項3記載の画像処理装置。
【発明を実施するための形態】
【0008】
以下、いくつかの実施の形態について、図面を参照して説明する。
(第1の実施形態)
第1の実施形態について説明する。
図1は、第1の実施形態に係る一例となる画像処理装置10の概略図である。
画像処理装置10は、倉庫や店舗の複数の棚に載せられた複数の物品(例えば段ボール箱)の在庫管理や所在地管理等に用いられる。画像処理装置10は、計算機11と、移動体12と、第1の撮影部13と、第2の撮影部14を備える。画像処理装置10は、これら全ての要素を必ず備えている必要はない。例えば、画像処理装置10は、少なくとも計算機11を備える装置であってもよい。
【0009】
計算機11は、後述するようにOCR処理により画像から文字認識を行う装置である。計算機11は、例えばPC(Personal Computer)である。なお、文字は、数字、記号、符号またはマーク等の識別コードを含む概念である。文字列は、数字、記号、符号またはマーク等の識別コードを複数桁並べたものである。
【0010】
移動体12は、画像処理装置10を何れの方向にも自律走行可能な台車である。移動体12は、直線状に並べられた棚20の延在方向と平行な方向に走行する。移動体12は、計算機11、第1の撮影部13及び第2の撮影部14を搭載する。
【0011】
第1の撮影部13及び第2の撮影部14は、対象を撮影するカメラである。なお、対象は、被写体ということもある。第1の撮影部13及び第2の撮影部14は、対象を動画像として撮影するカメラであっても、対象を静止画像として撮影するカメラであってもよい。第1の撮影部13及び第2の撮影部14は、異なる方向から同一の対象を撮影するように移動体12に固定されている。第1の撮影部13の撮影範囲及び第2の撮影部14の撮影範囲は重複する。第1の撮影部13及び第2の撮影部14の相対位置及びそれぞれの撮影方向は既知である。対象は、棚20に載せられた複数の物品に貼られているラベルの文字列である。例えば、物品21のラベルには、「000872」と記載されている。物品22のラベルには、「103371」と記載されている。ラベルに記載されている文字列は、各物品を識別するために各物品に一意に割り当てられているID(identification)情報である。一般に、あるエリアで管理されている複数の物品に貼られている全てのラベルの文字列は、同一桁かつ予め決められた文字の組み合わせである。
図1に示す例では、文字列は、6桁かつ各桁0〜9の組み合わせで構成されている。第1の撮影部13及び第2の撮影部14は、棚20に載せられた複数の物品に貼られているラベルを順次撮影する。第1の撮影部13及び第2の撮影部14は、取得した画像のデータを計算機11へ送る。
【0012】
図2は、第1の実施形態に係る一例となる画像処理装置10のブロック図である。
図2は、主として計算機11の構成を示す。計算機11は、処理部111と、記憶部112と、入力部113と、表示部114と、第1のインターフェース115と、第2のインターフェース116とを備える。
【0013】
処理部111は、計算機11の中枢部分に相当する。処理部111は、オペレーティングシステムやアプリケーションプログラムに従って、計算機11の各要素を制御する。処理部111は、取り込み部1111と、抽出部1112と、切り出し部1113と、計算部1114と、推定部1115a及び決定部1115bを含む判定部1115と、認識部1116を備える。これらの要素による処理内容は後述する。
【0014】
記憶部112は、上述のオペレーティングシステムやアプリケーションプログラムを記憶するメモリを含む。さらに、記憶部112は、処理部111による処理に必要なワークエリアとなるメモリを含む。さらに、記憶部112は、処理部111による処理に必要なデータを記憶するメモリを含む。
入力部113は、計算機11に対するコマンドを入力可能なキーボードである。
表示部114は、処理部111からの信号に基づいて映像を表示するディスプレイである。表示部114は、映像の出力部である。
第1のインターフェース115は、計算機11と第1の撮影部13とを接続する。計算機11は、第1のインターフェース115を介して第1の撮影部13から画像のデータを取り込む。
第2のインターフェース116は、計算機11と第2の撮影部14とを接続する。計算機11は、第2のインターフェース116を介して第2の撮影部14から画像のデータを取り込む。
【0015】
次に、画像処理装置10による文字認識の処理について説明する。画像処理装置10が処理する画像は、例えば第1の撮影部13及び第2の撮影部14が棚20に載せられた複数の物品に貼られているラベルを遠い位置から撮影した低解像度の画像である。そのため、第1の撮影部13による画像及び第2の撮影部14による画像は、人が見れば文字列を認識できる(読める)が、画像処理装置10による一般的なOCR処理では十分に文字認識を行えないものとする。
【0016】
図3は、第1の実施形態に係る一例となる画像処理装置10による処理のフローチャートである。
【0017】
処理部111の取り込み部1111は、画像を取り込む(Act101)。Act101では、処理部111は、第1の撮影部13が取得した第1の画像のデータ及び第2の撮影部14が取得した第2の画像のデータを第1のインターフェース115及び第2のインターフェース116を介して取り込む。記憶部112は、第1の画像のデータ及び第2の画像のデータを記憶する。第1の画像及び第2の画像には、文字認識の対象となる文字列(以下、第1の被写体という)が写る。なお、第1の画像及び第2の画像には、第1の被写体以外の文字列が写っていてもよい。
【0018】
処理部111の抽出部1112は、文字列を抽出する(Act102)。Act102では、処理部111は、第1の画像に写る全ての文字列を抽出する。同様に、処理部111は、第2の画像に写る全ての文字列を抽出する。以下では説明の簡略化のため、第1の画像に写る第1の文字列に対する処理及び第2の画像に写る第2の文字列に対する処理を示す。処理部111は、第1の画像に写る第1の文字列を抽出する。同様に、処理部111は、第2の画像に写る第2の文字列を抽出する。Act101における文字列の抽出処理は、OCR処理で用いられる任意の手法でよい。
【0019】
処理部111の切り出し部1113は、文字を切り出す(Act103)。Act103では、処理部111は、第1の文字列を構成する各文字を1文字単位で切り出す。同様に、処理部111は、第2の文字列を構成する各文字を1文字単位で切り出す。Act103における文字の切り出し処理は、OCR処理で用いられる任意の手法でよい。
【0020】
処理部111の計算部1114は、類似度を計算する(Act104)。Act104では、処理部111は、第1の文字列を構成する各文字と候補文字群中の各候補文字との類似度を算出する。これにより、処理部111は、第1の文字列を構成する各文字と候補文字群中の各候補文字との類似度で構成される第1の類似度群を算出する。つまり、処理部111は、第1の文字列の各桁において、候補文字の数に対応する数の類似度を算出する。同様に、処理部111は、第2の文字列を構成する各文字と候補文字群中の各候補文字との類似度を算出する。これにより、処理部111は、第2の文字列を構成する各文字と候補文字群中の各候補文字との類似度で構成される第2の類似度群を計算する。つまり、処理部111は、第2の文字列の各桁において、候補文字の数に対応する数の類似度を算出する。
【0021】
上述のAct104で用いられる候補文字群は、複数の候補文字で構成されている。複数の候補文字は、各物品を識別するための文字列として使用可能な予め決められた複数の文字で構成されている。例えば、複数の候補文字は0〜9の数字である。候補文字群は記憶部112に保存されている。候補文字群は、物品が管理されているエリアに応じて異なる可能性がある。そのため、記憶部112は、エリア単位で異なる候補文字群のデータを保存していてもよい。
【0022】
上述のAct104で算出される類似度は、第1の文字列を構成する各文字及び第2の文字列を構成する各文字が各候補文字に一致する可能性(確率)を示す指標である。Act104における類似度の算出手法は任意の手法でよい。なお、類似度のレンジは特に限定されない。例えば、類似度のレンジは、0〜1であっても、0〜100であってもよい。類似度は、上限値に近いほど候補文字に似ていることを示し、下限値に近いほど候補文字に似ていないことを示していても、これらの逆を示していてもよい。例えば、処理部111は、候補文字同士の依存関係がないように各類似度を算出するようにすることができる。つまり、第1の文字列の各桁において、第1の類似度群に含まれる各類似度は互いに依存関係がない。第1の文字列の桁単位で類似度を合計した値は100%に正規化されていない。第2の文字列における類似度についても同様である。つまり、第2の文字列の各桁において、第2の類似度群に含まれる各類似度は互いに依存関係がない。この場合、処理部111は、同一桁においてある候補文字の類似度を算出する際に、他の候補文字の類似度の値に影響を受けない。そのため、処理部111は候補文字同士が独立した確度の高い類似度を算出することができる。
【0023】
これとは逆に、処理部111は、候補文字同士に依存関係を持たせるように各類似度を算出するようにしてもよい。つまり、第1の文字列の各桁において、第1の類似度群に含まれる各類似度は互いに依存関係がある。第1の文字列の桁単位で類似度を合計した値は100%に正規化されている。第2の文字列における類似度についても同様である。つまり、第2の文字列の各桁において、第2の類似度群に含まれる各類似度は互いに依存関係がある。このように、第1の類似度群に含まれる各類似度及び第2の類似度群に含まれる各類似度は尤度である。この場合、処理部111は、第1の文字列を構成する各桁の文字がどの候補文字と一致する可能性が高いのかを算出することができる。同様に、処理部111は、第2の文字列を構成する各桁の文字がどの候補文字と一致する可能性が高いのかを算出することができる。
【0024】
処理部111の推定部1115aは、同一の文字列を推定する(Act105)。Act105では、第1の被写体が第1の画像及び第2の画像に存在している可能性が高いと推定する。これは、第1の撮影部13及び第2の撮影部14が異なる方向から同一の対象を撮影しているからである。
【0025】
処理部111の決定部1115bは、同一の文字列を決定する(Act106)。Act106では、処理部111は、第1の撮影部13と第2の撮影部14との位置関係、第1の画像に写る文字列の位置及び第2の画像に写る文字列の位置に基づいて第1の画像から抽出したどの文字列と第2の画像から抽出したどの文字列が同一の被写体に対応するのかを決定することができる。つまり、処理部111は、被写体単位で第1の画像から抽出した文字列と第2の画像から抽出した文字列とを対応付けることができる。これは、第1の撮影部13及び第2の撮影部14の相対位置及びそれぞれの撮影方向が既知であるからである。例えば、処理部111は、第1の撮影部13と第2の撮影部14との位置関係に基づく三角測量などを用いる。
【0026】
以上のようにAct105及びAct106では、処理部111の判定部1115は、第1の文字列の被写体及び第2の文字列の被写体が共に第1の被写体に対応すると判定する。一例として、処理部111は、第1の撮影部13と第2の撮影部14との位置関係、第1の画像に写る第1の文字列の位置及び第2の画像に写る第2の文字列の位置に基づいて第1の文字列の被写体及び第2の文字列の被写体が共に第1の被写体に対応すると判定する。なお、Act105及びAct106における処理は、Act104の後でなくても、Act102とAct103の間またはAct103とAct104の間であってもよい。
【0027】
処理部111の認識部1116は、文字認識を実行する(Act107)。Act107では、処理部111は、第1の文字列及び第2の文字列において互いに対応する桁毎かつ候補文字群中の候補文字毎に第1の類似度群に含まれる類似度と第2の類似度群に含まれる類似度とを合算した値に基づく第1の計算値群を算出する。なお、第1の計算値群は、第1の類似度群に含まれる類似度と第2の類似度群に含まれる類似度とを足し合わせた値であっても、第1の類似度群に含まれる類似度と第2の類似度群に含まれる類似度との平均値であってもよい。次に、処理部111は、桁毎に第1の計算値群の中の最大値を抽出する。次に、処理部111は、桁毎の最大値に対応する候補文字の集合を第1の被写体における文字列として認識する。以上のように、処理部111は、第1の類似度群及び第2の類似度群に基づいて第1の被写体の文字列を認識する。処理部111が第1の類似度群及び第2の類似度群の両方を用いるのは、第1の類似度群における桁毎の最大値に対応する候補文字の集合と第2の類似度群における桁毎の最大値に対応する候補文字の集合とが異なることあるからである。
【0028】
第1の実施形態によれば、画像処理装置10は、文字列のOCR処理を用いるだけでなく、上述の類似度を用いて文字認識を行うことで、低解像度の画像に写る文字列の認識精度を高めることができる。
【0029】
なお、各類似度が上述したように候補文字同士の依存関係がないように算出されている場合、画像処理装置10による文字列の認識精度はさらに高まる。これは、各類似度の確度が高いからである。
【0030】
次に、上述した画像処理装置10による文字認識の処理の具体例を
図4〜
図6を用いて説明する。
図4は、第1の実施形態に係る一例となる画像を示す図である。
図4の左図は、第1の撮影部13による第1の画像である。
図4の右図は、第2の撮影部14による第2の画像である。第1の画像及び第2の画像は、文字認識の対象となる物品21に貼られているラベルの文字列「000872」(以下、被写体Aという)及び文字認識の対象となる物品22に貼られているラベルの文字列「103371」(以下、被写体Bという)が写る。上記Act101で説明したように、処理部111は、第1の撮影部13が取得した第1の画像のデータ及び第2の撮影部14が取得した第2の画像のデータを第1のインターフェース115及び第2のインターフェース116を介して取り込む。
【0031】
Act102で説明したように、処理部111は、
図4で示した第1の画像に写る被写体Aに対応する文字列a1及び被写体Bに対応する文字列b1を抽出する。処理部111は、第2の画像に写る被写体Aに対応する文字列a2及び被写体Bに対応する文字列b2を抽出する。Act103で説明したように、処理部111は、文字列a1及び文字列b1を構成する各文字を1文字単位で切り出す。同様に、処理部111は、文字列a2及び文字列b2を構成する各文字を1文字単位で切り出す。
【0032】
図5は、第1の実施形態に係る一例となる複数の類似度マップを示す図である。類似度マップは、上述の第1の類似度群及び第2の類似度群に相当する。
図5の左上図は、文字列a1に関する類似度マップである。
図5の左下図は、文字列b1に関する類似度マップである。
図5の右上図は、文字列a2に関する類似度マップである。
図5の右下図は、文字列b2に関する類似度マップである。Act104で説明したように、処理部111は、文字列a1を構成する各文字と候補文字群中の各候補文字との類似度を算出する。これにより、処理部111は、文字列a1を構成する各文字と候補文字群中の各候補文字との類似度で構成される類似度マップを算出する。同様に、処理部111は、文字列b1に関する類似度マップ、文字列a2に関する類似度マップ及び文字列b2に関する類似度マップを算出する。類似度マップの横軸は、文字列の桁を示す。なお、文字列a1、文字列b1、文字列a2及び文字列b2の何れも6桁である。縦軸は、候補文字を示す。候補文字は、0〜9の10個である。そのため、各類似度マップは、60個の類似度で構成されている。
【0033】
図5に示す各類似度マップは、上述したように各桁において候補文字同士の依存関係がないように各類似度が算出された例である。
図5の類似度は、1.0に近いほど候補文字に似ていることを示し、0.0に近いほど候補文字に似ていないことを示す。
【0034】
図5の各類似度マップの下には、認識結果が示されている。認識結果は、桁毎の類似度の最大値に対応する候補文字を並べた集合である。Act105及びAct106で説明したように、処理部111は、文字列a1の被写体及び文字列a2の被写体が共に被写体Aに対応すると判定する。しかしながら、文字列a1の認識結果「000872」は、文字列a2の認識結果「008872」と異なる。同様に、処理部111は、文字列b1の被写体及び文字列b2の被写体が共に被写体Bに対応すると判定する。しかしながら、文字列b1の認識結果「103371」は、文字列b2の認識結果「708371」と異なる。そのため、Act107で説明したように、処理部111は、文字列a1及び文字列a2において互いに対応する桁毎かつ候補文字群中の候補文字毎に文字列a1の類似度マップに含まれる類似度と文字列a2の類似度マップに含まれる類似度とを合算した値に基づく最終類似度マップを算出する。最終類似度マップは、上述の第1の計算値群に相当する。
【0035】
図6は、第1の実施形態に係る一例となる最終類似度マップを示す図である。
図6に示す最終類似度マップは、文字列a1の類似度マップに含まれる類似度と文字列a2の類似度マップに含まれる類似度との平均値で構成されている。処理部111は、桁毎に最終類似度マップの中の最大値を抽出する。次に、処理部111は、桁毎の最大値に対応する候補文字の集合(以下、認識結果という)「000872」を被写体Aの文字列として認識する。同様に、処理部111は、文字列b1の類似度マップと文字列b2の類似度マップに基づいて被写体Bにおける文字列を認識する。画像処理装置10は、被写体の文字列をOCR処理だけでは正確に認識できない可能性があるが、上述の類似度を用いることにより高い精度で被写体の文字列を認識することができる。
【0036】
なお、Act107において、処理部111は、画像に写る文字列の位置に依存する第1の重み係数を第2の画像に写る第2の文字列の位置に基づいて第1の類似度群に含まれる各類似度に乗算してもよい。同様に、処理部111は、第1の重み係数を第2の画像に写る第2の文字列の位置に基づいて第2の類似度群に含まれる各類似度に乗算するようにしてもよい。例えば、第1の係数は、画像の端の重みを低くし、中央に近づくにつれ重みを高くするような係数である。被写体が同一であっても、その被写体が写る位置は第1の画像と第2の画像とで異なる。画像の端に写る文字列は、中央部分に写る文字列よりも歪んでいる可能性が高い。そのため、画像の端に写る文字列による類似度群は、画像の中央部分に写る文字列による類似度群よりも信頼度が低い。画像処理装置10は、第1の重み係数を用いて類似度群を補正することにより、より高い精度で被写体の文字列を認識することができる。
【0037】
なお、Act107において、処理部111は、画像に写る文字列の画素情報に依存する第2の重み係数を第2の画像に写る第2の文字列の画素情報に基づいて第1の類似度群に含まれる各類似度に乗算してもよい。同様に、処理部111は、第2の重み係数を第2の画像に写る第2の文字列の画素情報に基づいて第2の類似度群に含まれる各類似度に乗算してもよい。例えば、画素情報は、コントラストである。例えば、第2の係数は、コントラストの低い部分の重みを低くし、コントラストが高くなるにつれ重みを高くするような係数である。第1の撮影部13及び第2の撮影部14は撮影位置及び方向が異なるので、第1の画像及び第2の画像のコントラストは異なる。さらに、同一の画像内であってもコントラストが異なる場合もある。コントラストの低い部分に写る文字列による類似度群は、コントラストの高い部分に写る文字列による類似度群よりも信頼度が低い。処理部111は、コントラストに応じて画像単位、文字列単位及び文字列を構成する文字単位で第2の重み係数を変えることができる。画像処理装置10は、第2の重み係数を用いて類似度群を補正することにより、より高い精度で被写体の文字列を認識することができる。
【0038】
なお、Act107において、処理部111は、最終類似度マップに基づく認識結果を所定のルールによる意味解析処理によって修正してもよい。これにより、画像処理装置10は、より高い精度で被写体の文字列を認識することができる。
【0039】
なお、画像処理装置10は、3以上の撮影部からの画像から算出した3以上の類似度群に基づいて被写体の文字列を認識するようにしてもよい。これにより、画像処理装置10は、より高い精度で被写体の文字列を認識することができる。
【0040】
(第2の実施形態)
第2の実施形態について説明する。ここでは、第1の実施形態と相違する点を説明し、同様である点の説明は省略する。
図7は、第2の実施形態に係る一例となる画像処理装置10の概略図である。第2の実施形態に係る画像処理装置10は、第1の実施形態に係る画像処理装置10から第2の撮影部14及び第2のインターフェース116を除いた装置に相当する。つまり、第2の実施形態に係る画像処理装置10は、対象を撮影する撮影部を1つのみ備えている。
【0041】
画像処理装置10による文字認識の処理は、
図3のAct101、Act105及びAct106において第1の実施形態と異なる。
【0042】
Act101において、処理部111は、第1の撮影部13が取得した第1の画像及び第2の画像のデータを第1のインターフェース115を介して取り込む。第1の画像及び第2の画像は、第1の撮影部13が異なる位置から第1の被写体を写した画像である。
【0043】
Act105及びAct106において、処理部111の判定部1115は、第1の文字列の被写体及び第2の文字列の被写体が共に第1の被写体に対応すると判定する。一例として、処理部111は、第1の撮影部13の移動量、第1の画像に写る第1の文字列の位置及び第2の画像に写る第2の文字列の位置に基づいて第1の文字列の被写体及び第2の文字列の被写体が共に前記第1の被写体に対応すると判定する。処理部111は、第1の撮影部13の移動量と、第1の画像に写る第1の文字列の位置と第2の画像に写る第2の文字列の位置との移動量が一致していれば、第1の文字列の被写体及び第2の文字列の被写体が共に前記第1の被写体に対応すると判定することができる。なお、処理部111は、第1の撮影部13の移動量に代えて、第1の画像及び第2の画像に写る任意の目印の移動量を用いてもよい。
【0044】
第2の実施形態は、上述の第1の実施形態と同様の効果を得ることができる。
【0045】
動作を実行する主体は例えば、ハードウェア、ハードウェアとソフトウェアとの複合体、ソフトウェア、及び実行中のソフトウェアなどといった、コンピュータに係る主体である。動作を実行する主体は例えば、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、スレッド、プログラムおよびコンピュータであるがこれらに限るものではない。例えば、画像処理装置やそこで実行されるアプリケーションが動作を実行する主体であってもよい。プロセスやスレッドに、動作を実行する主体を複数演じさせてもよい。動作を実行する主体が1つの画像処理装置内にあってもよいし、複数の画像処理装置へ分配されたかたちであってもよい。
【0046】
装置内部に以上説明した機能が予め記録されていてもよいし、同様の機能をネットワークから装置にダウンロードしてもよいし、同様の機能を記録媒体に記憶させたものを装置にインストールしてもよい。記録媒体としては、ディスクROMやメモリカード等プログラムを記憶でき、かつ装置が読み取り可能な記録媒体であれば、その形態は何れの形態であっても良い。またこのように予めインストールやダウンロードにより得る機能は装置内部のOS(オペレーティング・システム)等と協働してその機能を実現させるものであってもよい。
【0047】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。