(57)【要約】【課題】深度のフォーカス・アウト、及び低照度のイメージングの条件下で、やはり確実に識別読み取り、復号化でき、また識別読み取りが易く、誤り訂正能力が強く、設備に要求が低く、広く拡大応用に有利な二次元バーコード及びその符号化方法、復号化方法を提供するものである。【解決手段】二次元バーコードは、円形単元モジュールを採用し、そしてモジュールとモジュールの間に間隔を保っているので、円形単元モジュールは深度のフォーカス・アウトの条件下でイメージング後、また円形単元モジュールであり、unsharp maskでのフィルトレーションをしてから円形単元モジュールの形状に良く回復される。【選択図】図１
2007317184.tif 000002
【特許請求の範囲】
【請求項１】
平面において配列された、異なる光学反射率を有する単元モジュールを含むコードパターンシンボルを備える二次元バーコードであって、前記単元モジュールが円形単元モジュールであり、そして、モジュールとモジュールの間に間隔を保っていることを特徴とする二次元バーコード。
【請求項２】
前記円形単元モジュールは等間隔的に配列された、大きさの等しい実芯の円形単元モジュールであることを特徴とする請求項１記載の二次元バーコード。
【請求項３】
前記隣接する二つの円形単元モジュールの円心距離は円形単元モジュールの直径より大きいであることを特徴とする請求項１記載の二次元バーコード。
【請求項４】
前記コードパターンシンボルは12×9個の円形単元モジュールをもつことを特徴とする請求項１記載の二次元バーコード。
【請求項５】
前記コードパターンシンボルは4:3の外形比例を選用することを特徴とする請求項１記載の二次元バーコード。
【請求項６】
前記コードパターンシンボルの周辺にクローズド・枠を有することを特徴とする請求項１記載の二次元バーコード。
【請求項７】
前記コードパターンシンボルの周辺に寸法幅の4個の単元モジュールのクリア・ゾーンを有することを特徴とする請求項１記載の二次元バーコード。
【請求項８】
前記コードパターンシンボルの4角座標の各々(0,0)、(11,0)、(0,8)及び(11,8)である円形単元モジュールは定位単元モジュールであり、その他の単元モジュールは13組にわけ、その中、座標の各々(0,1)、(0,2)、(1,0)、(1,1)、(1,2)、(2,0)、(2,1)及び(2,2)である単元モジュールを第一組として、座標の各々(0,3)、(0,4)、(0,5)、(1,3)、(1,4)、(1,5)、(2,4)及び(2,5)である単元モジュールを第二組として、座標の各々(0,6)、(0,7)、(0,8)、(1,6)、(1,7)、(1,8)、(2,6)及び(2,7)である単元モジュールを第三組として、座標の各々(0,9)、(0,10)、(1,9)、(1,10)、(1,11)、(2,9)、(2,10)及び(2,11)である単元モジュールを第四組として、座標の各々(3,0)、(3,1)、(4,0)、(4,1)、(4,2)、(5,0)、(5,1)及び(5,2)である単元モジュールを第五組として、座標の各々(2,3)、(3,2)、(3,3)、(3,4)、(3,5)、(4,3)、(4,4)及び(4,5)である単元モジュールを第六組として、座標の各々(2,8)、(3,6)、(3,7)、(3,8)、(3,9)、(4,6)、(4,7)及び(4,8)である単元モジュールを第七組として、座標の各々(3,10)、(3,11)、(4,9)、(4,10)、(4,11)、(5,9)、(5,10)及び(5,11)である単元モジュールを第八組として、座標の各々(6,0)、(6,1)、(6,2)、(7,0)、(7,1)、(7,2)、(8,1)及び(8,2)である単元モジュールを第九組として、座標の各々(6,3)、(6,4)、(7,3)、(7,4)、(7,5)、(8,3)、(8,4)及び(8,5)である単元モジュールを第十組として、座標の各々(5,3)、(5,4)、(5,5)、(5,6)、(5,7)、(5,8)、(6,5)及び(6,6)である単元モジュールを第十一組として、座標の各々(6,7)、(6,8)、(7,6)、(7,7)、(7,8)、(8,6)、(8,7)及び(8,8)である単元モジュールを第十二組として、座標の各々(6,9)、(6,10)、(6,11)、(7,9)、(7,10)、(7,11)、(8,9)及び(8,10)である単元モジュールを第十三組とすることを特徴とする請求項４記載の二次元バーコード。
【請求項９】
二進法のデータストリームをコードパターンシンボルに符号化して、コードパターンシンボルをアウトプットする前記請求項１から８のいずれかの項に記載の二次元バーコードの符号化方法であって、
(a)二進法のデータストリームを特定ビット長さを持つ情報データコードワードに分割されるステップと、
(b)前記情報データコードワードを誤り訂正アルゴリズムにより計算し、誤り訂正コードワードを生成するステップと、
(c)前記情報データコードワード、誤り訂正コードワードを単元モジュール画が円形単元モジュールであり、そして、モジュールとモジュールの間に間隔を保っているコードパターンシンボルを生成するステップと、
を含むことを特徴とする二次元バーコードの符号化方法。
【請求項１０】
前記コードパターンシンボルが12×9個の円形単元モジュールを含み、その中、4角の4個の単元は定位単元であり、余った104個の円形単元モジュールの中、前の80個は情報データの記憶に用いられて、残った24個は誤り訂正データの記憶に用いられることを特徴とする請求項９記載の二次元バーコードの符号化方法。
【請求項１１】
前記誤り訂正コードワードが以下のように生成され、80ビットの情報データは8ビットを一組として10組にわけ、すなわち計10個の8ビットの情報データコードワード(codeword)になり、この10個のコードワードを誤り訂正アルゴリズムにより計算して、3個の8ビットの誤り訂正コードワードを生成することを特徴とする請求項１０記載の二次元バーコードの符号化方法。
【請求項１２】
前記誤り訂正アルゴリズムはリード・ソロモン誤り訂正アルゴリズムを採用することを特徴とする請求項１１記載の二次元バーコードの符号化方法。
【請求項１３】
前記誤り訂正コードワードはBCH誤り訂正コードワードを採用することを特徴とする請求項１２記載の二次元バーコードの符号化方法。
【請求項１４】
(1)コードパターンシンボルの画像を取得ステップと、
(2)取得したコードパターンシンボルの画像を二値化処理するステップと、
(3)円形単元モジュールにエッジ測定を行ない、境界画像を得るステップと、
(4)境界画像にクローズド・境界のフォローを行うステップと、
(5)円形単元モジュールを識別するステップと、
(6)異なるコードパターンシンボルの円形単元モジュールを区分し、削除するステップと、
(7)方向を定位するステップと、
(8)コードワードの回復と誤り訂正を行なうステップと、
を含むことを特徴とする二次元バーコードの符号化方法。
【請求項１５】
前記ステップ(1)とステップ(2)の間、取得したコードパターンシンボルに画像強化処理を行うステップ(1´)をさらに含むことを特徴とする請求項１４記載の二次元バーコードの符号化方法。
【請求項１６】
前記ステップ(3)において、前記エッジ測定によって取得する境界画素を画素値が0であり、そして隣接する8個の画素の中に非0画素がある画素と定義して、前記エッジ測定の方法とは二値画像中のすべての画素に境界判定を行なって境界画像を得て、境界画素を最大明るさの255に標識して、その他を0と標識することを特徴とする請求項１４記載の二次元バーコードの符号化方法。
【請求項１７】
境界画像にクローズド・境界のフォローを行う前記ステップ(4)において、
(41)境界画像を行の主な方向に沿ってスキャンして、スキャンされた一番目の境界画素を境界フォローの起点画素として、境界画素がなければ、今回のフローが終了すると表明されるプロセスと、
(42)起点画素の画素座標を隊列Qに入れて、そして、この起点画素を0と標識すると、もうフォローを行ったと表明されるプロセスと、
(43)起点画素の隣接する8個の画素の中に境界画素があるかどうかを判断し、あればいずれかの画素を次回のフォローの起点として選択して、(42)にジャンプ移転し、でないと今回のフォローが終了し、隊列Qの中の画素座標のリストはクローズド・境界であり、隊列Qの中の画素座標のリストを記憶して、その後、空にして、(41)にジャンプ移転するプロセスと、
を含むことを特徴とする請求項１４記載の二次元バーコードの符号化方法。
【請求項１８】
円形単元モジュールを識別する前記ステップ(5)において、
(51)クローズド・境界の全ての境界点の画素の横座標を累計して、累計の和を境界点の総数で割って、クローズド・境界の中心点の画素の横座標uを得て、全ての境界点の画素の縦座標を累計して、累計の和を境界点の総数で割って、クローズド・境界の中心点の画素の縦座標vを得るプロセスと、
(52)クローズド・境界の中心点の画素の座標(u,v)で四つの方向に沿ってクローズド・境界の直径をスキャンして、それぞれ四つの長度値d1、d2、d3、d4を得るプロセスと、
(53)平均直径d＝(d1＋d2＋d3＋d4)/4をとって、平均ラウンドネスをN＝|d−d1|/d＋|d−d2|/d＋|d−d3|/d＋|d−d4|/dと定義するプロセスと、
(54)それぞれのクローズド・境界にN値を計算して、実測統計結果によってN値が所定域値TNより大きいクローズド・境界を棄てて、残ったクローズド・境界をバーコードの円形単元モジュールの境界と認めるプロセスと、
を含むことを特徴とする請求項１４記載の二次元バーコードの符号化方法。
【請求項１９】
異なるコードパターンシンボルの円形単元モジュールを区分し、削除する前記ステップ(6)において、
(61)二つの円の寸法差異度を取って、一つの円の直径長さをD1として、もう一つの円の直径長さをD2とすると、二つの円の寸法差異度はLdif＝|D1−D2|/max(D1,D2)になり、バーコードのクリア・ゾーンの幅はM個の円形単元モジュールの直径であり、そして、円の寸法差異度はLdifであるとするプロセスと、
(62)画像中心点より一番近い円形単元モジュールを源の円形単元モジュールとして選択してから、この円形単元モジュールよりの距離がM以下であって、そして寸法差異度のLdifが予定値より小さい円形単元モジュールをクラスタの中に入れるプロセスと、
(63)一回り増長してから、クラスタ中に新たに加入する円形単元モジュールを源の円形単元モジュールとして、増長過程を繰り返し、新しい円形単元モジュールがクラスタ中に入れることがなくなるまでに繰り返すプロセスと、
を含むことを特徴とする請求項１４記載の二次元バーコードの符号化方法。
【請求項２０】
方向を定位する前記ステップ(7)において、
(71)コードパターンシンボルの4角の定位の円形単元モジュールを見出すプロセスと、
(72)4角の定位の円形単元モジュールの座標を設定するプロセスと、
(73)座標補正公式によって、各円形単元モジュールの座標を計算するプロセスと、
を含むことを特徴とする請求項１４記載の二次元バーコードの符号化方法。
【請求項２１】
前記ステップ(8)において、
符号化する時のコードワードのビットからバーコードの円形単元モジュールまでの配置、及びコードパターンシンボルの中の各円形単元モジュールの座標によって、コードワードの各ビットのシークェンスのロケーション値を設定して、一つのコードワードの全てのビットの中、対応する円形単元モジュールを有するビットの値は1であり、でないと0になるプロセスと、
リード・ソロモン誤り訂正アルゴリズムによりコードワードを誤り訂正するプロセスと、
誤り訂正が成功した後、データワードをアウトプットするプロセスと、
を含むことを特徴とする請求項１４記載の二次元バーコードの符号化方法。
【請求項２２】
前記ステップ(71)において、
各円形単元モジュールのクローズド・境界の座標によって、円形単元モジュールの組みの最小外接矩形を計算するプロセスと、
この最小外接矩形の中心の座標を通じて、一筋の水平線と垂直線をかき、円形単元モジュールを左上、右上、左下及び右下の四っつのゾーンにわけるプロセスと、
それぞれのゾーンの中に最小外接矩形の中心より一番遠くの点をこのゾーンの定位の円形単元モジュールと確定するプロセスと、
を具体的に含むことを特徴とする請求項２０記載の二次元バーコードの符号化方法。
【請求項２３】
前記ステップ(72)において、
4角の定位の円形単元モジュールのバーコード中の座標を各々(0,0)、(11,0)、(0,8)及び(11,8)と設定するプロセス
を具体的に含むことを特徴とする請求項２０記載の二次元バーコードの符号化方法。
【請求項２４】
前記ステップ(73)において、
座標補正公式
x’＝K0*x＋K1*x*y＋K2*y＋K3、
y’＝K4*x＋K5*x*y＋K6*y＋K7、
ここで(x’,y’)は各円形単元モジュールの座標
(x,y)は画像中の原点の座標
に、4角の定位の円形単元モジュールのバーコード中の座標及びそれらの画像中の座標を代入して、8個の8元一次方程式を得るプロセスと、
方程式組を解いてK0〜K7の8個の係数を得るプロセスと、
K0〜K7を方程式に代入して、座標の転換方程式を得るプロセスと、
各円形単元モジュールの中心の座標をこの方程式組に書き込み、この円形単元モジュールのバーコード中の座標を計算するプロセスと、
を具体的に含むことを特徴とする請求項２０記載の二次元バーコードの符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は二次元バーコードと、データを符号化して当該二次元バーコードを生成する符号化方法、及び、この二次元バーコードのコードパターンシンボルを復号化してデータに回復させる復号化方法に関するものである。
【背景技術】
【０００２】
一般に、二次元バーコードは特徴モード領域と、フォーマット情報領域と、データ領域との三つの部分から構成される。その中、特徴モード領域はアルゴリズムと定位コードパターンとを識別させるように画像をガイドし、フォーマット情報領域はコードパターンフォーマットと、データ誤り訂正との描写に関するパラメーターを格納し、データ領域は誤り訂正符号化アルゴリズムにより符号化されたデータを格納する。
【０００３】
二次元バーコードの最も見込みがある応用方式は携帯電話の操作フラット・フォーム上の二次元バーコードの復号化プログラムを利用し、携帯電話の監視カメラを通じて二次元バーコードを読み取って解析し、各種の増値サービスを取得する。大多数のカメラ付携帯電話が微距離の画像生成機能と自動フォーカス機能を持たなく、そして、自動フォーカス機能を持ってもフォーカスの時間が長いので全部復号化の時長も長くなる。また、普通のカメラ付携帯電話は照明機能を持たないため、環境光だけを利用して取得する画像の明るさ、コントラスト、SN比などのパラメータが低いので、伝統の矩形モジュールで構成されるマトリクスバーコードに対して、カメラ付携帯電話の識別読み取りの効果がよくなく、二次元バーコードの大規模な商業化応用に不利になる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は以上のような課題を解するためになされたものであり、二次元バーコードと、データを符号化して当該二次元バーコードを生成する符号化方法、及び、この二次元バーコードのコードパターンを復号化してデータに回復させる復号化方法を提供することを目的とする。これらの方法は、識別し易く読み取り易くて、誤り訂正能力が強く、設備に要求が低くて、広く応用できる。
【課題を解決するための手段】
【０００５】
前記目的を実現するために本発明に係る二次元バーコードは平面において配列された、異なる光学反射率を有する単元モジュールを含むコードパターンシンボルを備える二次元バーコードであって、前記単元モジュールが円形単元モジュールであり、そして、モジュールとモジュールの間に間隔を保っている。
【０００６】
また、本発明に係る二次元バーコードは、前記円形単元モジュールが等間隔的に配列された、大きさの等しい実芯の円形単元モジュールであることを特徴とする。
【０００７】
また、本発明に係る二次元バーコードは、前記隣接する二つの円形単元モジュールの円心距離は円形単元モジュールの直径より大きいことを特徴とする。
【０００８】
また、本発明に係る二次元バーコードは、前記コードパターンシンボルが12×9個の円形単元モジュールをもつことを特徴とする。
【０００９】
また、本発明の二次元バーコードは、前記コードパターンシンボルが4:3の外形比例を選用することを特徴とする。
【００１０】
また、本発明に係る二次元バーコードは、前記コードパターンシンボルの周辺にクローズド・枠を有することを特徴とする。
【００１１】
また、本発明に係る二次元バーコードは、前記コードパターンシンボルの周辺に寸法幅の4個の単元モジュールのクリア・ゾーンを有することを特徴とする。
【００１２】
また、本発明に係る二次元バーコードは、前記コードパターンシンボルの4角座標の各々(0,0)、(11,0)、(0,8)及び(11,8)である円形単元モジュールが定位単元モジュールであり、その他の単元モジュールを13組にわけ、その中、座標の各々(0,1)、(0,2)、(1,0)、(1,1)、(1,2)、(2,0)、(2,1)及び(2,2)である単元モジュールを第一組として、座標の各々(0,3)、(0,4)、(0,5)、(1,3)、(1,4)、(1,5)、(2,4)及び(2,5)である単元モジュールを第二組として、座標の各々(0,6)、(0,7)、(0,8)、(1,6)、(1,7)、(1,8)、(2,6)及び(2,7)である単元モジュールを第三組として、座標の各々(0,9)、(0,10)、(1,9)、(1,10)、(1,11)、(2,9)、(2,10)及び(2,11)である単元モジュールを第四組として、座標の各々(3,0)、(3,1)、(4,0)、(4,1)、(4,2)、(5,0)、(5,1)及び(5,2)である単元モジュールを第五組として、座標の各々(2,3)、(3,2)、(3,3)、(3,4)、(3,5)、(4,3)、(4,4)及び(4,5)である単元モジュールを第六組として、座標の各々(2,8)、(3,6)、(3,7)、(3,8)、(3,9)、(4,6)、(4,7)及び(4,8)である単元モジュールを第七組として、座標の各々(3,10)、(3,11)、(4,9)、(4,10)、(4,11)、(5,9)、(5,10)及び(5,11)である単元モジュールを第八組として、座標の各々(6,0)、(6,1)、(6,2)、(7,0)、(7,1)、(7,2)、(8,1)及び(8,2)である単元モジュールを第九組として、座標の各々(6,3)、(6,4)、(7,3)、(7,4)、(7,5)、(8,3)、(8,4)及び(8,5)である単元モジュールを第十組として、座標の各々(5,3)、(5,4)、(5,5)、(5,6)、(5,7)、(5,8)、(6,5)及び(6,6)である単元モジュールを第十一組として、座標の各々(6,7)、(6,8)、(7,6)、(7,7)、(7,8)、(8,6)、(8,7)及び(8,8)である単元モジュールを第十二組として、座標の各々(6,9)、(6,10)、(6,11)、(7,9)、(7,10)、(7,11)、(8,9)及び(8,10)である単元モジュールを第十三組とすることを特徴とする。
【００１３】
さらに、本発明は二進法のデータストリームをコードパターンシンボルに符号化して、コードパターンシンボルをアウトプットする前記請求項１から８のいずれかの項に記載の二次元バーコードの符号化方法であって、
(a)二進法のデータストリームを特定ビット長さを持つ情報データコードワードに分割されるステップと、
(b)前記情報データコードワードを誤り訂正アルゴリズムにより計算し、誤り訂正コードワードを生成するステップと、
(c)前記情報データコードワード、誤り訂正コードワードを単元モジュール画が円形単元モジュールであり、そして、モジュールとモジュールの間に間隔を保っているコードパターンシンボルを生成するステップと、を含む。
【００１４】
また、本発明に係る二次元バーコードの符号化方法は、前記コードパターンシンボルが12×9個の円形単元モジュールを含み、その中、4角の4個の単元は定位単元であり、余った104個の円形単元モジュールの中、前の80個は情報データの記憶に用いられて、残った24個は誤り訂正データの記憶に用いられることを特徴とする。
【００１５】
また、本発明に係るの二次元バーコードの符号化方法は、前記誤り訂正コードワードが以下のように生成され、80ビットの情報データは8ビットを一組として10組にわけ、すなわち計10個の8ビットの情報データコードワード(codeword)になり、この10個のコードワードを誤り訂正アルゴリズムにより計算して、3個の8ビットの誤り訂正コードワードを生成することを特徴とする。
【００１６】
また、本発明に係る二次元バーコードの符号化方法は、前記誤り訂正アルゴリズムはリード・ソロモン誤り訂正アルゴリズムを採用することを特徴とする。
【００１７】
また、本発明に係る二次元バーコードの符号化方法は、前記誤り訂正コードワードはBCH誤り訂正コードワードを採用することを特徴とする。
【００１８】
さらに、本発明は二次元バーコードの符号化方法であって、
(1)コードパターンシンボルの画像を取得ステップと、
(2)取得したコードパターンシンボルの画像を二値化処理するステップと、
(3)円形単元モジュールにエッジ測定を行ない、境界画像を得るステップと、
(4)境界画像にクローズド・境界のフォローを行うステップと、
(5)円形単元モジュールを識別するステップと、
(6)異なるコードパターンシンボルの円形単元モジュールを区分し、削除するステップと、
(7)方向を定位するステップと、
(8)コードワードの回復と誤り訂正を行なうステップと、
を含むことを特徴とする。
【００１９】
また、本発明に係る二次元バーコードの符号化方法は、前記ステップ(1)とステップ(2)の間、取得したコードパターンシンボルに画像強化処理を行うステップ(1´)をさらに含むことを特徴とする。
【００２０】
また、本発明に係る二次元バーコードの符号化方法は、前記ステップ(3)において、前記エッジ測定によって取得する境界画素を画素値が0であり、そして隣接する8個の画素の中に非0画素がある画素と定義して、前記エッジ測定の方法とは二値画像中のすべての画素に境界判定を行なって境界画像を得て、境界画素を最大明るさの255に標識して、その他を0と標識することを特徴とする。
【００２１】
また、本発明に係る二次元バーコードの符号化方法は、境界画像にクローズド・境界のフォローを行う前記ステップ(4)において、
(41)境界画像を行の主な方向に沿ってスキャンして、スキャンされた一番目の境界画素を境界フォローの起点画素として、境界画素がなければ、今回のフローが終了すると表明されるプロセスと、
(42)起点画素の画素座標を隊列Qに入れて、そして、この起点画素を0と標識すると、もうフォローを行ったと表明されるプロセスと、
(43)起点画素の隣接する8個の画素の中に境界画素があるかどうかを判断し、あればいずれかの画素を次回のフォローの起点として選択して、(42)にジャンプ移転し、でないと今回のフォローが終了し、隊列Qの中の画素座標のリストはクローズド・境界であり、隊列Qの中の画素座標のリストを記憶して、その後、空にして、(41)にジャンプ移転するプロセスと、
を含むことを特徴とする。
【００２２】
また、本発明に係る二次元バーコードの符号化方法は、円形単元モジュールを識別する前記ステップ(5)において、
(51)クローズド・境界の全ての境界点の画素の横座標を累計して、累計の和を境界点の総数で割って、クローズド・境界の中心点の画素の横座標uを得て、全ての境界点の画素の縦座標を累計して、累計の和を境界点の総数で割って、クローズド・境界の中心点の画素の縦座標vを得るプロセスと、
(52)クローズド・境界の中心点の画素の座標(u,v)で四つの方向に沿ってクローズド・境界の直径をスキャンして、それぞれ四つの長度値d1、d2、d3、d4を得るプロセスと、
(53)平均直径d＝(d1＋d2＋d3＋d4)/4をとって、平均ラウンドネスをN＝|d−d1|/d＋|d−d2|/d＋|d−d3|/d＋|d−d4|/dと定義するプロセスと、
(54)それぞれのクローズド・境界にN値を計算して、実測統計結果によってN値が所定域値TNより大きいクローズド・境界を棄てて、残ったクローズド・境界をバーコードの円形単元モジュールの境界と認めるプロセスと、
を含むことを特徴とする。
【００２３】
また、本発明に係る二次元バーコードの符号化方法は、異なるコードパターンシンボルの円形単元モジュールを区分し、削除する前記ステップ(6)において、
(61)二つの円の寸法差異度を取って、一つの円の直径長さをD1として、もう一つの円の直径長さをD2とすると、二つの円の寸法差異度はLdif＝|D1−D2|/max(D1,D2)になり、バーコードのクリア・ゾーンの幅はM個の円形単元モジュールの直径であり、そして、円の寸法差異度はLdifであるとするプロセスと、
(62)画像中心点より一番近い円形単元モジュールを源の円形単元モジュールとして選択してから、この円形単元モジュールよりの距離がM以下であって、そして寸法差異度のLdifが予定値より小さい円形単元モジュールをクラスタの中に入れるプロセスと、
(63)一回り増長してから、クラスタ中に新たに加入する円形単元モジュールを源の円形単元モジュールとして、増長過程を繰り返し、新しい円形単元モジュールがクラスタ中に入れることがなくなるまでに繰り返すプロセスと、
を含むことを特徴とする。
【００２４】
また、本発明に係る二次元バーコードの符号化方法は、方向を定位する前記ステップ(7)において、
(71)コードパターンシンボルの4角の定位の円形単元モジュールを見出すプロセスと、
(72)4角の定位の円形単元モジュールの座標を設定するプロセスと、
(73)座標補正公式によって、各円形単元モジュールの座標を計算するプロセスと、
を含むことを特徴とする。
【００２５】
また、本発明に係る二次元バーコードの符号化方法は、前記ステップ(8)において、
符号化する時のコードワードのビットからバーコードの円形単元モジュールまでの配置、及びコードパターンシンボルの中の各円形単元モジュールの座標によって、コードワードの各ビットのシークェンスのロケーション値を設定して、一つのコードワードの全てのビットの中、対応する円形単元モジュールを有するビットの値は1であり、でないと0になるプロセスと、
リード・ソロモン誤り訂正アルゴリズムによりコードワードを誤り訂正するプロセスと、
誤り訂正が成功した後、データワードをアウトプットするプロセスと、
を含むことを特徴とする。
【００２６】
また、本発明に係る二次元バーコードの符号化方法は、前記ステップ(71)において、
各円形単元モジュールのクローズド・境界の座標によって、円形単元モジュールの組みの最小外接矩形を計算するプロセスと、
この最小外接矩形の中心の座標を通じて、一筋の水平線と垂直線をかき、円形単元モジュールを左上、右上、左下及び右下の四っつのゾーンにわけるプロセスと、
それぞれのゾーンの中に最小外接矩形の中心より一番遠くの点をこのゾーンの定位の円形単元モジュールと確定するプロセスと、
を具体的に含むことを特徴とする。
【００２７】
また、本発明に係る二次元バーコードの符号化方法は、前記ステップ(72)において、
4角の定位の円形単元モジュールのバーコード中の座標を各々(0,0)、(11,0)、(0,8)及び(11,8)と設定するプロセス
を具体的に含むことを特徴とする。
【００２８】
また、本発明に係る二次元バーコードの符号化方法は、前記ステップ(73)において、
座標補正公式
x’＝K0*x＋K1*x*y＋K2*y＋K3、
y’＝K4*x＋K5*x*y＋K6*y＋K7、
によって、ここで(x’,y’)は各円形単元モジュールの座標であり、(x,y)は画像中の原点の座標であり、4角の定位の円形単元モジュールのバーコード中の座標及びそれらの画像中の座標を前記公式に代入すると、8個の8元一次方程式を得るプロセスと、
方程式組を解くとK0〜K7の8個の係数を得るプロセスと、
K0〜K7を方程式に代入すると座標の転換方程式を得るプロセスと、
各円形単元モジュールの中心の座標をこの方程式組に書き込み、この円形単元モジュールのバーコード中の座標を計算するプロセスと、
を具体的に含むことを特徴とする。
【００２９】
そして、符号化された上記二次元バーコードを復号化する方法としては、前述してきた符号化においては乱数表等の「ブラックボックス」を採用するものではないから、この符号化とは逆の順序を辿るという方法でよい。
【発明の効果】
【００３０】
本発明の二次元バーコードは、円形単元モジュールを採用し、そしてモジュールとモジュールの間に間隔を保っているので、円形単元モジュールは深度のフォーカス・アウトの条件下でイメージング後、また円形単元モジュールであり、unsharp maskでのフィルトレーションをしてから円形単元モジュールの形状に良く回復される。この設計では画像処理アルゴリズムが二値化域値に対する選択に敏感ではなく、これは域値が二値化された円形単元モジュールの大きさに影響するが、円形単元モジュールの中心の座標は域値の変化によってドリフトしないからである。また、モジュール間に間隔があるので、二値化後の隣接するモジュールのくっつける可能性が低減され、各々モジュールを単独に定位させられる。従って、本発明は深度のフォーカス・アウト、及び低照度のイメージングの条件下で、やはり確実に識別読み取り、復号化でき、また識別読み取りが易く、誤り訂正能力が強く、設備に要求が低く、広く拡大応用に有利である。
【００３１】
二次元バーコード的円形単元モジュールは二種類の色を取れる。一つは背景色であり、もう一つは前景色である。バーコードの易く識別読み取り性(高い識別読み取り性能)を保証するために、前景色の明るさと背景色の明るさは十分な相違を保持する。4:3の外形比例を選用し、携帯電話の撮影画像寸法の幅、高さの比例と相応して、効率よくすべての画像画素を利用するとともに、方形バーコードと比べると、ただ180度を回転するかどうかを判断することで十分であるので、バーコード方向判断の計算量が半分ぐらい減少でき、復号化する速度をあげることに有利になる。
【発明を実施するための最良の形態】
【００３２】
以下には具体的な実施例を用いて図面によって本発明についてもっと詳しく説明する。
【００３３】
本発明は、円形単元モジュールを採用し、そしてモジュールとモジュールの間に間隔を保っているので、円形単元モジュールは深度のフォーカス・アウトの条件下でイメージング後、また円形単元モジュールであり、unsharp maskでのフィルトレーションをしてから円形単元モジュールの形状に良く回復される。この設計では画像処理アルゴリズムが二値化域値に対する選択に敏感ではなく、これは域値が二値化された円形単元モジュールの大きさに影響するが、円形モジュールの中心の座標は域値の変化によってドリフトしないからである。また、モジュール間に間隔があるので、二値化後の隣接するモジュールのくっつける可能性を低減し、おのおのモジュールを単独に定位させられる。
【００３４】
図１に示されるように、目的バーコードは等間隔的に配列された、12×9行の大きさが等しい実芯の円形単元モジュールで構成される。隣接する二つの円形単元モジュールの円心距離は円形単元モジュールの半径より大きいである。
【００３５】
円形単元モジュールは二種類の色が取れる。一つは背景色であり、もう一つは前景色である。バーコードの易く識別読み取り性を保証するために、前景色の明るさと背景色の明るさは十分の相違を保持する。円形単元モジュールは多種類の色が取れてもいい。4:3の外形比例を選用し、携帯電話の撮影画像寸法の幅、高さの比例と相応して、効率よくすべての画像画素を利用するとともに、方形バーコードと比べると、ただ180度を回転するかどうかを判断することで十分であるので、バーコード方向の判断の計算量が半分ぐらい減少できる。
【００３６】
バーコードの4角の4個の円形単元モジュールは前景色と固定させ、余った104個の円形単元モジュールはデータの記憶に用いられて、前景色の円形単元モジュールはビット“1”を記憶し、背景色の円形単元モジュールはビット“0”を記憶する。104個の円形単元モジュールはトータル104ビットのデータを記憶でき、その中、前の80個のビットは有効データの記憶に用いられて、残った24個は誤り訂正データの記憶に用いられる。
【００３７】
誤り訂正データは、以下の方式で生成されている。80個のビット有効データは8ビットを一組として10組にわけて、すなわち計10個の8ビットコードワード(codeword)になり、この10個のコードワードにGF(256)のリード・ソロモン誤り訂正アルゴリズムにより3個(計24ビット)の誤り訂正コードワードが生成される。13個のコードワードが図１に示されるような方式で配列され、隣接する同色の8個のモジュールは一つのコードワードを記憶する。色はただクラスタのコードワード組を標識するだけで、識別読取りと関係ない。3個の誤り訂正コードワードは最大一つのコードワードの誤りが訂正され、すなわち最大同一コードワードに属于する8個のモジュールの誤りを訂正できる。バーコードの汚れ欠損を考慮せずに、このような誤り訂正の能力が十分である(一次元バーコードはチェック機能だけで有効に使用もできる)。十分に24個のリダンダント・ビットの誤り訂正機能を利用するために、BCH誤り訂正コードが選用でき、24ビットのBCHチェックビットは最大に任意位置での11個のビットのデータを訂正できる。こうしたらバーコードは10％以上の面積の汚れ欠損を許せる。
【００３８】
（クリア・ゾーン(clear zone)に対する要求）
クリア・ゾーンがコードパターンシンボルに隣接する周辺区域を指す。復号化は二次元の識別読取り設備を使う。復号化の成功を保証するために、クリア・ゾーンに一定の要求がある。本発明のコードパターンシンボルの中に特殊な識別と定位モードを設定していない。そのゆえ、寸法幅の4個の単元モジュールののクリア・ゾーンを維持しなければならない。また、識別の特徴として、コードパターンシンボルに一つのクローズド・枠を増加することで、クリア・ゾーン寸法に対する要求を減少する。
【００３９】
図２に示すように復号化する過程は携帯電話で撮影された画像からバーコードが識別されて、そして、そのバーコードで符号化されたデータが還元されることと定義する。画像は二次元の画素マトリクスで構成され、言い表すことが標準されるために、本実施例では携帯電話で撮影された画像が8 bitのグレースケール画像と規定され、即ち各画素の明るさは8 bitの数で定義され、値の範囲は0〜255であり、対応する画像の明るさは一番黒い状態から一番白い状態までの範囲である。
【００４０】
一、画像の強化
図３に示すように携帯電話でバーコードに近距離撮影を行う場合、取れる画像が惚けるし、コントラストも低く、画像中の円形単元モジュールの目的特徴がはっきりでないので、直接的な識別が難しく、そのため、先ず画像増強を行う必要がある。
【００４１】
画像増強のアルゴリズムはUSM(Unsharp Mask)アルゴリズムを採用し、このアルゴリズムはディジタルの画像処理領域で常用する画像増強のアルゴリズムである。図４に示すように、その原理は先ず原画像に二次元ガウスローパスフィルトで惚ける画像を取得して、それから原画像から惚ける画像を除いて、コントラストを強化した画像が得られる。原画像をF(x,y)とすると、二次元ガウスローパスフィルトを通じて画像U(x,y)を得たら、増強された画像はV(x,y)＝F(x,y)＋K×(F(x,y)−U(x,y))であり、ここで、Kは増強係数で、経験値は1〜4で、Kは大きいければ大きいほど増強効果が良いが、画像中のノイズも拡大される。
【００４２】
二、二値化
増強した画像は二値化処理する必要がある。一つの域値T(0<T<255)を設定して、明るさがTより大きい画素は白とし、其の他の画素は黒とする。画像を増強した後、画素の明るさの値の動態範囲が拡大されたので、背景の明るさは最大値255に近づき、円形単元モジュールになる画素の明るさは最小値0に近づく。従って、一つの固定あるいは動態の域値Tを易く選択する。二値化後の画像は図５に示す。
【００４３】
三、境界検測
二値化された画像に境界検測を行う。境界は画素値が0であり、そして隣接する8個の画素中に非0画素があるものと定義する。ある画素に隣接する画素は図１０に示すよう定義する。番号0の画素の隣接する8個の画素はそれぞれ番号1〜8の画素である。一つの画素は境界画素ならば、最大の明るさ255と標識され、そうでないと0と標識される。二値画像中の全ての画素に境界判定を行って、境界画像が得られる。各単元モジュールに境界検測を行った後、得た画像は図６に示す。
【００４４】
四、クローズド・境界のフォロー
クローズド・境界のフォローの操作対象は前記ステップ三において境界検測した後、得た境界画像であり、
(a)境界画像を行の主方向に沿ってスキャンし(即ち、左から右、上から下へ)、スキャンされた一番目の境界画素を境界フォローの起点画素として、境界画素がなければ、今回のフローが終わると表明されるステップと、
(b)起点画素の座標を隊列Ｑに入れて、そしててこの起点画素を0と標識して、もうフォローを行ったと表明されるステップと
(c)起点画素の隣接する8個の画素の中に境界画素があるかどうかを判断し、あればいずれかの境界画素を次回のフォローの起点として選択して、(b)にジャンプ移転し、でないと今回のフォローが終了し、隊列Ｑ中の座標のリストはクローズド・境界であり、候補目的の円形単元モジュールの境界でもあり、隊列Ｑ中の座標のリストを記憶して、空にして、(a)にジャンプ移転するステップとを含む。
【００４５】
図７に示すように、このフローが終わってから円形単元モジュールの画像の境界が検測されたとともに一部のノイズ黒点が検測結果に混入された。
【００４６】
五、円形単元モジュールの識別
このステップの目的はステップ四においての検測結果から一部のノイズデータを除くもので、即ち非円形のクローズド・境界を棄てるものである。ノイズデータの判断の根拠は円の幾何学的特徴による。クローズド・境界に対してまずすべての境界点の横座標を累計して、累計の和を境界点の総数で割るとクローズド・境界の中心点の横座標uを得て、それから全ての境界点の縦座標を累計して、累計の和を境界点の総数で割るとクローズド・境界の中心点の縦座標vを得る。
【００４７】
クローズド・境界の中心点の座標(u,v)によって、四つの方向に沿ってクローズド・境界の直径をスキャンして、図８に示すように、各々四つの長度値d1、d2、d3、d4を得る。平均直径をd＝(d1＋d2＋d3＋d4)/4とすれば、平均ラウンドネスをN＝|d−d1|/d＋|d−d2|/d＋|d−d3|/d＋|d−d4|/dと定義される。Nの値が小さいほどクローズド・境界は円であるとの信頼度が高い。それぞれのクローズド・境界にそのN値を計算して、実測統計の結果によって、N値がある域値TNより大きいクローズド・境界を棄てて、残ったクローズド・境界がバーコードの円形単元モジュールの境界と認められる。
【００４８】
六、異なるコードパターンシンボルの円形単元モジュールの区分と削除
画像中の全ての円形単元モジュールは必ずしも同一の二次元バーコードに属することではなく、そのためステップ5において検出された円の中から同一の二次元バーコードに属する一組の円形単元モジュールを取り出す必要がある。まず、二つの円の寸法の差異度を定義する。一つの円の直径長さをD1として、もう一つの円の直径長さをD2とすれば、この二つの円の寸法差異度はLdif＝|D1−D2|/max(D1,D2)になる。また、バーコードのクリア・ゾーン幅がM個の円形単元モジュールの直径と規定される。即ち、バーコードの周辺に必ずM個の円形単元モジュールの直径の空白区域を空けて、クリア・ゾーンの大きさが異なるシンボロジーにMの標準が違う。ここで、いわゆる水晶増長の方法で異なるコードパターンシンボルの円形単元モジュールを区分し、除く。
【００４９】
まず、画像の中心点より一番近い円形単元モジュールを源の円形単元モジュールとして選択して、それから、この円形単元モジュールよりの距離がMより小さくて、寸法差異度Ldifはある予定値より小さい円形単元モジュールをクラスタに入れて、
【００５０】
一回りの増長が終わってからクラスタに新たに入れる円形単元モジュールを源の円形単元モジュールとして増長過程を繰り返して、新しい円形単元モジュールがクラスタ中に入れることがなくなるまでにする。
【００５１】
ここまで、バーコードが画像から分割されて、そして、バーコードに組み合わせる円形単元モジュールが定位された。以下のステップにおいて各円形単元モジュールのバーコード中の座標位置を確定する。
【００５２】
七、方向定位
各円形単元モジュールのクローズド・境界の座標によって、ステップ六において得た円形単元モジュール組の最小外接矩形を計算して、この最小外接矩形の中心の座標を通じて一筋の水平線と垂直線を描き、その交差点は画像の原点であり、円形単元モジュールを左上、右上、左下及び右下の四つのゾーンと区分して、それぞれのゾーンにある最小外接矩形の中心より一番遠くの点はこのゾーンの定位の円形単元モジュールである。こうして、バーコードの上、下、左、右の四つの定位の円形単元モジュールを見出した。
【００５３】
4角の定位の円形単元モジュールのバーコード中の座標が各々(0,0)、(11,0)、(0,8)及び(11,8)と設定して、この四つの定位の円形単元モジュールの座標によって、以下の座標の補正公式でその他の円形単元モジュールのバーコード中の座標が計算される。
x’＝K0*x＋K1*x*y＋K2*y＋K3、
y’＝K4*x＋K5*x*y＋K6*y＋K7、
(x’,y’)は各円形単元モジュールの座標であり、(x,y)は画像中の原点の座標である。4角の定位の円形単元モジュールのバーコード中の座標及びそれらの画像中の座標を上の公式に代入して、8個の8元一次方程式を得て、方程式組を解くとK0〜K7の8個の係数を得る。K0〜K7を方程式に代入して座標の転換方程式をえる。それぞれの円形単元モジュールの中心の座標をこの方式組に書き込むと、この円形単元モジュールのバーコード中の座標が計算できる。一般には計算されたx’とy’の値は整数ではなく、それを四舍五入するといい。
【００５４】
八、コードワードの還元と誤り訂正
図９に示すように、符号化する時のコードワードビットからバーコードの円形単元モジュールの配置、及びステップ七において計算されたバーコードでの各円形単元モジュールの座標によって、コードワードの各ビットのシークェンスのロケーション値を設定する。一つのコードワードの全てのビットの中、対応する円形単元モジュールを有するビットの値は1であり、でないとビット0とする。リード・ソロモン誤り訂正算法によってコードワードに誤り訂正を行って、13個のコードワードには3個の誤り訂正コードワードがあるので、一つの誤りが訂正できる。一つのコードワードにいずれかのビットが誤れば、一つの誤りとする。誤り訂正が成功すれば、復号化が成功して、10個のデータコードワードをアウトプットする。
【図面の簡単な説明】
【００５５】
【図１】本発明に係る一つの二次元コードパターンシンボルを示す図である。
【図２】本発明に係る復号化するプローチャートである。
【図３】復号化する過程中に採取した二次元バーコードの原始画像を示す図である。
【図４】図３における二次元バーコードの原始画像の増強画像を示す図である。
【図５】図４における増強画像を二値化した画像を示す図である。
【図６】図５のように境界検測して得た境界画像を示す図である。
【図７】境界画像にクローズド・境界のフォローを行った画像を示す図である。
【図８】クローズド・境界をフォローした画像に円形単元モジュール識別を行う図である。
【図９】新たに構造する二次元コードパターンシンボルを示す図である。
【図１０】境界検測時、ある画素と隣接する画素の定義を示す図である。
【図１】
2007317184.tif 000003
【図２】
2007317184.tif 000004
【図３】
2007317184.tif 000005
【図４】
2007317184.tif 000006
【図５】
2007317184.tif 000007
【図６】
2007317184.tif 000008
【図７】
2007317184.tif 000009
【図８】
2007317184.tif 000010
【図９】
2007317184.tif 000011
【図１０】
2007317184.tif 000012