# 机器学习力标定模型契约 用途:reference。范围:SDK schema 3 中预留的 ML 模型后端(首个示例 `onnx/1`)与输入 profile 约束。文件选择、身份、逐帧生命周期与有效性状态由[统一力标定模型契约](calibration-model-contract.zh.md) 负责。状态:仅保留契约,SDK 尚未实现 ONNX 后端;实现与验证通过前必须拒绝加载。 同一 SN、路径和外层字段不变,只替换 `model`。下面只预留 `onnx/1` 示例, 不表示 SDK 已支持 ONNX。 ```json { "type": "onnx/1", "input_profile": "fn_delta_autocal_uv/1", "output_frame": "sdk_force/1", "outputs": ["fn"], "params": { "input_tensor": "features", "output_tensor": "force_N", "feature_order": ["delta_raw", "u", "v"], "dtype": "float32", "shape": [1, 3], "valid_force_range_N": [0.0, 3.0] }, "artifacts": [ { "role": "weights", "path": "DD02-GL-001/model.onnx", "sha256": "0000000000000000000000000000000000000000000000000000000000000000" } ] } ``` 此标量 profile 的规范输入即上述顺序、类型、形状;输出 float32 `[1, len(outputs)]`, 轴序严格按 `outputs`。归一化及单位转换封装在已验证的模型图内,不由应用另做。 `fn_delta_autocal_uv/1` 只允许 `outputs=["fn"]`,不能凭 FN 特征宣称三轴已标定。 需要图像、完整光流或历史序列时新增输入 profile,明确 H/W、通道、掩码、单位和时间窗口; 没有对应特征的处理器拒绝加载,不能用零张量凑齐输入。 `artifacts` 只在有外部文件时必填;路径相对所选 JSON 的父目录,禁止绝对路径、URL、 `..` 或链接逃逸。校验 SHA-256、角色和文件完整性后才初始化受支持的后端。 不加载 pickle、任意 Python 或模型自带扩展库;缺推断依赖须明确报错,不自动安装。 文件与所有附件共同构成内容指纹,不能只哈希 JSON。 附件间依赖也须逐项声明和校验,未声明的外部权重不可加载。