Zhewei Huang, Wen Heng, Shuchang Zhou
Nous montrons comment enseigner aux machines à peindre comme des peintres humains, qui peuvent utiliser un petit nombre de coups pour créer des peintures fantastiques. En utilisant un rendu neuronal dans l'apprentissage en renforcement profond basé sur des modèles (DRL), nos agents apprennent à déterminer la position et la couleur de chaque AVC et à faire des plans à long terme pour décomposer des images riches en texture en coups. Les expériences démontrent que d'excellents effets visuels peuvent être obtenus en utilisant des centaines d'accidents vasculaires cérébraux. Le processus de formation ne nécessite pas l'expérience des peintres humains ou des données de suivi des AVC.
Vous pouvez facilement utiliser le colaboratoire pour essayer.






pip3 install torch==1.1.0
pip3 install tensorboardX
pip3 install opencv-python
Assurez-vous qu'il existe Renderer.pkl et Actor.pkl avant les tests.
Vous pouvez télécharger un rendu neuronal qualifié et un acteur Celeba pour le test: renderer.pkl et acteur.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)
Nous fournissons également d'autres rendements et agents neuronaux, vous pouvez les utiliser au lieu de rendu.pkl pour former l'agent:
triangle.pkl --- actor_trianggle.pkl;
round.pkl --- actor_round.pkl;
bezierwotrans.pkl --- actor_notrans.pkl
Nous fournissons également 百度网盘 Source. 链接: https://pan.baidu.com/s/1gelbqceyojpobziwgoknma 提取码: aq8n
Téléchargez l'ensemble de données Celeba et mettez les images alignées dans Data / IMG_align_celeba / ******. JPG
Pour créer un environnement de peinture différenciable, nous devons d'abord entraîner le rendu neuronal.
$ python3 baseline/train_renderer.py
$ tensorboard --logdir train_log --port=6006
(The training process will be shown at http://127.0.0.1:6006)
Une fois que le rendu neuronal a l'air assez bon, nous pouvons commencer à former l'agent.
$ 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
量子位报道
Apprendre à peindre : 一个绘画 AI
旷视研究院推出基于深度强化学习的绘画智能体

Un grand merci également à CTMAKRO d'avoir inspiré ce travail. Il a également exploré en utilisant un algorithme gourmand pour générer des peintures - OpenCV_Playground.
Si vous trouvez ce référentiel utile pour vos recherches, veuillez citer l'article suivant:
@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}
}