一、前言同一件桌面物品第一次靠近拍摄第二次退远一些、绕到背面又换了背景。即使后续重建出现差异也很难回答主要影响来自距离、覆盖范围还是背景增加照片数量并不能补回没有记录的条件。“桌面三维记录册”需要先建立可比较的输入批次。第1篇用experimentId、sampleId和baselineId关联实验、样本与基线本篇继续使用这些标识增加采集条件、路线和逐次推入记录。目标是让每批输入都能说明计划改变什么、实际发生什么、依据保存在哪里。当前尚未取得具体样本、设备实测和采集批次。因此以下内容是一套待执行的实验协议计划值与实际值分别保存。距离分组、路线和背景对照属于本文设计不是官方最佳实践。重建完成留给第4篇确认质量差异留给第5篇评价本篇先解决输入是否能够被解释和追溯的问题。二、变量与条件2.1 继承环境明确适用范围每个批次关联第1篇的环境档案保留设备型号、芯片、系统完整构建号、SDK版本和API级别以及样本、摆放、照明与预期浏览范围。关联应指向当次使用的确定记录环境改变后不能只更新同一份档案让旧批次失去原来的条件。共享资料中的重建与会话指南将起始版本标为6.1.0(23)。HarmonyOS 7.0继续作为系列定位现有资料不足以建立二者的准确映射也不能据此称接口为“7.0新增”。本篇不引入NG回调。2.2 一次只主动改变一个因素先登记共同基准再分别建立距离、覆盖和背景对照。距离变化批次与背景变化批次各自对照基准不直接互作基准否则比较中又会混入多个变化。对照组主动改变项计划保持一致必须另记的影响或偏差距离组相机至物品参考点的距离样本、背景、照明、观察方向集合、镜头、变焦和采样规则画面占比、出框、对焦与路径偏差覆盖组方位范围高度另设子实验距离、样本、背景、照明和镜头设置帧数、时长、采样密度与遮挡背景组预先定义的背景条件样本位置、距离、路线、灯位和采样规则反射、曝光变化与物品误移动距离要说明测量两端、单位和工具。桌面俯视图上的水平路线半径与相机到物品参考点的空间距离并不相同相机高度改变时不能继续用同一个半径值代替空间距离。重复次数与执行顺序在采集前登记实际中断和偏差在执行后补充。固定灯位也不意味着受光和曝光必然不变设备或操作者可能遮光背景也可能改变反射。这些伴随变化是解释结果时需要考虑的混杂因素。代码C1为应用自定义的JSON骨架。plannedConditions保存计划actualConditions按相同条件结构填写实测与观察当前整体未知使用null。标识在建档时分配notExecuted沿用前篇的应用执行状态。{experimentId:null,sampleId:null,baselineId:null,captureBatchId:null,environmentRef:null,executionState:notExecuted,changedFactor:null,plannedConditions:{placementRef:null,lightingRef:null,distance:{value:null,unit:null,referencePoint:null,cameraReference:null,measurementMethod:null,toolAndVersion:null},coverage:{azimuthRange:null,cameraHeight:null,pitchRange:null,targetSurfaces:null},lens:null,zoom:null,samplingRule:null,background:{color:null,pattern:null,material:null,placement:null}},actualConditions:null,pathRef:null,actualPathEvidenceRefs:[],repeatPlan:null,executionOrder:null,deviations:null,evidenceRefs:[]}changedFactor填写本批主动改变的因素基准批次应明确标为基准。pathRef关联计划路线实际路线证据另存。证据条目继续保留来源类型、时间和关联对象避免把一张现场照片误用为整批条件始终不变的证明。三、执行过程3.1 固定物品把路线写成可重复的计划路线从物品摆放开始定义记录桌面位置、物品朝向和参考点然后指定设备起点、移动方向、路径分段、停留或采样位置以及结束条件。每段还应说明希望观察的表面让路线与预期浏览范围对应。俯视图适合表达设备绕到了哪些方位却不能表达完整三维位姿。相机高度、俯仰范围和朝向规则需要文字或侧视标记补充。路线表上的“经过背面”也应与真实图像中的背面可见性分别核对。图1为计划路径与界面规划不代表AR Engine实测轨迹高度和俯仰信息需与俯视路线一起阅读。单批采集期间保持物品静止。若误碰物品应记录发生位置、时间及受影响范围无法确认前后条件一致时结束该批并重新建批。不能把移动前后的输入默认为同一静态场景。底面与被遮挡区域单列为未覆盖区域。为了补拍底面而翻动物品会改变物品与环境的关系不能直接混入原批。现场辅助照片可以记录摆放与灯位但它们是否属于重建输入也要明确区分。3.2 距离对照保留原始构图变化距离组先登记各条件及测量方法再按同一观察方向集合采集。镜头与变焦设置保持一致不通过变焦补偿物品大小。实际距离依据测量记录填写并保留测量对应的路线位置手持绕行不能只用起点距离代表全程。比较取景时选择对应观察方向的完整画幅记录物品占比和边缘是否出框。若需要量化占比还应说明采用包围框还是区域面积等方法。不同裁剪会掩盖距离带来的构图变化因此不能把裁剪后的局部图作为原始取景对照。图2保留实拍对照槽位照片与测距记录待补当前没有距离效果结论。如果某距离条件出现对焦变化、模糊或出框先登记现象与帧引用。详细质量标签由第3篇补充不能凭单张照片清晰就宣布该距离适合重建也不据此设置最佳距离或成功阈值。3.3 覆盖对照先确定看哪些方向覆盖组拆成方位与高度两个子实验。研究方位时保持高度与俯仰规则一致研究高度时固定方位范围单独登记高度条件。一次同时增加绕行范围和俯拍层次后续很难解释新增信息来自哪里。本协议默认保持采样密度规则一致例如按相同的方位分段规则安排采样具体间隔在执行前确定。覆盖扩大后实际帧数和采集时长可能随之增加必须一起记录。这种比较反映一套采集方案的变化不能单独证明覆盖范围的因果效果。若后续需要隔离帧数影响应另设匹配输入规模的对照同时说明匹配帧数可能改变采样密度。图1中的路径分段用于核对计划覆盖表面是否可见仍要检查图像走完路线、获得可见信息和得到良好重建是不同层次的事实。3.4 背景对照只在批次之间替换背景条件需要描述颜色、图案、材质、放置位置及其与物品的关系。“干净背景”或“复杂背景”不足以复现现场。例如仅记录“有图案”仍不够还需要保留图案分布和背景摆放证据。背景只在不同批次之间替换。替换后重新核对物品位置与朝向、路线参考和灯位并记录核对依据。如果更换材料时同时改变颜色与纹理本次比较的是整体背景条件不能把后续差异单独归因于纹理。图3的真实背景对照素材待补不能用合成照片补作采集证据。固定照明布置后仍需观察阴影、反射和曝光是否变化。背景替换若伴随物品移动也应进入偏差记录。协议只规定如何描述和控制条件不预设某种背景必然改善重建。3.5 输入检查图像、内参与位姿必须对应相机内参描述成像关系位姿描述拍摄时相机的位置与朝向。应用需要把它们关联到同一帧不能将相邻帧的信息随意配对。明确限定输入图像宽1080像素、高1440像素其他尺寸结果未定义。检查对象是输入数据界面预览区域或手机截图尺寸不能代替数据尺寸证据。帧标识和关联字段齐全也不意味着数值、坐标约定与数据有效性已经核验。图4展示待核验的检查结构实际尺寸、检查结果与原始返回值尚未取得。AR Engine路径要求推入前先更新AR计算结果。C2用text伪代码表达顺序中文动作均为应用待实现逻辑。资料未完整提供的成功判定和有效性检查保留为核验前提不新增系统枚举。前提设备支持与环境已核验spatialReconSession 已成功创建 前提arSession、arConfig 已按目标SDK要求创建 前提配置、更新和输入有效性的判定依据已核清否则停止 previewStatus ← HMS_AREngine_ARConfig_SetPreviewSize( arSession, arConfig, 1080, 1440) 保存 previewStatus 原值 若不能确认配置成功记录原因结束本流程 按目标SDK要求完成其余AR配置、使配置生效并准备 arFrame 若这些前提未满足结束本流程 对每次计划输入 arUpdateStatus ← HMS_AREngine_ARSession_Update(arSession, arFrame) 保存本次AR更新原值与证据关联 若更新失败或无法确认成功 记录未推入原因不调用推入接口 结束本次输入处理 核对本次图像尺寸、图像与内参及位姿对应关系、数据有效性 若检查失败或仍待核验 记录原因不调用推入接口 结束本次输入处理 spatialPushStatus ← HMS_SpatialRecon_PushARFrame( spatialReconSession, arSession, arFrame) 保存本次调用序号、帧关联、spatialPushStatus 原值与证据 若推入结果异常或无法解释暂停后续推入保留现场待核查自组帧路径使用HMS_SpatialRecon_DataFrame资料要求RGB格式。现有文本没有完整展开位姿字段、坐标约定与缓冲区要求因此本篇不补写转换实现。图像若经过旋转、缩放或裁剪不能只修改宽高便视作合规相关数据对应关系未核清时停止该输入路径。系统会自动选择关键帧。采集帧数、推入调用次数和逐次返回值应分别保存调用次数或成功返回次数都不能推算关键帧数。批次隔离也必须落实到输入集合。本文计划为各对照批次使用各自新建的重建会话并关联会话记录避免旧输入混入。具体调度与后续内容衔接不假定存在清空输入或离线重放接口。会话要求工作目录为已存在的应用文件目录子目录并在所有相关任务完成后才能销毁会话。换批次不能成为提前销毁运行中会话的理由。四、记录结果当前可交付的是协议与记录结构尚无采集、推入或重建结果。下面以单批详情表列出待填内容实际执行后每批独立填写并关联C1。未知数值使用null不能用0表示“还没有测”。记录项当前内容后续填写依据批次、样本、基线待关联建档记录改变因素待填写对照计划计划实际条件待填写null条件表与现场证据覆盖偏差与中断null路线分段和事件记录采集帧数null按帧标识统计注明去重规则推入调用次数null逐次调用记录原始返回值引用待关联AR更新、Spatial Recon推入分别保存采集时长及测量方法null待填写起止事件、单位、工具及版本执行状态未执行执行后依据事实更新系统关键帧数未知无对应证据不由调用数推算图5为空记录界面规划未知数量显示“—”执行状态为“未执行”不展示运行日志。计时需要先定义边界。本文拟从应用登记“开始本批采集”到登记“结束本批采集”计算整段时长中断单独记录若另算有效采集时长应说明扣除规则。工具、单位及实际起止证据执行后填写采集时长不能标成重建耗时。C3展示一次输入尝试的记录骨架。AR更新返回值属于AREngine_ARStatus推入返回值属于HMS_SpatialReconStatus两者不能共用状态解释。以下字段均为应用字段不是SDK结构成员。{captureBatchId:null,frameId:null,inputEvidenceRef:null,sessionRecordRef:null,arUpdate:{executionState:notExecuted,rawStatus:null,evidenceRefs:[]},inputCheck:{executionState:notExecuted,actualWidth:null,actualHeight:null,correspondenceEvidenceRef:null,result:null,evidenceRefs:[]},spatialPush:{executionState:notExecuted,callSequence:null,rawStatus:null,notCalledReason:null,evidenceRefs:[]}}更新失败时仍应保存该次尝试即使没有可关联的有效帧重复推入同一帧则分别记录调用。统计不能直接数JSON条目充当采集帧数。真正执行后若因前置检查受阻而零次推入才可据记录填写0及原因。下一步需补齐样本与环境、具体分组和测量工具核验输入检查依据再取得实拍和逐次调用证据。三段示例用于解释设计不构成完整采集工程权限、AR生命周期、原始数据导出与位姿转换均未在此实现。五、结论这套协议能够提高条件与证据的可追溯性但不能保证重建质量也不能推出最佳距离、最少帧数或背景成功率。路线覆盖只是计划与执行信息底面和遮挡面仍需明确列出不能扩展为全表面恢复或测量级扫描承诺。本篇交付采集协议、待填写的基准条件、路径说明、批次与调用模板以及证据缺口。取得真实数据后才能交付基准批次空记录不能称为已完成采集。第3篇沿用相同标识补充曝光、反光和低纹理标签第4篇记录实际重建与保存第5篇再将缺陷关联回输入条件。原始图像和相机信息能否持久化并重新推入还需补充依据和验证。档案中的证据关联仅表示能够查找记录不等同于已经形成可重放的数据包。