CNNで浮世絵画風変換はできるのか――Ukiyolator開発ストーリー Vol.2
こんにちは、秋元です。前回は浮世絵画風変換の取り組みについてのご紹介をしました。
今回は現在でも色々なところでも取り上げられる「AI×アート」の最初期のステップがどのようなものだったのか、またそのアイデアが現在ではどのようなところで活用されているのかご紹介するとともに、「Convolutional Neural Network」(日本語では「畳み込みニューラルネットワーク」、以下CNN)で浮世絵画風変換を実現しようとした際に直面した問題点などを紹介していきたいと思います。
「AI×アート」の最初期のステップ
芸術分野では、アーティストによって作り出された作品はContent(内容)とStyle(スタイル)に分解できるとされています。Contentは書かれているものが何かを表しており、例えば猫や人など具体的なものです。Styleは画風などを表しており、例えば新印象派の画家が用いる点描法などその絵を描くために用いられた技法や様式などを表します。
特定のStyleでContentを描きたい場合、古くからStyleを模倣しながらContentを描く、いわゆる「~風」に描くということが行われてきました。しかし、近年では描きたいStyleとContentの情報を含む画像をそれぞれ準備すれば、そのStyleでContentを描いた画像を自動で作り出せる画像AI技術が出てきています。このような画像AI技術と芸術の融合を行う「AI×アート」の最初期の技術が「A Neural Algorithm of Artistic Style」という手法です。
「A Neural Algorithm of Artistic Style」とは
「A Neural Algorithm of Artistic Style」はLeon A. Gatysらによって2016年に提案された画像AI技術の有名手法です[1]。この手法では、ある画像からContentを、別画像からStyleをそれぞれ分離し、一つの画像として再構築することで新しい画像を生成することができます。
ContentとStyleの分離と再構築には画像分類で広く用いられるVGG19というアーキテクチャが使用されています[2]。Content情報とStyle情報の分離と再構成について説明します。まずContent情報は、VGGの深い層にある情報を用いることで分離します。この深い層の情報は画像分類で最終的に必要とされる何が映っているかの情報であり、まさにContent情報に相当します。一方でStyle情報は浅い層から中間の層までの活性化関数の相関から得られる情報を用いることで分離しています。複数の層からの情報を用いるため、Styleの多様な特徴を取り入れることができます。このように分離したContent情報とStyle情報を指定した割合で満足する画像を最適化でみつけることで一つの画像として再構築します。
実際にこの手法を適用するとどのような結果になるのか、私の学生時代の履歴書の写真をContentとし、この手法の実行例でよく使われるゴッホの星月夜をStyleとして画像を生成した例を紹介します。

Contentである私の顔が維持されたまま、Styleがゴッホのものに変換されていることがわかりますね。このようにStyleの変換を行うことを、生成系AI分野ではStyle Transfer(画風変換)と呼ぶことが多いです。この手法の登場によって、誰でも簡単にStyleを変換できるようになり、様々なところで活用されていくことになりました。
Style Transfer(画風変換)の活用事例
「A Neural Algorithm of Artistic Style」が発表された直後の2016~2017年頃から画風変換を行うアプリケーションやWebサイトも急増していきました。実際にはどのような分野で活用されてきたか、当時の例をご紹介します。
1. アーティストやクリエイター
画風変換はアーティストやクリエイターの制作活動に活用されてきました。例えば、写真を有名な画家のスタイルで描き直すことで、新しい視覚的な表現を創造することができます。この手法が登場したことによって、異なる芸術家のスタイルを自分の作品にとり入れることが簡単にできるようになりました。このような画風変換は詳細なスタイルのコントロールが可能なため、クリエイターは自分のアイデアをより深く具現化できるようになりました。

2. 映画やゲーム
映画やゲーム制作においても、この手法は視覚効果の創造に活用されていました。特定の芸術家のスタイルを映像に適用することで、映画の雰囲気やゲームの世界観を強調することができます。これにより、視聴者やプレイヤーはより没入感を持って作品を楽しむことができます。
例えば、フランスのGrindCoreバンドがMVで画風変換を用いていました。GrindCoreはメタルのサブジャンルでありテンポの速さと攻撃性に重きを置いたジャンルです。このバンドは電子音楽とも融合しており、この画風変換を用いたことによって人間味のなさやおどろおどろしい音楽性を強調している反面、何処か神秘的で近寄り難い空気を作っているように感じます。
3. デザインと広告
独自のStyleやイメージを表現するために、ブランドや企業にもこの手法は活用されています。例えば、商品の広告やパッケージデザインに芸術的な要素を取り入れることで、魅力的なビジュアルを提供し、顧客の関心を引き立てることができます。
調和技研では、ロゴをContetに葛飾北斎の神奈川沖浪裏の浮世絵をStyleにして変換したデザインの玄関マットを現在も使っています。このマットは調和技研のオフィスに訪れたお客様に対して、「AI×アート」の分野も取り組んでいることのアピールや話の種になっています。ちなみに東京オフィスには調和技研ロゴと電子基盤画像をスタイルにして生成したデザインの玄関マットが置いてあります。



