Ultralytics YOLO27: ウェイトリストに登録する
YOLOのライセンス
Ultralytics用語集に戻る

Neural Style Transfer

ニューラルスタイル転送は、CNNの特徴統計を一致させ、写真の内容を別の画像のスタイルで描き直します。Gatysの手法、高速モデル、用途を解説します。

ニューラルスタイル変換(NST)は、事前学習済みの畳み込みニューラルネットワーク(CNN)の内部特徴を照合し、街並みの写真など一方の画像の内容を、絵画など別の画像の視覚的なスタイルで描画するコンピュータービジョン技術です。内容は、何がどこにあるかを記録する深い層の特徴マップに捉えられます。スタイルは特徴チャネル間の相関として捉えられ、質感、色、筆致を記録しつつ、配置は保持しません。テュービンゲン大学のLeon Gatys、Alexander Ecker、Matthias Bethgeは、2015年8月に『A Neural Algorithm of Artistic Style』でこの手法を発表しました。翌年、Prismaアプリによってスマートフォンユーザーにも広まりました。

元の手法の仕組み#

Gatysの手法では、ImageNetで学習したCNNのVGG-19を固定の特徴抽出器として使います。ネットワークの重みではなく、出力画像のピクセルを変更します。結果は2つの損失関数によって導かれます。

  • コンテンツ損失: 深い層の1つであるconv4_2における、出力画像と元画像の特徴マップの二乗差です。物体やレイアウトを認識できる状態に保ちます。
  • スタイル損失: conv1_1からconv5_1までの5つの層におけるグラム行列の二乗差です。C個のチャネルを持つ層の場合、グラム行列はC x Cの表で、各要素(i, j)は画像内のすべての位置について合計した、チャネルiとjの応答の強さを表します。

2つの損失の加重和を、L-BFGS 最適化アルゴリズムで最小化します。誤差逆伝播によって、凍結したネットワークを通じてピクセルまで勾配を伝えます。

グラム行列は位置ごとの値を合計するため、画像のレイアウトを変えてもほとんど変化しません。写真の象限を入れ替えると、VGG-19より小さいImageNet CNNであるtorchvisionのResNet-18をPyTorchで使った場合に、この性質を確認できます。

import torch
from skimage import data
from torchvision.models import ResNet18_Weights, resnet18

weights = ResNet18_Weights.DEFAULT
cnn = resnet18(weights=weights).eval()
early_layers = torch.nn.Sequential(cnn.conv1, cnn.bn1, cnn.relu, cnn.maxpool, cnn.layer1)
preprocess = weights.transforms()

photo = torch.tensor(data.astronaut()).permute(2, 0, 1)  # 3 x 512 x 512
rearranged = torch.roll(photo, shifts=(256, 256), dims=(1, 2))  # same pixels, quadrants swapped


def content_and_style(image):
    """Return an early CNN layer's feature map (content) and its Gram matrix (style)."""
    with torch.no_grad():
        features = early_layers(preprocess(image)[None])[0].flatten(1)  # channels x positions
    return features, features @ features.T / features.shape[1]


(content_a, style_a), (content_b, style_b) = content_and_style(photo), content_and_style(rearranged)
print(f"Content change: {(content_a - content_b).norm() / content_a.norm():.0%}")
print(f"Style change:   {(style_a - style_b).norm() / style_a.norm():.0%}")

象限を入れ替えると特徴マップは96%変化しますが、グラム行列の変化はわずか7%です。残る7%の変化は、新しくできた境界と、各画像から異なる部分を切り出す中央クロップによるものです。このため、スタイル損失は絵画の筆致や配色をコピーしながら、絵画内の物体の位置はコピーしません。

高速なスタイル変換と任意のスタイルへの対応#

画像ごとの最適化には何百回もの反復が必要なため、その後の研究では最適化を学習プロセスに組み込みました。スタンフォード大学のJustin Johnson、Alexandre Alahi、Li Fei-Feiは、2016年に同じ損失関数を使ってスタイルごとにフィードフォワードネットワークを学習し、約3桁高速な結果を実現しました。また、同じ知覚損失を超解像にも適用しました。Dmitry Ulyanovらは、それらのネットワークでバッチ正規化をインスタンス正規化に置き換えると、スタイル変換の品質が向上することを示しました。Xun HuangとSerge Belongieによる適応的インスタンス正規化(AdaIN、2017)は、再学習なしであらゆるスタイルに対応します。コンテンツ特徴の各チャネルの平均と標準偏差をスタイル画像の値に合わせて調整し、デコードするため、リアルタイムで動作します。

堅牢なビジョンモデルのためのスタイル変換#

