0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NNCF压缩与量化YOLOv8模型与OpenVINO部署测试

OpenCV学堂 来源:OpenCV学堂 2023-11-20 10:46 次阅读

NNCF介绍

OpenVINO2023版本衍生出了一个新支持工具包NNCF(Neural Network Compression Framework – 神经网络压缩框架),通过对OpenVINO IR格式模型的压缩与量化更好的提升模型在OpenVINO框架上部署的推理性能。

安装NNCF

pip install nncf

NNCF关键特性

训练后压缩算法支持权重压缩与量化,训练时压缩算法支持感知量化、混合精度量化、二值、稀疏、过滤剪枝、运动剪枝等算法。图示如下:

4c7841b6-8744-11ee-939d-92fbcf53809c.png

YOLOv8量化压缩

基于NNCF实现YOLOv8预训练模型的训练后量化压缩(PTQ),实现INT8量化YOLOv8模型生成。首先需要使用YOLOv8命令行工具导出OpenVINO格式模型,命令行如下:

yolo export model=yolov8n.pt format=openvino
然后基于YOLOv8框架的函数构建一个YOLOv8模型对应的COCO数据集的Validator,相关的代码如下:

4c7f8ac0-8744-11ee-939d-92fbcf53809c.png

官方给出的代码里面是有个ValidatorClass,但是我发现YOLOv8框架早已经不支持,这里其实主要是构建自己的Dataset跟DataLoader而已,简单粗暴的点是可以自己直接构建,就是要写点代码。我发现了YOLOv8框架里面有个DetectionValidator是可以用的,于是我就用这个,然后直接给一个图像文件夹就可以获取dataloader实例了。准备好验证数据以后,就是最后一步了,启动模型INT8量化,相关的代码如下:

4c8bf17a-8744-11ee-939d-92fbcf53809c.png

这样就可以完成PTQ量化模型的生成。最后这部分的代码,其实在GITHUB的官方教程上是有说明跟给出的,我这里再贴一下:

4c9fe996-8744-11ee-939d-92fbcf53809c.png

就是说,实际上针对自定义数据集,你自己构建一个DataLoader即可。

量化版YOLOv8推理测试

基于量化版本,基于OpenVINO C++ SDK在不同的部署与加速方式下,最终的测试结果如下:

4ce553c8-8744-11ee-939d-92fbcf53809c.png

从此,我又相信YOLOv8+OpenVINO了。

特别说明

请用OpenVINO20023.1版本测试。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    3238

    浏览量

    48824
  • 数据集
    +关注

    关注

    4

    文章

    1208

    浏览量

    24695
  • OpenVINO
    +关注

    关注

    0

    文章

    93

    浏览量

    198

