Gradio库中的Model3D模块:实时上传和展示3D模型

news2024/9/20 22:32:29

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

博主原文链接:https://www.yourmetaverse.cn/nlp/409/

请添加图片描述

(封面图由文心一格生成)

Gradio库中的Model3D模块:实时上传和展示3D模型

Gradio是一个功能强大的Python库,用于构建用户界面,特别适用于机器学习和深度学习任务。它提供了多种组件和模块,使开发人员能够轻松创建交互式界面,并与模型进行实时交互。其中一个引人注目的模块是Model3D,它提供了一种简单的方法来上传和展示3D模型。本文将介绍Gradio库中的Model3D模块以及其change、edit、clear和upload方法的使用。

Gradio的Model3D模块是一个用于上传和展示3D模型文件的组件。通过该组件,用户可以上传包含3D模型的文件,如.obj、.glb或.gltf文件,并在界面上实时查看和交互。下面是Model3D模块的示例代码:

import gradio as gr
import os


def load_mesh(mesh_file_name):
    return mesh_file_name


demo = gr.Interface(
    fn=load_mesh,
    inputs=gr.Model3D(),
    outputs=gr.Model3D(
            clear_color=[0.0, 0.0, 0.0, 0.0],  label="3D Model"),
    examples=[
        [os.path.join(os.path.dirname(__file__), "files/Bunny.obj")],
        [os.path.join(os.path.dirname(__file__), "files/Duck.glb")],
        [os.path.join(os.path.dirname(__file__), "files/Fox.gltf")],
        [os.path.join(os.path.dirname(__file__), "files/face.obj")],
    ],
)

if __name__ == "__main__":
    demo.launch()

上述代码创建了一个Gradio界面,其中包含一个Model3D组件,用于上传和展示3D模型文件。load_mesh函数是一个示例函数,用于处理上传的模型文件,并返回模型文件的路径。在界面的示例部分,提供了一些示例模型文件的路径,用户可以点击示例以查看相应的3D模型。

Model3D模块具有以下方法:

  1. change(fn, inputs=None, outputs=None, ...):当组件的值发生变化时触发的方法。可以用于在Gradio Blocks中使用。参数fn是一个函数,代表处理模型预测的函数。inputsoutputs分别指定输入和输出组件。

  2. edit(fn, inputs=None, outputs=None, ...):当用户使用内置编辑器编辑组件(如图片)时触发的方法。可以用于在Gradio Blocks中使用。参数和用法与change方法相似。

  3. clear(fn, inputs=None, outputs=None, ...):当用户点击组件的清除按钮(如图片或音频的X按钮)时触发的方法。可以用于在Gradio Blocks中使用。参数和用法与change方法相似。

  4. upload(fn, inputs=None, outputs=None, ...):当用户上传文件到组件时触发的方法。可以用于在Gradio Blocks中使用。参数和用法与change方法相似。

这些方法提供了灵活的方式来响应用户与Model3D组件的交互,可以根据具体需求编写对应的处理函数。

Gradio库中的Model3D模块为开发人员提供了一种简单的方法来上传和展示3D模型。通过该模块,用户可以实时查看和交互3D模型文件。使用change、edit、clear和upload等方法,可以自定义对用户交互的响应行为,从而实现更丰富的功能。Gradio的Model3D模块为构建交互式的机器学习应用提供了强大的工具。

参数详解

Model3D模块的参数

