博物馆青铜器表面抛光到镜面级别,直接拿手机拍一圈做 3DGS 重建,高光区全过曝成纯白块,纹饰细节糊掉,器型轮廓在高光边缘出现锯齿。换闪光灯更惨,整个器身反光成一片白。这篇文章记录我们为一只青铜爵测的 4 种打光方案——直拍、闪光灯、多角度漫射、偏振光——对比重建耗时、高斯点数、高光还原质量,并给出在博物馆实际条件下的取舍建议。

能力面:3DGS 采集的打光策略

3DGS 重建质量取决于采集到的像素信息量。高反光物体的问题是从大多数角度拍到的像素都是过曝高光或镜面反射,真正描述器身颜色的漫反射像素很少。打光策略的目标是增加漫反射像素占比、压低镜面反射峰值。

4 种方案从简到繁:

  • 直拍:环境光下直接环绕拍摄,不做任何打光处理。
  • 闪光灯:用手机自带闪光灯补光,强方向光。
  • 多角度漫射:环绕拍摄时用 2-3 盏柔光箱从不同角度补光,光比压到 1:1,消除强方向反射。
  • 偏振光:镜头加偏振片(PL 滤镜),光源也加偏振片且偏振方向与镜头正交,理论上可完全消除镜面反射。

Spatial Recon Kit 的 ReconSession 本身不感知打光方案,它只消费相机帧流。打光是采集侧的事,重建侧拿到的就是处理后的像素。但重建结果差异巨大——同一只青铜爵,4 种方案跑出来的高斯点数差 3 倍,高光区还原质量差一个量级。

需要主动指出:Spatial Recon Kit 仅保证麒麟 9020/9030S/9030/9030 Pro 及后续旗舰芯片。文物重建通常在博物馆现场一次性采集,对设备要求高,建议直接用保证机型,不要在中端机上冒险——重建到一半 OOM 退出,珍贵文物的采集窗口可能就这一次。

反光率是选方案的唯一入口。下面把选择链路画成流程图。

高反光 镜面级

中反光 半抛光

低反光 漫反射

达标

不达标

物体反光率检测

反光等级

偏振光方案

多角度漫射方案

环境光直拍

采集重建

质量校验 SSIM

交付

回退加灯或换方案

回退分支很关键——一次采集不达标,先加灯再重试,别急着换设备。

约束面:高反光物体的重建质量上限

约束表现影响
镜面反射像素不可用过曝区无信息,重建出纯白块高光区纹饰必丢
偏振片减光 2-3 档快门变慢,采集易糊需要三脚架或稳定器
漫射光设备体积大柔光箱 + 灯架占 2 平米博物馆展柜前可能摆不下
环境光不可控博物馆顶灯是固定的漫射方案要压过环境光
文物不能触碰不能贴标记点、不能转台采集者只能环绕走拍

最后一条对采集流程影响最大。商品展示可以放转台让物体转、相机不动;文物不能上手,只能采集者环绕走拍。走拍时打光设备也得跟着移动,否则物体转到背光面又是暗的。这导致多角度漫射方案实际要 2 人配合——1 人拍摄、1 人举灯跟随。

场景落地:青铜爵的 4 种打光对比

被测物:商代青铜爵,高 18cm,器身抛光到镜面级别,有三道纹饰带,鋬(把手)内侧有铸缝。馆藏环境,顶灯暖白 LED 约 300 lux。

采集设备 Pura 80 Pro,主摄 4 镜,环绕拍摄 12 秒约 360 帧,4 种打光各拍一遍。重建用同一份 config,仅输入帧不同。

方案 1:直拍

环境光下直接环绕。结果:器身高光区过曝成纯白块,占器身面积约 40%;纹饰带在高光区完全丢失,在非高光区可见但模糊;鋬内侧背光全黑,重建空洞。整体可辨识器型但纹饰不可读。

方案 2:闪光灯

每帧自动闪光。结果比直拍更差:闪光灯是强方向点光源,每次闪烁在器身产生一个移动高光斑,360 帧的高光斑位置都不同,重建算法把这些高光斑当真实特征重建,器身布满漂浮的白色高斯点。完全不可用,是 4 种里最差的。

方案 3:多角度漫射

2 盏 60×60cm 柔光箱,光比 1:1,跟随采集者环绕移动。结果:高光区从 40% 压到 8%,纹饰带在非高光区清晰可读;鋬内侧仍有暗区但用环境光补到可见;器身颜色还原接近实物。整体可交付,纹饰可读。

