OpenAI再出新作,AIGC时代,3D建模师的饭碗危险了!

大家好,我是千与千寻,也可以叫我千寻哥,说起来,自从ChatGPT发布之后,我就开始焦虑,担心自己程序员的饭碗会不会哪天就被AIGC取代了。

有人说我是过度焦虑了,但是我总觉有点危机感肯定没有坏处。(结尾反转,hhh,希望你看下去!)

不过好家伙,还没等AIGC大模型完全替代程序员,我发现AIGC大模型又开始抢三维建模行业从业者的饭碗了…

OpenAI公司有整新活了,发布了模型应用shape-E,这个模型能干什么呢?千寻先卖个关子!先给大家介绍一种职业,3D建模师。

3D建模师,这个职业的工作内容是什么呢?

3D建模师,在工业界和游戏界里面的需求最多。通俗来说,就是将二维平面的人物形象进行三维建模的转换。啊这?说人话!我们直接用一个例子说明:

《哆啦A梦》人员合照2D版本

《哆啦A梦》人员合照3D版本

将平面的2D的动漫形象,转化为3D立体的手办,用于制作3D动漫大电影,这是在游戏与动漫里面的3D建模应用。

其实3D建模技术,更多的应用在工业届多一些,在前几年3D打印技术十分火爆的时候,就类似现在的ChatGPT的风口,在三维建模软件里面画好三维模型,直接通过3D打印机打印出来零件。3D建模技术的最佳应用之处就是3D打印。

3D的齿轮模型建模

通过以上的三维建模仿真,然后再接入3D打印机就可以实现齿轮零件的实际打印需求。而且现在3D打印技术已经飞入寻常百姓家了,所以有条件的,真的可以尝试一下,很有意思。

讲解完了2D转换为3D建模的实际效果,下面我们进入本文章的正题,OpenAI发布的这个shape-E算法模型。

这个模型的话,它能实现的功能的话包括两种。

一、输入文字描述来输出指定的三维模型图

我们先来看一下官方的生成例子

  1. 一个生日蛋糕

  1. 一个像树一样的椅子

  1. 一个正在跑步中的人

以下是官方提供生成的三维模型的合集图片。可以看到官方生成的模型效果还是很不错的。

千寻自己也测试了一些,给大家看看效果

  1. a red apple with green leaves

(一个带绿叶的苹果)

  1. a desk

(一张桌子)

  1. a silver gear

(一个银色的齿轮)

千寻测试的这几个“文字转3D模型”的测试用例都是相对简单一些的。

而且千寻发现,还是输入的text文字描述,最好还是英文句子,借助一下谷歌翻译,可以保证3D模型生成的效果更加漂亮、准确。

二、输入二维平面图输出指定的三维模型图

除了实现输出文字描述可以生成三维模型的图片,我们也可以通过输入3D模型的平面视角图片,生成3D模型,以下是一些简单的生成效果,供大家参考。

  1. 二维齿轮图片转三维模型

  1. 二维小狗图片转三维模型

  1. 二维建筑平面图片转三维模型

不仅如此,除了在Hugging Face社区可以进行直接的三维模型。

生成的三维模型的图片也是支持本地查看的,将三维模型的图片进行下载。

使用windows系统自带的3D画图就可以查看了,效果更好!

以上是shape-E的模型实现的最终效果,我们下面分析一下shape-E模型的工作原理。

三、模型工作原理

Shap-E 还是用到了潜空间扩散模型(Latent Diffusion)。

熟悉 Stable Diffusion 的小伙伴应该对于这个概念并不陌生,其实就是将一些高维信息,降维表示到一个特定的特征空间,然后再根据这些特征,做生成。

Shap-E 整体结构也是类似的 Encoder - Decoder 结构。

不过输入和输出变了,比如 Shap-E 的 Encoder 结构是这样的:

输入是点云模型,经过降维、交叉注意力层、Transformer等结构,最终获得一个 implicit MLP。

至于 Decoder 则采用 STF Rendering 进行渲染,同时加入了 CLIP 的 text embedding。

Shap-E 支持多模态,输入既可以是文字,也可以图片。

四、模型算法应用

项目地址:

https://github.com/openai/shap-e

算法部署并不复杂,Shap-E 只依赖于 CLIP。

