イト
自由研究、QRコードにしようかな。でも、なんで白黒のマスで読めるのか分かんない
ユイ
私、QRコードを作ることはできるけど、仕組みを聞かれると止まっちゃいます
お店の支払い、チケット、お菓子の袋。QRコードは毎日目にするのに、「なぜ読めるのか」「なぜ少し汚れても読めるのか」を説明できる人は多くありません。ここでは、QRコードの仕組みを子どもにも説明できる言葉で確認し、自分で作って一部を隠して読む自由研究の手順まで整理します。
QRコードは、白黒のマスの組み合わせで、文字やURLなどのデータを表したものです。3つの目印で位置や向きを見つけ、誤り訂正のためのデータを使って、一部の欠けや汚れから元の情報を復元します。ただし、どこをどれだけ隠しても読めるわけではありません。
QRコードは、1994年にデンソーの開発部門(現在のデンソーウェーブ)が発表しました。標準化されたQRコードの特許権を行使しない方針が、普及を支えた理由の一つです。作成サービス自体の料金や条件は、サービスごとに異なります。
QRコードの仕組みを一言で|白黒のマスに0と1を並べた読める絵
コンピューターは、文字も数字も、最後は0と1の並びで扱います。「A」なら決まった番号、「あ」なら別の番号、という具合です。文字がどう番号になるかは、文字コードとはで説明しています。
QRコードは、データを符号化し、白黒のマスに配置します。読み取りやすくする「マスク」という処理も入るため、見えている黒を全部1、白を全部0として順に読めば文章になるわけではありません。マスは「セル」と呼ばれ、ここで扱う通常のQRコードは21×21から177×177セルまであります。
たとえるなら、QRコードは、白と黒の旗だけで文を送る手旗信号を、1枚の紙に印刷したものです。手旗信号は順番に見なければいけませんが、QRコードは全部を一度に写真に撮り、カメラの向こうのプログラムが決まった順番に読み取ります。実際のQRコードでは、どの順番でセルを読むかも規格で決まっていて、角から蛇のように折り返しながら読みます。
角の3つの目印はどこを見ている?向きが分からなくても読める理由
QRコードの角には、二重の四角が3つあります。「切り出しシンボル」と呼ばれる目印で、カメラが最初に探す場所です。3つの位置が分かれば、コードがどこにあり、どれくらいの大きさで、どちらが上かが決まります。4つ目の角に目印がないのは、わざとです。目印が3つだけなら、どの向きで写しても「目印のない角」が分かるからです。
この目印は、黒・白・黒・白・黒の幅が「1:1:3:1:1」になるように作られています。開発者は、チラシや雑誌や段ボールなど、身のまわりの印刷物を白黒にして面積の比を調べ、いちばん使われていない比率を探しました。ふつうの印刷物に出てこない模様なら、カメラが背景と間違えないからです。
目印のほかにも、セルの位置を数えるための白黒が交互に並んだ線(タイミングパターン)や、大きなコードのゆがみを直す小さな四角(アライメントパターン)が入っています。周りの白い余白も規格の一部で、4セル分の空きが要ります。
QRコードが欠けても読める理由|誤り訂正という予備の計算
ここが、QRコードのいちばん賢いところです。QRコードには、本文のデータのほかに、「予備の計算結果」が一緒に入っています。この予備があるので、一部のセルが汚れたり欠けたりしても、残った部分から元のデータを計算で戻せる作りです。これを「誤り訂正」と呼びます。
マコト
連絡網の紙が少し破れても、クラスの名簿と照らし合わせれば誰が抜けたか分かるだろう。あれに近い
ピコ
画面のむこう側では、足し算の答えを一緒に書いておく感じ。1つ消えても、答えから逆算できる
たとえるなら、「3+5=8」と書いた紙の「5」がにじんで読めなくなっても、「3」と「8」が残っていれば「5」だったと分かります。QRコードの誤り訂正は、この考えをもっと強くした計算(リード・ソロモン符号)で、音楽CDの傷に対しても使われてきた方法です。
どれくらい欠けても戻せるかは、作るときに4段階から選べます。
| レベル | 復元能力の目安(全コードワードに対する割合) | 選ぶときの考え方 |
|---|---|---|
| L | 約7% | 汚れにくく、入れたい文字が多いとき |
| M | 約15% | ふだんの用途。いちばんよく使われる |
| Q | 約25% | 汚れやすい場所 |
| H | 約30% | 汚れや傷への備えを厚くしたいとき |
コードワードはデータをまとめた単位で、1つが8ビットです。表の約30%は、画像の面積の30%を隠しても読めるという意味ではありません。 隠す位置や広がり方、目印の損傷、読み取り機器などで結果が変わります。予備のデータを増やすと、同じ内容でもセル数や必要な印刷サイズが増える場合があります。
自由研究で確認する手順|作る→隠す→読む→記録する
仕組みが分かったら、手元の道具で確かめます。必要なのは、誤り訂正レベルを選べる作成ツール、プリンター、隠すための小さな紙、QRコードを読めるスマホです。実験には名前・住所・連絡先や支払い情報を入れず、「HELLO」などの短い文を使います。
作成ツールの一例はQRコード作成くんです。テキストを入力し、設定メニューの「誤り訂正レベル」をL、次にHへ変えて、それぞれ保存します。サイズ・色・余白など、ほかの設定は揃えてください。アプリの追加が必要な場合は、保護者と確認してから進めます。
- 作る。同じ短い文で、誤り訂正レベルをLとHにしたQRコードを1枚ずつ作ります。セル数が変わる場合があるため、印刷サイズとセル数も記録します。周りの白い余白は残します。
- 読めることを確かめる。まず何もしない状態で、両方をスマホで読み、同じ文が出ることを見ます。標準カメラが文字だけのQRコードを表示しない場合もあるため、先にこの確認を済ませます。読めないまま隠す実験へ進まないでください。
- 隠す。小さな紙を重ね、目印や周りの白い余白を避けた同じ位置から、少しずつ範囲を広げます。黒ペンで塗りつぶすと元に戻せないので、外せる紙で比べると再確認できます。
- 読んで記録する。同じスマホ・照明・距離で読み、結果を表に書きます。隠した場所の写真やマス数を残します。隠した面積から、表の誤り訂正率を測定できたとは判断しません。
- 目印を隠して比べる。最後に目印の一つを隠し、データ部分を隠した場合と比べます。結果は先に決めず、実際に読めたかどうかを記録します。
次の表を写して使えます。LとHでセル数が違う場合は、その違いも考察に残します。
| 試した条件 | Lの結果 | Hの結果 | 写真・気づいたこと |
|---|---|---|---|
| 何も隠さない | 自分で記録 | 自分で記録 | 印刷サイズ・セル数も記録 |
| 目印以外の同じ位置を少し隠す | 自分で記録 | 自分で記録 | 隠した場所と大きさ |
| 隠す範囲を少し広げる | 自分で記録 | 自分で記録 | 前の試行との差 |
| 目印の一つを隠す | 自分で記録 | 自分で記録 | データ部分との違い |
読めなかった場合も、重ねた紙を外すと読めるかを確かめれば、比較の材料になります。予想と違った結果もそのまま残してください。プリンターがなければ、別の端末の画面にコードを表示して、スマホで読む方法もあります。画面の反射や明るさで結果が変わるため、紙で試した結果とは分けて記録します。自由研究のまとめ方や、ほかのテーマはインターネットの自由研究テーマ5つにあります。
ミニクイズを一つ。「Hなら、どこでも面積の30%まで隠してよい」は正しい? 答えは「いいえ」です。誤り訂正の割合は面積の保証ではなく、目印や余白にはデータの復元とは別の役割があるからです。
QRコードはなぜ日本で生まれた?1994年に2人で作り特許を開いた話
QRコードができる前、現場では線の太さなどで情報を表すバーコードが使われていました。当時は英数字20字ほどという容量や、漢字・かなを扱いたいという要望が課題でした。現在のすべてのバーコードの上限が20字という意味ではありません。
開発したのは、自動車部品の会社デンソー(現在のデンソーウェーブ)の原昌宏さんを中心とした2人のチームです。約1年半かけて、1994年に発表しました。角の目印の比率を決めるために、印刷物を集めて面積を調べた話は、この開発の中で生まれています。
そして会社は、規格として決められたQRコードについては、持っている特許の権利を行使しないと決めました。誰でも無料で作れて読める仕組みになったので、1997年に業界規格、1999年に日本の工業規格(JIS)、2000年に国際規格(ISO)になり、世界中の支払いやチケットで使われるようになりました。
QRコードとバーコードの違いと、1つに入る文字数
ここで比べるバーコードは、横方向の線の太さなどで情報を表す1次元のコードです。QRコードは縦横の配置を使い、数字なら最大7,089字、英数字なら最大4,296字、漢字なら最大1,817字を記録できます。いずれも最大サイズ・誤り訂正レベルなどの条件がある値で、どのQRコードにもその文字数が入るわけではありません。
お店のQRコードに入っているのは、長い文章ではなく、たいていは短いURLや支払いの番号です。だから小さなコードで足り、スマホのカメラがすぐに読めます。URLがどんな部品でできているかは、URLとは?で分けて読めます。
偽のQRコードに注意|掲示物と読み取った先を確かめる
QRコードは、誰でも無料で作れます。それは、悪い人も作れるということです。警視庁の注意点には、3つの手口が挙げられています。偽のメールに添付されたQRコードから偽の支払い画面へ誘導する、返金を装って送金用のQRコードを送る、お店のQRコードの上に偽のシールを貼る、の3つです。
読む前と読んだ後にチェックすることは3つです。
- 掲示物に別のシールが重なっていないかを見る。不自然な重なりや浮きがあれば店員などへ確認します。段差がないことだけで本物とは判断できません。
- 読んだあとに出た画面の名前と内容を見る。支払いのつもりが、知らないサイトやアプリの画面なら閉じます。
- 返金のはずなのに金額の入力を求められたら止まる。受け取る操作ではなく、送金する操作へ誘導されている可能性があります。メールなどの案内だけで進めず、公式アプリや窓口から確認します。
仕組みを知っていると、「QRコード自体は、中にURLや番号が書いてある紙にすぎない」と分かります。紙を信じるのではなく、読んだ先の画面を確かめる。偽サイトの見分け方は、フィッシングとは?にまとめてあります。
QRコードの仕組みでよくある質問
Q1. スマホだけでQRコードは作れる?
A. 作成サイトやアプリを使えば作れます。この記事の実験では、誤り訂正レベルを選べるものを使います。作った画面を同じスマホのカメラで写すことはできないため、印刷するか、別の端末に表示して読み取る準備も必要です。
Q2. 色のついたQRコードや、真ん中にロゴがあるコードはなぜ読める?
A. 明暗の差が十分にあると読み取れる場合があります。ロゴで隠れた部分は誤り訂正で補えることがありますが、色や配置、印刷状態によっては読めません。目印や余白を残し、実際の利用条件で確認する必要があります。
Q3. 小さく印刷すると読めなくなるのはなぜ?
A. セルが小さくなりすぎて、カメラが隣のセルと区別できなくなるからです。文字を減らしてセルの数を少なくするか、印刷を大きくします。周りの白い余白も削らないようにします。
作って隠して読む、QRコードから進む次の一歩
イトの自由研究で比べるのは、「どれだけ隠したか」だけでなく「どこを隠したか」です。目印とデータ部分では役割が違うと分かれば、読めた結果も読めなかった結果も、理由を考える材料になります。
今日できる一歩は、同じ短い文でLとHのQRコードを1枚ずつ作り、まず両方とも読めることを確かめることです。そのあとで隠す位置を変えれば、目印と誤り訂正の働きの違いを探れます。0と1の意味から知りたいなら、ビットとは?で、情報を表す最小の単位から見ていけます。
この記事について
LAB WHITEBOARD
QRコードの仕組みを一文で説明してみよう
「QRコードが白黒のマスに0と1を並べた絵で、角の目印で向きを見つけ、予備の計算で欠けを戻していることを理解し、自分で作って一部を隠して読む実験で確かめられる。偽のQRコードを読む前の確認を3つ言える。」を、いまの自分の言葉で一文にしてみてください。途中の説明でも大丈夫です。




