(57)【要約】【解決課題】バーコード検出方法、バーコード検出システムおよびそのためのプログラムを提供すること。【解決手段】  本発明のバーコードを検出する方法は、情報処理装置が  画像から複数のブロブを検出するステップ（Ｓ３０２）と、検出した各ブロブに対して検出された前記各ブロブを中央で垂直に２分する仮想線を得、前記仮想線の傾きおよび位置にしたがって特徴空間内で前記仮想線の少なくとも１つのクラスタを決定し、１つの前記クラスタ内の前記ブロブを前記バーコードに対応する矩形形状にグループ化するステップ（Ｓ３０４）とを含む。【選択図】  図３
2016110196.tif 000002
【特許請求の範囲】
【請求項１】
バーコードを検出する方法であって、前記方法は、
画像から複数のブロブを検出するステップと、
検出した各ブロブに対して検出された前記各ブロブを中央で垂直に２分する仮想線を得るステップと、
前記仮想線の傾きおよび位置にしたがって特徴空間内で前記仮想線の少なくとも１つのクラスタを決定するステップと、
１つの前記クラスタ内の前記ブロブを前記バーコードに対応する矩形形状にグループ化するステップと
を含む方法。
【請求項２】
前記方法は、さらに少なくとも１つの矩形形状をバーコードに対応するブロブ領域に割り当て、前記仮想線を得る前にバーコードのサイズに依存して前記矩形形状を削除するステップを含む、請求項１に記載の方法。
【請求項３】
前記方法は、さらに前記グループ化するステップの後に、前記ブロブの間の間隔を使用して少なくとも１つの矩形形状に対する前記ブロブの割り当てを修正するステップを含む、請求項１に記載の方法。
【請求項４】
前記少なくとも１つのクラスタを決定するステップは、前記仮想線に対してハフ変換を適用し、前記仮想線のそれぞれについて特徴ベクトルを生成するステップを含む、請求項１に記載の方法。
【請求項５】
前記少なくとも１つのクラスタを決定するステップは、直交座標系で定義される特徴空間内の距離に応答して少なくとも１つのクラスタへと特徴ベクトルをクラスタリングするステップを含む、請求項１に記載の方法。
【請求項６】
バーコードを検出するため、メモリに保持され、情報処理装置のプロセッサにより実行されるプログラムであって、前記プログラムは前記情報処理装置に対し、バーコードを検出する方法のステップを実行させ、前記方法が、
画像から複数のブロブを検出するステップと、
検出した各ブロブに対して検出された前記各ブロブを中央で垂直に２分する仮想線を得るステップと、
前記仮想線の傾きおよび位置にしたがって特徴空間内で前記仮想線の少なくとも１つのクラスタを決定するステップと、
１つの前記クラスタ内の前記ブロブを前記バーコードに対応する矩形形状にグループ化するステップと
を含む、プログラム。
【請求項７】
前記方法は、さらに少なくとも１つの矩形形状をバーコードに対応するブロブ領域に割り当て、前記仮想線を得る前にバーコードのサイズに依存して前記矩形形状を削除するステップを含む、請求項６に記載のプログラム。
【請求項８】
前記方法は、さらに前記グループ化するステップの後に、前記ブロブの間の間隔を使用して少なくとも１つの矩形形状に対する前記ブロブの割り当てを修正するステップを含む、請求項６に記載のプログラム。
【請求項９】
前記少なくとも１つのクラスタを決定するステップは、前記仮想線に対してハフ変換を適用し、前記仮想線のそれぞれについて特徴ベクトルを生成するステップを含む、請求項６に記載のプログラム。
【請求項１０】
前記少なくとも１つのクラスタを決定するステップは、直交座標系で定義される特徴空間内の距離に応答して少なくとも１つのクラスタへと特徴ベクトルをクラスタリングするステップを含む、請求項６に記載のプログラム。
【請求項１１】
情報処理装置を含むバーコード検出システムであって、前記情報処理装置は、
少なくとも１つのバーコードを含む画像を格納するメモリを含む画像蓄積部と、
矩形形状をブロブに割り当て、所定のしきい値に依存して高さおよび幅の比を有する前記矩形形状を削除するブロブ・フィルタリング部と、
ブロブを２分する仮想線を生成してハフ変換を適用して直交座標系で定義される特徴空間における特徴ベクトルを生成し、前記特徴空間に前記特徴ベクトルを写像するクラスタリング部と
を含み、
前記クラスタリング部は、前記特徴ベクトルを、前記特徴空間内の距離に応じてクラスタ化し、前記矩形形状へと前記特徴ベクトルをクラスタ化する、システム。
【請求項１２】
前記情報処理装置は、さらに修正部を含み、前記修正部は、前記ブロブの間の間隔に依存して特定の矩形形状内の前記ブロブを排除する、請求項１１に記載のバーコード検出システム。
【請求項１３】
前記修正部は、前記矩形形状を、ブロブの最小および最大の間隔長に依存して１つの異なる矩形形状に統合する、請求項１２に記載のバーコード検出システム。
【請求項１４】
前記情報処理装置は、ネットワークから少なくとも１つのバーコードを含む前記画像を受領し、ネットワークに接続された装置に認識結果を戻す、請求項１１に記載のバーコード検出システム。
【請求項１５】
バーコードを検出する方法であって、前記方法は、
画像から複数のブロブを検出するステップと、
少なくとも１つの矩形形状をバーコードに対応するブロブ領域に割り当てるステップと、
バーコードのサイズに依存して前記矩形形状を削除するステップと、
検出した各ブロブに対して検出された前記各ブロブを中央で垂直に２分する仮想線を得るステップと、
前記仮想線の傾きおよび位置にしたがって特徴空間内で前記仮想線の少なくとも１つのクラスタを決定するステップと、
１つの前記クラスタ内の前記ブロブを前記バーコードに対応する矩形形状にグループ化するステップと
前記ブロブ間の間隔に依存して少なくとも１つの矩形形状内の前記ブロブの割り当てを修正するステップと
を含み、
前記少なくとも１つのクラスタを決定するステップは、前記仮想線に対してハフ変換を適用し、前記仮想線のそれぞれについて特徴ベクトルを生成するステップと、前記特徴ベクトルを直交座標系で定義される特徴空間内の距離に応答して少なくとも１つのクラスタへとクラスタリングするステップを含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード検出に関し、より詳細にはバーコード検出の精度および実時間特性の改善に関する。
【背景技術】
【０００２】
バーコードは、種々の市販製品、商品などをタグ付けするために広く用いられている。通常バーコードは、専用のバーコード用レーザ・リーダによって読み取られ、バーコードとしてエンコードされた識別番号が得られる。しかしながら、バーコードにエンコードされた情報は、バーコードが消費者のデバイスによりデコードできたとすると、消費者にとっても利便性が良い。
【０００３】
近年、スマートホン、タブレット型コンピュータまたはウェアラブル・デバイスといった種々の可搬型デバイスが普及している。このような可搬型デバイスは、またカメラ機能およびＱＲコード（登録商標）といったエンコード化されたコードのデコーダを搭載することができる。ＱＲコード（登録商標）といったエンコード規格は、既知のものであって広く使われているものの、リニア・バーコードは、依然として商品、製品または他の市販物品をタグ付けするための主要なエンコード規格の１つとなっている。このため、リアルタイムで物品のバーコードを読み取ることは有用である。
【０００４】
バーコードを検出するための多くの既存技術が存在し、非特許文献１(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）からＷＷＵミュエンスター（Ｍｕｅｎｓｔｅｒ）・バーコード・データベース２である。これは、Ｎ９５携帯電話で撮影したＥＡＮおよびＵＰＣ−Ａバーコードを、１，０５５画像含んでいる。
【００４９】
比較を簡略化するために、本発明者らは、非特許文献１と同様の尺度を使用した。主な尺度は、グランド・トルスと検出値との間のＪａｃｃａｒｄ指標を使用したバウンディング・ボックスの全検出精度を評価することである。検出結果Ｒおよびグラウンド・トルスＧの両方が、下記式により画像全体にわたりバイナリ・マスクとして与えられる。本実施例におけるこれらのデータセットを、表１に纏める。
【００５０】
【数１】
2016110196.tif 000003
【００５１】
【表１】
2016110196.tif 000004
【００５２】
本発明では、非特許文献１におけるＪａｖｇ．を、データセット全体にわたり、平均Ｊａｃｃａｒｄ精度として参照した。全検出率Ｄは、少なくとも０．５Ｊａｃｃａｒｄ精度を達成したデータセット中のファイルの割合に相当するものとした（これはまた非特許文献２のＯＡｂｂとして参照されるものである）。
【００５３】
【数２】
2016110196.tif 000005
上記式中、Ｓは、データセット内のファイルのセットである。精度変動を完全とし、かつ検出するために、しきい値を、０．１のステップで設定した。図１０に２つのデータセットについての結果を、グラフ表示としてまとめる。
本発明者らの方法と、非特許文献１との間の検出精度の比較を、表２に示す。Ｊａｃｃａｒｄしきい値が０．５について、比較例ではそれぞれ８０．５％、８２．９％のところ、本発明（Ｅｘｐ１として参照する。）は、Ａｒ−Ｔｅ−Ｌａｂローテーテッド・データセットについて、バーコードの検出を８９．３％、ミュエンスター・データセットについては９６．３％で成功した。両方のデータセットについての全検出プロファイルを図１０に示す。
【００５４】
【表２】
2016110196.tif 000006
【００５５】
上述したように、本発明は、２つのデータセットにつき、最新技術に比較しても平均で約１４％検出性を改善できる。
【００５６】
本発明者らは、さらに実時間バーコード認識性能を評価した。本発明の方法を、６４０×４８０の画像に対して１０フレーム／ｓ程度で実行した。表３に本発明の性能を非特許文献１のＺ（リファレンスとして参照する。）と比較した。同一のＤｅｌｌ社製ＸＰＳ９１００マシンで、単一スレッドで実行させた。両方の方法は、ＯｐｅｎＣＶライブラリを使用し、Ｃ＋＋で実装した。
【００５７】
計算上最も時間を要した部分は、ＭＳＥＲｓ計算であり、１フレーム当たり平均で４９ｍｓを要した。フィルタリング、特徴検出およびクラスタリングは、それぞれ、１８、６、２５ｍｓを要した。ＭＳＥＲｓ検出計算のみが画像サイズに直接依存することに留意されたい。
【００５８】
【表３】
2016110196.tif 000007
【００５９】
他の部分は、候補ブロブの数に依存した。したがって、最後の３ステップの計算は、より高解像度の画像に対してもそれほど増加するものではない。６４０×４８０の画像について、本方法（実施例として参照する。）は、リファレンスの方法に対しておよそ１．２倍の速度アップに貢献した。入力にウェブカム・ビデオ・ストリームを使用した本発明のライブ・モードは、本発明の実時間能力の改善を示した。
【００６０】
図１１は、本バーコード検出システム１００に使用される情報処理装置のハードウェア実装を示す。情報処理装置１１００は、システムバス１１１１を介して相互接続された中央処理装置（ＣＰＵ）１１０１、アプリケーション・キャッシュ・メモリ１１０２およびメモリ１１０３を含んでいる。ＣＰＵ１１０１は、本発明において説明したプログラムを、ハードディスク・ドライブ、テープ・ドライブまたはソリッドステート・ディスクといった高容量記憶装置１１０９からメモリ１１０３に読み込んで、本発明によるプログラミング・コードを実行する。アプリケーション・キャッシュ・メモリは、ＣＰＵ１１０１のデータアクセスを改善するアプリケーション・キャッシュとして参照される。
【００６１】
情報処理装置１１００は、さらに、ＲＯＭ１１０４、グラフィックス・アダプタ１１０６およびネットワーク・アダプタ１１０８を含む。ＲＯＭ１１０４は、情報処理装置を初期化し、初期テストを行うためのＢＩＯＳを格納する。グラフィックス・アダプタ１１０６は、ＶＧＡまたはＸＧＡなどのビデオ・イメージをディスプレイ１１０７に供給し、情報処理装置１１００に対してニューマン・インタフェースを提供する。ネットワーク・アダプタ１１０８は、情報処理装置１１００を、ＴＣＰ／ＩＰ、ＵＤＰといった適切な通信プロトコルを介してネットワークに接続する。特定の実施形態では、携行型装置は、さらにセルラ電話機能を備えることができ、発呼することが可能とされていても良い。
【００６２】
情報処理装置１１００は、ＰＣＩブリッジといったＩ／Ｏバス・ブリッジ１１０５を備えており、Ｉ／Ｏバス１１１２を介して、記憶装置１１０９、入力ボタン、ソフトウェア・キーボードなど、またはカメラ・デバイス１１１３などの入力デバイス１１１０種々のデバイスを接続する。携行型装置は、携行型装置が、ウェアラブル・デバイスとして実装される場合、より簡略化したモジュールを含むことができる。
【００６３】
情報処理装置は、装置の特定の実装に応じて、Ｚ／アーキテクチャ（登録商標）、Ｌｉｎｕｘ（登録商標）、Ｕｎｉｘ（登録商標）、Ｗｉｎｄｏｗｓ（登録商標）など適切なオペレーティング・システム（ＯＳ）の下で本発明のプログラム・コードを動作させるが、これらに限定されるものではなく、ＡＮＤＲＯＩＤ（登録商標）、Ｃｈｒｏｍｅ（登録商標）またはＩＯＳ（登録商標）も利用することができる。本発明のプログラムは、ＯＳに応じて、Ｃ、Ｃ＋＋、Ｃ＃といった適切なプログラミング言語により記述することができる。
【００６４】
本明細書で使用される用語は、特定の実施形態を説明するためのみのものであり、本発明を限定することを意図するものではない。本明細書で使用するように、“ａ”、“ａｎ”の単数形および“ｔｈｅ”は、文脈上それ以外が指示されていない限り、複数形もまた、同様に包含することを意図している。さらに、用語“含む”、“含んでいる”の両方またはいずれか一方は、本明細書において使用される場合、記載した要件、整数、ステップ、操作、要素、コンポーネントの全部またはいずれか１つの存在を規定するものであるが、１つ以上の他の特徴の存在または追加を排除するものではない。
【００６５】
後述する請求の範囲における対応する構造、材料、動作および全ての手段またはステップに機能を追加した要素の均等物は、如何なるものであっても、具体的にクレームした他のクレームされた要素との組み合わせにおいて、いかなる構造、材料または機能を提供するための動作を含むことを意図するものである。本発明の１つ以上の特徴の記述は、例示および説明の目的で提示されたものであって、本発明を開示した形態に終止させることや限定することを意図するものではない。
【００６６】
当業者によれば、本発明の範囲および要旨を逸脱することなく多くの修正形態および変更形態は明らかであろう。実施形態は、本発明の原理および実際上の適用を最適に説明し、他の当業者が、特定の熟慮された使用に適した種々の変形を備えた種々の実施形態の理解を可能とするために記述したものである。
【図１】
2016110196.tif 000008
【図２】
2016110196.tif 000009
【図３】
2016110196.tif 000010
【図４】
2016110196.tif 000011
【図５】
2016110196.tif 000012
【図６】
2016110196.tif 000013
【図７】
2016110196.tif 000014
【図８】
2016110196.tif 000015
【図９】
2016110196.tif 000016
【図１０】
2016110196.tif 000017
【図１１】
2016110196.tif 000018
【外国語明細書】
[Title of Invention]
METHOD FOR BARCODE DETECTION, BARCODE DETECTION SYSTEM, AND PROGRAM THEREFOR
[Technical Field]
[0001]
The present invention relates to barcode detection, and more particularly relates to the improved precision and real time aspect of barcode detection.
[Background Art]
[0002]
A barcode is widely used to tagging various commercial products and goods etc. Usually, the barcodes may be read by a sophisticated barcode laser reader to obtain the identification numbers encoded as barcodes. However, the information encoded to the barcode may be useful for customers if the barcode is decoded by devices of the customers.
[0003]
Recently, various mobile apparatus such as a smartphone, a tablet type computer, or wearable devices become  popular; such mobile devices may also equipped with a camera facility and a decoder of the encrypted code such as QR code (Trademark). Though encoding specifications such as QR code are known and widely used, the linear barcode is still one of the major encoding specification for tagging the goods, products or other commercial objects. Therefore, it is useful to read the barcode of objects in real time.
[0004]
There are many existing technologies for detecting the barcode and in Non Patent Literature 1 (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), Hough transformation for detection of the bars in the barcode(no verb?). Zamberletti et al. succeeded to recognize the bar in the barcode; however, a lot of false positive lines have been recognized leading to the miss-detection of the barcode.
[0005]
In Patent Literature 1 (US200100006191 A1) discloses the technique for barcode recognition using standard color blob analysis to clustering the line.
[Prior Art Literature]
[Patent Literature]
[0006]
[Patent Literature 1] US200100006191 A1
[Non Patent Literature]
[0007]
[Non Patent Literature 1] 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
[Non Patent Literature 2] 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
[Non Patent Literature 3] 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.
[Non Patent Literature 4] 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.
[Summary of Invention]
[Technical Problem]
[0008]
Therefore, it may be possible to read the barcode on objects by the information processing apparatus such as mobile devices and decode thereof real time scale. Furthermore, the objects to which the barcode is printed are sometimes flexible as plastic packages. Then, the outward appearance of the barcode could not always be precise parallel aligned lines.
[0009]
Furthermore, a plurality of barcodes sometimes may be printed on the object adjacent each other and then this situation arises another problem for identifying the barcode set in the object image.
[0010]
The products, goods and other commercial objects may be traded widely and be sold in many countries and then the customers or operators of objects may want to know the information encoded in the barcode by the native language in real time scale.
[0011]
The present invention has been made by considering the above conventional art and an object of the present invention is to provide a barcode detection system with high recognition ability of the barcode by the mobile apparatus (especially hand free wearable cameras).
[0012]
Another object of the present invention is to provide a barcode detection system with improved robustness for recognizing the barcodes closely disposed or overlapped each other.
[0013]
Further another object of the present invention is to provide a method for barcode detection in real time while having improved robustness.
[Solution to Problem]
[0014]
According to the present invention, a method for detecting a barcode, the method comprising:
detecting a plurality of blobs from an image; 
for each detected blob, obtaining imaginary lines bisecting the detected blob perpendicular at the middle of the detected blob; 
determining at least one cluster of the imaginary lines in a feature space according to slopes and positions of the imaginary lines; and
grouping the blobs in one cluster to a rectangular shape corresponding to the barcode.
[0015]
The method may further comprise the step of allocating at least one rectangular shape to blob region corresponding to the barcode and deleting the rectangular shape depending on a size of the barcode before obtaining the imaginary lines.
[0016]
The method may further comprise the step of refining allocation of the blobs to at least one rectangular shape after the step of grouping by using gaps between the blobs.
[0017]
The above step of determining at least one cluster may comprise the step of applying a Hough transformation to the imaginary lines to fill a feature vector for each of the imaginary lines.
[0018]
The above step of determining at least one cluster may further comprise the step of clustering the feature vectors into at least one cluster depending on distances in the feature space defined in Cartesian coordinate system.
[0019]
According to other aspects of the present invention, a program for detecting the barcode and a system for detecting the barcode may be provided.
[Advantageous Effects of Invention]
[0020]
According to the present invention, the barcode detection technique with improved recognition accuracy and improved computing speed such that the present invention may be suitably applicable to mobile apparatuses such as smart phones, tablet type computers, and wearable devices which may provide hands-free environments.
[Brief Description of Drawings]
[0021]
[Fig. 1] Fig. 1 shows the embodiment of the present barcode detection system 100.
[Fig. 2] Fig. 2 shows the software implementation of the information processing apparatus used in the present barcode detection system 100.
[Fig. 3] Fig. 3 shows the flowchart for the global process executed in the present barcode detection system.
[Fig. 4] Fig. 4 shows the process for the filtering process starts from the step S400.
[Fig. 5] Fig. 5 shows the process for the blob clustering of the step S305 in Fig. 3.
[Fig. 6] Fig. 6 shows the plots 600 to the Hough space according to the present invention.
[Fig. 7] Fig. 7 shows the process for the post processing in the step S306 depicted in Fig. 3.
[Fig. 8] Fig. 8 shows the image representation of the process of the present embodiments using sample barcode images.
[Fig. 9] Fig. 9 shows an alternative embodiment 900 of the present invention where the program of the present invention is implemented on the server computer 906.
[Fig. 10] Fig. 10 shows the results for the two datasets represented as the graphical representation.
[Fig. 11] Fig. 11 shows the hardware implementation of the information processing apparatus used in the present barcode detection system 100.
[Description of Signs]
[0022]
100    ：barcode detection system 
101    ：smartphone 
103    ：barcode 
200    ：software implementation 
201    ：input interface 
202    ：image storage part 
203    ：blob detector part 
204    ：blob filter part 
205    ：Hough clustering part 
206    ：refining part 
207    ：recognized barcode store part 
208    ：output interface
[Description of Embodiments]
Now, the present invention will be described using particular embodiment associated by drawings; however, the particular embodiments are only described for understanding the present invention rather than limitation thereof. Fig. 1 shows the embodiment of the present barcode detection system 100. The barcode detection system 100 may be implemented in any type of information processing apparatuses such as, for example, the smartphone 101 with an adequate operating system (hereafter referred to simply to OS) such as ANDROID (Trademark), Chrome (Trademark), Windows (Trademark), or IOS (Trademark). The mobile apparatus may not be limited to the smartphone 101, a tablet type computer, a notebook computer or a desktop computer and a server computer as well as a wearable device including a camera facility may be used in the present invention. Now, the present invention will be explained by assuming that the information processing apparatus is implemented as the smartphone 101 in order to simplify the description.
[0023]
In the embodiment shown in Fig. 1, the display of the smartphone 101 displays the image of the object to which the barcode 103 is printed. The present invention may determine and detect the barcode 103 from the image obtained by the mobile apparatus. As shown in Fig. 1, the image of the barcode 103 is distorted by the shape of the object and the light reflections decreases line contrasts in the barcode. The barcodes in the present invention may be selected from the encoding from JAN code, ITF code, ITF-14 code, NW-7 code, CODE39, CODE128, UPC, UPC-A, UPC-E, or GS1. The barcode detection system 100 may be obtain the barcode information from the still image or moving image depending on particular setting of the apparatus.
[0024]
Fig. 2 shows the software implementation 200 of the present information processing apparatus. The software modules shown in Fig. 2 may be realized by running the software on a CPU of the information processing apparatus. The modules of the information processing apparatus may comprise the image storage part 202, the blob detector part 203, and the blob filter part 204.
[0025]
The image storage part 202 stores the still image or video frames captured by a camera facility of the information processing apparatus or received through a network such as internet through the input interface 201. The blob detector part 203 detects the blobs in the image by using conventional MSER technique (Non Patent Literature 2: 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). The detected blobs may be subjected to the blob filter part 204 to eliminate noise blobs by determining sizes such as the length and／or width to improve line detection accuracies.
[0026]
The information processing apparatus may comprise the software modules such as Hough clustering part 205, the refining part 206, and the recognized barcode store part 207. The Hough clustering part 205 performs the clustering of the blobs according to the present invention. The Hough clustering part 205 defines an imaginary line for the blob that intersects the middle point of the blob and extending perpendicular to the blob. The Hough clustering part 205 further applies the Hough transformation to the imaginary lines for the purpose of the line recognition and generates the feature vectors of each of the imaginary lines. Then the Hough clustering part 205 projects the feature vectors to the Hough space, i.e. feature space defined in Cartesian coordinate making it possible to cluster the feature vectors, i.e. imaginary lines and in turn to cluster the blobs to particular rectangular shapes corresponding to barcode regions. 
[0027]
The rectangular shapes may correspond to a “bounding box” defining the recognized barcode region. Hereafter, the term “rectangular shape” refers to the region of blobs to be estimated or detected as the barcode. The Hough clustering part 205 further allocates the blobs to the particular rectangular shapes according to the results of clustering. In this stage, rough barcode candidates may be generated. The detail of the Hough clustering part will be explained later.
[0028]
The refining part 206 refines the above rough barcode candidates by eliminating blobs by considering gaps between the blobs and the barcode regulations and also merges the rectangular shapes to be reasonably merged into one barcode to generate the final rectangular shape as the results of recognition. The recognized barcode store part 207 stores the final barcode data for decoding the information encoded in the barcode.
[0029]
The information processing apparatus may comprise the output interface 208 for providing human interfaces or data transmissions through Internet or the public telephone network. In one embodiment of the present invention, the information processing apparatus may be implemented as the mobile apparatus and the mobile apparatus may comprise the functional modules depicted in Fig. 2. In another embodiment of the present invention, the mobile apparatus comprises the camera facility and the mobile apparatus takes the image of objects with the barcodes and sends the image to a remote computer such as a server computer to ask the barcode recognition and to receive the decoded information. Such embodiment may be useful when the mobile apparatus is implemented as so-called wearable device with light weight and power limitation.
[0030]
Fig. 3 shows the flowchart for the global process executed in the present barcode detection system. The process starts from the step S300 and in the step S 301, the image of the object is taken by the camera facility. Here, the image of the object may be the still image or the video frame. Furthermore, according to the present invention, the image may include a plurality of barcode images in one shot or frame. Next, the process determines in the step S302 the blobs of the barcode using MSER technique (Non Patent Literature 2).
[0031]
Then in the step S303, the process filters the blobs to be the barcodes using shape, height and width ratio and then the process clusters the blobs into the particular rectangular shapes which may be barcode candidates in the step S304. Then the process applies the post processing to refine the blobs within the barcode candidates defined as the rectangular shape and／or to re-allocate the rectangular shapes into one rectangular shape in the step S 305. Then the process determines final recognition results as the barcode and stores the results in an adequate memory spaces in the step S306 and the process goes to the step S307 to end. 
[0032]
Now, the detailed processing of the step S303, i.e. filtering process will be detailed. Fig. 4 shows the process for the filtering process and the process starts from the step S400 and in the step S401 the blobs to be subjected to the processing are retrieved form the image storage 202. Then, the process allocates the rectangle shape to the blob or blobs using a certain length and width for typical barcode regulation in the step S402. The particular embodiment of the present invention uses the threshold of 10 for the ratio of length to height (hereafter referred to aspect ratio).
[0033]
In this process, the rectangle shape for the blob or blobs may be identified by its center position Ci, width wi, and the orientation angle αi. Here, the term orientation angle αi refers to the in-plane slant angle of the rectangular shape in the image. When the rectangular shape having the aspect ratio smaller than the numeral one is present, the coordinates of the recognition may be rotated by 90 degrees to taken into account for incorporating into barcode candidates. In the step S403, the process deletes the rectangle shapes using the size criteria of long and thin shapes according to the barcode specification as well as the threshold aspect ratio and then selects the oriented and meaningful rectangular shape for the barcode candidates in the step S404 and thereafter the process goes to the step S405 to end the filtering. The above deletion may omit efficiently unnecessary noise blobs from the recognition.
[0034]
Fig. 5 shows the process for the blob clustering of the step S304 in Fig. 3. The process starts from the step S500 and in the step S501, the data of filtered blobs are retrieved from an adequate memory space and then the middle perpendicular line, i.e. bisecting imaginary lines of the blobs are computed in the step S502. This process is novel over the conventional process using simple Hough transformations. The present invention uses the above imaginary lines to clustering the blobs of the barcode lines into particular barcode candidate by the Hough transformation.
[0035]
Here, the imaginary lines may be expressed as the formula “y=ajx+bj” and the suffix “j” is the identification value of each imaginary line. If the blobs are included in the particular barcode candidate, the plots to the Hough space (in Cartesian coordinate system (b, a)) may provide cluster or clusters around the line indicating ideally the same slope for the blobs. Hereafter the Hough space will be referred to feature space in this description. Then, in the step S503, parameters of the imaginary lines are converted to the coordinate system in the Hough space to create feature vectors (bj, aj) in the Hough space in the step S504.
[0036]
Fig. 6 shows the conceptual plots 600 to the Hough space according to the present invention. The plots shown in Fig. 6 are assumed that the imaginary lines are slant in the image in the slope angle of arctan (aj) for simplify the explanation. When the parameters (bj, aj) of the calculated imaginary lines, which may be referred as the feature vectors, are plotted to the Hough space 601, the imaginary lines belonging to the same barcode and having (bj, aj) may have the same parameter “a” by showing the line 603; in practical implementation, position and the angle are used. If the same processing is applied to the clear barcode, the similar plots converge to the single point on the coordinate “a” in the feature space. Fig. 6 shows the appearances of the cluster 604 and cluster 605. When the barcode is present in the image, the bars of the barcode should present within the rectangular region with the same slope which in turn indicates that the slope of the imaginary lines may be same. This means that ideally the plots in the imaginary lines to the feature space will provide the singular point without considering noises. The clustering may be conducted by setting the threshold distance to be determined to the same barcode and minimal numbers of points to be included in the barcode.
[0037]
The process then clusters the feature vectors in the feature space to select the blobs to be allocated to unit rectangular shape in the step S505. In the particular embodiment of the present invention, the feature vectors in the feature space may be used for discriminating the boundaries of the barcode area; the strategy may comprises two parameters (1) maximal distance in the feature space between clusters of the feature vectors and (2) the minimal number of items in the clusters, because the feature vectors represents the imaginary lines in the blobs and then the feature vectors to be included in the same rectangular shape may distribute having certain distances along to the horizontal b axis in the future space including the minimal number of the feature vectors. The distance and the number of items may be selected depending on the particular applications. Of course the present invention may use another clustering strategy for the clustering strategy depending on particular implementation.
[0038]
In the step S506, the process determines the barcode candidates for the particular rectangular shape and then determines global bounding boxes for blobs to be recognized as the barcode in the step S507. Further then, the process determines tentative barcode candidates as the rectangular shapes and the results may be stored in an adequate memory space in the step S508 and the process goes to the step S509 to end.
[0039]
Fig. 7 shows the process for the post processing in the step S305 depicted in Fig. 3. The post processing is the process for refining the barcode recognition by omitting line noises from the barcode lines or merging the rectangular shapes. The process starts from the step S700 and in the step S701, the process select the barcode line candidates in the particular rectangular shape. Then in the step S702, the process sorts the line blobs along with the barcode direction, i.e. the direction of the imaginary line and omits in the step S703 the candidate line blob or blobs by the criteria whether or not the gap between the subjected line blobs is larger than a given threshold. This threshold may be determined by the requirements of the barcode specifications. Then the process determines pairs of candidate lines other than intersect in the same line in the step S704.
[0040]
The process determines whether or not the sets of line blobs are to be categorized into one barcode and if such pairs are present, the process merges the sets of blobs into the same one barcode candidate in the step S705 and then the process refines barcode candidate. The criteria for merging may be the minimal and maximal gap lengths of the line blob; when two barcode candidates are present in close proximity in the distance between the minimal and maximal values, such adjacent rectangular shapes may be merged into one rectangular shape when considering the positions along the bisecting line is close enough. Other merge criteria may be used in the present invention depending on particular applications. When the process determines the refined barcode candidates for all of the blobs in the step S706, the process goes to the step S707 to end. 
[0041]
Fig. 8 shows the image representation of the present embodiments using sample barcode images. The sample barcode images are; (1) ArTe-Lab Rotated Dataset (Non Patent Literature 1) and (2) Intel (Trademark) Egocentric Object Recognition dataset (Non-Patent Literature 3: 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).
[0042]
The processing proceeds from (a) to (e) and the results in the column (e) are obtained after the processing of the post processing described in Fig. 7 and the finally determined blocks are indicated by the respective rectangles. As shown in Fig. 8 it is shown that the present invention shows good recognition about the barcodes whatever the barcodes are present in one image and the image include the image such as the human hand, cups, and other objects other than the barcodes.
[0043]
Fig. 9 shows an alternative embodiment 900 of the present invention where the program of the present invention is implemented on the server computer 906. The embodiment of Fig. 9 may be useful when the mobile apparatuses have simple and relatively low performance with respect to the smartphone 904 and the tablet type computer. Such case may occur when the mobile apparatus is implemented as the wearable device 903. The wearable device may not be limited to the eye glass type one and other types such as hand-set type, chest-set type, arm-set type and head-set type device may be possible.
[0044]
For example, the wearable device 903 looks the barcode within the scope thereof. When the user want to know the information encoded to the barcode, the user takes the image of the barcode and sends the image to the server 906 using an appropriate data transfer protocol such as HTTP. The server 906 may be implemented with the program of the present invention and may analyze the received barcode image according to the present invention.
[0045]
After analysis of the server, the result of the analysis may be returned to the wearable device 903 so as to provide the information that is encoded in the barcode. The embodiment depicted in Fig. 9 may be adequately implemented so-called as the “cloud service” which allows users to bring lighter devices than smartphone 904 and also allows users to access the information of the barcode without positioning the mobile devices on the objects. In further another embodiment, the smartphone 904 may receive the barcode image from the wearable device and decode the barcode. Then, the decoded information may be returned to the wearable device 903 such that the user of the wearable device may use the decoded information.
[0046]
The inventors have further examined the present invention by comparing the conventional technique described in Non Patent Literature 1 in numerically and the evaluation results will be explained in detail hereunder.
[0047]
The first dataset was selected from the ArTe-Lab Rotated Barcode Dataset (extended version) 1 by (Non Patent Literature 1). It consisted of 365 images containing EAN barcodes captured with different phones. The results given in Non Patent Literature 2 used only a subset of 129 of those images for the evaluations. In the present invention, the results were compared using the full set of the sample images. The second dataset was the WWU Muenster Barcode Database2 from Non Patent Literature 4 (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.). It contained 1,055 pictures of EAN and UPC-A barcodes taken with a N95 mobile phone.
[0048]
To simplify the comparisons we use the same metric as (Non Patent Literature 1). The main measure aims at evaluating the overall bounding box detection accuracy using the Jaccard index between the ground truth and the detection. Both the detection result R and the ground truth G are given as binary masks over the whole image by the following formula. The data sets used in this example were summarized in Table 1.
[0049]
[Formula 1]
2016110196.tif 000019
[0050]
[Table 1]
2016110196.tif 000020
[0051]
In this invention, Javg. in Non Patent Literature 1 was referred to the average Jaccard accuracy over the dataset. The overall detection rate D corresponded to the proportion of the files in the dataset achieving at least 0.5 Jaccard accuracy (also called OAbb in Non Patent Literature 2):
[0039]
[Formula 2]
2016110196.tif 000021
wherein S is the set of files in the dataset. For completeness and the detection for varying accuracy thresholds was set in steps of 0:1. The results for the two datasets are summarized in Fig. 10 as the graphical representation.
[0052]
The comparisons of the detection accuracies between our method and Non Patent Literature 1 are listed in Table 2. For a Jaccard threshold of 0:5, the present invention (referred to Expl.) succeeded in detecting the barcodes in 89.3% of the images for the ArTe-Lab Rotated dataset and in 96.3% for the Muenster dataset compared to 80.5% and 82.9%, respectively, with the reference technique. The complete detection profile can be seen for the two methods on both datasets in Fig.10.
[0053]
[Table 2]
2016110196.tif 000022
[0054]
As described above, the present invention may improve detection of about 14% over the state-of-the-art on average over the two datasets.
[0055]
The inventors further examined real-time barcode recognition performance. The present method runs at around 10 frames per second on 640x480 images. In Table 3, the comparison of the present performances with Z in Non Patent Literature 1 (referred to Reference) while running with a single thread on the same Dell XPS 9100 machine. Both methods were implemented in C++ and use the OpenCV Library.
[0056]
The most computationally expensive part was the MSERs computation that took an average of 49 ms per frame. The filtering, feature detection, and clustering took respectively 18, 6, and 25 milliseconds. Note that only the MSERs detection computation depended directly on the size of the image.
[0057]
[Table 3]
2016110196.tif 000023
[0058]
The other parts depended on the number of candidate blobs. Therefore, the computation of the last three steps should not increase much for higher resolution images. On 640x480 images the present methods (referred to Example) contributed to a speed-up of around 1.2 over the reference method. A live mode of the present program using a webcam video stream in input showed significantly the improvement in the real-time capability of the present invention.
[0059]
Fig. 11 shows the hardware implementation of the information processing apparatus used in the present barcode detection system 100. The information processing apparatus 1100 comprises the central processing unit (CPU) 1101, the application cache memory 1102, and the memory1103 interconnected through the system bus 1111. The CPU 1101 reads the program described in the present invention in the memory 1103 from the high volume storage drive 1109 such as the hard disk drive, the tape drive or the solid state disk and executes the programming code of the present invention. The application cache memory may be referred to application cache for improving data access of the CPU 1101.
[0060]
The information processing apparatus 1100 further comprises the ROM 1104, the graphics adaptor 1106, and the network adaptor 1108. The ROM 1104 stores BIOS for initializing the information apparatus and for performing initial test. The graphics adaptor 1106 provide the video image under VGA or XGA etc. to the display 1107 for providing a human inter face to the information processing apparatus 1100. The network adaptor 1108 connects the information processing apparatus 1100 to the network through an appropriate transmission protocol such as TCP/IP, UDP. In the particular embodiment, the mobile apparatus may further comprise a cellular phone facility to make it possible to make telephone call.
[0061]
The information processing apparatus 1100 comprises I/O bus bridge 1105 such as PCI bridge and connects various devices through the I/O bus 1112 such as the storage device 1109, the input devices 1110 such as an input button, a software key board, or camera device 1113 etc. The mobile apparatus may comprise simpler modules when the mobile apparatus is implemented as the wearable device.
[0062]
The information processing apparatus runs the program codes of the present invention on an appropriate operating system (OS) such as Z/architecture (trademark), Linux (Trademark), Unix (Trademark) or Windows (Trademark) depending on the particular implementation of the apparatus, but not limited thereto, ANDROID (Trademark), Chrome (Trademark), or IOS (Trademark) may be available. The program of the present invention may be written by appropriate programming languages such as C, C++, C# etc. depending on the OS.
[0063]
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and／or “comprising”, when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and／or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components and/or groups thereof.
[0064]
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below, if any, are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of one or more aspects of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. 
[0065]
Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
[Claim 1]
A method for detecting a barcode, the method comprising:
detecting a plurality of blobs from an image; 
for each detected blob, obtaining imaginary lines bisecting the detected blob perpendicular at the middle of the detected blob; 
determining at least one cluster of the imaginary lines in a feature space according to slopes and positions of the imaginary lines; and
grouping the blobs in one cluster to a rectangular shape corresponding to the barcode.
[Claim 2]
The method of claim 1, wherein the method further comprises the step of allocating at least one rectangular shape to blob region corresponding to the barcode and deleting the rectangular shape depending on a size of the barcode before obtaining the imaginary lines.
[Claim 3]
The method of claim 1, wherein the method further comprises the step of refining allocation of the blobs to at least one rectangular shape after the step of grouping by using gaps between the blobs.
[Claim 4]
The method of claim 1, wherein the step of determining at least one cluster comprises the step of applying a Hough transformation to the imaginary lines and generating a feature vector with respect to each of the imaginary lines.
[Claim 5]
The method of claim 1, wherein the step of determining at least one cluster further comprises the step of clustering the feature vectors into at least one cluster depending on distances in the feature space defined in Cartesian coordinate system.
[Claim 6]
A program for detecting a barcode, the program being tangibly stored in as memory and being executed by a processor of an information processing apparatus, the program making the information processing apparatus execute the steps of:
A method for detecting a barcode, the method comprising:
detecting a plurality of blobs from an image; 
for each detected blob, obtaining imaginary lines bisecting the detected blob perpendicular at the middle of the detected blob; 
determining at least one cluster of the imaginary lines in a feature space according to slopes and positions of the imaginary lines; and
grouping the blobs in one cluster to a rectangular shape corresponding to the barcode.
[Claim 7]
The program of claim 6, wherein the method further comprises the step of allocating at least one rectangular shape to blobs corresponding to the barcode and deleting the rectangular shape depending on a size of the barcode before obtaining the imaginary lines.
[Claim 8]
The program of claim 6, wherein the method further comprises the step of refining allocation of the blobs to at least one rectangular shape after the step of grouping by using gaps between the blobs.
[Claim 9]
The program of claim 6, wherein the step of determining at least one cluster comprises the step of applying a Hough transformation to the imaginary lines and generating a feature vector with respect to each of the imaginary lines.
[Claim 10]
The program of claim 6, wherein the step of determining at least one cluster further comprises the step of clustering the feature vectors into at least one cluster depending on distances in the feature space defined in Cartesian coordinate system.
[Claim 11]
A barcode detection system comprising an information processing apparatus, the information processing apparatus comprises:
an image storage part comprising a memory, the memory storing an image including at least one barcode;
a blob filtering part, the blob filtering part allocating rectangular shapes to the blobs and deleting rectangular shape having height and width ratios depending on a predetermined threshold and
a clustering part for generating imaginary lines bisecting the blobs, applying Hough transformation to generate feature vectors in a feature space defined in Cartesian coordinate system and projecting the feature vector to the feature space;
wherein the clustering part clusters the feature vectors depending on a distance in the feature space so as to clustering the feature vectors to the rectangular shape.
[Claim 12]
The barcode detection system of claim 11, wherein the information processing apparatus further comprises a refining part and the refining part omits the blobs in a particular rectangle shape depending on gaps between the blobs.
[Claim 13]
The barcode detection system of claim 12, wherein the refining part 
merges the rectangular shapes into one different rectangular shape depending on minimal and maximal gap lengths of the blobs.
[Claim
14] 
The barcode detection system of claim 11, wherein the information processing apparatus receives from a network the image including at least one barcode and returns a recognition result to an apparatus connected to the network.
[Claim 15]
A method for detecting a barcode, the method comprising:
detecting a plurality of blobs from an image;
allocating at least one rectangular shape to blob region corresponding to the barcode;
deleting the rectangular shape depending on a size of the barcode
for each detected blob, obtaining imaginary lines bisecting the detected blob perpendicular at the middle of the detected blob; 
determining at least one cluster of the imaginary lines in a feature space according to slopes and positions of the imaginary lines;
grouping the blobs in one cluster to a rectangular shape corresponding to the barcode;
refining allocation of the blobs to at least one rectangular shape by using gaps between the blobs;
wherein the step of determining at least one cluster comprises the step of applying a Hough transformation to the imaginary lines to generate a feature vector for each of the imaginary lines and the step of clustering the feature vectors into at least one cluster depending on distances in the feature space defined in Cartesian coordinate system.
[Abstract]
[Problem]To provide method for barcode detection, barcode detection system and program therefor.
[Solution]  The present method for detecting a barcode, an information processing apparatus executes the steps of: detecting a plurality of blobs from an image (S302); for each detected blob, obtaining imaginary lines bisecting the detected blob perpendicular at the middle of the detected blob, determining at least one cluster of the imaginary lines in a feature space according to slopes and positions of the imaginary lines and grouping the blobs in one cluster to a rectangular shape corresponding to the barcode (S304).
[Selected drawing]  Fig. 3
2016110196.tif 000024
2016110196.tif 000025
2016110196.tif 000026
2016110196.tif 000027
2016110196.tif 000028
2016110196.tif 000029
2016110196.tif 000030
2016110196.tif 000031
2016110196.tif 000032
2016110196.tif 000033
2016110196.tif 000034