update at 2025-10-30 15:45:34
This commit is contained in:
152
README.md
152
README.md
@@ -44,13 +44,43 @@ digit_cracker/
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 1. 安装依赖
|
||||
### 方法1:使用交互式脚本(推荐)
|
||||
|
||||
**最简单的方式**,适合日常使用:
|
||||
|
||||
```bash
|
||||
pip install ultralytics opencv-python
|
||||
./run.sh
|
||||
```
|
||||
|
||||
### 2. 一键运行(完整流程)
|
||||
会显示交互式菜单,提供5个常用功能:
|
||||
- **选项 1**:标准识别(conf=0.2, imgsz=320)
|
||||
- **选项 2**:低阈值识别(conf=0.15,适合模糊图片)
|
||||
- **选项 3**:高分辨率识别(imgsz=640,适合小数字)
|
||||
- **选项 4**:查看已有结果(模型、识别结果、可视化)
|
||||
- **选项 0**:退出
|
||||
|
||||
**特点**:
|
||||
- ✅ 自动检测虚拟环境
|
||||
- ✅ 彩色输出和友好提示
|
||||
- ✅ 智能错误处理
|
||||
- ✅ 详细的使用说明
|
||||
|
||||
### 方法2:命令行直接识别
|
||||
|
||||
使用最佳模型进行识别:
|
||||
|
||||
```bash
|
||||
python scripts/predict_digits_improved.py \
|
||||
--model runs/digit_yolo/exp_preprocessed_color_150/weights/best.pt \
|
||||
--source valid \
|
||||
--conf 0.2 \
|
||||
--output results/predictions.txt \
|
||||
--save-vis
|
||||
```
|
||||
|
||||
### 方法3:完整训练流程
|
||||
|
||||
如需重新训练模型:
|
||||
|
||||
```bash
|
||||
python scripts/run_all.py
|
||||
@@ -61,7 +91,15 @@ python scripts/run_all.py
|
||||
2. 训练YOLOv8模型(100轮)
|
||||
3. 在valid文件夹上进行识别
|
||||
|
||||
### 3. 分步执行
|
||||
### 安装依赖
|
||||
|
||||
```bash
|
||||
pip install ultralytics opencv-python
|
||||
```
|
||||
|
||||
## 📖 详细使用指南
|
||||
|
||||
### 分步执行
|
||||
|
||||
#### 步骤1:准备数据集
|
||||
|
||||
@@ -154,6 +192,30 @@ YZM-2.jpeg 0367 0.892 4
|
||||
|
||||
## 🔧 高级用法
|
||||
|
||||
### 使用交互式脚本的不同选项
|
||||
|
||||
```bash
|
||||
./run.sh
|
||||
# 根据图片质量选择:
|
||||
# - 标准图片:选项1(默认,速度快)
|
||||
# - 模糊/低对比度:选项2(降低阈值)
|
||||
# - 小数字/高精度:选项3(提高分辨率)
|
||||
```
|
||||
|
||||
### 图片预处理(提升识别率)
|
||||
|
||||
对于低质量图片,可以先进行预处理:
|
||||
|
||||
```bash
|
||||
python scripts/preprocess_images.py \
|
||||
--input valid \
|
||||
--output valid-processed \
|
||||
--method clahe \
|
||||
--keep-color
|
||||
```
|
||||
|
||||
然后对预处理后的图片进行识别。
|
||||
|
||||
### 仅使用已训练模型进行识别
|
||||
|
||||
如果已经有训练好的模型,可以跳过训练步骤:
|
||||
@@ -201,34 +263,86 @@ python scripts/predict_digits.py \
|
||||
|
||||
## 🐛 常见问题
|
||||
|
||||
### Q1: 导入错误 `ModuleNotFoundError: No module named 'ultralytics'`
|
||||
### Q1: 运行 `./run.sh` 提示权限错误
|
||||
|
||||
A: 添加执行权限:
|
||||
```bash
|
||||
chmod +x run.sh
|
||||
```
|
||||
|
||||
### Q2: 导入错误 `ModuleNotFoundError: No module named 'ultralytics'`
|
||||
|
||||
A: 安装ultralytics库:
|
||||
```bash
|
||||
pip install ultralytics
|
||||
```
|
||||
|
||||
### Q2: 识别结果不是4位数字
|
||||
建议使用虚拟环境:
|
||||
```bash
|
||||
python -m venv venv
|
||||
source venv/bin/activate # macOS/Linux
|
||||
pip install ultralytics opencv-python
|
||||
```
|
||||
|
||||
A: 可能的原因:
|
||||
1. 置信度阈值太高,尝试降低 `--conf` 参数(如0.1)
|
||||
2. 模型训练不足,增加训练轮数
|
||||
3. 图片质量问题,检查图片清晰度
|
||||
### Q3: 识别结果不是4位数字
|
||||
|
||||
### Q3: 训练速度慢
|
||||
A: 可能的原因和解决方法:
|
||||
1. **置信度阈值太高** → 使用 `./run.sh` 选项2(低阈值识别)
|
||||
2. **图片质量差** → 先用 `preprocess_images.py` 进行CLAHE预处理
|
||||
3. **数字太小** → 使用 `./run.sh` 选项3(高分辨率识别)
|
||||
4. **光照不均** → 使用CLAHE预处理增强对比度
|
||||
|
||||
推荐组合:预处理 + 低阈值识别
|
||||
|
||||
### Q4: 训练速度慢
|
||||
|
||||
A: 建议:
|
||||
1. 使用GPU加速(自动检测CUDA)
|
||||
2. 减小批次大小 `--batch 8`
|
||||
3. 使用更小的图片尺寸 `--imgsz 256`
|
||||
|
||||
### Q4: 显存不足
|
||||
### Q5: 显存不足
|
||||
|
||||
A: 降低批次大小:
|
||||
```bash
|
||||
python scripts/train_yolo.py --batch 8
|
||||
```
|
||||
|
||||
## 💡 使用建议
|
||||
|
||||
### 识别策略选择
|
||||
|
||||
根据图片特点选择合适的识别方式:
|
||||
|
||||
| 图片特点 | 推荐方法 | run.sh选项 | 命令行参数 |
|
||||
|---------|---------|-----------|-----------|
|
||||
| 标准清晰 | 标准识别 | 选项 1 | conf=0.2, imgsz=320 |
|
||||
| 模糊/暗淡 | 低阈值 | 选项 2 | conf=0.15, imgsz=320 |
|
||||
| 数字很小 | 高分辨率 | 选项 3 | conf=0.2, imgsz=640 |
|
||||
| 低对比度 | 预处理+标准 | 先预处理 | CLAHE增强 |
|
||||
| 严重模糊 | 预处理+低阈值 | 先预处理 | CLAHE + conf=0.15 |
|
||||
|
||||
### 工作流程建议
|
||||
|
||||
**日常识别**:
|
||||
```bash
|
||||
./run.sh # 选择选项1,快速识别
|
||||
```
|
||||
|
||||
**困难图片**:
|
||||
```bash
|
||||
# 步骤1:预处理
|
||||
python scripts/preprocess_images.py --input valid --output valid-processed --method clahe
|
||||
|
||||
# 步骤2:识别预处理后的图片
|
||||
python scripts/predict_digits_improved.py --source valid-processed --conf 0.15
|
||||
```
|
||||
|
||||
**查看结果**:
|
||||
```bash
|
||||
./run.sh # 选择选项4,查看所有结果文件
|
||||
```
|
||||
|
||||
## 📝 数据集格式
|
||||
|
||||
### COCO格式(输入)
|
||||
@@ -274,7 +388,19 @@ python scripts/train_yolo.py --batch 8
|
||||
4. **超参数调优**: 调整学习率、优化器等参数
|
||||
5. **后处理优化**: 根据业务规则(必须4位数字)进行后处理
|
||||
|
||||
## 📚 参考资料
|
||||
## <EFBFBD> 项目文档
|
||||
|
||||
- **README.md**: 完整使用文档(本文件)
|
||||
- **QUICKSTART.md**: 5分钟快速上手指南
|
||||
- **FINAL_REPORT.md**: 项目完成报告和性能分析
|
||||
- **PROJECT_STRUCTURE.md**: 详细的项目结构说明
|
||||
- **CODE_CLEANUP_DONE.md**: 代码清理和优化记录
|
||||
|
||||
## 👨💻 作者
|
||||
|
||||
Gavin Chan
|
||||
|
||||
## <20>📚 参考资料
|
||||
|
||||
- [Ultralytics YOLOv8 文档](https://docs.ultralytics.com/)
|
||||
- [YOLO目标检测原理](https://arxiv.org/abs/2305.09972)
|
||||
|
||||
Reference in New Issue
Block a user