回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页
best-icon

基于xedu项目--军棋智能裁判员 简单

头像 重楼 2023.07.14 99 0

【项目背景】

本项目是参加了由人工智能实验室举办的“新一代人工智能教师成长营”。以军棋棋子大小的判断做为项目开发入口。

【制作过程】

首先思考作品要实现的功能,用过要解决的功能去选择开源的算法。然后进行对应步骤的操作。

本项目使用的是目标检测,SSD_Lite算法模型。

 

 

第一步:采集数据。

使用手机拍摄各个角度的棋子的照片,进行数据采集。(比较麻烦,也可以使用视频抽桢的方式来比较简单一点)

image.png

分别采集训练集图片和测试集图片,数量比例在8:2左右。(每一个类照片尽量大于100张越多越好)

 

第2步:数据标注

利用浦育平台 的在线数据标注工具。

https://www.openinnolab.org.cn/pjlab/projects/channel

1、设置标注的分类。

2、对所有采集的图片进行数据标注。在线标注比较卡,数据少的话可以用(可以使用数据标注软件)

3、对标注好的图片生成数据集。

image.png

第3步:转数据集

将标注好的数据进行coco数据集转换

 

 

第4步:模型训练

xedu只需要简单的几部就可以实现模型训练。

训练代码:

 

from MMEdu import MMDetection as det  # 导入基础库

model = det(backbone='SSD_Lite') # 算法模型

model.num_classes = 4 #军棋设定4类,目前只设置了 红黑地雷和红黑工兵

model.load_dataset(path='/data/MJT86E/coco') # coco数据集位置

model.save_fold = 'checkpoints/det_model/plate/SSD_Lite' # 训练后权重文件保存路径

checkpoint = 'checkpoints/Pre-trained_ssdlite_mobilenetv2.pth'  # 选用训练模型,

model.train(epochs=100, lr=0.0005, validate=True,batch_size=4,checkpoint= checkpoint,device='cuda')  #  启动cpu容器将device='cpu',启动GPU容器将device='cuda'

 

建议使用预训练模型,可以增加训练的速度节约时间。

保存好权重文件,可以导出保存。

 

 

第5步:模型推理

 

模型推理:

from MMEdu import MMDetection as det   # 导入基础库

model = det(backbone='SSD_Lite')  # 算法模型

checkpoint = 'checkpoints/det_model/plate/SSD_Lite/epoch_54.pth'  # 训练好的权重文件

class_path = '/data/MJT86E/coco/classes.txt'   # 数据库中的类别

img = 'ceshi/1112.png'  # 需要测试的图片

result = model.inference(image=img, show=True, class_path=class_path,checkpoint = checkpoint,device='cpu') # cpu容器将device='cuda',gpu容器device='cpu'

r = model.print_result(result)  # 返回结果

 

测试推理效果。

 

image.png

 

第6步:模型转换

 

因为本项目是部署在行空板中,行空板算力有限,为了让行空板可以更好的运行,转模型onnx

 

 

from MMEdu import MMDetection as det  # 导入基础库

model = det(backbone='SSD_Lite') # 算法模型

model.num_classes = 4  #军旗设定4类,(本项目未用全部棋子,只用了4种演示)

checkpoint = 'checkpoints/det_model/plate/SSD_Lite/epoch_54.pth'  # 设置训练好的权重文件

out_file="out_file/COCO-80.onnx"  # 输出onnx模型

model.convert(checkpoint=checkpoint, backend="ONNX", out_file=out_file, class_path='dataset/classes.txt')

 

转换模型后生成onnx模型以及能运行的模型的Python基础代码。

 

第7步:模型部署

 

把模型和模型代码拷贝到行空板中运行行空板即可实现。

 

第8步:功能扩展

 

image.png

评论

user-avatar