← 首页 · 边缘工程 边缘工程

边缘 AI:INT8 量化与标定实操手册(电力视觉 / 传感)

调研日期:约 2026-10-25(Asia/Shanghai)
定位:站端部署前如何做 PTQ / QAT、建校准集、走各 NPU 公开工具链、设精度门禁,并与 model.ver / 签名仓 / Mender / 主动学习回流对齐。
衔接:edge-ai-board-fps-power-matrix.md、edge-ai-cn-npu-fps-matrix.md、edge-ai-model-signstore-mender-cookbook.md、edge-ai-active-learning-relabel-loop.md、edge-ai-event-schema-acceptance.md、edge-ai-d60-d90-acceptance-checklist.md、edge-ai-license-ledger-template.md、edge-ai-substation-gateway-bom.md、edge-ai-ppe-smoke-fire-model-shortlist.md。
原则:只写公开文档可核验的路径与概念;不确定标 unknown;不编造未公开厂商私有命令或 SDK 内部开关。Zoo FP16/INT8 FPS ≠ 合同保证值。


0. 一句话结论与红线

结论:电力边缘视觉默认走 PTQ INT8(校准集必须同源场景);关键类别跌幅超阈或头敏感时再上 混合精度 / QAT;量化产物以内容哈希为 model.ver 进签名仓,站内端到端复测通过后才切 current。

红线 ID 禁止项 说明
Q1 Zoo FP16/INT8 FPS 进合同 Model Zoo / 官网 model-only 吞吐不得作保证值;对齐 D90-11 / V2
Q2 量化后不站内复测就上线 校准过 ≠ 站端过;须同验证集 v1 + 目标板 + 真实解码复测(D60-11)
Q3 校准集异源 / 过小 禁止只用 COCO128、随机噪声或纯室内图校准站内安监/烟火/表计;须覆盖目标光照与天气
Q4 AGPL / NC 权重进 prod 量化仓 Ultralytics AGPL、CC BY-NC、仅学术权重禁止商用 INT8 制品入仓(台账 + D60-05 / V3 / V9)
Q5 model.ver 与校准集哈希脱钩 权重 SHA、校准集清单 SHA、工具链版本须写入 manifest;缺一不可签名发布

1. PTQ vs QAT:何时用

路径 需要什么 适用 不适用
PTQ(训练后量化) 代表性校准集(无标签亦可估激活范围);厂商编译器 PPE / 闯入 / 多数检测骨干;首版上线默认 极小目标、红外窄动态、表计指针细线等 PTQ 断崖时
混合精度 / 敏感层回浮点 PTQ + 层白名单(如 RKNN hybrid、OpenVINO accuracy-control) 检测头 / 小目标层 INT8 敏感 全图强制纯 INT8 且板端无 FP16 算力时
QAT(量化感知训练) 可训权重 + 模拟量化节点 + 有标签训练集 PTQ/混合仍超跌幅阈;长期主模型 无站内复标数据、一周内要交付 POC

选型口诀:先 PTQ → 门禁不过再混合 → 仍不过再 QAT。传感 1D(振动/局放)若跑 MCU TinyML,另见 edge-ai-mcu-tinyml-sensing-cookbook.md,本文以视觉 NPU 为主。


2. 校准集:样本量与电力站分布

2.1 规模建议(可配置,写入验收协议)

用途 建议样本量 备注
PTQ 校准(估 scale/zp) 200~500 张(OpenVINO NNCF 文档常举例 ~300) 过少易断崖;过多收益递减
精度门禁验证集 v1 ≥500 张或 ≥10 min 标注片段(对齐 Schema 验收) 冻结并哈希;与校准集可重叠但须声明
难例补校准 每周主动学习回流难例的 10%~30% 并入下一轮校准池 见复标闭环手册

无标签校准只服务量化参数;召回/mAP 门禁必须有标签验证集。

2.2 电力站分布清单(校准与验证都应覆盖)

维度 必须覆盖 典型失败模式
光照 晴天顺光 / 逆光 / 阴天 / 站内灯光 逆光人体框漂移、帽扣漏检
夜间 红外补光可见光、弱光、眩光 INT8 对暗部激活夹紧 → 人/烟漏检
天气 雨雾、镜头水珠、灰尘污秽 蒸汽/雾当烟火误报
场景 刀闸间隔、构架、大门、电缆沟口 区外行人误闯、背景纹理伪烟
任务特化 PPE:帽/服/近电;烟火:白烟/黑烟/电焊弧;表计:指针/数显/污表;红外:伪彩/灰度 表计细针、红外窄温差对 INT8 极敏感
传感(若同仓) 与视觉分轨校准;勿用视觉图校准 1D 域错误直接废模型

