YOLOv4测试报错Unable to init server: Connection refused如何解决?
报错根因
你遇到的Unable to init server: Could not connect: Connection refused报错是因为Darknet默认会尝试调用系统图形界面显示预测结果,而你当前使用的是无图形界面的运行环境(比如Google Colab、远程Linux服务器、云主机),没有对应的X11显示服务支持GUI窗口弹出,所以初始化失败。
解决方案
只要在你的Darknet测试命令末尾加上-dont_show参数,禁用Darknet自带的GUI显示逻辑即可,同时可以加-ext_output参数把检测到的物体坐标、置信度直接打印到终端方便查看:
!./darknet detector test data/obj.data cfg/yolov4-custom.cfg /mydrive/YOLOV4/training/yolov4-custom_last.weights /mydrive/image1.jpeg -dont_show -ext_output
修改命令后Darknet会正常执行推理,生成predictions.jpg到当前工作目录,你写的imShow函数本身没有问题,用matplotlib inline显示适配notebook环境,命令执行完成后直接调用即可正常查看标注后的结果。
可选排查项
如果修改命令后仍然有异常,可以核对以下两点:
- 确认调用
imShow时传入的predictions.jpg路径和Darknet生成文件的实际路径一致,默认生成路径是Darknet的根目录 - 如果你是自行编译的Darknet,也可以修改Makefile中将
OPENCV参数设为0后重新编译,彻底禁用图形相关依赖,不过加-dont_show参数的方案更灵活,不需要重新编译。
内容的提问来源于stack exchange,提问作者Aadhi Arun
相关产品推荐
相关产品推荐

