此次项目是为了下一个项目做准备,打算学习一下docker和迁移学习的技术。
1.下载代码和模型
首先从github下载yolov7的官方代码:
https://github.com/WongKinYiu/yolov7
直接点击绿色的code,然后点Download zip进行下载
我们把下载好的文件统一放到
G:\bsh\yolov7\yolov7-main
这个目录下边(demo是我自己新建的文件夹)
然后在官网下载他们提供的官方模型,这里我选择的是最基础的yolov7.pt
下载后放到相同目录中
G:\bsh\yolov7\yolov7-main\yolov7.pt
至此,我们需要下载的代码和模型已经准备好了,接下来我们准备安装yolov7所需要的环境
2.安装yolov7的运行环境
我使用的是windows中安装的wsl虚拟机,
我的笔记本是拯救者Y7000P ,GPU是1060,
我的CUDA是10.1
使用conda创建虚拟环境
conda create -n yolov7 python=3.8
然后安装requirements
pip install -r requirements.txt
注意,安装完成之后,需要检查pytorch和cuda是否对应,比如我的GPU 1060 对应cuda 10.1 需要对应pytorch 1.7.1,否则会报错,具体参考附录1。然后我需要覆盖安装pytorch1.7.1,直接输入安装即可
conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=10.1 -c pytorch
3.inference 推理测试
因为我们不去测试coco数据集,因为他真的太大了,我们直接对单张图片进行推理测试,只需要运行inference推理代码:
python detect.py --weights yolov7.pt --conf 0.25 --img-size 640 --source inference/images/horses.jpg
terminal显示:
(yolov7) xcblinux@LAPTOP-T7NLN4J3:/mnt/g/bsh/yolov7/yolov7-main$ python detect.py --weights yolov7.pt --conf 0.25 --img-size 640 --source inference/images/horses.jpg
Namespace(agnostic_nms=False, augment=False, classes=None, conf_thres=0.25, device='', exist_ok=False, img_size=640, iou_thres=0.45, name='exp', no_trace=False, nosave=False, project='runs/detect', save_conf=False, save_txt=False, source='inference/images/horses.jpg', update=False, view_img=False, weights=['yolov7.pt'])
YOLOR 🚀 2023-7-18 torch 1.7.1 CUDA:0 (NVIDIA GeForce GTX 1060, 6143.8125MB)
Fusing layers...
RepConv.fuse_repvgg_block
RepConv.fuse_repvgg_block
RepConv.fuse_repvgg_block
Model Summary: 306 layers, 36905341 parameters, 6652669 gradients, 104.5 GFLOPS
Convert model to Traced-model...
traced_script_module saved!
model is traced!
5 horses, Done. (39.2ms) Inference, (13.4ms) NMS
The image with the result is saved in: runs/detect/exp2/horses.jpg
Done. (0.367s)
表明我们的代码可以运行,推理的结果存放在runs/detect/exp2/horses.jpg
这里
打开进行查看
原图:
检测后的图:
五匹马都被检测出来了,效果不错,再换一张图进行测试,其实可以把检测的代码最后的图片换成文件夹,就会对文件夹种的所有图片进行推理测试:
python detect.py --weights yolov7.pt --conf 0.25 --img-size 640 --source demo/
检测到了人、飞盘、汽车(coco数据集没有帽子吗??)
插个题外话,coco果真没有帽子