🐎

絵入りQRコードの作成

2023/11/14に公開

はじめに

現代のデジタルマーケティングにおいて、QRコードは重要なツールとなっています。特に、視覚的に魅力的な絵入りQRコードは、ブランドの認知度を高め、注目を集める新しい方法として注目されています。この記事では、Hugging Face上の先進的なモデルを使用して、絵入りQRコードの作成を試み、そのプロセスと結果について詳しく解説します。パラメータの調整が生成されるQRコードにどのように影響するか、そして特定の画像がQRコードとしてどのように機能するかについての実験的検証を行いました。

QRコードの基本

QRコードは、その形状が正方形であり、通常、3つの角に位置する大きな正方形のマーカーが特徴的です。これらのマーカーによって、スキャナーはコードの向きを認識し、正確にデータを読み取ることができます。QRコードの中には、ウェブサイトのURL、テキスト情報、連絡先情報など、さまざまなタイプのデータを含むことができます。

絵入りQRコードの効果について

絵入りQRコードは、単なる情報伝達手段を超え、多くのマーケティング利点を提供します。以下にその主な効果を挙げます。

  1. ブランド認知の向上:
    絵入りQRコードは、従来のQRコードよりも視覚的に印象的であるため、ブランドイメージの強化に効果的です。このようなユニークなQRコードは、消費者の記憶に残りやすく、ブランド認知度の向上に寄与します。

  2. 注目度の向上:
    目を引くデザインのQRコードは、人々の興味を引き、通常のQRコードよりも高い注目度を得ることができます。これにより、より多くの人々がQRコードをスキャンし、関連する情報やウェブサイトへのアクセスが増加します。

  3. 独自性と創造性の表現:
    絵入りQRコードは、独自性と創造性を示す手段としても優れています。ブランド独自のアートワークやロゴを組み込むことで、他とは一線を画すブランドイメージを構築することができます。

  4. マーケティングキャンペーンの効果強化:
    特定のマーケティングキャンペーンに関連付けられた絵入りQRコードは、そのキャンペーンの視認性と記憶に残る度合いを高めます。これにより、マーケティング活動の効果を最大化することができます。

以上の点から、絵入りQRコードは、現代のデジタルマーケティング戦略において重要な役割を果たす可能性があります。

参考モデル

https://huggingface.co/DionTimmer/controlnet_qrcode-control_v1p_sd15
https://huggingface.co/DionTimmer/controlnet_qrcode-control_v11p_sd21

コード&プロンプト

使用コード

source_image = load_image("加えたい画像")
# initial image, anything
init_image = load_image("元の画像")
condition_image = resize_for_condition_image(source_image, 768)
init_image = resize_for_condition_image(init_image, 768)
generator = torch.manual_seed(123121231)
image = pipe(prompt="a bilboard in NYC with a qrcode",
             negative_prompt="ugly, disfigured, low quality, blurry, nsfw",
             image=init_image,
             control_image=condition_image,
             width=768,
             height=768,
             guidance_scale=20,
             controlnet_conditioning_scale=1.5,
             generator=generator,
             strength=0.9,
             num_inference_steps=150,
            )

パラメータ説明

-source_image:追加したい画像(QRコード)
-init_image:元画像
-resize_for_condition_image:画像を、モデルが処理しやすいようにリサイズする関数です。
-generator:生成画像の乱数生成を決定するためのシード値を設定します。これにより、同じシード値を使用すると、再現可能な生成結果が得られます。
-prompt:生成する画像の内容をテキストで指示します。
-negative_prompt:生成を避けたい内容を記述するテキストです。
-image:Img2Img機能を使用する場合の初期画像です。(元画像)
-control_image:ControlNetを使用して条件付けをする画像です。この画像の特徴が新しく生成される画像に取り込まれます。(QRコード)
-width, heigth:生成される画像のサイズをピクセル単位で指定します。
-gudance_scale:プロンプトに対する画像の忠実度を決定します。数値が高いほど、指定したプロンプトに忠実な画像が生成されます。
-controlnet_conditioning_scale:ControlNetの特徴をどれだけ強調するかを決定します。
-strength:元の画像からどれだけ変化させるかを決定します。1に近いほど大きな変更が加えられます。
-num_inference_steps:生成プロセス中に行う推論のステップ数です。多いほど詳細な画像が生成される可能性が高くなりますが、計算時間も増加します。

使用画像

QRコード

読み込ませた元画像




使用画像はいずれもChatGPTで生成しました

パラメータ変更とその影響

・guidance_scale

guidance_scale = 10

guidance_scale = 20

guidance_scale = 30

結果

guidance_scaleの値を下げると、よりリアルで、promptのテキスト文に近い画像になった。モデルがプロンプトに対してより繊細に反応するためと考えられます。しかしQRコードは背面になり、値を上げるほうがQRコードとして読み取りやすくなるのではと考えました。

・controlnet_conditioning_scale

