2D→3D · 电视端实时立体转换 · 研究进展

2D 画面,实时变立体

目标是让电视实时把普通 2D 画面转换成立体 3D 效果,不需要另外拍摄立体素材。 这份报告用尽量少的专业词汇,讲清楚我们做了什么、中间踩过哪些坑、现在效果到什么程度,以及接下来打算怎么做。

✓ 真实电影微调 + 播放稳定性优化已完成,最新模型已部署进 Mac 播放器
52.6 分
立体转换效果打分(上一版 50.8,及格线 35;学了真实电影后不降反升)
11.12 ms/帧
Mac 播放器实机耗时(Core ML + Metal),相当于每秒约 90 帧
+7.5%
真实立体电影考卷上的恢复率——此前版本是负分,本周首次转正
6 部
用于训练的正版真实 3D 电影(约 86 万帧,仅内部研究使用)
第一部分 · 在做什么

为什么要做这件事,又是怎么做的

现在的 3D 内容非常少,而绝大多数视频、直播都只有普通的"平面"画面。 我们希望电视能自己实时把这些普通画面变成立体效果,不用等着专门拍摄的 3D 片源, 也不需要把画面传去云端处理再传回来——这一切要在电视自己的芯片上,一边播放一边完成。

立体感/3D 效果
让左右两只眼睛看到略有差别的两张画面,大脑就会自动"脑补"出远近层次——这就是立体电影、VR 的基本原理。
老师模型 / 学生模型
先用一个又大又准、但跑不动实时的"老师"模型打样,再训练一个小得多的"学生"模型去模仿老师——学生能在电视上实时跑。
验收关卡(Gate)
项目分成几个阶段,每个阶段做完都要经过一次独立审核才能进入下一步,类似"考试过关"。
打分怎么来的
用电脑程序对比"生成的画面"和"真实拍摄的画面"有多像,自动给出一个 0~100 的相似度分数。

核心思路:把画面切成一叠"透明胶片"

技术路线上,我们没有让电脑直接"画"出另一只眼睛该看到的画面,而是让它把一张 2D 画面拆成 16 层前后叠放的透明胶片——离镜头近的东西画在靠前的胶片上,远处背景画在靠后的胶片上。 生成右眼画面时,只需要把这些胶片按远近错开一点、叠在一起就行,不需要"凭空画出"被遮住的部分—— 因为被前面物体挡住的内容,天然就已经画在后面那层胶片上了。

一张 2D 画面 看清楚细节 颜色、纹理 判断远近 哪里近,哪里远 决定分几层、怎么分 把两部分信息拼起来 画出每一层"透明胶片" 共 16 层,近的清楚、远的够用即可 纯几何计算(不用学习) 每层胶片按远近错开一点 再前后叠起来 被挡住的部分天然露出来 生成的右眼画面 只在训练时借用,实际播放不需要 参考老师(判断远近更准) 学着模仿老师判断远近 学着让合成画面更逼真 分两个阶段:先学远近,再学画质
左边浅色部分是实际装进电视的算法;右边虚线框里的"老师"和训练用的辅助模块 只在研发阶段用来"教"学生,电视实际播放时完全不需要它们。

参数量:装进电视的部分有多大

"参数量"决定了算法要占用电视芯片多少存储和算力,是电视厂最关心的硬指标之一。 下表是各模块的实测拆分——实际要装进电视的合计约 2041 万个参数(20.41M), 换算成文件大小,32 位精度下约 80MB,做量化压缩后可以降到约 20MB 级别,在旗舰电视芯片的预算内。

模块作用参数量是否装进电视
细节分支看清楚颜色、纹理11.38M是
深度语义分支判断远近3.73M是
融合模块 + 分层判断决定画面分几层5.26M是
画面生成模块画出每一层"胶片"0.01M是
合计(装进电视)20.38M
"模仿老师"辅助模块只在训练阶段用3.94M否

合计训练时的完整参数图约为 24.34M,其中约 20.41M 随算法一起交付,约 3.94M 的"深度头"训练完就丢弃。电视端预算目标是 26M±3M,达标。

现在到底有几个版本:一张图看懂

