(57)【特許請求の範囲】
【請求項１】
バーコードを検出する方法であって、前記方法は、
画像から複数の線状のブロブを検出するステップと、
検出した各ブロブに対して検出された前記各ブロブを中央で垂直に２分する仮想線を得るステップと、
前記仮想線の傾きおよび位置にしたがって特徴空間内で前記仮想線の少なくとも１つのクラスタを決定するステップと、
１つの前記クラスタ内の前記ブロブを前記バーコードとして認識されるべき領域を規定する特定の矩形形状に割り当てるステップと
を含む方法。
【請求項２】
前記方法は、さらに少なくとも１つの矩形形状をバーコードとして推定されるブロブまたは複数のブロブが存在するブロブ領域に割り当て、前記仮想線を得る前にバーコード規格で規定されたバーコードのサイズに依存して前記矩形形状を削除するステップを含む、請求項１に記載の方法。
【請求項３】
前記方法は、さらに前記割り当てるステップの後に、前記ブロブの間の間隔を使用して少なくとも１つの特定の矩形形状内の前記ブロブを排除するステップを含む、請求項１に記載の方法。
【請求項４】
前記少なくとも１つのクラスタを決定するステップは、前記仮想線に対してハフ変換を適用し、前記仮想線のそれぞれについて特徴ベクトルを生成するステップを含む、請求項１に記載の方法。
【請求項５】
前記少なくとも１つのクラスタを決定するステップは、直交座標系で定義される特徴空間内の距離に応答して少なくとも１つのクラスタへと特徴ベクトルをクラスタリングするステップを含む、請求項１に記載の方法。
【請求項６】
バーコードを検出するため、メモリに保持され、情報処理装置のプロセッサにより実行されるプログラムであって、前記プログラムは前記情報処理装置に対し、バーコードを検出する方法のステップを実行させ、前記方法が、
画像から複数の線状のブロブを検出するステップと、
検出した各ブロブに対して検出された前記各ブロブを中央で垂直に２分する仮想線を得るステップと、
前記仮想線の傾きおよび位置にしたがって特徴空間内で前記仮想線の少なくとも１つのクラスタを決定するステップと、
１つの前記クラスタ内の前記ブロブを前記バーコードとして認識されるべき領域を規定する特定の矩形形状に割り当てるステップと
を含む、プログラム。
【請求項７】
前記方法は、さらに少なくとも１つの矩形形状をバーコードとして推定されるブロブまたは複数のブロブが存在するブロブ領域に割り当て、前記仮想線を得る前にバーコード規格で規定されたバーコードのサイズに依存して前記矩形形状を削除するステップを含む、請求項６に記載のプログラム。
【請求項８】
前記方法は、さらに前記割り当てるステップの後に、前記ブロブの間の間隔を使用して少なくとも１つの特定の矩形形状内の前記ブロブを排除するステップを含む、請求項６に記載のプログラム。
【請求項９】
前記少なくとも１つのクラスタを決定するステップは、前記仮想線に対してハフ変換を適用し、前記仮想線のそれぞれについて特徴ベクトルを生成するステップを含む、請求項６に記載のプログラム。
【請求項１０】
前記少なくとも１つのクラスタを決定するステップは、直交座標系で定義される特徴空間内の距離に応答して少なくとも１つのクラスタへと特徴ベクトルをクラスタリングするステップを含む、請求項６に記載のプログラム。
【請求項１１】
情報処理装置を含むバーコード検出システムであって、前記情報処理装置は、
少なくとも１つのバーコードを含む画像を格納するメモリを含む画像蓄積部と、
矩形形状を線状のブロブに割り当て、バーコード規格で規定されたバーコードのサイズに依存して前記矩形形状を削除するブロブ・フィルタリング部と、
ブロブを２分する仮想線を生成してハフ変換を適用して直交座標系で定義される特徴空間における特徴ベクトルを生成し、前記特徴空間に前記特徴ベクトルを写像するクラスタリング部と
を含み、
前記クラスタリング部は、前記特徴ベクトルを、前記特徴空間内の距離に応じてクラスタ化し、クラスタ内の前記ブロブを前記バーコードとして認識されるべき領域を規定する特定の矩形形状に割り当てる、システム。
【請求項１２】
前記情報処理装置は、さらに修正部を含み、前記修正部は、前記ブロブの間の間隔に依存して前記特定の矩形形状内の前記ブロブを排除する、請求項１１に記載のバーコード検出システム。
【請求項１３】
前記修正部は、前記特定の矩形形状を、ブロブの最小および最大の間隔長に依存して他の特定の矩形形状と統合する、請求項１２に記載のバーコード検出システム。
【請求項１４】
前記情報処理装置は、ネットワークから少なくとも１つのバーコードを含む前記画像を受領し、ネットワークに接続された装置に認識結果を戻す、請求項１１に記載のバーコード検出システム。
【請求項１５】
バーコードを検出する方法であって、前記方法は、
画像から複数の線状のブロブを検出するステップと、
少なくとも１つの矩形形状をバーコードとして推定されるブロブまたは複数のブロブが存在するブロブ領域に割り当てるステップと、
バーコード規格で規定されたバーコードのサイズに依存して前記矩形形状を削除するステップと、
検出した各ブロブに対して検出された前記各ブロブを中央で垂直に２分する仮想線を得るステップと、
前記仮想線の傾きおよび位置にしたがって特徴空間内で前記仮想線の少なくとも１つのクラスタを決定するステップと、
１つの前記クラスタ内の前記ブロブを前記バーコードとして認識されるべき領域を規定する特定の矩形形状に割り当てるステップと
前記ブロブ間の間隔に依存して少なくとも１つの特定の矩形形状内の前記ブロブを排除するステップと
を含み、
前記少なくとも１つのクラスタを決定するステップは、前記仮想線に対してハフ変換を適用し、前記仮想線のそれぞれについて特徴ベクトルを生成するステップと、前記特徴ベクトルを直交座標系で定義される特徴空間内の距離に応答して少なくとも１つのクラスタへとクラスタリングするステップを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード検出に関し、より詳細にはバーコード検出の精度および実時間特性の改善に関する。
【背景技術】
【０００２】
バーコードは、種々の市販製品、商品などをタグ付けするために広く用いられている。通常バーコードは、専用のバーコード用レーザ・リーダによって読み取られ、バーコードとしてエンコードされた識別番号が得られる。しかしながら、バーコードにエンコードされた情報は、バーコードが消費者のデバイスによりデコードできたとすると、消費者にとっても利便性が良い。
【０００３】
近年、スマートホン、タブレット型コンピュータまたはウェアラブル・デバイスといった種々の可搬型デバイスが普及している。このような可搬型デバイスは、またカメラ機能およびＱＲコード（登録商標）といったエンコード化されたコードのデコーダを搭載することができる。ＱＲコード（登録商標）といったエンコード規格は、既知のものであって広く使われているものの、リニア・バーコードは、依然として商品、製品または他の市販物品をタグ付けするための主要なエンコード規格の１つとなっている。このため、リアルタイムで物品のバーコードを読み取ることは有用である。
【０００４】
バーコードを検出するための多くの既存技術が存在し、非特許文献１(A. Zamberletti, et al., Robust angle invariant 1 d barcode detection, In Pattern Recognition (ACPR), 2013 2nd IAPR Asian Conference, pp. 160-164, Nov. 2013)では、バーコード内の複数のバーを検出するためにハフ変換する。
【０００５】
Zamberlettiらは、バーコード中のバーを認識することに成功してはいるものの、多くの偽のポジティブ・ラインが認識され、バーコードの誤検出につながっていた。
【０００６】
特許文献１(US200100006191 A1)では、標準的なカラー・ブロブ分析を使用して複数のラインをクラスタリングする技術が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】US200100006191 A1
【非特許文献】
【０００８】
【非特許文献１】A. Zamberletti, et al., Robust angle invariant 1 d barcode detection, In Pattern Recognition (ACPR), 2013 2nd IAPR Asian Conference, pp. 160-164, Nov. 2013
【非特許文献２】J. Matas et al., Robust wide baseline stereo from maximally stable external regions, In Proc. of the British Machine Vision Conference, pp.384-393, 2002
【非特許文献３】X. Ren et al. Figure-ground segmentation improves handled object recognition in egocentric video, In Computer Vision and Pattern Recognition (CVPR), 2010, IEEE Conference, pp. 3137-3144, 2010
【非特許文献４】S. Wachenfeld et.al. Robust recognition of 1-d barcodes using camera phones, In Proc. of 19th International Conference on Pattern Recognition (ICPR 2008), pp. 1-4, 2008
【発明の概要】
【発明が解決しようとする課題】
【０００９】
したがって、物体上のバーコードを可搬性デバイスといった情報処理装置で読み取り、それを実時間スケールでデコードすることも可能と言える。さらにバーコードがプリントされた物体は、時としてプラスチック・パッケージのように柔軟性がある。
【００１０】
さらには、物品には時として複数のバーコードが、互いに隣接してプリントされている場合もあり、このような状況は、物体画像中においてバーコード・セットを識別する際にさらに別の問題を生じさせることになっている。
【００１１】
製品、商品および他の市販物品は、広く輸出され、多くの国で販売されており、このため、物品の消費者や取扱者は、バーコードにエンコードされた情報を、実時間スケールでそのネイティブ言語で知りたいこともある。
【００１２】
本発明は、上述した従来技術に鑑みてなされたものであり、本発明の目的は、可搬型装置（とりわけハンドフリーのウェアラブル・カメラ類）によるバーコードの高い認識性を有するバーコード検出システムを提供することにある。
【００１３】
本発明の他の目的は、互いに近接して配置されるかまたは重なり合ったバーコードを認識するために堅牢性の改善されたバーコード検出システムを提供することにある。
【００１４】
本発明のさらなる目的は、改善された堅牢性を備えつつ、実時間でバーコードを検出するための方法を提供することにある。
【課題を解決するための手段】
【００１５】
本発明によれば、バーコードを検出する方法であって、前記方法は、
画像から複数のブロブを検出するステップと、
検出した各ブロブに対して検出された前記各ブロブを中央で垂直に２分する仮想線を得るステップと、
前記仮想線の傾きおよび位置にしたがって特徴空間内で前記仮想線の少なくとも１つのクラスタを決定するステップと、
１つの前記クラスタ内の前記ブロブを前記バーコードに対応する矩形形状にグループ化するステップと
を含む。
【００１６】
前記方法は、さらに少なくとも１つの矩形形状をバーコードに対応するブロブ領域に割り当て、前記仮想線を得る前にバーコードのサイズに依存して前記矩形形状を削除するステップを含むことができる。
【００１７】
前記方法は、さらに前記グループ化するステップの後に、前記ブロブの間の間隔を使用して少なくとも１つの矩形形状に対する前記ブロブの割り当てを修正するステップを含むことができる。
【００１８】
前記少なくとも１つのクラスタを決定するステップは、前記仮想線に対してハフ変換を適用し、前記仮想線のそれぞれについて特徴ベクトルを生成するステップを含むことができる。
【００１９】
前記少なくとも１つのクラスタを決定するステップは、直交座標系で定義される特徴空間内の距離に応答して少なくとも１つのクラスタへと特徴ベクトルをクラスタリングするステップを含むことができる。
【００２０】
本発明の他の側面によれば、バーコードを検出するためのプログラムおよびシステムが提供できる。
【００２１】
本発明のバーコード検出技術は、改善された認識精度および改善された計算速度を有し、本発明によれば、スマートホン、タブレット型コンピュータおよびハンドフリー環境を提供するウェアラブル・デバイスに好ましく適用することができる。
【図面の簡単な説明】
【００２２】
【図１】図１は、本発明のバーコード検出システム１００の実施形態を示す。
【図２】図２は、本実施形態のバーコード検出システム１００に使用される情報処理装置のソフトウェア実装態様を示す。
【図３】図３は、本実施形態のバーコード検出システムにおいて実行される全体プロセスを示す。
【図４】図４は、ステップ４００から開始するフィルタリング・プロセスの処理を示す。
【図５】図５は、図３のステップＳ３０５のブロブ・クラスタリングの処理を示す。
【図６】図６は、本発明に従ったハフ空間へのプロットを示す。
【図７】図７は、図３に記載したステップＳ３０６のポスト・プロセッシングの処理を示す。
【図８】図８は、本実施形態の処理における画像認識を示す。
【図９】図９は、本発明のプログラムがサーバ・コンピュータ９０６に実装された場合の他の実施形態を示した図。
【図１０】図１０は、２つのデータセットに対する結果をグラフィカルに表示として示す。
【図１１】図１１は、本バーコード検出システム１００において使用される情報処理装置のハードウェア実装態様を示す。
【符号の説明】
【００２３】
１００：バーコード検出システム
１０１：スマートホン
１０３：バーコード
２００：ソフトウェア実装態様
２０１：入力インタフェース
２０２：画像蓄積部
２０３：ブロブ検出部
２０４：ブロブ・フィルタ部
２０５：ハフ・クラスタリング部
２０６：修正部
２０７：認識バーコード記憶部
２０８：出力インタフェース
【発明を実施するための形態】
【００２４】
以下、本発明について図面を伴う特定の実施形態を使用して説明するが、上述した特定の実施形態は、本発明を限定するものではなく、本発明を理解するためにのみ記載されたものである。図１は、本バーコード検出システム１００の実施形態を示す。バーコード検出システム１００は、例えば、ＡＮＤＲＯＩＤ（登録商標）、Ｃｈｒｏｍｅ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）またはＩＯＳ（登録商標）といった適切なオペレーティング・システム（以下、単にＯＳとして参照する。）を搭載したスマートホン１０１など、如何なる形式の情報処理装置にでも実装することができる。可搬型装置は、スマートホン１０１に限定されるものではなく、タブレット型コンピュータ、ノートブック型コンピュータ、デスクトップ型コンピュータおよびサーバ・コンピュータの他、カメラ機能を含むウェアラブル・デバイスも本発明においては使用することができる。以下、本発明につき、説明の簡略化のため、情報処理装置がスマートホン１０１として実装されるものとして説明を行う。
図１に示す実施形態では、スマートホン１０１のディスプレイは、バーコード１０３がプリントされた物品の画像を表示している。本発明は、可搬型装置が取得した画像からバーコード１０３を決定および検出する。図１に示すように、バーコード１０３の画像は、物品の形状によって変形しており、光の反射がラインのコントラストを低下させている。本発明におけるバーコードは、ＪＡＮコード、ＩＴＦコード、ＩＴＦ−１４コード、ＮＷ−７コード、ＣＯＤＥ３９、ＣＯＤＥ１２８、ＵＰＣ、ＵＰＣ−Ａ、ＵＰＣ−Ｅ、またはＧＳＩエンコーディングから選択することができる。バーコード検出システム１００は、装置の特定の設定に依存して、静止画像または動画像からバーコード情報を取得することができる。
【００２５】
図２は、本情報処理装置のソフトウェア実装形態２００を示す図である。図２に示すソフトウェア・モジュールは、情報処理装置のＣＰＵがソフトウェアを実行することにより実現される。情報処理装置の複数のモジュールは、画像蓄積部２０２と、ブロブ検出部２０３と、ブロブ・フィルタ部２０４とを含むことができる。
【００２６】
画像蓄積部２０２は、情報処理装置の入力インタフェース２０１を通してカメラ機能によりキャプチャしたか、またはインターネットといったネットワークを介して受信した静止画像またはビデオ・フレームを格納する。ブロブ検出部２０３は、画像中のブロブを、従来のＭＳＥＲ技術（非特許文献２：J. Matas et al., Robust wide baseline stereo from maximally stable external regions, In Proc. of the British Machine Vision Conference, pp.384-393, 2002）を使用して検出する。検出されたブロブには、ラインの検出精度を改善するためにブロブ・フィルタ部２０４が適用され、長さ、幅またはそれらいずれか一方または両方を判断することによりノイズ・ブロブが排除される。
【００２７】
情報処理装置は、ハフ・クラスタリング部２０５と、修正部２０６と、認識バーコード記憶部２０７といったソフトウェア・モジュールを含むことができる。ハフ・クラスタリング部２０５は、本発明に従い、ブロブのクラスタリングを実行する。ハフ・クラスタリング部２０５は、ブロッブに対してブロブの中央を垂直に横断して延びる仮想線を規定する。ハフ・クラスタリング部２０５は、さらに、ライン検出の目的で、仮想線に対してハフ変換を適用し、各仮想線に対して特徴ベクトルを生成する。その後、ハフ・クラスタリング部２０５は、上述の特徴ベクトルをハフ空間、すなわち直交座標系として規定される特徴空間に写像することで、バーコード領域に対応する特定の矩形形状のブロブをクラスタ化することを可能とする。
【００２８】
上述の矩形形状は、認識されたバーコードの領域を規定する“境界ボックス”に対応する。以下、“矩形形状”は、バーコードとして推定または決定されたブロブ領域を参照するものとする。ハフ・クラスタリング部２０５は、さらに、ブロブをクラスタリングの結果にしたがって、特定の矩形形状に割り当てる。この段階で、粗々のバーコード候補が生成される。ハフ・クラスタリング部は、より詳細に後述する。
【００２９】
修正部２０６は、上述した粗々のバーコード候補を、ブロブ間の間隔およびバーコード規格を考慮して排除することにより修正すると共に、複数の矩形形状を妥当な１つのバーコードへと統合し、認識の結果としての最終矩形形状を生成する。認識バーコード記憶部２０７は、バーコードにエンコードされた情報をデコードするための最終的なバーコードデータを格納する。
【００３０】
情報処理装置は、ヒューマン・インタフェースまたはインターネットや公衆電話回線などを介したデータ通信を提供するための出力インタフェース２０８を備えている。本発明の１実施形態においては、情報処理装置は、可搬型装置として実装することができ、当該可搬型装置は、図２に示す各機能モジュールを備えることができる。本発明の他の実施形態においては、可搬型装置は、カメラ機能を備え、可搬型装置は、バーコードを有する物品の画像を撮影し、当該画像について、バーコード認識を依頼し、そのデコード結果を得るためにサーバ・コンピュータなどの遠隔コンピュータに送付する。このような実施形態は、可搬型装置が、軽量で電力的制限のある所謂ウェアラブル・デバイスとして実装される場合に有用となる。
【００３１】
図３は、本バーコード検出システムにおいて実行される全体のプロセスのフローチャートである。プロセスは、ステップＳ３００から開始し、ステップＳ３０１で物品の画像がカメラ機能により撮影される。この際、物品の画像は、静止画像でもビデオ画像でも良い。さらに、本発明に従い、当該画像は、１ショットまたは１フレーム内に複数のバーコード画像を含んでいても良い。次いで、プロセスは、ステップＳ３０２で、ＭＳＥＲ技術（非特許文献２）を使用してバーコードのブロブを判定する。
【００３２】
その後、ステップＳ３０３では、プロセスは、バーコードとするべきブロブを、形状および高さ・幅の比を使用してフィルタする。その後、プロセスは、ステップＳ３０４でバーコード候補とすることができる複数の特定の矩形形状にクラスタリングする。その後、ステップＳ３０５でポスト・プロセッシングを適用して矩形形状に規定されたバーコード候補ブロブを修正するか、または複数の矩形形状を１つの矩形形状へと再割り当てするか、或いはこれら両方を適用する。その後、プロセスは、バーコードとしての最終的な認識結果を決定し、当該結果を適切な記憶空間内に格納する。
【００３３】
以下、ステップＳ３０３の詳細な処理、すなわち、フィルタリング処理を詳述する。図４は、フィルタリング処理のプロセスを示す。当該プロセスは、ステップＳ４００から開始して、ステップＳ４０１で処理の対象とするブロブを画像蓄積部２０２から読み出す。その後、プロセスは、ステップＳ４０２で典型的なバーコード規格の所定の長さおよび幅を使用してブロッブまたは複数のブロブに対して矩形形状を割り当てる。本発明の特定の実施形態では、長さと高さの比（以下、アスペクト比として参照する。）として１０を、そのしきい値として使用する。
【００３４】
この処理では、ブロブまたは複数のブロブに対する矩形形状は、その中心位置Ｃｉ、幅ｗｉ、および配置角αｉにより規定される。ここで、配置角αｉは、画像中における矩形形状の面内傾斜角を参照する。数値１よりも小さなアスペクト比を有する矩形形状が存在する場合、認識の座標軸を９０°回転させ、バーコード候補に追加するために考慮することができる。ステップＳ４０３では、プロセスは、しきい値のアスペクト比の他、バーコード規格に従い、細長形状についてのサイズ基準を使用して矩形形状を削除する。その後、プロセスは、ステップＳ４０４でバーコード候補とすべき向きのそろった、有意な矩形形状を選択する。その後、プロセスは、ステップＳ４０５に進んでフィルタ処理を終了させる。上述した削除は、認識から不必要なノイズ・ブロブを効率的に排除する。
【００３５】
図５は、図３のステップＳ３０４におけるブロブ・クラスタリングの処理を示す。当該プロセスは、ステップＳ５００から開始し、ステップＳ５０１で、フィルタされたブロブのデータを適切な記憶空間から読み出し、その後、ステップＳ５０２で、中央垂直線、すなわちブロブを２分する仮想線を計算する。当該プロセスは、単純なハフ変換を使用する従来プロセスに対し新規なものである。本発明では、上述の仮想線を使用してバーコード・ラインのブロブを特定のバーコード候補へとハフ変換によりクラスタリングする。
【００３６】
ここで、仮想線を式“ｙ＝ａｊｘ＋ｂｊ”として表現する。サフィックス“ｊ”は、各仮想線の識別値である。複数のブロブが特定のバーコード候補に含まれている場合、ハフ空間（（ｂ，ａ）の直交座標系として）へのプロットは、ブロブについて理想的には同一の傾きの直線を中心としたクラスタまたは複数のクラスタを与える。以後、本明細書では、上述したハフ空間を、特徴空間として参照する。その後、ステップＳ５０３で仮想線のパラメータが、ハフ空間の座標系へと変換され、ステップＳ５０４で特徴ベクトル（ｂｊ，ａｊ）が生成される。
【００３７】
図６は、本発明に従ったハフ空間へのプロット６００を概念的に示す。図６に示すプロットは、複数の仮想線が、画像中で、ａｒｃｔａｎ（ａｊ）の傾きを有するものとした。計算された仮想線の特徴ベクトルとして参照されるパラメータ（ｂｊ，ａｊ）がハフ空間６０１にプロットされると、同一のバーコードに属する（ｂｊ，ａｊ）を有する仮想線は、ライン６０３で示すように、同一のパラメータ“ａ”を有することになる。実装上では、位置および角度が用いられる。同一の処理が鮮明なバーコードに適用されると、同様なプロットは、特徴空間の座標軸“ａ”上の単一ポイントに収束する。図６は、クラスタ６０４およびクラスタ６０５の出現態様を示している。バーコードが、画像中に存在する場合、バーコードのバーは、同一の傾きで矩形領域内に出現することになる。このことは、仮想線の傾きが同一となることを示す。これは、理想的には、特徴空間への仮想線のプロットは、ノイズを考慮しない場合、単一点を形成することを意味する。クラスタリングは、同一のバーコードと判断されるべきしきい値距離を設定し、かつバーコードに含まれるべき最小の数を設定することにより実行することができる。
【００３８】
プロセスは、その後、ステップＳ５０５で特徴空間内において特徴ベクトルをクラスタ化して単一の矩形形状に割り当てるべきブロブを選択する。本発明の特定の実施形態では、特徴空間中の特徴ベクトルは、バーコード領域の境界を削減するためにも使用することができる。このストラテジーは、２つのパラメータ（１）特徴ベクトルのクラスタ間には最小の距離が存在すること、および（２）クラスタ中の最小の点数を含む。これは、特徴ベクトルがブロブの仮想線を表すので、同一の矩形形状に含まれる特徴ベクトルは、最小数の特徴ベクトルを含み、かつ水平のｂ軸に沿って所定の距離を持って分布するためである。上述した距離および点数は、特定の用途に応じて選択することができる。本発明では、当然のこととして、特定の実装形態に応じてクラスタリング法に関しては他のクラスタリング法を使用することもできる。
【００３９】
ステップＳ５０６でプロセスは、特定の矩形形状についてのバーコードの候補を決定し、その後、ステップＳ５０７でバーコードとして認識されるべきブロブを取り囲むバウンディング・ボックスを決定する。さらにその後、プロセスは、当該矩形形状を過渡的なバーコード候補と判断してその結果をステップＳ５０８で適切な記憶空間に格納し、処理をステップＳ５０９で終了する。
【００４０】
図７は、図３に示したステップＳ３０５のポスト・プロセッシングの処理を示す。ポスト・プロセッシングは、バーコード・ラインからライン状のノイズを排除するか、または矩形形状を統合することにより、バーコード認識を修正するプロセスである。当該プロセスは、ステップＳ７００から開始し、ステップＳ７０１で、プロセスは、特定の矩形形状の中のバーコード・ライン候補を選択する。その後、ステップＳ７０２でプロセスは、ライン・ブロブをバーコードの方向、すなわち仮想線の方向に沿ってソートし、ステップＳ７０３で候補ラインのブロブまたは複数のブロブを、対象のライン・ブロブの間の間隔が所定のしきい値よりも大きいか否かの基準により、排除する。このしきい値は、バーコード規格の要請によって決定される。その後、プロセスは、ステップＳ７０４で、同一のラインにある交差したもの以外の候補ラインの複数のペアを決定する。
【００４１】
プロセスは、上述の複数のペアが存在する場合、ライン・ブロブのセットが、単一のバーコードに分類されるか否かを判断し、ステップＳ７０５で、上述したブロブのセットを単一のバーコード候補に統合し、バーコード候補を修正する。上述した統合の基準は、ライン・ブロブの最小間隔長および最大間隔長とすることができる。２つのバーコード候補が、最小値および最大値の間の距離で近接して存在する場合、２分線に沿った位置が十分に近いことを考慮して、隣接する２つの矩形形状は、１つの矩形形状へと統合される。ステップＳ７０６で全てのブロブについて修正したバーコード候補を決定すると、プロセスは、ステップＳ７０７に進んで終了する。
【００４２】
図８は、サンプル・バーコード画像を使用して本実施形態を画像的に示したものを示す。サンプル・バーコード画像は、（１）ＡｒＴｅ−Ｌａｂローテイテッド・データセット（非特許文献１）および（２）Ｉｎｔｅｌ（登録商標）エゴセントリック・オブジェクト・リコグニッション・データセット（非特許文献３：X. Ren et al. Figure-ground segmentation improves handled object recognition in egocentric video, In Computer Vision and Pattern Recognition (CVPR), 2010, IEEE Conference, pp. 3137-3144, 2010）である。
【００４３】
処理は、（ａ）から（ｅ）へと進行し、カラム（ｅ）の結果は、図７に示したポスト・プロセッシングを適用した後に得られたものであり、最終的に決定されたブロックが、それぞれの矩形により示されている。図８に示すように、本発明は、複数のバーコードが１つの画像中に存在するか、や、画像がバーコード以外の人間の手、カップ、およびその他の物品の画像を含んでいるかによらず、バーコードについて良好に認識する。
【００４４】
図９は、本発明の別の実施形態９００を示すものであり、本発明のプログラムは、サーバ・コンピュータ９０６に実装されている。図９に示した実施形態は、可搬型装置が、スマートホンやタブレット型コンピュータに対して比較的低い性能を有している場合に有用である。このことは、可搬型装置がウェアラブル・デバイス９０３として実装されている場合に発生する。ウェアラブル・デバイスは、メガネ型のものに限定されるものではなく、他にもハンドセット型、チェストセット型、アームセット型およびヘッドセット型とすることができる。
【００４５】
例えば、ウェアラブル・デバイス９０３が、その視野内にバーコードを見たものとする。ユーザが当該バーコードにエンコードされた情報を知りたい場合、ユーザは、バーコードの画像を撮影してＨＴＴＰなどの適切なデータ転送プロトコルを使用して画像をサーバ９０６に送付する。サーバ９０６は、本発明のプログラムを実装しており、受領したバーコード画像を本発明にしたがって解析することができる。
【００４６】
サーバの解析の後、解析の結果は、ウェアラブル・デバイス９０３に戻されて、バーコードにエンコードされている情報が提供される。図９に示した実施形態は、所謂“クラウド  サービス”として実装することができ、ユーザがスマートホン９０４よりも軽量なデバイスを携行することを可能とし、さらにまた物品上に携行型装置を位置決めすること無く、バーコードの情報にアクセスすることを可能とする。さらに他の実施形態では、スマートホン９０４は、バーコード画像をウェアラブル・デバイスから受領し、バーコードをデコードすることができる。その後、デコードされた情報は、ウェアラブル・デバイス９０３に戻されてウェアラブル・デバイスのユーザがデコードされた情報を使用することが可能とされる。
【００４７】
本発明者らは、さらに非特許文献１に記載された従来技術と数値的に比較することにより本発明の検証を行った。その評価結果を以下詳細に説明する。
【００４８】
最初のデータセットは、ＡｒＴｅ−Ｌａｂローテーテッド・バーコード・データセット（拡張バージョン）１（非特許文献１）から選択した。これは、異なった電話で取得されたＥＡＮバーコードの３６５画像から構成されている。非特許文献２の結果は、上述の画像のうち１２９のサブセットのみが使用されている。本発明では、サンプル画像の全セットを使用して比較した。第２のデータセットは、非特許文献４（S. Wachenfeld et.al. Robust recognition of 1-d barcodes using camera phones, In Proc. of 19th International Conference on Pattern Recognition (ICPR 2008), pp. 1-4, 2008）からＷＷＵミュエンスター（Ｍｕｅｎｓｔｅｒ）・バーコード・データベース２である。これは、Ｎ９５携帯電話で撮影したＥＡＮおよびＵＰＣ−Ａバーコードを、１，０５５画像含んでいる。
【００４９】
比較を簡略化するために、本発明者らは、非特許文献１と同様の尺度を使用した。主な尺度は、グランド・トルスと検出値との間のＪａｃｃａｒｄ指標を使用したバウンディング・ボックスの全検出精度を評価することである。検出結果Ｒおよびグラウンド・トルスＧの両方が、下記式により画像全体にわたりバイナリ・マスクとして与えられる。本実施例におけるこれらのデータセットを、表１に纏める。
【００５０】
【数１】
0006455832.tif 000002
【００５１】
【表１】
0006455832.tif 000003
【００５２】
本発明では、非特許文献１におけるＪａｖｇ．を、データセット全体にわたり、平均Ｊａｃｃａｒｄ精度として参照した。全検出率Ｄは、少なくとも０．５Ｊａｃｃａｒｄ精度を達成したデータセット中のファイルの割合に相当するものとした（これはまた非特許文献２のＯＡｂｂとして参照されるものである）。
【００５３】
【数２】
0006455832.tif 000004
上記式中、Ｓは、データセット内のファイルのセットである。精度変動を完全とし、かつ検出するために、しきい値を、０．１のステップで設定した。図１０に２つのデータセットについての結果を、グラフ表示としてまとめる。
本発明者らの方法と、非特許文献１との間の検出精度の比較を、表２に示す。Ｊａｃｃａｒｄしきい値が０．５について、比較例ではそれぞれ８０．５％、８２．９％のところ、本発明（Ｅｘｐ１として参照する。）は、Ａｒ−Ｔｅ−Ｌａｂローテーテッド・データセットについて、バーコードの検出を８９．３％、ミュエンスター・データセットについては９６．３％で成功した。両方のデータセットについての全検出プロファイルを図１０に示す。
【００５４】
【表２】
0006455832.tif 000005
【００５５】
上述したように、本発明は、２つのデータセットにつき、最新技術に比較しても平均で約１４％検出性を改善できる。
【００５６】
本発明者らは、さらに実時間バーコード認識性能を評価した。本発明の方法を、６４０×４８０の画像に対して１０フレーム／ｓ程度で実行した。表３に本発明の性能を非特許文献１のＺ（リファレンスとして参照する。）と比較した。同一のＤｅｌｌ社製ＸＰＳ９１００マシンで、単一スレッドで実行させた。両方の方法は、ＯｐｅｎＣＶライブラリを使用し、Ｃ＋＋で実装した。
【００５７】
計算上最も時間を要した部分は、ＭＳＥＲｓ計算であり、１フレーム当たり平均で４９ｍｓを要した。フィルタリング、特徴検出およびクラスタリングは、それぞれ、１８、６、２５ｍｓを要した。ＭＳＥＲｓ検出計算のみが画像サイズに直接依存することに留意されたい。
【００５８】
【表３】
0006455832.tif 000006
【００５９】
他の部分は、候補ブロブの数に依存した。したがって、最後の３ステップの計算は、より高解像度の画像に対してもそれほど増加するものではない。６４０×４８０の画像について、本方法（実施例として参照する。）は、リファレンスの方法に対しておよそ１．２倍の速度アップに貢献した。入力にウェブカム・ビデオ・ストリームを使用した本発明のライブ・モードは、本発明の実時間能力の改善を示した。
【００６０】
図１１は、本バーコード検出システム１００に使用される情報処理装置のハードウェア実装を示す。情報処理装置１１００は、システムバス１１１１を介して相互接続された中央処理装置（ＣＰＵ）１１０１、アプリケーション・キャッシュ・メモリ１１０２およびメモリ１１０３を含んでいる。ＣＰＵ１１０１は、本発明において説明したプログラムを、ハードディスク・ドライブ、テープ・ドライブまたはソリッドステート・ディスクといった高容量記憶装置１１０９からメモリ１１０３に読み込んで、本発明によるプログラミング・コードを実行する。アプリケーション・キャッシュ・メモリは、ＣＰＵ１１０１のデータアクセスを改善するアプリケーション・キャッシュとして参照される。
【００６１】
情報処理装置１１００は、さらに、ＲＯＭ１１０４、グラフィックス・アダプタ１１０６およびネットワーク・アダプタ１１０８を含む。ＲＯＭ１１０４は、情報処理装置を初期化し、初期テストを行うためのＢＩＯＳを格納する。グラフィックス・アダプタ１１０６は、ＶＧＡまたはＸＧＡなどのビデオ・イメージをディスプレイ１１０７に供給し、情報処理装置１１００に対してニューマン・インタフェースを提供する。ネットワーク・アダプタ１１０８は、情報処理装置１１００を、ＴＣＰ／ＩＰ、ＵＤＰといった適切な通信プロトコルを介してネットワークに接続する。特定の実施形態では、携行型装置は、さらにセルラ電話機能を備えることができ、発呼することが可能とされていても良い。
【００６２】
情報処理装置１１００は、ＰＣＩブリッジといったＩ／Ｏバス・ブリッジ１１０５を備えており、Ｉ／Ｏバス１１１２を介して、記憶装置１１０９、入力ボタン、ソフトウェア・キーボードなど、またはカメラ・デバイス１１１３などの入力デバイス１１１０種々のデバイスを接続する。携行型装置は、携行型装置が、ウェアラブル・デバイスとして実装される場合、より簡略化したモジュールを含むことができる。
【００６３】
情報処理装置は、装置の特定の実装に応じて、Ｚ／アーキテクチャ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｕｎｉｘ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）など適切なオペレーティング・システム（ＯＳ）の下で本発明のプログラム・コードを動作させるが、これらに限定されるものではなく、ＡＮＤＲＯＩＤ（登録商標）、Ｃｈｒｏｍｅ（登録商標）またはＩＯＳ（登録商標）も利用することができる。本発明のプログラムは、ＯＳに応じて、Ｃ、Ｃ＋＋、Ｃ＃といった適切なプログラミング言語により記述することができる。
【００６４】
本明細書で使用される用語は、特定の実施形態を説明するためのみのものであり、本発明を限定することを意図するものではない。本明細書で使用するように、“ａ”、“ａｎ”の単数形および“ｔｈｅ”は、文脈上それ以外が指示されていない限り、複数形もまた、同様に包含することを意図している。さらに、用語“含む”、“含んでいる”の両方またはいずれか一方は、本明細書において使用される場合、記載した要件、整数、ステップ、操作、要素、コンポーネントの全部またはいずれか１つの存在を規定するものであるが、１つ以上の他の特徴の存在または追加を排除するものではない。
【００６５】
後述する請求の範囲における対応する構造、材料、動作および全ての手段またはステップに機能を追加した要素の均等物は、如何なるものであっても、具体的にクレームした他のクレームされた要素との組み合わせにおいて、いかなる構造、材料または機能を提供するための動作を含むことを意図するものである。本発明の１つ以上の特徴の記述は、例示および説明の目的で提示されたものであって、本発明を開示した形態に終止させることや限定することを意図するものではない。
【００６６】
当業者によれば、本発明の範囲および要旨を逸脱することなく多くの修正形態および変更形態は明らかであろう。実施形態は、本発明の原理および実際上の適用を最適に説明し、他の当業者が、特定の熟慮された使用に適した種々の変形を備えた種々の実施形態の理解を可能とするために記述したものである。
【図１】
0006455832.tif 000007
【図２】
0006455832.tif 000008
【図３】
0006455832.tif 000009
【図４】
0006455832.tif 000010
【図５】
0006455832.tif 000011
【図６】
0006455832.tif 000012
【図７】
0006455832.tif 000013
【図８】
0006455832.tif 000014
【図９】
0006455832.tif 000015
【図１０】
0006455832.tif 000016
【図１１】
0006455832.tif 000017