基于OpenVINO工具套件简单实现YOLOv7预训练模型的部署_附带预训练模型

一、YOLOv7简介

还在用yolov3/yolov5做项目嘛,那已经过时了(至少从知识的新鲜程度上讲)。下面教你一文实现最新的yolov7的模型部署(在版本上压制对手)。
!!!!!!重点是这个程序中的预训练模型在github官网上的下载速度很快,不会出现v3系列那种pth文件下载速度慢断流的问题。作者也为大家准备了其中的:yolov7.pt预训练模型

官方版的YOLOv7相同体量下比YOLOv5精度更高,速度快120%(FPS),比 YOLOX 快180%(FPS),比 Dual-Swin-T 快1200%(FPS),比 ConvNext 快550%(FPS),比 SWIN-L快500%(FPS)。在5FPS到160FPS的范围内,无论是速度或是精度,YOLOv7都超过了目前已知的检测器,并且在GPU V100上进行测试, 精度为56.8% AP的模型可达到30 FPS(batch=1)以上的检测速率,与此同时,这是目前唯一一款在如此高精度下仍能超过30FPS的检测器。

论文链接:https://arxiv.org/abs/2207.02696

代码链接:https://github.com/WongKinYiu/yolov7

二、预训练模型准备

  • 模型权重下载

    可以从官方github仓库提供的链接中下载基于COCO数据集的YOLOv7预训练模型权重。

Model

Test Size

APtest

AP50test

AP75test

batch 1 fps

batch 32 average time

YOLOv7

640

51.4%

69.7%

55.9%

161 fps

2.8 ms

YOLOv7-x

640

53.1%

71.2%

57.8%

114 fps

4.3ms

YOLOv7-W6

1280

54.9%

72.6%

60.1%

84 fps

7.6 ms

YOLOv7-E6

1280

56.0%

73.5%

61.2%

56 fps

12.3 ms

YOLOv7-D6

1280

56.6%

74.0%

61.8%

44 fps

15.0 ms

YOLOv7-E6E

1280

56.8%

74.4%

62.1%

36 fps

18.7 ms

  • 模型转换

    可以从官方github仓库提供的链接中下载基于COCO数据集的YOLOv7预训练模型权重。

# 下载YOLOv7官方仓库:

$ git clone [email protected]:WongKinYiu/yolov7.git

$ cd yolov7/models

$ python export.py --weights yolov7.pt

**如果执行上面的命令发现模型下载速度慢或者断流,直接按照下面的链接下载yolov7.pth,然后根据程序指引手动将预训练模型放置在指定位置。

yolov7下载地址:https://download.csdn.net/download/qq_44949041/86796489**

三、模型部署

通过Netron工具打开yolov7.onnx文件后可以看到,官方提供的预训练模型的output部分包含三个特征层的预测结果,因此需要根据每一层的先验框(anchor)对输出数据进行调整后,再进行堆叠。

由于YOLOv7的模型前后处理基本和YOLOv5一致,大部分数据处理模块可以直接复用。话不多说直接上代码:

六、运行结果

运行python示例后,会在本地data目录下生成代bounding box以及label的图片,这里我们用到官方仓库中附带的马匹数据进行测试,具体结果如下:

# 运行代码

$ python YOLOV7.py -i horse.jpg -m yolov7.onnx
 
   
   
   
   

Github地址:

https://github.com/OpenVINO-dev-contest/YOLOv7_OpenVINO

--END--


你可能感兴趣的:(神经网络,openvino,深度学习,python)