研发记录里的 A1、A2、B 只是实验代号,不适合产品沟通。下面统一改成容易记的名字: 满配高质量版、当前小模型、原小模型、激进小模型和中杯实验版。它们都从同一个 S6 满配模型出发, 区别只有"裁掉多少通道"和"恢复训练时合成数据与真实电影的权重比例"。

2D 转 3D 模型版本关系图 S6 满配高质量版分支出当前小模型、原小模型、激进小模型和中杯实验版。当前保留满配高质量版和 A1 当前小模型。 满配高质量版 S6 · 20.41M 参数 通用跨域 52.56 分 画质优先 / 黄金回退 当前小模型 · A1 9.11M · 目标剪40%(实际35.5%) · 合成:真实=6:1 真实电影基本无损;时域核验通过 低算力候选 ✓ 原小模型 · 旧 3:1 版 9.11M · 目标剪40%(实际35.5%) · 合成:真实=3:1 被 A1 同体积全面小幅超过 历史回退 激进小模型 · A2 9.11M · 目标剪40%(实际35.5%) · 合成:真实=12:1 三项质量均低于 A1,没有继续价值 停止考虑 中杯实验版 · B 14.67M · 目标剪20%(实际14.3%) · 合成:真实=3:1 参数多 61%,通用分只比 A1 高 0.53 保留实验数据
最终只保留两个产品档位:算力充足时用 20.41M 满配高质量版;算力紧张时用 9.11M 的 A1 当前小模型。其余三个版本只用于证明为什么这样选。
容易记的名字研发代号交付参数 真实电影新电影通用跨域 2K 1/2现在的角色
满配高质量版S620.41M7.4624.6752.5616.43 ms画质优先
当前小模型A1 · 6:19.11M7.2224.7535.6913.99 ms低算力候选
原小模型旧 3:19.11M6.8124.1535.6214.07 ms历史回退
激进小模型A2 · 12:19.11M6.5724.5535.3513.97 ms停止考虑
中杯实验版B · 轻剪14.67M7.1026.3036.2215.99 ms实验归档

三项质量分都采用同一套 protocol-v2 恢复率,数值越高越好;“2K 1/2”是 H20 上预热 20 帧、测量 200 帧的编译后完整出口平均耗时,越低越好。A1 的 tOF=0.3019、T-Depth=0.00387,时域稳定性终审通过。

怎么选:如果芯片装得下 20.41M,优先满配版,因为它在电视常见的广播、体育、剧集等通用画面上明显更稳; 如果芯片预算紧,选 A1——参数减少约 55%,真实电影质量几乎没掉。最终仍要等目标 NPU 开发板实测内存、功耗和真实延迟。

为什么不直接"画"另一只眼睛的画面

因为被前面物体挡住的部分没法直接画出来,只能靠算法"猜"。 分层胶片的方式让这部分内容天然保留在后面的胶片里,不需要瞎猜,效果更稳定。

这套技术没有现成代码可抄

我们参考的这篇论文(LMPIN,2025年发表)没有公开代码,也没有可以直接商用的开源实现。 所有的核心计算、训练方法、打分标准,都是我们自己独立写出来并反复验证过的。

"老师"模型的商用限制已解除

最初借用的深度判断"老师"(Depth Anything V2)只限研究用途, 存在商用风险。现已整体替换为更新一代、可直接商用(Apache-2.0 协议)的 Depth Anything 3,精度还更高——授权和准确度两个问题一次解决。

第二部分 · 怎么训练出来的

训练流程与验收关卡

整个项目按"准备训练数据 → 搭好算法骨架 → 先学看深浅 → 再学画质 → 打分验收"的顺序推进, 每一步做完都要经过独立审核才能进入下一步,不允许自己给自己"放水"。主线五关已全部通过; 此后又完成了三轮加训——边缘与强弱调节优化、真实 3D 电影微调、连续播放稳定性优化——每一轮同样设了独立验收关卡, 期间有两次训练被预设的"红线检查"自动叫停(一次是评分口径 bug,一次是太空电影黑场景污染训练信号), 都是查明根因后再重启,没有带病赶进度。

训练数据(第一关)