controlnet_conditioning_scale = 1.5


controlnet_conditioning_scale = 2.0


controlnet_conditioning_scale = 3.0

結果

このパラメータは、生成される画像における、元の画像(init_image)と追加したい画像(source_image、この場合はQRコード)の影響のバランスを調整します。
controlnet conditioning scaleの値が低い場合、元の画像の特徴が強く残ることが観察されました。これは、元の画像の特徴が新しく生成される画像に強く影響を与えることを意味します。一方で、この値を高くすると、QRコードの特徴がより強く反映され、生成される画像がQRコードに近くなることがわかりました。
この設定には注意が必要で、controlnet conditioning scaleの値を高くしすぎると、元の画像の影響が弱まり、結果としてQRコードの特徴が過度に強調される傾向があります。

・strength

strength = 0.9

strength = 0.7

strength = 0.5

結果

このパラメータは、生成される画像におけるsource_image(この場合は追加したい画像、すなわちQRコード)の影響の度合いを決定します。
strengthの値が高い場合、生成される画像がsource_imageの影響をより強く受けるということです。具体的には、strengthを高く設定すると、生成される画像がQRコードの特徴をより明確に反映し、QRコードとしての形状に近くなる傾向が見られました。

・step

stepに関しては150, 200, 500と上げて試してみたが、多少画像の質は良くなるが、あまり変化がなかった。500に関してはとても時間がかかった。

読み取りテスト

上記の結果を踏まえて最適なパラメータを考えてみる

・馬の画像

読み取り可


guidance_scale = 20
controlnet_conditing_scale = 4.0
strength = 0.95

読み取り不可



考察

結果として、ほとんどの場合、生き物の画像を基にしたQRコードの読み取りは困難であることが判明しました。これは、QRコードの読み取りに必要なクリアなコントラストと規則的なパターンが、生き物の複雑な形状や色彩パターンと相容れないからです。
例として、馬の画像をベースにしたQRコードでは、唯一読み取ることができた画像でさえも、そのほとんどの要素がQRコードに占められており、馬としての特徴をほとんど感じることができませんでした。さらに、馬の特徴を取り入れたQRコードが生成された場合でも、その出力はしばしば奇妙な形を呈し、視覚的な魅力や認識可能性が低下しました。
生き物の特徴は、QRコードの読み取りに必要な明確なパターンやコントラストと矛盾する可能性が高く、これが読み取り可能性とデザインの魅力を制限する主な要因だと考えました。

和風な城

読み取り可


guidance_scale = 20
controlnet_conditing_scale = 2.0
strength = 0.75

guidance_scale = 20
controlnet_conditing_scale = 2.0
strength = 0.9

読み取り不可



考察

日本の城の画像を使用してQRコードを生成すると、もともとの日本の城が持つ白黒の配色とその特有の構造が、QRコードの必要とする視覚的特性に適しているためか、城の独特なイメージを保持しながらも、QRコードとしての機能を維持することに成功しました。これは、城の画像がQRコードの読み取りに必要なクリアなコントラスト規則的なパターンに自然に適合していることを示しています。

読み取り可

読み取り不可

考察

車をモチーフにした絵入りQRコードの生成にも挑戦しました。車の特徴を保ちながらQRコードを生成することが可能であることが示されましたが、生成されたQRコードは実際の車の形状やデザインから逸脱している場合が多く見受けられ、必ずしも自然とは言えませんでした。これは、車の複雑な形状や線の流れがQRコード生成の際に適切に再現されないことが原因と考えられます。

まとめ

様々な画像を用いて絵入りQRコードの生成を試みましたが、万能なパラメータの設定を見つけることはできませんでした。実験を通じて、絵入りQRコードの生成は確かに技術的に可能であるものの、使用できる画像の種類には一定の制限が存在することが明らかになりました。

特に、日本のお城のように元々の配色が白黒に近く、形が角ばっている画像では、元の画像の雰囲気を保ちながら絵入りQRコードを生成することが可能であることが判明しました。これらの画像は、QRコードの必要とするクリアなコントラストと規則的なパターンに適合しやすいため、絵入りQRコードの生成に適していると考えられます。

一方で、車や生き物のような複雑な形状や色彩の画像は、その特性がQRコードの読み取りに必要な明確なコントラストやパターンと相容れないため、絵入りQRコードの生成には適していないことがわかりました。この結果から、絵入りQRコードの生成には、選択される画像の特性が大きな役割を果たすことが理解されます。

今後の検証では、より多様な画像に対応するための技術の改善や、適用可能な画像の種類の拡大されることを目指します。これにより、絵入りQRコードは、デジタルマーケティングの分野でさらに重要な役割を果たすことになるかもしれない。

おまけ

検証とは別に、ChatGPTのPluginにあるMixerBox QRでQRコード生成を試みました。この方法では、簡単かつ迅速に基本的なQRコードを作成することが可能です。

Discussion