一、前言

回看桌面物品时,一张照片能够看清轮廓和颜色,通常已经满足辨认需求。三维记录还要面对相邻视角:同一表面的明暗是否变化,局部细节能否辨认,图像是否仍与对应的相机信息关联?单张照片的观感不足以回答这些问题。

本篇为“桌面三维记录册”增加质量观察标签、保留与重拍理由。标题中的“处理”限定为识别、记录、复核和重拍安排,不涉及曝光修复、去反光或纹理补全算法。当前仍处于协议与记录结构规划阶段,尚无已采集的基准批次、异常批次或重建结果。

记录需要分成三层,我们将通过一个系列的内容进行分享。人工观察说明输入画面出现了什么;第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。

image.pngimage.png

图1为观察结构规划,帧区域保持待关联,尚无亮度序列观测或测量曲线。

3.2 反光观察:记录区域与视角关系

本文把高光用作局部亮区的人工观察标签。记录重点是亮区位于哪里、可见范围如何、相邻视角中有什么变化,以及该区域的细节能否辨认。表面材质描述与图像现象分开填写,不能仅凭一个亮区确定材料种类或反射机理。

跨视角比较还要确认所指的是同一物品部位。亮区在画面中的位置变化,可能同时伴随物品投影位置变化;记录中应保留完整画幅、观察方向和局部区域的关系。无法确认对应关系时,写明待复核原因。

局部放大用于辅助定位,必须能够追溯具体帧及完整画幅。裁剪范围和缩放方式也应保留,避免把不同放大程度误读为亮区范围变化。用于说明现象的局部图不替代原始重建输入。

若计划调整灯位,应在新批次中重新登记布置,并观察阴影、亮区和其他表面的伴随变化。调整属于待比较条件,不能提前承诺产物改善。本文也不把“有高光”直接改写为“无法重建”,不引入去反光算法或表面涂覆方案。

image.png

图2为记录页面规划,区域和可见范围待实际观察填写,连线仅表示记录关联。

3.3 低纹理观察:分清表面细节与模糊

本文将低纹理作为人工描述:在指定区域和当前观察条件下,可辨认的图案、颜色变化或细节较少。它不对应通用数值阈值,也不是系统输出的纹理评分。

细节难辨时,先复核图像是否模糊。若轮廓或原本可辨认的图案也难以看清,可以单独记录模糊现象;原因仍需进一步核验。当前图像无法辨认表面细节,不足以证明物品本身低纹理。证据不够时,保留“表面细节待确认”,不要强行选择标签。

目标表面与背景应分别描述。背景图案丰富,不能替代物品表面的纹理记录;物品局部细节少,也不能扩展为整幅图像没有细节。同一物品不同区域可以有不同观察,记录粒度应跟随实际可见范围。

并列不同样本时,应同时展示形状、颜色、尺寸、反光和画面占比差异。这样的对照可以帮助提出后续问题,但不能声称只改变了纹理,更不能推出“增加纹理即可修复重建”。本篇不展开现有资料未说明的内部特征匹配或优化机制。

image.png

图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
不将修改标签解释为撤回已推入输入

image.png

图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篇再关联产物区域与输入现象。

image.png

图5为交接规划,数量保持“—”,输入可用性待核验,不代表已有可重建批次或可重放数据。

五、结论

本篇建立了从可见现象到观察记录、再到处置理由的方法。它能够规定后续如何留下依据,尚不能报告已经发生的异常,也不能预判反光或低纹理必然导致重建失败。调整条件和重拍都是实验策略,没有由此取得最佳曝光参数、最低纹理要求或质量保证。

人工标签也不等于系统质量评分。重建指南说明系统会从推入数据中自动选择关键帧,因此某帧被标记或成功推入,都不足以认定它必然参与最终重建。应用不能用标记数量推算关键帧数量。

后续即使在同一批次中看到输入亮区与产物缺陷同时出现,也要继续核对形状、覆盖、照明及其他偏差。共现可以形成待验证问题,因果判断仍需更充分的对照。未覆盖的表面仍按前篇单列,不能通过质量标签承诺全表面恢复或测量精度。

下一篇将把问题推进到实际任务:在统一环境和可追溯记录下,这些批次能否被接收、完成重建并保存?答案需要来自第4篇的真实调用与产物证据。

Logo

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

更多推荐