我们造了 118,287 张训练样本(来自公开图片库 COCO)——每张样本是一张普通图片配上 "如果是立体的,另一只眼睛该看到什么样"的参考答案,用来教算法学习。这些样本特意覆盖了从 8 像素到 38 像素的立体错位强度(实测采样范围 8.0006~37.9988 像素),从"立体感很弱"到"立体感比较强"都有, 不会让算法只学到一种场景。

合成训练样本

118,287 张
用普通照片"伪造"的立体对,保证场景多样性。

真实电影训练样本(后期加入)

147,700 对
来自 6 部正版 3D 电影(比利·林恩、霍比特人、少年派、海底世界、地心引力、双子杀手),真实拍摄的左右眼画面,仅内部研究使用。训练时合成与真实按 3:1 混合,既学真实立体、又不偏科。

画面里"看不见、要靠猜"的遮挡部分平均占 6.07%——合成样本里这部分是"编"的,真实电影里是真拍到的,这正是引入真实素材的核心价值。

先学看深浅,再学画质(第二、三关)

正式训练分两步:第一步只教算法"判断画面里哪里近、哪里远"(不产出最终画面); 第二步才把"生成最终画面"这件事一起教给它。这样拆开学,比一开始就什么都学更稳妥。

零件先单独"开卷"验一遍

在正式训练前,评审方另外独立写了一套验证程序(不共用实现方的代码), 专门检查"分层胶片怎么错开叠加"这一步的几何计算对不对——结果 12 项检查全部对上,误差小到 0.000000000000001 以内(机器计算的极限精度)。 此外算法体积检查为 24,319,206 个参数,落在 2600 万±300 万的预算内。

先学深浅,和老师对比

训练 6 万轮后,把算法学到的"深浅判断误差"从初始值降低了 71.04% (达标线是降低超过 50%),四张显卡的利用率稳定在 92.1%~92.4%,没有出现"显卡空闲等数据"的浪费。

第三部分 · 现在效果如何

最新打分:52.6 分(首版 50.8,三轮优化后不降反升)

我们用一套公平的方式来打分: 如果"什么都不做"(直接拿左眼画面充当右眼)算 0 分,用真实相机拍出来的立体信息做参考算 100 分 (这是物理上限,因为两个镜头本身拍出来的画面就有细微差别,不可能真的到 100 分),及格线定在 35 分。 首版考了 50.8 分过关;经过边缘优化、真实电影微调、稳定性优化三轮加训后,最新版本考到 52.6 分—— 特别值得说明的是,后两轮的主要目标并不是这张考卷,能"顺便"再涨说明基本功变扎实了,没有为新目标牺牲旧能力。

0 分 什么都不做 35 分 及格线 我们:52.6 分(首版 50.8) 100 分(满分参考) 真实相机拍出来的效果
打分方式:用电脑程序对比"算法生成的画面"和"真实相机拍出来的画面"有多像(SSIM 相似度指标,0~1,越接近 1 越像), 归一化成 0~100 分,排除了"这套测试视频本身有多难"的干扰,只看算法真正学到了多少。 测试视频用的是 NAMA3DS1-COSPAD1(公开的真实双镜头拍摄立体视频集)。

四方对照:每一种做法的真实分数

下表是 90 段测试视频(共 450 帧)上的完整结果,同时给出三种电脑评分方式(数值含义类似,分数越接近下一行的"满分参考"就越像真实立体画面)。

做法相似度打分(SSIM)PSNRLPIPS说明
什么都不做0.58518.74dB0.174左眼画面直接冒充右眼
我们的算法(最新版)0.717521.12dB0.151能在电视上实时跑的"学生"(已部署版本)
我们的算法(首版,7-19)0.71321.15dB0.154三轮加训前的版本,供对照
直接照搬"老师"模型0.70220.60dB0.152体积更大、跑不动实时的参考模型
满分参考0.83723.90dB0.118用真实测量出的立体视差做出来的效果(物理上限)

52.6 分的算法公式:(0.7175 − 0.585) ÷ (0.837 − 0.585) = 52.59%。遮挡区域(画面中要靠"脑补"的部分)单独测得的分数与全画面差距在达标线(6dB)内。

比"老师模型直接上"还要好

