imx6ull移植ncnn框架并运行yolo11目标检测模型(1)转换yolo11模型: Torch -> NCNN
·
1. 概要
在实际场景中,深度学习模型通常通过 PyTorch、TensorFlow 等框架来完成,直接通过这些模型来进行推理效率并不高,特别是对延时要求严格的线上场景。由此,经过工业界和学术界数年的探索,模型部署有了一条流行的流水线:

这一条流水线解决了模型部署中的两大难点:使用对接深度学习框架和推理引擎的中间表示,开发者不必担心如何在新环境中运行各个复杂的框架;通过中间表示的网络结构优化和推理引擎对运算的底层优化,模型的运算效率大幅提升。
本文将会对yolo11的目标检测模型进行转换,获得我们需要的NCNN模型。
2. 将 PyTorch 模型转换为 ONNX 模型
转换方法有两个
- 通过ultralytics官方提供的内置工具包进行转换**(很方便,但是转换的模型yolo11模型不能直接使用Tencent官方提供的examples中的yolo11检测代码)**
- 通过Tencent官方建议:不使用onnx转换,而是用pnnx转换
本文使用的是方法1,关于方法2,可以参考如下链接:方法二
2.1 方法1
1.首先安装好相关的依赖
# Install the required package for YOLO11
pip install ultralytics
2.进行模型转换
from ultralytics import YOLO
# Load the YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to NCNN format
model.export(format="ncnn") # creates '/yolo11n_ncnn_model'
# Load the exported NCNN model
ncnn_model = YOLO("./yolo11n_ncnn_model")
# Run inference
results = ncnn_model("https://ultralytics.com/images/bus.jpg")
通过上述方法即可获得需要的.bin与.param模型
3. 总结
通过如上的方法可以轻易得到.param与.bin文件,在下一章节中,将会讲述如何移植ncnn到imx6ull上以及如何实现我们的yolo11检测代码.
4.参考链接
https://blog.angustar.com/archives/deploying-DNNs-on-embedded-development-boards-1.html
5. 章节
imx6ull移植ncnn框架并运行yolo11目标检测模型(2)移植ncnn致imx6ull并成功跑通例程
imx6ull移植ncnn框架并运行yolo11目标检测模型(3)部署yolo11目标检测模型,交叉编译自己写的检测文件
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)