硬规则:校准预处理(mean/std、RGB/BGR、640 letterbox)必须与线上推理 逐字节一致;Hailo 等需在 model script 声明 normalization(公开文档要求 mean/std 与训练域对齐)。

2.3 校准集制品

calib/<task>/<date>/
  images/                 # 或 npy;路径清单 dataset.txt / 清单 CSV
  manifest_calib.json     # sha256 of sorted file list + per-file sha
  preprocess.yaml         # 与线上一致的输入规格

manifest.json(模型仓)应引用 calib_sha256 与工具链版本字段(见 §5)。


3. 工具链对照表(公开文档级)

命令为示意骨架,以各厂商当前文档为准;大版本切换时参数可能变更(如 TensorRT 11 移除 trtexec --int8/--calib)。不确定处标 unknown。

平台 / 产物 公开路径(文档级) 校准输入形态 备注
NVIDIA TensorRT → .engine TRT 10.x:Polygraphy/IInt8Calibrator 生成 cache,再 trtexec --onnx=… --int8 --calib=….cache --saveEngine=…(无 cache 时动态范围随机,精度不可用)。TRT 11.x:先 ModelOpt 离线量化 ONNX,再 trtexec 仅构建(--int8/--calib 已移除) 代表性 batch;Polygraphy data-loader 脚本 Engine 绑 JetPack/TRT/GPU;换板重建
OpenVINO → IR INT8 现行主推 NNCF nncf.quantize / quantize_with_accuracy_control(POT 已迁移);文档示例校准子集约 300 nncf.Dataset + transform 工控 NPU/CPU 须本机 benchmark_app 复测
RKNN-Toolkit2 → .rknn config → load_onnx → build(do_quantization=True, dataset='dataset.txt');精度不够用 hybrid_quantization_step1/2(改 custom_quantize_layers 回 float16) dataset.txt 每行一图(多输入空格分隔) 布局/自定义头可能逼改图;Zoo 单核 FPS≠三核管线
ONNX Runtime QDQ 训练或 PTQ 插入 Q/DQ 节点 → ORT / 下游编译器消费 视量化工具(ORT quantization / NNCF ONNX 等) 作中间交换;最终仍以板端编译器为准
Ultralytics export model.export(format='engine'|'rknn'|'openvino'|'hailo'|…);Hailo 路径可传 data= 校准 YAML 默认任务小集(如 COCO128)不够电力域 AGPL-3.0:商用闭源须 Enterprise 或改 A 轨(YOLOX/RTMDet Apache)
算能 Sophon → .bmodel TPU-MLIR:model_transform → run_calibration → model_deploy --processor BM1684X|BM1688|CV186X 校准图集(官方例程目录) 与 bmruntime/bmrt_test 绑定 SDK 大版本
地平线 RDK / 旭日 → .bin ONNX → hb_mapper(如 makertbin,march 如 bayes-e)等公开 RDK DOC 流程 校准集需域内;具体 flag 以当前 DOC 为准,版本差标 unknown X5 等 BPU INT8;HEF 类比勿混用
爱芯 AX → .axmodel ONNX → Pulsar2 → AxEngine;--target_hardware 切芯片 域内校准;命令细节以 AXERA 公开手册为准 AX650/AX630C 算力口径不同
Hailo → .hef DFC:translate → optimize(calib) → compile;8 与 8L HEF 不通用 域内图;model script normalization DFC 常在客户区;Pi5 PCIe×1 打折
高通 QNN ONNX → QNN / AI Hub → HTP unknown(客户文档为主) 非信创首选时作备选
Coral Edge TPU 全整型 TFLite → edgetpu_compiler 训练期全整型量化 新开电力项目不优先

统一训练侧出口:优先 ONNX(固定 shape、与线上预处理一致) → 各板编译;禁止把未量化随机 INT8 engine 当验收件。


4. 精度门禁(可配置阈值)

写入验收协议 / 配置基线;下列为系列默认建议,合同可严可松,但不得空缺。

门禁 默认阈值 级别
全局 mAP@0.5(或任务约定 F1)相对 FP32/FP16 基线 绝对跌幅 ≤ 2.0~3.0 pp(百分点,可配置) 超标 → 否决(升 D60-11)
业务召回(验证集 v1) 相对基线跌幅 ≤ 约定 %(建议 ≤5% 相对或按合同) 否决
关键类别单独否决:person / 烟火类 / 表计读数类 各类召回跌幅 ≤ 约定(建议严于全局);烟火误报率不升 否决(任一类超标即拒收)
端到端 FPS / 功耗 对齐 FPS 矩阵与 BOM 档位自测,不抄 Zoo 否决(D90-01)
许可 校准数据与骨干 SPDX 绿行;无 NC/AGPL 未授权 否决(D60-05)

