YOLOv5、YOLOv6、YOLOv7、YOLOv8、YOLOv9、YOLOv10、YOLOv11 推理的 C++ 和 Python 实现

yolo 推理

YOLOv5、YOLOv6、YOLOv7、YOLOv8、YOLOv9、YOLOv10、YOLOv11 推理的 C++ 和 Python实现。

支持的推理后端包括 Libtorch/PyTorch、ONNXRuntime、OpenCV、OpenVINO 和 TensorRT。

支持的任务类型包括分类、检测和分割。

支持的模型类型包括FP32、FP16和INT8。

yolo测试

C++代码测试

你可以使用以下方法测试 C++ 代码:

# Windows
mkdir build ; cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release
./run.bat

或者

# Linux
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make
./run.sh

Docker上对C++测试

在Docker中的Ubuntu22.04上进行C++测试(CPU i7-12700,GPU RTX3070):

模型任务设备精确LibTorchONNX运行时OpenCV开放的VINOTensorRT
YOLOv5n分类中央处理器FP3215.3毫秒12.2毫秒20.6毫秒14.1毫秒×
YOLOv5n分类图形处理器FP324.9毫秒5.1毫秒5.1毫秒4.1毫秒
YOLOv5n分类中央处理器FP16×21.7毫秒20.1毫秒14.0毫秒×
YOLOv5n分类图形处理器FP164.6毫秒8.1毫秒4.9毫秒3.2毫秒
YOLOv5n分类中央处理器INT8×18.3毫秒××
YOLOv5n分类图形处理器INT8×34.2毫秒×3.0毫秒
YOLOv5n探测中央处理器FP3223.3毫秒20.2毫秒57.3毫秒20.0毫秒×
YOLOv5n探测图形处理器FP327.2毫秒6.4毫秒8.2毫秒4.4毫秒
YOLOv5n探测中央处理器FP16×41.8毫秒57.3毫秒19.8毫秒×
YOLOv5n探测图形处理器FP166.8毫秒18.8毫秒7.9毫秒3.9毫秒
YOLOv5n探测中央处理器INT8×26.7毫秒×18.1毫秒×
YOLOv5n探测图形处理器INT8×49.3毫秒×3.5毫秒
YOLOv5n部分中央处理器FP32×28.2毫秒75.8毫秒27.2毫秒×
YOLOv5n部分图形处理器FP3210.6毫秒10.6毫秒10.8毫秒6.3毫秒
YOLOv5n部分中央处理器FP16×55.0毫秒75.9毫秒27.2毫秒×
YOLOv5n部分图形处理器FP169.8毫秒29.0毫秒10.0毫秒5.0毫秒
YOLOv5n部分中央处理器INT8×34.5毫秒××
YOLOv5n部分图形处理器INT8×62.1毫秒×4.2毫秒
YOLOv6n探测中央处理器FP3228.1毫秒29.7毫秒29.3毫秒×
YOLOv6n探测图形处理器FP326.4毫秒6.5毫秒5.0毫秒
YOLOv6n探测中央处理器FP1647.1毫秒27.4毫秒29.3毫秒×
YOLOv6n探测图形处理器FP1613.1毫秒6.2毫秒3.5毫秒
YOLOv6n探测中央处理器INT838.5毫秒×23.4毫秒×
YOLOv6n探测图形处理器INT895.7毫秒×4.1毫秒
YOLOv7t探测中央处理器FP3250.5毫秒33.6毫秒59.9毫秒34.8毫秒×
YOLOv7t探测图形处理器FP328.0毫秒7.7毫秒8.7毫秒5.5毫秒
YOLOv7t探测中央处理器FP1671.7毫秒63.7毫秒34.7毫秒×
YOLOv7t探测图形处理器FP1621.3毫秒7.0毫秒3.9毫秒
YOLOv7t探测中央处理器INT850.7毫秒×27.8毫秒×
YOLOv7t探测图形处理器INT885.6毫秒×3.7毫秒
YOLOv8n分类中央处理器FP323.5毫秒2.2毫秒4.0毫秒2.4毫秒×
YOLOv8n分类图形处理器FP322.3毫秒1.5毫秒1.9毫秒1.2毫秒
YOLOv8n分类中央处理器FP16×6.3毫秒4.0毫秒2.4毫秒×
YOLOv8n分类图形处理器FP161.7毫秒1.7毫秒1.0毫秒
YOLOv8n分类中央处理器INT8×3.4毫秒××
YOLOv8n分类图形处理器INT8×7.8毫秒×1.0毫秒
YOLOv8n探测中央处理器FP3233.3毫秒27.9毫秒42.2毫秒28.6毫秒×
YOLOv8n探测图形处理器FP326.4毫秒6.9毫秒6.8毫秒6.0毫秒
YOLOv8n探测中央处理器FP16×57.2毫秒41.9毫秒28.6毫秒×
YOLOv8n探测图形处理器FP1619.4毫秒5.7毫秒3.7毫秒
YOLOv8n探测中央处理器INT8×37.3毫秒×24.5毫秒×
YOLOv8n探测图形处理器INT8×85.5毫秒×4.7毫秒
YOLOv8n部分中央处理器FP32×42.9毫秒54.7毫秒37.5毫秒×
YOLOv8n部分图形处理器FP329.5毫秒10.5毫秒×8.1毫秒
YOLOv8n部分中央处理器FP16×73.1毫秒54.9毫秒37.4毫秒×
YOLOv8n部分图形处理器FP1627.3毫秒×5.9毫秒
YOLOv8n部分中央处理器INT8×51.0毫秒××
YOLOv8n部分图形处理器INT8×101.1毫秒×5.6毫秒
YOLOv9t探测中央处理器FP3240.8毫秒34.6毫秒54.1毫秒29.0毫秒×
YOLOv9t探测图形处理器FP328.1毫秒9.4米9.7毫秒7.1毫秒
YOLOv9t探测中央处理器FP1660.6毫秒55.0毫秒29.0毫秒×
YOLOv9t探测图形处理器FP1617.9毫秒9.0毫秒4.9毫秒
YOLOv9t探测中央处理器INT848.0毫秒×27.0毫秒×
YOLOv9t探测图形处理器INT8135.2毫秒×5.6毫秒
YOLOv10n探测中央处理器FP3230.4毫秒27.9毫秒26.1毫秒×
YOLOv10n探测图形处理器FP326.0毫秒6.5 米
YOLOv10n探测中央处理器FP1656.4毫秒26.0毫秒×
YOLOv10n探测图形处理器FP1610.9毫秒
YOLOv10n探测中央处理器INT840.7毫秒×23.5毫秒×
YOLOv10n探测图形处理器INT883.9毫秒×
YOLOv11n分类中央处理器FP324.1毫秒2.4毫秒4.4毫秒2.6毫秒×
YOLOv11n分类图形处理器FP322.7毫秒1.7毫秒×1.4毫秒
YOLOv11n分类中央处理器FP16×6.3毫秒4.5毫秒2.6毫秒×
YOLOv11n分类图形处理器FP162.1毫秒×1.1毫秒
YOLOv11n分类中央处理器INT8×××
YOLOv11n分类图形处理器INT8××1.3毫秒
YOLOv11n探测中央处理器FP3235.0毫秒26.9毫秒44.4毫秒25.0毫秒×
YOLOv11n探测图形处理器FP327.2毫秒7.2毫秒×6.0毫秒
YOLOv11n探测中央处理器FP16×61.3毫秒44.8毫秒25.0毫秒×
YOLOv11n探测图形处理器FP1620.0毫秒×3.9毫秒
YOLOv11n探测中央处理器INT8××22.8毫秒×
YOLOv11n探测图形处理器INT8××4.7毫秒
YOLOv11n部分中央处理器FP32×38.8毫秒56.9毫秒34.0毫秒×
YOLOv11n部分图形处理器FP3210.9毫秒×7.5毫秒
YOLOv11n部分中央处理器FP16×78.3毫秒58.1毫秒33.8毫秒×
YOLOv11n部分图形处理器FP1627.9毫秒×6.2毫秒
YOLOv11n部分中央处理器INT8×××
YOLOv11n部分图形处理器INT8××4.9毫秒

