説明

被対象認識装置および被対象認識方法

【課題】バーコードの認識処理を効率良く、高精度で実行することができるバーコード認識装置およびバーコード認識方法を提供する。
【解決手段】バーコード認識装置1は、画像インターフェース11、画像分析部12、画像変換部13、バー認識部14などを有する。画像インターフェース11は、カメラ2により撮影したバーコードを含む画像を取得する。画像分析部12は、カメラ2から取得した入力画像における特徴を分析し、その分析結果に基づいて入力画像を認識処理用の画像に変換するための画像変換方法を決定する。画像変換部13は、画像分析部12により決定された画像変換方法で入力画像を認識処理用の画像に変換する。バー認識部14は、画像変換部13により得られた認識処理用の画像に対してバーコードの認識処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、たとえば、紙葉類、文書あるいは物品など媒体に付与されている、文字、記号あるいはバーコードなどの検知対象を認識する被対象認識装置、および、上記被対象認識装置などに適用されている被対象認識方法などに関する。
【背景技術】
【0002】
従来、紙葉類、文書あるいは物品などを処理するシステムでは、バーコード認識処理あるいは文字認識処理(OCR)が用いられているものがある。たとえば、紙葉類、文書あるいは物品などの区分対象物を区分処理する区分システムには、区分対象物にプリントされている区分情報を示す文字、記号あるいはバーコードを認識して区分処理を行うものがある。また、郵便物を区分する区分システムでは、文字あるいは記号などで示されている宛先情報を文字認識処理により認識し、認識結果として得られた宛先情報をバーコード化して郵便物にプリントする運用形態が実用化されている。すなわち、上記のような区分システムには、文字あるいは記号等を認識する文字認識装置、あるいは、バーコードを認識するためのバーコード認識装置が搭載される。
たとえば、上記のようなバーコード認識装置では、カメラにより撮影されたバーコードのプリント領域を含む画像からバーコードを認識する認識処理(バーコード認識処理)を行う。また、上記のような文字認識装置では、カメラにより撮影された文字あるいは記号の記載領域を含む画像から文字あるいは記号を認識する認識処理(文字認識処理)を行う。これらのような検知対象の認識処理を行うための認識プログラムは、通常、設計段階において、所定の階調数の画像を処理対象とするようになっている。一方、文字、記号の記載領域あるいはバーコードのプリント面を撮影するためのカメラは、近年、撮影性能が向上してきている。たとえば、カメラが撮影する画像は、カメラの性能が向上するのに伴って、階調数などの情報量が多い画像になってきている。
【0003】
このような状況では、認識処理の対象となる画像を撮影するためのカメラを高階調な画像を撮影するカメラに変更する場合、カメラが撮影する高階調の画像と低階調の画像を処理する既存の認識プログラムとを効率的に協調させるのが課題となる。たとえば、既存の認識プログラムをカメラが撮影する高階調の画像を処理するものに変更することが考えられる。この場合、認識プログラム等の改造に手間がかかるとともに、情報量の多い画像を処理対象とするために改造後の認識処理自体が重くなってしまう傾向がある。また、認識処理の前段階で、カメラが撮影した高階調の画像を所定の変換方式により認識プログラムに合わせた低階調の画像に変換することも考えられる。この場合、カメラの性能が向上したにもかかわらず、認識処理の精度向上が望めない。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2005−45606号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
この発明の一形態では、検知対象の認識処理を効率良く、高精度で実行することができる被対象認識装置および被対象認識方法を提供することを目的としている。
【課題を解決するための手段】
【0006】
この発明の一形態としての被対象認識装置は、検知対象の画像を含む入力画像を取得する画像取得部と、前記画像取得部により取得した入力画像に対して検知対象の認識処理を行う第1の検知対象認識部と、前記第1の検知対象認識部による検知対象の認識が失敗した場合、前記第1の検知対象認識部における検知対象の認識処理の過程で得られた情報に基づいて前記入力画像を認識処理用の画像に再変換するための画像変換方法を決定する画像分析部と、前記画像分析部により決定した画像変換方法で前記入力画像を認識処理用の画像に変換する画像変換部と、前記画像変換部により得られた認識処理用の画像に対して検知対象の認識処理を行う第2の検知対象認識部とを有する。
【0007】
この発明の一形態としての被対象認識方法は、被対象認識装置に用いられる方法であって、検知対象の画像を含む入力画像を取得し、前記入力画像に対して検知対象を認識する第1の認識処理を行い、前記第1の認識処理による検知対象の認識が失敗した場合、前記第1の認識処理の過程で得られた情報に基づいて前記入力画像を認識処理用の画像に変換するための画像変換方法を決定し、前記決定した画像変換方法で前記入力画像を認識処理用の画像に変換し、前記画像変換方法による画像変換で得られた認識処理用の画像に対して検知対象を認識する第2の認識処理を行う。
【図面の簡単な説明】
【0008】
【図1】図1は、バーコード認識装置の構成例を示す図である。
【図2】図2は、バーコード認識装置が適用された区分システムの概略構成例を示す図である。
【図3】図3は、カメラで撮像した画像の例を示す図である。
【図4】図4は、画像変換処理の一例を説明するための図である。
【図5】図5は、第1〜第5の画像変換処理の特性(変換テーブル)を示す図である。
【図6】図6(a)〜(e)は、第1〜第5の画像変換処理により得られる画像の例を示す図である。
【図7】図7は、バーコード認識装置における第1の処理例の流れを説明するためのフローチャートである。
【図8】図8は、4096階調の入力画像の全画素に対する濃度ヒストグラムの例を示す図である。
【図9】図9は、パーセンタイル方式により判定される媒体濃度値を説明するための図である。
【図10】図10は、媒体濃度値に応じた変換テーブルの例を説明するための図である。
【図11】図11は、バーコード認識装置における第2の処理例の流れを説明するためのフローチャートである。
【図12】図12は、パーセンタイル方式により判定されるバー濃度値を説明するための図である。
【図13】図13は、バー濃度値に応じた変換テーブルの例を説明するための図である。
【図14】図14は、バーコード認識装置における第3の処理例の流れを説明するためのフローチャートである。
【図15】図15は、バーコード認識装置における第4の処理例の流れを説明するためのフローチャートである。
【図16】図16は、分離閾値を基準とした変換テーブルの例を説明するための図である。
【図17】図17は、バーコード認識装置における第5の処理例の流れを説明するためのフローチャートである。
【発明を実施するための形態】
【0009】
以下、この発明の実施の形態について図面を参照して説明する。
以下の実施の形態では、被対象認識装置および被対象認識方法の例として、バーコード認識装置およびバーコード認識方法について説明する。ただし、以下に説明するバーコード認識装置およびバーコード認識方法は、被対象認識装置および被対象認識方法の他の例としての、文字認識装置および文字認識方法についても同様に適用可能である。
【0010】
図1は、この発明の実施の形態に係るバーコード認識装置1の構成例を示す図である。
ここでは、バーコード認識装置1の例として、媒体としての紙葉類におけるプリント面に蛍光インクでプリントされたバーコードを認識するものであることを想定するものとする。
図1に示す例では、上記バーコード認識装置1は、画像インターフェース11、画像分析部12、画像変換部13、バー認識部(検知対象認識部)14、フィードバック部15、出力インターフェース16を有している。
【0011】
上記バーコード認識装置1は、被対象認識装置の一例である。上記被対象認識装置としてのバーコード認識装置1は、たとえば、各種のプログラムにより情報処理を行う機能を有する電子計算機(コンピュータ)などにより実現されるものである。上記バーコード認識装置1としてのコンピュータは、上記画像インターフェース11に対応する画像入力用のインターフェース、出力インターフェース16に対応する認識結果を出力するためのインターフェース、および、各種の処理を実行するための制御部などにより構成される。上記バーコード認識装置1としてのコンピュータの制御部は、CPU、RAM、ROMおよび書換え可能な不揮発性メモリなどにより構成される。このような制御部では、上記CPUは、RAMなどを作業用のメモリとして、ROMあるいは不揮発性メモリに記憶されている種々のプログラムを実行することにより種々の処理を実現している。
【0012】
たとえば、バーコード認識装置1としてのコンピュータの制御部は、画像分析用のプログラムを実行することにより画像分析部12として機能する。また、バーコード認識装置1としてのコンピュータの制御部は、画像変換用のプログラムを実行することにより画像変換部13として機能する。バーコード認識装置1としてのコンピュータの制御部は、バーコード認識処理用のプログラムを実行することによりバー認識部14として機能する。バーコード認識装置1としてのコンピュータの制御部は、フィードバック処理用のプログラムを実行することによりフィードバック部15として機能する。なお、上記画像分析部12、画像変換部13、バー認識部14およびフィードバック部15は、集積回路などのハードウエアにより実現するようにしてもよい。
【0013】
また、上記バーコード認識装置1には、上記カメラ2が接続されている。上記カメラ2は、紙葉類においてバーコードがプリントされている面の画像を読取るものである。たとえば、蛍光インクで紙葉類にプリントされているバーコードを認識する形態では、上記カメラ2は、蛍光スキャナおよび照明などにより構成される。この場合、照明は、紙葉類のバーコードがプリントされている面に対して、蛍光インクに含まれる蛍光体を励起させるための光を照射する。たとえば、上記照明は、蛍光灯あるいはLEDで構成される。上記蛍光スキャナは、上記照明からの光が照射される紙葉類のバーコードがプリントされている面から発光される蛍光を受光する。つまり、上記蛍光スキャナは、紙葉類の面に蛍光インクでプリントされているバーコードを画像情報(蛍光画像)として取得する。上記蛍光スキャナにより読取った蛍光画像は、上記バーコード認識装置1の画像インターフェース(画像取得部)11へ供給される。
【0014】
また、上記カメラ2は、上記バーコード認識装置1内のバー認識部14が処理対象とする画像よりも情報量の多い画像を撮影するものとする。たとえば、上記カメラ2は、バー認識部14が処理対象とする画像の階調(たとえば、8bitの画像)よりも高階調の画像(例えば、12bitの画像、16bitの画像)を撮影するものである。なお、以下の説明では、主に、上記カメラ2が撮影する画像(入力画像)が4096階調の12bit画像であり、上記バー認識部14が処理対象とする画像(認識処理用の画像)が256階調の8bit画像であることを想定するものとする。
【0015】
なお、上記画像分析部12あるいは上記画像変換部13は、上記カメラ2に設けるようにしても良い。この場合、バーコード認識装置1には、上記カメラによる画像変換後の画像(8bitの画像)が画像インターフェースを介してバー認識部に供給されるようにすれば良い。また、このような形態は、たとえば、上記カメラ2内の制御部が、画像分析用のプログラムを実行することにより上記画像分析部12と同様な機能を実現したり、画像変換用のプログラムを実行することにより上記画像変換部13と同様な機能を実現したりできる。
【0016】
上記画像インターフェース11は、検知対象としてのバーコードの画像を含む認識対象となる画像(以下、単に、入力画像とも称する)を取得する画像取得部として機能するものである。すなわち、上記画像インターフェース11は、上記カメラ2により撮像した画像を入力するためのインターフェースである。上記画像インターフェース11により上記カメラ2から取得した入力画像は、上記画像分析部12および上記画像変換部13に供給されるようになっている。
【0017】
上記画像分析部12は、上記画像インターフェース11により取得した上記カメラ2が撮影した画像(入力画像)を分析し、画像変換方法を決定する処理を行うものである。すなわち、上記画像分析部12は、入力画像における特徴を判定(推定)する処理と、入力画像を認識処理用の画像に変換するための画像変換方法を決定する処理とを行う。また、上記画像分析部12は、入力画像を認識処理用の画像に変換するための変換方法を示す情報を上記画像変換部13へ供給するようになっている。なお、上記画像分析部12は、第1、第2の画像分析部に相当している。
【0018】
図1に示す例において、上記画像分析部12は、濃度値推定部21、媒体濃度推定部23、バー濃度推定部24、および、変換方法決定部26を有している。
【0019】
上記濃度値推定部21、上記バー濃度推定部24および上記媒体濃度推定部23は、それぞれ入力画像における特徴を判定(推定)する処理を行うものである。たとえば、上記濃度値推定部21は、入力画像における特徴として、入力画像における最頻濃度値、平均濃度値、パーセンタイル方式による濃度値などを判定するものである。また、上記バー濃度推定部24は、入力画像における検知要素画像としての検知要素の濃度値を判定するものである。すなわち、上記バー濃度推定部24は、入力画像における特徴として、入力画像における検知対象としてのバーコードを構成する検知要素画像としてのバー画像の濃度値を判定するものである。上記媒体濃度推定部23は、入力画像における背景画像としての媒体の濃度値を判定するものである。
【0020】
なお、上記濃度値推定部21、上記バー濃度推定部24および上記媒体濃度推定部23は、画像変換方法を決定するための情報を判定するものである。このため、上記濃度値推定部21、上記バー濃度推定部24、および、上記媒体濃度推定部23は、何れかを選択的に設けるようにしても良い。たとえば、入力画像全体から得られる特徴(最頻濃度値、平均濃度値、パーセンタイル方式による濃度値など)に基づいて画像変換方法を決定する場合、上記画像分析部12は、上記濃度値推定部21が設けられるようにすれば良い。また、入力画像における各バーの濃度値と媒体の濃度値との組合せに基づいて画像変換方法を決定する場合、上記画像分析部12には、上記バー濃度推定部24と上記媒体濃度推定部23とを設けるようにすれば良い。
【0021】
上記変換方法決定部26は、入力画像を認識処理用の画像に変換するための画像変換方法を決定するものである。すなわち、上記変換方法決定部26は、上記濃度値推定部21、バー濃度推定部41あるいは媒体濃度推定部42により得られる入力画像における特徴の分析結果に基づいて、入力画像を認識処理用の画像に変換するための画像変換方法を決定する。たとえば、上記バー認識部14が処理対象とする認識処理用の画像が8bitで、かつ、上記カメラ2が撮影する入力画像が12bitである場合、上記変換方法決定部22は、入力画像の特徴に基づいて12bitの入力画像を8bitの画像に変換するための画像変換方法を決定する。上記変換方法決定部22により決定された画像変換方法を示す情報は、上記画像変換部13に供給されるようになっている。
【0022】
上記画像変換部13は、上記画像インターフェース11により取り込まれる入力画像を上記バー認識部14が処理対象とする認識処理用の画像に変換するものである。上記画像変換部13は、種々の変換方法で画像変換処理を行う機能を有している。上記画像変換部13は、上記画像分析部12により決定された画像変換方法で入力画像を認識処理用の画像に変換する。なお、上記画像変換部13による画像変換処理については、後で詳細に説明するものとする。
【0023】
上記バー認識部14は、検知対象認識部として機能し、検知対象としてのバーコードの認識処理を行うものである。上記バー認識部14は、上記画像変換部13から供給される認識処理用の画像(変換後の画像)に含まれるバーコードを認識する処理を行うものである。上記バー認識部14は、たとえば、バー検出部、復号部及び判定部などにより構成される。なお、上記バー認識部14は、第1、第2のバー認識部に相当している。
【0024】
上記バー検出部は、検知対象の検出部として機能し、検知対象としてのバーコードを構成する各バーを検出する処理を行う。上記バー検出部は、上記画像変換部13から供給される認識処理用の画像からバーコードを構成する各バーをバー候補として検出する。上記バー検出部は、検出した各バーに対して種類を判別する。上記バー検出部は、バーコードの仕様に従って、各バーの長さおよびバーコード全体における相対的な位置などに基づいて、各バーの種類を判別する。また、上記バー検出部は、検出した各バー候補に位置などに基づいてバーコード全体の領域をバーコード領域の候補として検出する機能も有している。
【0025】
たとえば、上記バー検出部では、以下の手順により各バーの検出および認識を行う。
上記画像変換部13から8bit画像が供給されると、上記バー検出部は、当該8bit画像において濃度値が所定の閾値を超える画素を抽出する。
濃度値が所定の閾値を超える画素を抽出すると、上記バー検出部は、抽出した画素が固まって存在する領域をバー候補として選出する。
バー候補を選出すると、上記バー検出部は、各バー候補が横方向(各バー候補の長辺方向に直交する方向)に並んでいる部位をバーコード領域として抽出する。
バーコード領域を抽出すると、上記バー検出部は、バーコード領域において各バー候補の縦方向(各バー候補の長辺方向)の中心位置を判定(推定)する。
【0026】
縦方向の中心位置を判定すると、上記バー検出部は、各バー候補をコード化する。すなわち、上記バー検出部は、各バー候補について、上記中心位置を基準にバーの種類を判定し、その判定結果をコード化する。たとえば、認識対象とするバーコードがアセンダバー、ディセンダーバー、ロングバー、タイミングバーの4種類のバーを並べたものである場合、上記バー検出部は、各バー候補がどの種類のバーであるかを判定する。すなわち、上記バー検出部は、中心位置より上にバーが形成されているバー候補をアセンダバーと判定し、中心位置より下にバーが形成されているバー候補をディセンダバーと判定し、中心を基準として上下に長いバーが形成されているバー候補をロングバーと判定し、中心を基準に短いバーが形成されているバー候補をタイミングバーと判定する。
上記バー検出部は、各バー候補の種類を判定すると、各バー候補の判定結果をコード化する。上記バー検出部は、各バー候補の並び順に、コード化した各バー候補の判定結果を並べた情報をバーコードの検出結果として復号部へ供給する。
【0027】
上記復号部は、上記バー検出部により検出されたバーコードを復号化するものである。上記復号部は、上記バー検出部によるバーコードの検出結果としての各バーの種類を示す情報及び各バーの並びを示す情報に基づいてバーコードを復号する。また、上記復号部は、後述する誤り訂正符号に基づいて誤りを訂正する機能を有していても良い。この場合、上記復号部は、上記バー検出部による検出結果に基づいてバーコードが示す情報を復号化すると共に、復号化された情報を誤り訂正符号に基づく誤り訂正処理により訂正する。
【0028】
上記判定部は、復号部によるバーコードの復号結果(バーコードの認識結果)を有効とするか否かを判定する。たとえば、上記判定部は、バーコードの認識結果が所定桁数の情報であるか否かにより当該認識結果が有効か否かを判定する。また、上記判定部は、図示しない辞書データベースに記憶されている辞書データとバーコードの認識結果とを比較し、辞書データとして存在する認識結果を有効と判定するようにしても良い。上記判定部は、バーコードの復号結果が有効であると判定した場合、上記復号部により得られた復号結果をバーコードの認識結果として上記出力インターフェース16へ出力する。また、上記判定部は、バーコードの復号結果が有効でないと判定した場合、上記復号部により得られた復号結果、あるいは、上記バー検出部によるバーの検出結果などをフィードバック部15へ供給する。
【0029】
なお、被対象認識装置としての上記バーコード認識装置1を文字認識装置に適用する場合、上記バー認識部14は、所定の認識プログラムにより文字あるいは記号を認識する文字認識部に相当するものである。この場合、上記バー検出部と上記復号部とは、文字候補を検出して各文字候補を認識する処理部に相当し、上記判定部は、文字の認識結果が有効であるか否かを判定する処理部に相当するものと考えれば良い。
【0030】
上記フィードバック部15は、上記バー認識部14による認識処理により得られた情報を画像分析部12へフィードバックするものである。ここで、上記フィードバック部15は、上記バー認識部14による認識処理において得られた情報のうち画像分析に活用できる情報を画像分析部12へフィードバックするものとする。たとえば、上記フィードバック部15は、上記バー認識部14のバー検出部により得られたバー候補の情報に基づいてバーの濃度と背景の濃度との分離閾値を算出し、その算出した分離閾値を画像分析部12にフィードバックする。この場合、上記画像分析部12では、上記フィードバック部15から供給される情報に基づいて画像を再度分析する処理を行う。この処理については、後で詳細に説明するものとする。
【0031】
上記出力インターフェース16は、上記バー認識部14により得られたバーコードの認識結果を外部へ出力するためのインターフェースである。例えば、上記出力インターフェース16は、上記バー認識部14の判定部によりバーコードの復号結果が有効である判定された場合、上記復号部により得られた復号結果をバーコードの認識結果として外部へ出力する。また、上記出力インターフェース16は、上記バー認識部14の判定部により有効でない判定された場合、上記フィードバック部15によるフィードバック処理を行わないならば、バーコードの認識が失敗した旨を外部へ出力する。
【0032】
図2は、上記バーコード認識装置1が適用された区分システムの概略構成を示す図である。
図2に示す区分システムは、物品(たとえば紙葉類)にプリントされているバーコードに基づいて物品を区分処理するシステムである。なお、ここでは、区分処理の対象となる物品として、第1面に蛍光インクで区分先を示す情報(区分情報)がバーコードがプリントされている紙葉類を想定して説明するものとする。
図2に示す区分システムは、制御装置31、供給装置32、搬送装置33、区分装置34、カメラ2、バーコード認識装置1などにより構成されている。図2に示す構成例において、上記制御装置31には、供給装置32、搬送装置33、区分装置34およびバーコード認識装置1などが接続されている。
【0033】
上記制御装置31は、区分システムの全体の制御を司るものである。上記制御装置31は、たとえば、CPU、各種メモリ、各種インターフェースなどを有する電子計算機などにより構成される。上記制御装置31は、メモリに記憶されているプログラムをCPUが実行することにより種々の処理を実行する機能を有している。たとえば、上記制御装置31は、各種インターフェースにより各部と接続して、メモリに記憶されている制御プログラムに基づいて各部の動作制御などを行う。また、上記制御装置31には、オペレータに対して案内を表示したり、オペレータから操作指示が入力されたりする図示しないオペレーティングパネルなども接続されている。
【0034】
上記供給装置32には、区分処理の対象となる紙葉類が所定の方向に揃えてセットされる。上記供給装置32は、セットされている紙葉類を1通づつ取出し、上記搬送装置33の搬送路へ供給する。上記搬送装置33は、上記制御装置31による制御に基づいて各紙葉類を搬送するものである。たとえば、上記搬送装置33は、上記供給装置32により順次取り出される各紙葉類を一定の搬送速度で搬送するようになっている。
【0035】
上記搬送装置33により搬送される紙葉類の第1面の画像は、上記カメラ2により撮影されるようになっている。上記カメラ2は、上述したように、照明および蛍光スキャナなどにより構成され、紙葉類の第1面に蛍光インクでプリントされているバーコードを含む画像を撮像するようになっている。上記バーコード認識装置1は、上述したような構成により、上記カメラ2で撮像された画像に対してバーコードの認識処理を行う。上記バーコード認識装置1によるバーコードの認識結果は、上記制御装置31へ供給される。上記制御装置31は、上記バーコード認識装置1によるバーコードの認識結果に基づいて、上記搬送装置33および上記区分装置34を制御することにより紙葉類を区分する処理を行う。
【0036】
上記区分装置34は、紙葉類を区分して集積するための複数の区分ポケットを有している。たとえば、上記区分装置34は、複数段および複数列に区画された複数の区分ポケット、複数のゲート機構、および、分岐搬送路などを有している。この場合、上記区分装置34は、上記制御装置31からの制御信号に従って、各ゲート機構などを制御することにより所望の区分ポケットへ各紙葉類を搬送し、集積する。
【0037】
次に、上記カメラ2により撮像される画像について説明する。
本実施の形態では、蛍光インクでプリントされたバーコードを認識することを想定している。このため、上記カメラ2としての蛍光スキャナが撮像する画像は、バーの部分が明るく、背景が暗い画像となるのが予測される。たとえば、図3は、上記カメラ2で撮像した画像の例を示す図である。図3に示す画像では、バーが明るく、背景(媒体)が暗くなってる。図3に示すように、バーと背景とが明確に区別できるような画像では、バーを確実に抽出することができるため、バーコードの認識精度が高くなる。これに対して、バーと背景とが共に明るかったり、バーと背景とが共に暗かったりすると、バーの検出が困難になるため、バーコードの認識精度が低くなる。
【0038】
上記バーコード認識装置1では、画像分析部12がカメラ2により撮像された画像(入力画像)の特徴を分析し、その分析結果に基づいて画像変換部13が入力画像をバーコードの認識精度が高くなるような画像に変換(たとえば、バーが検出しやすい画像に変換)する処理を行うものである。なお、ここでは、カメラ2が12bit画像を撮影し、バー認識部が8bit画像に対してバーコード認識処理を行うことを想定している。つまり、本実施の形態では、入力画像の特徴に基づいて、12bitの入力画像を8bitの認識用の画像に変換することを想定している。
【0039】
次に、上記画像変換部13における画像変換処理について説明する。
図4は、画像変換処理の一例を説明するための図である。図4に示す例では、各画素の濃度値(輝度値)が0〜4095までの値で示される12bit画像(4096階調の画像)を各画素の濃度値(輝度値)が0〜255までの値で示される8bit画像(256階調の画像)に線形変換するものである。図4では、数値が高ければ高いほど明るく、数値が低ければ低いほど暗いことを示している。以下、本実施の形態では、図4に示すように、濃度値が高ければ高いほど明るい画素であるものとする。
【0040】
図4に示すような画像変換では、12bitレンジの画像をむらなく、8bitレンジの画像に変換できる。しかしながら、図4に示すような画像変換では、バーの検出精度などのバーコードの認識精度の向上を期待することができない。すなわち、12bit画像においてバーを構成する各画素の濃度値と背景を構成する各画素の濃度値との差が小さい場合(つまり、バーと背景とが共に明るい場合、あるいは、バーと背景とが共に暗い場合)、図4に示すような画像変換により得られる8bit画像では、バーと背景とが区別し難くなる可能性がある。これは、12bit画像における背景とバーとの濃度差が小さい場合、12bit画像から8bit画像に変換される際に、その濃度差がさらに小さくなったり、無くなったりする可能性があるためである。
【0041】
以下、カメラ2が撮影した画像(入力画像とも称する)を認識処理用の画像に変換するための処理例として、第1〜第5の処理例について説明する。
まず、第1の処理例について説明する。
この第1の処理例では、4096階調の12bit画像全体における特徴(濃度値の分布)に基づいて画像変換方法を決定するものとする。また、第1の処理例では、上記画像変換部13は、12bit画像を8bit画像に変換する方法として、以下のような5種類の画像変換処理(第1〜第5の画像変換処理)を行う機能を有しているものとする。ここで、第1〜第5の画像変換処理の例について説明する。
図5は、第1〜第5の画像変換処理の特性(変換テーブル)を示す図である。また、図6は、第1〜第5の画像変換処理により得られる画像の例を示す図である。
【0042】
(a)第1の画像変換処理は、12bit画像において濃度値が0〜255の画素を256階調の画素とする8bit画像に線形変換する。この場合、12bit画像における濃度値が256以上の画素は濃度値が255に変換される。この第1の画像変換処理は、図5に示す特性aに従った変換処理である。この第1の画像変換処理では、12bit画像において濃度値が0〜255の各画素による階調変化を強調した明るい8bit画像(256階調の画像)が得られる。たとえば、第1の画像変換処理では、図6(a)に示すような明るい画像が得られる。従って、第1の画像変換処理は、濃度値が255未満の画素が多い入力画像(全体が暗い画像)に対する画像変換処理に有効であると考えられる。特に、上記第1の画像変換処理は、4096階調の入力画像における背景の画像を構成する各画素の濃度分布とバーの画像を構成する各画素の濃度分布との差異が濃度値0〜255のレンジで強調できる場合に効果的であると考えられる。
【0043】
(b)第2の画像変換処理は、12bit画像において濃度値が0〜511の各画素を256階調の8bit画像に線形変換する。この場合、12bit画像における濃度値が512以上の各画素の濃度値は255に変換される。この第2の画像変換処理は、図5に示す特性bに従った画像変換処理である。この第2の画像変換処理では、12bit画像(4096階調の画像)において濃度値が0〜511の各画素による階調変化を強調した8bit画像(256階調の画像)が得られる。たとえば、第2の画像変換処理では、図6(b)に示すような画像が得られる。従って、第2の画像変換処理は、濃度値が511未満の画素が多い入力画像に対する画像変換処理に有効であると考えられる。すなわち、上記第2の画像変換処理は、4096階調の入力画像における背景画像を構成する各画素の濃度分布とバーの画像を構成する各画素の濃度分布との差異が濃度値0〜511のレンジで強調できる場合に効果的であると考えられる。
【0044】
(c)第3の画像変換処理は、12bit画像において濃度値が0〜1023の各画素を256階調の8bit画像に線形変換する。この場合、12bit画像における濃度値が1024以上の各画素の濃度値は255に変換される。この第3の画像変換処理は、図5に示す特性cに従った画像変換処理である。この第3の画像変換処理では、12bit画像(4096階調の画像)において濃度値が0〜1023の各画素による階調変化を強調した8bit画像(256階調の画像)が得られる。たとえば、第3の画像変換処理では、図6(c)に示すような画像が得られる。従って、第3の画像変換処理は、濃度値が1023未満の画素が多い入力画像に対する画像変換処理に有効であると考えられる。すなわち、上記第3の画像変換処理は、4096階調の入力画像における背景画像を構成する各画素の濃度分布とバーの画像を構成する各画素の濃度分布との差異が濃度値0〜1023のレンジで強調できる場合に効果的であると考えられる。
【0045】
(d)第4の画像変換処理は、12bit画像において濃度値が0〜2047の各画素を256階調の8bit画像に線形変換する。この場合、12bit画像における濃度値が2048以上の各画素の濃度値は255に変換される。この第4の画像変換処理は、図5に示す特性dに従った画像変換処理である。この第4の画像変換処理では、12bit画像(4096階調の画像)において濃度値が0〜2047の各画素による階調変化を強調した8bit画像(256階調の画像)が得られる。たとえば、第4の画像変換処理では、図6(d)に示すような画像が得られる。従って、第4の画像変換処理は、濃度値が2047未満の画素が多い入力画像に対する画像変換処理に有効であると考えられる。すなわち、上記第4の画像変換処理は、4096階調の入力画像における背景画像を構成する各画素の濃度分布とバーの画像を構成する各画素の濃度分布との差異が濃度値0〜2047のレンジで強調できる場合に効果的であると考えられる。
【0046】
(e)第5の画像変換処理は、12bit画像において濃度値が0〜4095の各画素を256階調の8bit画像に線形変換する。この場合、12bit画像における濃度値が4095以上の各画素の濃度値は255に変換される。この第5の画像変換処理は、図5に示す特性eに従った画像変換処理である。この第5の画像変換処理では、図4に示すように、12bit画像全体における階調変化を変えない8bit画像が得られる。たとえば、第5の画像変換処理では、図6(e)に示すような画像が得られる。従って、第5の画像変換処理は、各画素の濃度値が0〜4095の広いレンジに分布している入力画像、あるいは、濃度値が2047以上の明るい画素が多い入力画像(全体が明るい画像)に対する画像変換処理に有効であると考えられる。
【0047】
これらの第1〜第5の画像変換処理は、それぞれ各画素の濃度値をビットシフト演算することにより実行される処理である。すなわち、上述した第1〜第5の画像変換処理は、複雑な演算処理が不要な処理であり、高速に画像変換処理の結果を得ることが可能な処理である。このため、上記画像変換部13では、入力画像が与えられた時点で第1〜第5の画像変換処理を実行しておくようにしても良い。この場合、上記画像変換部13は、上記画像分析部12から画像変換方法が指定された時点で指定された画像変換方法で画像変換処理した画像をバー認識部14に供給するようにできる。
【0048】
上記画像分析部12は、入力画像における特徴を分析し、その分析結果に基づいて第1〜第5の画像変換処理のうち何れかを決定する。たとえば、上記画像分析部12において、上記濃度値推定部21は、入力画像における特徴として、入力画像における最頻濃度値を算出するものとする。入力画像において最も頻度が高くなる濃度値(最頻濃度値)は、背景の濃度値であると判定される。これは、バーコードがプリントされている領域周辺の背景がぼぼ均一な濃度値であることが想定されるためである。つまり、最頻濃度値は、背景画像において最も頻度が高い濃度値(媒体の濃度値)であると判定される。
このような最頻濃度値に基づいて画像変換方法を決定すれば、上記画像分析部12では、背景画像の濃度値に応じた画像変換方法を決定することが可能となる。すなわち、上記画像変換部13が上記第1〜第5の画像変換処理の機能を有している場合、上記変換方法決定部26は、上記濃度値推定部21により算出された入力画像における最頻濃度値に基づいて、第1〜第5の画像変換処理の何れかを選択する。
【0049】
画像変換方法を決定する手法としては、例えば、所定の閾値と上記濃度値推定部21により算出された最頻濃度値とを比較することにより、画像変換方法を決定する手法が考えられる。この場合、画像変換方法を決定するための閾値の設定は、運用形態などに応じて適宜設定される。
たとえば、12bit画像における最頻濃度値に対する閾値として、「100」、「200」、「500」、「1000」の4つの閾値を設定された場合を想定する。この場合、上記変換方法決定部26は、入力画像に対する画像変換方法として、第1〜第5の画像変換処理の何れかを以下のような条件に基づいて決定することが可能である。
【0050】
(a−1)最頻濃度値αが「100」未満(α<100)ならば、画像変換方法として、第1の画像変換処理を選択する。
【0051】
(b−1)最頻濃度値αが「100」以上かつ「200」未満(100≦α<100)ならば、画像変換方法として、第2の画像変換処理を選択する。
【0052】
(c−1)最頻濃度値αが「200」以上かつ「500」未満(200≦α<500)ならば、画像変換方法として、第3の画像変換処理を選択する。
【0053】
(d−1)最頻濃度値αが「500」以上かつ「1000」未満(500≦α<1000)ならば、画像変換方法として、第4の画像変換処理を選択する。
【0054】
(e−1)最頻濃度値αが「1000」以上(1000≦α)ならば、画像変換方法として、第5の画像変換処理を選択する。
【0055】
なお、上記濃度値推定部21は、上述したような入力画像における最頻濃度値の代りに、入力画像における平均濃度値あるいはパーセンタイル方式により判定(推定)される濃度値などを判定するようにしても良い。平均濃度値は、入力画像における全画素の濃度値の平均値である。また、パーセンタイル方式による濃度値の判定としては、入力画像の濃度ヒストグラムにおいて最も暗い濃度値から順に積分した値が所定の閾値を超えた時点の濃度値を判定することが可能である。
【0056】
また、上記変換方法決定部26は、複数の画像変換方法を選択するようにしても良い。たとえば、上記変換方法決定部26は、α<100ならば、第1の画像変換処理と第2の画像変換処理とを選択するようにしても良い。このような場合、上記画像変換部13は、第1の画像変換処理により得られる第1の画像と第2の画像変換処理により得られる第2の画像とをバー認識部14に供給するようにする。このため、上記バー認識部14では、上記第1の画像と上記第2の画像とに対してバーコードの認識処理を行うようにすれば良い。
【0057】
次に、上記のような第1の処理例による処理の流れについて説明する。
図7は、上記バーコード認識装置1における第1の処理例の流れを説明するためのフローチャートである。ここでは、一例として、上述したように、最頻濃度値αに対して4つの閾値(「100」、「200」、「500」、「1000」)が設定され、それらの閾値に基づいて上記第1〜第5の画像変換処理の何れかを画像変換方法として選択する形態を想定して説明するものとする。
【0058】
まず、上記カメラ2が、バーコードのプリント面を12bit(4096階調)で撮像したものとする。すると、上記バーコード認識装置1の画像インターフェース11は、上記カメラ2が撮像した12bit画像を取得する(ステップS10)。上記画像インターフェース11は、取得した12bit画像を画像分析部12および画像変換部13へ供給する。上記画像インターフェース11から12bit画像が供給されると、上記画像分析部12は、上記濃度値推定部21により当該12bit画像における最頻濃度値αを判定する(ステップS11)。
【0059】
上記濃度値推定部21により最頻濃度値αが判定されると、上記変換方法決定部26は、当該12bit画像に対する画像変換方法として、第1〜第5の画像変換処理の何れかを最頻濃度値αと所定の閾値に基づいて選択する(ステップS12〜S20)。
【0060】
たとえば、最頻濃度値αが100未満である場合(ステップS12、YES)、上記変換方法決定部26は、当該12bit画像に対する画像変換方法として、第1の画像変換処理(4096階調の濃度値0〜255を255階調の濃度値0〜255に線形変換する処理)を選択する(ステップS13)。最頻濃度値αが100以上かつ200未満である場合(ステップS14、YES)、上記変換方法決定部26は、当該12bit画像に対する画像変換方法として、第2の画像変換処理(4096階調の濃度値0〜511を255階調の濃度値0〜255に線形変換する処理)を選択する(ステップS15)。
【0061】
最頻濃度値αが200以上かつ500未満である場合(ステップS16、YES)、上記変換方法決定部26は、当該12bit画像に対する画像変換方法として、第3の画像変換処理(4096階調の濃度値0〜1023を255階調の濃度値0〜255に線形変換する処理)を選択する(ステップS17)。最頻濃度値αが500以上かつ1000未満である場合(ステップS18、YES)、上記変換方法決定部26は、当該12bit画像に対する画像変換方法として、第4の画像変換処理(4096階調の濃度値0〜2047を255階調の濃度値0〜255に線形変換する処理)を選択する(ステップS19)。最頻濃度値αが1000以上である場合(ステップS18、NO)、上記変換方法決定部26は、当該12bit画像に対する画像変換方法として、第5の画像変換処理(4096階調の濃度値0〜4095を255階調の濃度値0〜255に線形変換する処理)を選択する(ステップS20)。
【0062】
上記ステップS12〜S20で、12bit画像に対する画像変換方法が選択されると、上記変換方法決定部26は、選択した画像変換処理を上記画像変換部13に対して指定する(ステップS21)。
上記画像分析部12の変換方法決定部26により当該12bit画像に対する画像変換方法(画像変換処理)が指定されると、上記画像変換部13は、指定された画像変換処理により当該12bit画像を8bit画像に変換する(ステップS22)。上記画像変換部13は、指定された画像変換処理により生成した8bit画像をバー認識部14を供給する。なお、上記画像変換部13は、上記画像分析部12における処理と並行して上記画像インターフェース11から取得する12bit画像に対する第1〜第5の画像変換処理をそれぞれ実行しておくようにしても良い。この場合、上記画像変換部13は、上記画像分析部12により指定された画像変換方法で生成した8bit画像をバー認識部14へ供給するようにする。
【0063】
上記バー認識部14は、上記画像変換部13から供給された8bit画像に対してバーコードの認識処理を行う(ステップS23)。上記バー認識部14におけるバーコード認識処理では、たとえば、上述したように、バー候補の検出処理、バー識別処理、バーコードの復号処理、復号結果の判定処理などが行われる。上記バー認識部14は、バーコードの認識処理による処理結果を出力インターフェース16により外部に出力する(ステップS24)。
【0064】
たとえば、バーコードの認識が成功した場合(認識結果が有効な情報であると判定された場合)、上記出力インターフェース16は、バーコードの認識結果を外部へ出力する。また、バーコードの認識が失敗した場合(認識結果が有効な情報でないと判定された場合)、上記出力インターフェース16は、バーコードの認識が失敗した旨を示す情報を外部へ出力する。なお、バーコードの認識が失敗した場合、後述する第5の処理例のように、バーコード認識処理の各工程で得られた情報を画像分析部12へフィードバックすることにより、当該入力画像に対する画像変換処理およびバーコード認識処理を再度実行するようにしても良い。
【0065】
次に、第2の処理例について説明する。
この第2の処理例では、12bit画像における背景(媒体)の濃度値に基づいて画像変換方法を決定するものとする。また、以下に説明する第2〜第5の処理例では、上記画像変換部13は、上記画像分析部12から指定される変換テーブルに基づいて12bit画像を8bit画像に変換する機能を有しているものとする。
【0066】
上記画像分析部12の上記媒体濃度推定部23は、カメラ2が撮影した12bit画像における背景画像の濃度値(媒体濃度値)を判定する機能を有している。上記媒体濃度推定部23が判定する背景画像の濃度値は、入力画像における背景画像の特徴を示す情報である。たとえば、上記背景画像の濃度値としては、4096階調の入力画像全体における最頻濃度値あるいは平均濃度値であっても良いし、パーセンタイル方式により判定される濃度値であっても良い。
【0067】
図8は、4096階調の入力画像の全画素に対する濃度ヒストグラムの例を示す図である。
図8に示すように、上記カメラ2が媒体におけるバーコードのプリント面を撮影した画像の濃度ヒストグラムは、背景画像の濃度分布とバー画像の濃度分布とを含むものとなる。本実施の形態では、上述したように、バーコードを構成する各バーが背景よりも明るい画像として撮影されることを想定している。このため、背景画像の濃度分布は、バー画像の濃度分布よりも濃度値が小さい分布となる。つまり、図8に示すヒストグラムの例では、左側(濃度値が小さい方)にピークがある分布が背景画像の濃度分布であり、右側(濃度値が大きい方)にピークがある分布がバー画像の濃度分布であると判定される。ただし、明るい背景に暗いバーコードがプリントされる運用形態(たとえば、白色の背景に黒色のバーコードがプリントされる運用形態)では、背景画像の濃度分布が明るい側に現れ、バー画像の濃度分布が暗い側に現れると推定される。たとえば、図8に示すような濃度値設定では、図8に示す濃度ヒストグラムとは逆に、背景画像の濃度分布が右側に現れ、バー画像の濃度分布が左側に現れると推定される。
【0068】
ここでは、図8に示すように、濃度ヒストグラムにおいて左側にピークがある分布が背景画像の濃度分布で、右側にピークがある分布がバー画像の濃度分布であることを想定する。
図8に示すヒストグラムの例では、左側にピークがある分布(つまり、背景画像の濃度分布)の特徴を示す情報が背景画像の濃度値(媒体濃度値)として判定される。たとえば、上記媒体濃度推定部23は、背景画像の濃度分布の特徴を示す情報として、当該分布のピーク値(最頻濃度値)、あるいは、平均値などを判定する。上記最頻濃度値は、ヒストグラムにおける左側の分布において頻度が最大となる値(ピーク値を判定することにより判定される。上記平均値は、ヒストグラムにおける左側のピーク値から判定される背景画像の分布全体における濃度の平均値を算出することにより判定される。
【0069】
また、上記媒体濃度推定部23は、パーセンタイル方式により判定される媒体濃度値として、ヒストグラムの左側から積分した値が所定の閾値を超える位置の濃度値を判定するようにしても良い。ここでは、背景画像の濃度分布の特徴を示す情報として、パーセンタイル方式により媒体濃度値を判定する例について説明する。
図9は、パーセンタイル方式により判定される媒体濃度値を説明するための図である。
上記パーセンタイル方式により媒体濃度値を判定する場合、上記媒体濃度推定部23は、図9に示すように、背景画像の濃度分布が現れる側(図8に示す例では、左端の濃度値「0」)から積分を行う。上記媒体濃度推定部23は、濃度値「0」から各濃度値までの積分値を算出するごとに、算出した積分値が予め設定されている閾値以上となったか否かを判定する。算出した積分値が上記閾値以上となった場合、上記媒体濃度推定部23は、当該積分値となった濃度値を媒体濃度値として判定する。
【0070】
上記パーセンタイル方式により媒体濃度値を判定するための閾値は、想定される背景画像の濃度分布、あるいは、バー画像の濃度分布などに応じて設定されるべきものである。たとえば、図9に示す例では、背景画像の濃度分布と判定される分布のピークとなる濃度値よりも小さい値となるように設定されている。また、上記閾値は、たとえば、濃度ヒストグラム全体に対する積分値の比率(百分率)などにより設定される。
【0071】
上記のように、第2の処理例では、上記媒体濃度推定部23により背景画像の濃度分布の特徴を示す情報としての媒体濃度値が判定される。上記媒体濃度値が判定されると、上記変換方法決定部26は、上記媒体濃度推定部23により判定された媒体濃度値に応じた画像変換方法を決定する。第2の処理例において、上記変換方法決定部26は、媒体濃度値未満の濃度値の各画素を全て濃度値「0」に変換し、媒体濃度値以上の濃度値の各画素を0〜255の濃度値に線形変換する画像変換方法を決定する。このような画像変換方法は、たとえば、変換テーブルとして画像変換部13に対して指定される。
【0072】
図10は、媒体濃度値に応じた変換テーブルTaの例を説明するための図である。
図10に示すように、第2の処理例では、上記変換方法決定部26は、上記媒体濃度推定部23により判定された媒体濃度値を基点する線形変換となる変換テーブルTaを作成する。図10に示すような変換テーブルTaによる画像変換処理では、上述したように、入力画像において濃度値が媒体濃度値未満の各画素を全て濃度値「0」に変換し、入力画像において濃度値が媒体濃度値以上の各画素を0〜255の濃度値に線形変換する。
上記のような第2の処理例によれば、媒体濃度値よりも暗い部分の情報を落とす代わりに、バー画像を構成する画素を含む媒体濃度値よりも明るい部分の情報を広いレンジの情報(濃度値0〜255)に変換できる。
【0073】
次に、上記のような第2の処理例としての処理の流れについて説明する。
図11は、上記バーコード認識装置1における第2の処理例の流れを説明するためのフローチャートである。
上記カメラ2が撮像した12bit画像を取得すると(ステップS31)。上記画像インターフェース11は、取得した12bit画像を画像分析部12および画像変換部13へ供給する。上記画像インターフェース11から12bit画像が供給されると、上記画像分析部12は、上記媒体濃度推定部23により当該12bit画像における媒体濃度値を判定する処理を行う(ステップS32およびS33)。
【0074】
ここでは、上述したようなパーセンタイル方式により媒体濃度値を判定するものとする。すなわち、上記媒体濃度推定部23は、当該12bit画像における全画素の濃度分布を示す濃度ヒストグラムを作成する(ステップS32)。ヒストグラムを作成すると、上記媒体濃度推定部23は、当該ヒストグラムにより媒体濃度値を判定する(ステップS33)。媒体濃度値を判定する処理として、上記媒体濃度推定部23は、当該ヒストグラムに対して濃度値「0」から順に各濃度値までの積分した値を算出する。各濃度値までの積分値を算出するごとに、上記媒体濃度推定部23は、積分値が所定の閾値以上であるか否かを判断する。この判断により積分値が所定の閾値以上であると判断した場合、上記媒体濃度推定部23は、当該積分値が得られた濃度値を当該12bit画像における媒体濃度値と判定する。
【0075】
上記媒体濃度推定部23により当該12bit画像の媒体濃度値が判定されると、上記変換方法決定部26は、当該媒体濃度値に基づいて、当該12bit画像を認識処理用の8bit画像に変換するための画像変換方法を決定する(ステップS34及びS35)。すなわち、上記変換方法決定部26は、上記媒体濃度推定部23により判定された媒体濃度値に応じた画像変換用の変換テーブルTaを作成する(ステップS34)。この変換テーブルTaは、たとえば、上述したように、媒体濃度値を基点に立ち上がる線形変換を指定するものである。画像変換用の変換テーブルTaを作成すると、上記変換方法決定部26は、作成した変換テーブルTaを画像変換方法として上記画像変換部13に指定する(ステップS35)。
【0076】
上記画像分析部12の変換方法決定部26により当該12bit画像に対する画像変換方法(変換テーブル)が指定されると、上記画像変換部13は、指定された変換テーブルTaに従って当該12bit画像を8bit画像に変換する処理を行う(ステップS36)。指定された変換テーブルに基づく画像変換処理により生成された8bit画像は、上記画像変換部13から上記バー認識部14に供給される。
上記バー認識部14は、上記画像変換部13から供給された8bit画像に対してバーコードの認識処理を行う(ステップS37)。上記バー認識部14におけるバーコード認識処理では、たとえば、上述したように、バー候補の検出処理、バー識別処理、バーコードの復号処理、復号結果の判定処理などが行われる。上記バー認識部14は、バーコードの認識処理による処理結果を出力インターフェース16により外部に出力する(ステップS38)。
【0077】
たとえば、バーコードの認識が成功した場合(認識結果が有効な情報であると判定された場合)、上記出力インターフェース16は、バーコードの認識結果を外部へ出力する。また、バーコードの認識が失敗した場合(認識結果が有効な情報でないと判定された場合)、上記出力インターフェース16は、バーコードの認識が失敗した旨を示す情報を外部へ出力する。なお、バーコードの認識が失敗した場合、後述する第5の処理例のように、バーコード認識処理の各工程で得られた情報を画像分析部12にフィードバックすることにより、当該入力画像に対する画像変換処理およびバーコード認識処理を再実行(リトライ)を行うようにしても良い。
【0078】
次に、第3の処理例について説明する。
この第3の処理例では、12bit画像におけるバーコードを構成するバーの濃度値に基づいて画像変換方法を決定するものである。
上記画像分析部12の上記バー濃度推定部24は、上記カメラ2が撮影した12bit画像(12bit画像)におけるバー画像の濃度値(バー濃度値)を判定する機能を有している。上記バー濃度推定部24が判定するバー濃度値は、入力画像におけるバー画像の特徴を示す情報である。たとえば、上記バー濃度値としては、バー画像の濃度分布における最頻濃度値(ピーク値)あるいは平均濃度値であっても良いし、パーセンタイル方式により判定される濃度値であっても良い。
【0079】
本実施の形態では、上述したように、バーコードを構成する各バーが背景よりも明るい画像として撮影されることを想定している。このため、バー画像の濃度分布は、背景画像の濃度分布よりも濃度値が大きい分布となる。つまり、図8に示すような濃度ヒストグラムの例では、右側(濃度値が大きい方)にピークがある分布がバー画像の濃度分布であると推定される。ただし、明るい背景に暗いバーコードがプリントされる運用形態(たとえば、白色の背景に黒色でバーコードがプリントされている運用形態)では、バー画像の濃度分布が暗い側に現れ、背景画像の濃度分布が明るい側に現れる。たとえば、図8に示すような濃度値設定では、図8に示すヒストグラムとは逆に、バー画像の濃度分布が左側に現れ、背景画像の濃度分布が右側に現れる。
【0080】
ここでは、図8に示すように、濃度ヒストグラムにおいて右側にピークがある分布がバー画像の濃度分布であることを想定して説明する。
図8に示すヒストグラムの例では、右側にピークがある分布(つまり、バー画像の濃度分布)の特徴を示す情報がバー画像の濃度値(バー濃度値)として判定される。たとえば、上記バー濃度推定部24は、バー画像の濃度分布の特徴を示す情報として、当該分布の最頻濃度値、あるいは、平均値などを判定する。上記最頻濃度値は、ヒストグラムにおける右側の分布において頻度が最大となる値(ピーク値)を判定することにより判定される。上記平均値は、たとえば、ヒストグラムにおける右側のピーク値から推定されるバー画像の分布全体における濃度の平均値を算出することにより判定される。
【0081】
また、上記バー濃度推定部24は、パーセンタイル方式によるバー濃度値の判定としては、ヒストグラムの右端(濃度値「4096」)から各濃度値までを積分した値が所定の閾値を超える位置の濃度値を判定するようにしても良い。ここでは、バー画像の濃度分布の特徴を示す情報として、パーセンタイル方式によりバー濃度値を判定する例について説明する。
図12は、パーセンタイル方式により判定されるバー濃度値を説明するための図である。
上記パーセンタイル方式によりバー濃度値を判定する場合、上記バー濃度推定部24は、図12に示すように、ヒストグラムに対して、バー画像の濃度分布が現れる側(図8に示す例では、右端の濃度値「4096」)から各濃度値までの積分を行う。上記バー濃度推定部24は、各濃度値までの積分値を算出するごとに、算出した積分値が予め設定されている閾値(バー濃度値判定用の閾値)以上となったか否かを判定する。算出した積分値が上記閾値以上となった場合、上記バー濃度推定部24は、当該積分値となった濃度値をバー濃度値として判定する。
【0082】
上記パーセンタイル方式によりバー濃度値を判定するための閾値は、想定されるバー画像の濃度分布、あるいは、背景画像の濃度分布などに応じた設定されるべきものである。たとえば、図12に示す例では、バー濃度値が、バー画像の濃度分布におけるピーク値、あるいは、バー画像の濃度分布の最小値よりも小さい濃度値となるように設定されている。また、上記閾値は、たとえば、濃度ヒストグラム全体に対する積分値の比率(百分率)などにより設定される。
【0083】
上記のように、第3の処理例では、上記バー濃度推定部24によりバー画像の濃度分布の特徴を示す情報としてのバー濃度値が判定される。上記バー濃度値が判定されると、上記変換方法決定部26は、上記バー濃度推定部24により判定されたバー濃度値に応じた画像変換方法を決定する。第3の処理例において、上記変換方法決定部26は、バー濃度値以上の濃度値の各画素を全て濃度値「255」に変換し、バー濃度値未満の濃度値の各画素を0〜255の濃度値に線形変換する画像変換方法を決定する。このような画像変換方法を示す情報は、たとえば、変換テーブルとして画像変換部13に対して指定される。
【0084】
図13は、バー濃度値に応じた変換テーブルTbの例を説明するための図である。
図13に示すように、第3の処理例では、上記変換方法決定部26は、上記バー濃度推定部24により判定されたバー濃度値を基点する線形変換となる変換テーブルTbを作成する。図13に示すような変換テーブルTbによる画像変換処理では、上述したように、入力画像において濃度値がバー濃度値以上の各画素を全て濃度値「255」に変換し、入力画像において濃度値がバー濃度値未満の各画素を0〜255の濃度値に線形変換する。
上記のような第3の処理例によれば、バー濃度値よりも明るい部分の情報を落とす(全て最大値とする)代わりに、背景画像を構成する各画素の濃度値を含むバー濃度値よりも暗い部分の情報を広いレンジの情報(濃度値0〜255)に変換できる。
【0085】
次に、上記のような第3の処理例としての処理の流れについて説明する。
図14は、上記バーコード認識装置1における第3の処理例の流れを説明するためのフローチャートである。
【0086】
上記カメラ2が撮像した12bit画像を取得すると(ステップS41)。上記画像インターフェース11は、取得した12bit画像を画像分析部12および画像変換部13へ供給する。上記画像インターフェース11から12bit画像が供給されると、上記画像分析部12は、上記媒体濃度推定部23により当該12bit画像におけるバー濃度値を判定する処理を行う(ステップS42およびS43)。ここでは、上述したようなパーセンタイル方式によりバー濃度値を判定するものとする。すなわち、上記バー濃度推定部24は、当該12bit画像における全画素の濃度分布を示すヒストグラムを作成する(ステップS42)。ヒストグラムを作成すると、上記バー濃度推定部24は、当該ヒストグラムによりバー濃度値を判定する(ステップS43)。すなわち、上記バー濃度推定部24は、当該ヒストグラムに対して最大濃度値「4095」から順に各濃度値までの積分した値を算出する。各濃度値までの積分値を算出するごとに、上記バー濃度推定部24は、積分値が所定の閾値以上であるか否かを判断する。この判断により積分値が所定の閾値以上であると判断した場合、上記バー濃度推定部24は、当該積分値が得られた濃度値を当該12bit画像におけるバー濃度値と判定する。
【0087】
上記バー濃度推定部24により当該12bit画像のバー濃度値が判定されると、上記変換方法決定部26は、当該バー濃度値に基づいて、当該12bit画像を認識処理用の8bit画像に変換するための画像変換方法を決定する(ステップS44及びS45)。すなわち、上記変換方法決定部26は、上記バー濃度推定部24により判定されたバー濃度値に応じた画像変換用の変換テーブルTbを作成する(ステップS44)。この変換テーブルは、たとえば、上述したように、最小濃度値(「0」)からバー濃度値までの線形変換を指定するものである。画像変換用の変換テーブルTbを作成すると、上記変換方法決定部26は、作成した変換テーブルTbを画像変換方法として上記画像変換部13に指定する(ステップS45)。
【0088】
上記画像分析部12の変換方法決定部26により当該12bit画像に対する画像変換方法(変換テーブル)が指定されると、上記画像変換部13は、指定された変換テーブルTbに従って当該12bit画像を8bit画像に変換する処理を行う(ステップS46)。指定された変換テーブルに基づく画像変換処理により生成された8bit画像は、上記画像変換部13から上記バー認識部14に供給される。
上記バー認識部14は、上記画像変換部13から供給された8bit画像に対してバーコードの認識処理を行う(ステップS47)。上記バー認識部14におけるバーコード認識処理では、たとえば、上述したように、バー候補の検出処理、バー識別処理、バーコードの復号処理、復号結果の判定処理などが行われる。上記バー認識部14は、バーコードの認識処理による処理結果を出力インターフェース16により外部に出力する(ステップS48)。
【0089】
たとえば、バーコードの認識が成功した場合(認識結果が有効な情報であると判定された場合)、上記出力インターフェース16は、バーコードの認識結果を外部へ出力する。また、バーコードの認識が失敗した場合(認識結果が有効な情報でないと判定された場合)、上記出力インターフェース16は、バーコードの認識が失敗した旨を示す情報を外部へ出力する。なお、バーコードの認識が失敗した場合、後述する第5の処理例のように、バーコード認識処理の各工程で得られた情報を画像分析部12にフィードバックすることにより、当該入力画像に対する画像変換処理およびバーコード認識処理を再実行(リトライ)するようにしても良い。
【0090】
次に、第4の処理例について説明する。
この第4の処理例では、入力画像における背景(媒体)の濃度値とバーの濃度値との組合せに基づいて画像変換方法を決定するものである。言い換えると、第4の処理例は、第2の処理例で得られる媒体濃度値と第3の処理例で得られるバー濃度値とを組み合わせて画像変換方法を指定するための変換テーブルを作成するものである。
【0091】
すなわち、この第4の処理例では、カメラ2が撮影した12bit画像に対して、上記媒体濃度推定部23により上記第2の処理例で説明したような媒体濃度値を判定し、さらに、上記バー濃度推定部24により上記第3の処理例で説明したようなバー濃度値を判定する。
【0092】
たとえば、図8に示すような濃度ヒストグラムから図9に示すような媒体濃度値と図12に示すようなバー濃度値とが判定されたものとする。この場合、媒体濃度値に基づく変換テーブルTaは、図10に示すように、媒体濃度値から最大濃度値までを線形変換するものが得られる。バー濃度値に基づく変換テーブルTbは、図13に示すように、最小濃度値からバー濃度値までを線形変換するものが得られる。従って、第4の処理例では、上記変換テーブルTaと上記変換テーブルTbとを組み合わせることにより、媒体濃度値とバー濃度値とを考慮した変換テーブルTabが得られると考えられる。
【0093】
すなわち、上記変換方法決定部26は、上記媒体濃度推定部23により判定された媒体濃度値と上記バー濃度推定部24により判定されたバー濃度値とに基づいて変換テーブルTabを決定する。
【0094】
上記媒体濃度値と上記バー濃度値との組合せに基づく変換テーブルTabを決定する手法には、種々の手法が考えらえる。変換テーブルTabは、媒体濃度値からバー濃度値までの濃度変化を強調するようなものであれば良い。たとえば、変換テーブルTabは、上記媒体濃度値に基づく変換テーブルTaと上記バー濃度値に基づく変換テーブルTbとを足し合わせて平均化することにより作成しても良いし、媒体濃度値からバー濃度値までの濃度値を線形変換するような変換テーブルであっても良い。前者の場合、媒体濃度値からバー濃度値までの濃度変化を強調しつつ、媒体濃度値未満の濃度値における濃度変化およびバー濃度値以上の濃度値における濃度変化を反映させた画像変換処理が実施できる。また、後者の場合、媒体濃度値からバー濃度値までの濃度変化を最大限に強調(たとえば、256階調の「0」〜「255」に変換)させる画像変換が実施できる。さらに、前者と後者とを組み合わせて変換テーブルTabが決定されるようにしても良い。
【0095】
次に、上記のような第4の処理例としての処理の流れについて説明する。
図15は、上記バーコード認識装置1における第4の処理例の流れを説明するためのフローチャートである。
【0096】
上記カメラ2が撮像した12bit画像を取得すると(ステップS51)。上記画像インターフェース11は、取得した12bit画像を画像分析部12および画像変換部13へ供給する。上記画像インターフェース11から12bit画像が供給されると、上記画像分析部12は、上記媒体濃度推定部23により当該12bit画像における媒体濃度値を判定するとともに(ステップS52およびS53)、上記バー濃度推定部24により当該12bit画像におけるバー濃度値を判定する(ステップS54)。
【0097】
当該12bit画像の媒体濃度値とバー濃度値とが判定されると、上記変換方法決定部26は、媒体濃度値とバー濃度値とに基づいて、当該12bit画像を認識処理用の8bit画像に変換するための画像変換方法を決定する(ステップS55及びS56)。すなわち、上記変換方法決定部26は、媒体濃度値とバー濃度値とに応じた画像変換用の変換テーブルTabを作成する(ステップS55)。この変換テーブルTabは、たとえば、上述したように、媒体濃度値からバー濃度値までの濃度変化を強調するような変換を指定するものである。画像変換用の変換テーブルTabを作成すると、上記変換方法決定部26は、作成した変換テーブルTabを画像変換方法として上記画像変換部13に指定する(ステップS56)。
【0098】
上記画像分析部12の変換方法決定部26により当該12bit画像に対する画像変換方法(変換テーブル)が指定されると、上記画像変換部13は、指定された変換テーブルTabに従って当該12bit画像を8bit画像に変換する処理を行う(ステップS57)。指定された変換テーブルに基づく画像変換処理により生成された8bit画像は、上記画像変換部13から上記バー認識部14に供給される。
上記バー認識部14は、上記画像変換部13から供給された8bit画像に対してバーコードの認識処理を行う(ステップS58)。上記バー認識部14におけるバーコード認識処理では、たとえば、上述したように、バー候補の検出処理、バー識別処理、バーコードの復号処理、復号結果の判定処理などが行われる。上記バー認識部14は、バーコードの認識処理による処理結果を出力インターフェース16により外部に出力する(ステップS59)。
【0099】
たとえば、バーコードの認識が成功した場合(認識結果が有効な情報であると判定された場合)、上記出力インターフェース16は、バーコードの認識結果を外部へ出力する。また、バーコードの認識が失敗した場合(認識結果が有効な情報でないと判定された場合)、上記出力インターフェース16は、バーコードの認識が失敗した旨を示す情報を外部へ出力する。なお、バーコードの認識が失敗した場合、後述する第5の処理例のように、バーコード認識処理の各工程で得られた情報を画像分析部12にフィードバックすることにより、当該入力画像に対する画像変換処理およびバーコード認識処理を再実行するようにしても良い。
【0100】
次に、第5の処理例について説明する。
この第5の処理例では、上記フィードバック部15により上記画像分析部12にフィードバックされた情報に基づいて画像変換処理およびバーコード認識処理を再実行(リトライ)するものである。また、第5の処理例では、上記画像分析部12がフィードバックされた情報に基づいて画像変換方法を決定する機能を有し、画像変換部13が再度入力画像を認識処理用の画像に変換する再変換の機能を有し、バー認識部14が再変換機能により得られた認識処理用の画像に基づいて再度バーコードの認識処理を実行する再試行機能を有する。
【0101】
すなわち、第5の処理例では、上記バー認識部14によるバーコードの認識結果が有効でないと判定された場合、あるいは、バー認識部14によるバーコードの認識結果が誤りらしいと判定された場合、上記フィードバック部15は、バー認識処理の工程で得られた情報、あるいは、バー認識処理の工程で得られた情報から生成した情報をフィードバック情報として画像分析部12にフィードバックする。上記画像分析部12は、フィードバックされた情報に基づいて画像変換方法を再決定する。この場合、上記画像変換部13は、上記画像分析部12により指定されるフィードバック情報に基づく画像変換方法に従って再度入力画像を認識処理用の画像に変換する処理を実行する。この再変換された認識処理用の画像に対して、上記バー認識部14では、再度バーコード認識処理を行う。
【0102】
次に、上記フィードバック情報について説明する。
【0103】
上述したように、上記フィードバック情報は、入力画像を認識処理用の画像に再変換するための画像変換方法を決定するための情報である。従って、上記フィードバック情報は、バーコードを精度良く認識できるような画像変換方法を判定するための情報である必要がある。ここでは、上記フィードバック情報は、バー認識処理の工程で得られた情報、あるいは、バー認識処理の工程で得られた情報から判定される情報であるものでとする。なお、バー認識処理の工程で得られた情報からフィードバック情報を判定する場合、フィードバック情報の判定処理は、上記バー認識部14が実行するようにしても良いし、上記フィードバック部15が実行するようにしても良し、上記画像分析部12が実行するようにしても良い。
【0104】
次に、フィードバック情報の第1の例について説明する。
まず、フィードバック情報の第1の例として、背景画像とバー画像とを分離するための最適な濃度値(分離閾値)を判定する処理(フィードバック情報の判定処理)について説明する。上記分離閾値は、バー認識処理の工程で得られた情報から判定される情報である。ここでは、上記フィードバック部15がバー認識処理の工程で得られた情報から分離閾値を判定することを想定して説明するものとする。
【0105】
上記バー認識部14では、バーコード認識処理の一工程として、上述したようなバー候補の検出処理を行っている。バー候補の検出処理では、認識処理用の画像において背景画像の濃度値とバー画像の濃度値とが接近している場合、全てのバーをバー候補として確実に検出するのが難しい。逆に言えば、入力画像を背景画像の濃度値とバー画像の濃度値との濃度差が強調されるような認識処理用の画像に変換すれば、バー候補の検出精度が高くなると考えられる。上記フィードバック情報として分離閾値は、背景画像とバー画像との濃度差が強調されるような画像変換方法を決定するための情報である。
【0106】
上記バー認識部14は、バー候補の検出処理において、全てのバーが検出できなかった場合であっても、一部のバーが検出できていることが多い。このような場合、バー認識部14は、検出したバー候補の領域を示す情報をフィードバック部15に供給する。上記フィードバック部15は、入力画像における検出されたバー候補の領域の画像に基づいて分離閾値を判定する。
【0107】
たとえば、上記フィードバック部15は、バー候補の領域の画像からバー濃度値および背景画像の濃度値を判定し、その中間値を分離閾値と判定する。この場合、上記フィードバック部15は、入力画像からバー候補の領域の画像を抽出し、抽出したバー候補の領域の画像から得られる最頻濃度値あるいは平均濃度値などの濃度値をバー候補の画像の濃度値と判定する。背景画像の濃度値としては、上記第1〜第4の処理例で説明したように、入力画像全体から得られる最頻濃度値、平均値、パーセンタイル方式により判定される濃度値を用いることが可能である。
【0108】
なお、バーの形状および各バーの並び方(たとえば、バーの間隔)が所定の形態である場合、検出されたバー候補の画像領域から背景画像の領域を推定するようにしても良い。この場合、上記フィードバック部15は、バー候補の画像領域から背景画像の領域を推定し、入力画像から推定された背景画像の領域の画像を抽出し、抽出した背景画像から得られる最頻濃度値あるいは平均濃度値などの濃度値を背景画像の濃度値と判定するようにすれば良い。
【0109】
上記のように、少なくとも1つのバー候補が検出されている場合、当該バー候補の領域を示す情報に基づいて、入力画像におけるバーの濃度値あるいは背景画像の濃度値を推定することが可能である。少なくとも1つのバーがバー候補として検出されている場合、当該バー候補の領域から得られるバー濃度値は、画像全体の濃度ヒストグラムなどから判定されるバー濃度値よりも精度が高いと考えられる。
【0110】
上記のようなバー候補の領域を示す情報に基づいて判定された分離閾値は、画像分析部12へフィードバックされる。フィードバック情報として分離閾値が供給されると、上記画像分析部12は、フィードバックされた分離閾値を基準とした変換テーブルを作成する。分離閾値を基準とした変換テーブルは、背景画像とバー画像との濃度差を強調した認識処理用の画像が得られる画像変換方法を指定するものである。すなわち、画像分析部12は、入力画像において分離閾値の近傍の濃度値を広いレンジの濃度値に変換するような変換テーブルを作成する。
【0111】
このような変換テーブルに基づく画像変換処理では、入力画像(たとえば、12bit画像)における分離閾値近傍の濃度変化が強調された認識処理用の画像(たとえば、8bit画像)が得られる。つまり、分離閾値は、背景画像とバー画像とを分離する濃度値である。このため、上記変換テーブルに基づく画像変換処理では、背景画像とバー画像との濃度差が強調された認識処理の画像が得られると考えられる。
【0112】
図16は、分離閾値を基準とした変換テーブルの例を説明するための図である。
図16に示す例では、分離閾値前後の所定範囲の濃度値を広いレンジの濃度値に変換し、それ以外の濃度値を狭いレンジの濃度値に変換する。たとえば、図16に示すような変換テーブルでは、4096階調の入力画像を256階調の認識処理用の画像に変換する場合、濃度値が分離閾値−100〜分離閾値+100の画素を濃度値27〜227の画素に変換し、濃度値が分離閾値−100以下の画素を濃度値0〜27の画素に変換し、濃度値が分離閾値+100以上の濃度値の画素を濃度値227〜255の画素に変換するような画像変換を指定できる。この場合、入力画像における分離閾値の前後100の濃度変化が強調された認識処理用の画像が得られる。
【0113】
次に、フィードバック情報の第2の例について説明する。
フィードバック情報の第2の例としては、バーコード領域の候補内における濃度ヒストグラムを判定する処理について説明する。上記バーコード領域の候補は、バー認識処理の工程で得られる情報である。入力画像におけるバーコード領域候補の画像には、入力画像全体よりも背景のノイズが少なくなると予想される。背景のノイズとは、たとえば、背景画像あるいはバーコードとは無関係な画像であり、たとえば、パーコードのプリント面における印刷された広告などが想定される。つまり、入力画像におけるバーコード領域候補の画像を対象とした濃度ヒストグラムでは、入力画像全体を対象とした濃度ヒストグラムよりも、背景のノイズの影響を軽減できる可能性が高くなる。
【0114】
上記バー認識部14では、バーコード認識処理の一工程として、検出したバー候補からバーコード領域の候補を検出する処理を行っている。たとえば、上記バー認識部14では、全てのバーが検出できなかった場合であっても、一部のバーが検出できていれば、バーコード領域、あるいは、バーコード領域の一部を検出できることが多い。このような場合、上記バー認識部14は、検出したバーコード領域を示す情報をフィードバック部15を介して画像分析部12に供給する。これにより、画像分析部12は、バーコード周辺の画像のみを対象とした濃度ヒストグラムを生成でき、その濃度ヒストグラムに応じた画像変換方法の決定を行うことができる。
【0115】
上記画像分析部12では、第1〜第4の処理例で説明したように、濃度ヒストグラムを作成し、作成した濃度ヒストグラムから最頻濃度値、媒体濃度値あるいはバー濃度値などを判定する機能を有している。上記バー認識部14からバーコード領域を示す情報が得られた場合、上記画像分析部12は、入力画像におけるバーコード領域の画像を対象として、第1〜第4の処理例で説明したような処理が可能である。すなわち、上記画像分析部12は、バーコード領域から得られる最頻濃度値、媒体濃度値、バー濃度値、あるいは、媒体濃度値とバー濃度値との組み合わせに基づいて、画像変換方法を決定できる。
【0116】
次に、上記のような第5の処理例としての処理の流れについて説明する。
図17は、上記バーコード認識装置1における第5の処理例の流れを説明するためのフローチャートである。
上記カメラ2が撮像した入力画像(たとえば、4096階調の12bit画像)を入力画像として取得すると(ステップS61)。上記画像インターフェース11は、取得した入力画像を画像分析部12および画像変換部13へ供給する。上記画像インターフェース11から入力画像が供給されると、上記画像分析部12は、当該入力画像から得られる特徴を判定する画像分析処理を行う(ステップS62)。このステップS62の画像分析処理では、上記画像分析部12は、画像変換方法を決定するための情報として、入力画像全体から最頻濃度値、媒体濃度値、あるいは、バー濃度値を判定し、その判定した情報に基づいて変換テーブルなどの画像変換方法を決定する。このステップS62の処理としては、たとえば、第2〜第4の処理例で説明した処理(ステップS11−S21、S32−S35、S42−S45、S52−S56)が適用可能である。このため、ステップS62の処理については、詳細な説明を省略する。
【0117】
上記画像分析部12により画像変換方法が指定されると、上記画像変換部13は、画像分析部12により指定された画像変換方法に従って入力画像を認識処理用の画像(例えば、256階調の8bit画像)に変換する処理を行う(ステップS63)。この画像変換処理の結果として得られる認識処理用の画像は、画像変換部13からバー認識部14に供給される。上記バー認識部14は、画像変換部13から供給された認識処理用の画像に対してバーコード認識処理を実行する(ステップS64)。
【0118】
なお、ステップS61、S62に続いて実行されるステップS63の画像変換処理が、第1の画像変換方法による画像変換処理に対応し、これを実行する画像変換部13が第1の画像変換部に相当している。また、ステップS61−S63に続いて実行されるステップS64のバーコード認識処理が、第1のバーコード認識処理に対応し、これを実行するバー認識部14が第1のバー認識部に相当している。
【0119】
上記バー認識部14におけるバーコード認識処理では、たとえば、上述したように、バー候補の検出処理、バー識別処理、バーコードの復号処理、復号結果の判定処理などが行われる。ここで、バーコードの復号処理の結果を得るまでの処理をバーコード認識処理とすると、上記バー認識部14は、バーコード認識処理により得られた認識結果(復号結果)が有効な情報であるか否かを判定する認識結果(復号結果)の判定処理を行う(ステップS65)。
【0120】
この認識結果の判定処理では、バーコード認識処理の認識結果が所望の情報であるか否かを判定する。たとえば、バーコードの認識結果が所定桁数の情報であるか否かにより認識結果が有効であるか否かを判定する。また、バーコードの認識結果が図示しない辞書データベースに登録されている情報と一致するか否かにより認識結果が有効であるか否かを判定するようにしても良い。上記バーコード認識処理により得られた認識結果が有効であると判定した場合(ステップS65、YES)、上記バー認識部14は、バーコードの認識処理による処理結果を出力インターフェース16により外部に出力する(ステップS66)。
【0121】
上記バーコード認識処理により得られた認識結果が有効でないと判定した場合(ステップS65、NO)、上記バー認識部14は、さらに、当該画像に対するバーコードの認識処理がリトライ可能か否かを判定する(ステップS67)。バーコード認識処理のリトライは、たとえば、リトライの回数が制限されるようにしても良いし、当該入力画像に対する全処理時間が制限されるようにしても良い。上記判定によりリトライ不可と判定した場合(ステップS67、NO)、上記バー認識部14は、上記出力インターフェース16によりバーコードの認識が失敗した旨を示す情報を外部へ出力する。
【0122】
上記判定によりリトライ可能と判定した場合(ステップS67、YES)、上記バー認識部14は、当該画像に対するバーコードの認識処理を再実行すると判断する。バーコード認識処理を再実行すると判断した場合、上記バー認識部14あるいは上記フィードバック部15は、当該画像に対するバー認識処理の過程で得られた情報あるいはそれらの情報から判定される情報をフィードバック情報として画像分析部12にフィードバックする処理を行う(ステップS68及びS69)。ここでは、フィードバック部15がバー認識処理の過程で得られた情報からフィードバック情報を判定するものとする。この場合、上記フィードバック部15は、上記バー認識部14からバー認識処理の過程で得られた情報を取得し、フィードバック情報を判定する(ステップS68)。たとえば、背景とバーとの分離閾値をフィードバック情報とする場合、上記フィードバック部15は、上述したように、バー認識部14からバー候補の領域を示す情報を取得し、取得したバー候補の領域を示す情報に基づいて分離閾値を判定する。
【0123】
フィードバック情報を判定すると、上記フィードバック部15は、画像分析部12にフィードバック情報をフィードバックする。フィードバック情報がフィードバックされると、上記画像分析部12は、当該フィードバック情報に基づいて当該入力画像に対する画像分析処理を実行する(ステップS70)。この画像分析処理では、フィードバック情報に基づいて、当該入力画像に対する画像変換方法を決定する。このようなフィードバック情報に基づいて決定された画像変換方法は、上記画像変換部13に対して指定される。フィードバック情報に基づく画像変換方法が画像変換部13に指定されると、画像変換部13およびバー認識部14などは、上述したステップS63からの処理を再び実行する。
【0124】
なお、ステップS68−S70に続いて実行されるステップS63の画像変換処理が、第2の画像変換方法による画像変換処理に対応し、これを実行する画像変換部13が第2の画像変換部に相当している。また、ステップS68−S70、S63に続いて実行されるステップS64のバーコード認識処理が、第2のバーコード認識処理に対応し、これを実行するバー認識部14が第2のバー認識部に相当している。
【0125】
上記のような第5の処理例では、所定のバーコード認識処理では有効なバーコード認識結果が得られなかった場合であったも、バーコードの認識処理の過程で得られた情報に基づいて当該入力画像を分析し、入力画像を認識処理用の画像に変換するための最適な画像変換方法を決定することができる。すなわち、第5の処理例では、第1段階のバーコード認識処理で有効な認識結果が得られなかった場合であっても、高精度でバーコードの認識結果を得ることが可能な第2段階のバーコード認識処理を実行することが可能である。
【0126】
また、上記第5の処理例では、第1段階のバーコード認識処理で認識できなかった入力画像に対して、第2段階のバーコード認識処理により高精度なバーコード認識処理を実行するようになっている。従って、第5の処理例において、第1段階のバーコード認識処理は、上述した処理手順に限定されることなく、様々な処理手順による認識処理を行うようにすることが可能である。たとえば、第5の処理例としては、上記ステップS62を省略し、所定の画像変換方法で変換された画像により第1段階のバーコード認識処理を行うようにしても良い。この場合も、第2段階のバーコード認識処理では、第1段階のバーコード認識処理でバーコードの認識に失敗した入力画像に対して、第1段階のバーコード認識処理で得られた情報を用いて最適化された画像変換方法により入力画像を認識処理用の画像に変換し、その変換した画像に対してバーコード認識処理を実行できる。
【0127】
[1]
検知対象の画像を含む入力画像を取得する画像取得部と、
前記画像取得部により取得した入力画像を分析し、その分析結果に基づいて当該入力画像を認識処理用の形式の画像に変換するための画像変換方法を決定する画像分析部と、
前記画像分析部により決定された画像変換方法により前記画像取得部により取得した入力画像を認識処理用の画像に変換する画像変換部と、
前記画像変換部により得られた認識処理用の画像に対して検知対象の認識処理を行う検知対象認識部と、
を有することを特徴とする被対象認識装置。
【0128】
[2]
前記画像変換部は、複数種類の画像変換方法により入力画像を認識処理用の画像に変換する機能を有し、
前記画像分析部は、前記画像取得部により取得した入力画像の分析結果に基づいて、前記画像変換部が有している複数種類の画像変換方法から少なくとも1つの画像変換方法を選択する、
ことを特徴とする前記[1]に記載の被対象認識装置。
【0129】
[3]
前記画像分析部は、前記画像取得部により取得した入力画像に含まれる背景画像の濃度値を判定し、判定した背景画像の濃度値に基づいて当該入力画像に対する画像変換方法を決定する、
ことを特徴とする前記[1]に記載の被対象認識装置。
【0130】
[4]
前記画像分析部は、前記画像取得部により取得した入力画像に含まれる検知対象を構成する検知要素画像の濃度値を判定し、判定した検知要素画像の濃度値に基づいて当該入力画像に対する画像変換方法を決定する、
ことを特徴とする前記[1]に記載の被対象認識装置。
【0131】
[5]
前記画像分析部は、前記画像取得部により取得した入力画像に含まれる背景画像の濃度値と検知対象を構成する検知要素画像の濃度値とを判定し、判定した背景画像の濃度値と検知要素画像の濃度値とに基づいて当該入力画像に対する画像変換方法を決定する、
ことを特徴とする前記[1]に記載の被対象認識装置。
【0132】
[6]
検知対象の画像を含む入力画像を取得する画像取得部と、
前記画像取得部により取得した入力画像を認識処理用の形式の画像に変換する第1の画像変換部と、
前記第1の画像変換部により得られた認識処理用の画像に対して検知対象の認識処理を行う第1の検知対象認識部と、
前記第1の検知対象認識部による検知対象の認識が失敗した場合、前記第1の検知対象認識部における検知対象の認識処理の過程で得られた情報に基づいて当該入力画像を分析し、その分析結果に基づいて入力画像を認識処理用の画像に再変換するための画像変換方法を決定する画像分析部と、
前記画像分析部による分析結果に基づいて、当該入力画像を認識処理用の画像に再変換する第2の画像変換部と、
前記第2の画像変換部により得られた認識処理用の画像に対して検知対象の認識処理を行う第2の検知対象認識部と、
を有することを特徴とする被対象認識装置。
【0133】
[7]
被対象認識装置に用いられる被対象認識方法であって、
検知対象の画像を含む入力画像を取得し、
前記取得した入力画像を画像分析し、
前記入力画像に対する分析結果に基づいて当該入力画像を認識処理用の形式の画像に変換するための画像変換方法を決定し、
前記決定された画像変換方法により前記入力画像を認識処理用の画像に変換し、
前記変換により得られた認識処理用の画像に対して検知対象の認識処理を行う、
ことを特徴とする被対象認識方法。
【0134】
[8]
前記画像変換としては、入力画像を認識処理用の画像に変換するための複数種類の画像変換方法が実行可能であり、
前記画像変換方法の決定は、前記入力画像の分析結果に基づいて、前記画像変換として実行可能な複数種類の画像変換方法から少なくとも1つの画像変換方法を選択する、
ことを特徴とする前記[7]に記載の被対象認識方法。
【0135】
[9]
前記画像分析は、前記入力画像に含まれる背景画像の濃度値を判定し、
前記画像変換方法の決定は、前記画像分析により判定された背景画像の濃度値に基づいて当該入力画像に対する画像変換方法を決定する、
ことを特徴とする前記[7]に記載の被対象認識方法。
【0136】
[10]
前記画像分析は、前記入力画像に含まれる検知対象を構成する検知要素画像の濃度値を判定し、
前記画像変換方法の決定は、前記画像分析により判定された検知要素画像の濃度値に基づいて当該入力画像に対する画像変換方法を決定する、
ことを特徴とする前記[7]に記載の被対象認識方法。
【0137】
[11]
前記画像分析は、前記入力画像に含まれる背景画像の濃度値と検知対象を構成する検知要素画像の濃度値とを判定し、
前記画像変換方法の決定は、前記画像分析により判定された背景画像の濃度値と検知要素画像の濃度値とに基づいて当該入力画像に対する画像変換方法を決定する、
ことを特徴とする前記[7]に記載の被対象認識方法。
【0138】
[12]
被対象認識装置に用いられる被対象認識方法であって、
検知対象の画像を含む入力画像を取得し、
前記入力画像を認識処理用の形式の画像に第1の画像変換方法により変換し、
前記第1の画像変換方法により得られた認識処理用の画像に対して検知対象の認識処理を行い、
前記検知対象の認識が失敗した場合、前記検知対象の認識処理の過程で得られた情報に基づいて当該入力画像を分析し、
前記入力画像に対する分析結果に基づいて入力画像を認識処理用の画像に再変換するための第2の画像変換方法を決定し、
前記第2の画像変換方法により当該入力画像を認識処理用の画像に再変換し、
前記再変換により得られた認識処理用の画像に対して検知対象の認識処理を再度実行する、
ことを特徴とする被対象認識方法。
【符号の説明】
【0139】
1…バーコード認識装置、2…カメラ、11…画像インターフェース、12…画像分析部、13…画像変換部、14…バー認識部、15…フィードバック部、16…出力インターフェース、21…濃度値推定部、22…変換方法決定部、23…媒体濃度推定部、24…バー濃度推定部、26…変換方法決定部、31…制御装置、32…供給装置、33…搬送装置、34…区分装置、41…バー濃度推定部、42…媒体濃度推定部

【特許請求の範囲】
【請求項1】
検知対象の画像を含む入力画像を取得する画像取得部と、
前記画像取得部により取得した入力画像に対して検知対象の認識処理を行う第1の検知対象認識部と、
前記第1の検知対象認識部による検知対象の認識が失敗した場合、前記第1の検知対象認識部における検知対象の認識処理の過程で得られた情報に基づいて前記入力画像を認識処理用の画像に再変換するための画像変換方法を決定する画像分析部と、
前記画像分析部により決定した画像変換方法で前記入力画像を認識処理用の画像に変換する画像変換部と、
前記画像変換部により得られた認識処理用の画像に対して検知対象の認識処理を行う第2の検知対象認識部と、
を有する被対象認識装置。
【請求項2】
前記第1の検知対象認識部による検知対象の認識が失敗した場合、前記第1の検知対象認識部における検知対象の認識処理の過程で得られた情報からフィードバック情報を判定するフィードバック部を有し、
前記画像分析部は、前記フィードバック部が判定したフィードバック情報に基づいて画像変換方法を決定する、
前記請求項1に記載の被対象認識装置。
【請求項3】
前記フィードバック情報は、前記入力画像における背景画像と検知対象を構成する検知要素画像とを分離するための分離閾値である、
前記請求項2に記載の被対象認識装置。
【請求項4】
前記画像分析部は、前記フィードバック情報としての前記分離閾値を基準に基づいて画像変換方法を決定する、
前記請求項3に記載の被対象認識装置。
【請求項5】
前記画像分析部は、前記フィードバック情報としての前記分離閾値を基準として作成した変換テーブルに基づいて画像変換方法を決定する、
前記請求項4に記載の被対象認識装置。
【請求項6】
前記フィードバック情報は、前記入力画像における検知対象の画像領域候補の画像における濃度ヒストグラムである、
前記請求項2に記載の被対象認識装置。
【請求項7】
前記画像分析部は、前記フィードバック情報としての前記濃度ヒストグラムから検出する複数種類の濃度値に基づいて前記入力画像を認識処理用の画像に再変換するための画像変換方法を決定する、
ことを特徴とする前記請求項6に記載の被対象認識装置。
【請求項8】
被対象認識装置に用いられる被対象認識方法であって、
検知対象の画像を含む入力画像を取得し、
前記入力画像に対して検知対象を認識する第1の認識処理を行い、
前記第1の認識処理による検知対象の認識が失敗した場合、前記第1の認識処理の過程で得られた情報に基づいて前記入力画像を認識処理用の画像に変換するための画像変換方法を決定し、
前記決定した画像変換方法で前記入力画像を認識処理用の画像に変換し、
前記画像変換方法による画像変換で得られた認識処理用の画像に対して検知対象を認識する第2の認識処理を行う、
被対象認識方法。
【請求項9】
さらに、前記第1の認識処理による検知対象の認識が失敗した場合、前記画像変換方法を決定するためのフィードバック情報を前記第1の認識処理の過程で得られた情報から判定し、
前記画像変換方法は、前記判定したフィードバック情報に基づいて決定する、
前記請求項1に記載の被対象認識方法。
【請求項10】
前記フィードバック情報は、前記入力画像における背景画像と検知対象を構成する検知要素画像とを分離するための分離閾値である、
前記請求項2に記載の被対象認識方法。
【請求項11】
前記画像変換方法は、前記フィードバック情報としての前記分離閾値に基づいて決定する、
前記請求項3に記載の被対象認識方法。
【請求項12】
前記画像変換方法は、前記フィードバック情報としての前記分離閾値を基準として作成した変換テーブルに基づいて決定する、
前記請求項4に記載の被対象認識方法。
【請求項13】
前記フィードバック情報は、前記入力画像における検知対象の画像領域候補の画像における濃度ヒストグラムである、
前記請求項2に記載の被対象認識方法。
【請求項14】
前記画像変換方法は、前記フィードバック情報としての前記濃度ヒストグラムから検出する複数種類の濃度値に基づいて決定する、
前記請求項6に記載の被対象認識方法。
【請求項15】
入力画像に対する検知対象の認識処理で得られる情報に基づいて画像変換方法を決定する画像分析部と、
前記画像分析部により決定した画像変換方法で変換した入力画像に対して検知対象の認識処理を行う検知対象認識部と、
を有する被対象認識装置。

【図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


【公開番号】特開2013−77306(P2013−77306A)
【公開日】平成25年4月25日(2013.4.25)
【国際特許分類】
【出願番号】特願2012−259563(P2012−259563)
【出願日】平成24年11月28日(2012.11.28)
【分割の表示】特願2008−151828(P2008−151828)の分割
【原出願日】平成20年6月10日(2008.6.10)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】