如果直接照搬"老师"模型的深浅判断去拼图, 换算成同一套打分标准约 46.4 分;我们训练出来的、能在电视上实时跑的"学生"反而拿到了 52.6 分,说明这套训练方法确实有效,不是单纯继承了老师的水平。

细边缘问题已改善

首版人工检查发现人物、球网、植物这类细小复杂边缘发虚; 后续加入的"贴边"处理(引导滤波)配合更准的新老师模型,已把这类边缘的清晰度明显提上来,深浅判断误差降低了 35%。

真实 3D 电影考卷:这一轮最关键的进展

上面那张考卷(NAMA3DS1)是公开的双镜头实验素材,画面偏简单。为了更接近电视真实播放的内容, 我们从 6 部正版 3D 电影里单独留出 2000 帧做了一张全新考卷——这些片段绝不出现在训练素材里,防止"考题泄漏"。 这张考卷更难,也更能说明产品价值:

版本真实电影考卷得分说明
只用"伪造"样本训练的版本−1.5 分负分 = 转出来还不如"什么都不做"
用 4 部电影微调+6.2 分首次转正
用 6 部电影微调(已部署)+7.5 分当前版本

最难的部分改善最多

立体转换最难的是"物体边缘后面露出来的内容"—— 伪造样本里这部分是编的,真实电影里是真拍到的。用真数据训练后,这个区域的画质反超"什么都不做"基线 0.45dB, 这正是花钱买真实素材想买到的东西,也是外部同行很难拿到的数据优势。

为什么分数看着不高

因为真实电影的立体错位量普遍很小(中位数仅约 3 像素), "什么都不做"本身就已经很接近正确答案,能提升的空间物理上就窄。在立体感强的场景(新加入的两部片)上, 同样的算法能拿到 +26.6 分——差距拉得开的地方,我们赢得多。

能不能实时播放

在电视芯片等级的算力预算下(单张服务器显卡实测),我们测了三档清晰度设置。 转换过程中用的"中间分辨率"越低,速度越快、画质会有一点点取舍;达标线是每帧处理时间在 25 毫秒以内(相当于每秒 40 帧以上)。

档位每帧耗时相当于每秒结论
最高画质档(1/2 中间分辨率,编译优化后)16.43 ms60.9 帧达标 ✓
标准画质档(1/4 中间分辨率)12.65 ms79.1 帧达标 ✓
训练时用的分辨率(256×384)10.13 ms98.8 帧达标 ✓

测试条件:1920×1080 输入,单张 H20 服务器显卡,bf16 精度;耗时含画面缩放、算法推理、分层胶片渲染与最终合成,不含视频编解码。最高画质档原始实现约 46ms,经 torch.compile 编译后降至 16.43ms;A1 小模型同档约 13.99ms。

连续播放稳不稳:深度抖动降 46%,盲测已分不出新旧

单张画面转得好还不够——视频是连续播放的,如果算法每帧独立判断深浅,连起来看就会有轻微的 "远近感忽强忽弱"(业内叫时域抖动),这对观感的影响比任何单帧打分都直接。我们做了专项优化:让算法在处理连续两帧时保持深浅判断一致。

抖动指标改善 46%

相邻帧深度判断的差异度从 0.00744 降到 0.00403, 画面越稳,立体感越自然、越不容易看累。

盲测:已经看不出差别

我们把优化前后的 36 段视频随机打乱、隐藏版本标签做盲测, 结论是两者的播放平滑度已无法分辨、静止画面无闪烁。播放器端还有一层平滑处理兜底,产品观感有双保险。

第四部分 · 能不能实际看到效果

算法训练好之后,怎么变成能看的视频

我们在一台 Mac 上搭了一个验证播放器(Mac3DPlayer,项目独立于本次汇报的训练工作), 用来检验算法能不能真正"边播边转"。这里有两种完全不同的实现方式,第二种才是电视产品最终需要的能力, 也是这一部分的重点。

方式一:服务器先转好,播放器只管播(早期验证阶段用)

项目最初是让训练服务器把视频批量转换成立体格式,自动打包传给 Mac 播放。 这种方式计算全部发生在服务器上,播放器本身不做任何 AI 计算,只适合"看效果、挑毛病",不代表电视的真实工作方式。

