moyanjdc commited on
Commit
5830068
·
verified ·
1 Parent(s): 6850476

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +198 -67
README.md CHANGED
@@ -17,109 +17,240 @@ tags:
17
 
18
  ---
19
 
20
- # IsACG “是否是 ACG 图像”的二分类模型系列
21
 
22
- IsACG 是一个专注于判断图像是否为 ACG(**Anime、Comic、Game**)/二次元风格的轻量化图像分类系列模型。模型基于 **MobileNetV3-Large** 和 **MobileNetV3-Small** 构建,在保证性能的同时注重低资源占用,适用于多种部署环境。
 
 
 
 
 
23
 
24
- ---
25
 
26
- ## 模型架构说明
27
 
28
- - **v1**:`mobilenet_v3_large`
29
- - 参数量约为 5.5M
30
- - 更高的分类精度,适用于中端服务器或推理精度优先的场景。
 
 
31
 
32
- - **v1s**:`mobilenet_v3_small`
33
- - 参数量约为 2.5M;
34
- - 更轻便、更快的推理速度,适合边缘设备、嵌入式系统和移动端部署。
35
 
36
- - **v2**:v1s 的改进版本,融合了更广泛的数据训练和数据增强,提升泛化性;
37
- - 参数量相近;
38
- - 在复杂图像(如风格混合、低分辨率)上更具鲁棒性。
 
 
39
 
40
- ---
41
 
42
- ## 分类任务
 
 
 
 
 
43
 
44
- - **目标标签**:二分类
45
- - `"yes"`:图像为动漫、漫画或游戏相关风格;
46
- - `"no"`:图像为现实照片、插画或其他非 ACG 风格。
 
47
 
48
- ---
49
 
50
- ## 快速使用
51
 
 
 
 
52
 
 
53
 
54
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
 
56
- ## 模型配置
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
57
 
58
- 默认标签配置:
59
- ```json
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
60
  {
61
- "0": "no",
62
- "1": "yes"
 
63
  }
64
  ```
65
 
66
- ---
67
 
68
- ## 模型性能对比(示例)
 
 
69
 
70
- | 模型版本 | 架构 | Accuracy | 推理速度 (FPS) | 参数量 | 主要特点 |
71
- |----------|------------------|----------|----------------|--------|----------------------------|
72
- | v1 | MobileNetV3-Large | 99.1% | 35 | 5.5M | 精度高,适用于服务器环境 |
73
- | v1s | MobileNetV3-Small | 98.9% | 65 | 2.5M | 轻量、快,在移动设备上表现好 |
74
- | v2 | MobileNetV3-Small | 97.5% | 58 | 2.5M | 增强泛化,适用更多风格 |
75
 
76
- ---
 
 
 
77
 
78
- ## 数据来源与训练
79
 
80
- - **数据集结构**:
81
- - 正样本:ACG 图像(动漫截图、漫画分镜、游戏画面);
82
- - 负样本:非 ACG 图像(照片、现代 UI、3D 渲染、自然风景等);
83
- - **优化器**:AdamW
84
- - **学习率调度**:ReduceLROnPlateau
85
- - **训练框架**:PyTorch + TorchVision 库;
86
- - **支持图像尺寸**:512x512 或上下文自适应填充。
87
 
88
- ---
 
 
 
 
89
 
90
- ## 示例输出
91
 
92
- | 输入图像 | 输出类别 |
93
- |----------------------|--------------|
94
- | 动漫插画截图 | `"yes"` |
95
- | 漫画分镜 | `"yes"` |
96
- | Steam 商店游戏页面截图 | `"yes"` |
97
- | 真实风景照 | `"no"` |
98
- | 人物写实照片 | `"no"` |
99
- | 篮球明星图像 | `"no"` |
100
 
101
- ---
102
 
103
- ## 模型适用场景
 
 
 
 
104
 
105
- ACG 图像内容识别与过滤
106
- 自动打标与数据筛选系统
107
- 风格分类器嵌入到多模态 AI 系统中
108
- 低资源设备(v1s/v2)快速判断
109
 
110
- ---
111
 
112
- ## 贡献与扩展
113
 
114
- 该项目遵循 MIT 协议开源,欢迎贡献和改进:
115
 
116
- - 为您提供新类型的 ACG 风格标注;
117
- - 提出改进模型泛化性的训练技巧;
118
- - 添加更多语言的模型描述和推理 API 示例;
 
119
 
120
- ---
 
 
121
 
122
- ## 许可协议
 
 
 
 
 
 
 
 
 
 
 
 
 
123
 
124
- MIT License,你可以自由用于研究和商业用途。详情请见 [LICENSE](LICENSE)。
125
 
 
 
 
 
 
 
17
 
18
  ---
19
 
20
+ # IsACG - ACG风格图像分类模型
21
 