Python代码测试

可以使用以下方式测试 Python 代码:

# Windows 
pip install -r requirements.txt
./run.bat

或者

# Linux
pip install -r requirements.txt
./run.sh

Docker上对python测试

在Docker中对Ubuntu22.04进行Python测试(CPU i7-12700,GPU RTX3070):

模型任务设备精确PyTorchONNX运行时OpenCV开放的VINOTensorRT
YOLOv5n分类中央处理器FP3226.3毫秒21.4毫秒33.2毫秒21.8毫秒×
YOLOv5n分类图形处理器FP3215.6毫秒16.1毫秒16.6毫秒17.0毫秒
YOLOv5n分类中央处理器FP1630.3毫秒31.5毫秒21.7毫秒×
YOLOv5n分类图形处理器FP1614.5毫秒18.6毫秒17.4毫秒19.8毫秒
YOLOv5n分类中央处理器INT828.9毫秒××
YOLOv5n分类图形处理器INT854.8毫秒×18.9毫秒
YOLOv5n探测中央处理器FP3230.6毫秒27.0毫秒60.0毫秒24.8毫秒×
YOLOv5n探测图形处理器FP3210.4毫秒14.9毫秒10.7毫秒14.3毫秒
YOLOv5n探测中央处理器FP1640.7毫秒59.8毫秒24.8毫秒×
YOLOv5n探测图形处理器FP1612.3毫秒19.6毫秒10.3毫秒12.8毫秒
YOLOv5n探测中央处理器INT833.7毫秒×23.1毫秒×
YOLOv5n探测图形处理器INT872.9毫秒×13.8毫秒
YOLOv5n部分中央处理器FP32159.2毫秒116.1毫秒147.2毫秒47.8毫秒×
YOLOv5n部分图形处理器FP3234.6毫秒49.1毫秒38.0毫秒70.7毫秒
YOLOv5n部分中央处理器FP16138.8毫秒142.2毫秒48.2毫秒×
YOLOv5n部分图形处理器FP1650.9毫秒78.9毫秒52.4毫秒72.6毫秒
YOLOv5n部分中央处理器INT8127.6毫秒××
YOLOv5n部分图形处理器INT8191.8毫秒×13.3毫秒
YOLOv6n探测中央处理器FP3254.0毫秒48.1毫秒52.0毫秒×
YOLOv6n探测图形处理器FP3240.0毫秒34.2毫秒43.0毫秒
YOLOv6n探测中央处理器FP1666.4毫秒48.1毫秒51.8毫秒×
YOLOv6n探测图形处理器FP1649.9毫秒36.3毫秒40.5毫秒
YOLOv6n探测中央处理器INT867.1毫秒×44.9毫秒×
YOLOv6n探测图形处理器INT8241.4毫秒×61.7毫秒
YOLOv7t探测中央处理器FP3253.341.1毫秒62.9毫秒39.4毫秒×
YOLOv7t探测图形处理器FP3210.616.5毫秒10.4毫秒14.0毫秒
YOLOv7t探测中央处理器FP1672.2毫秒62.9毫秒39.4毫秒×
YOLOv7t探测图形处理器FP1624.3毫秒9.1毫秒12.7毫秒
YOLOv7t探测中央处理器INT858.2毫秒×32.4毫秒×
YOLOv7t探测图形处理器INT8101.8毫秒×12.9毫秒
YOLOv8n分类中央处理器FP323.5毫秒2.2毫秒4.1毫秒2.3毫秒×
YOLOv8n分类图形处理器FP322.5毫秒1.6毫秒1.8毫秒3.5毫秒
YOLOv8n分类中央处理器FP166.3毫秒4.1秒2.3毫秒×
YOLOv8n分类图形处理器FP161.7毫秒1.7毫秒2.8毫秒
YOLOv8n分类中央处理器INT83.7毫秒××
YOLOv8n分类图形处理器INT88.2毫秒×3.0毫秒
YOLOv8n探测中央处理器FP3259.2毫秒57.8毫秒60.3秒49.4毫秒×
YOLOv8n探测图形处理器FP3235.5毫秒40.5毫秒29.4毫秒39.1毫秒
YOLOv8n探测中央处理器FP1677.1毫秒61.3毫秒49.6毫秒×
YOLOv8n探测图形处理器FP1660.4毫秒30.8毫秒38.1毫秒
YOLOv8n探测中央处理器INT864.1毫秒×44.1毫秒×
YOLOv8n探测图形处理器INT8138.7毫秒×40.9毫秒
YOLOv8n部分中央处理器FP32184.7毫秒157.8毫秒142.3毫秒100.0毫秒×
YOLOv8n部分图形处理器FP3294.3毫秒104.2毫秒88.5毫秒116.6毫秒
YOLOv8n部分中央处理器FP16180.4毫秒144.8秒99.3毫秒×
YOLOv8n部分图形处理器FP16122.2毫秒108.7毫秒118.7毫秒
YOLOv8n部分中央处理器INT8166.4毫秒××
YOLOv8n部分图形处理器INT8275.3毫秒×40.9毫秒
YOLOv9t探测中央处理器FP3261.0毫秒61.0毫秒74.9毫秒49.7毫秒×
YOLOv9t探测图形处理器FP3233.6毫秒41.4米31.2毫秒40.2毫秒
YOLOv9t探测中央处理器FP1681.0毫秒75.4毫秒49.6毫秒×
YOLOv9t探测图形处理器FP1645.9毫秒33.5毫秒41.5毫秒
YOLOv9t探测中央处理器INT874.4毫秒×46.8毫秒×
YOLOv9t探测图形处理器INT8384.5毫秒×47.5毫秒
YOLOv10n探测中央处理器FP3233.7毫秒34.7毫秒28.6毫秒×
YOLOv10n探测图形处理器FP328.3毫秒13.0米
YOLOv10n探测中央处理器FP1657.8毫秒28.6毫秒×
YOLOv10n探测图形处理器FP1614.4毫秒
YOLOv10n探测中央处理器INT849.8毫秒×26.1毫秒×
YOLOv10n探测图形处理器INT8103.0毫秒×
YOLOv11n分类中央处理器FP324.1毫秒2.3毫秒4.6毫秒2.5毫秒×
YOLOv11n分类图形处理器FP322.8毫秒1.7毫秒3.7毫秒
YOLOv11n分类中央处理器FP166.1毫秒4.5毫秒2.5毫秒×
YOLOv11n分类图形处理器FP161.9毫秒3.3毫秒
YOLOv11n分类中央处理器INT8××
YOLOv11n分类图形处理器INT8×3.6毫秒
YOLOv11n探测中央处理器FP3262.2毫秒52.9毫秒66.2毫秒45.2毫秒×
YOLOv11n探测图形处理器FP3238.7毫秒41.2毫秒36.6毫秒
YOLOv11n探测中央处理器FP1682.5毫秒63.0毫秒45.1毫秒×
YOLOv11n探测图形处理器FP1658.2毫秒38.2毫秒
YOLOv11n探测中央处理器INT8×50.0毫秒×
YOLOv11n探测图形处理器INT8×39.1毫秒
YOLOv11n部分中央处理器FP32183.5毫秒152.7毫秒144.1毫秒91.9毫秒×
YOLOv11n部分图形处理器FP3298.2毫秒116.2毫秒114.9毫秒
YOLOv11n部分中央处理器FP16185.4毫秒155.2毫秒92.3毫秒×
YOLOv11n部分图形处理器FP16?多发性硬化症130.4毫秒120.2毫秒
YOLOv11n部分中央处理器INT8××
YOLOv11n部分图形处理器INT8×39.0毫秒

