关闭

意见反馈/举报

反馈/举报信息:

联系方式:

拓竹参与研究的最新开源算法直面3D打印智能上色

给模型手动上色的读者应该都懂一种烦恼。

3D打印全彩打后感:急缺智能上色工具

鼠标一笔一笔刷过去,刷到复杂结构、镂空和边缘,手一抖就糊出界,撤销,重来。

半小时过去,3D打印机器完全没动起来。

最近有篇论文把这活交给AI,教AI学会给模型涂色。

6a7a912980c10.webp

上图可以看到算发拆出来的模型,桌椅、人偶、车辆、房子,色块边界清晰

论文叫SegviGen,十一位作者,北航牵头,还有人大、清华、北京交通大学,以及拓竹。

6a7a912a0e77e.webp

代码和权重已经按MIT协议开源,链接在文章最后。


为什么涂色比认零件容易

我们自己涂色的常常并不是沿着零件边界描线,最直观应用往往是拿填充工具往区域里一点,让颜色自己漫开,漫到边界为止。

判断一块是不是零件,本来就是个填色的活,不需要描线。

以前的做法是完全反过来的。

训练一个网络去输出零件编号,这块是1号,那块是2号。

要教会它,得先人手工标注海量3D模型,一块一块告诉它编号。

标注很麻烦,更麻烦的是不同数据集对多细算一个零件的定义互相打架,数据越攒越乱。

本文算法没有从零开始训练,而是借了微软一个现成的3D生成模型Trellis.2来改。

这类模型的特点是为了能生成出一把像样的椅子,已懂得椅子的腿、座面、靠背怎么组合。

所以这个模型本就有优势理解物体本身。


算法到底怎么涂色

下图是整体流程。

6a7a912a6f5a3.webp

简单来说,输入的模型网格先被压成一份内部数据,这份数据用来锁死物体形状,也圈定了哪些小方块算数。

可以当它是一副骨架,模型能在骨架上决定每块什么颜色。

颜色从一团随机噪点开始。

训练时把正确配色掺进噪点里搅浑,让模型学着还原回去。

而真实使用时候则从纯噪点起步,顺着学会的那条路往回走十几步,颜色慢慢显影。

图右下角那三个蘑菇小屋,就是同一套参数干的三件事。

涂成黑白是选中单个零件,每个零件随机上色是全自动拆件,然后照着一张2D贴图精准涂色。

6a7a912ab79cf.webp

这里有个不起眼但关键的设计。

训练时同一个模型要用十套随机配色反复涂。

这的目的不让模型记住某区域的具体某种颜色。

目的只让它学哪一堆该同色、哪一堆该异色。

颜色在这儿只是个能随便换的记号,并不是物体属性。

如果这步省掉,它学会的就是认颜色而不是认结构,换个没见过的东西立刻没法用。

下面看看这个研究实用性如何。


一,不全拆,只想挑一块

回到开头那个场景。

多数时候我们并不需要软件把模型拆成二十块,只想要其中一块给颜色。

这一块以前只能靠手刷。现在的目标是点一下能自动选取你要的涂色部分。难就难在,你点的是表面上一个点,模型得猜出这个点属于哪一整块,边界在哪儿。下图看黄点是点击位置,红色是模型认出的零件。前两行是旧方法,最后一行是SegviGen

6a7a912b213a7.webp三行是同一个动作。上面两种旧算法,一个只圈出一道残缺的弧,一个啃下一小团,只有最后一行本文的算法把整个镜头连着外圈完整抠了下来。右半边换成台座上的物体,结论一样。第一下不准也不要紧,你可以接着补点,补一个它修一次边界。腾讯混元的P3-SAM是此前公认最强的同类方法,它点到第三下之后基本就不动了,你再补点它也不动了。而本文的算法点到第十下还在补齐精准度,分割准确度从五成一路爬到八成。下图看这套东西对应的操作界面,点一下加一个零件

6a7a912b6f849.webp他们做出来的界面展示了蛋糕上的奶油、热狗里的香肠、手表的表带、机器狗的四条腿,点哪个出哪个。


不点也行,一键全拆要是一个模型有二十个零件,点二十下也是折磨。第二种模式索性不用用户动手,直接把整个模型拆开,一个零件一个颜色。这比点一下要难得多。点一下至少你告诉了它从哪儿起手,全自动是它自己决定如何分件。下图实对比五种方法拆件同一批模型,最后两列是本文算法SegviGen