报告最少列:基线 model.ver、INT8 model.ver、校准集 SHA、工具链版本、逐类 AP/召回、跌幅、是否混合/QAT、目标板序列号。


5. 与 model.ver / 签名仓 / Mender / 主动学习衔接

复标难例 → A 轨微调 →(可选 QAT)→ ONNX
    → 板端 PTQ/混合 → 精度门禁
    → manifest(model.ver=权重SHA + calib_sha + toolkit_ver)
    → Ed25519 签名 → 模型仓
    → 设备验签 → store/<sha> → canary → current
失败 → previous / Mender 不回滚 rootfs
字段 / 动作 要求
model.ver = 主权重文件 SHA-256 hex(.rknn/.engine/.bmodel/.hef/…)
compat.runtime 记录 tensorrt / rknn_toolkit2 / tpu-mlir / hailort 等版本
calib_sha256 校准清单哈希;变更校准集必须重新量化并新 model.ver
license_ledger_id 台账行号(WT-xxx)
Mender 只管 rootfs/Agent/公钥;大权重走数据分区签名仓(分轨,D60-07)
主动学习 难例闭环 ≥2 周期才谈 D90;每轮 INT8 跌幅写入 A/B 摘要

错签 / 门禁失败:发 MODEL_VERIFY_FAIL 或保持旧 current,禁止热切未过门禁制品。


6. 两周落地清单 + 验收门禁

第 1 周:校准与工具链打通

日 动作 产物
D1 冻结验证集 v1 + 哈希;从站内抽校准 200~500 张覆盖 §2.2 manifest_calib.json
D2 确认骨干许可(A 轨 Apache 优先);台账勾选 台账绿行
D3–4 ONNX 导出;目标板 PTQ(RKNN / TRT / TPU-MLIR / … 择一主路径) 候选 INT8 权重
D5 同验证集对比 FP 基线;记逐类跌幅 《精度对比表》草稿
D6–7 超阈则 hybrid / accuracy-control;仍超则排 QAT 数据 混合配置或 QAT 计划

第 2 周:门禁、签名、站内复测

日 动作 产物
D8 填 manifest + 签名;灌 canary 设备 签名包
D9 真机解码 + N 路负载;FPS/功耗/温度 与 FPS 矩阵口径一致的自测表
D10 夜间/逆光/雨雾抽测关键类 抽测记录
D11 故意坏签名与精度不过包演练回滚 演练日志
D12–14 汇总报告;勾 D60-11;主路径切 current 签字报告

验收门禁(本手册)

  • [ ] Q1~Q5 红线无违反
  • [ ] 校准集同源且分布勾选完整
  • [ ] 精度表含关键类;未超配置阈
  • [ ] model.ver = 内容哈希;校准 SHA、工具链版本在仓
  • [ ] 站内端到端复测(非 Zoo)通过

7. 与系列文档衔接

文档 衔接点
edge-ai-substation-gateway-bom.md 档位决定主编译器(RK / 算能 / Orin / …)与散热余量
edge-ai-board-fps-power-matrix.md / edge-ai-cn-npu-fps-matrix.md 导出路径与 INT8 注意点;承诺值只认自测
edge-ai-event-schema-acceptance.md model.ver、INT8 跌落否决、验收协议措辞
edge-ai-d60-d90-acceptance-checklist.md D60-11 精度报告;D90-01/05/08/11
edge-ai-model-signstore-mender-cookbook.md manifest、验签、current/previous
edge-ai-active-learning-relabel-loop.md 难例→微调→再量化
edge-ai-license-ledger-template.md AGPL/NC 红线;校准数据来源 SPDX
edge-ai-ppe-smoke-fire-model-shortlist.md 等 SOP 任务类名与关键类否决清单

8. 参考(公开入口)

  • NVIDIA TensorRT:Command-Line Programs;Polygraphy INT8 calibration 例;TRT 11.x trtexec 迁移说明(ModelOpt)
  • OpenVINO:Post-training Quantization / NNCF basic & accuracy-control(约 300 sample 示例)
  • airockchip/rknn-toolkit2:User Guide;examples/functions/hybrid_quant
  • 算能 TPU-MLIR:run_calibration → model_deploy(sophon-demo)
  • Hailo Dataflow Compiler:optimize + calibration;Ultralytics Hailo export 校准说明
  • Ultralytics 各 format export 文档(注意 AGPL)

具体 chip SDK 小版本命令以到货文档为准;本文不固化未核验的私有 flag。


全文完。本地路径:/workspace/research/edge-ai-int8-quant-calibration.md。未改飞书。

← 边缘 AI:GStreamer 芯片元素矩阵 + OTA 实操对比(Mender / Balena / 自建) 首页 边缘 AI:MCU / TinyML 电力传感特征提取与上送手册(可执行) →