你可以使用以下命令获取 docker 镜像:

docker pull taify/yolo_inference:latest

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/59701.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

借助 Pause 容器调试 Pod

借助 Pause 容器调试 Pod 在 K8S 中,Pod 是最核心、最基础的资源对象,也是 Kubernetes 中调度最小单元。在介绍 Pause 容器之前需要先说明下 Pod 与容器的关系来理解为什么需要 Pause 容器来帮助调试 1. Pod 与 容器的关系 Pod 是一个抽象的逻辑概念&…

IDEA自定义文件打开格式

介绍在IDEA中自定义文件打开格式的方法,比如一个文件,可以选择用txt格式打开,也可以选择用xml格式打开,也可以用java格式打开等等,通过这个方法可以方便的用任意格式在idea中打开想要打开的文件。 下面分别讨论三种不…

Git 分⽀规范 Git Flow 模型

前言 GitFlow 是一种流行的 Git 分支管理策略,由 Vincent Driessen 在 2010 年提出。它提供了一种结构化的方法来管理项目的开发、发布和维护,特别适合大型和复杂的项目。GitFlow 定义了一套明确的分支模型和工作流程,使得团队成员可以更有效…

ECG心电前级信号提取

由于ECG信号很微弱,处于mV级别,还有很多干扰信号,所以采集信号时需要进行滤波和放大处理,然后使用模数转换。为了滤波高频干扰和工频噪声,需要使用低通滤波器和陷波器抑制噪声,有时也要使用高通滤波器滤除低…

