上篇文章我们介绍了如何对需要训练的数据进行标注,详细可看:
有了数据标注的基础,接下来就可以对标注的数据进行模型训练了,我这里使用的训练模型和环境做个简单介绍:
- Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz 4.20 GHz
- GPU-1060-6GB
- 48G内存
- Python 3.10.x
- CUDA - 11.8
- 训练模型:YoloV8
- TensorRT - 8.6.1.6
- cudNN - 8.9.6.50
这里如果不知道如何安装 CUDA、TensorRT和cudNN的,可以参考之前的文章:
10分钟之内在windows系统中安装好CUDA、TensorRT和cudNN
Python环境就不多说了,这是必备的,为了其他环境和需求稳定这里采用3.10.x版本。
YOLOv8环境可以进其官网了解:Home - Ultralytics YOLOv8 Docs
下面正式进入模型训练步骤:
1.在Roboflow中点击生成按钮后,右侧选择需要训练的图片和训练、验证测试比例,为了提高准确度和一致性,需要注意将图片全部处理成640*640像素的大小
2.其他设置选择默认,点击创建(Create)按钮
3.创建后会看到如下画面,点击画面中的Export Dataset
4.格式选择YOLOv8 并选择 download zip to computer后点击继续(Continue),弹出等待下载
5.下载后的文件解压到本地文件夹,解压包中对应内容如下:
6.使用记事本打开data.yaml文件,windows系统最好将路径修改成绝对路径,该路径指向刚才下载的压缩包解压后的文件夹路径:
7.接下来在data.yaml文件同级别的文件夹中创建一个.py文件,我这里创建的是main.py,文件内容:
# 引入YOLO模型
from ultralytics import YOLO
# 使用YOLOv8的s模型进行训练
model = YOLO('yolov8s.pt')
if __name__ == '__main__':
# 使用同级别目录下的data.yaml文件进行初始化配置,并训练100次
results = model.train(data="./data.yaml", epochs=100)
# 对训练结果做验证
results = model.val()
# 将训练结果转为pt数据,以便其他平台或研发语言使用,后续再讲如何使用
success = YOLO("runs/detect/train/weights/best.pt").export(format="engine")
8.使用命令提示符(cmd)开始训练,看到类似以下的信息便开始训练了,但需注意,很多同学会和我这里一样显示的是CPU,没用到GPU,这就是环境没配置好,GPU的训练速度要比CPU快非常多,可以看到第二张图中的GPU_mem是0G,代表没有识别到GPU
关于如何使用GPU训练、怎么配置环境才能使用GPU进行训练的话题我会再做一期详细解析和教程。
咱们继续...
9.训练结束就能看到类似下列图片的内容,包含了训练次数和最好的一次结果存在哪里:
10.训练结果目录中包含了很多训练过程的指标数据,具体数据解析可先自行搜索,后续我会详细介绍如何根据指标调优。
最后,训练结束,我们来测试一下训练的模型效果吧:
看起来还不错,能够识别到标注的人物并给出对应识别的信息,因为训练数据简单只有1张图片,也只训练了3次。如果给的数据够多,训练次数够的话,肯定可以精准识别了。
在训练时重点关注这3个指标:
点赞+关注是催更我最大的动力。
有什么疑问和不懂欢迎留言评论交流。