参数数据类型默认值描述
valuestr/Callable/NoneNone要显示在模型3D视图器中的文件(.obj、.glb或.gltf)的路径。如果是可调用对象,则在应用程序加载时调用该函数以设置组件的初始值。
clear_colorlist[float]/NoneNone场景的背景颜色。
labelstr/NoneNone组件在界面中的名称。
everyfloat/NoneNone如果value是可调用对象,则在客户端连接开启时每隔“every”秒运行一次该函数。
show_labelboolTrue如果为True,则显示标签。
containerboolTrue如果为True,则将组件放置在容器中,提供一些额外的边框填充。
scaleint/NoneNone相对于相邻组件在一行中的宽度比例。例如,如果组件A的scale=2,组件B的scale=1,则A的宽度是B的两倍。应为整数。
min_widthint160最小像素宽度,如果屏幕空间不足以满足此值,则换行。如果某个比例值导致该组件宽度小于min_width,则首先尊重min_width参数。
visibleboolTrue如果为False,则隐藏组件。
elem_idstr/NoneNone可选的字符串,用作此组件在HTML DOM中的id。可用于针对CSS样式进行定位。
elem_classeslist[str]/str/NoneNone可选的字符串列表,用作此组件在HTML DOM中的类。可用于针对CSS样式进行定位。

change方法参数

参数数据类型默认值描述
fnCallable/None必填要封装接口的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,并且函数应该返回一个值或一个值的元组,元组中的每个元素对应一个输出组件。
inputsComponent/list[Component]/set[Component]/NoneNone要用作输入的Gradio组件列表。如果函数不接受输入,则应为空列表。
outputsComponent/list[Component]/NoneNone要用作输出的Gradio组件列表。如果函数不返回输出,则应为空列表。
api_namestr/NoneNone定义此参数可将端点暴露在API文档中。
status_trackerNoneNone无效。
scroll_to_outputboolFalse如果为True,在完成时将滚动到输出组件。
show_progress‘full’/‘minimal’/‘hidden’‘full’如果为True,在等待期间显示进度动画。
queuebool/NoneNone如果为True,则将请求放入队列中(如果队列已启用)。如果为False,则不会将此事件放入队列中,即使队列已启用。如果为None,则使用Gradio应用程序的队列设置。
batchboolFalse如果为True,则函数应该处理一批输入,这意味着它应该接受每个参数的输入值列表。列表应该长度相等(并且最多为max_batch_size的长度)。然后,该函数必须返回一个元组列表(即使只有1个输出组件),其中元组中的每个列表对应一个输出组件。
max_batch_sizeint4如果从队列调用此方法,则最多将一起批处理的输入数量。仅当batch=True时才相关。
preprocessboolTrue如果为False,则在运行“fn”之前不会运行组件数据的预处理(例如,如果使用“Image”组件调用此方法,则将其保留为base64字符串)。
postprocessboolTrue如果为False,则在将’fn’的输出返回给浏览器之前不会运行组件数据的后处理。
cancelsdict[str, Any]/list[dict[str, Any]]/NoneNone在此侦听器触发时取消其他事件的列表。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。
everyfloat/NoneNone在客户端连接开启时每隔“every”秒运行此事件。以秒为单位解释。队列必须已启用。

edit方法参数

参数数据类型默认值描述
fnCallable/None必填要封装接口的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,并且函数应该返回一个值或一个值的元组,元组中的每个元素对应一个输出组件。
inputsComponent/list[Component]/set[Component]/NoneNone要用作输入的Gradio组件列表。如果函数不接受输入,则应为空列表。
outputsComponent/list[Component]/NoneNone要用作输出的Gradio组件列表。如果函数不返回输出,则应为空列表。
api_namestr/NoneNone定义此参数可将端点暴露在API文档中。
status_trackerNoneNone无效。
scroll_to_outputboolFalse如果为True,在完成时将滚动到输出组件。
show_progress‘full’/‘minimal’/‘hidden’‘full’如果为True,在等待期间显示进度动画。
queuebool/NoneNone如果为True,则将请求放入队列中(如果队列已启用)。如果为False,则不会将此事件放入队列中,即使队列已启用。如果为None,则使用Gradio应用程序的队列设置。
batchboolFalse如果为True,则函数应该处理一批输入,这意味着它应该接受每个参数的输入值列表。列表应该长度相等(并且最多为max_batch_size的长度)。然后,该函数必须返回一个元组列表(即使只有1个输出组件),其中元组中的每个列表对应一个输出组件。
max_batch_sizeint4如果从队列调用此方法,则最多将一起批处理的输入数量。仅当batch=True时才相关。
preprocessboolTrue如果为False,则在运行“fn”之前不会运行组件数据的预处理(例如,如果使用“Image”组件调用此方法,则将其保留为base64字符串)。
postprocessboolTrue如果为False,则在将’fn’的输出返回给浏览器之前不会运行组件数据的后处理。
cancelsdict[str, Any]/list[dict[str, Any]]/NoneNone在此侦听器触发时取消其他事件的列表。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。
everyfloat/NoneNone在客户端连接开启时每隔“every”秒运行此事件。以秒为单位解释。队列必须已启用。

