2018年8月19日(日) 13:01 JST

二次元バーコードを建築で使う

DataMatrixの活用に関するページ

2008/08/09 更新
2008/08/01 初稿

このページはDataMatrixという二次元バーコードを建築分野で使おうとした試行錯誤の記録です。

IEでの表示の乱れを修正しました。IEかFireFoxでご覧ください。他のブラウザでの表示確認・対応時期については未定です。

1. DataMatrixとは

海外から小包などが届くと、そこにQRコードに似た二次元バーコードがプリントされていることがあります。これらが欧米で広く使われているDataMatrixというものです。ISO/IEC16022、つまり、国際標準なバーコードです。このあたりはQRコードも同じで、QRコードはISO/IEC18004です。二次元バーコードを使ったアプリケーションは携帯電話でのQRコードでおなじみでしょう。メールアドレスやサポートホームページなどの情報をコードから読み取って利用します。

二次元バーコードを建築で使いたいなと思いいろいろと調べましたが、私はJavaはやらないのでC/C++で使えるライブラリでそれもフリーウエアはないものかと探しました。残念ながらQRコードにはよいものが見あたりませんでした。もし、この条件に当てはまるライブラリをご存じの方は一報ください。

QRコードにこだわらずに探すと、二次元バーコードの世界も深淵ですね、いろいろとあります。その中でもDataMatrixは海外から届く小包でもおなじみなので、まずはこれを調べてみました。幸いなことにDataMatrix用のC/C++のライブラリは多数あり、有償・無償を含めて性能的にも悪くありません。そんなわけで、DataMatrixを使って二次元バーコードの建築への応用を検討することにしました。

しかし、率直にいって、QRコードよりDataMatrixの方が美的に優れていると思います。調査結果は個人の趣味とも合致したわけです。建築ですからね、美しい方がいいにきまっています。

2. libdmtx

採用したライブラリはlibdmtxです。ホームページは次です。http://www.libdmtx.org/。Version0.5.0まではUnix以外ではMakeが難しかったのですが、(私は試していませんが)Version 0.5.1からは比較的楽になったようです。Version 0.5.1が出なければMS VC++でのビルド方法を解説するつもりでしたがもはや必要ないので省略します。ちなみに、以降のサンプルなどはVersion 0.5.0を使用しています。

3. 記録容量

二次元バーコードは結構大きい割に記憶容量が少ない、そう思っていませんか?これは感覚的に正しいですが、実際にはそうでもありません。数10バイトは当然として、工夫次第で数100バイトのデータも含ませられます。500バイト程度の日本語文をエンコードした例が以下です。

うるさいですねえ。こんな巨大なバーコード、どこにも貼れませんよね。しかしよく考えてください。これを小さくプリントしておいて読み出すときに拡大してきちんと認識できれば問題ないのではありませんか。きちんとデコードできれば運用上問題ないわけですから、どの程度まで小さくプリントしても復元(デコード)できるのか、それを確かめましょう。ちなみに上の巨大バーコード、縦横1/4(25%)にすればこんなにコンパクトです。

では、「圧縮耐性」を確かめてみましょう。A4用紙に同じマーカーを段階的に小さくしたものを配置して、それらがデコードできるかどうかを確かめました。

結果です。①から④までは通常のWEBカメラのスチル画像(解像度640×480)で問題なくデコードできました。つまり、相似比で15/45 (= 1/3)、面積比で1/9まで圧縮できることになります。⑤および⑥については、普通のWEBカメラでは寄り切れないため、マクロ撮影が可能なデバイスが必要になります。ここでは①~④の場合と取得する画像の質を揃えるためにマクロ撮影可能なUSBカメラを利用しました。

少々特殊な撮影風景に見えますが、解像度640×480の静止画像を取得しているところは①~④と同様です。結局⑤⑥もこのようにすればデコードできました。相似比で5/45(=1/9)、面積比でなんと1/81まで圧縮することに成功したわけです。これなら数100バイトのデータを二次元バーコードに持たせる応用にも現実味が出てきます。

なお、マクロ機能付きのデジカメの場合は解像度が高すぎて単純な比較にならないため採用しなかっただけで、USBカメラよりも鮮明で高解像度の画像が得られます。デジカメを前提にするなら⑥より圧縮してもデコードできるでしょう。 以上はいわば「光学的」データ圧縮です。プロセスルールの微細化により半導体メモリの容量が増大するのに似ています。

