HarmonyOS 7.0 端侧3DGS实验③:曝光、反光与低纹理处理
一、前言
回看桌面物品时,一张照片能够看清轮廓和颜色,通常已经满足辨认需求。三维记录还要面对相邻视角:同一表面的明暗是否变化,局部细节能否辨认,图像是否仍与对应的相机信息关联?单张照片的观感不足以回答这些问题。
本篇为“桌面三维记录册”增加质量观察标签、保留与重拍理由。标题中的“处理”限定为识别、记录、复核和重拍安排,不涉及曝光修复、去反光或纹理补全算法。当前仍处于协议与记录结构规划阶段,尚无已采集的基准批次、异常批次或重建结果。
记录需要分成三层,我们将通过一个系列的内容进行分享。人工观察说明输入画面出现了什么;第2篇的AR更新与推入返回值说明相应调用的结果;第4、5篇的任务与产物证据才用于判断重建完成情况和可见质量。它们各自回答不同的问题,不能相互代替。
因此,本篇先解决“哪些现象需要标记、怎样保持可比较、为什么保留或重拍”。这些现象是否与空洞、漂浮伪影有关,留到取得实际产物后核对。
二、变量与条件
2.1 继承批次与环境
观察记录继续关联experimentId、sampleId、baselineId、captureBatchId、environmentRef和frameId。第2篇尚未形成真实批次,这里规定的是关联方式。设备型号、芯片、系统完整构建号、SDK与API级别,以及样本、距离、路径、背景、镜头、变焦和采样规则,均沿用原档案。计划写入plannedConditions,实际条件与偏差分别进入actualConditions和deviations。
重建三维场景(C/C++)所载2026-09-09文本要求图像与相机内参、位姿对应,并限定输入图像宽1080像素、高1440像素。质量观察不会放宽这些要求,检查实现沿用第2篇的待核验边界。
重建与会话资料的起始版本标记为6.1.0(23)。本文保留这一原标记,不建立未经证实的HarmonyOS 7.0映射,不使用NG回调。Spatial Recon Kit简介所载2026-07-28文本列出Phone、Tablet、PC/2in1和TV,限定中国境内使用,不含香港特别行政区、澳门特别行政区和中国台湾,且暂不支持模拟器。本协议面向能够移动采集静态桌面物品的实机;具体重建能力仍需查询。
2.2 分开主动改变项与伴随变化
下表是本文提出的实验安排,官方资料没有提供这些因素的最佳参数或质量阈值。
| 研究项 | 计划方式 | 保持与记录要求 | 解释边界 |
|---|---|---|---|
| 曝光相关变化 | 先观察固定布置下的亮度序列 | 保留路线、背景、照明和遮光事件;参数可取得时才记录 | 图像变亮不能单独证明曝光参数改变 |
| 反光现象 | 固定物品与灯位,沿既定路线观察局部高光 | 记录视角、形状、表面描述和现场变化 | 跨视角观察没有隔离材质的因果作用 |
| 低纹理现象 | 描述指定表面的图案和细节;不同样本分别建档 | 登记颜色、形状、尺寸、反光和画面占比差异 | 不同物品只能作案例对照 |
重复计划与执行顺序应提前登记,中断和实际偏差随后补充。如果调整照明,应另建批次,同时记录阴影与高光变化。这些伴随变化会影响解释,因此不能将换灯位直接称为纯曝光实验。主动控制曝光的方案则留待接口依据核清后再设计。
三、执行过程
3.1 曝光相关观察:先记亮度,再解释原因
按采集顺序查看图像,先找到能够对应的物品表面,再记录变化涉及的帧或帧段。观察区域应同时说明画面位置和物品部位;仅写“右侧变亮”,在视角改变后可能指向不同表面。
描述时分开“整体亮度变化”“局部亮区细节难辨”和“暗区细节难辨”。例如,未来若观察到相邻帧的某一区域变亮,可以记录变化方向、区域和帧引用;仅凭显示效果,还不能写成“曝光值跳变”或“像素已经饱和”。这些判断需要对应参数或其他充分证据。
曝光时间和ISO未取得时保持未知,不从截图反推。参数即使可取得,也应核对它们对应哪一帧,不能用一次读取结果代表整批输入。曝光跳变可以作为待核验原因,与已经看到的亮度变化分别保存。
复核时采用统一显示方式,登记查看工具、缩放方式和显示条件,保留原始证据关联。逐张调亮、套滤镜或自动增强会改变比较对象,不能用处理后的视觉一致性证明原始输入一致。
候选处置从现场记录开始:核对是否发生遮光、灯位变化或路线偏差,再决定补充证据还是按原协议重拍。当前资料不足以支撑曝光锁定与AR采集协作的实现,本文不补写相应API。


