じぶん更新日記・隠居の日々
1997年5月6日開設
Copyright(C)長谷川芳典



05月のインデックスへ戻る
最新版へ戻る

 ウォーキングコース沿いでカルガモの夫婦が羽根を休めているのを見かけた。このご時世のせいか、ちゃんと2メートル以上の間隔を空けていた。
 なお、こちらの記事にもあるように、ソーシャルディスタンスを新型コロナウイルス感染防止策の一丁目一番地にすることについては私も疑問に思っている。飛沫防止が目的ならマスク着用で十分。いっぽう空気感染の恐れがあるというなら、そもそも同じ室内であれば、距離を隔てて座ろうが、隣り合って座ろうが、同じ空気を吸っているので感染リスクは変わらないはずだ。【但し、食堂内ではマスクをつけたままでは食事ができないので、利用者が距離を空けて座る、向かい合って座るなどの対策をとることには一定の効果があるかもしれない。】

2020年5月31日(日)



【小さな話題】QRコードはなぜスゴいか?(その2)

 昨日に続いて、

NHK サイエンスZERO 「驚異の自動認識技術!QRコード開発秘話」

の感想と考察。

 昨日の日記で、QRコードは、単なる白黒(0と1)の二次元配列というだけでなく、「ここにQRコードがある(文字や図形ではない)」ことを速やかに読み取るための「切り出しシンボル」や、ズレや歪みを補正する「アライメントパターン」が配置されているということにふれた。番組では省略されていたが、こちらの記事などによれば、QRコードにはこのほかにも、座標を検出する「タイミングパターン」や、誤り訂正レベル【後述】のレベルを示す「フォーマット情報」が配置されているという。さらには、白黒のバランスを適度に保つため、8種類の法則に基づき、白黒を反転させる仕組が備わっているという。

 さて、昨日箇条書きにした私の素朴な疑問のうち、2.の

●印刷されたコードが不鮮明な場合、誤って読み取られることは無いのか。

については、こちらの記事ではレベルLからHまで4段階の「誤り訂正レベル」が紹介されていた。番組ではレベルH(30%)で実演されていた。具体的には「リードソロモン符号」が採用されているらしい。なお、地下鉄・都営浅草線のホームドア開閉では、50%の復元率の特殊なQRコードが使われているという。理由は、安全第一であることに加えて、降雨時や太陽の光、影の当たり方、読み取るカメラが斜め上に設置されていて歪みが激しい、などによるらしい。
 さて、ここまでの説明を聞いて新たに浮かんだ重要な疑問がある。それは、QRコードになぜあんなにたくさんの情報を入れることができるのかという点である。番組によれば、1つのコードに含めることのできる情報は、最大で、
  • 数字なら 7089文字
  • 英数字なら 4269文字
  • 記号漢字なら 1817文字
であるというが、どうしてこんなにたくさんの情報を含めることができるのだろうか?

 その前にQRコードのセルの数について復習しておくが、こちらの記事によると、QRコードには「モデル1」「モデル2」「マイクロQR」の3種類があり、セルの数はバージョンで表されるという。すなわち、バージョン1は21 × 21セル(マイクロQRは11 × 11セル)で構成され、ひとつバージョンが上がると、4セル(マイクロQRは2セル)ずつ大きくなる。番組で紹介された最大データ容量は、モデル2のバージョン40(177×177セル)のことを言っているのであって、番組で例示されていたような小サイズのQRコードがそんなにたくさんの情報量を持っているわけではないようだ【番組の冒頭に出てきたQRコードコードは39×39セルであるように見えた(←37×37の次は41×41なので39×39は数え間違いか?)、番組途中では、セル数がかなり多いバージョン(←目視で数えるのは不可能)や小型の25×25セルバージョンも登場していた】。

 でもって、最大バージョンの177×177の場合、白黒の数は31329となる。もし1つの漢字を2バイトの固定長で表すとすると、1958文字程度の情報を収納できるように思われる。実際の最大容量1817文字との差は、おそらく、これまで取り上げてきた「切り出しシンボル」や、「アライメントパターン」、さらに「誤り訂正」機能に必要な冗長部分により、文字収納に必要なセル数が減らされているためかと思う。

 なおネットで検索したところこちらにQRコードのデータ構造が詳しく解説されていた。またその際に、Shift_JISのQRコードとUTF-8のQRコードではバイナリモードへの保管方法が異なるため、スマホアプリによって文字化けが発生することがあるらしい。




 ここからは余談だが、私自身は1980年代からパソコンを使用していたこともあり、文字コードや文字化けにはずいぶんと悩まされてきた。このWeb日記は、文字化けを防ぐためにヘッダのところに、

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS">

