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


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

👉有问题欢迎大家加关注私戳或者评论(包括但不限于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 osdef load_mesh(mesh_file_name):return mesh_file_namedemo = 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.hqwc.cn/news/14798.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何与ChatGPT愉快地聊天

原文链接:https://mp.weixin.qq.com/s/ui-O4CnT_W51_zqW4krtcQ 人工智能的发展已经走到了一个新的阶段,在这个阶段,人工智能可以像人一样与我们进行深度的文本交互。其中,OpenAI的ChatGPT是一个具有代表性的模型。然而&#xff0…

chatGPT之100个例子-从体验到精通

简介 本博文演示了100个chatGPT在各行各业的使用例子,全部看完有助于培养chatGPT解决问题的思维。 在人工智能时代,智能软件并不会淘汰人类,淘汰人类的是会使用人工智能的人! 我们直接使用openAI官方chatGPT,生动演示了chatGPT的一些妙用! 请仔细看完,一定会有收获! 每…

构建工具——webpack、vite

文章目录 构建工具Webpack使用步骤配置文件(webpack.config.js)插件(plugin) ViteVite 也是前端的构建工具使用命令构建配置文件:vite.config.js 构建工具 当我们习惯了在 node 中编写代码的方式后,在回到…

Jenkins 配置用户角色和权限

1、配置条件: 1)已安装Jenkins,当前案例使用版本:2.319.3 2)已成功进入Jenkins,并新建用户:dev_java 2、安装插件【系统管理-插件管理-搜索-可选插件】:Role-based Authoriz…

多元分类预测 | Matlab基于麻雀算法优化深度置信网络(SSA-DBN)的分类预测,多特征输入模型,SSA-DBN分类预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元分类预测 | Matlab基于麻雀算法优化深度置信网络(SSA-DBN)的分类预测,多特征输入模型,SSA-DBN分类预测 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab,程…

【计算机视觉 | 目标检测 | 图像分割】arxiv 计算机视觉关于目标检测和图像分割的学术速递(7 月 7 日论文合集)

文章目录 一、检测相关(5篇)1.1 Contextual Affinity Distillation for Image Anomaly Detection1.2 Noise-to-Norm Reconstruction for Industrial Anomaly Detection and Localization1.3 MMNet: Multi-Collaboration and Multi-Supervision Network for Sequential Deepfake…

深度学习笔记之Transformer(四)铺垫:LayerNormalization

深度学习笔记之Transformer——LayerNormalization 引言回顾:批标准化问题描述问题处理 层标准化批标准化无法处理的问题 引言 在介绍 Transformer \text{Transformer} Transformer模型架构之前,首先介绍 Transformer \text{Transformer} Transformer的…

YOLOV5-Lite轻量化部署与训练

文章目录 前言项目下载项目运行自定义数据集训练使用LabelImg标注制作数据集划分训练文件生成标签聚合操作辅助脚本需要运行的脚本 开始训练 总结 前言 没啥意思,很简单,需要实现一个目标检测,但是,不能占用太多运算资源&#xf…

【javaEE面试题(六)wait 和 sleep 的对比(面试题)】

7.4 wait 和 sleep 的对比(面试题) 其实理论上 wait 和 sleep 完全是没有可比性的,因为一个是用于线程之间的通信的,一个是让线程阻塞一段时间, 唯一的相同点就是都可以让线程放弃执行一段时间 当然为了面试的目的&…

二、C语言算法题期末题

一、枚举题 1、用1元5角人民币兑换5分、2分、1分的硬币&#xff08;每种都要有&#xff09;共100枚&#xff0c;有多少种方案,每种方案的具体情况? #include<stdio.h> int main(){int money150; //1元5角等于150分int count0; //记录数量for(int i1;i<99;i){ …

计算机通信地址【图解TCP/IP(笔记六)】

文章目录 地址地址的唯一性地址的层次性 地址 通信传输中&#xff0c;发送端和接收端可以被视为通信主体。它们都能由一个所谓“地址”的信息加以标识出来。当人们使用电话时&#xff0c;电话号码就相当于“地址”。当人们选择写信时&#xff0c;通信地址加上姓名就相当于“地…

cmake include命令

目录 cmake include命令 CMAKE_CURRENT_LIST_DIR: CMAKE_CURRENT_LIST_FILE: CMAKE_CUEERNT_LIST_LINE: demo top CMakeLists.txt test.cmake subDir下的 CMakeLists.txt 结果: cmake include命令 include()命令也是将一个新的cmake内容引入当前cmake内容中. 格式: …