上一次,用我自己采集的图像和数据,进行标注以后,接下来就可以在colab上跑数据了。
首先先来熟悉一下colab的运行环境,这边采用了Yolov5+coco128数据集进行训练。
进入到谷歌云盘以后应该是空白的
点击新建,然后关联更多应用 ,加载Google Colaboratory。然后新建一个colab的文件,我这边是Yolov5.ipynb
进入colab后,连接到gpu
挂载一下谷歌云盘,按照流程操作一下就可以。
然后接下来就可以开始运行了。
运行:下载yolov5模型
!git clone https://github.com/ultralytics/yolov5.git
配置一下需要的包,什么pandas,torch,直接一键下载好
!pip install -r ./yolov5/requirements.txt
然后运行一下coco128的数据(它会自动下载数据,进行训练)
!python /content/drive/MyDrive/yolov5/train.py --data /content/drive/MyDrive/yolov5/data/coco128.yaml --cfg /content/drive/MyDrive/yolov5/models/yolov5s.yaml --weights 'yolov5s.pt' --batch-size 64
运行过程如下:
好,它告诉我们运行的训练结果保存在这个目录。
这边有一些指标,感兴趣的可以自己去看看。
同样的detect/exp2文件里面,有两个图片,应该是测试集
跑出来就这样
接下来就是使用自己的数据集来训练这个权重了。这边为了省事,我直接把coco128文件夹里的数据都删除了,然后放入自己的labels和img,这样后面更改.yaml文件的时候就可以不用改路径了,比较省事了。
进入到.yaml文件的路径里面 cd /content/drive/MyDrive/yolov5/data/
复制一下这个文件cp coco128.yaml coco129.yaml 更改一下coco129.yaml里的数据
按理来说方框里面的数据是要更改的,但是因为我直接用之前coco128的目录,所以这里就可以偷懒不用管了,直接改下面的classes,按这样的格式,有几个项目就可以加几个种类。
跑完后,就可以自己训练了,batch-size自己改大小,这代表一次喂给神经网络的样本数量,data这边可以记得改成自己的yaml文件,然后训练即可
!python /content/drive/MyDrive/yolov5/train.py --data /content/drive/MyDrive/yolov5/data/coco129.yaml --cfg /content/drive/MyDrive/yolov5/models/yolov5s.yaml --weights 'yolov5s.pt' --batch-size 4
我这边存储到exp9,在yolov5的主目录下新建一个test_val的文件夹,然后把要检测的图片放进去,运行下面的代码,同样注意yaml文件,改成自己的文件。
!python /content/drive/MyDrive/yolov5/detect.py --weights /content/drive/MyDrive/yolov5/runs/train/exp9/weights/best.pt --data coco129.yaml --source /content/drive/MyDrive/yolov5/test_val
运行完了之后,可以在这个文件夹里面查找你的运行结果
在对应的train里面会生成weight文件,利用best.pt文件,来生成一个best.onnx,用于后面部署到树莓派上。
将best.pt复制到yolov5的主干里
然后运行下面的代码,就可以生成best.onnx文件。
# prompt: 利用best.pt文件生成.onnx文件
!python export.py --weights runs/train/exp9/weights/best.pt --include onnx --simplify
按理来说参考这篇博客
基于树莓派4B的YOLOv5-Lite目标检测的移植与部署(含训练教程)-优快云博客,下载了他的onnxruntime的wheel 文件,可以安装了,但是我在这里卡了一周,死活装不上,又是去github上找其他的onnxruntime wheel 又是去找文件的,最后才发现,github和这篇博客上给的wheel都是armv7的版本,但是我现在用的是debian 12bookworm ,对应的架构是armv8,因此这些wheel都不实用,最后死马当活马医,直接采用这篇文章在树莓派5部署yolov5模型-优快云博客的两个命令行
最后搞定了(不过按照第一篇文章的说法,需要安装好numpy,可以检查一下numpy是否安装好)
检查numpy:
onnxruntime安装:
接下来就可以运行了!