目录
1监督学习 1
1.1问题描述 1
1.2方法描述 1
1.3步骤描述 1
1.4结果分析 2
2博弈搜索 3
2.1问题描述 3
2.2方法描述 3
2.3原理描述 3
2.4步骤描述 3
2.5结果分析 4
3进化计算 4
3.1问题描述 4
3.2方法描述 4
3.3原理描述 4
3.4步骤描述 4
3.5结果分析 5
4强化学习 5
4.1问题描述 5
4.2方法描述 6
4.3原理描述 6
4.4步骤描述 7
4.5结果分析 8
1监督学习
1.1问题描述
能够用拍照方式识别五子棋下棋过程中当前落子的位置,识别程序中应使用到监督学习算法。
1.2方法描述
使用 yolov5 实现对五子棋的目标识别,使用编写的五子棋界面生成训练和测试数据。下载预训练模型后,进行迁移学习,训练得到识别黑白棋的模型。
1.3步骤描述
1.利用五子棋界面生成训练数据
对于五子棋界面的实现,考虑到界面不是本次作业实现的主要目标,所以使用 tkinter 库来实现五子棋简易界面。
yolov5 所用的标签格式为 [物体类型 物体中心 x 值 物体中心 y 值 物体长度 物体宽度]。随机生成五子棋局面,绘制界面,生成标签,训练数据大小为 200 张图片
生成训练数据的代码位于 Python/window/create_train_data.py 文件中。
2.下载 yolov5 项目,下载预训练模型
yolov5 所用的模型代码来自 github 上的一个 项目。考虑到黑白棋的特征明显,识别出来的难度不大,所以我使用的预训练模型为 YOLOv5s 模型。在进行 100 次的训练后能够较好地得到结果。
3.对模型进行训练
模型训练过程中准确率和召回率和 IoU 阈值为 0.5 时的 mAP 值变化如下: