一、接触前感受
第一次带我领略yolov5风骚的是这个视频:【亦】警惕AI外挂!我写了一个枪枪爆头的视觉AI,又亲手“杀死”了它。
这样一来,我对人工智能打游戏产生了浓厚的兴趣,于是在B站查找人工智能基础,随便一个系列就是几十小时起步。
我心想,值得的。但是,看完某个系列的第一条视频我放弃了,我懵逼啊。
最后,我们来了解一下人工智能的智能在哪里为了让人工智能迅速成长,科学家们决定送它去打游戏
干货主要有:
① 200 多本 Python 电子书(和经典的书籍)应该有
② Python标准库资料(最全中文版)
③ 项目源码(四五十个有趣且可靠的练手项目及源码)
④ Python基础入门、爬虫、网络开发、大数据分析方面的视频(适合小白学习)
⑤ Python学习路线图(告别不入流的学习)
Python学习交流Q群101677771
二、先入为主,形成概念
学习一样从来没接触过的东西,最怕的是没有概念,没有概念就不能拿来装知识,形成概念最简单最迅捷的方法就是跟着别人操作一遍Yolov5配置傻瓜教程
https://www.icode9.com/content-4-882435.html
其中会遇到各种各样的问题,需要自己去理解和消化,这样就慢慢形成了概念,后续通过学习再逐渐升华到高度。
三、识别九宫图片验证
yolov5能帮助我们实现目标检测,从GITHUB下载前需要配置一些环境,yolov5下载后已经可以检测80种物体。
https://github.com/ultralytics/yolov5
当然,我们也可以训练自己的数据集,我已经尝试训练一组游戏图片,希望让他自动辨别人物,但无奈提供的数据太少而识别不了。
于是,我尝试用来识别九宫图片验证。
需要注意的是,yolov5有四种网络结构,yolov5 s/m/l/x ,yolov5s网络最小,速度最少,AP精度也最低,Yolov5x在Yolov5l基础上,不断加深加宽网络,AP精度也不断提升,但速度的消耗也在不断增加。
当我使用作者训练好的数据集做目标检测时,发现yolov5s.pt不能识别到右边最小的车,用yolov5m.pt才识别到。
所以,平时我们训练自己的数据集,如果想快就使用yolov5s.yaml,如果需要高精准就用其他三种训练。
四、获取坐标
我们做目标检测时,运行的是一yolov5的detect.py,里面不会直接返回坐标,需要加上以下代码(后面我会贴出来免费下载)
我们来看aim返回的值
返回了三个列表,说明检测到了三个目标。
列表中的第一个元素是“类别2”,代表“car”这个类别;
列表中的第二个元素和第三个元素是目标在图中的位置,分别代表横轴和纵轴,按比例显示(图是1920*1080);
列表中的第四个元素和第五个元素是目标在图中的大小,分别代表宽(横轴方向)和长(纵轴方向),按比例显示;
列表中的第五个元素是检测度。
目标越大越容易辨认,所以我这里截整个屏幕有点大导致目标有点小了。
还需要确认两个参数,weights(权重)和source(待检测图片路径)
若没有相应的.pt,第一个参数weights会在运行自动帮你下载。
最后,根据图片的大小以及自己屏幕分辨率的可以计算出检测目标的位置,鼠标自动点击就完成验证。