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.rhkb.cn/news/472660.html

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

相关文章

TypeORM在Node.js中的高级应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 TypeORM在Node.js中的高级应用 TypeORM在Node.js中的高级应用 TypeORM在Node.js中的高级应用 引言 TypeORM 基本概念 1. 实体&am…

Spring整合Redis

前言 在Spring项目中整合Redis,能显著提升数据缓存、分布式锁、会话管理等操作的效率。Jedis作为轻量级的Java Redis客户端,搭配Spring Data Redis模块,能够简化Redis的连接和数据操作,实现更高性能的读写与灵活的缓存管理。本文…

将已有的MySQL8.0单机架构变成主从复制架构

过程: 把数据库做一个完全备份, 恢复到从节点上, 恢复后从备份的那个点开始往后复制,从而保证后续数据的一致性。 步骤: 修改 master 主节点 的配置( server-id log-bin )master 主节点 完全备份( mysqldump )master 主节点 创建…

一文3000字从0到1带你进行Mock测试(建议收藏)

​什么是mock? ​mock测试是以可控的方式模拟真实的对象行为。程序员通常创造模拟对象来测试对象本身该具备的行为,很类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为 为什么要使用Mock? 之所以使用mock测试,是因…

小程序如何完成订阅

小程序如何完成订阅 参考相关文档实践问题处理授权弹窗不再触发引导用户重新授权 参考相关文档 微信小程序实现订阅消息推送的实现步骤 发送订阅消息 小程序订阅消息(用户通过弹窗订阅)开发指南 实践 我们需要先选这一个模板,具体流程参考…

SOHO场景开局(小型,多子网):AP+管理型交换机+路由器+光猫

业务需求 1. 实现除光猫外,整网设备通过APP进行开局,开局部署完成后,能够通过APP远程运维。 2. 需要单独划分访客、办公、视频监控3个子网,其中访客子网供顾客无线上网使用,办公子网用于接入无线和有线办公终端&#x…

C++map和set(二)

1.map的opeator[] 功能: 如果访问对象存在就返回指定键的值的引用,如果指定的键不存在会插入新的键值对,键是传递给operator[]的参数,值是使用该值类型的默认构造函数构造的(对于简单类型通常是0或者空字符)。 代码示例&#xf…

[Linux]多线程详解

多线程 1.线程的概念和理解1.1线程的优点1.2线程的缺点1.3线程的设计1.4线程 VS 进程 2.线程控制2.1线程等待2.2 线程终止2.3 线程分离 3.线程互斥3.1背景3.2抢票代码演示3.3保护公共资源(加锁)3.3.1创建锁/销毁锁3.3.2申请锁/尝试申请锁/解锁 3.4解决抢…

大学语文教材电子版(第十一版)教学用书PDF及课件

大学语文课件:https://caiyun.139.com/m/i?005CiDusEVWnR 《大学语文》(第十一版)主编:徐中玉 齐森华 谭帆。 大学语文教材电子版教师用书PDF第一课《齐桓晋文之事》艺术赏析: 孟子四处游说,养成善辩的…

MySQL【七】

字符串函数 数学函数 日期函数 条件控制函数 类型转换函数 系统信息函数 自定义函数 DELIMITER  CREATE FUNCTION 函数名([参数名 参数数据类型[,…]])RETURNS 函数返回值的数据类型BEGIN函数体;RETURN 语句;ENDDELIMITER ;sql ########## 定义一个函数maxofthree()&#x…

第三百二十三节 Java线程教程 - Java同步器

Java线程教程 - Java同步器 同步器对象与一组线程一起使用。 它维护一个状态,根据它的状态,它让一个线程通过或强迫它等待。 本节将讨论四种类型的同步器: SemaphoresBarriersLatchesExchangers 信号量 信号量用于控制可以访问资源的线程…

《Java核心技术 卷I》用户界面AWT事件继承层次

AWT事件继承层次 EventObject类有一个子类AWTEvent,它是所有AWT事件类的父类。 Swing组件会生成更多其他事件对象,都直接拓展自EventObject而不是AWTEvent。 AWT将事件分为底层(low-level)事件和语义事件。 语义事件:表示用户的动作事件&…

Ubuntu从入门到精通(一)系统安装

Ubuntu从入门到精通(一) 1 Ubuntu镜像选择 下载Ubuntu 20.04系统ISO镜像 安装 Ubuntu 20.04系统,就必须有 Ubuntu 20.04系统软件安装程序可以通过浏览器访问Ubuntu20.04的官方站点, 然后在导舰栏找划 Dowwnloads->Mirrors链接&#xff…

用户自定义IP核——ZYNQ学习笔记6

一、试验任务 通过自定义一个 LED IP 核,通过 PS 端的程序来控制底板上 PL 端 LED1 呈现呼吸 灯的效果,并且 PS 可以通过 AXI 接口来控制呼吸灯的开关和呼吸的频率。 二、创建IP核 三、创建工程,调用IP #include "stdio.h" #includ…

Elasticsearch 8.16.0:革新大数据搜索的新利器

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

python:用 sklearn 构建 K-Means 聚类模型

pip install scikit-learn 或者 直接用 Anaconda3 sklearn 提供了 preprocessing 数据预处理模块、cluster 聚类模型、manifold.TSNE 数据降维模块。 编写 test_sklearn_3.py 如下 # -*- coding: utf-8 -*- """ 使用 sklearn 构建 K-Means 聚类模型 "&…

【大数据学习 | HBASE高级】hive操作hbase

一般在查询hbase的数据的时候我们可以直接使用hbase的命令行或者是api进行查询就行了,但是在日常的计算过程中我们一般都不是为了查询,都是在查询的基础上进行二次计算,所以使用hbase的命令是没有办法进行数据计算的,并且对于hbas…

贴代码框架PasteForm特性介绍之markdown和richtext

简介 PasteForm是贴代码推出的 “新一代CRUD” ,基于ABPvNext,目的是通过对Dto的特性的标注,从而实现管理端的统一UI,借助于配套的PasteBuilder代码生成器,你可以快速的为自己的项目构建后台管理端!目前管…

ServletConfig、ServletContext、HttpServletRequest与HttpServletResponse常见API

目录 一、ServletConfig 二、ServletContext 三、ServletContext其他重要API (一)获取文件路径和上下文 (二)域对象的相关API 四、HttpServletRequest常见API (一)获取请求行/头信息相关 (二)获得请求参数相关 五、HttpServletResponse常见API 一、ServletConfig Se…

MySQL缓存使用率超过80%的解决方法

MySQL缓存使用率超过80%的解决方法 一、识别缓存使用率过高的问题1.1 使用SHOW GLOBAL STATUS命令监控1.2 监控其他相关指标二、分析缓存使用率过高的原因2.1 数据量增长2.2 查询模式变化2.3 配置不当三、解决缓存使用率过高的方法3.1 调整Buffer Pool大小3.1.1 计算合理的Buff…