clear方法参数

参数数据类型默认值描述
fnCallable/None必填要封装接口的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,并且函数应该返回一个值或一个值的元组,元组中的每个元素对应一个输出组件。
inputsComponent/list[Component]/set[Component]/NoneNone要用作输入的Gradio组件列表。如果函数不接受输入,则应为空列表。
outputsComponent/list[Component]/NoneNone要用作输出的Gradio组件列表。如果函数不返回输出,则应为空列表。
api_namestr/NoneNone定义此参数可将端点暴露在API文档中。
status_trackerNoneNone无效。
scroll_to_outputboolFalse如果为True,在完成时将滚动到输出组件。
show_progress‘full’/‘minimal’/‘hidden’‘full’如果为True,在等待期间显示进度动画。
queuebool/NoneNone如果为True,则将请求放入队列中(如果队列已启用)。如果为False,则不会将此事件放入队列中,即使队列已启用。如果为None,则使用Gradio应用程序的队列设置。
batchboolFalse如果为True,则函数应该处理一批输入,这意味着它应该接受每个参数的输入值列表。列表应该长度相等(并且最多为max_batch_size的长度)。然后,该函数必须返回一个元组列表(即使只有1个输出组件),其中元组中的每个列表对应一个输出组件。
max_batch_sizeint4如果从队列调用此方法,则最多将一起批处理的输入数量。仅当batch=True时才相关。
preprocessboolTrue如果为False,则在运行“fn”之前不会运行组件数据的预处理(例如,如果使用“Image”组件调用此方法,则将其保留为base64字符串)。
postprocessboolTrue如果为False,则在将’fn’的输出返回给浏览器之前不会运行组件数据的后处理。
cancelsdict[str, Any]/list[dict[str, Any]]/NoneNone在此侦听器触发时取消其他事件的列表。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。
everyfloat/NoneNone在客户端连接开启时每隔“every”秒运行此事件。以秒为单位解释。队列必须已启用。

upload方法参数

参数数据类型默认值描述
fnCallable/None必填要封装接口的函数,通常是机器学习模型的预测函数。函数的每个参数对应一个输入组件,并且函数应该返回一个值或一个值的元组,元组中的每个元素对应一个输出组件。
inputsComponent/list[Component]/set[Component]/NoneNone要用作输入的Gradio组件列表。如果函数不接受输入,则应为空列表。
outputsComponent/list[Component]/NoneNone要用作输出的Gradio组件列表。如果函数不返回输出,则应为空列表。
api_namestr/NoneNone定义此参数可将端点暴露在API文档中。
status_trackerNoneNone无效。
scroll_to_outputboolFalse如果为True,在完成时将滚动到输出组件。
show_progress‘full’/‘minimal’/‘hidden’‘full’如果为True,在等待期间显示进度动画。
queuebool/NoneNone如果为True,则将请求放入队列中(如果队列已启用)。如果为False,则不会将此事件放入队列中,即使队列已启用。如果为None,则使用Gradio应用程序的队列设置。
batchboolFalse如果为True,则函数应该处理一批输入,这意味着它应该接受每个参数的输入值列表。列表应该长度相等(并且最多为max_batch_size的长度)。然后,该函数必须返回一个元组列表(即使只有1个输出组件),其中元组中的每个列表对应一个输出组件。
max_batch_sizeint4如果从队列调用此方法,则最多将一起批处理的输入数量。仅当batch=True时才相关。
preprocessboolTrue如果为False,则在运行“fn”之前不会运行组件数据的预处理(例如,如果使用“Image”组件调用此方法,则将其保留为base64字符串)。
postprocessboolTrue如果为False,则在将’fn’的输出返回给浏览器之前不会运行组件数据的后处理。
cancelsdict[str, Any]/list[dict[str, Any]]/NoneNone在此侦听器触发时取消其他事件的列表。例如,设置cancels=[click_event]将取消click_event,其中click_event是另一个组件的.click方法的返回值。尚未运行的函数(或正在迭代的生成器)将被取消,但当前正在运行的函数将被允许完成。
everyfloat/NoneNone在客户端连接开启时每隔“every”秒运行此事件。以秒为单位解释。队列必须已启用。

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️

👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/729435.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

F#奇妙游(9):来一点点画图

F#绘图 如果Python没有Matplotlib,R没有ggplot,Matplab没有plot函数……就像阿珍爱上了阿强,能画图的脚本才是好脚本。当然,F#有画图包,但是F#在数据处理中的地位就像下面,这也是我们没办法的。 ScottPl…

分析openGauss包内集合类型的实现方法

前言 Oracle中集合类型覆盖了Postgresql数组的功能,在Oracle用户中时非常常用的。 尤其是包内定义的集合类型,在SPEC定义后即可直接使用,scope也只在包在生效,使用非常灵活。 开源PG因为有数组没有实现这部分语法,下…

超级广场效果的耳机放大器音响电路设计

用头戴式耳机,尤其是小型耳机听音乐,总感到音乐味不够足,在低频段的效果更差。因此用本机增强耳机的低频特性,并采用立体声反相合成的办法,加上内藏简易矩阵环绕声电路,能获得强劲的低音和在较宽的范围内展…

Windows mingw64 最简易 安装配置

其实挺简单一件事 很多教程都搞复杂了 自己写一个 只需要两步 1. 下载压缩包并解压 2. 配置环境变量 (1). GitHub 下载地址 Releases niXman/mingw-builds-binaries GitHub 如果GitHub下载太慢可以来这里加速 或者用地址2 GitHub Proxy 代理加速 (ghproxy.com) (2). 下…

-Xss1m / -XX:ThreadStackSize=512k

-Xss / -XX:ThreadStackSize指定线程最大栈空间jdk1.4里默认的栈大小是256KBjdk1.5里默认的栈大小为1M配置JVM启动参数:-Xmx20m -Xms20m -Xss1m -XX:PrintCommandLineFlags-XX:ConcGCThreads3 -XX:G1ConcRefinementThreads13 -XX:GCDrainStackTargetSize64 -XX:Init…

学习grpc

Grpc简介: gRPC是一个高性能、通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers)序列化协议开发,且支持众多开发语言,能够基于语言自动生成客户端和服务端…

软负载Nginx详细配置及使用案例

Nginx使用与配置 什么是nginx Nginx 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。 处理响应请求很快高并发连接低的内存消耗具有很高的可靠性高扩展性热部署 master 管理进程与 worker 工作进程的分离设计,使得 Nginx 具有热部署的…

Quartz表达式在线生成器

Quartz Cron表达式生成器 - devTest.run Quartz是一款高效的定时任务调度框架,由于其稳定性,高可用性和灵活性,Quartz已成为Java企业级开发中应用最为广泛的定时任务调度框架之一。 Quartz的主要特点包括:可配置的作业触发器&…

学C的第二十五天【指针的进阶】

