码农-小林 2025-09-10 10:36 采纳率: 54.8%
浏览 8
已结题

训练图片报Not compiled with OpenCV, saving to predictions.png instead

darknet detect cfg/yolov3.cfg yolov3.weights data/obj/1.jpg训练图片时候报Not compiled with OpenCV, saving to predictions.png instead

img

  • 写回答

5条回答 默认 最新

  • 檀越@新空间 2025-09-10 10:37
    关注

    上午好☀️☀️☀️️
    本答案参考通义千问

    你遇到的错误信息是:

    Not compiled with OpenCV, saving to predictions.png instead
    

    这个提示说明 Darknet 没有使用 OpenCV 编译,因此在尝试保存图像时无法直接使用 OpenCV 的函数(如 cv2.imwrite()),而是转而使用默认的图像保存方式,比如保存为 predictions.png


    ✅ 问题原因分析

    1. Darknet 编译时没有启用 OpenCV 支持

      • 默认情况下,Darknet 可能没有启用 OpenCV 支持,导致图像处理功能受限。
    2. 缺少 OpenCV 库依赖

      • 如果系统中没有安装 OpenCV 或者安装版本不兼容,也可能导致此问题。
    3. 图像保存路径或格式不正确

      • 虽然不是主要问题,但可能影响最终输出结果的查看。

    🔧 解决方案

    1. 确认是否启用了 OpenCV

    检查 Darknet 的 Makefile 文件中的配置项:

    OPENCV=1
    
    • 如果该行被注释掉(以 # 开头)或者设置为 0,请将其改为:
    OPENCV=1
    

    注意: 确保你的系统已经安装了 OpenCV。如果没有安装,请参考第 2 步。


    2. 安装 OpenCV

    根据你的操作系统选择以下命令之一进行安装:

    Ubuntu/Debian 系统:

    sudo apt-get install libopencv-dev
    

    CentOS/RHEL 系统:

    sudo yum install opencv-devel
    

    macOS(使用 Homebrew):

    brew install opencv
    

    3. 重新编译 Darknet

    执行以下命令重新编译:

    make clean
    make
    

    确保编译成功,无报错。


    4. 运行检测命令并验证输出

    再次运行你的检测命令:

    ./darknet detect cfg/yolov3.cfg yolov3.weights data/obj/1.jpg
    

    如果一切正常,应该会看到检测结果,并且图像会被正确保存为 predictions.png,并且可以使用 OpenCV 进行处理。


    5. 修改代码(可选)

    如果你希望自定义图像保存路径或格式,可以在 src/detection.csrc/utils.c 中查找图像保存相关的代码段,例如:

    save_image(im, "predictions");
    

    你可以将 predictions.png 改为你想要的文件名,例如:

    save_image(im, "output_result.png");
    

    📌 总结

    | 步骤 | 内容 | |------|------| | 1 | 确认 Makefile 中 OPENCV=1 | | 2 | 安装 OpenCV 依赖库 | | 3 | 重新编译 Darknet | | 4 | 运行检测命令验证输出 | | 5 | 如需自定义图像保存路径,修改源码 |


    📝 注意事项

    • 如果你使用的是预编译的 Darknet 版本(如从 GitHub 下载的 darknet),建议使用官方推荐的编译方式。
    • 如果你在 Windows 上使用 Darknet,需要使用 MSVC 编译器并确保 OpenCV 配置正确。

    如有更多关于模型训练、推理、性能优化等问题,欢迎继续提问!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 9月18日
  • 已采纳回答 9月10日
  • 创建了问题 9月10日