欢迎来到 安卓源码空间!
安卓源码空间

                      机器学习根据文字生成图片教程(附python代码)



背景


其实在过往我们生活的世界里,当人们需要获取信息的时候,更多地强调的是信息的检索和遍历,意味着去已经存在的物品中找到自己合适的。在我看来这是一种很低级的生活形态,比如我的意识中有一个某种图案的杯子,想要它,只能打开淘宝根据标签去找已经设计好的款式有没有相近的,而不能直接根据我的想法自动生成一个我需要的杯子。


又比如,我想要一张猫正在喝水的照片,只能去搜索引擎里去根据关键词搜索已经存在的猫喝水的照片,而不是自动生成一张符合我要求的照片。随着人工智能的升级,这种低级的信息获取方式一定会淘汰。


今天就介绍一种深度学习方法,如何根据文字自动生成图片。先来看下效果:


输入文本:

sky is above the grass, man standing on the grass

生成的图片,是不是有点神奇:

 
这里写图片描述


详细流程


关于具体的算法细节可以看下这个论文:“Image Generation from Scene Graphs”


1.下载代码



代码可以在Github找到: https://github.com/google/sg2im?utm_source=mybridge&utm_medium=blog&utm_campaign=read_more


需要把sgim文件夹复制到scripts文件夹下面:


 
这里写图片描述


2.安装需要的第三方库


建议用python3以上版本,在文件夹下执行

 

sudo pip3 install -r requirements.txt


3.下载模型


首先自行安装好wget,然后在代码目录下执行:

 

bash scripts/download_models.sh


4.创建图片


首先,要先自己搞个描述脚本,这个脚本需要描述生成图片中的对象以及对象间的位置关系。比如以下脚本(看过《机器学习实践应用》的同学是不是会眼熟,有点像里面知识图谱的内容):

 

[
{
"objects": ["car", "street", "line", "sky"],
"relationships": [
[0, "on", 1],
[2, "on", 1],
[3, "above", 1]
]
}
]

 

描述的是car在street的上面,line在street的上面,sky也在street上面。然后在代码的根目录下执行以下代码(代码中的括号内容是注释,执行前需要去掉):

 

python3 scripts/run_model.py(预测脚本) --checkpoint sg2im-models/vg128.pt(下载好的模型所在地址) --scene_graphs aohai.json(上面写的脚本) --output_dir outputs(图片输出路径)


最终生成的图片效果:


这里写图片描述


总结


是不是很好玩,可以自己任意添加描述脚本,生成自己想要的图片,是不是非常酷。目前来看像素还比较低,希望以后该项目可以继续更新,可以生成更多高清大图。



————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/buptgshengod/article/details/82427258

copyright@ 2020-2028  安卓源码空间网版权所有   

备案号:豫ICP备2023034476号-1号