自学内容网 自学内容网

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

原文地址:https://blog.csdn.net/pbymw8iwm/article/details/143791174

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!