原文标题:NNCF压缩与量化YOLOv8模型与OpenVINO部署测试

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【爱芯派 Pro 开发板试用体验】yolov8模型转换

    通过开发板上预制的ax_run_model 工具,测试模型速度和精度。 示例都是yolov5的,没有yolov8模型怎么运行还需进一步
    发表于 11-20 12:19

    使用YOLOv8做目标检测和实例分割的演示

    YOLOv8是来自Ultralytics的最新的基于YOLO的对象检测模型系列,提供最先进的性能。
    的头像 发表于 02-06 10:11 7485次阅读

    在C++中使用OpenVINO工具包部署YOLOv5模型

    下载并转换YOLOv5预训练模型的详细步骤,请参考:《基于OpenVINO™2022.2和蝰蛇峡谷优化并部署YOLOv5
    的头像 发表于 02-15 16:53 4653次阅读

    YOLOv8自定义数据集训练到模型部署推理简析

    如果你只是想使用而不是开发,强烈推荐通过pip安装方式获取YOLOv8包!YOLOv8安装命令行
    的头像 发表于 03-24 09:27 4663次阅读

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8分类模型

    本系列文章将在 AI 爱克斯开发板上使用 OpenVINO 开发套件依次部署并测评 YOLOv8 的分类模型、目标检测模型、实例分割
    的头像 发表于 05-05 11:47 1057次阅读
    在AI爱克斯开发板上用<b class='flag-5'>OpenVINO</b>™加速<b class='flag-5'>YOLOv8</b>分类<b class='flag-5'>模型</b>

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8目标检测模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 分类模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署
    的头像 发表于 05-12 09:08 1316次阅读
    在AI爱克斯开发板上用<b class='flag-5'>OpenVINO</b>™加速<b class='flag-5'>YOLOv8</b>目标检测<b class='flag-5'>模型</b>

    AI爱克斯开发板上使用OpenVINO加速YOLOv8目标检测模型

    《在AI爱克斯开发板上用OpenVINO加速YOLOv8分类模型》介绍了在AI爱克斯开发板上使用OpenVINO 开发套件部署并测评
    的头像 发表于 05-26 11:03 1246次阅读
    AI爱克斯开发板上使用<b class='flag-5'>OpenVINO</b>加速<b class='flag-5'>YOLOv8</b>目标检测<b class='flag-5'>模型</b>

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8-seg实例分割模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 目标检测模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署
    的头像 发表于 06-05 11:52 1007次阅读
    在AI爱克斯开发板上用<b class='flag-5'>OpenVINO</b>™加速<b class='flag-5'>YOLOv8</b>-seg实例分割<b class='flag-5'>模型</b>

    教你如何用两行代码搞定YOLOv8各种模型推理

    大家好,YOLOv8 框架本身提供的API函数是可以两行代码实现 YOLOv8 模型推理,这次我把这段代码封装成了一个类,只有40行代码左右,可以同时支持YOLOv8对象检测、实例分割
    的头像 发表于 06-18 11:50 3064次阅读
    教你如何用两行代码搞定<b class='flag-5'>YOLOv8</b>各种<b class='flag-5'>模型</b>推理

    在AI爱克斯开发板上用OpenVINO™加速YOLOv8-seg实例分割模型

    《在 AI 爱克斯开发板上用 OpenVINO 加速 YOLOv8 目标检测模型》介绍了在 AI 爱克斯开发板上使用 OpenVINO 开发套件部署
    的头像 发表于 06-30 10:43 915次阅读
    在AI爱克斯开发板上用<b class='flag-5'>OpenVINO</b>™加速<b class='flag-5'>YOLOv8</b>-seg实例分割<b class='flag-5'>模型</b>

    三种主流模型部署框架YOLOv8推理演示

    深度学习模型部署OpenVINO、ONNXRUNTIME、TensorRT三个主流框架,均支持Python与C++的SDK使用。对YOLOv5~Y
    的头像 发表于 08-06 11:39 2735次阅读

    解锁YOLOv8修改+注意力模块训练与部署流程

    很多人也想跟修改YOLOv5源码一样的方式去修改YOLOv8的源码,但是在github上面却发现找到的YOLOv8项目下面TAG分支是空的
    的头像 发表于 08-11 14:14 4355次阅读
    解锁<b class='flag-5'>YOLOv8</b>修改+注意力模块训练与<b class='flag-5'>部署</b>流程

    YOLOv8实现任意目录下命令行训练

    当你使用YOLOv8命令行训练模型的时候,如果当前执行的目录下没有相关的预训练模型文件,YOLOv8就会自动下载模型权重文件。这个是一个正常
    的头像 发表于 09-04 10:50 1113次阅读
    <b class='flag-5'>YOLOv8</b>实现任意目录下命令行训练

    基于YOLOv8的自定义医学图像分割

    YOLOv8是一种令人惊叹的分割模型;它易于训练、测试部署。在本教程中,我们将学习如何在自定义数据集上使用YOLOv8。但在此之前,我想告
    的头像 发表于 12-20 10:51 778次阅读
    基于<b class='flag-5'>YOLOv8</b>的自定义医学图像分割

    基于OpenCV DNN实现YOLOv8模型部署与推理演示

    基于OpenCV DNN实现YOLOv8推理的好处就是一套代码就可以部署在Windows10系统、乌班图系统、Jetson的Jetpack系统
    的头像 发表于 03-01 15:52 1608次阅读
    基于OpenCV DNN实现<b class='flag-5'>YOLOv8</b>的<b class='flag-5'>模型</b><b class='flag-5'>部署</b>与推理演示