极验图标识别-推理速度的优化(10ms)

唠叨

奈何市场上的点选模型太贵,那就自己学python开始做模型吧,其实关于目标检测的文章一搜一大堆,从yolov3、v4、v5、vx、v7都有尝试过,不过知识有限,cnn也不懂,也没gpu环境,只能从cpu推理越快越好,业务角度出发,找一个成品的网络,推理速度在自己的接受范围就好,从yolox(.pth/100ms)–>yolox(.onnx/30ms),再到目前使用的yolo-fastestv2(onnx/10ms)
极验图标识别-推理速度的优化(10ms)_第1张图片

关于yolo-fastestV2

虽然coco数据集上map只达到了24,但是咱们类别少啊,主要是这个速度是真的香,满足咱们不会手写网络还能快速的要求。
模型更详细的介绍我这样就不复制了,从GitHub上下载代码,项目的README.md里有详细介绍

训练自己的模型

首先准备数据集,数据集的格式README有介绍,如果没有数据集和不知道数据集怎么弄的话,标注工具:labellmg

anchors

配置好train.txt,执行genanchors.py,获取的结果复制到下一步

配置文件 coco.data

复制一份文件、
修改classes=(自己类别的数量)
anchors=上一步的结果
[data-configure] 指定好自己的目录

训练代码

代码的话可能会有一处改动,我在训练过程中报错了 utils.loss.py中119行
修改前

indices.append((b, a, gj.clamp_(0, gain[3] - 1), gi.clamp_(0, gain[2] - 1)))  # image, anchor, grid indices

修改后

indices.append((b, a, gj.clamp_(0, int(gain[3] - 1)), gi.clamp_(0, int(gain[2] - 1))))  # image, anchor, grid indices

就可以执行 train.py,进行训练了,我自己731张数据集,使用m2Cpu训练了150批次就拿来使用了,训练完成的文件放在weights下,可以执行test.py进行测试。
测试可用后,执行 转 onnx.py,接下来再用 ONNXRuntime进行推理就可以了

你可能感兴趣的:(爬虫,深度学习,目标检测,人工智能)