Robert GeirhosらはAdaINを使い、ImageNetで学習したCNNが形状よりもテクスチャに強く依存することを示しました。たとえばResNet-50は、ゾウの皮膚のテクスチャを持つ猫の画像をゾウと分類します。これはショートカット学習の一例です。彼らは79,434点の絵画を収録したPainter by Numbersコレクションからランダムに選んだ絵画を使って、ImageNetの全画像にスタイル変換を施したStylized-ImageNetを作成しました。このデータセットで学習したResNet-50は、代わりに形状を重視しました。この形状ベースのネットワークをFaster R-CNN 物体検出モデルのバックボーンとして使うと、Pascal VOC 2007のmAP50は70.7から75.1に、MS COCOでは52.3から55.2に向上しました。

スタイル変換は物体の位置を変えないため、同じ考え方を検出データセットのデータ拡張にも利用できます。ラベル付き画像をスタイル変換した画像では、元のバウンディングボックスを再利用できます。そのため、Ultralytics YOLO26の検出データセットでは、新しい画像名で元のラベルファイルをコピーするだけで済みます。

  • 敵対的生成ネットワーク(GAN): CycleGANは、1枚のスタイル画像の統計量を照合するのではなく、写真とモネの絵画など、画像コレクション全体の間の変換を学習します。
  • 転移学習: 新しいタスクに向けて事前学習済みの重みをファインチューニングします。NSTではネットワークの重みを更新せず、損失の測定にのみ使用します。
  • 拡散モデル: テキストプロンプトまたは参照画像から画像を再生成してスタイルを変換します。その過程で、スタイルだけでなく形状や細部も変わることがあります。

ソリューションを見る

スポーツにおけるコンピュータービジョン

スポーツにおけるコンピュータービジョン

Ultralytics YOLOが、選手やボールの追跡、パフォーマンス分析、コーチングへの知見、アスリートのリハビリを通じて、スポーツビジョンをどのように支えるかをご紹介します。
詳しく見る
航空画像向けコンピュータービジョン

航空画像向けコンピュータービジョン

Ultralytics YOLOを使用して、ドローンや航空画像をリアルタイムの知見に変換し、農業、水産養殖、自然保護、地理空間分析に活用できます。
詳しく見る
航空宇宙分野のコンピュータービジョン

航空宇宙分野のコンピュータービジョン

Ultralytics YOLOを活用して航空宇宙分野でコンピュータビジョンを導入し、航空機検査、滑走路上のFOD検出、空港の地上業務、複合材の欠陥検出に活用できます。
詳しく見る
セキュリティ分野のコンピュータービジョン

セキュリティ分野のコンピュータービジョン

Ultralytics YOLOモデルであらゆる施設を保護しましょう。ビジョンAIは、周辺監視、脅威検知、ナンバープレート認識、職場の安全管理を支援します。
詳しく見る
ロボティクス分野のコンピュータービジョン

ロボティクス分野のコンピュータービジョン

Ultralytics YOLOモデルで、よりスマートなマシンを実現しましょう。ロボティクスにおけるビジョンAIは、自律ナビゲーション、認識、物体追跡、リアルタイム制御を支援します。
詳しく見る
物流におけるコンピュータービジョン

物流におけるコンピュータービジョン

Ultralytics YOLOモデルで物流を効率化しましょう。ビジョンAIにより、荷物検査、仕分け、車両追跡、倉庫のリアルタイム安全監視を実現します。
詳しく見る
小売業におけるコンピュータービジョン

小売業におけるコンピュータービジョン

Ultralytics YOLOモデルで小売のあり方を変革しましょう。ビジョンAIにより、在庫追跡、棚の監視、行列管理、より高度な顧客インサイトを実現します。
詳しく見る
医療分野におけるコンピュータービジョン

医療分野におけるコンピュータービジョン

Ultralytics YOLOモデルで医療ソリューションを構築しましょう。医療分野のビジョンAIは、医用画像処理の高速化、より高度な診断、患者モニタリングを実現します。
詳しく見る
製造業におけるコンピュータービジョン

製造業におけるコンピュータービジョン

Ultralytics YOLOモデルで製造を最適化しましょう。ビジョンAIは、品質管理、欠陥検出、PPE準拠、組立ラインの自動化を推進します。
詳しく見る
自動車分野におけるコンピュータービジョン

自動車分野におけるコンピュータービジョン

Ultralytics YOLOモデルで自動車分野にコンピュータービジョンを導入しましょう。ビジョンAIは、道路の安全性、運転支援、車両の自動化を向上させ、よりスマートな道路を実現します。
詳しく見る
農業におけるコンピュータービジョン

農業におけるコンピュータービジョン

Ultralytics YOLOモデルでスマート農業にビジョンAIを導入しましょう。作物のモニタリング、家畜の追跡、精密農業を支援し、より高く効率的な収量を実現します。
詳しく見る

AIの未来を一緒に築きましょう!

機械学習の未来に向けた歩みを始めましょう