というメタタグを入れてあるが、いま現在、これがどの程度必要なのか、それとも今では全く不要のおまじないになっているのかは分からない。
 このほか、最近よく起こる文字化けとしては、LINEの書き込み内容をコピーしてそのままエディタにペーストすると確実に文字化けが起こる(一太郎のペーストすればOK)。また定年退職前に使っていたゼミの非公開掲示板は、ブラウザの「エンコード」設定機能によって文字化けになることがあった。もっとも最近では全く、いじったことがない。

 次回に続く。

 新型コロナウイルス感染予防のため岡大では、学生の登校禁止が続いているが、オンライン授業受講等のためにWi-Fiを使用する教室として、一般教育棟A41,B33,B41が開放されているという。じっさい、写真のように、確かに照明のついている講義室があった。もっとも、中庭の大量の自転車はWi-Fi利用者ではなく長期間放置された自転車の一時保管と思われる。
 なおこちらの情報(5/29更新)によれば、6月1日以降の学生の登校条件は以下のようになっている。
  • 岡山県内から:体調に異常がないこと。
  • 兵庫県,大阪府,京都府から:体調に異常がないこと。
    ただし,6月11日までは,試験や至急の証明書発行のためなど必要最低限の登校にとどめてください。
  • 北海道,東京都,埼玉県,千葉県,神奈川県から:6月18日までは登校を控えてください。
  • その他の県から:体調に異常がないこと

 このまま感染が終息することを祈るが、ここ数日、北九州市で第2波の徴候があるなどまだまだ警戒が必要なようである。

2020年5月30日(土)



【小さな話題】QRコードはなぜスゴいか?(その1)

 少し前の放送になるが、5月17日に放送された、

NHK サイエンスZERO 「驚異の自動認識技術!QRコード開発秘話」

を録画再生で見た。

 QRコードは今や世界的に普及しており、西寧の市場、さらには、インドとの国境に近いパンゴンツォの観光用双眼鏡までQR決済が行われていることに驚いたものである。またこのWeb日記は、NHKの「おはよう日本」を視ながら執筆しているが、画面左下には、新型コロナ特設サイトのデータ放送を案内するためのQRコードが表示されている。

 このQRコードが日本で開発されたということは何となく知っていたが、今回の番組では、まさにその産みの親の原昌宏さん(デンソーウェーブ主席技師)が出演され、開発秘話やその特長について解説された。

 原さんによれば、QRコードが完成し命名されたのは1994年8月8日であるという。意外と古くからあるように思われるが、これはQRコードが開発当時は自動車部品工場や配送センター等での識別のため世間には知られていなかったが、その後、スマホの普及などと連動して、利用範囲が急速に増大したため、多くの人々の目に触れるようになったのがつい最近であったことによるものと思われる。番組でも紹介されていたが、現在では、スマホのQR決済、各種のWeb情報案内、さらに、地下鉄・都営浅草線のホームドアの開閉(ドアの数が異なるさまざまなタイプの車両が通っているため)や顔認証システムなどにも応用されているという。これだけ普及した要因としては、読み取りの速さ、正確さ、情報量の多さに加えて、特許権をオープンにしたことが大きくかかわっているようである。

 QRコードについて、私はこれまで以下のような素朴な疑問を持っていた。
  1. なぜ四角形の集合なのか? 他の形はできないのか?
  2. 印刷されたコードが不鮮明な場合、誤って読み取られることは無いのか。
  3. コピー機を使えば簡単に偽造できるのではないか?
 このうち1.については、円形でもよいのだが、解像度の高い(ドット数の多い)プリンターでないと印刷できないと説明された。
 このQRコードはバブル崩壊の1992年頃、低予算のもとで2年間を区切って開発された。格子状に並べた大量の情報は処理に時間がかかると思われたが、これを解決したのは原さんの趣味でもあった囲碁の白黒の石の配置の読み取りであったという。囲碁の石は必ずしも碁盤の格子の上に精密に並べられるものではなく多少のずれがある。しかしそれらを「大ざっぱ」に読み取ることで対局することができる。専門的なことは分からないが、こうしたファジーな読み取りを高速化に応用したらしい。

 QRコードには、四隅のうちの3隅に「回(真ん中の正方形は■)」のような形の図形が配置されており、「切り出しシンボル」と呼ばれている。この図形の外側の「□」の黒い部分、中央の「■」との間の白色部分、中央の「■」の幅の比は、1:1:3、図形全体では、「1:1:3:1:1」という比率になっているという。この比率は、タテヨコ斜めどの方向からスキャンしても変わらない。実は、この比率が読み取りのキーになっているらしい。開発段階で、いろいろな文字(日本語ばかりでなく、アルファベットやハングル、簡体字、アラビア語の文字など)を画像化して文字と余白の白黒比率を調べたところ、1:1:2とか1:4の比率が多く、奇数系の比率は意外と少ないことが分かった。このことは、文章や図形と一緒に印刷されているQRコードだけを自動的に抽出して読み取る上では重要と言えよう。

 QRコードにはもう1つ、アライメントパターンと呼ばれる小さなシンボルがある。これは、曲面などに印刷されたコードのひずみを補正するために配置されたものであるという。

 私自身はスマホを持っていないが、ガソリン割引のために前回のレシートのQRコードを読み込ませたり、飛行機搭乗の際に自分で印刷したコードを読み込ませたりすることはある。こうした時、紙がしわくちゃになったり、汚れたりしないように大事に保管してきたが、上記のような話を伺うと、あまり気を遣わなくても読み込みでエラーが出ることは無さそうである。もし、コードが読み取り不能となった場合は、むしろ、登録や使用手順のミスを疑ったほうがよさそうだ。

 次回に続く。