# Image Quality Classification - EfficientNet-B0 基于 EfficientNet-B0 的图片内容分级模型,支持 L1-L4 四级分类。 ## 分类标准 | 等级 | 说明 | 示例 | |------|------|------| | **L1** | 轻度性感内容 | 正常身材+性感内衣/衣物遮挡下体,姿势正常无性暗示 | | **L2** | 中度性感内容 | 夸张身材+衣着性感/较少,姿势有较强性暗示 | | **L3** | 重度性感内容 | 裸露(半裸/全裸),私密部位暴露 | | **L4** | 色情内容 | 明确性行为/性交内容 | 详细分级标准见 [数据准备文档](https://huggingface.co/jiangchengchengNLP/image_l_class_efficient/blob/main/docs/数据准备.md) ## 模型性能 ### 基准测试 | 项目 | 值 | |------|-----| | 模型 | 0.onnx | | 架构 | EfficientNet-B0 | | 大小 | 14.2 MB | | 精度 | FP32 | | 设备 | CPU | ### 推理速度 | 指标 | 值 | |------|-----| | Mean | 82.04 ms | | Median | 96.23 ms | | P99 | 188.17 ms | | Min | 11.72 ms | | Max | 209.72 ms | | FPS | 12 | ### 分类精度 | 等级 | 准确率 | |------|--------| | Overall | 82.50% (n=1400) | | L1 | 87.47% | | L2 | 73.31% | | L3 | 84.87% | | L4 | 82.93% | ## 使用方式 ### ONNX Runtime 推理 ```python import onnxruntime as ort import numpy as np from PIL import Image from torchvision import transforms # 加载模型 session = ort.InferenceSession("0.onnx") input_name = session.get_inputs()[0].name # 图像预处理 transform = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), ]) img = Image.open("image.jpg").convert("RGB") input_tensor = transform(img).unsqueeze(0).numpy() # 推理 outputs = session.run(None, {input_name: input_tensor})[0] pred_id = np.argmax(outputs, axis=1)[0] class_names = ["L1", "L2", "L3", "L4"] print(f"预测等级: {class_names[pred_id]}") ``` ### 命令行推理 ```bash python inference.py --model 0.onnx --image /path/to/image.jpg ``` ## 权重文件 | 文件名 | 大小 | 说明 | |--------|------|------| | 0.onnx | 14.2 MB | FP32 ONNX 模型(最佳权重) | ## 训练 训练代码位于 [image_L_class_train](https://github.com/jiangchengchengNLP/image_L_class_train),基于 EfficientNet-B0 + timm 训练框架。 ### 训练数据 - 来源:Civitai 图片分级标注 - 分级:L1-L4 四类 - 数据量:约 6000 张 ## 部署建议 - **CPU 推理**: ONNX Runtime 直接部署,单张约 80ms - **GPU 推理**: 可用 TensorRT 优化,速度提升 5-10 倍 - **INT8 量化**: 可进一步压缩体积至 ~5MB,速度提升 2-3 倍