
最先端AI技術で浮世絵を現代に再現する――Ukiyolator開発ストーリー Vol.1

はじめまして。調和技研新卒入社第一号の秋元です。調和技研では「画像系AI」「数値系AI」「言語AI」と幅広い分野でAIの開発・導入支援を手掛けていますが、私はその中で「画像系AI」を担当しています。
調和技研の研究開発部門では、業務の一環として自身の興味のある分野の研究を自由に行える”リサーチタイム”という制度があり、私はそのリサーチタイムを活用して、AIを用いて入力画像を浮世絵風の画像に変換して出力する”浮世絵変換技術”の研究開発に取り組んでいます。
その名も「Ukiyolator(ウキヨレイター)」です。
これから複数回の連載という形で、現在の浮世絵変換の可能性を追求する本プロジェクトの紆余曲折をご紹介していきます。足かけ6年に及ぶ本プロジェクトを通して、AIを用いた画像変換技術の変遷もご理解いただけると思います。
なお、Ukiyolatorはこちらで実際にお試しいただけます。 ぜひご自身の顔写真を浮世絵風に変換してみてください!
https://ukiyolator.web.app/
Ukiyolatorへかける想い
「Ukiyolator」は、「Ukiyo-e(浮世絵)」と「Image-to-Image Translation(画像から画像に変換)」から名付けました。私が学生時代(2017年〜)から続けているプロジェクトで、現在も継続的に研究を行っています。
浮世絵は平安から続く大和絵の流れを汲んだ芸術であり、江戸で大成し庶民にも根付いた日本の伝統芸術です。今も続くクールジャパンの源流にある、ジャポニズムのきっかけとして世界に認められた芸術でもあります。
しかし現在、浮世絵版画制作を行える彫師と塗師は僅かしか存在せず、江戸時代に台頭していた浮世絵師自体も既に存在しないため、その貴重な文化は途絶えてしまいました。
そこで、Deep Learningの力を利用してこの現代社会で浮世絵を甦らせたい、現代の日本人にも浮世絵の魅力を再発見して親しんでほしい、という想いから、AI技術を用いて人物写真を浮世絵風に変換できる技術の開発を目指すことにしました。
AIが浮世絵に挑む:4つのステップ
「Ukiyolator」では、以下の4つの主要なステップを経て浮世絵変換技術の開発を進めてきました。思い返せば早6年…。
- 2017年:CNNモデルを使ったアプローチ・・・失敗
- 2017〜2019年:CycleGAN(生成系モデル)を使ったアプローチ・・・方向性はOK
- 2020〜2023年:MANGA GAN(生成系モデル+ランドマーク検出など)を参考にしたアプローチ・・・実現できそうなことは確認
- 2023年〜:画像生成系モデル(最新画像生成系モデル)を利用したアプローチ・・・課題はあれど画像の生成まで成功
初期の変換結果の一例が下の画像です。2019年当時に話題になり、北海道テレビや日本経済新聞などでもご紹介いただきました。
そして、最先端の画像生成系モデルを活用した現段階では下の図のレベルまで進化しています。人物の特徴を残しつつ絵柄を浮世絵風に変換できています。元は同じ画像ですが、上の画像と比べると理想にだいぶ近づいてきたと感じています。
生成系AIモデルの可能性と課題
現在の「Ukiyolator」では、2つの画像生成系AIモデル、具体的には「Style Transfer」と「Image-to-Image Translation」を活用しています。これらの技術は、画像を変換し新たな画像を生成することに重点を置いており、本プロジェクトの核となっています。
技術の進歩に伴い、現在ではかなり高精度に人の顔を浮世絵風に変換できるようになりました。
しかし、完全に浮世絵風に変換するにはまだ課題があります。特に、浮世絵的な顔の配置や特徴の変換が不十分で、江戸の浮世絵師が書いたようにまだ見えないという問題が残っています。この点に関する私のこだわりについては別の機会に書きたいと思います。
なお、浮世絵変換はかなり強いデフォルメをかける必要がある変換技術ですが、デフォルメが強いほど元人物の要素がなくなってしまうという難点があります。「Ukiyolator」では元人物の特徴を残しながら浮世絵風に変換することを目指しており、この難関をクリアできれば、浮世絵だけでなく、その人らしさを維持しながら何かのキャラクター風などに変換したいといったケースにも応用できると考えています。
次回は「Ukiyolator」開発のスタート地点まで遡って、CNNを使ったアプローチ(失敗)の顛末をご紹介します。お楽しみに。

画像系AI開発に従事。公立はこだて未来大学卒業後、2018年に調和技研に入社。調和技研新卒第一号。浮世絵画風変換AIを開発するプロジェクト”Ukiyolator”の発案者です。バンド活動をやっているので、週末は各地に行ったりしています。
関連記事


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

ChatGPTのAPI利用料金比較|最新モデルGPT-4o miniも検証
- 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

Copilot for Microsoft 365で「PowerPoint」を使いこなす
- 生成系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】
- インタビュー

CNNで浮世絵画風変換はできるのか――Ukiyolator開発ストーリー Vol.2
- 画像系AI
- 生成系AI

住宅写真という資産を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

PaDiMとPatchCoreどちらを選ぶべき?異常検知モデルの選択肢を見極めるポイント
- 画像系AI

社内の暗黙知を可視化するナレッジネットワークでイノベーションが生まれやすい環境に
- インタビュー
- 言語系AI

人の幸せや社会の豊かさに、AIをいかに「調和」させるか【調和技研×AIの旗手 Vol.1】
- インタビュー