これらの事例からも分かるように「AI×アート」の分野の発展は画風変換の登場によって加速していきました。
浮世絵画風変換の挑戦
2017年当時の私は学生で、AIを扱う研究室に所属している一方で、趣味で芸術にも興味をもっていたため、「AI×アート」で何かできないか模索していました。そこで先程の「A Neural Algorithm of Artistic Style」という手法があることを知り、色々な画像で試そうと画風変換ができるWebサイトやアプリケーションを試したり、コードを実装したりしていました。
色々と試していくうちに、あらかじめ準備されているStyle画像として用いられるものが西洋画かつ油絵であることが多いことに気が付きました。浮世絵などの日本の芸術に対してあまり適用されている例がなかったため、浮世絵に変換するとどのような結果が得られるかを確認しました。画像は先ほどと同様に私の学生時代の履歴書の写真を用い、浮世絵側にはみなさんが一度は見たことがある東洲斎写楽の描いた三世大谷鬼次の奴江戸兵衛(さんせいおおたにおにじのやっこえどべえ)を用いて同様に変換を行いました。

結果としては、期待していたよりも浮世絵らしい画像に変換することはできませんでした。
遭遇した課題
先ほどの結果で、私が浮世絵らしい特徴ではないと感じたのは以下の点が気になったからです。
- 顔にデフォルメがかかっていない
- 版画のような簡略化がされていない
- スーツが部分的にしか柄が変割っていない
- 顔にも衣服の柄が描画されている

