很不专业的经验分享,有问题欢迎大家批评指正和讨论分享
一、创建并登录Kaggle账户
1.登录kaggle官网:https://www.kaggle.com/#
2.点击register,用国内邮箱登录即可
3.验证手机号:点开个人设置->Phone verification(我这里是已经验证过了)
如果不验证手机号,无法使用Kaggle里的GPU
PS:中国手机号就可以,但手机号验证需要科学上网,不然刷不出来人机验证,也发送不了验证码
二、修改yolov5
参考这个:
全流程打通!YOLOV5标注&训练&部署:Windows/Linux/Jetson Nano-CSDN博客
三、创建项目
1.创建Dataset
左上角+号
将yolov5文件夹拖入或选择文件
2.创建Notebook
Notebook中编程模式同Jupyter,如下图,想要运行代码块可以按Shift+Enter
在右边Input里点击+Add Input
添加有的Dataset,当右下交的+号变成黑色,放上去显示Remove,那么Dataset就是添加成功了
四、在Kaggle GPU中运行
1.打开GPU(一定要一直开着,不然换了加速器之前那些就都没有了)
2.打开Output文件
cd /kaggle/working
3.复制dataset
cp -r /kaggle/input/yolov5/yolov5 yolov5
意思是把kaggle/input/yolov5下的yolov5文件 复制到 当前位置(kaggle/working/) 命名为yolov5,大家要根据自己的文件修改
4.进入yolov5
cd yolov5
5.运行训练文件(根据上文参考链接创建的)
!python train_people.py
6.成功!
7.导出结果
因为Kaggle对于Output只能下载文件不能下载文件夹,所以可以先进行一个压缩
import os
import zipfile
import datetime
def file2zip(packagePath, zipPath):
'''
:param packagePath: 文件夹路径
:param zipPath: 压缩包路径
:return:
'''
zip = zipfile.ZipFile(zipPath, 'w', zipfile.ZIP_DEFLATED)
for path, dirNames, fileNames in os.walk(packagePath):
fpath = path.replace(packagePath, '')
for name in fileNames:
fullName = os.path.join(path, name)
name = fpath + '\\' + name
zip.write(fullName, name)
zip.close()
if __name__ == "__main__":
# 文件夹路径
packagePath = '/kaggle/working/battery3'
zipPath = '/kaggle/working/finaloutput.zip'
if os.path.exists(zipPath):
os.remove(zipPath)
file2zip(packagePath, zipPath)
print("打包完成")
print(datetime.datetime.utcnow())
打包成功后,右键三个小圆点More actions, 下载就可以
五、还有一个更简单的方法(来自无所不能的同学)
1.在yolov5文件夹中新建一个新的datasets,内容如图(我这个是识别电池)
bt.yaml文件如图:
path: datasets/battery #训练数据集的路径
train: images/train # train images (relative to 'path')
val: images/val # val images (relative to 'path')
#类别
names:
0: battery
2.打开kaggle,与前面一样,进入yolov5文件夹后,输入:
!python train.py --data datasets/battery/bt.yaml --weights yolov5s.pt --epochs 300
yml文件大家记得修改成自己的,epochs指的训练的轮数
3.查看训练结果:
打开anaconda,或者在pycharm中打开终端(记得要在可以运行的环境中)
输入:
python detect.py --weights runs/train/exp3/weights/best.pt
PS: detect.py 默认看的是data/images中的图片(没错就是公交车和生气的裁判),可以将想要测试的图片放进去,也可以修改路径
4.存在了exp6中
结果还可以
当然,这些也可以继续在kaggle中运行上述代码,提前放几张测试结果的照片就行,不然还得再上传,在这就不多做赘述了