do {}while; 2024-07-25 20:19 采纳率: 0%
浏览 39
已结题

yolov8在3588板子端c++推理报错

img

img

img


我用瑞芯微github提供的yolov8n.onnx转rknn是没问题的,在板子上编译也没问题,但是一推理就报bug

  • 写回答

29条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-25 20:28
    关注
    获得0.30元问题酬金

    引自免费微信小程序:皆我百晓生

    从提供的信息来看,你在尝试将Yolov8模型部署到瑞芯微RK3588平台上,并且已经成功地通过rknn-toolkit将ONNX模型转换为RKNN模型文件。但是在板子上进行推理时遇到了几个关键问题,具体包括无效的RKNN模型版本和内存错误(free(): invalid pointer)。下面我会根据这些错误提供可能的解决步骤。

    无效的RKNN模型版本错误

    错误信息中的关键部分是:

    RKNN:[20:09:48.509] Inval id RKNN model vers ion 6
    RKNN:[20:09:48.509] rknn_init,load model failed!
    

    这表明RKNN运行时库尝试加载的模型版本与当前库支持的版本不匹配。通常,这意味着你的RKNN工具包版本可能较旧,不支持你所生成的RKNN模型格式。为了解决这个问题,你需要确保使用的rknn-toolkit版本与你的开发板上的RKNN运行时库兼容。

    解决方案:

    1. 升级rknn-toolkit:检查瑞芯微官方是否有新版本的rknn-toolkit发布,如果有的话,升级至最新版本。可以通过Git仓库检查更新并拉取最新的代码。

      cd <your_rknn_toolkit_directory>
      git pull origin master
      
    2. 确认运行时库版本:确保你的开发板上的RKNN运行时库是最新的。如果不确定,可以联系瑞芯微获取最新库或者查阅官方文档指导如何更新。

    3. 重新转换模型:在完成上述升级后,使用最新的rknn-toolkit重新转换你的ONNX模型到RKNN模型。

    内存错误(free(): invalid pointer

    这个错误通常意味着在程序中存在内存管理不当的问题,可能是由于某些指针被释放了两次、释放了未分配的内存或是其他内存操作错误。

    排查建议:

    1. 检查模型加载和初始化代码:确保在你的C++代码中,模型加载和初始化的部分没有内存泄露或错误的指针操作。特别注意对rknn_context的创建、使用和销毁过程是否正确。

    2. 使用Valgrind或类似工具:如果你有办法在目标设备上运行调试工具,使用Valgrind等内存检测工具可以帮助定位内存错误的具体位置。

    3. 代码审查:仔细检查涉及内存分配和释放的代码段,确保每个new都有对应的delete,每个malloc都有对应的free,且操作的指针都是有效的。

    示例代码审查(模型加载部分):

    确保你的模型加载代码类似于以下结构(假设使用的是rknn-toolkit的API):

    #include "rknn_api.h"
    
    int main() {
        // 初始化rknn上下文
        rknn_context ctx;
        int ret = rknn_init(&ctx, "model/yolov8.rknn", 0, 0, NULL);
        if (ret < 0) {
            printf("rknn_init fail! ret=%d\n", ret);
            return -1;
        }
    
        // 使用模型执行推理...
        
        // 推理完成后,清理资源
        rknn_destroy(ctx);
    
        return 0;
    }
    

    确保在程序退出前调用了rknn_destroy()来正确释放资源。

    总之,首先解决模型版本不匹配的问题,然后仔细检查和调试内存错误。希望这些建议能帮助你解决问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 8月2日
  • 创建了问题 7月25日

悬赏问题

  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 易优eyoucms关于二级栏目调用的问题
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上
  • ¥15 提问一个关于vscode相关的环境配置问题,就是输入中文但是显示不出来,代码在idea可以显示中文,但在vscode不行,不知道怎么配置环境