これらの原因として、この手法では全体的なタッチや全体的な色彩などの情報まで落とし込まれてしまったため、衣服には衣服、顔には顔のような部分に対して1対1の変換ができないところにあるのではないかと考えています。
タッチや色彩をStyleとして抽出する方法は、油絵のような絵の具を塗り重ねて表現するアートジャンルでは非常に有用ですが、浮世絵や漫画などの単純化やデフォルメが必要なものに対してはうまく機能しません。
よって、この手法を用いて浮世絵への画風変換はできないことがわかりました。
次のステップへのヒント
浮世絵へ画風変換させる場合にはタッチや色調を抜き出すだけではStyleとしては不十分であることがわかりました。
より詳細に言えば、浮世絵への画風変換を行うためには以下を考慮した変換を行う必要があります。
- デフォルメ
- 顔を浮世絵的な顔へ
- 服などから立体感を消し単純に
- 色調
- 浮世絵で使われるような和絵の具風の色合いへ
- 和紙のような質感へ
上記の課題を解決するためのモデルを探していたところ、色調の変換とデフォルメを同時に行うことができる「CycleGAN」というモデルにたどり着きました。
と言うわけで、次回はCycleGAN(生成系モデル)を使ったアプローチについて書いていきたいと思いますので、どうぞお楽しみに。
【参考文献】
[1] A Neural Algorithm of Artistic Style A Neural Algorithm of Artistic Style
[2] Very Deep Convolutional Networks for Large-Scale Image Recognition
※Style Transferはこちらで試せます!
Trending Dreams | Deep Dream Generator
画像系AI開発に従事。公立はこだて未来大学卒業後、2018年に調和技研に入社。調和技研新卒第一号。浮世絵画風変換AIを開発するプロジェクト”Ukiyolator”の発案者です。バンド活動をやっているので、週末は各地に行ったりしています。
関連記事
OpenAI Agent SDK vs. Google ADK (前編)
- 生成系AI
- ChatGPT
- 言語系AI
- 数値系AI
手書き訂正などが書き込まれた書類の、LLMを使った読み取り実験
- ChatGPT
- 生成系AI
- 画像系AI
最適化AIの進化 :LLMを使用した献立修正
- 生成系AI
- ChatGPT
- 言語系AI
- 数値系AI
AI初心者がGPT-4oで挑戦!文化庁の表記ルール、守れる?【インターン体験記 パート②】
- 生成系AI
- 言語系AI
- ChatGPT
AI初心者がGPT-4oで挑戦!日本語の誤字脱字はどこまで直せる?【インターン体験記 パート①】
- 生成系AI
- 言語系AI
- ChatGPT
Titans - Googleが描く「長期記憶型AI」 :Titans: Learning to Memorize at Test Time を斜め読み
- ChatGPT
- 生成系AI
- 言語系AI
ChatGPTのAPI利用料金比較|最新モデルo3-proも検証
- ChatGPT
- 言語系AI
- 生成系AI
OpenAI o3 & o4-mini:推論性能が向上した AIモデルの特性
- ChatGPT
- 生成系AI
- 言語系AI
LLM:量子化とファインチューニング
- 生成系AI
- ChatGPT
- 言語系AI
AI導入を成功させる!データ準備の完全ガイド
【MoA】 ローカルモデルを組み合わせてgpt-4o-miniと同等の性能?「Mixture of Agents」を試してみる
- 生成系AI
- ChatGPT
- 言語系AI
「Gemini 2.0 Flash Thinking」の画像入力を試してみる
- 生成系AI
- ChatGPT
- 言語系AI
人間のフィードバックによる強化学習とデータセット構築
- 生成系AI
- ChatGPT
- 言語系AI
OpenAI Canvas - AIと共同作業を加速する新たな作業空間 -
- 生成系AI
- ChatGPT
- 言語系AI
AI Agent Vol.3【Agent の 学習と評価】
- ChatGPT
- 生成系AI
- 言語系AI
Google のLLM「Gemini 2.0 Flash Thinking」を試してみる
- 生成系AI
- ChatGPT
- 言語系AI
【GroqCloud】 爆速回答!?GroqCloudの実力とは
【まとめ】GPT-4.5 登場!史上最強のAIモデルがリサーチプレビューを公開
- ChatGPT
- インタビュー
- 生成系AI
- 言語系AI
AI Agent Vol.2【Agent の 4つの要素】
- ChatGPT
- 生成系AI
- 言語系AI
Google のLLM「Gemini 2.0 Flash」を試してみる
- 生成系AI
- ChatGPT
- 言語系AI
2024年 年末のAI関連発表について
- ChatGPT
- 生成系AI
- 言語系AI
OpenAIが公開したLLMの事実性を評価する指標「SimpleQA」でモデルを測定してみた
- 生成系AI
- 言語系AI
- ChatGPT
AI導入に必須!PoC(概念実証)を成功させる進め方とポイント
The AI Scientist:AIによる論文の自動生成|さまざまな研究テーマを提案させてみる
- 生成系AI
- ChatGPT
- 言語系AI
AI Agent Vol. 1【Single AgentとMulti Agent】
- ChatGPT
- 生成系AI
- 言語系AI
AI活用成功に導く「AI導入アセスメント」とは――数理最適化AI事例をもとにポイントを解説
Llama 3 の日本語継続事前学習モデル「Llama-3-ELYZA-JP-8B」を試してみる
- 生成系AI
- 言語系AI
- ChatGPT
「戻れない変化」を生み出し続ける。コンサルを通して見極める業界DX実現への道筋
- インタビュー
- 生成系AI
- ChatGPT
サステナビリティ領域で活躍するAI―SDGs×AI活用事例
- 数値系AI
- 画像系AI
MetaのオープンLLM「Llama3.2 3B-Instract」の精度を検証してみた|GPT4o-miniとの比較あり
- 生成系AI
- 言語系AI
OpenAIの軽量モデル「GPT-4o mini」を試してみる
- 生成系AI
- 言語系AI
- ChatGPT
Microsoft「GraphRAG」とLangchainの知識グラフを活用したRAGを比較
- ChatGPT
- 言語系AI
- 生成系AI
Langchain+Neo4j で「GraphRAG」を実装してみる
- ChatGPT
- 生成系AI
- 言語系AI
数理最適化ソルバー活用事例|組合せ最適化で社内交流会の班分けを自動化
- 数値系AI
GoogleのマルチモーダルLLM「Gemini.1.5 Flash」の精度を検証してみる
- ChatGPT
- 生成系AI
- 言語系AI
3次元点群データを用いた物体検出
- 画像系AI
GPT-4oを活用した画像検索システムの構築方法
- 画像系AI
- ChatGPT
Pythonコーディングを簡単に|LangChainで効率化【LLMことはじめ Vol.2】
- ChatGPT
- 言語系AI
- 生成系AI
Microsoft 365 Copilot:AIによる業務効率化の革新
- ChatGPT
- 生成系AI
- 言語系AI
Google のオープンLLM「Gemma」を試してみる|GPT-3.5 Turboとの比較あり
- ChatGPT
- 生成系AI
- 言語系AI
3次元点群データとAIを用いたオガ粉の体積計測
- 画像系AI
Llama 3 の日本語継続事前学習モデル「Llama 3 Youko 8B」を試してみる|他LLMとの比較あり
- ChatGPT
- 言語系AI
- 生成系AI
RAG(Retrieval Augmented Generation)を「Command R+」で試してみた|精度をGPT-4 Turboと比較
- ChatGPT
- 生成系AI
- 言語系AI
Wood Powder Volume Calculation using Point Cloud Data and AI
- 画像系AI
Dify(ディファイ)をGoogle Cloudにデプロイしてみた
- 生成系AI
“Azure OpenAI”で始めるPythonプログラミング【LLMことはじめ Vol.1】
- 生成系AI
- 言語系AI
- ChatGPT
Combating the Malicious Use of AI-Powered Image Editing: A Deep Technical Dive
- 生成系AI
- 画像系AI
最新版「GPT-4 Turbo」を試してみた|GPT-4oとの比較あり(5/14追記)
- ChatGPT
PrecisionとRecallを何度も調べ直さないために
- 言語系AI
Stable Diffusion+LoRAを使って異常画像データを生成できるか検証してみた
- 生成系AI
- 画像系AI
大規模言語モデルによるソースコード生成:GitHub CopilotからCopilot Xへの進化と未来
- 生成系AI
- 言語系AI
AI導入の前に知っておくべき基礎知識(後編)――効率的に自業務にAIを導入するための4ステップ
- 数値系AI
- 画像系AI
- 言語系AI
配達ルート最適化AIにより作業時間80%削減を実現。成功の鍵は“人とAIの調和”
- インタビュー
- 数値系AI
AI画像生成の法的リスク(後編):著作権侵害を回避するために
- 生成系AI
- 画像系AI
AI画像生成の法的リスク(前編):著作権法の基本を学ぼう
- 画像系AI
- 生成系AI
AIというツールを使い 「生命たらしめるもの」が何かを見つけたい【調和技研✖️AIの旗手 Vol.4】
- インタビュー
AI導入の前に知っておくべき基礎知識(前編)――AIのキホンと活用事例
- 数値系AI
- 画像系AI
- 言語系AI
AIアルゴリズムの構築には、 課題の本質を見極めることが重要 【調和技研✖️AIの旗手 Vol.3】
- インタビュー
住宅写真という資産をAIで利活用し、工務店とお客様をつなぐ新たなビジネスを創造
- インタビュー
- 画像系AI
- ChatGPT
シフト最適化への応用が期待される強化学習を用いた組合せ最適化の解法
- 数値系AI
多彩なサービスと紐づく「交通」の課題解決で地域の活性化や住みやすさの向上を【調和技研×AIの旗手 Vol.2】
- インタビュー
AIプロダクトを開発する際に考えるべき品質保証のキホン
- 数値系AI
- 生成系AI
- 画像系AI
- 言語系AI
Microsoft GuidanceでのFunction Calling機能の使い方とその特徴
- ChatGPT
- 言語系AI
Segment Anything Model(SAM)を使いこなそう!パラメータ設定のポイントも徹底解説
- 画像系AI
Stable Diffusionを使って異常画像データを生成できるか検証してみた
- 画像系AI
- 生成系AI
基礎から解説!数値系異常検知の概要と代表的な手法
- 数値系AI
実践!ChatGPT×Slackの具体的な連携方法と日常業務での効果的な活用事例
- ChatGPT
- 言語系AI
- 生成系AI
最先端AI技術で浮世絵を現代に再現する――Ukiyolator開発ストーリー Vol.1
- 画像系AI
- 生成系AI
PaDiMとPatchCoreどちらを選ぶべき?異常検知モデルの選択肢を見極めるポイント
- 画像系AI
社内の暗黙知を可視化するナレッジネットワークでイノベーションが生まれやすい環境に
- インタビュー
- 言語系AI
人の幸せや社会の豊かさに、AIをいかに「調和」させるか【調和技研×AIの旗手 Vol.1】
- インタビュー