目标是让电视实时把普通 2D 画面转换成立体 3D 效果,不需要另外拍摄立体素材。 这份报告用尽量少的专业词汇,讲清楚我们做了什么、中间踩过哪些坑、现在效果到什么程度,以及接下来打算怎么做。
现在的 3D 内容非常少,而绝大多数视频、直播都只有普通的"平面"画面。 我们希望电视能自己实时把这些普通画面变成立体效果,不用等着专门拍摄的 3D 片源, 也不需要把画面传去云端处理再传回来——这一切要在电视自己的芯片上,一边播放一边完成。
技术路线上,我们没有让电脑直接"画"出另一只眼睛该看到的画面,而是让它把一张 2D 画面拆成 16 层前后叠放的透明胶片——离镜头近的东西画在靠前的胶片上,远处背景画在靠后的胶片上。 生成右眼画面时,只需要把这些胶片按远近错开一点、叠在一起就行,不需要"凭空画出"被遮住的部分—— 因为被前面物体挡住的内容,天然就已经画在后面那层胶片上了。
"参数量"决定了算法要占用电视芯片多少存储和算力,是电视厂最关心的硬指标之一。 下表是各模块的实测拆分——实际要装进电视的合计约 2038 万个参数(20.38M), 换算成文件大小,32 位精度下约 80MB,做量化压缩后可以降到约 20MB 级别,在旗舰电视芯片的预算内。
| 模块 | 作用 | 参数量 | 是否装进电视 |
|---|---|---|---|
| 细节分支 | 看清楚颜色、纹理 | 11.38M | 是 |
| 深度语义分支 | 判断远近 | 3.73M | 是 |
| 融合模块 + 分层判断 | 决定画面分几层 | 5.26M | 是 |
| 画面生成模块 | 画出每一层"胶片" | 0.01M | 是 |
| 合计(装进电视) | 20.38M | ||
| "模仿老师"辅助模块 | 只在训练阶段用 | 3.94M | 否 |
合计训练时的完整参数图为 24.32M(2431.9 万),其中 20.38M 随算法一起交付,3.94M 的"深度头"训练完就丢弃。电视端预算目标是 26M±3M,达标。
因为被前面物体挡住的部分没法直接画出来,只能靠算法"猜"。 分层胶片的方式让这部分内容天然保留在后面的胶片里,不需要瞎猜,效果更稳定。
我们参考的这篇论文(LMPIN,2025年发表)没有公开代码,也没有可以直接商用的开源实现。 所有的核心计算、训练方法、打分标准,都是我们自己独立写出来并反复验证过的。
现在临时借用的深度判断"老师"模型(Depth Anything V2)权重协议为 CC-BY-NC(仅限研究用途,不能直接商用)。这个风险已经记下来,下一步计划里安排了替换方案(见第五部分)。
整个项目按"准备训练数据 → 搭好算法骨架 → 先学看深浅 → 再学画质 → 打分验收"的顺序推进, 每一步做完都要经过独立审核才能进入下一步,不允许自己给自己"放水"。目前前三关都已经通过, 第四关(最终质量验收)也已经通过。
我们造了 118,287 张训练样本(来自公开图片库 COCO)——每张样本是一张普通图片配上 "如果是立体的,另一只眼睛该看到什么样"的参考答案,用来教算法学习。这些样本特意覆盖了从 8 像素到 38 像素的立体错位强度(实测采样范围 8.0006~37.9988 像素),从"立体感很弱"到"立体感比较强"都有, 不会让算法只学到一种场景。
118,287 张
规模足够训练一个 2000 万参数级别的小模型。
平均 6.07%
中位数 5.50%,剩下约 94% 的内容两只眼睛都能直接看到,不用猜,这个比例属于正常范围。
正式训练分两步:第一步只教算法"判断画面里哪里近、哪里远"(不产出最终画面); 第二步才把"生成最终画面"这件事一起教给它。这样拆开学,比一开始就什么都学更稳妥。
在正式训练前,评审方另外独立写了一套验证程序(不共用实现方的代码), 专门检查"分层胶片怎么错开叠加"这一步的几何计算对不对——结果 12 项检查全部对上,误差小到 0.000000000000001 以内(机器计算的极限精度)。 此外算法体积检查为 24,319,206 个参数,落在 2600 万±300 万的预算内。
训练 6 万轮后,把算法学到的"深浅判断误差"从初始值降低了 71.04% (达标线是降低超过 50%),四张显卡的利用率稳定在 92.1%~92.4%,没有出现"显卡空闲等数据"的浪费。
我们用一套公平的方式来打分: 如果"什么都不做"(直接拿左眼画面充当右眼)算 0 分,用真实相机拍出来的立体信息做参考算 100 分 (这是物理上限,因为两个镜头本身拍出来的画面就有细微差别,不可能真的到 100 分),及格线定在 35 分。 算法最终考了 50.8 分,通过了这一关。
下表是 90 段测试视频(共 450 帧)上的完整结果,同时给出三种电脑评分方式(数值含义类似,分数越接近下一行的"满分参考"就越像真实立体画面)。
| 做法 | 相似度打分(SSIM) | PSNR | LPIPS | 说明 |
|---|---|---|---|---|
| 什么都不做 | 0.585 | 18.74dB | 0.174 | 左眼画面直接冒充右眼 |
| 我们的算法 | 0.713 | 21.15dB | 0.154 | 能在电视上实时跑的"学生" |
| 直接照搬"老师"模型 | 0.699 | 20.68dB | 0.151 | 体积更大、跑不动实时的参考模型 |
| 满分参考 | 0.837 | 23.90dB | 0.118 | 用真实测量出的立体视差做出来的效果(物理上限) |
50.8 分的算法公式:(0.713 − 0.585) ÷ (0.837 − 0.585) = 50.79%。遮挡区域(画面中要靠"脑补"的部分)单独测得的分数比全画面低 3.25dB,达标线是差距小于 6dB。
如果直接照搬"老师"模型的深浅判断去拼图, 换算成同一套打分标准约 45.3 分;我们训练出来的、能在电视上实时跑的"学生"反而拿到了 50.8 分,说明这套训练方法确实有效,不是单纯继承了老师的水平。
人工检查 20 组测试画面发现,人物、球网、植物这类细小、复杂的边缘还有些模糊, 是接下来重点要打磨的地方(详见第五部分的改进计划①)。
在电视芯片等级的算力预算下(单张服务器显卡实测),我们测了三档清晰度设置。 转换过程中用的"中间分辨率"越低,速度越快、画质会有一点点取舍;达标线是每帧处理时间在 25 毫秒以内(相当于每秒 40 帧以上)。
| 档位 | 每帧耗时 | 相当于每秒 | 结论 |
|---|---|---|---|
| 最高画质档(1/2 中间分辨率) | 44.05 ms | 22.7 帧 | 未达标,需继续优化 |
| 标准画质档(1/4 中间分辨率) | 12.65 ms | 79.1 帧 | 达标 ✓ |
| 训练时用的分辨率(256×384) | 10.13 ms | 98.8 帧 | 达标 ✓ |
测试条件:1920×1080 输入,单张 H20 服务器显卡,bf16 精度;耗时含画面缩放、算法推理、分层胶片渲染与最终合成,不含视频编解码。
我们在一台 Mac 上搭了一个验证播放器(Mac3DPlayer,项目独立于本次汇报的训练工作), 用来检验算法能不能真正"边播边转"。这里有两种完全不同的实现方式,第二种才是电视产品最终需要的能力, 也是这一部分的重点。
项目最初是让训练服务器把视频批量转换成立体格式,自动打包传给 Mac 播放。 这种方式计算全部发生在服务器上,播放器本身不做任何 AI 计算,只适合"看效果、挑毛病",不代表电视的真实工作方式。
这才是电视产品真正要落地的形态——不提前转换、不经过服务器,播放普通 2D 视频的同时, 设备自己一边解码、一边现算立体效果、一边显示。我们已经在 Mac 上把这条链路完整打通:
播放一段 1920×960、24 帧/秒的测试视频时,现场实测约每秒 23.9 帧、单帧计算 13.9 毫秒,基本跟上原始视频的播放速度; 播放 4K(4096×2160)视频时,单帧计算耗时约 17.7~20.5 毫秒。测试用的正是本次汇报训练出来的同一个算法(第 250,000 步存档)。
把算法转换到 Mac 上运行的格式后, 我们逐像素比对过它和服务器训练时的原始输出——差异小到 千万分之一以内,确认转换过程没有引入误差,不是"看起来差不多"。
实时播放这条链路目前是工程上已经跑通、有初步实测速度数据,但还没有走完播放器项目自己的正式验收流程 (比如连续播放较长时间、确认全程不掉帧的仪器化测试)。这一点我们如实标注,不把"能跑"直接等同于"已验收通过、可以量产"。
立体直通播放、单独看左眼或右眼画面、 在普通屏幕上用红蓝眼镜模式查看立体效果、逐帧暂停检查——这些不需要设备现场计算,对着一份已经生成好的文件就能做。
对着一份从没处理过的普通 2D 视频, 播放的同时现场转换出立体效果;还有一个调试专用视图,能把算法内部"分了几层、每层是什么样"直接显示出来,方便检查问题。
50.8 分刚过及格线,不代表已经做到极致。我们盘点了几个能继续提升效果的方向, 按"值得优先做"的顺序排列:
人物、球网这类细小边缘目前还有点模糊。可以在最后一步加一个"贴边"处理,让立体画面的边界更贴合原图的实际轮廓。
预计几天内可以看到效果,不需要重新训练。
现在借用的老师模型精度有提升空间,而且有商用限制。换成一个更新、且可以直接商用的版本,
能同时解决准确度和授权问题。
预计约 1 周。
训练时每张练习卷的"立体强弱"是随机给的,算法目前只能猜一个大概值。如果训练时明确告诉它这个信息,
不仅能让判断更准,还能顺便实现产品上"立体感强弱可调节"的功能。
预计约 1 周。
现在的练习卷是"用普通照片伪造"出来的,和真实拍摄的立体电影还是有差别。如果能采购一批正版 3D 蓝光电影素材用来微调,
效果预计会有明显提升——这类干净的真实立体数据,同行业外部很难拿到,是电视厂在这个方向上难得的优势。
预计 2~3 周,需要先启动采购。
目前是一帧一帧独立处理的,连续播放时可能会有轻微的"深浅感忽强忽弱"。我们已经测出了作为对照的基线数字 (相邻帧深度判断的差异度 0.00744、画面运动轨迹误差 0.217 像素),下一步要把这两个数字降下来。 这是已经计划中的工作,对最终观感的影响可能比任何单项打分都更直接。
①+②+③ 一起推进:先做边缘优化看效果, 同时更换老师模型,再让算法学会识别立体强弱,做完重新打一次分。
④ 用真实电影素材微调,是这一阶段效果提升最关键的一步; ⑤ 播放稳定性的工作穿插在这期间推进。