(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023035458
(43)【公開日】2023-03-13
(54)【発明の名称】2次元コードと一体化された画像の生成方法
(51)【国際特許分類】
G06K 19/06 20060101AFI20230306BHJP
【FI】
G06K19/06 103
G06K19/06 037
G06K19/06 075
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2021142324
(22)【出願日】2021-09-01
(71)【出願人】
【識別番号】599160000
【氏名又は名称】株式会社トライネット
(71)【出願人】
【識別番号】521386962
【氏名又は名称】世古口 誠
(74)【代理人】
【識別番号】100078776
【弁理士】
【氏名又は名称】安形 雄三
(74)【代理人】
【識別番号】100121887
【弁理士】
【氏名又は名称】菅野 好章
(74)【代理人】
【識別番号】100200333
【弁理士】
【氏名又は名称】古賀 真二
(72)【発明者】
【氏名】森井 昌克
(57)【要約】
【課題】どのような画像に対しても、2次元コードのドットが目立ち難いような検査点の場所を、自動的に選ぶことが可能な2次元コードと一体化された画像を提供する。
【解決手段】2次元コードと一体化された画像の生成方法であり、画像の輝度を算出して黒白に2値化し、2値化された境界付近に検査点を設定し、2次元コードを境界付近に配置し、モジュールのドットの計測を行いながら最小となる位置に配置して画像を生成する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
2次元コードと一体化された画像の生成方法であり、前記画像の輝度を算出して黒白に2値化し、2値化された境界付近に検査点を設定し、前記2次元コードを前記境界付近に配置し、モジュールのドットの計測を行いながら最小となる位置に配置して前記画像を生成することを特徴とする2次元コードと一体化された画像の生成方法。
【請求項2】
前記ドットが置かれる範囲に白と黒のピクセルが混じっている場合、ビットの値に関わらず前記ドットを付与するようになっている請求項1に記載の2次元コードと一体化された画像の生成方法。
【請求項3】
前記ドットが置かれる範囲が全て黒若しくは白の場合、対応するビットと前記2値化した結果が対応していない場合、前記ドットを付与するようになっている請求項1に記載の2次元コードと一体化された画像の生成方法。
【請求項4】
前記2次元コードがQRコード(登録商標)である請求項1乃至3のいずれかに記載のQRコードと一体化された画像の生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、QRコード(登録商標)などの2次元コードと一体化された画像の生成方法に関し、特に、ドット(汚点)の付着などで美観が損なわれることなく、画像のデザインに寄与するように雑音なく2次元コードが配置された、2次元コードと一体化された画像の生成方法に関する。
【背景技術】
【0002】
近年スマートフォンの普及と共に、外出先でもこれらの端末を利用して気軽にインターネットを利用することができるようになっている。それに伴い、駅や広場等にある広告では、これらの端末で読み取ることを考えて、QRコード(登録商標)が広く使用されている。QRコードは1994年にデンソーウェブ株式会社によって開発された2次元コードの1つである。QRコードは縦横2方向に情報を有しており、多くの情報を高速で読み取ることができる。QRコードにはバージョン1(若しくはモデル1)からバージョン40(若しくはモデル40)まであり、バージョン1は最初に作られたもので、誤り訂正レベルLであっても、数字41桁までしか扱うことができない。バージョン1を改良したものがバージョン2であり、バージョン2は誤り訂正レベルLで、数字77桁、英数字47文字を扱うことができる。
【0003】
図1は、QRコードのバージョン2(若しくはモデル2)の内容を模式的に示しており、誤り訂正レベルMの場合である。QRコードのシンボルを構成する最小の黒若しくは白の正方形のセルがモジュールであり、1モジュールがデータの1ビットに相当している。
【0004】
QRコードは、撮影時の傾きや歪みにも耐性を持っており、格納される情報はリード・ソロモン(RS)符号で符号化されているため、ある程度の汚れや破損が生じても問題なく情報を読み取ることができる。しかし、QRコードは白黒のモジュールによる幾何学模様で構成されているため、デザイン性が必要とされる広告や販促物等に用いる場合には、全体のデザイン性が損なわれてしまう課題がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2020-161172号公報
【特許文献2】特開2020-80065号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
そのため、広告等においてデザイン性が損なわれないように、QRコードと画像を一体化させたQRコードが必要とされている。従来ではロゴマークと一体化したQRコードが開示されているが、このQRコードはモジュールをドット化し、埋め草コード語に対応する画像を2値化した結果を格納し、バーコードリーダで画像を読み込んだ際に、QRコードと画像の読み取り結果が一致するモジュールは画像のままにすることで、画像に付与するモジュールを可能な限り少なく、目立ち難いようにしている。また、QRコードに用いられるリード・ソロモン(RS)符号に対して非組織符号化を行い、検査点の場所を画像の目立ち難い場所に置き、ドットを付与した場合も、可能な限り目立ち難いようにしている。
【0007】
検査点は誤り訂正符号の冗長のことであり、組織符号と呼ばれる構成方法では、nバイトの長さの符号があった場合、頭から連続してkバイト(k<n)に情報を入れ、つまり作成された任意のkバイトの情報がそのまま格納され、読み込むことができる。残りの(n-k)バイトが検査点となり、kバイトから計算で求められる一意的に付属決定したバイトとなる。また、非組織符号とは、RS符号の特殊な構成法で、どこでも良い任意のkバイトに情報を入れることができ、残りの(n-k)バイトを特殊な方法で計算し、その値を求めることで、全体としてRS符号を構成する。その構成法は符号理論の一般的な教科書、例えばMcWilliams-Sloaneにも開示されている。
【0008】
検査点に対応するQRコードのモジュールはどのようになるのか、各モジュールが黒になるのか(黒いドットが打たれるか)、白になるのか(白いドットが打たれるか)確定できないので、どのようなドットが打たれても目立たない、いわゆるエッジと呼ばれる画像の境界点に入れるということである。
【0009】
しかし、従来開示されているQRコードは、手動で検査点を置く場所を決めて非組織符号化をしているため、別の画像や同じ画像の違う場所にQRコードを配置するような場合、最もQRコードが目立ち難くなるような検査点の配置を再度手動で探す必要がある。
【0010】
本発明はこのような事情からなされたものであり、本発明の目的は、どのような画像に対しても、QRコード(登録商標)などの2次元コードのドットが目立ち難いような検査点の場所を、自動的に選ぶことが可能な2次元コードと一体化された画像を提供することにある。
【課題を解決するための手段】
【0011】
本発明は2次元コード(QRコード(登録商標))と一体化された画像の生成方法に関し、本発明の上記目的は、前記画像の輝度を算出して黒白に2値化し、2値化された境界付近に検査点を設定し、前記2次元コードを前記境界付近に配置し、モジュールのドットの計測を行いながら最小となる位置に配置して前記画像を生成することにより達成される。
【発明の効果】
【0012】
画像の白黒の境界にQRコードを配置して、ドットの計測により自動的にドットが最小になるようにしているので、QRコードのドットが目立ち難い画像を得ることができる。画像のエッジ、即ち色が変わる際、特にQRコードとして黒白の2値化画像に変換する際、黒から白、或いは白から黒へと色が変わるQRコードのモジュールの位置に関して、RS符号の検査点としてドットを付与しているので、QRコードのドットが目立ち難い画像を得ることができる。
【図面の簡単な説明】
【0013】
【
図1】QRコード(バージョン2)の内容を示す模式図である。
【
図2】従来のQRコードの作成方法を示すフローチャートである。
【
図3】従来の作成方法で作成されたQRコードの一例を示す図である。
【発明を実施するための形態】
【0014】
画像にQRコードを重畳させる際に、モジュールと重なった画像部分は都合よく、その対応するモジュールを想定されたQRコードのモジュールとして認識されず、つまり2値化した際に、黒若しくは白と判定される。しかしながら、その黒か白かの自由度は大きくなく(自由に選べるわけではなく、格納すべき情報とそれのRS符号化に拘束される)、必然的に元の画像に対応したモジュール(の位置)の2値化した画像が、QRコードでのモジュールの2値化と異なる場合が生じる。この場合は雑音になってしまうので、かかる雑音を如何に少なくするかという課題解決が本発明である。1つ目は非組織符号化であり、それだけではなく、元画像のどの位置に、QRコードのどのモジュールを対応させるかという自由度と非組織符号化によって、RS符号のどのシンボルを情報点にするか、即ちモジュールとするかの自由度があり、この自由度を利用して探索を行い、出来るだけ雑音の少ないPAQR(Post Aesthetic QR)コードを作成するようになっている。
【0015】
本発明では、検査点が目立ち難い場所を、画像をピクセル毎に2値化した際の白と黒の境界の部分とし、境界に置かれるビットが含まれるシンボルを検査点の候補とし、その中からドットの付与が少なくなる検査点の組合せを複数種類(例えば10種類)記録し、それぞれQRコードを作成して、最終的には主観的に見て最もQRコードが目立っていないものを選ぶようにする。ここで、シンボルとは、RS符号において取り扱うものであり、QRコードの場合、8ビットの塊のことである。RS符号の1シンボルが、QRコードの隣接した8モジュールとなる。
【0016】
先ず非組織符号化について説明する。
【0017】
QRコードに用いられるRS符号を非組織符号化することで、埋め草コード語の位置の自由度を増やすことができる。非組織符号化は符号化方法の1つであり、通常のRS符号は符号長を”n”、情報点の数を”k”とすると、前半のk個のシンボルが情報点、後半の(n-k)個のシンボルが検査点となる。この符号化方法は組織符号化と呼ばれる。一方で、非組織符号化では、情報点を任意のk箇所に配置し、残った(n-k)箇所に検査点を配置する。この非組織符号化を用いることで、符号生成にnCkの自由度を与えることができる。
【0018】
非組織符号化したRS符号を作成するためには、符号語Cとパリティ検査行列Hの関係式HCt=0を用いる。QRコードのRS符号にはGF(28)の有限体を用いた短縮RS符号が使用されている。符号長を”n”、情報点の数を”k”とした時、パリティ検査行列Hの前半(255-n)行が短縮されており、後半のn行を利用している。原始多項式x8+x4+x3+x2+1=0の根をαとしたとき、パリティ検査行列Hは下記数1となる。
【0019】
【数1】
符号長n、情報点の数kのRS符号で情報点をs
1,s
2,・・・、s
k、検査点をp
1,p
2,・・・、p
n-kとしたとき、検査点の値を導出する方法は、以下の項目(a)~(c)の通りである。
【0020】
(a)シンボルnから情報点とするシンボルkを任意に選択する。この位置をl1、l2、・・・、lkとする。
【0021】
(b)パリティ検査行列Hの内、選択したシンボル(n-k)以外のシンボル(検査点とするシンボル)に対応する列を、行・列変形によって対角化する。この行列をH’とする。
【0022】
(c)αn+αn=0の関係を利用して、下記数2で検査点の値を導出する。ここで、ai,jはパリティ検査行列Hのi行j列の要素である。
【0023】
【数2】
非組織符号化によって生成されたRS符号は、任意の符号語を組織符号化によって生成したRS符号と一致する。そのため、組織符号化によって生成されたRS符号と同じように誤り訂正を行うことができる。QRコードコードでは終端パターンまでが実際に読み取る情報であるため、終端パターンまでのシンボルをそのままにして非組織符号化を行うことで、埋め草コードと検査点の位置を任意の場所に置きながら、既存のQRコードリーダで読み取り可能である。
【0024】
次に、従来のQRコードの作成方法について、
図2のフローチャートを参照して説明する。
【0025】
先ず、QRコードのモジュールを小さくドット化して目立たないようにする(ステップS1)。一般的なQRコードリーダは、オープンソースのライブラリであるZXingを利用している。このリーダでは、モジュールの中心部分のみを観察して白黒の判定を行っているため、ドットをモジュールの中心に置くことで、QRコードを読み取ることができる。次に画像を2値化し(ステップS2)、QRコードのドットの色と一致している場所はそのままでも読み取れるため、ドットを置かない。ここで、埋め草コード語は画像を2値化した結果に対応させ、画像のままでも読み取れるようにする。検査点には任意のビットを入れることができないため、画像にドットが残りやすい。そのため、検査点を、非組織符号化でドットが残った場合でも目立たないような場所に、手動で配置する(ステップS3)。検査点の場所を変えながらQRコードを複数作成し(ステップS4)、最終的にその中で最もドットが目立たないQRコードを主観で選ぶ(ステップS5)。
【0026】
かかる従来の作成方法では、検査点の位置を手動で決めているため、様々な検査点の組み合わせでQRコードを作成することができないため、作成したQRコードが最もドットが目立たないQRコードとは限らない。また、画像を変える度に、検査点の場所を手動で探す必要がある。
図3は、その一例を示すQRコードである。
【0027】
そこで、本発明では、ドットの付与が少なく、目立ち難いように検査点を自動的に選んで候補となるQRコードを出力する方法を提案する。即ち、本発明は、検査点の位置を自動的に決めることだけではなく、ドットをできるだけ打たない方法を提案し、どうしてもドットを打つ必要がある場合は、目立たない場所、つまり画像のエッジにドットを打つための方法である。
【0028】
図4は本発明の構成例を示しており、全体の制御を行うCPU(MPUやMCUを含む)1には、プログラムや定数などを格納するROM2及び演算データなどを一時記憶するRAM3が接続されている。また、CPU1には、画像を作成する画像作成部10と、画像のピクセルのRGBを計測するピクセル計測部11と、計測されたRGBデータから輝度値yを算出する輝度値算出部12と、検査点を設定する検査点設定部13と、QRコードを作成して付与するQRコード作成部20と、ドットの数、量を計測ドット計測部21と、判定部22と、配置部23とが相互に接続されている。
【0029】
このような構成において、その動作例を
図5に示すフローチャートを参照して説明する。
【0030】
本発明では、画像に対してQRコードを配置し、最もドットが目立たないQRコードと一体化されるようにする。先ず検査点を前述のようにドットが残った場合でも目立たないような場所に自動的に配置する。QRコードと認識できるように、QRコードのモジュールを構成する。即ち、ドットを打つ。QRコードと画像の位置関係である配置の場所を自動的に探索するが、QRコードのバージョン、誤り訂正レベル、大きさ、配置する場所は探索前に決めているものとする。
【0031】
先ず画像作成部10で画像を作成し(ステップS10)、QRコードリーダは画像を黒と白で2値化して処理するため、画像も白と黒で2値化したもので考える必要がある。2値化は、QRコードを配置する場所を対象にピクセル毎に行う。即ち、ピクセル計測部11はピクセル毎にRGB成分を取得し(ステップS20)、そのRGB値から輝度値算出部12が輝度値yを計算する(ステップS21)。QRコードは2値化することによって、そのモジュールを判定するので、ここでのピクセルは、QRコードに重ねられた画像のピクセルを意味している。輝度値yを求めるピクセルのRGB成分を(r、g、b)としたとき、輝度値yは下記数3で求める。
(数3)
y=0.299r+0.587g+0.114b
上記数3で輝度値yを求め、輝度値yの閾値ytを”110”に設定し、判定部22は閾値yt”110”以下のピクセルを「1」(黒)、閾値yt”110”より大きいピクセルを「0」(白)で処理する(ステップS22)。
【0032】
明暗の境界に置かれるビットの判定画像の明暗の境界付近に検査点のビットを置くことで、ドットが目立ち難くなると考えられる。そこで、検査点設定部13により検査点を白黒の境界に設定し(ステップS23)、その後、QRコード作成部20でQRコードを作成し(ステップS24)、配置部23により検査点にQRコードを配置する(ステップS25)。そして、画像の明暗の境界付近に置かれるビットを調べる。対象とするビットはQRコードの埋め草コードと検査点とし、ドット計測部21は対象とするモジュールの中心の範囲で判定を行う(ステップS26)。この範囲は、1辺の大きさがモジュールの1辺の大きさの約半分とし、画像に付与するドットの大きさも考慮して決める。一例としてQRコードのモジュールの大きさが20×20ピクセル四方、ドットの大きさを4×4ピクセル四方の場合、判定部22は、モジュールの中心の8×8ピクセル四方の範囲でドットの判定を行う。境界付近に置かれるビットは画像を2値化したとき、この範囲内に白と黒のピクセルが混じっているビットとする。
【0033】
ビットといった場合は、RS符号に対応するシンボルを構成する「0」若しくは「1」のことであり、ドットとは、QRコードのモジュールに配置する黒若しくは白の点のことである。これは、2値化した際の色であって、カラー画像の場合は、2値化した際の色を考慮しながら、背景に対して目立たない色で点を構成する。
【0034】
RS符号は、シンボル単位(8ビットずつ)で符号化及び復号を行う。そのため、シンボル中に境界に含まれるビットが多いシンボルほど検査点としたときに、ドットが目立ち難い。そこで、埋め草コード語と検査点に当たるシンボルの内、境界に含まれるビットが1ビットでも含まれるシンボルを、検査点の候補とする。ただし、1ビットのみ境界が含まれるシンボルの内、1番目及び8番目のビットのみが境界であるものは例外とする。これは、QRコード上でこれらのビットの逆側にドットが配置される場合、境界から離れた所にドットが付与されるため、目立ち易いからである。検査点の候補の数が必要な検査点の数に足りない場合は、例外とした1ビットのみ境界が含まれるシンボルも検査点の候補に加える。
【0035】
検査点の候補から様々な組み合わせで検査点を選び(ステップS27)、非組織符号化を行う。このとき、埋め草コード語に当たる部分は、ドットの範囲に対して対応する画像の輝度値yの平均値をとり、閾値yt”110”以下の場合は「1」、閾値yt”110”より大きい場合は「0」とする。その後、埋め草コード語と検査点の場所で、ドットを何個付与するかを計数する。ドットを付与するのは、以下のパターンA及びBである。
【0036】
パターンA:
ドットが置かれる範囲に白と黒のピクセルが混じっている場合、ビットの値に関わらずドットを付与する。これは、ドットの範囲に白と黒が混じっている場合、そのまま読み取ると、どちらにも読み取れてしまうため、読み誤りが起きないようにドットを付与する。
【0037】
パターンB:
ドットが置かれる範囲が全て黒若しくは白の場合、対応するビットと2値化した結果が対応していない場合、ドットを付与する。
このように、検査点の選び方を変えながら付与されるドットを計数し、ドットの数が少ないものから10個の検査点の組合せをRAM3に記録する。これは、一般的にドットの付与が少ないほどドットが目立たないからである。その後、それぞれの検査点の組合せでQRコードを作成して配置し、最終的には主観で最もドットが目立たないと思われるものを選ぶ。
【0038】
既存手法で作成されたQRコードと同じ画像、場所にQRコードを配置し、同程度のQRコードを作成できるかを確認する。QRコードのバージョンは”4”、誤り訂正レベルはL、モジュールは20ピクセル四方、ドットは4ピクセル四方とした。
【0039】
図6(A)~(C)及び
図7はいずれも本発明の画像例であり、いずれもドットが目立ち難くなっている。
【0040】
上述ではQRコード(登録商標)を例に挙げて説明しているが、他の2次元コードにも同様に適用できる。
【符号の説明】
【0041】
1 CPU
2 ROM
3 RAM
10 画像作成部
11 ピクセル計測部
12 輝度値算出部
13 検査点設定部
20 QRコード作成部
21 ドット計測部
22 判定部
23 配置部