首页 > 其他分享 >gradio代码案例+效果图片

gradio代码案例+效果图片

时间:2024-01-11 14:14:56浏览次数:30  
标签:标签 gradio ram label 案例 image time import 代码

直接上代码:

import gradio as gr

import numpy as np
import torch
from PIL import Image
from ram.models import ram_plus
from ram import inference_ram as inference
from ram import get_transform
import time

# 加载模型
m_start = time.time()
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
transform = get_transform(image_size=384)
model = ram_plus(pretrained='pretrained/ram_plus_swin_large_14m.pth',
                 image_size=384,
                 vit='swin_l')
model.eval()
model = model.to(device)
m_end = time.time()
print('model load time:{}'.format(m_end-m_start))

# 用于生成随机颜色的函数
def random_color():
    return "#{:06x}".format(np.random.randint(0, 0xFFFFFF))

# Gradio的图像标签回调函数
def image_tagging(input_image):
    # 在这里添加你的图像标签生成代码
    # 这里使用一个示例,你可以替换为你的模型输出
    start = time.time()
    image = transform(input_image).unsqueeze(0).to(device)
    res = inference(image, model)
    labels = res[1].split(' | ')
    end = time.time()
    print('infer time:{}'.format(end-start))
    # labels = ["标签1", "标签2", "标签3"]
    # 生成HTML代码,使用Flexbox布局自适应排列
    label_html = '<div style="display: flex; flex-wrap: wrap;">'
    for label in labels:
        color = random_color()
        label_html += f'<div style="background-color: {color}; color: white; border-radius: 15px; padding: 10px; margin: 5px;">{label}</div>'

    label_html += '</div>'

    description_html = '<p style="font-size: 16px; color: #333;">这里是图片标签的输出结果</p>'

    return description_html+label_html
# Gradio界面配置
iface = gr.Interface(
    fn=image_tagging,
    inputs=gr.Image(type="pil", label="点击上传图片"),
    outputs=gr.HTML(label="此图片包含的标签为"),
    live=False,
    title="智能图像标签体验网页",
    description = "上传图片以后,点击submit按钮,即可提取图片中的各种标签,赶紧试试吧!"

)

# 启动Gradio界面
iface.launch(server_name="0.0.0.0",server_port=8089)

展示界面:

 

标签:标签,gradio,ram,label,案例,image,time,import,代码
From: https://www.cnblogs.com/chentiao/p/17958458

相关文章

  • 17-案例实战:教你快速搭建 Kubernete 监控平台
    Prometheus和Grafana可以说是Kubernetes监控解决方案中最知名的两个。Prometheus负责收集、存储、查询数据,而Grafana负责将Prometheus中的数据进行可视化展示,当然Grafana还支持其他平台,比如ElasticSearch、InfluxDB、Graphite等。CNCF博客也将这两者称为黄金组合,目......
  • 《PySpark大数据分析实战》-13.Spark on YARN模式代码运行流程
    ......
  • 广义物联网与AI大模型迷你版的应用与代码
    广义物联网(IoT)是指通过互联网连接各种物理设备,实现设备之间的信息交换和通信。AI大模型迷你版是指一个简化版的人工智能模型,用于处理和分析数据。在广义物联网与AI大模型迷你版的应用中,我们可以将物联网设备收集到的数据输入到AI大模型中进行分析和预测。以下是一个简单的示例,使用......
  • IntelliJ IDEA Debug模式下结束后继续执行代码问题
    1.默认的配置默认的Debug模式下点击Stop后会继续执行代码。2.设置不继续执行后续代码Preferences->Build,Execution,Deployment->Debugger找到Java那一栏下边可以看到Killthedebugprocessimmediately选项,勾选后点击确定就可以了。或是直接在设置搜索框里输入Kil......
  • 您好!您可以使用Python中的Pandas库来转换数据框为思维导图和流程图。以下是一些代码片
    您好!您可以使用Python中的Pandas库来转换数据框为思维导图和流程图。以下是一些代码片段,可帮助您开始:-要将数据框转换为思维导图,请使用`graphviz`库。您可以使用以下代码片段:```pythonfromgraphvizimportDigraphimportpandasaspddf=pd.DataFrame({'A':[1,2,3],'B......
  • 【NetApp数据恢复】NetApp存储误删除卷导致数据无法访问的数据恢复案例
    NetApp数据恢复环境:NetApp某型号存储,存储中有数十块SAS硬盘,该型号NetApp存储硬盘是扇区大小是520字节。存储中的lun都映射给小型机使用,存放Oracle数据库文件,采用ASM裸设备存储方式。NetApp存储故障:由于业务发展需要重新规划存储空间,工作人员直接将存储卷全部删除并重新分配。当......
  • Springboot 项目集成 PageOffice V6 最简单代码
    本文描述了PageOffice产品在Springboot项目中如何集成调用。(本示例使用了Thymeleaf模板引擎)新建Springboot项目:pageoffice6-springboot2-simple在您项目的pom.xml中通过下面的代码引入PageOffice依赖。pageoffice.jar已发布到Maven中央仓库(opensnewwindow),建议使用最新......
  • 彻底改变你的代码:JavaScript linter—Oxlint
    作为开发人员,总是在寻找能够简化工作流程并提高工作效率的工具。Oxlint是一个用Rust编写的JavaScriptlinter,现在提供了可以替代ESLint的新方案,其性能比ESLint提升了50-100倍。在本文中,将学习如何将Oxlint集成到开发流程中,充分利用其速度和效率。了解OxlintOxc(TheO......
  • 【APP逆向03】反编译后代码定位
    需求:抓包某款APP的登录请求,定位到密码加密的逻辑1.通过抓包分析,password被加密了2.反编译定位位置URL网址或参数关键字pwd"pwd"put("pwd等关键字搜索3.双击,跳转4.右击,查找用例5.右击--查找声明6.此处就是密码的加密逻辑,简单的md5,使用python复现imp......
  • WhatsApp自动点赞工具开发代码分享!
    在数字时代的浪潮下,社交媒体成为了人们日常生活中不可或缺的一部分,而在众多社交媒体平台中,WhatsApp以其强大的通讯功能和简洁的设计,成为了全球范围内的热门选择。不少开发者看到了商机,开发出各种辅助工具,其中尤以自动点赞工具最为受欢迎,本文将为你揭示如何开发一款简单的WhatsApp自......