aicg-detector — cascade_v1 full-image ONNX
AIGC 人物图缺陷二分类器(pass=0 / reject=1)的部署版 ONNX。
由 Phase2 级联模型(全图 ConvNeXt-Tiny + hand/anatomy/face 专家 + 融合头)的 S2 权重导出。
导出时移除三个专家分支,等价于消融中的 full_image_only(专家特征置零、mask 取「缺失」档),
因此只需一张整图即可推理,指标与完整级联几乎一致。
文件
cascade_v1_fullonly.onnx— 单输入全图模型(约 111 MB)
接口
| 名称 | 形状 | 说明 | |
|---|---|---|---|
| 输入 | image |
[B, 3, 512, 512] |
float32,RGB,动态 batch |
| 输出 | logit |
[B] |
原始 logit,需 sigmoid 转概率 |
预处理需与训练一致:resize/pad 到 512×512,按 ImageNet 均值方差归一化
(mean=[0.485,0.456,0.406], std=[0.229,0.224,0.225])。
用法
import numpy as np, onnxruntime as ort
sess = ort.InferenceSession("cascade_v1_fullonly.onnx", providers=["CPUExecutionProvider"])
# x: float32 [B,3,512,512], 已归一化
logit = sess.run(["logit"], {"image": x})[0]
prob_reject = 1.0 / (1.0 + np.exp(-logit)) # sigmoid
指标(隔离 test,n=593,reject=150)
| 模型 | ROC-AUC | PR-AUC |
|---|---|---|
| Phase1 baseline(ConvNeXt-Tiny 全图) | 0.955 | 0.880 |
| Cascade S2(完整,训练时三专家) | 0.970 | 0.924 |
| 本 ONNX(full-image-only) | 0.969 | 0.924 |
阈值(按召回率约束选,勿直接用 0.5)
级联分数整体偏小,部署请按业务召回率扫阈值:
| 约束 | Precision | Recall | 阈值(sigmoid 概率) |
|---|---|---|---|
| R≥0.90 | ≈0.80 | ≈0.91 | ≈3.9e-7 |
| R≥0.95 | ≈0.67 | ≈0.95 | ≈9.0e-8 |
| R≥0.99 | ≈0.39 | ≈0.99 | ≈3.2e-8 |
备注
- 训练/评测代码见内部仓库
aicg-detector(scripts/export_onnx.py为本文件导出脚本)。 - Hand 分支在训练时 ROI 缓存为空,对指标无实质贡献;架构已预留。