引言:当三维物体学会了"变脸"
你有没有看过那种经典的心理学图片——一张人脸的侧影,换个角度看就变成了一个花瓶?或者那张著名的"鸭兔图",盯着看一会儿是鸭子,再看一会儿又变成了兔子?这类视觉错觉(visual illusion)长期以来都是感知心理学和艺术创作中的核心话题。而当扩散模型席卷了整个计算机视觉领域之后,研究者们开始思考一个问题:能不能把这些"双关图"从二维平面搬到三维空间里去?
具体来说,能不能用文字描述两个完全不同的物体——比如"孔雀"和"菠萝"——然后自动生成一个单一的三维网格模型,使得从某个角度看它是一只孔雀,换个角度看又变成了一个菠萝,而从其他任意角度观察时则呈现为一团抽象的几何形态?
这个想法听起来像是科幻小说里的情节,但它正是2026年6月发表在arXiv上的论文《JanusMesh: Fast and Zero-Shot 3D Visual Illusion Generation via Cross-Space Denoising》所做的事情。这篇论文来自台湾阳明交通大学(National Yang Ming Chiao Tung University),作者为张翔灵(Siang-Ling Zhang)、蔡淮勋(Huai-Hsun Cheng)、杨宗儒(Tsung-Ju Yang)和刘育纶(Yu-Lun Liu)。该工作已被ECCV 2026接收。
问题的本质:为什么三维视觉错觉这么难?
在深入JanusMesh之前,我们需要先理解为什么在三维空间中制造视觉错觉比在二维中难得多。
二维视觉错觉的生成相对直接。以Visual Anagrams为代表的方法利用扩散模型在去噪过程中对不同视角的噪声预测进行同步和平均,就可以在一张平面图片中嵌入两个不同的语义解释。观察者从不同距离、不同角度或不同注意力焦点看过去,就能看到不同的内容。这类方法的技术核心是在二维像素空间中进行噪声融合,本质上是图像处理问题。
但三维完全不同。一个真正的三维视觉错觉要求:
- 几何一致性:从任意角度看,这都必须是一个合理的、完整的三维物体,不能有断裂、穿模或者明显的拼接痕迹。
- 语义隔离:从视角θ₁看出去必须清晰地呈现语义A,从视角θ₂看出去必须清晰地呈现语义B,两个语义之间不能互相泄漏。
- 过渡自然:在两个目标视角之间的过渡区域,物体应该呈现为某种不可辨识的抽象形态,而不是两种语义的混乱混合。
这三重约束同时满足,才是一个合格的三维视觉错觉。
已有方法的困境
在这篇论文之前,已有的方法主要有两类,但都存在严重缺陷。
第一类:基于SDS优化的方法。 以Shape From Semantics为代表,这类方法使用Score Distillation Sampling(SDS)来优化一个三维表示,使其在不同视角下的渲染结果分别匹配不同的文字提示。听起来合理,但实际效果很差。首先,SDS优化非常慢,生成一个模型大约需要40分钟。其次,SDS本身有一个臭名昭著的副作用——颜色过饱和(over-saturation),生成的模型颜色往往浓烈到不真实。更致命的是,当两个语义的几何特征差异较大时,SDS优化很容易陷入局部最优,导致某个视角的语义侵入另一个视角的区域。
第二类:直接拼接法。 思路很朴素——分别生成两个独立的三维物体,然后把它们粘在一起。这种方法速度快(大约3-5分钟),而且每个视角的语义质量不错。但问题出在拼接处:两个物体交界的地方会出现明显的几何断裂,表面曲率不连续,在接缝处可以清楚地看到"这是一个拼出来的东西"。此外,从目标视角看过去,对面物体的几何形态有时会从侧面或背面泄漏出来,破坏错觉效果。
JanusMesh正是针对这些痛点而设计的。
JanusMesh的核心思路:解耦为几何融合与纹理合成
JanusMesh的总体设计哲学可以用一句话概括:把问题拆成两步,分别用最合适的技术来解决。
第一步是几何融合——把两个语义对应的三维形状融合成一个单一的、无缝的网格。这一步的关键挑战是如何让融合后的形状从两个目标角度看分别像两个不同的物体。
第二步是纹理合成——给融合后的网格涂上与视角相关的纹理,使得从θ₁看过去呈现语义A的外观,从θ₂看过去呈现语义B的外观。
整个过程是零样本(zero-shot)的,不需要针对每对提示词进行额外训练。从输入文字描述到输出最终的三维模型,总耗时仅需3-5分钟。
第一阶段:交叉空间双分支去噪
从TRELLIS说起
JanusMesh的几何生成建立在TRELLIS之上。TRELLIS是一个原生的三维生成模型,它直接在三维数据上学习潜在表示,使用修正流(rectified flow)进行训练,能够在稀疏结构化潜在空间中编码几何和外观信息。
传统的文本到三维方法通常先用多视角扩散模型生成多个视角的图像,再用重建网络把这些图像转换为三维网格。这个过程中不可避免地会引入视角之间的不一致性。TRELLIS则直接在三维潜在空间中操作,从根本上避免了这类问题。
双分支并行去噪
给定两个文字提示y₁和y₂,JanusMesh为每个提示分别启动一个去噪分支。在TRELLIS的去噪过程中,每一步都会产生一个三维潜在编码。JanusMesh在每个去噪步骤的关键位置插入了一个中间操作:将潜在编码解码到体素空间。
为什么要解码到体素空间?因为体素空间是一个离散的、规则的三维网格表示,在这个空间中进行几何操作——比如旋转、对齐、融合——比在潜在空间中更直观、更可控。
CLIP引导的方向对齐
两个独立生成的三维物体,它们的朝向可能是任意的。如果你直接把一个朝左的菠萝和一个朝右的孔雀拼在一起,融合出来的形状肯定不伦不类。所以需要先找到一个最优的相对旋转角度,使得两个物体的轮廓(silhouette)在目标视角下尽可能对齐。
JanusMesh使用CLIP模型来自动搜索这个最优旋转角度。具体做法是:对其中一个物体施加不同的旋转,然后分别从θ₁和θ₂方向渲染,计算渲染结果与目标文字提示的CLIP相似度。遍历一圈之后,选择CLIP总分最高的旋转角度作为最终的对齐方式。
这个CLIP引导的方向搜索是自适应的。不是简单地固定为0°/180°,而是根据具体物体的几何特征来动态确定最佳对齐方向。论文的用户研究表明,91%的参与者认为这种自适应方向搜索产生的错觉效果比固定角度更自然。
SDF混合:无缝几何融合的关键
对齐之后,下一步是把两个体素网格融合成一个。论文对比了五种不同的融合策略:
- Union(并集):直接取两个体素网格的逻辑或。结果是两个物体简单叠加,完全没有形状协调。
- Blur Average(模糊平均):先对体素做三维高斯平滑,再逐元素取平均。边界变软了,但精细几何细节也丢了。
- Minkowski Blend(闵可夫斯基混合):用球形结构元素对每个体素做膨胀后再融合。结果是整体网格体积膨胀。
- Polar Coord Blend(极坐标混合):逐切片地在二维极坐标下做边界平均。隐含假设每个切片是星形的,对凹形或非对称物体不适用。
- SDF Average(SDF平均,本文方法):对两个占用网格分别计算截断有符号距离场(Truncated SDF),取平均后二值化。
JanusMesh选择的是第五种——SDF平均。SDF(Signed Distance Field)是一种隐式表面表示方法,表面上的点SDF值为零,表面外部为正,内部为负。对两个物体的SDF取平均后,零等值面自然对应于两个物体之间的"中间形态"。这产生了一个几何稳定、表面连续的融合结果。
为什么SDF平均比其他方法好?直观理解:SDF平均在数学上保证了融合表面的连续性。两个物体表面之间的过渡区域,SDF值从一边的正值平滑地过渡到另一边的负值,零等值面恰好落在中间。而并集操作会在交界处产生锐利的边缘,模糊平均则会丢失细节。SDF平均在保持几何细节和保证表面平滑之间取得了最佳平衡。
可选的噪声引导
对于几何差异较大的物体对(比如一个细长的竹子和一个矮胖的小屋),仅靠SDF混合可能不足以产生理想的融合效果。JanusMesh提供了两种可选的噪声引导策略:
- Noise Blending Guidance(噪声混合引导):在去噪过程中对两个分支的噪声预测进行混合,为几何轮廓相似但语义不同的物体对提供更柔和的先验。
- Space Control Guidance(空间控制引导):在去噪的前t₀步对潜在状态施加更强的约束,适合轮廓差异较大的物体对。
对于几何特征兼容的物体对,不需要任何引导就能得到良好的结果。因此噪声引导是一个按需使用的辅助组件,而非必选模块。
重新编码继续去噪
体素空间中的融合操作完成后,结果被重新编码回TRELLIS的潜在空间,继续执行后续的去噪步骤。这个"解码-对齐-融合-重新编码"的循环在每个关键去噪步骤中重复执行,逐步将两个分支的去噪轨迹引导到一个共同的最终网格。
最终,第一阶段输出一个单一的三维网格,它融合了两个文字提示对应的几何形态,从不同角度看呈现出不同的轮廓特征。
第二阶段:视角条件纹理合成
几何融合完成后,得到了一个"光秃秃"的三维形状。下一步是给它涂上纹理,使得从不同角度看过去呈现出不同的外观。
为什么需要专门的纹理合成模块?
你可能会问:既然TRELLIS在生成几何的同时也能生成外观,为什么不直接在第一阶段就把纹理一起处理了?
原因是第一阶段的去噪过程已经被设计用来解决几何融合的问题——它需要在去噪过程中不断解码、对齐、混合、重新编码。在这个过程中同时保证两个视角的纹理质量是非常困难的。SDF混合主要作用于几何形状,对纹理信息的保留有限。
因此,JanusMesh将纹理合成独立出来作为一个单独的阶段。这样每个阶段都可以专注于自己的任务,使用最适合的技术。
2D扩散先验的视角投影
第二阶段使用Stable Diffusion作为2D扩散先验。对于每个目标视角θ₁和θ₂,分别用对应的文字提示y₁和y₂生成一张二维估计干净图像(predicted clean image x̂₀|ₜ)。然后,将这些二维图像反投影(un-project)到融合后的三维网格表面上。
反投影的过程是:对于网格表面上的每个顶点,计算它在目标视角相机中的投影位置,然后从对应的二维图像中采样颜色值。由于同一个表面区域可能从两个视角都能看到,JanusMesh使用余弦加权混合(cosine-weighted blending)来聚合来自不同视角的纹理信息。
具体来说,对于表面上的一个点,如果它的法向量更接近θ₁的方向,就更多地使用来自θ₁的纹理;如果更接近θ₂的方向,就更多地使用来自θ₂的纹理。在两个视角的过渡区域,纹理自然地渐变混合。
网格纹理聚合
上述投影和混合过程是迭代进行的。每一步扩散去噪都会产生新的估计干净图像,这些图像被投影到网格上并逐步累积。随着去噪步骤的推进,纹理越来越精细,两个视角的语义区分也越来越清晰。
最终,第二阶段输出一个带有完整纹理的三维网格。从θ₁看过去,你看到的是语义A的外观;从θ₂看过去,你看到的是语义B的外观;从其他角度,你看到的是两者的混合——一种不可辨识的抽象形态。
评估体系:如何衡量三维视觉错觉的质量?
论文建立了一套多维度的评估体系,包含六个定量指标和一项用户研究。
定量指标
1. CLIP相似度。 对每个目标视角的渲染结果与对应文字提示计算CLIP相似度。分数越高,表示目标语义越清晰。
2. CLIP反向相似度(View-Conditional CLIP Contrast)。 这是一个巧妙的反向指标:计算每个视角的渲染结果与对面文字提示的CLIP相似度。分数越低越好,说明非目标语义的泄漏越少。这个指标专门用来检测"语义泄漏"问题——直接拼接法在标准CLIP分数上可能看起来不错,但在反向CLIP分数上就会暴露问题。
3. GPT-4.1-mini二选一准确率。 让GPT-4.1-mini模型观看渲染结果的左右两视角,判断哪个视角对应哪个文字提示。准确率越高,说明语义传达越清晰。JanusMesh达到了84%的准确率,显著高于直接拼接法(76%)和Shape From Semantics(70%)。
4. FID和KID。 衡量渲染结果的视觉真实感。在1000张渲染图像和Objaverse数据集的1000张参考图像之间计算FID和KID。JanusMesh的FID为185.555,在所有方法中表现优异。
5. 目标检测得分。 使用OWLv2目标检测模型在中间视角(junction viewpoint)的渲染结果上进行检测。如果融合做得好,应该只检测到一个物体;如果融合有问题(比如直接拼接),就会检测到两个物体。JanusMesh的平均检测数量为0.86(接近理想值1),多物体检测率仅为18%,而直接拼接法的多物体检测率高达56%。
6. 边界接缝得分(Impact Factor)。 专门衡量融合边界处的几何平滑度。计算方法是:边界顶点的平均曲率跳变除以全局平均曲率跳变。值越接近1,说明边界区域与表面其他部分在几何上无法区分;值越大,说明接缝越明显。JanusMesh的Impact Factor为0.994(几乎完美),而直接拼接法为1.129。
用户研究
50名参与者参与了用户研究,涵盖三个维度:
- 语义可辨识度:78.5%的参与者将JanusMesh的结果评为"清晰可辨识"(最高分3分)。
- 方法偏好:71%的参与者偏好JanusMesh,远高于Shape From Semantics(16%)和直接拼接法(13%)。
- 方向策略:91%的参与者认为CLIP引导的自适应方向搜索比固定角度产生了更自然的错觉效果。
消融实验:每个组件有多重要?
论文进行了系统的消融实验,验证了每个设计选择的必要性。
几何混合策略的消融
五种混合策略的视觉对比清楚地展示了SDF平均的优势:Union产生两个物体的简单叠加,Blur Average丢失细节,Minkowski Blend膨胀体积,Polar Coord Blend对非星形物体失效,只有SDF Average在所有测试案例中都能产生几何稳定、表面连续的融合结果。
噪声引导的消融
对于几何兼容的物体对(比如"沙发"和"书"),不使用任何引导就能得到良好结果。对于轮廓差异大的物体对(比如"竹子"和"小屋"),Space Control Guidance显著改善了融合质量。对于轮廓相似但语义不同的物体对(比如"飞鸟"和"巨嘴鸟"),Noise Blending Guidance提供了更好的语义分离。
方向搜索的消融
固定0°/180°角度在某些物体对上效果可以接受(比如两个都是正面看的动物),但在很多情况下会导致轮廓不匹配。CLIP引导的自适应搜索能够根据具体物体的几何特征找到最优的对齐角度,显著提升了融合质量。
可扩展性:三物体视觉错觉
JanusMesh不仅支持双语义视觉错觉,还可以扩展到三个物体。论文展示了将三个不同的文字提示嵌入一个单一网格的实验结果。虽然三物体的情况更具挑战性(因为需要在三维空间中找到三个互不干扰的观察方向),但JanusMesh的框架天然支持这种扩展——只需增加去噪分支的数量,并在体素空间中进行多物体的SDF融合即可。
技术细节补遗
TRELLIS的潜在空间结构
TRELLIS使用稀疏结构化潜在空间来编码三维信息。与传统的NeRF或点云表示不同,这种潜在空间天然适合在去噪过程中进行几何操作。JanusMesh的"解码-操作-重新编码"流程之所以可行,正是因为TRELLIS的潜在空间与体素空间之间有高效的双向映射。
截断SDF的实现细节
论文使用的是截断有符号距离场(Truncated SDF),即SDF值被限制在一个有限范围内。这避免了远离表面的区域产生过大的距离值,使得融合过程更加稳定。截断后的SDF在体素空间中是一个有限范围的连续函数,对其取平均后二值化,即可得到融合后的占用网格。
纹理反投影的数学形式
设某个表面点p在视角θ₁的相机中投影到二维图像位置(u₁, v₁),在视角θ₂中投影到(u₂, v₂)。设I₁(u₁, v₁)和I₂(u₂, v₂)分别为两个视角的估计干净图像在对应位置的颜色值。则p点的最终纹理颜色为:
T(p) = w₁ · I₁(u₁, v₁) + w₂ · I₂(u₂, v₂)
其中w₁和w₂是余弦加权系数,取决于p点法向量与两个视角方向的夹角。
与相关工作的关系
JanusMesh的工作处于多个研究方向的交汇点:
- 计算光学错觉:从阴影艺术、线框艺术到视角依赖高度场,三维错觉有悠久的研究传统。JanusMesh是第一个真正实现文本驱动、全纹理三维视觉错觉的零样本方法。
- 扩散模型错觉生成:Visual Anagrams开创了利用扩散模型生成二维错觉的范式。JanusMesh将这一范式从二维扩展到了原生三维潜在空间。
- 文本到三维生成:从SDS优化到前馈重建,文本到三维领域正在快速发展。JanusMesh展示了如何在现有的三维生成框架上构建新的应用。
- 同步扩散去噪:多分支去噪的同步和融合是一个活跃的研究方向。JanusMesh的交叉空间双分支去噪为这个方向贡献了新的技术方案。
- 三维纹理合成:视角条件纹理合成将传统的单提示纹理方法扩展到了多提示场景。
局限性与未来方向
论文坦诚地指出了几个局限性:
- 对TRELLIS的依赖:JanusMesh的几何融合阶段依赖于TRELLIS的潜在空间结构。如果未来有更好的原生三维生成模型出现,JanusMesh的框架可以相应升级,但当前的实现与TRELLIS深度绑定。
- 视角选择的自动化程度:目前两个目标视角的相对角度是由CLIP搜索确定的,但初始视角的选取仍然需要一定的先验知识。完全自动化的视角选择是一个值得探索的方向。
- 语义复杂度的限制:对于几何特征高度相似的两个语义(比如"苹果"和"橙子"),视觉错觉的效果可能不够明显,因为从两个角度看过去的轮廓差异太小。
- 纹理质量的上限:由于纹理合成依赖于2D扩散先验的反投影,最终的纹理质量受限于Stable Diffusion在特定视角下的生成质量。
总结
JanusMesh为三维视觉错觉生成提供了一个高效、零样本的解决方案。它的核心创新在于将几何融合与纹理合成解耦为两个独立阶段:第一阶段通过交叉空间双分支去噪和SDF混合实现无缝几何融合,第二阶段通过视角条件纹理合成赋予融合网格双重语义外观。整个流程无需训练,仅需3-5分钟,即可生成高质量的双语义三维视觉错觉。
这项工作不仅在技术上具有创新性,也为我们理解三维视觉感知提供了一个有趣的新工具。当你拿到一个从某个角度看是孔雀、换个角度看是菠萝的三维模型时,你可能会开始重新思考:我们看到的世界,究竟有多少是物体本身的属性,又有多少是我们观察角度的产物?
论文信息
- 标题:JanusMesh: Fast and Zero-Shot 3D Visual Illusion Generation via Cross-Space Denoising
- 作者:Siang-Ling Zhang, Huai-Hsun Cheng, Tsung-Ju Yang, Yu-Lun Liu
- 机构:National Yang Ming Chiao Tung University(台湾阳明交通大学)
- 发表:ECCV 2026
- arXiv:2606.20563v1
- 项目主页:https://siang1105.github.io/JanusMesh.github.io/
评论