媒婆斯多利符文识别工具
backup 模型训练结果
cfg 模型配置文件
data 数据集设置
dataset_tools 数据集工具
utils 项目使用过的小工具
weights yolov4的Pre-trained weights1 NVIDIA GeForce 750Ti级别显卡能做到5fps,即1秒识别5张图片 ↩
2 识别率为当前数据集训练8000step后的结果 ↩
3 该识别率并未包含矿,花的数据,即矿,花的数据集需自行采集并重新训练 ↩
显卡必须N卡,至少Compute capability 5.0以上 或 NVIDIA Jetson Nano以上, 具体看wikipedia的表
如果没有N卡,请确保你有足够的时间跟强爆炸的CPU来跑训练
Windows/Linux都必须安装CUDA 10.1,暂未测试CUDA 11兼容性,若无N卡无视该要求
具体参考 yolo环境需求
代码仅支持Python3
Linux发行版下注意pip对应的版本
-
安装opencv
# 本机使用 pip install opencv-python # 服务器使用 pip install opencv-python-headless
-
安装sklearn
# 仅本机 pip install scikit-learn==0.19.2 -
安装http api依赖
# web核心 pip install sanic # mysql pip install PyMySQL aiomysql
-
安装标记工具
pip install labelImg
- 如需http api启用CUDA,请自行编译opencv with cuda, 参考该链接,重新编译后,手动指定python使用编译后的opencv或不使用上面的命令安装opencv
- 服务器需要MySQL 5.5以上,动手能力强的可以手动修改成SQLite数据库
- NVIDIA 20系列显卡以上可以开启cudnn_half加速训练
- 有其他问题请发issue
先使用Labelmg手动标记数据集,接着AlexeyAB的yolov4训练模型,最后使用opencv调用模型并返回结果
-
采集符文图像,放入utils/runes_orig,并使用utils/cut_img.py进行裁剪
-
使用LabelImg标记裁剪后的数据集
- 这里注意类别名字为up down left right
- 顺序必须跟上面的顺序一致
-
把标记完成的数据集文件夹放到dataset_tools里,并改名为final
-
生成的train-runes.txt和test-runes.txt放入项目根目录的data下
-
把标记完成的数据集内容全部移动到data/runes
-
下载pre trained文件到项目根目录的weights目录下
-
使用命令
darknet.exe detector train data\runes.data cfg\yolov4-tiny-runes.cfg weights\yolov4-tiny.conv.29开始训练-
20系列显卡大概需要2-3小时,取决于显卡
-
10系列显卡大概需要4-6小时
-
CPU没试过,建议慢慢等
如果训练时间超过我说的时间,建议检查第一步是否正确执行完成
-
-
从backup文件夹拿出best后缀的文件,放入server/darknet/weights中
-
从cfg文件夹拿出yolov4-tiny-runes-test.cfg,放入server/darknet/cfg中
-
进入server目录执行
python app.py,到此完成