![570fc642118c4ebd55e2c90f7fad9817.png](https://i-blog.csdnimg.cn/blog_migrate/b4693409c89586db41f83a6521f243f6.jpeg)
一.前言
基于前面我发的贴子
![cbfcdd0664a406b4ec5c8460913fde28.png](https://i-blog.csdnimg.cn/blog_migrate/cc27e6908877b7ef46cec8f770fbbd40.jpeg)
一个非常震撼的目标检测的例子。上个帖子从环境安装到调试代码再到图片检测视频检测一个详细的教程,今天我来讲一下正真的实战经历吧。完全不需要深度相关的知识。
这个项目就是《Python3 反爬虫原理与绕过实战》里面的例子,
![1775048879571d06b0e33b0f236622b1.png](https://i-blog.csdnimg.cn/blog_migrate/65044ed3e4d43491774406b0354c082e.png)
基础环境与我上一个深度学习教程的基础环境一摸一样,拿过来基本不用改就可以用了。书里面的讲了一下原理,还不错,通俗易懂,但是没讲太深,意犹未尽,毕竟是一本爬虫书啊
整个项目训练速度非常快,因为专门为验证码检测设计的,自己的显卡还不错,每次训练就几分钟的样子,测试了一下,最终我把原项目的单次训练的样本数量调大了8倍,原先是32的,4分钟不到3w张图片。setting.py里面我看到,检测的内容都限制了,26个字母和10个数字,所有的图片格式大小都规定了。
![41eb004af740fbe838960880a5f3367a.png](https://i-blog.csdnimg.cn/blog_migrate/d749969f2a35b1910ab6f154153cef35.jpeg)
二.开始训练
运行环境看我的上一个深度学习的教程
![cbfcdd0664a406b4ec5c8460913fde28.png](https://i-blog.csdnimg.cn/blog_migrate/cc27e6908877b7ef46cec8f770fbbd40.jpeg)
完全一样。
下载代码和相关资源
下载GitHub代码,下载图片数据集。相关资源最后会放出来,原项目的代码导入图片目录的时候有点问题。貌似原项目是在ubuntu系统上面运行的,我改了一下setting里面的参数如下图。
把下载images的图片放到项目目录下面如图,images里面的数据集图片的文件名就是图片正确的识别结果,要做自己的数据集要注意哦,train文件夹下面的图片就是我们训练时候的图片集,test文件夹下面的图片是用来训练时验证我们的训练效果的图片集,predict文件夹下面的图片就是我们训练好之后要预测的图片集。
![d49bff22b5b9912b3a37fc21c50a3855.png](https://i-blog.csdnimg.cn/blog_migrate/ca470b517f9e25b5287b834757c88a2d.png)
接下来打开setting.py根据自己显卡的算力设置BATCH_SIZE,我的显卡是2070S,最终设置成了256,CPU和GPU都快到100%了。然后打开train.py运行等待就行了,训练完成会生成result.pkl文件。
![6ad40055b3df3e596ae3842ebf0d406c.png](https://i-blog.csdnimg.cn/blog_migrate/8b1f11e29eb1825ebbc73d78f0d4ef45.jpeg)
验证的代码在verifies.py里面,直接运行,它会先载入模型,遍历验证集图片正确的验证码与预测结果对比,算出成功比例。
![05907f6dd643599a204a3e657ef0e8aa.png](https://i-blog.csdnimg.cn/blog_migrate/f8f32f2de982641aa26b1417d2b718cc.jpeg)
验证码的图片就是下图,26个字母和10个数字的混合,长度固定,6位。有干扰线和干扰点,没有倾斜变形。
![cbc1607dedf79cd9a122d247e0330831.png](https://i-blog.csdnimg.cn/blog_migrate/07e93d09d8f9f96154b45d1531fa3683.png)
三.最后说明
这个项目代码量非常的少,文章的篇幅也很短,项目的结构简单可以一步步的详细分析所有代码的用处,特别是model.py里面进行了三次卷积和池化操作。loader.py对图片的灰度化处理和数字化处理。虽然这些东西很抽象,但是只要不要本能的去拒绝它们,还是能够慢慢的理解的。
关注我,给我动力继续研究更多有意思的有关python的东西哦。