服务器批量转换 提前算好整段立体视频 自动打包 + 校验完整性 确认文件没传坏才算完成 自动传到 Mac 播放器 定时检查有没有新结果 打开就能看 播放已经转好的文件

方式二:播放器自己实时计算(真正对应电视要做的事)

这才是电视产品真正要落地的形态——不提前转换、不经过服务器,播放普通 2D 视频的同时, 设备自己一边解码、一边现算立体效果、一边显示。我们已经在 Mac 上把这条链路完整打通:

解码原始 2D 视频 和普通播放共用一套解码 算法现场推理 在芯片专用单元上跑 分层画面实时叠加 用图形芯片现场合成 实时显示 不落地任何中间文件
全过程没有服务器参与,也没有生成中间视频文件——这是最接近电视芯片实际工作方式的验证。

实测速度(苹果 M4 Max 芯片验证)

最新模型实测单帧计算 11.12 毫秒(相当于每秒约 90 帧),远超视频本身的播放速度,余量充足; 低/中/高三档立体强度可一键切换。

最新模型已部署,可随时回退

经过三轮加训的最终模型已正式转成 Mac 运行格式并内嵌进播放器。 逐像素比对确认转换精度损失小于千万分之二,三档强度均验证通过;旧版本完整保留,可一键回退。

如实说明:这是"打通"阶段,不是"验收完成"阶段

实时播放这条链路目前是工程上已经跑通、有初步实测速度数据,但还没有走完播放器项目自己的正式验收流程 (比如连续播放较长时间、确认全程不掉帧的仪器化测试)。这一点我们如实标注,不把"能跑"直接等同于"已验收通过、可以量产"。

功能清单

播放已转换好的文件时可用

立体直通播放、单独看左眼或右眼画面、 在普通屏幕上用红蓝眼镜模式查看立体效果、逐帧暂停检查——这些不需要设备现场计算,对着一份已经生成好的文件就能做。

只有"现场实时计算"模式才有

对着一份从没处理过的普通 2D 视频, 播放的同时现场转换出立体效果;还有一个调试专用视图,能把算法内部"分了几层、每层是什么样"直接显示出来,方便检查问题。

第五部分 · 下一步打算怎么做

画质主线已收官,剩下的是"上电视"

7 月 19 日汇报时列的五个优化方向(边缘处理、更换老师模型、立体强弱可调、真实电影微调、播放稳定性) 现已全部完成并合入已部署的版本。算法画质这条主线到此收官,接下来的重点转向真正装进电视芯片。

部署准备已经完成

① 两档模型已经定型

20.41M 满配版负责高质量,9.11M A1 小模型负责低算力。A1 的真实电影、通用跨域、播放稳定性和三档强弱调节都已复评完成。

② 两档画质都达到实时

编译优化把最高画质 1/2 档从约 46 毫秒降到 16.43 毫秒;标准 1/4 档仍作为低功耗默认,1/2 档作为增强选项。

③ 字幕方案已经确定

检测到字幕带时,在输出环节把字幕钉在屏幕平面并做边缘羽化,避免细字幕出现双像。纯输出侧处理,不需要重新训练模型。

④ 全程汇报材料已经齐全

从论文复现、真实电影训练、播放稳定性到剪枝和速度优化,各阶段指标、对比图与验收结论都已归档。

在等一块板子(最后一块拼图)

目标电视芯片(NPU)上板实测

目前所有速度数据来自服务器显卡和 Mac 芯片,都不是电视的真实芯片。瘦身版小模型的真实速度、功耗、 以及量化压缩后的画质损失,必须在目标芯片开发板上实测才算数——这是算法能否量产的最终验证。
开发板到位后约 1~2 周可出结论。这是目前唯一需要外部资源配合的环节。

已知问题(如实列出)

小模型的跨域能力会明显下降

A1 在真实电影考卷上几乎不掉分,但通用跨域分从满配版的 52.56 降到 35.69。算力允许时应优先满配版;小模型只用于芯片预算紧张的场合。

电视 NPU 真实表现仍未知

服务器和 Mac 上的速度都已达标,但目标电视芯片上的内存、功耗、量化精度和真实延迟仍必须等待开发板实测。