Zhewei Huang, Wen Heng, Shuchang Zhou
Mostramos cómo enseñar a las máquinas a pintar como pintores humanos, que pueden usar una pequeña cantidad de trazos para crear pinturas fantásticas. Al emplear un renderizador neuronal en el aprendizaje de refuerzo profundo basado en modelos (DRL), nuestros agentes aprenden a determinar la posición y el color de cada accidente cerebrovascular y hacer planes a largo plazo para descomponer las imágenes ricas en texturas en accidentes cerebrovasculares. Los experimentos demuestran que se pueden lograr excelentes efectos visuales utilizando cientos de accidentes cerebrovasculares. El proceso de capacitación no requiere la experiencia de los pintores humanos o los datos de seguimiento de accidente cerebrovascular.
Puede usar fácilmente Colaboratory para intentarlo.






pip3 install torch==1.1.0
pip3 install tensorboardX
pip3 install opencv-python
Asegúrese de que haya renderer.pkl y actor.pkl antes de la prueba.
Puede descargar un renderizador neural capacitado y un actor de Celeba para la prueba: renderer.pkl y 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)
También proporcionamos algunos otros renderizadores y agentes neuronales, puede usarlos en lugar de renderizador.pkl para capacitar al agente:
triangle.pkl --- actor_triangle.pkl;
ronda.pkl --- actor_round.pkl;
bezierwotrans.pkl --- actor_notrans.pkl
También proporcionamos 百度网盘 Fuente. 链接: https://pan.baidu.com/s/1gelbqceyojpobziwgoknma 提取码: aq8n
Descargue el conjunto de datos Celeba y coloque las imágenes alineadas en Data/IMG_ALIGN_CELEBA/******. JPG
Para crear un entorno de pintura diferenciable, necesitamos capacitar al renderizador neuronal en primer lugar.
$ python3 baseline/train_renderer.py
$ tensorboard --logdir train_log --port=6006
(The training process will be shown at http://127.0.0.1:6006)
Después de que el renderizador neural se ve lo suficientemente bueno, podemos comenzar a entrenar al agente.
$ 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
量子位报道
Aprendiendo a pintar: 一个绘画 ai
旷视研究院推出基于深度强化学习的绘画智能体

También muchas gracias a CTmakro por inspirar este trabajo. También exploró el uso de algoritmo codicioso para generar pinturas - OpenCV_Playground.
Si encuentra útil este repositorio para su investigación, cite el siguiente documento:
@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}
}