見出し画像

オシャンティな QR コード画像を生成する

こんにちは, レイトラのマネージャー兼研究助手の「ひかり」です.

「はじめようレイトレーシング」の web サイトを QR コードで広く知らせたい!

でも... 普通の QR コードって白黒のドットでときめかない(not spark joy)ですよね...

画像1

chrome の機能で QR コードにしたもの(ぬーん…)

しかし! Aesthetic(エステティック. 美的な), Artistic(アーティスティック) + QR でインターネットを検索するといろいろ楽しい QR コード画像がでてきます!

画像2

このあたり, じつはレンダリングの技術と関連しています. 初期の研究は Halftone QR Codes(SIGGRAPH 2013) [1] かなと思います. Halftone(ハーフトーン)の技術はモンテカルロレンダリングのサンプリングへも応用されていたりしますね.

その後機械学習, ニューラルネットの発展により Stylize Aesthetic QR Code [3] のような手法も出てきました.

オシャンティな QR コード画像を生成したい

いくつかオシャンティな QR コード画像を生成してくれる web サービスがありますが, Stylize Aesthetic QR Code [3] ほど美的なのは作ってくれないようです. 

論文を実装して自前で生成できるようにするのが理想ですが, 実装する時間もかかってしまいます...

そんななか, github にすでにいい感じでオシャンティな QR コードを生成してくれるツールがありました!

ライセンスは GPL です. ソースコードをぱぱっと見た感じでは, 論文にあるような手法を実装しているわけではないようですが, 手軽にオシャンティな QR コード画像を作ることができます.

さっそく「はじめようレイトレーシング」のカバー画像を変換してみました!

画像3

じゃーん!なかなかいい感じです! 画像をキャラクター中心にしたらレイトラや, ちにゅりさんの「まっちゃねこ」がきれいに映りそうです!(試してみてね)

こちらでは, Swift での実装になります. iOS アプリに組み込むのに使うのに適しています!(ライセンスが MIT. GPL だとアプリには使えないためでしょう)

注意点. セキュリティの懸念も.

色付きだったりすると, 古いスマホのカメラの QR コードリーダーだとうまくスキャンできないケースもでてきます. 

[2] や [3] ではいくらか対策がされていますが, 上記 QR コード画像生成ツールではあまり考慮されていなさそうです.

また, QR コードでは, 埋め込まれている情報(e.g. URL)が, カメラの撮影条件や照明条件によって, 意図しない別の情報にすり替わる可能性があります.


今後の発展

Aesthetic な QR コード画像生成は, arxiv の cross references をみても [2], [3] からあまり発展がありませんでしたが, 最近はちらほら出てきた気がします(e.g. [4] の ArtCoder ).

今後レイトレーシングの技術を応用して, [2] のようにカメラの振る舞いをシミュレーションし, 上記脆弱性を減らしよりロバスト(頑健)な QR コード画像生成や, 3D っぽい QR コード画像を作る研究も出てきそうです! 

田んぼやビルの上に実物 QR コード画像(e.g. アート作品)を作り, Google maps などの衛星写真で読み取れる... みたいな広告っぽい使い方もでてくるかもですね!

References

- [1] Halftone QR Codes (SIGGRAPH Asia 2013) https://www.youtube.com/watch?v=5Xlw1HekxVk
- [2] ART-UP: A Novel Method for Generating Scanning-robust Aesthetic QR codes https://arxiv.org/abs/1803.02280
- [3] Stylize Aesthetic QR Code https://arxiv.org/abs/1803.01146 
- [4] An End-to-end Method for Producing Scanning-robust Stylized QR Codes https://arxiv.org/abs/2011.07815 
- [5] ART-UP: A Novel Method for Generating Scanning-robust Aesthetic QR codes https://arxiv.org/abs/1803.02280