一开始对图像处理一无所知,只是因为课堂作业要求去运行代码,所以要从环境搭建开始,一步步建立环境并且运行代码,其中还不包括调参,写下来记录一下。
环境:Windows+anaconda+pytorch
yolov5:https://github.com/ultralytics/yolov5
云端GPU:kaggle
为什么要搭建环境?
是因为在运行代码的时候包太多,如果只存在base解释器中,包不太好管理,所以要新建环境进行包管理。
系统中最初始的就是base解释器,要建立新的python解释器,首先要先下载anaconda(作用:Anaconda(官方网站)就是可以便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项)。
这个去官网下载即可(我下载时候的难题:每次点击download都会跳转一个新页面,就是不下载,(估计我的电脑有点问题)解决办法:右键点击在新标签页内打开,就可下载啦)下载之后一定要将anaconda加入到环境变量中(检验方法:win+R:在cmd中输入conda list 如果没有报错,就证明这一步没问题啦)
加入环境变量的方法:1、在安装的时候直接勾选选项(但是官方不推荐)
2、安装好之后直接编辑环境变量,以我的为例
(记得更改自己的安装路径)
这个需要在cmd中进行指令
创建虚拟环境
进入虚拟环境
conda activate 名字
conda create -n 名字 python=3.6(版本可以改)
途中需要输入‘y'来完成安装
修改conda镜像源
因为conda原始源为国外的,所以有时候下载会很慢,所以将其修改为镜像源
onda config --add channels Index of /anaconda/pkgs/free/win-64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror conda config --add channels Index of /anaconda/pkgs/main/win-64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror conda config --set show_channel_urls yes
安装pytorch
这个需要去pytorch官网依照自己的电脑情况进行下载指令选择
我理解的是如果电脑没有独显,则不能选择cuda,我的选择如下
(看教程说可以去掉 -c pytorch)
这里面可以指定torch版本,下面是我下载的,版本要和python对应
现在环境配置已经完成了 conda info -envs ,可以查看现在已有的虚拟环境
配置好环境的用处是使用python解释器,以pycharm为例,点击-file--settings--projiect interpreter,可以选择你建立好的虚拟环境,在这个环境下运行代码
代码下载
这个可以去GitHub上寻找官方的代码https://github.com/ultralytics/yolov5(这个是yolov5的代码),截止到2022.11,现在的最新版本是6.2,我下载的就是6.2版本的
下载本地以后,将其导入到本地,一定要将项目解释器选择为刚才搭建的虚拟环境,否则会出现import报错的情况
在导入的时候可能会发现报pycocotools的错误,这时候需要去Microsoft C++ 生成工具 - Visual Studio下载工具,安装一下
安装完成之后,直接在pycharm终端输入:pip install pycocotools,这时候就不会报错啦
然后再输入 pip install requirements.txt
这时候可以直接运行detect.py ,会在此处显示效果
因为我的电脑不太ok,所以选择了kaggle(云端GPU)进行模型训练,(可能Google Calob也可以,但是我打不开网址,所以就选择的kaggle)
进入kaggle官网,登录账号,没有账号的话点击进行注册,但是有时候注册点击‘next’时,没有反应,这时候可以参考这个博文(6条消息) kaggle无法注册(含解决方案)Moniko_yo的博客-CSDN博客kaggle注册不了
注册完成后,如果从本地加载data,则会在input路径下进行显示 但是这就导致了一个问题,他在写文件时候报错了,然后不知道怎么解决这个问题
为了解决这个问题 ,就选择了用git clone将其下载到output路径下,就可以正常运行啦
!git clone GitHub - ultralytics/yolov5: YOLOv5 in PyTorch > ONNX > CoreML > TFLite
然后点击下载所需要的环境
pip install -r ./yolov5/requirements.txt
最后运行train.py
!python ./yolov5/train.py
最后生成的训练好的best.pt文件在runs/train文件下,但是这时候我的文件夹一直打不开,不出现下载按钮,电脑下载不了,所以就选择将其搞成压缩包,然后之后下载 运行以下代码就可以
`import osimport zipfileimport 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/yolov5/runs'*
*zipPath = '/kaggle/working/output.zip'*
*if os.path.exists(zipPath):*
*os.remove(zipPath)*
*file2zip(packagePath, zipPath)*
*print("打包完成")*
*print(datetime.datetime.utcnow())
*
最后就可以用训练好的模型进行测试啦