使用opencv4.10的dnn模块加载yolo11.onnx

直接说关键,yolo11相较于yolov8的层方面有改动,目前可以使用yolov8的加载方式加载yolo11模型,但是要禁用层融合。

net.enableFusion(false);  // 禁用层融合

在inference.cpp文件加载onnx时加入禁用,便可以正常加载

void Inference::loadOnnxNetwork()
{
    net = cv::dnn::readNetFromONNX(modelPath);
    if (cudaEnabled)
    {
        std::cout << "\nRunning on CUDA" << std::endl;
        net.setPreferableBackend(cv::dnn::DNN_BACKEND_CUDA);
        net.setPreferableTarget(cv::dnn::DNN_TARGET_CUDA);
    }
    else
    {
        std::cout << "\nRunning on CPU" << std::endl;
        net.setPreferableBackend(cv::dnn::DNN_BACKEND_OPENCV);
        net.setPreferableTarget(cv::dnn::DNN_TARGET_CPU);
    }
net.enableFusion(false);  // 禁用层融合
}

我说的inference.cpp文件和示例在yolo的github克隆后的examples目录,YOLOv8-CPP-Inference中。这个是使用opencvdnn模块加载,如果opencv是编译支持了cuda,那速度是飞一般提升。我的模型可以得到100帧每秒

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值