圧縮といえば、ファイル圧縮に使っている各種のアルゴリズムもあります。これらのアルゴリズムを用いて、エンコード前に圧縮アルゴリズムで小さくしてからバーコード化することでも可能です。参考までに下にzlibを用いて圧縮した例を示しますが、データによっては圧縮の効果がほとんどないものもありますから、どのような条件でも有効な「光学的」データ圧縮に比べれば使える場面は限定されます。こちらは適材適所で使えばよいでしょう。

4. エンコーダとデコーダ

以上のような実験を行うために、libdmtxを用いてエンコーダとデコーダを作らなければいけませんが、これは以下のような簡単なものです。

5. 応用例

工事写真管理

ここは諸般の事情により準備中です。興味のある方は日本建築学会「第24回建築生産シンポジウム梗概集pp.149--154」をご覧ください。

建材の情物一致

RFID関連の研究で、RFIDを建材に貼付して物と情報を紐付けできるとする論文が多数発表されていますが、理屈はともかく、運用としては間違っていると私は思います。「情物一致」などと言われることがありますが、次にあげる項目を主たる理由として、RFIDは「情物一致」には不適です。

  1. ネットワークから遮断されている環境では取得したIDに関係づけられた情報を得にくい。特に建築の現場ではありがちな状況です。
  2. 情報の長期間の保守は難しくIDに関連づけられた情報そのものが失われる可能性が高い。建築の長いライフサイクルに付随するデータベースの「高」管理コストや、企業・組織の倒産・解散による情報の散逸への対処はどうするの?
  3. そもそもRFIDは30年以上機能するの?

技術の発達はとどまることがありませんし、RFIDもより高機能・高耐久・低価格となっていくのでしょう。しかしながら、私がRFIDに触れたのは10年以上も前のことですが、感心する応用は未だに出現しません。これは建築分野だけのことなのかもしれませんがRFIDのデモはほとんどの場合バーコードで置き換えられかつバーコードの方が圧倒的に廉価で済むものばかりです。建築分野でのRFIDの応用で思わず感嘆してしまうような事例をご存じの方は私までご一報ください。このページで謹んで紹介させていただきます。

かなり脱線しました、本題に戻ります。DataMatrixはバーコードですので、30年たっても100年たってもコードそのものが著しく毀損されない限りデコードは可能です。かつ、先述の通り、数100バイトものデータを「現地に」残せます。建材の「情物一致」には2次元バーコードが向いています。

上はあわせガラスにDataMatrixを封入した模型を撮影したものです。かなりDataMatrixに寄って撮影していますので写真中でのDataMatrixの存在感は大きいですが、実際には落ち着いていて目立たずこれで建材情報をライフサイクルに渡って保持してくれるなら納得の出来映えです。建材の情報を二次元バーコードで持たせる利点をまとめておきます。

  1. デザインを工夫すればコードは美的に邪魔にならない。
  2. 建材のライフサイクルにおいていつもそこにあるありがたさ。
  3. ん10年後は意外な物質が問題を引き起こしているかもしれません。こうやって組成を持たせておけば安心。リメンバーアスベスト、ですね。

CADデータなどの配布

最初にお断りです。データ流通を論じる場面でCADデータと私たちが呼ぶ場合、たいていの場合はDXF(あるいはDWG)のことを指します。DataMatrixを念頭にデータ容量を数100バイトに収めなければならないとするならば、DXFは冗長すぎて実用にはなりません。より軽量なデータフォーマットが必要でしょう。もし、そういうファイルフォーマットがあれば、二次元バーコードにCADデータを持たせて運用することも可能になるでしょう。たとえば建材のカタログの隅にDataMatrixを印刷しておけば、建材の部品データをカタログと一緒に配布できます。CD(DVD)-ROMの添付もデータダウンロード用サーバの運用もいずれも必要ありません。

左はSVGのコードをDataMatrixに含ませた例。右はVRMLのコードをDataMarixに含ませた例。右例の場合、写真下半分のDataMatrixにVRMLコードが入っており、中央部の6x6グリッドのマーカはAR/MR用です。このマーカから得られる(マーカのある)紙面のローカル座標系をもちいてVRMLの3Dオブジェクトを動画中に配置しています。

以下、編集中

6. 応用アプリケーション

現在DataMatrixのデコード機能とExif領域の読み出し機能を備えた応用プログラムを作成しています。画像データベースのフロントエンドです。

最終更新日:: 2014年10月12日(日) 18:28 JST|表示回数: 10,189 印刷用ページ