【Android】逆向开发与反逆向开发入门知识(一)

目录 逆向开发反编译 & 反混淆反编译工具反编译反混淆 修改预置资源文件抓包前期准备二次打包重签名 如何预防 App 被逆向开发?代码混淆应用加固防止动态调试Root 检测二次打包检测 警告:逆向开发相关知识请在法律规定范围内使用,请勿使用…

华为Mate 70临近上市:代理IP与抢购攻略

随着科技的飞速发展,智能手机已经成为我们日常生活中不可或缺的一部分。而在众多智能手机品牌中,华为一直以其卓越的技术和创新力引领着行业的发展。近日,华为Mate 70系列手机的发布会正式定档在11月26日,这一消息引发了众多科技爱…

【Linux之权限】理论篇

前言 Linux的权限是我们学习Linux初期非常重要的基础知识,接下来我将通过一个系列【Linux之权限】,共三篇文章,对此进行较为全面和详细的解说。 sudo 情况:如果我们不是超级管理员,但是想执行一个权限级别比较高的指…

[C++] 智能指针

文章目录 智能指针的使用原因及场景分析为什么需要智能指针?异常抛出导致的资源泄漏问题分析 智能指针与RAIIC常用智能指针 使用智能指针优化代码优化后的代码优化点分析 析构函数中的异常问题解决方法 RAII 和智能指针的设计思路详解什么是 RAII?RAII 的…