图1为观察结构规划,帧区域保持待关联,尚无亮度序列观测或测量曲线。
3.2 反光观察:记录区域与视角关系
本文把高光用作局部亮区的人工观察标签。记录重点是亮区位于哪里、可见范围如何、相邻视角中有什么变化,以及该区域的细节能否辨认。表面材质描述与图像现象分开填写,不能仅凭一个亮区确定材料种类或反射机理。
跨视角比较还要确认所指的是同一物品部位。亮区在画面中的位置变化,可能同时伴随物品投影位置变化;记录中应保留完整画幅、观察方向和局部区域的关系。无法确认对应关系时,写明待复核原因。
局部放大用于辅助定位,必须能够追溯具体帧及完整画幅。裁剪范围和缩放方式也应保留,避免把不同放大程度误读为亮区范围变化。用于说明现象的局部图不替代原始重建输入。
若计划调整灯位,应在新批次中重新登记布置,并观察阴影、亮区和其他表面的伴随变化。调整属于待比较条件,不能提前承诺产物改善。本文也不把“有高光”直接改写为“无法重建”,不引入去反光算法或表面涂覆方案。

图2为记录页面规划,区域和可见范围待实际观察填写,连线仅表示记录关联。
3.3 低纹理观察:分清表面细节与模糊
本文将低纹理作为人工描述:在指定区域和当前观察条件下,可辨认的图案、颜色变化或细节较少。它不对应通用数值阈值,也不是系统输出的纹理评分。
细节难辨时,先复核图像是否模糊。若轮廓或原本可辨认的图案也难以看清,可以单独记录模糊现象;原因仍需进一步核验。当前图像无法辨认表面细节,不足以证明物品本身低纹理。证据不够时,保留“表面细节待确认”,不要强行选择标签。
目标表面与背景应分别描述。背景图案丰富,不能替代物品表面的纹理记录;物品局部细节少,也不能扩展为整幅图像没有细节。同一物品不同区域可以有不同观察,记录粒度应跟随实际可见范围。
并列不同样本时,应同时展示形状、颜色、尺寸、反光和画面占比差异。这样的对照可以帮助提出后续问题,但不能声称只改变了纹理,更不能推出“增加纹理即可修复重建”。本篇不展开现有资料未说明的内部特征匹配或优化机制。

图3展示比较字段,左右记录均待关联,不代表已经完成低纹理对照实验。
3.4 统一标签,分开观察与处置
标签用于检索,观察描述用于解释。应用可定义“亮度变化”“局部高光”“低纹理观察”“模糊”等选项,允许同时存在;亮区或暗区细节难辨可补充在描述中。它们都不是SDK状态。
C1用JSON表达观察骨架。frameRefs执行后填写有序的帧关联条目,每项包含frameId和inputEvidenceRef;单帧只填一项,帧段应列出实际涉及的帧,不能默认中间没有缺失。当前空数组表示尚未关联。
{
"captureBatchId": null,
"qualityObservation": {
"executionState": "notExecuted",
"frameRefs": [],
"regionDescription": null,
"tags": [],
"observation": null,
"method": null,
"observedAt": null,
"reviewResult": null,
"reviewReason": null,
"evidenceRefs": []
},
"disposition": null,
"retentionPurpose": null,
"reason": null,
"relatedCaptureBatchId": null
}
以上均为应用字段。method说明查看方式与范围,observedAt记录实际观察时间。reviewResult区分检查后未标记异常、已标记现象和证据不足;未检查时保持notExecuted与null。因此,tags为空不能单独解释为质量合格。
处置另行记录。“保留”应通过retentionPurpose说明是保留研究记录,还是拟纳入后续重建对照。后者仍须满足输入前提。C2中的中文动作是应用拟实现的人工复核流程,不调用质量评分或图像修复接口。
关联 captureBatchId、frameRefs 与原始证据
若尚未检查:保留 notExecuted,不据空标签判断质量
执行观察,填写区域、描述、方法和实际时间
若证据不足:记录 reviewResult、reviewReason 与待补证据
核对 plannedConditions、actualConditions 和 deviations
读取相关输入尝试的 inputCheck 与 arUpdate 记录
若硬性检查失败或未核清:沿用第2篇规则,停止相关推入
人工选择 disposition:保留、重拍或待复核
填写 reason;保留时另填 retentionPurpose
若安排重拍:
为重拍分配新的 captureBatchId
在新批次中以 relatedCaptureBatchId 关联原批次
登记计划改变项、实际条件和偏差
保存观察与处置;不改写已有 rawStatus
不将修改标签解释为撤回已推入输入