方案 4:偏振光

镜头加 CPL 偏振片,2 盏柔光箱前加线性偏振膜且偏振方向与镜头正交。结果:镜面反射几乎完全消除,器身无高光区,纹饰带全周可读,铸缝可见。质量最高,但偏振片减光 2.5 档,快门从 1/60 降到 1/15,手持必糊,用了三脚架 + 稳定云台。

真机数据:4 种方案量化对比

指标直拍闪光灯多角度漫射偏振光
重建耗时14 秒19 秒12 秒16 秒
高斯点数41 万78 万52 万63 万
PLY 体量11 MB19 MB13 MB16 MB
高光区面积占比40%55%8%< 1%
纹饰可读率35%0%78%96%
SSIM(vs 实拍参考)0.620.410.810.89
渲染帧率(中景)60 fps58 fps60 fps60 fps
采集设备无无2 灯 + 2 人2 灯 + 偏振片 + 三脚架

几个数据点值得展开:

闪光灯高斯点数 78 万最高,但这是"坏的高斯点"——漂浮的高光斑被当特征重建出来,点数多但质量差,SSIM 0.41 最低。这个反例说明高斯点数不等于重建质量,不能拿点数当唯一指标。

偏振光 SSIM 0.89 最高,但重建耗时 16 秒比漫射的 12 秒多 4 秒。原因是偏振光压暗了整体曝光,暗部噪点增加,重建算法在噪点区域迭代更多。这 4 秒换 0.08 SSIM 提升值不值,看场景对纹饰可读性的要求。

多角度漫射纹饰可读率 78%,比偏振光的 96% 低 18 个百分点,但设备只要 2 盏柔光箱,不要偏振片和三脚架。对大多数博物馆场景,78% 可读率够用——文物展示不要求看清每道纹饰,能辨识器型和主要纹饰带就行。

踩坑与取舍

选方案的过程写成配置函数,输入反光率输出打光参数。

// 按反光率生成采集打光参数
// 反光率 0-1:越高镜面反射越强,可用漫反射像素越少
type LightMode = 'polarized' | 'diffuse' | 'ambient';
type ReflectLevel = 'high' | 'mid' | 'low';

interface LightingStrategy {
  mode: LightMode;      // 打光模式
  lampCount: number;    // 柔光箱数量
  exposureComp: number; // 曝光补偿,单位 EV
  needTripod: boolean;  // 是否必须上三脚架
  note: string;         // 现场注意事项
}

// 反光等级判定:>0.6 高反光,0.3-0.6 中反光,<0.3 低反光
function classifyReflect(ratio: number): ReflectLevel {
  if (ratio > 0.6) {
    return 'high';
  }
  if (ratio >= 0.3) {
    return 'mid';
  }
  return 'low';
}

// 根据反光率返回打光方案
function buildLightingStrategy(ratio: number): LightingStrategy {
  const level = classifyReflect(ratio);
  switch (level) {
    case 'high':
      // 偏振光:镜头 CPL + 光源偏振膜正交,减光约 2.5 档
      return {
        mode: 'polarized',
        lampCount: 2,
        exposureComp: 2.5,   // 补回偏振片减掉的曝光
        needTripod: true,    // 快门掉到 1/15,手持必糊
        note: '禁用闪光灯,偏振方向与镜头正交 90 度'
      };
    case 'mid':
      // 多角度漫射:2 盏柔光箱跟随,光比压到 1:1
      return {
        mode: 'diffuse',
        lampCount: 2,
        exposureComp: 0.5,
        needTripod: false,
        note: '需 2 人配合,1 人拍摄 1 人举灯'
      };
    default:
      // 低反光:环境光直拍即可
      return {
        mode: 'ambient',
        lampCount: 0,
        exposureComp: 0,
        needTripod: false,
        note: '表面漫反射为主,无需额外打光'
      };
  }
}

// 用法:青铜爵反光率约 0.85,应走偏振光
const strategy = buildLightingStrategy(0.85);
console.info('lighting:', JSON.stringify(strategy));

参数里的曝光补偿和是否上三脚架,都是实测调出来的。

坑 1:闪光灯重建完全失败

已经提到,闪光灯的高光斑被当真实特征重建,器身布满漂浮白点。这个坑我们一开始没料到,因为闪光灯在普通物体(如手办)上效果还行——手办表面是漫反射漆,闪光灯打出来是均匀亮,没有移动高光斑。青铜器镜面反射才会产生这个问题。

