Zhewei Huang, Wen Heng, Shuchang Zhou
Wir zeigen, wie man Maschinen lehrt, wie menschliche Maler zu malen, die eine kleine Anzahl von Strichen verwenden können, um fantastische Gemälde zu erstellen. Durch die Verwendung eines neuronalen Renderers im modellbasierten Tiefenverstärkungslernen (DRL) lernen unsere Agenten, die Position und Farbe jedes Schlaganfalls zu bestimmen und langfristige Pläne zu machen, texturreiche Bilder in Striche zu zerlegen. Experimente zeigen, dass hervorragende visuelle Effekte mit Hunderten von Schlaganfällen erzielt werden können. Der Trainingsprozess erfordert nicht die Erfahrung menschlicher Maler oder Schlaganfallverfolgungsdaten.
Sie können Colaboratory problemlos verwenden, um es zu versuchen.






pip3 install torch==1.1.0
pip3 install tensorboardX
pip3 install opencv-python
Stellen Sie vor dem Testen sicher, dass es Renderer.pkl und Actor.pkl gibt.
Sie können einen ausgebildeten neuronalen Renderer und einen Celeba -Schauspieler zum Test herunterladen: Renderer.pkl und Actor.pkl
$ wget "https://drive.google.com/uc?export=download&id=1-7dVdjCIZIxh8hHJnGTK-RA1-jL1tor4" -O renderer.pkl
$ wget "https://drive.google.com/uc?export=download&id=1a3vpKgjCVXHON4P7wodqhCgCMPgg1KeR" -O actor.pkl
$ python3 baseline/test.py --max_step=100 --actor=actor.pkl --renderer=renderer.pkl --img=image/test.png --divide=4
$ ffmpeg -r 10 -f image2 -i output/generated%d.png -s 512x512 -c:v libx264 -pix_fmt yuv420p video.mp4 -q:v 0 -q:a 0
(make a painting process video)
Wir bieten auch einige andere neuronale Renderer und Agenten an. Sie können sie anstelle von Renderer.pkl verwenden, um den Agenten auszubilden:
Triangle.pkl --- ACTOR_TRIANGE.PKL;
Round.pkl --- Actor_round.pkl;
BezierWotrans.pkl --- Actor_notrans.pkl
Wir bieten auch 百度网盘 Quelle. 链接: https://pan.baidu.com/s/1gelbqceyojpobziwgoknma 提取码: aq8n
Laden Sie den Celeba -Datensatz herunter und geben Sie die ausgerichteten Bilder in data/img_align_celeba/****** ein.
Um eine differenzierbare Gemäldeumgebung zu schaffen, müssen wir zunächst den neuronalen Renderer trainieren.
$ python3 baseline/train_renderer.py
$ tensorboard --logdir train_log --port=6006
(The training process will be shown at http://127.0.0.1:6006)
Nachdem der neuronale Renderer gut genug aussieht, können wir den Agenten ausbilden.
$ cd baseline
$ python3 train.py --max_step=40 --debug --batch_size=96
(A step contains 5 strokes in default.)
$ tensorboard --logdir train_log --port=6006
量子位报道
Malen lernen: 一个绘画 ai
旷视研究院推出基于深度强化学习的绘画智能体

Vielen Dank an CTMakro für die Inspiration für diese Arbeit. Er erkundete auch, dass er einen gierigen Algorithmus zur Generierung von Gemälden erstellt hat - opencv_playground.
Wenn Sie dieses Repository für Ihre Forschung nützlich finden, zitieren Sie bitte das folgende Papier:
@inproceedings{huang2019learning,
title={Learning to paint with model-based deep reinforcement learning},
author={Huang, Zhewei and Heng, Wen and Zhou, Shuchang},
booktitle={Proceedings of the IEEE International Conference on Computer Vision (ICCV)},
year={2019}
}