图4为应用交互规划,初始状态为未检查;标签和处理选项不代表SDK质量判定。
尺寸、数据有效性和图像与相机信息的对应关系,仍由第2篇的硬性检查约束。视觉标签既不能替代这些检查,也不自动等于接口失败。已经推入的数据不会因修改标签就从会话中删除;当前没有依据假定清空、撤回或重放接口存在。重拍按前篇方案使用独立批次及各自新建的重建会话,具体调度留给第4篇。
四、成果
4.1 当前交付方法,实际观察待填写
当前交付的是清单结构。下表列出一条观察记录需要的内容,没有预填异常事实;实际执行后,按区域和帧关联建立记录。
| 记录项 | 当前值 | 后续填写依据 |
|---|---|---|
| 批次与帧引用 | 待关联 | 批次档案及帧证据 |
| 观察区域、标签、描述 | 待填写 | 完整画幅与人工观察 |
| 检查状态 | 未执行 | 实际检查过程 |
| 复核结果与待复核原因 | null | 证据充分程度及疑点 |
| 保留用途/重拍理由 | null | 处置决定与协议偏差 |
| 证据引用 | 待关联 | 原始图像、现场记录或参数证据 |
| 已检查帧数/已标记帧数 | null/null | 明确范围后的去重统计 |
统计应按已检查的唯一帧标识计算;跨批次汇总时以批次与帧标识共同定位。同一帧同时带有高光和模糊标签,不能在异常帧总数中重复计入。帧段尚未展开、证据缺失或检查只覆盖部分区域时,都要说明范围,不能把局部复核扩展成全批检查。未知数量在界面显示“—”,不预填比例、成功率或评分。
采集时长继续采用第2篇“开始本批采集”至“结束本批采集”的事件边界,保存单位、工具及版本和中断记录。若测量人工复核耗时,应另记开始检查、结束检查及暂停规则;它不属于采集时长或重建耗时。
4.2 向第4篇交接什么
交接摘要应让后续任务找到基线、条件、会话、输入检查、逐次推入与质量观察。C3只规划引用关系,数组为空表示尚无已关联记录,不表示检查已经完成且没有问题。
{
"experimentId": null,
"sampleId": null,
"baselineId": null,
"captureBatchId": null,
"environmentRef": null,
"executionState": "notExecuted",
"sessionRecordRef": null,
"inputCheckRefs": [],
"spatialPushRecordRefs": [],
"qualityObservationRefs": [],
"inputAvailability": null,
"missingEvidence": [
"实际批次与输入检查记录待补",
"逐次推入及质量观察证据待补",
"输入可用性待核验"
],
"evidenceRefs": []
}
inputAvailability执行后需要说明:是否有现存有效会话中的输入,是否仅有证据索引,或是否尚需重新采集。证据入口能找到图片和日志,不代表已经具备可重新推入的数据包,也不保证会话可跨应用退出或设备重启恢复。
管理Spatial Recon会话要求所有相关任务完成后才能销毁会话;重建或保存期间销毁会导致未定义行为。交接或换批次不能替代任务完成判断。
基准与异常批次都须满足相应输入前提。“异常”只表示带有人工观察标签,不允许因此推入无效数据。当前交接的是计划与模板;取得实际输入与调用证据后,第4篇才能执行重建和保存,第5篇再关联产物区域与输入现象。

图5为交接规划,数量保持“—”,输入可用性待核验,不代表已有可重建批次或可重放数据。
五、结论
本篇建立了从可见现象到观察记录、再到处置理由的方法。它能够规定后续如何留下依据,尚不能报告已经发生的异常,也不能预判反光或低纹理必然导致重建失败。调整条件和重拍都是实验策略,没有由此取得最佳曝光参数、最低纹理要求或质量保证。
人工标签也不等于系统质量评分。重建指南说明系统会从推入数据中自动选择关键帧,因此某帧被标记或成功推入,都不足以认定它必然参与最终重建。应用不能用标记数量推算关键帧数量。
后续即使在同一批次中看到输入亮区与产物缺陷同时出现,也要继续核对形状、覆盖、照明及其他偏差。共现可以形成待验证问题,因果判断仍需更充分的对照。未覆盖的表面仍按前篇单列,不能通过质量标签承诺全表面恢复或测量精度。
下一篇将把问题推进到实际任务:在统一环境和可追溯记录下,这些批次能否被接收、完成重建并保存?答案需要来自第4篇的真实调用与产物证据。
更多推荐



所有评论(0)