spark性能优化调优指导性文件

1.让我们看一下前面的核心参数设置: num-executors10||20,executor-cores1||2,executor-memory10||20,driver-memory20,spark.default.parallelism64 假设我们的火花队列资源如下: 内存1T,内…

视频流媒体播放器EasyPlayer.js RTSP播放器视频颜色变灰色/渲染发绿的原因分析

EasyPlayer.js RTSP播放器属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,无须安装任何插件,起播快、延迟低、兼容性强,使用非常便捷。 EasyPlayer.js播放器不仅支持H.264与H.265视频编码格式&#xff0…

零售项目管理的核心问题:如何让协作更高效?

在零售行业,团队协作的效率直接影响到市场反应速度和客户满意度。商品的上下架、库存管理、促销活动的策划与执行、跨部门的沟通与协作……每一个环节都需要精准的协调。而在这些纷繁复杂的任务中,项目管理软件正成为零售行业的关键工具,帮助…

用appinventor制作艾宾浩斯遗忘曲线app

(呕心沥血 仅供参考) 测试效果演示 用appinventor制作课本记背应用程序(基于遗忘曲线设计) 目录 效果演示 项目重难点 总体设计 系统功能模块设计 总体结构如下图所示: 功能模块 详细设计与实现 登录界面 界…