22
+ <p align="center">
23
+ <a href="https://huggingface.co/moyanjdc/IsACG"><img src="https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Model%20Hub-yellow"></a>
24
+ <a href="https://pytorch.org/"><img src="https://img.shields.io/badge/PyTorch-2.7-red.svg"></a>
25
+ <a href="https://github.com/moyanjdc/IsACG/blob/main/LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg"></a>
26
+ <a href="https://github.com/moyanjdc/IsACG"><img src="https://img.shields.io/badge/GitHub-Repository-black"></a>
27
+ </p>
28
 
29
+ IsACG是一个轻量级的二分类图像分类模型系列,专门用于判断图像是否为ACG(动画、漫画、游戏)或二次元风格。项目基于PyTorch实现,提供完整的训练、评估和部署流程。
30
 
31
+ ## 🌟 模型特色
32
 
33
+ - **🎯 高精度**: 在ACG识别任务上达到99%准确率
34
+ - **⚡ 轻量快速**: 参数量仅2.5M-5.5M,推理速度快
35
+ - **🔄 多格式支持**: 原生PyTorch、ONNX格式,便于部署
36
+ - **📱 多端适用**: 支持CPU、GPU、移动端部署
37
+ - **🔗 完整工具链**: 包含数据预处理、训练、评估、转换和部署的全套工具
38
 
39
+ ## 模型版本
 
 
40
 
41
+ | 版本 | 架构 | 参数 | 准确率 | 特点 |
42
+ | ---- | ----------------- | ---- | ------ | ---------------------- |
43
+ | v1 | MobileNetV3-Large | 5.5M | ~99.1% | 高精度,适合服务器部署 |
44
+ | v1s | MobileNetV3-Small | 2.5M | ~98.9% | 轻量快速,适合移动端 |
45
+ | v2 | MobileNetV3-Small | 2.5M | ~97.5% | 改进泛化能力 |
46
 
47
+ ## 🎯 使用场景
48
 
49
+ ### ✅ 推荐使用
50
+ - 动漫/漫画内容过滤
51
+ - 游戏截图识别
52
+ - 二次元风格检测
53
+ - 内容审核系统
54
+ - 图像分类管道
55
 
56
+ ### ⚠️ 注意事项
57
+ - 主要针对风格识别,而非内容理解
58
+ - 对于高度风格化的图像(如3D渲染动漫)可能误判
59
+ - 建议图像分辨率不低于256×256
60
 
61
+ ## 快速开始
62
 
63
+ ### 安装依赖
64
 
65
+ ```bash
66
+ uv sync
67
+ ```
68
 
69
+ ### 使用预训练模型
70
 
