Hello! 这里是GIS宇宙,最近在填坑。
前段时间看到一些玩摄影的朋友们用Dream这款软件创作了不少有意思的图片,什么莫奈风格的图像啦,所以就想着复刻一下,顺便使用最近发现的一款强大的Python构建应用的库来做,从构建到发布大概半小时不到吧(绝对不是标题党!)。
本次代码都是在云端上进行,所以没有设备的同学也可以尝试哦,从构建自己的代码到发布到网站,不需要掌握服务器相关知识轻轻松松做网页。
1 基本步骤 首先在Colab写好代码然后在huggingface发布网站访问网站是不是听起来很简单呢?好的本期就到这里了,我们下期再见~
言归正传,先来介绍一下今天的主角:gradio。gradio这个库很方便,首先开源,其次提供了很多丰富的组件,直接无脑使用就完事了,案例如下:
import gradio as gr
def sketch_recognition(img):
iface = gr.Interface(
fn=sketch_recognition,
inputs="sketchpad",
outputs="label"
).launch()
定义了一个处理函数,然后定义一下你的输入组件,输出组件,最后一起传给gr的interface就行,然后你会得到下面的效果:
2 Colab写代码Colab是一个结合谷歌网盘的服务器,你可以把自己的代码上传到这里运行,它自带GPU和空间,就当做自己的电脑使用,编译代码采用的是Jupyter Notebook的形式,
注意就是有些库是没有需要自己安装一下,不过Tesorflow是有的,所以不需要自己配环境,就很爽。
安装命令:!pip install xxx
本次的图像风格迁移我没有自己构建模型,而是用了别人的,毕竟要半小时嘛,能省时间就省时间(狗头)。
首先简单定义一个函数,首先我们会获取两张图片,一张作为提取风格的,一张用作变成这一风格的,然后用TFhub里面的模型预测一下,然后返回即可。
def sepia(input_path,input_path2):
input_img = load_img(input_path)
input_img2 = load_img(input_path2)
hub_model = hub.load('https://tfhub.dev/google/magenta/arbitrary-image-stylization-v1-256/2')
stylized_image = hub_model(tf.constant(input_img), tf.constant(input_img2))[0]
pre_img = tensor_to_image(stylized_image)
return pre_img
可视化界面
然后把前面定义好的函数传给gr.Interface,第一个是函数,第二个是案例,可以给一下例子,然后title是你的标题,input因为有两个参数所以用一个列表传入两个图片组件,output我们也选择图片的组件就行。这样就搞定了。
demo = gr.Interface(
sepia,examples=[[demo_path,demo_path2],],
title="上传两个图片,将图片转成另一图片风格",
inputs=[gr.inputs.Image(label="待转换图片",type="filepath"),gr.inputs.Image(label="风格图片",type="filepath")],
outputs=gr.outputs.Image(type="auto", label="输出"),theme="dark-seafoam"
)
写代码算它15分钟吧,还剩15分钟部署一下代码
来到https://huggingface.co/
创建一个仓库,就和Github一个调调啦,记得选择Gradio:
然后来到我们的仓库(或者美名其曰Space)上传一下我们的Notebook,在Colab文件里导出成py文件,记得改名为app.py,或者你自己创建一个py文件复制代码也可。
上传完后,我们新建一个requirements.txt文件:
这里写着我们的代码需要的库,因为人家服务器是没有这些库的,需要装一下。
之后它就会自动Building啦,看到running就是可以成功访问了
访问连接
今天就分享这么多吧,感兴趣大家都可以试试,还是比较有意思的,具体的模型原理下来我再好好学习学习,这里是GIS宇宙,我们下期再见!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)