【设计模式】行为型模式(三):责任链模式、状态模式

行为型模式(三):责任链模式、状态模式 5.责任链模式(Chain of Responsibility)5.1 通俗易懂的解释5.2 具体步骤5.3 代码示例5.3.1 处理者接口5.3.2 具体处理者5.3.3 测试类5.3.4 输出 5.4 总结 6.状态模式(…

CC3学习记录

🌸 CC3 之前学习到的cc1和cc6都是通过Runtime进行命令执行的,如果Runtime被加入黑名单的话,整个链子也就失效了。而cc3则是通过动态类加载机制进行任意代码执行的。 🌸 版本限制 JDK版本:8u65 Commons-Collections…

flutter字体大小切换案例 小字体,标准字体,大字体,超大字体案例

flutter字体大小切换案例 小字体&#xff0c;标准字体&#xff0c;大字体&#xff0c;超大字体案例 Android iOS设备带有选择记录 我的flutter项目版本 environment: sdk: ‘>3.4.4 <4.0.0’ 图片案例 pubspec.yaml 添加依赖 # 屏幕尺寸适配 https://github.com/OpenF…

设计模式(四)装饰器模式与命令模式

一、装饰器模式 1、意图 动态增加功能&#xff0c;相比于继承更加灵活 2、类图 Component(VisualComponent)&#xff1a;定义一个对象接口&#xff0c;可以给这些对象动态地添加职责。ConcreteComponent(TextView)&#xff1a;定义一个对象&#xff0c;可以给这个对象添加一…

django入门【05】模型介绍(二)——字段选项

文章目录 1、null 和 blank示例说明⭐ null 和 blank 结合使用的几种情况总结&#xff1a; 2、choices**choices 在 Django 中有以下几种形式&#xff1a;**&#xff08;1&#xff09; **简单的列表或元组形式**&#xff08;2&#xff09; **字典映射形式**&#xff08;3&#…

C++清除所有输出【DEV-C++】所有编辑器通用 | 算法基础NO.1

各位小伙伴们&#xff0c;上一期的保留小数位数教学够用一辈子&#xff0c;有不错的点赞量&#xff0c;可我连一个粉丝铁粉都没有&#xff0c;你愿意做我的第一个铁粉吗&#xff1f;OK废话不多说&#xff0c;开始&#xff01; 温故与知心 可能你也学过&#xff0c;且是工作者…

【提高篇】3.3 GPIO(三,工作模式详解 上)

目录 一,工作模式介绍 二,输入浮空 2.1 输入浮空简介 2.2 输入浮空特点 2.3 按键检测示例 2.4 高阻态 三,输入上拉 3.1 输入上拉简介 3.2 输入上拉的特点 3.3 按键检测示例 四,输入下拉 4.1 输入下拉简介 4.2 输入下拉特点 4.3 按键检测示例 一,工作模式介绍…

Thinkphp6视图介绍

一.MVC MVC 软件系统分为三个基本部分&#xff1a;模型&#xff08;Model&#xff09;、视图&#xff08;View&#xff09;和控制器&#xff08;Controller&#xff09; ThinkPHP6 是一个典型的 MVC 架构 控制器—控制器&#xff0c;用于将用户请求转发给相应的Model进行处理&a…