質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

1回答

523閲覧

学習による画像生成について

Shouka

総合スコア34

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/01/07 16:08

編集2019/01/08 09:11

前提・実現したいこと

Kerasを使用して画像のr,g,b値を予測しbmp画像を生成するということをしたいです。
たとえば、
イメージ説明
のように、元の学習データに類似した画像を生成するのではなく、ある画像をもとに新たに画像を予測し生成する、といった形です。

bmp画像の大きさは元データ・予測データすべて等しく、サイズ149 x 115です。

試したこと

Kerasの回帰分析を使いbmpのRGBの値から新たにRGBの値を予測し、その値からbmp画像を生成する、といったことをしました。
しかし学習データの要素数が多すぎるのか、まったくヘンテコな値しか予測されませんでした。
そこで、この前質問した際にCNNの利用を勧められ、色々見てみたのですが
トレーニングデータに似ている画像を生成する例はたくさんあるけどある画像から新たに画像を予測生成する例が見つかりませんでした。

発生している問題

GANやCNNを利用するとよさそうなのはわかるのですが、どう画像を予測し生成するのかまず手法がわかりません…。
DCGANのタスクだと教えていただいたので調べて
https://spjai.com/pix2pix-image-generation/
こちらを参考にやってみたのですが、

AssertionError: Height in the output should be positive.

このようなエラーが出てきます…。

補足情報(FW/ツールのバージョンなど)

python 3.6.6のspyderを使用してます。
どなたかよろしくお願いします…。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2019/01/08 01:07

「学習データ・テストデータ・予測データ」という書き方に違和感がありました。「元データと予測データのペア」が何組もあって、その大部分を学習データに、一部をテストデータとして使っているということで合ってますか?
quickquip

2019/01/08 01:07

あとすごく素朴な疑問として、このタスクは視覚的に人間が理解できるんでしょうか? つまりペアを5組ぐらい用意して、元データのかたまりと予測データのかたまりをそれぞれシャッフルしたとして、人間はそれを見て元のペアに戻せるんでしょうか。
Shouka

2019/01/08 05:06

>「学習データ・テストデータ・予測データ」という書き方に違和感がありました。 すいません、元データと予測(正解)データの大部分を学習データ、一部をテストデータという認識で合っています。 >このタスクは視覚的に人間が理解できるんでしょうか? 人間はスペクトログラムの画像を見てもそこから音声として認識できないので、元のペアに戻せないと思います。
tiitoi

2019/01/08 05:28

> トレーニングデータに似ている画像を生成する例はたくさんあるけどある画像から新たに画像を予測生成する例が見つかりませんでした。 典型的な GAN のタスクに思えます。 DCGAN などで調べてください。
quickquip

2019/01/08 05:30

だとすると質問の「ヘンテコな値しか予測されませんでした」の部分はどういう意味になりますか? 十分に見慣れていれば「正解データからは遠い」という程度は判断出来るということでしょうか。
Shouka

2019/01/08 09:02 編集

tiitoiさん >DCGAN などで調べてください。 まさにこれでした。ありがとうございます。 しかしどう自前のデータセットで学習させるのかがわかりません…。 線画からカラー画像を生成するものや、ドット絵と写真のペアを学習させ任意のドット絵から写真を生成するものなどの関連記事は出てきましたが、それらのコードを参考にしてもエラーを吐かれてしまいます…。
Shouka

2019/01/08 09:05

quiquiさん >質問の「ヘンテコな値しか予測されませんでした」の部分はどういう意味になりますか? 0~256のRGB値を予測したいのですが明らかに超えていたりマイナス値になっていたのでそう判断しました。
tiitoi

2019/01/08 09:12 編集

> 線画からカラー画像を生成するものや、ドット絵と写真のペアを学習させ任意のドット絵から写真を生成するもの まず MNIST 等の簡単な題材で、画像を生成する DCGAN を実装して理解してから、ご自身の問題に応用されてはどうでしょうか。 以下の記事など参考になるかと思います。 https://elix-tech.github.io/ja/2017/02/06/gan.html
Shouka

2019/01/08 09:19

tiitoiさん > MNIST 等の簡単な題材 MNISTは画像を学習させた後まっさらな状態から画像を新たに生成していると思うのですが、 パラメータからいきなり画像を生成するのではなく、画像から画像を生成するモデルを構築したいです。 その構築方法が分かりません。 何度も返信ありがとうございます。すいません、助かります。
tiitoi

2019/01/08 09:43

回答に書きましたが、pix2pix が一番近いと思います。 まず仕組みや実装方法に理解してからでないと、ネット上のコードをコピペしても形状が違うとかエラーで怒られてて動かないと思うので、MNIST 等簡単な問題から取り組むのをおすすめします。
guest

回答1

0

ベストアンサー

MNISTは画像を学習させた後まっさらな状態から画像を新たに生成していると思うのですが、
パラメータからいきなり画像を生成するのではなく、画像から画像を生成するモデルを構築したいです。

でしたら、pix2pix になると思います。
DCGAN の論文では、Generator の入力は一様分布に従う乱数としていますので、マッサラな状態から生成ではなく、入力は与えています。
pix2pix はその入力を画像に変えたもので DCGAN の一種です。

GAN、DCGAN、pix2pix の関係

GAN: Deep Learning を使用した生成モデルの一種
論文: Generative Adversarial Networks

DCGAN: GAN を利用した画像生成モデル
論文: Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks

pix2pix: Generator の入力を画像にして、目的の画像を生成する DCGAN
論文: Image-to-Image Translation with Conditional Adversarial Nets

参考になるリンク

その構築方法が分かりません。

勉強する手順としては、GAN → DCGAN → pix2pix です。
いずれも日本語の解説記事も沢山ネット上にあるので、調べてみてください。

投稿2019/01/08 09:40

tiitoi

総合スコア21956

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Shouka

2019/01/09 03:37

ありがとうございます! また質問するかもしれませんが、まずはその順番で勉強してみます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問