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

这篇具有很好参考价值的文章主要介绍了Gradio库中的Model3D模块:实时上传和展示3D模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


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

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

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

Gradio库中的Model3D模块:实时上传和展示3D模型,Gradio库详解,gradio,模型部署,python,自然语言处理,人工智能

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

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模块的参数

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

change方法参数

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

edit方法参数

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

clear方法参数

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

upload方法参数文章来源地址https://www.toymoban.com/news/detail-535215.html

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

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

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

到了这里,关于Gradio库中的Model3D模块:实时上传和展示3D模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 学习PCL库:PCL库中surface模块

    公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com。未经作者允许请勿转载,欢迎各位同学积极分享和交流。 surface模块介绍 PCL库中的surface模块提供了各种表面重建和拟合算法,根据任务的不同包含

    2024年01月22日
    浏览(27)
  • diffusers库中stable Diffusion模块的解析

    diffusers中,stable Diffusion v1.5主要由以下几个部分组成 下面给出具体的结构说明。 “text_encoder block” “vae block” “unet block” “feature extractor block” “tokenizer block” “safety_checker block” “scheduler block”

    2024年02月03日
    浏览(28)
  • GoJS库中所有的主要模块及其概念整理

    最近在学习Gojs库,一些学习总结如下: Diagram:该模块定义了用于呈现一个可视化图表的主要组件,以及用于控制图表样式和交互的属性和方法。 Model:该模块定义了模型元素(节点和连线)的属性和数据,以及管理和保存模型状态的方法和事件。 Part:该模块定义了所有可见的

    2024年02月04日
    浏览(25)
  • 【Unity】实用功能开发(一)实现在UI中用RawImage实时展示3D模型(背景透明,并通过UI防止3D场景遮挡)并可以通过分层完成:游戏中的人物状态展示界面,小地图,人物实时头像状态等功能

    有时由于项目效果需要,部分功能的实现受到阻碍,这里收集一些已实现的思路和方法,每次会记录大致需求和遇到的问题,如果有更好的想法,欢迎评论区讨论!!! 目录 功能描述: 需求描述: 实现步骤: ①为需要展示的内容区分层级: ②在场景中添加一个摄像机,并

    2024年02月04日
    浏览(35)
  • gradio使用transformer模块demo介绍2:Images & Computer Vision

    图像分类 Image Classification

    2024年02月11日
    浏览(26)
  • 使用Gradio库进行交互式数据可视化:Timeseries模块介绍

    ❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博相关......)👈 博主原文链接:https://www.yourmetaverse.cn/nlp/439/ (封面图由文心一格生成) 在

    2024年02月13日
    浏览(36)
  • 我的框架-Unity3d中的用户数据储存模块UserDB

    前言:         我们在开发一些小游戏的时候,不可能将所有的数据都上传到服务器里去储存,有很多数据是需要储存到用户本地的。比如一些简单的用户设置,一些只需要打开一次的用户提示记录等等。当所需储存的数据比较少的时候,我们可以直接用 PlayerPrefs.SetString 直

    2023年04月14日
    浏览(30)
  • gradio使用transformer模块demo介绍1:Text & Natural Language Processing

    文本生成 Text Generation

    2024年02月10日
    浏览(44)
  • C++STL库中的list

    文章目录 list的介绍及使用 list的常用接口 list的模拟实现 list与vector的对比 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。 2. list的底层是双向带头循环链表结构,双向带头循环链表中每个元素存储在互不相关的独立节点中

    2024年02月15日
    浏览(23)
  • Eigen库中的Identity()函数作用

    今天学习Eigen库,看到示例代码中有这样一行: Matrix3d: Eigen库中typedef的数据类型,即“3*3矩阵(d表示矩阵内部数据类型为double类型)” rotation_matrix: 该3*3矩阵的变量名 Matrix3d::Identity() :在定义该矩阵变量时,创建一个同尺寸同数据类型的 单位阵 ,对其初始化。

    2024年02月11日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包