(1)可以单独创建一个名为 shape 的虚拟环境

conda create -n shape python=3

(2)激活conda环境

conda activate shape

(3)然后安装好 CLIP 的一些依赖

conda install --yes -c pytorch pytorch=1.7.1 torchvision cudatoolkit=11.0
pip install ftfy regex tqdm

(4)进入 Shap-E 项目的根目录,pip 安装剩余依赖包

pip install -e .

shap_e/examples/sample_text_to_3d.ipynb 是文本描述生成三维模型的脚本代码。

shap_e/examples/sample_image_to_3d.ipynb 是二维平面图片生成三维模型的脚本代码。

五、千寻总结

写完这篇技术文,千寻的第一个想法就是,害,文章刚刚开始时候,有点贩卖焦虑了,就这!

就这生成效果,想要完全取代人家3D建模师,我觉得还是有很长的路要走的。

目前的生成算法存在的问题:

1.模型的推理时间较长,平均生成一次三维模型图片,耗时大约30S左右。

2.生成的三维模型,细节度不够,只能算是有一个大体的外部轮廓,动物的面部细节特征几乎是全部没有。

所以根本不用焦虑,但是还是要继续努力啊!

我是千与千寻,一个只讲干货的码农,我们下期见~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【017】C++ 指针变量详解,理解指针变量

C 指针变量详解 引言一、内存概述二、指针变量2.1、地址和指针变量的关系2.2、定义指针变量2.3、指针变量的初始化2.4、指针类型2.5、案例2.6、注意事项 三、数组元素的指针3.1、概述3.2、在使用中 [ ] 就是 *()的缩写3.3、指向同一数组的元素的两个指针变量间的关系 四、字符串…

UOS桌面系统使用RLinux恢复数据

UOS桌面系统使用RLinux恢复数据 一、工具介绍二、注意事项三、准备四、制作live系统启动盘五、拷贝文件六、进入live系统一、工具介绍 R-Linux 是一款用于 Linux 和某些 Unixes 操作系统 Ext2/Ext3/Ext4 FS 文件系统的免费文件恢复实用工具。R-Linux 与 R-Studio 使用相同的 I…

病毒分析丨plubx

作者丨黑蛋 一、基本信息 文件名称 00fbfaf36114d3ff9e2c43885341f1c02fade82b49d1cf451bc756d992c84b06 文件格式 RAR 文件类型(Magic) RAR archive data, v5 文件大小 157.74KB SHA256 00fbfaf36114d3ff9e2c43885341f1c02fade82b49d1cf451bc756d992c84b06 SHA1 1c251974b2e…

Nova 和 SuperNova:无需通用电路的通用机器执行证明系统

1. 引言 前序博客有: Nova: Recursive Zero-Knowledge Arguments from Folding Schemes学习笔记SuperNova:为多指令虚拟机执行提供递归证明基于Nova/SuperNova的zkVMSangria:PLONK Folding2023年 ZK Hack以及ZK Summit 亮点记Sangria&…

ptp4l测试-LinuxPTP\ptp4l配置与问题排查

目录 一、前言 1.1 什么是ptp4l 1.2 描述 1.3 官网连接 1.4 目的 1.5 平台 二、 平台必要软件 2.1 linux物理机 2.2 imx6ull开发板 三、检查硬件是否支持 3.1 ifconfig查看当前网卡的名称 3.2 ethtool检查驱动和网卡是否支持 四、开启ptp4l服务 4.1 方法一&#x…

leetcode--环形链表.找到入环节点(java)

环形链表II 环形链表.找到入环节点题目描述解题思路 环形链表.找到入环节点 LeetCode 142:环形链表II 可以在这里测试 题目描述 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节…

电压放大器的主要指标有哪些方面

电压放大器是电子电路中常用的器件,在选择和评估电压放大器时,需要考虑以下几个主要指标: 输入电阻(Input Resistor):输入电阻是指放大器输入端的电阻值,它反映了放大器将输入信号转换成输出信号…

Linux驱动入门(二)——嵌入式处理器介绍和构建驱动程序开发环境

