(57)【要約】【課題】画像スキャナで複数の商品の二段バーコードを一商品の二段バーコードとして読み取ることがないようにする。【解決手段】画像スキャナ１によって得られた画像データからバーコード検出部３がバーコードを検出し、それがあらかじめ定義されている二段バーコードであるか否かをバーコード正当性判断部４が判断する。検出したバーコードが書籍用の二段バーコードである場合、座標取得部５がバーコードの始点／終点の座標を取得し、ベクトル算出部６が二段バーコードのベクトルを算出する。ベクトル一致判断部７は、ベクトルの長さおよび傾斜角度が一致しているか否かを判断し、ベクトル始点間距離判断部８は、ベクトルの始点がベクトル方向またはベクトル方向に対して直角方向に大きく離れていないかを判断し、ベクトルの長さまたは角度の相違、ベクトル方向またはベクトル方向に対して直角方向の離間があるとき、二段バーコードの読み込みを行わない。【選択図】図１
2014203090.tif 000002
【特許請求の範囲】
【請求項１】
画像スキャナにより商品に付された二段バーコードを読み取る二段バーコード読取装置において、
前記画像スキャナが撮った画像データから検出される第１および第２のバーコードの始点および終点の座標を取得する座標取得部と、
前記座標取得部が取得した４つの前記座標を基に前記第１および第２のバーコードのベクトルを算出するベクトル算出部と、
前記ベクトル算出部が算出した前記第１および第２のバーコードの前記ベクトルが一致するか否かを判断するベクトル一致判断部と、
前記第１および第２のバーコードの前記ベクトルにおける始点の前記座標がベクトル方向の第１の方向または該第１の方向に対して直角方向の第２の方向の距離を判断するベクトル始点間距離判断部と、
を備えていることを特徴とする二段バーコード読取装置。
【請求項２】
前記ベクトル一致判断部は、前記第１および第２のバーコードの前記ベクトルの長さおよび角度の少なくとも一方が一致しないとき、前記二段バーコードの読み込みを行わないと判断することを特徴とする請求項１記載の二段バーコード読取装置。
【請求項３】
前記ベクトル一致判断部は、前記ベクトルの長さおよび角度の一致判断において、前記第１および第２のバーコードの前記ベクトルの長さの差または相対角度が所定の許容範囲を超えたときに、前記二段バーコードの読み込みを行わないと判断することを特徴とする請求項２記載の二段バーコード読取装置。
【請求項４】
前記ベクトル始点間距離判断部は、前記第１および第２のバーコードの前記ベクトルが前記第１の方向または前記第２の方向の少なくとも一方に所定の距離を超えて離れているとき、前記二段バーコードの読み込みを行わないと判断することを特徴とする請求項１記載の二段バーコード読取装置。
【請求項５】
前記画像データからバーコードを検出するバーコード検出部を備え、検出した前記バーコードが２つ以外のとき、前記二段バーコードの読み込みを行わないと判断することを特徴とする請求項１記載の二段バーコード読取装置。
【請求項６】
前記画像データから取得される前記第１および第２のバーコードが前記二段バーコードとしてあらかじめ定義されているものであることを判断するバーコード正当性判断部を備え、前記第１および第２のバーコードが前記二段バーコードとして定義されているものでないとき、前記二段バーコードの読み込みを行わないと判断することを特徴とする請求項１記載の二段バーコード読取装置。
【請求項７】
画像スキャナにより商品に付された二段バーコードを読み取る二段バーコード読取方法において、
前記画像スキャナが撮った画像データから検出される第１および第２のバーコードの始点および終点の４つの座標を取得し、
４つの前記座標を基に前記第１および第２のバーコードのベクトルを算出し、
算出した前記第１および第２のバーコードの前記ベクトルの長さおよび角度が一致するか否かを判断し、前記ベクトルの長さまたは角度が一致しないときには、前記二段バーコードの読み込みを行わないと判断し、
前記第１および第２のバーコードの前記ベクトルにおける始点の前記座標がベクトル方向の第１の方向または該第１の方向に対して直角方向の第２の方向の距離を判断し、前記ベクトルが前記第１の方向または前記第２の方向に所定の距離を超えて離れているとき、前記二段バーコードの読み込みを行わないと判断する、
ことを特徴とする二段バーコード読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は二段バーコード読取装置および二段バーコード読取方法に関し、特に画像スキャナにより商品に付された二段バーコードを他の商品の二段バーコードと区別して読み取ることができる二段バーコード読取装置および二段バーコード読取方法に関する。
【背景技術】
【０００２】
商品などの管理にバーコードが使用されており、そのようなバーコードを読み取る装置として一般的にレーザースキャナが用いられている。レーザースキャナは、バーコードにその黒バーおよびスペースの配列方向にレーザー光線を照射し、その反射光から黒バーおよびスペースの反射率の違いと黒バーの幅および間隔の違いとによりデジタル化し、それを復調して、文字や数字、記号などを認識している。
【０００３】
書店、スーパーマーケット、アパレル業界では、２つのバーコードを上下に並べて設け、１つのバーコードとして扱う二段バーコードが使用されている。二段バーコードは、レーザースキャナを用いて読み取る場合には、上段のバーコードの読み取りと下段のバーコードの読み取りとの２アクションが必要になる。このように二段にわたってバーコードを走査するときに、正しく読み取りを行うことができるようにした二段バーコードの読取装置が知られている（たとえば、特許文献１参照）。
【０００４】
このようなバーコード読取装置に対し、デジタルカメラを利用して二段バーコードを撮影し、これを画像処理してバーコードのデータを読み取るようにした画像スキャナが普及しつつある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１１−６６２２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、画像スキャナは、その読取範囲に商品などを置き、それに付された二段バーコードを１回の読み取り操作で読み取るので、商品の置き方によっては、複数の商品のバーコードを別の商品のバーコードとして読み取ってしまうことがあるという問題点があった。
【０００７】
図１０は画像スキャナによる二段バーコードの不正読み取りの可能性を示す説明図である。この例では、二段バーコードが付された商品として書籍の場合を示している。２冊の書籍１００，１０１があり、書籍１００には、上段バーコード１００Ａおよび下段バーコード１００Ｂからなる二段バーコードが印刷され、書籍１０１には、上段バーコード１０１Ａおよび下段バーコード１０１Ｂからなる二段バーコードが印刷されている。
【０００８】
ここで、レジにおいて２冊の書籍１００，１０１を精算する場合には、画像スキャナで書籍１００および書籍１０１の二段バーコードをそれぞれ別個に読み取らせ、精算する商品の登録をすることになる。このとき、２冊の書籍１００，１０１を部分的に重ねた状態で、かつ、それぞれの二段バーコードが見える状態で画像スキャナの前に置かれた場合、書籍１００，１０１の二段バーコードの一部が画像スキャナの読取範囲１０２の中に入ってしまうことがある。すなわち、図１０に示した状態では、画像スキャナは、書籍１００の上段バーコード１００Ａと書籍１０１の下段バーコード１０１Ｂとをある商品の二段バーコードとして誤って認識してしまう可能性があった。
【０００９】
本発明はこのような点に鑑みてなされたものであり、画像スキャナで複数の商品の二段バーコードを読み取ることがないようにした二段バーコード読取装置および二段バーコード読取方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明では上記の課題を解決するために、画像スキャナにより商品に付された二段バーコードを読み取る二段バーコード読取装置において、前記画像スキャナが撮った画像データから検出される第１および第２のバーコードの始点および終点の座標を取得する座標取得部と、前記座標取得部が取得した４つの前記座標を基に前記第１および第２のバーコードのベクトルを算出するベクトル算出部と、前記ベクトル算出部が算出した前記第１および第２のバーコードの前記ベクトルが一致するか否かを判断するベクトル一致判断部と、前記第１および第２のバーコードの前記ベクトルにおける始点の前記座標がベクトル方向の第１の方向または該第１の方向に対して直角方向の第２の方向の距離を判断するベクトル始点間距離判断部と、を備えていることを特徴とする二段バーコード読取装置が提供される。
【００１１】
また、本発明では、画像スキャナにより商品に付された二段バーコードを読み取る二段バーコード読取方法において、前記画像スキャナが撮った画像データから検出される第１および第２のバーコードの始点および終点の４つの座標を取得し、４つの前記座標を基に前記第１および第２のバーコードのベクトルを算出し、算出した前記第１および第２のバーコードの前記ベクトルの長さおよび角度が一致するか否かを判断し、前記ベクトルの長さまたは角度が一致しないときには、前記二段バーコードの読み込みを行わないと判断し、前記第１および第２のバーコードの前記ベクトルにおける始点の前記座標がベクトル方向の第１の方向または該第１の方向に対して直角方向の第２の方向の距離を判断し、前記ベクトルが前記第１の方向または前記第２の方向に所定の距離を超えて離れているとき、前記二段バーコードの読み込みを行わないと判断する、ことを特徴とする二段バーコード読取方法が提供される。
【００１２】
このような二段バーコード読取装置および二段バーコード読取方法によれば、二段バーコードとして検出した第１および第２のバーコードのベクトルを求め、それらのベクトルが一致しているか、さらには、ベクトルが離れすぎていないかを判断している。ここで、第１および第２のバーコードのベクトルが一致していない場合、さらには、ベクトルが離れすぎている場合には、１つの商品に付された二段バーコードでないと判断することができる。
【発明の効果】
【００１３】
上記構成の二段バーコード読取装置および二段バーコード読取方法は、２つの商品の二段バーコードの一部を１つの商品の二段バーコードとして読み取ってしまった場合に、この読み取りを確実に阻止することができるという利点がある。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態に係る二段バーコード読取装置の構成を示す機能ブロック図である。
【図２】本実施の形態に用いられるコンピュータのハードウェアの一構成例を示す図である。
【図３】二段バーコード読取装置の処理の流れを示すフローチャートである。
【図４】座標チェック処理の流れを示すフローチャートである。
【図５】２つのバーコードの処理例を示す説明図であって、（Ａ）は２つのバーコードの座標検出を説明し、（Ｂ）は２つのバーコードを含む画像データの回転を説明し、（Ｃ）は２つのバーコードのベクトル算出を説明する図である。
【図６】ベクトルの長さが相違したときの説明図であって、（Ａ）は２冊の書籍の設置例を示し、（Ｂ）は２つのベクトルの比較を説明する図である。
【図７】ベクトルの角度が相違したときの説明図であって、（Ａ）は２冊の書籍の設置例を示し、（Ｂ）は２つのベクトルの比較を説明する図である。
【図８】ベクトルの向き方向の始点座標が相違したときの説明図であって、（Ａ）は２冊の書籍の設置例を示し、（Ｂ）は２つのベクトルのベクトル方向の離間を説明する図である。
【図９】ベクトルの間隔が大幅に相違したときの説明図であって、（Ａ）は２冊の書籍の設置例を示し、（Ｂ）は２つのベクトルの間隔を説明する図である。
【図１０】画像スキャナによる二段バーコードの不正読み取りの可能性を示す説明図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態について、書籍に印刷された二段バーコードの読み取りに適用した場合を例に図面を参照して詳細に説明する。なお、各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
【００１６】
図１は本発明の実施の形態に係る二段バーコード読取装置の構成を示す機能ブロック図である。
二段バーコード読取装置は、二段バーコードを画像データとして読み取る画像スキャナ１と、その画像スキャナ１によって得られた画像データを画像処理する画像データ処理部２とを備えている。画像データ処理部２は、バーコード検出部３と、バーコード正当性判断部４と、座標取得部５と、ベクトル算出部６と、ベクトル一致判断部７と、ベクトル始点間距離判断部８とを有している。
【００１７】
バーコード検出部３は、画像スキャナ１によって得られた画像データからバーコードと思われる長方形のバーコード領域を特定し、そのバーコード領域の画像データを画像処理してバーコードのデータを検出する。複数のバーコード領域がある場合は、それぞれのバーコード領域からバーコードのデータを検出する。
【００１８】
バーコード正当性判断部４は、バーコード検出部３によって得られたバーコードのデータが、あらかじめ定義されているバーコードであるか否かを判断する。書籍に用いられる二段バーコードにおいては、上段バーコードが「９７８」または「９７９」から始まり、下段バーコードが「１９１」または「１９２」から始まることが定義されている。したがって、バーコード正当性判断部４は、バーの並び方向の始点または終点側に検出された数字が定義された数字かどうかを確認することによって、検出したバーコードが書籍用の二段バーコードであるか否かを判断することができる。
【００１９】
座標取得部５は、検出したバーコードが書籍用の二段バーコードである場合に、画像スキャナ１によって得られた画像データにおける上段バーコードおよび下段バーコードの始点および終点の座標を取得する。この二段バーコードの始点および終点の座標は、たとえば、バーコード検出部３によって特定された長方形のバーコード領域から、長方形の各短辺の中心の座標とすることができ、これらの座標は、座標取得部５による演算により取得される。
【００２０】
ベクトル算出部６は、座標取得部５によって取得された二段バーコードの始点および終点の座標に基づいて、上段バーコードおよび下段バーコードのベクトルを算出により求める。
【００２１】
ベクトル一致判断部７は、ベクトル算出部６によって算出された上段バーコードおよび下段バーコードのベクトルを比較し、ベクトルの長さおよび向き（または画像データの水平基準線に対する傾斜角度）がそれぞれ一致しているか否かを判断する。二段バーコードの場合、各バーコードがほぼ同じ大きさで互いに平行に配置されていて、各バーコードのベクトルが同じになることから、両ベクトルを比較することで、単一書籍の二段バーコードか否かを大まかに確認することができる。
【００２２】
ベクトル始点間距離判断部８は、ベクトル算出部６によって算出された上段バーコードおよび下段バーコードのベクトルの始点間距離を判断する。すなわち、ベクトル始点間距離判断部８は、両ベクトルの長さおよび向きが同じでも、下段バーコードのベクトルの始点から当該ベクトルに直交する方向に上段バーコードのベクトルの始点の座標がない場合がある。このような場合、ベクトル始点間距離判断部８は、上段バーコードおよび下段バーコードのベクトルの始点がベクトル方向に離れているとして、単一書籍の二段バーコードでないと判断することができる。また、両ベクトルの長さおよび向きが同じであり、しかも下段バーコードのベクトルの始点から当該ベクトルに直交する方向に上段バーコードのベクトルの始点の座標がある場合でも、両ベクトルの始点の座標があまりにもかけ離れていれば、異なる書籍であると判断できる。
【００２３】
図２は本実施の形態に用いられるコンピュータのハードウェアの一構成例を示す図である。
コンピュータ１０は、ＣＰＵ（Central Processing Unit）１１によって装置全体が制御されている。ＣＰＵ１１には、ＲＡＭ（Random Access Memory）１２、ＲＯＭ（Read Only Memory）１３および入力インターフェース１４がバス１５を介して相互に接続されている。
【００２４】
ＲＡＭ１２は、コンピュータ１０の主記憶装置として使用される。ＲＡＭ１２には、ＣＰＵ１１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１２には、ＣＰＵ１１による処理に必要な各種データが格納される。
【００２５】
ＲＯＭ１３には、ＯＳのプログラム、二段バーコード読取のためのアプリケーションプログラム、および各種データが格納される。なお、ＲＯＭ１３としては、フラッシュメモリなどのような書き換え可能な不揮発性の半導体メモリが使用される。
【００２６】
入力インターフェース１４には、撮像素子とすることができるカメラ１６が接続されている。入力インターフェース１４は、カメラ１６から送られてくる画像データをＲＡＭ１２に送り、ＣＰＵ１１が画像データに対して画像処理を行う。
【００２７】
以上のようなハードウェア構成によって、本実施の形態の処理機能、すなわち、画像データ処理部２におけるバーコード検出、バーコード正当性判断、座標取得、ベクトル算出、ベクトル一致判断およびベクトル始点間距離判断の各処理機能を実現することができる。
【００２８】
図３は二段バーコード読取装置の処理の流れを示すフローチャート、図４は座標チェック処理の流れを示すフローチャートである。図５は２つのバーコードの処理例を示す説明図であって、（Ａ）は２つのバーコードの座標検出を説明し、（Ｂ）は２つのバーコードを含む画像データの回転を説明し、（Ｃ）は２つのバーコードのベクトル算出を説明する図である。図６はベクトルの長さが相違したときの説明図であって、（Ａ）は２冊の書籍の設置例を示し、（Ｂ）は２つのベクトルの比較を説明する図である。図７はベクトルの角度が相違したときの説明図であって、（Ａ）は２冊の書籍の設置例を示し、（Ｂ）は２つのベクトルの比較を説明する図である。図８はベクトルの向き方向の始点座標が相違したときの説明図であって、（Ａ）は２冊の書籍の設置例を示し、（Ｂ）は２つのベクトルのベクトル方向の離間を説明する図である。図９はベクトルの間隔が大幅に相違したときの説明図であって、（Ａ）は２冊の書籍の設置例を示し、（Ｂ）は２つのベクトルの間隔を説明する図である。
【００２９】
二段バーコード読取装置において、図３に示すバーコード読取処理は、カメラ１６の前に書籍が置かれてカメラ１６から画像データが送られてきたときに開始される。ここで、ＣＰＵ１１は、まず、バーコードが検出されたか否かを待機する（ステップＳ１）。画像データからすべてのバーコードが検出されると、ＣＰＵ１１は、検出したバーコードが１つか否かを判断し（ステップＳ２）、検出したバーコードが１つの場合は、二段バーコード読取不可（読取ＮＧ）と判断する。
【００３０】
次に、ＣＰＵ１１は、検出したバーコードが２つか否かを判断し（ステップＳ３）、検出したバーコードが２つでない場合は、二段バーコード読取不可と判断する。検出したバーコードが２つの場合、ＣＰＵ１１は、２つのバーコードが二段バーコードの上段バーコードおよび下段バーコードとしてあらかじめ定義されたものか否かを判断する（ステップＳ４）。すなわち、書籍の場合、バーコードの先頭の３桁が書籍ＪＡＮ（Japanese Article Number）コードの上段であることを示す「９７８」または「９７９」、下段であることを示す「１９１」または「１９２」となっているので、これらの数字から書籍の二段バーコードであることを判断できる。ここで、検出したバーコードが二段バーコードでない場合、ＣＰＵ１１は、二段バーコード読取不可と判断する。
【００３１】
次に、検出したバーコードが二段バーコードであると判断された場合、ＣＰＵ１１は、二段バーコードの始点および終点の座標を検出する（ステップＳ５）。たとえば、図５の（Ａ）に示したように、カメラ１６によって撮影された画像データ２０の中に２つのバーコードである第１のバーコード３０Ａおよび第２のバーコード３１Ｂが検出されていたとする。この場合、ＣＰＵ１１は、黒バーが並んだ長方形のバーコード領域から、その長方形の各短辺の中心の座標を演算により取得する。図示の例では、第１のバーコード３０Ａについては、その始点の座標Ａ−ＳＴおよび終点の座標Ａ−ＳＰが算出され、第２のバーコード３１Ｂについては、その始点の座標Ｂ−ＳＴおよび終点の座標Ｂ−ＳＰが算出される。
【００３２】
次に、ＣＰＵ１１は、算出した座標Ａ−ＳＴ、座標Ａ−ＳＰ、座標Ｂ−ＳＴおよび座標Ｂ−ＳＰを基に座標チェック処理を行う（ステップＳ６）。次に、ＣＰＵ１１は、その座標チェック処理のチェックがＯＫかどうかを判断し（ステップＳ７）、チェックがＯＫの場合、二段バーコード読取ＯＫと判断する。また、その座標チェック処理のチェックがＯＫでない場合、ＣＰＵ１１は、二段バーコード読取不可と判断する。
【００３３】
ステップＳ６の座標チェック処理では、図４に示したように、ＣＰＵ１１は、４つの始点および終点の座標Ａ−ＳＴ、座標Ａ−ＳＰ、座標Ｂ−ＳＴおよび座標Ｂ−ＳＰのうち画像の原点に近いＸ：Ｙ座標を０：０にする（ステップＳ１１）。すなわち、図５の（Ｂ）に示したように、画像データ２０の原点（図では左下の角の座標）に最も近い座標（図では座標Ａ−ＳＴ）をＸ：Ｙ座標を０：０にしている。
【００３４】
次に、ＣＰＵ１１は、座標Ａ−ＳＴ，Ａ−ＳＰから、Ｘ：Ｙ座標が０：０の第１のバーコード３０Ａのベクトルの向き、すなわち、Ｘ軸に対する傾きの角度αを算出し、図５の（Ｃ）に示したように、０：０の座標を中心に画像を角度α分だけ回転する（ステップＳ１２）。
【００３５】
次に、ＣＰＵ１１は、座標Ａ−ＳＴ、座標Ａ−ＳＰ、座標Ｂ−ＳＴおよび座標Ｂ−ＳＰを基に、第１のバーコード３０Ａのベクトル長および第２のバーコード３１Ｂのベクトル長および角度βを算出する（ステップＳ１３）。
【００３６】
次に、ＣＰＵ１１は、座標Ａ−ＳＴ、座標Ａ−ＳＰ、座標Ｂ−ＳＴおよび座標Ｂ−ＳＰを基に、第１のバーコード３０Ａおよび第２のバーコード３１Ｂのベクトル長をそれぞれチェックし（ステップＳ１４）、ベクトル長が同じかどうかをチェックする（ステップＳ１５）。このとき、ベクトル長の比較においては、許容範囲を設け、一方のベクトル長が他方のベクトル長の±２０％の範囲内にあれば、チェックＯＫとする。たとえば、第１のバーコード３０Ａのベクトル長が第２のバーコード３１Ｂのベクトル長の±２０％の許容範囲に入っているかどうかを判断し、許容範囲に入っていない場合には、チェックＮＧとなる。
【００３７】
このチェックＮＧの例としては、たとえば図６の（Ａ）に示したように、大きさの異なる２冊の書籍３０，３１のバーコードが画像データ２０に含まれている場合である。バーコードは、大きさが決まっていないので、書籍３０，３１の大きさが違えば、バーコードの大きさも異なることがある。図示の例では、書籍３０，３１には、第１のバーコード３０Ａ，３０Ｂおよび第２のバーコード３１Ａ，３１Ｂがそれぞれ印刷されているが、第１のバーコード３０Ａ，３０Ｂが第２のバーコード３１Ａ，３１Ｂよりも大きくなっている。このため、図６の（Ｂ）のように、第１のバーコード３０Ａのベクトル長ＬＡが第２のバーコード３１Ｂのベクトル長ＬＢよりも長くなり、その差が、許容範囲を超えていれば、ベクトル長チェックは、チェックＮＧと判断される。
【００３８】
次に、ＣＰＵ１１は、座標Ｂ−ＳＴおよび座標Ｂ−ＳＰを基に、第２のバーコード３１Ｂのベクトルの角度をチェックし（ステップＳ１６）、角度が０かどうかをチェックする（ステップＳ１７）。このとき、ベクトルの角度のチェックにおいては、第２のバーコード３１Ｂのベクトルの角度が±５°の許容範囲内にあれば、チェックＯＫとする。ここで、第２のバーコード３１Ｂのベクトルの角度が±５°の許容範囲に入っていない場合には、チェックＮＧとなる。
【００３９】
このチェックＮＧの例としては、たとえば図７の（Ａ）に示したように、２冊の書籍３０，３１が互いに傾斜した状態で重ねられていて、それらのバーコードの片方ずつが画像データ２０に含まれている場合である。このような場合、第１のバーコード３０Ａのベクトルと第２のバーコード３１Ｂのベクトルとの間に、相対的に角度βの分だけベクトルの向きが相違する。このため、図７の（Ｂ）のように、第２のバーコード３１Ｂのベクトルの角度βが、許容範囲を超えていれば、ベクトルの角度チェックは、チェックＮＧと判断される。
【００４０】
次に、ＣＰＵ１１は、座標Ａ−ＳＴ、座標Ａ−ＳＰ、座標Ｂ−ＳＴおよび座標Ｂ−ＳＰを基に、第１のバーコード３０Ａおよび第２のバーコード３１ＢのＸ軸に沿ったＸ方向の始点間の距離をチェックする（ステップＳ１８）。ここで、第１のバーコード３０Ａおよび第２のバーコード３１ＢにＸ方向の離間があるかどうかをチェックする（ステップＳ１９）。このとき、第２のバーコード３１ＢのＸ方向の離間が第１のバーコード３０Ａのベクトル長の±２０％の許容範囲にあれば、チェックＯＫとし、許容範囲を超えていれば、チェックＮＧとなる。
【００４１】
このチェックＮＧの例としては、たとえば図８の（Ａ）に示したように、２冊の書籍３０，３１がＹ軸方向に離間した状態で重ねられていて、それらのバーコードの片方ずつが画像データ２０に含まれている場合である。このような場合、第１のバーコード３０Ａの始点の座標Ａ−ＳＴと第２のバーコード３１Ｂの始点の座標Ｂ−ＳＴとは、距離ＷだけＸ方向に離間している。このため、図８の（Ｂ）のように、第１のバーコード３０Ａの始点の座標Ａ−ＳＴと第２のバーコード３１Ｂの始点の座標Ｂ−ＳＴとの距離Ｗが許容範囲を超えていれば、Ｘ方向始点間距離チェックは、チェックＮＧと判断される。
【００４２】
最後に、ＣＰＵ１１は、座標Ａ−ＳＴ、座標Ａ−ＳＰ、座標Ｂ−ＳＴおよび座標Ｂ−ＳＰを基に、第１のバーコード３０Ａおよび第２のバーコード３１ＢのＹ軸に沿ったＹ方向の始点間の距離をチェックする（ステップＳ２０）。ここで、第１のバーコード３０Ａおよび第２のバーコード３１ＢにＹ方向の離間があるかどうかをチェックする（ステップＳ２１）。このとき、第２のバーコード３１ＢのＹ方向の離間が第１のバーコード３０Ａのベクトル長の±５０％の許容範囲にあれば、チェックＯＫとし、許容範囲を超えていれば、チェックＮＧとなる。
【００４３】
このチェックＮＧの例としては、たとえば図９の（Ａ）に示したように、２冊の書籍３０，３１がＹ軸方向に離間した状態で重ねられていて、それらのバーコードの片方ずつが画像データ２０に含まれている場合である。このような場合、第１のバーコード３０Ａの始点の座標Ａ−ＳＴと第２のバーコード３１Ｂの始点の座標Ｂ−ＳＴとは、距離ＨだけＹ方向に離間している。このため、図９の（Ｂ）のように、第１のバーコード３０Ａの始点の座標Ａ−ＳＴと第２のバーコード３１Ｂの始点の座標Ｂ−ＳＴとの距離Ｈが許容範囲を超えていれば、Ｙ方向始点間距離チェックは、チェックＮＧと判断される。
【００４４】
以上のように、二段バーコードの始点および終点の座標を検出し、それらの座標を基に、二段バーコードのベクトル長、角度、始点間のＸおよびＹ方向の離間をチェックするようにした。これにより、２冊の書籍が部分的に重なった状態で、両方の二段バーコードを片方ずつ読み取ることがあっても、誤って１冊の二段バーコードとして認識してしまうことがなくなる。
【００４５】
なお、上記の実施の形態では、第１のバーコード３０Ａの始点の座標Ａ−ＳＴと第２のバーコード３１Ｂの始点の座標Ｂ−ＳＴとのＸ方向およびＹ方向の距離Ｗ，Ｈのチェックを分かりやすく説明するために、ステップＳ１２の段階で画像データを回転するようにした。しかし、処理速度を高めるために、画像データの回転をすることなく、距離Ｗ，Ｈのチェックをすることが好ましい。すなわち、距離Ｗは、第１のバーコード３０Ａのベクトルの始点の座標Ａ−ＳＴから当該ベクトルに直交する方向に第２のバーコード３１Ｂのベクトルの始点の座標Ｂ−ＳＴが存在するかを計算により求めることでチェックすることができる。また、距離Ｗのチェックの際に、第２のバーコード３１Ｂのベクトルの始点の座標Ｂ−ＳＴが存在する場合に、始点間の距離を求めることにより、距離Ｈをチェックすることができる。
【符号の説明】
【００４６】
１  画像スキャナ
２  画像データ処理部
３  バーコード検出部
４  バーコード正当性判断部
５  座標取得部
６  ベクトル算出部
７  ベクトル一致判断部
８  ベクトル始点間距離判断部
１０  コンピュータ
１１  ＣＰＵ
１２  ＲＡＭ
１３  ＲＯＭ
１４  入力インターフェース
１５  バス
１６  カメラ
２０  画像データ
３０，３１  書籍
３０Ａ，３０Ｂ  第１のバーコード
３１Ａ，３１Ｂ  第２のバーコード
【図１】
2014203090.tif 000003
【図２】
2014203090.tif 000004
【図３】
2014203090.tif 000005
【図４】
2014203090.tif 000006
【図５】
2014203090.tif 000007
【図６】
2014203090.tif 000008
【図７】
2014203090.tif 000009
【図８】
2014203090.tif 000010
【図９】
2014203090.tif 000011
【図１０】
2014203090.tif 000012