系统win10。本文只是根据readme文件走流程,记录一些常用公式。
RizwanMunawar/yolov7-segmentation at 87b016cda50371d6e2824378d641c2d4417ea1c3 (github.com)
目录
一、项目文件的下载与直接运用
1.将工程文件git到本地
2.创建并配置虚拟环境,记录常用公式
3.下载权重文件进行训练后结果测试
二、用自己的数据集进行训练
1.数据集的预处理
2.文件个性化修改
3.开始训练
4.训练完成
一、项目文件的下载与直接运用
1.将工程文件git到本地
error1:直接使用Anaconda Prompt报错
fatal: unable to access 'https://github.com/RizwanMunawar/yolov7-segmentation.git/': OpenSSL SSL_read: Connection was reset, errno 10054
通过解除ssl安全验证,如下所示:
git config --global http.sslVerify “false”
error2:提示连接服务器失败,如unable to access ‘https://gitee...‘: Failed to connect to 127.0.0.1 port 31181 after 2029 ms。解决方法:http://t.csdn.cn/XOGJahttp://t.csdn.cn/XOGJa
随后再在Prompt或者git bash中输入下列代码即可git到本地目标文件夹
git clone https://github.com/RizwanMunawar/yolov7-segmentation.git
2.创建并配置虚拟环境,记录常用公式
#查看当前的虚拟环境
conda env list
#创建虚拟环境
conda create -n yolov7seg python=3.8
#激活环境
conda activate yolov7seg
#配置环境
pip install -r requirements.txt
3.下载权重文件进行训练后结果测试
https://github.com/RizwanMunawar/yolov7-segmentation/releases/download/yolov7-segmentation/yolov7-seg.pt
下载yolov7-seg.pt权重文件,放到主文件夹下。
输入以下代码对目标进行预测
#视频
python segment/predict.py --weights yolov7-seg.pt --source "football1.mp4"
#图片
python segment/predict.py --weights yolov7-seg.pt --source 1.jpg
文件夹
python segment/predict.py --weights yolov7-seg.pt --source test
图片效果如下,位置在runs文件夹下
二、用自己的数据集进行训练
1.数据集的预处理
使用labelme提前标记好数据集,格式如下,每一个image有一个json格式的标注文件。
作者推荐使用roboflow进行数据标记
Roboflow: Give your software the power to see objects in images and video
在已有数据集的情况下,进行格式转换,根据流程走,全程默认选项,最后输出格式为:
输出的数据集文件夹如下:
2.文件个性化修改
根据readme文件指示要求,将train和test文件夹放到工程文件的的data子文件夹下方
在data文件夹下创建一个custom.yaml文件,valid文件夹可一并放入data中,并将代码内容编辑如下,用pwd命令确定文件夹的位置进行修改:
#标准train和val文件夹位置,..中的内容用pwd确定
train: ../yolov7-segmentation/data/train/images
val: ../yolov7-segmentation/data/valid/images
#nc为number of classes,即标记的种类的个数
nc: 2
#按以下格式将label的内容填入
names: ['car','person']
3.开始训练
按作者要求将上面用到的权重文件下载到主文件夹下,并输入以下代码进行训练:
#根据个人需求进行参数修改,如batch和epoch等
python segment/train.py --data data/custom.yaml --batch 4 --weights "yolov7-seg.pt" --cfg yolov7-seg.yaml --epochs 10 --name yolov7-seg --img 640 --hyp hyp.scratch-high.yaml
如果显示如下,即启用了cuda,用的是显卡进行训练,如果最后一行显示CPU,则未成功启用显卡。
如果未成功启用显卡,问题存在于pytorch可能下载为cpu的版本,因为环境配置是根据requirements.txt文件直接安装的,可能会存在差错。
这里将torch和torchvision进行卸载,去pytorch官网进行安装,如我的电脑cuda版本是11.6,去官网下载了适用于11.7的2.0.0的torch版本,即可成功启用cuda。
以下会报错,说是np.int不存在(该问题每次重启后都会出现,幸而不麻烦,也未作处理)
AttributeError: module 'numpy' has no attribute 'int'.`np.int` was a deprecated alias for the builtin `int`. To avoid this error in existing code, use `int` by itself. Doing this will not modify any behavior and is safe. When replacing `np.int`, you may wish to use e.g. `np.int64` or `np.int32` to specify the precision. If you wish to review your current use, check the release note link for additional information.The aliases was originally deprecated in NumPy 1.20; for more details and guidance see the original release note at:https://numpy.org/devdocs/release/1.20.0notes.html#deprecations
经尝试发现,只有numpy1.20.3符合要求,因此使用pip进行安装
pip install numpy==1.20.3
安装完指定版本的numpy以后,重新输入代码进行训练。显示如下,可以看到显存调用起来了,如果未成功启用显卡,那么GPU_mem将显示0G
4.训练完成
Results saved to runs\train-seg\yolov7-seg2
根据命令行提示,可以去相应文件夹下看到一些训练信息,很多直观的图片。在weight文件中存在的是训练后的权重文件。其中best.pt即为所得。
文章来源:https://www.toymoban.com/news/detail-468551.html
输入如下代码进行预测,可根据个人需求进行修改。文章来源地址https://www.toymoban.com/news/detail-468551.html
python segment/predict.py --weights "runs/train-seg/yolov7-seg2/weights/best.pt" --source test
到了这里,关于YOLOV7语义分割(日后自用笔记)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!