文章目录 嵌入式处理器和开发板介绍处理器简述处理器种类Intel的PXA系列处理器StrongARM系列处理器MIPS处理器摩托罗拉龙珠(DragonBall)系列处理器日立SH3处理器德州仪器OMAP系列处理器 ARM处理器ARM处理器简介ARM处理器的特点ARM处理器系列ARM处理器的应用ARM处理器选型 STM32…

Jupyter Notebook如何导入导出文件

目录 0.系统:windows 1.打开 Jupyter Notebook 2.Jupyter Notebook导入文件 3.Jupyter Notebook导出文件 0.系统:windows 1.打开 Jupyter Notebook 1)下载【Anaconda】后,直接点击【Jupyter Notebook】即可在网页打开 Jupyte…

初阶数据结构之栈的实现(五)

文章目录 😏专栏导读🤖文章导读🙀什么是栈?🙀画图描述 😳栈的代码实现及其各类讲解😳栈的初始化代码实现及其讲解😳栈的初始化 😳栈的销毁代码实现及其讲解😳…

PLX31-EIP-SIE 以太网/IP到西门子工业以太网

ProSoft Technology的EtherNet/IP to Siemens工业以太网通信网关允许支持EtherNet/IP的控制器或设备与西门子S7 PACs(包括S7-200s、S7-300s、S7-400s、S7-1200和S7-1500 PACs)之间进行高速双向数据传输。 此外,该网关还包括几个功能,包括数据优先级&…

横向移动-传递攻击SMB服务利用psexecsmbexec

win2012以上版本,关闭了wdigest 或者安装了 KB287199补丁。无法获取明文密码 总的来说就是win2012后无法获取明文密码 解决办法就是: 1.可以利用哈希hash传递(pth,ptk等进行移动) 2.利用其他服务协议(S…

UGUI进阶知识[二十九]循环GridView

节省内存的常用滑动列表还有一种形式,上下滑动的GridView。这种格式的滑动列表可用于移动设备的背包,仓库,商店UI等数据可能海量从而导致产生特别多但又看不见的UI的情况。 于是基于 UGUI进阶知识[八]循环利用滑动列表的循环ListView工程做了…

Tomcat服务器、Servlet生命周期、上传下载文件、使用XHR请求数据、注解使用

文章目录 Servlet认识Tomcat服务器使用Maven创建Web项目创建Servlet探究Servlet的生命周期解读和使用HttpServletWebServlet注解详解使用POST请求完成登陆上传和下载文件下载文件上传文件 使用XHR请求数据重定向与请求转发重定向请求转发 ServletContext对象初始化参数 Servlet…

Office project 2010安装教程

哈喽,大家好。今天一起学习的是project 2010的安装,Microsoft Office project项目管理工具软件,凝集了许多成熟的项目管理现代理论和方法,可以帮助项目管理者实现时间、资源、成本计划、控制。有兴趣的小伙伴也可以来一起试试手。…

在职阿里6年,一个29岁女软件测试工程师的心声

简单的先说一下,坐标杭州,14届本科毕业,算上年前在阿里巴巴的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少) 其中成功的有4家&am…

CSAPP Lab5- MallocLab

实验目标 本实验需要用c语言实现一个动态的存储分配器,也就是你自己版本的malloc,free,realloc函数。 实验步骤 tar xvf malloclab-handout.tar解压文件 我们需要修改的唯一文件是mm.c,包含如下几个需要实现的函数 int mm_ini…

c++调用dll出现LNK2001 无法解析的外部符号

先说说下正常的dll。 动态库显试调用一般3个文件.h .lib .dll ,隐式调用 只需要2个文件:.h(函数定义) .dll 静态库2个文件:.h .lib 先说C正常dll显式调用 #include "BYD_MES/MES2Interface.h" //#include 是以当前…

Android 12.0下拉状态栏通知栏的通知设置默认展开

1.概述 在12.0的产品定制化中,对于SystemUI的定制也是常用的功能,而在下拉状态栏中的通知栏部分也是极其重要的部分,每条通知实时更新在通知栏部分,由于通知栏高度的限制,每条通知是默认收缩的,功能开发需要要求通知默认展开,所以就要从通知的加载流程分析 如图: 2.…

【Java基础篇】运算符

作者简介: 辭七七,目前大一,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏:Java.SE,本专栏主要讲解运算符,程序逻辑控制,方法的使用&…