6a7a912bbacb3.webp可以看到有的糊成一片根本分不出块,有的能分出大块但边界发虚。最后两列是本文的成果,色块边缘是齐的。一批模型说明不了什么,换批更接地气的再比一次。下图是水果盘、卡通角色、沙发、老巴士

6a7a912c26fe5.webp沙发那行别的方法把靠背和坐垫粘成一整块,SegviGen把两块分开了。水果盘和老式巴士也一样,该断的地方断得清晰。还有最容易露馅的地方也对比测试了。传统靠多视角拼出来的老方法,往往正面拆得漂亮,一转到背面就废。

6a7a912c7cf21.webp上图每个物体都给了两个角度。相机、墨镜、盆栽郁金香、手表、粉色跑车,转过去色块位置并没有飘。


想拆几块,用户说了算前两种模式有个共同的毛病。拆成几块是它算法定的,不是用户定的。如果想把整只鞋当一块,它偏要把鞋带单拆出来。第三种模式解决的就是这个,也是这篇论文独有的能力。给一张2D颜色贴图,把想要的分法画好,它试图照着往3D模型上涂。你想拆五块就五块,想拆二十块就二十块。

6a7a912cd2ba0.webp


AI生成的模型也能拆上面这些测试用的都是人做的模型,规规矩矩。但我们手上越来越多的模型是AI生成的,那类东西面和面连的并不规则,拆起来是另一回事。

6a7a912d33705.webp直接拿混元3D 2.1生成的模型来测,没做任何额外训练,也没有标准答案可对。一个忍者,一个圣诞老人,照样拆得出来。这一步接上了,从生成到打印才算一条完整的链。


比跑分值钱的细节论文提到,Trellis.2(之前的老算法)解码出来的网格,和用户输进去的原始模型并不是同一个,面数和局部连接都改变了。SegviGen(新算法)则把预测出的颜色搬回你原来那个模型网格上。每个顶点取最近有效方块的颜色,每个面按顶点投票定归属,再轻度平滑一遍,抹掉边界上的毛刺。说白了,相对来说,它还给你的是你自己那个模型,只是每个面上多了标签。这对3D打印切片来说很关键。模型没被算法重做过,对切片和打印效果至关重要。不过这个算法也不是完美的。论文自己贴了失败案例。比如下图拆出来的块数和人预期对不上,以及引导图过细时的边界退化。

6a7a912d83555.webp


写在最后

我们认为智能上色是未来刚需。

这类研究解决的就是这类刚需。

至于算法赋予的颜色怎么落到打印机上,这一步以目前的大家设备硬件水平并不算难事。

有意思的是论文通篇没提多色3D打印,谈的全都是零件分割、编辑、绑定这些通用能力,拓竹在十一位作者里只占两席,牵头的是北航。

我们认为这类研究的下一步已经可以从论文走向切片软件了。

门槛并不高,代码和权重按MIT协议摆在GitHub上,八个卡八小时训一版,任何一家有软件团队的厂商今天就能尝试产品化。

我们希望未来这样的算法越多越好,进终端软件越早越好。

也希望各品牌的用户都能用上。

AI时代的多色3D打印需要智能上色工具/算法带来的迅捷美感,而不是痛苦缅怀用windows自带画图工具带来的考古感。


自己试试项目主页,拆好的GLB可以直接点开逐个零件看,比截图直观:SegviGen项目主页

6a7a912e0295d.webp代码和权重,MIT协议:GitHub代码仓库

打算本地跑的先看门槛,官方要求Linux系统加一张显存不低于24GB的N卡,而且得先把微软Trellis.2的环境装好:TRELLIS.2环境配置

论文原文与PDF:arXiv论文原文

信源:Li L, Feng H, Huang Z, et al. SegviGen: Repurposing 3D Generative Model for Part Segmentation. ACM Trans. Graph. 45(4), Article 68, July 2026.

10:38 本文为 AM易道 原创内容,如对内容有疑问,请联系我们:yihanzhong@amedao.com
点赞
反对
收藏
分享
AM易道招聘编辑 招募AM易道行业合伙人