结论:高反光物体绝对不能用闪光灯。这条要写进采集 SOP,因为闪光灯是手机默认行为,采集者不主动关就会触发。

坑 2:偏振光减光导致快门过慢

偏振片减光 2.5 档,环境光 300 lux 下快门掉到 1/15 秒,手持必糊。第一次试偏振光方案时我们没上三脚架,重建出来器身整体模糊,SSIM 只有 0.55,比漫射还差。后来上三脚架 + 稳定云台,快门 1/15 也能拍清晰,SSIM 才到 0.89。

偏振光方案的设备要求是 4 种里最高的:偏振片 + 三脚架 + 稳定云台 + 2 盏带偏振膜的灯。博物馆现场摆这套设备要 20 分钟,文物采集窗口可能不允许。我们内部争论后定了一条:只有国宝级文物用偏振光,普通文物用漫射。漫射 78% 可读率对普通文物展示够用。

坑 3:多角度漫射要 2 人配合

漫射方案要 2 盏柔光箱跟随采集者环绕移动,1 人拍摄 1 人举灯。第一次试 1 人方案,把灯固定在两盏三脚架上不动,结果物体转到背光侧(远离两盏灯的那侧)又是暗区,重建出来半边清晰半边暗。

2 人配合的方案在博物馆现场有协调成本——举灯者要跟着拍摄者走,还要注意灯不能碰展柜、不能照到隔壁展品。培训半天能配合,但比 1 人方案多一倍人力。

坑 4:环境光不可控压不过

博物馆顶灯是固定的 300 lux 暖白 LED,漫射方案的 2 盏柔光箱要压过环境光才能控制光比。试过用 200W 柔光箱,和环境光 1:1 还行;想完全压过环境光得 400W+,灯架更重、发热更大,博物馆不一定让用。最终接受 1:1 光比,高光区从 40% 压到 8% 而非 0%,8% 残余高光区纹饰丢一点,可接受。

坑 5:偏振方向没对正导致效果不稳

偏振光的偏振方向要镜头偏振片和光源偏振膜正交(差 90°)才能消除镜面反射。第一次没严格对正,差了约 15°,镜面反射只消除 70%,高光区还有残余。后来用偏振片上的刻度严格对到 90°,残余高光降到 < 1%。这个对正操作要培训,采集者看偏振片刻度转到位,不能凭感觉。

打光方案选择决策表

场景推荐方案理由
普通文物(漫反射为主)直拍表面不反光,无需打光
中等反光文物(如半抛光青铜)多角度漫射1:1 光比压高光,2 人配合
高反光文物(如镜面青铜)多角度漫射或偏振光看纹饰可读性要求
国宝级高反光文物偏振光纹饰要 96% 可读率,值得设备投入
任何高反光文物禁用闪光灯移动高光斑,重建完全失败

总结一下下哦

  • 高反光物体禁用闪光灯,采集前主动关闪光
  • 偏振光方案必须三脚架 + 稳定云台,快门 1/15 手持必糊
  • 偏振片与光源偏振膜方向严格正交 90°,凭感觉会残余高光
  • 多角度漫射要 2 人配合举灯跟随,1 人固定灯有背光暗区
  • 漫射光功率要 ≥ 环境光,否则压不过顶灯
  • 高斯点数不等于重建质量,闪光灯点数最高但质量最差
  • 仅保证机型开放,文物采集窗口珍贵,不冒险用中端机
  1. 测 5 件不同反光等级的青铜器(从漫反射到镜面),标定每件在 4 种方案下的 SSIM,给博物馆一份"反光等级 → 推荐方案"查表
  2. 试偏振光 + 多帧降噪组合,看能否把快门从 1/15 提到 1/30 还保 SSIM 0.85+,降低三脚架依赖
  3. 调研偏振片自动对正附件(如偏振校准灯),看能否省掉人工对正 90° 的培训成本
  4. 对比 3DGS 偏振光重建和工业级结构光扫描(如 Artec)的纹饰可读率,看 3DGS 在文物保护能否替代结构光

在我们测的这只青铜爵上,偏振光方案 SSIM 0.89 接近工业扫描水平,但设备投入和采集复杂度高一个量级。多角度漫射 SSIM 0.81 对普通文物展示够用,是性价比最高的方案。如果博物馆只做一次性的数字化存档,值得上偏振光;如果是批量做线上展厅,漫射方案更现实。这个取舍得看项目预算和文物等级,技术侧给不了答案。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