yolov5尝试自动识别九宫图片验证
本帖最后由 xhtdtk 于 2021-8-31 00:55 编辑一、接触前感受
最近在B站看视频学习的时候,首页总是给我推送AI人工智能打游戏,由于之前写过在游戏中自动钓鱼的帖子,对于自动玩游戏还是比较感兴趣的,便去看了一下。
第一次带我领略yolov5风骚的是这个视频:【亦】警惕AI外挂!我写了一个枪枪爆头的视觉AI,又亲手“杀死”了它(链接)。
这样一来,我对人工智能打游戏产生了浓厚的兴趣,于是在B站查找人工智能基础,随便一个系列就是几十小时起步。
我心想,值得的。但是,看完某个系列的第一条视频我放弃了,我懵逼啊。
后来,接触的视频多了之后,我才知道人工智能分很多8分钟带你入门人工智能,互联网大厂都在用的高能AI算法,爆肝整理 | 全网最全(链接)
最后,我们来了解一下人工智能的智能在哪里为了让人工智能迅速成长,科学家们决定送它去打游戏(链接)
二、先入为主,形成概念
学习一样从来没接触过的东西,最怕的是没有概念,没有概念就不能拿来装知识,形成概念最简单最迅捷的方法就是跟着别人操作一遍Yolov5配置傻瓜教程(链接)
其中会遇到各种各样的问题,需要自己去理解和消化,这样就慢慢形成了概念,后续通过学习再逐渐升华到高度。
三、识别九宫图片验证
yolov5能帮助我们实现目标检测,从GITHUB(链接)下载前需要配置一些环境,yolov5下载后已经可以检测80种物体。
当然,我们也可以训练自己的数据集,我已经尝试训练一组游戏图片,希望让他自动辨别人物,但无奈提供的数据太少而识别不了。
于是,我尝试用来识别九宫图片验证。
需要注意的是,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会在运行自动帮你下载。
最后,根据图片的大小以及自己屏幕分辨率的可以计算出检测目标的位置,鼠标自动点击就完成验证。
本帖最后由 涛之雨 于 2021-8-31 07:24 编辑
b站那个视频我看了,这个理论其实很早前也就有了。
只是没有人发出来而已。
因为搞人工智障的不会去想着用于游戏,而玩游戏的不至于去学习ai。
up主的那套离线保存的ai模型是up主自制的,相比传统的方框框选,射击类的游戏更加注重人体骨架(比如头、躯干、四肢)的定位,所以up主的那一套算法效果会更加好。此外,我个人感觉,使用Python训练的参数,然后封装后使用c调用效率会更高点吧。毕竟竞技的游戏,自然需要对效率有所要求,所以那些人工智能的api似乎也不是很适合 感谢大佬分享 向大佬学习{:1_921:} 非常干货,比较适合小白,正准备学yolov5,感谢楼主了 深度学习太难了,花了1个月的时间还没入门
感谢分享{:1_921:}{:1_921:} yolov3我还在看 AI学习已经渗透到生活中的方方面面了..