相关代码gitee自取:C语言学习日记: 加油努力 (gitee.com) 接上期: 学C的第二十四天【练习:1. 打印菱形;2. 打印自幂数;3. 求Snaaa..n项之和;4. 喝汽水问题;5. 调整数组使奇数位于偶数前面&…

第三章——处理数据

面向对象编程(OOP)的本质是设计并扩展自己的数据类型。设计自己的数据类型就是让类型与数据匹配。在创建自己的类型之前必须先了解C内置的类型。 内置的C类型分为两组:基本类型和复合类型 简单变量 程序通常都需要存储信息,为把…

git commit history导出

git log --after"2022-1-1" --dateshort --prettyformat:"%H","%an","%ae","%ad","%s" --shortstat --no-merges再简洁一点 git log --after"2022-4-1" --dateshort --prettyformat:%H,%an,%ae,%ad,%…

Network Neuroscience:整个生命周期的功能连接体指纹

导读 随着年龄的增长,人脑功能结构发生了系统性的变化。然而,功能连接(FC)作为一种检测独特“连接体指纹”的强大特征,使个体能够在同龄人中被识别出来。虽然已在年轻人样本中观察到这种指纹,但该方法在整个生命周期内的可靠性尚…

ACL 2023|大模型时代,自然语言领域还有什么学术增长点?

国际计算语言学年会(Annual Meeting of the Association for Computational Linguistics,简称 ACL)是自然语言处理(NLP)领域的顶级国际会议,ACL 2023 将于2023年7月9-14日在加拿大多伦多举行。随着人工智能…

电脑高手的选择:为何只需一款杀毒软件?

对于电脑高手来说,保护计算机免受恶意软件和病毒的侵害至关重要。然而,有些人可能认为安装多个杀毒软件能够提供更优质的防护能力。但事实上,电脑高手通常只选择安装一款杀毒软件,这其中包含着一定的原因和考虑。本文将探讨为什么…

Java版本企业电子招投标采购系统源码功能模块功能描述+数字化采购管理 采购招投标

功能模块: 待办消息,招标公告,中标公告,信息发布 描述: 全过程数字化采购管理,打造从供应商管理到采购招投标、采购合同、采购执行的全过程数字化管理。通供应商门户具备内外协同的能力,为外部…

基于Python+MySQL所写的医院管理系统

点击以下链接获取源码资源: https://download.csdn.net/download/qq_64505944/87985429?spm1001.2014.3001.5503 目录 摘要 I 1 需求分析 1 1.1 任务描述 1 1.2 需求分析的过程 1 1.3 业务需求 2 1.4 功能描述 2 2 总体设计 3 2.1 系统开发环境 3 2.2 系统功能流…

【云原生】Pod 的生命周期

Pod 的生命周期 本文讲解的是 Kubernetes 中 Pod 的生命周期,包括生命周期的不同阶段、存活和就绪探针、重启策略等。 Pod phase Pod 的 status 字段是一个 PodStatus 对象,PodStatus中有一个 phase 字段。 Pod 的相位(phase)…

DOM事件机制(事件流、事件委托、事件类型)以及BOM

HTML DOM 允许 JavaScript 对 HTML 事件作出反应。JavaScript 能够在事件发生时执行,比如当用户点击某个 HTML 元素时。 JavaScript与HTML之间的交互是通过事件实现的。事件就是文档或浏览器窗口中发生的一些特定的交互瞬间。 虽然 ECMAScript 把浏览器对象模型&…

【面试题28】什么是PHP-FPM?它与PHP和Nginx有什么关系

文章目录 一、前言二、什么是PHP-FPM?三、PHP-FPM的生命周期3.1 启动阶段3.2 初始化阶段3.3 请求处理阶段3.4 关闭阶段 四、PHP-FPM与PHP的关系五、PHP-FPM与Nginx的通信方式六、总结 一、前言 本文已收录于PHP全栈系列专栏:PHP面试专区。 计划将全覆盖P…