基于yolov5滑块识别破解(一)

        由于内容较长,将分为两个部分来说明,本文讲解yolov5的部署与训练。

1.YOLOv5部署

        云端部署(训练)

        服务器创建

        如果自己的显卡算力不是很好的,或者是核显电脑,可以租用算力,价格还行一块钱左右就可以租一小时了。

        网站地址:AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL

        登录网站,在算法社区搜索yolov5,选择一个项目进行创建。(算法社区里面有很多的算法模型,例如AI语言、图片清晰度增强等等,感兴趣的可以自己研究)

        我用的版本:ultralytics/yolov5/v5: 官方YOLOv5项目 最新稳定版本 - CG (codewithgpu.com)

直接点击创建即可。 由于我们是基于别人项目创建的,所以创建好的服务器已经自带了python环境和yolov5项目,直接上传数据进行训练就好了。

选择显卡,注意cuda版本要求(11.3以上)

        训练集上传 

       训练集就是各种滑块的图片,使用labelimg进行数据标准,把阴影地方标准为target。

        在创建完成后,在后台管理中有两个快捷工具,我们点第二个。

        绑定阿里云,然后就可以下载数据到服务器了,过程就是从我们自己的电脑上传文件到阿里云中,然后在AotoPanel工具中通过阿里云将我们上传的文件下载到我们租好的服务器上。

        模型训练

        打开JupyterLab工具,进入到服务器的命令窗口。在datasets目录下新建一个我们自己的数据集文件夹,把下载好的images和label放入到这个文件夹中。

        因为训练文件的yaml文件指定的是coco128.yaml,我们要训练的自己的模型需要修改这个yaml文件,或者也可以自己按照他的格式重新写一个yaml文件,然后在tran.py中指定这个yaml文件。

        我选择的是修改yaml文件,修改数据集的路径,并注释掉之前的类别,我们只训练识别一个类target。

        文件修改完成后,就可以直接训练模型了。打开终端输入cd yolov5-7.0,然后输入python train.py,就可以训练了。训练100个epoch

        预测推理

        训练好模型后,我们再上传几张新的滑块图片去进行预测。将测试图片上传到yolov5-7.0/data/images/里面

        更改权重模型,修改为我们自己训练好的模型。训练结果在runs/tran中,每一个exp就是每一次训练的结果,我们选择最新的一次,选择里面的weights/best.pt。best就是本次训练中最好的一次模型,last就是最后一次epoch得出的模型。

        打开detect.py修改权重模型。

        在命令窗口中输入python detect.py,然后到runs/detect中查看结果。 可以看到我们的模型已经成功识别出阴影块。

        模型下载

         到此我们的云端训练就已经完成了,我们需要把训练好的权重模型传回本地电脑。直接右键下载就行,它会通过浏览器自动下载。

本地部署

        之前说的是云端训练模型,主要是考虑了电脑性能不好的小伙伴。也可以直接在本地进行训练,流程和上面差不多的。这里就不再说了。

        在拿到云端训练好的权重模型后,我们需要部署本地的yolov5环境,使用这个权重模型去进行预测。

        yolov5下载

        参考其他大佬的教程即可

Yolov5 安装详细教程及目标检测和识别_yolo5安装教程-CSDN博客

         

        pytorch安装

        我现在使用的是AMD核显的电脑,和我情况差不多的小伙伴可以看看这个使用集成显卡/集显(AMD)或者GPU安装运行pytorch?步骤解析~_amd显卡怎么用pytorch-CSDN博客

        本地运行测试

        导入我们训练好的模型,进行测试看看是否有效

        至此yolov5的部署已经模型的训练都已经完成,在下篇文章中我们将结合yolov5来实现滑块的破解。 

YOLOv5(You Only Look Once Version 5)是一种流行的实时目标检测算法,用于识别图像中的物体并定位其边界框。如果你想用预训练的YOLOv5滑块验证码识别模型来确定验证码的位置,你需要经历以下几个步骤: 1. **下载模型**: 首先,确保你已经从GitHub或其他官方资源获取了经过训练的ONNX(Open Neural Network Exchange)格式的模型。YOLOv5通常会提供转换后的ONNX模型供下游任务使用。 2. **安装依赖**: - 安装必要的库,如`onnxruntime`, `numpy`, 和 `PIL` (Python Imaging Library) 等,用于加载和处理ONNX模型以及图像操作。 3. **加载模型**: 使用`onnxruntime.InferenceSession`加载模型,这将创建一个可以执行推理的会话。 ```python import onnxruntime as ort ort_session = ort.InferenceSession("path_to_yolov5_onnx_model.onnx") ``` 4. **预处理输入**: 对验证码图片进行适当大小调整、归一化等预处理,使其符合模型期望的输入格式。 5. **执行预测**: 通过会话的`run`函数,传入预处理后的图像数据,得到模型预测的结果,包括每个滑块候选区域的位置信息(例如,边界框坐标、置信度等)。 ```python input_name = ort_session.get_inputs()[0].name outputs = ort_session.run(None, {input_name: image_data}) # image_data should be in the correct format bounding_boxes = outputs[0] # Bounding boxes for each detected slide ``` 6. **解析结果**: 分析模型返回的边界框数据,从中筛选出最有可能是验证码的滑块区域。 7. **后处理**: 可能需要应用非极大值抑制(Non-Maximum Suppression, NMS)来减少重叠的边界框,并最终确定滑块的精确位置。 8. **应用到验证码验证系统**: 将滑块的位置信息传递给验证码验证部分,完成滑块的匹配和验证流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值