使用yolov5和强化学习训练一个AI智能欢乐斗地主(一)

您所在的位置:网站首页 欢乐王牌斗地主下载赚钱软件安全吗是真的吗还是假的 使用yolov5和强化学习训练一个AI智能欢乐斗地主(一)

使用yolov5和强化学习训练一个AI智能欢乐斗地主(一)

2024-07-12 02:00| 来源: 网络整理| 查看: 265

这里写自定义目录标题 项目介绍项目过程介绍训练yolov5目标检测斗地主收集数据集yolov5调参

项目介绍

你好! 欢迎阅读我的文章,本章将介绍,如何使用yolov5和强化学习训练一个AI斗地主,本项目将分为三个部分,其中包含(yolov5目标检测,pyqt5页面搭建,强化学习训练出牌)。为什么会做这个项目呢,主要是出于作者本人感兴趣,我也喜欢打牌,即使这个项目可能在多数项目看来,显得多此一举或者有点笨拙,整个过程,主要是用来体验项目并且学习了,如果你有其他意见或者更好的想法可以联系作者,再次感谢您阅读我的文章。

项目过程介绍

我暂时对整体的AI斗地主做了一个规划,这里我以微信小程序天天斗地主为例,使用yolov5训练斗地主画面的每张扑克牌,识别出所有扑克牌后,通过分析地主、地主上家、地主下家出的牌,进行强化学习,来教AI打牌,整个过程由pyqt5可视化界面展示实现,具体分为以下步骤。

收集斗地主数据集,yolov5进行训练获取小游戏句柄,初步测试目标检测成果编写GUI,实时控制整个程序通过目标检测结果,编写记牌器,编写上家下家出牌规则训练DOUZERO强化学习通过上下家出牌规则,调用DOUZERO强化学习出牌完善整个程序,进行最终测试 训练yolov5目标检测斗地主

整个AI斗地主分为三部分,yolov5检测斗地主的扑克牌,Douzero强化学习斗地主,pyqt5编写最终界面,本文只讲第一部分

收集数据集

收集斗地主数据集的过程不算复杂困难,但相对无聊枯燥耗时,收集数据集采用最传统的方法,通过一局对局截取一张图片的方式,如下图 在这里插入图片描述 截图存储到本地后,使用labelimg才进行标注,如果不了解labelimg,这里引用一下别的文章:labelimg从安装到使用详解 labelimg就是一个标注工具而已,如下图,将每一张扑克牌都标注好即可 在这里插入图片描述 这里需要注意收集的数据集数量, 经过我本人测试,我收集了100张图片,注意,即使只有100张图片,每一张图片仍然包含多达二三十个标注,其中同一个扑克牌类别最多出现7次(包括最上方会显示的三张地主牌),100张本质上来说不算特别少,经过yolov5训练后, 再放到小程序上进行测试,经观察,仍然有95%的准确率,但这是远远不够的,因为即使一张扑克牌的识别错误,将导致后期整个强化学习,到出牌过程都会决策失败

最后,保存的数据集文件夹如下图所示,这里不仅限于天天斗地主,将其他类型的斗地主标注好后,也可以一起进行训练。

在这里插入图片描述

yolov5调参

yolov5是一个使用pytorch编写的目标检测框架,通过yolov5的训练,最后我们可以知道哪张扑克牌在哪个位置,通过程序编写出牌区域的区分,可以检测区分出地主、地主下家、地主上家,三家的轮流出牌过程,到这一步,其实已经可以做一个记牌器了,如果到这里,你不太了解yolov5是啥的话,这里我推荐几个博客与官方github链接

YOLOv5网络详解 YOLOv5官方github YOLOv5参数介绍

这里主要是看我的配置参数的一些文件,数据集标签配置如下(其中包含:1-k小王、大王、地主、农民、闹钟、连对、顺子、飞机、炸弹、火箭): 在这里插入图片描述 train.py 这里不做过多介绍,只要了解过yolov5,并根据自身情况训练就行 数据集少的情况下,大概,一两千次即可完成训练,最后展示一下,我用pyqt5写出来的yolov5检测出来的训练结果。 下篇介绍pyqt5界面搭建过程

在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3