71
+ 1. **下载模型**:
72
+ - 从[Hugging Face仓库](https://huggingface.co/moyanjdc/IsACG/)下载预训练模型
73
+ - 将模型文件放入`models/release/`目录
74
+
75
+ 2. **命令行推理**:
76
+ ```bash
77
+ python isacg.py --model_path models/release/IsACG_v1s_98.94%.onnx --image_path your_image.jpg
78
+ ```
79
+
80
+ 3. **Web界面**:
81
+ ```bash
82
+ python webapp.py
83
+ ```
84
+ 访问 http://localhost:8080 使用图形界面
85
+
86
+ 4. **API服务**:
87
+ ```bash
88
+ python onnx_server.py
89
+ ```
90
+ 使用POST请求调用 `/predict` 接口
91
+
92
+ ## 完整使用流程
93
 
94
+ ### 1. 数据准备
95
+
96
+ ```bash
97
+ # 准备原始数据
98
+ # 正样本(ACG风格)放在 dataset/yes/
99
+ # 负样本(非ACG风格)放在 dataset/no/
100
+
101
+ # 运行预处理
102
+ python pre_process.py
103
+ ```
104
+
105
+ ### 2. 训练模型
106
+
107
+ ```bash
108
+ # 基本训练
109
+ python train.py --model_name mobilenet_v3_small --epochs 20 --batch_size 32
110
+
111
+ # 使用预训练权重
112
+ python train.py --model_name mobilenet_v3_small --use_pretrained
113
+
114
+ # 启用TensorBoard监控
115
+ python train.py --model_name mobilenet_v3_large --use_tensorboard
116
+ ```
117
+
118
+ ### 3. 模型转换与优化
119
+
120
+ ```bash
121
+ # 转换为ONNX格式
122
+ python conv.py checkpoint.pth -v 1s -a 98.94
123
+
124
+ # 模型量化(减少模型大小)
125
+ python qua.py
126
+ ```
127
 
128
+ ### 4. 模型分析
129
+
130
+ ```bash
131
+ # 查看模型检查点信息
132
+ python look.py checkpoint.pth
133
+ ```
134
+
135
+ ## 项目结构
136
+
137
+ ```
138
+ IsFirefly/
139
+ ├── model.py # 模型定义
140
+ ├── train.py # 训练脚本
141
+ ├── dataset.py # 数据加载
142
+ ├── isacg.py # 推理评估
143
+ ├── conv.py # 模型转换(PyTorch→ONNX)
144
+ ├── qua.py # 模型量化
145
+ ├── webapp.py # Gradio Web界面
146
+ ├── onnx_server.py # Flask API服务
147
+ ├── pre_process.py # 数据预处理
148
+ ├── make_unplash.py # Unplash数据下载���具
149
+ ├── look.py # 模型检查点分析
150
+ ├── pyproject.toml # 项目配置
151
+ └── README.md # 说明文档
152
+ ```
153
+
154
+ ## API接口说明
155
+
156
+ ### REST API (onnx_server.py)
157
+
158
+ ```python
159
+ # 请求示例
160
+ curl -X POST -F "file=@image.jpg" http://localhost:5000/predict
161
+
162
+ # 响应格式
163
  {
164
+ "predicted_class": "acg",
165
+ "confidence": 0.9945,
166
+ "success": true
167
  }
168
  ```
169
 
170
+ ### Python API
171
 
172
+ ```python
173
+ from isacg import TorchInference, ONNXInference
174
+ from PIL import Image
175
 
176
+ # 使用PyTorch模型
177
+ predictor = TorchInference("model.pth", device="cuda")
178
+ result = predictor.predict(Image.open("image.jpg"))
 
 
179
 
180
+ # 使用ONNX模型
181
+ predictor = ONNXInference("model.onnx", device="cuda")
182
+ result = predictor.predict("image.jpg")
183
+ ```
184
 
185
+ ## 训练配置
186
 
187
+ ### 超参数
188
+ - 输入尺寸:512×512
189
+ - 学习率:1e-3
190
+ - 优化器:Adam
191
+ - 损失函数:交叉熵损失
192
+ - 学习率调度:ReduceLROnPlateau
193
+ - 数据增强:随机旋转、水平翻转、日晒效果
194
 
195
+ ### 数据增强
196
+ 项目包含多种数据增强技术,提高模型泛化能力:
197
+ - 随机旋转 (±25度)
198
+ - 随机水平翻转 (p=0.5)
199
+ - 随机日晒效果 (p=0.5)
200
 
201
+ ### 性能指标
202
 
203
+ | 设备 | 推理速度 | 内存占用 | 推荐用途 |
204
+ | --------------- | ------------ | -------- | -------- |
205
+ | CPU (E5-2673V3) | ~25FPS | ~200MB | 本地测试 |
206
+ | GPU (GTX 750) | ~40FPS | ~500MB | 生产部署 |
 
 
 
 
207
 
208
+ ## 📝 技术细节
209
 
210
+ ### 模型架构
211
+ - **基础网络**: MobileNetV3-Large/Small
212
+ - **输入尺寸**: 512×512
213
+ - **输出**: 二分类(0: 非ACG, 1: ACG)
214
+ - **参数量**: 2.5M (v1s/v2) / 5.5M (v1)
215
 
216
+ ### 训练数据
217
+ - **正样本**: 50,00+ ACG图像(动漫、漫画、游戏)(来自@Scighost/爬虫)
218
+ - **负样本**: 50,00+ 真实照片、插画等(来自Unplash)
219
+ - **数据增强**: 随机旋转、翻转、色彩调整
220
 
 
221
 
222
+ ## 贡献指南
223
 
224
+ 欢迎贡献代码、数据或文档改进:
225
 
226
+ 1. Fork本仓库
227
+ 2. 创建特性分支
228
+ 3. 提交更改
229
+ 4. 发起Pull Request
230
 
231
+ ## 许可证
232
+
233
+ 本项目采用MIT许可证。详见LICENSE文件。
234
 
235
+ ## 致谢
236
+
237
+ - 感谢PyTorch和TorchVision团队
238
+ - 特别感谢[@Scighost](https://github.com/Scighost)老师的铯图(25%的训练集)
239
+ - 感谢[Unplash](https://unsplash.com/)提供的真实图片图片数据集
240
+ - 感谢开源社区的支持
241
+
242
+ ## 联系方式
243
+
244
+ - 项目主页:https://github.com/moyanj/IsACG
245
+ - 问题反馈:GitHub Issues
246
+ - 模型下载:[Hugging Face Hub](https://huggingface.co/moyanjdc/IsACG/)
247
+
248
+ ---
249
 
250
+ *注:本项目主要用于教育和研究目的。商业使用请确保遵守相关法律法规和版权要求。*
251
 
252
+ <p align="center">
253
+ Made with ❤️ by <a href="https://github.com/moyanjdc">moyanjdc</a> ·
254
+ <a href="https://huggingface.co/moyanjdc/IsACG">HF Hub</a> ·
255
+ <a href="https://github.com/moyanjdc/IsACG">GitHub</a>
256
+ </p>