You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Darknet(YOLO)程序运行结果重定向至日志文件?

解决Darknet(YOLO)输出重定向到日志文件的问题

你猜得完全没错!Darknet默认并没有把检测结果输出到标准输出(stdout),而是输出到了标准错误流(stderr),这就是普通的>重定向失效的核心原因。下面给你几个实用的解决方法:

方法1:同时重定向stdout和stderr到日志文件

使用2>&1把标准错误流合并到标准输出流,一起写入目标日志文件:

./darknet detect cfg/yolo.cfg yolo.weights image.jpg > log.txt 2>&1

这里的2代表stderr的文件描述符,1代表stdout的文件描述符,2>&1的作用就是让stderr的输出跟着stdout的输出路径走。

方法2:单独重定向stderr到日志文件

如果只想保存检测结果(也就是stderr的内容),而让其他stdout的输出继续显示在终端,可以直接定向stderr:

./darknet detect cfg/yolo.cfg yolo.weights image.jpg 2> log.txt

方法3:终端实时查看+同时保存到文件

如果想一边在终端实时看到检测输出,一边把内容同步保存到日志文件,可以用tee命令配合流合并:

./darknet detect cfg/yolo.cfg yolo.weights image.jpg 2>&1 | tee log.txt

tee命令会把输入内容同时输出到终端和指定的日志文件里,兼顾实时查看和持久化保存的需求。

可选:修改源码调整输出目标(需重新编译)

如果你愿意改动源码做长期调整,可以找到Darknet中输出检测结果的代码段(通常是用fprintf(stderr, ...)的地方),把stderr改成stdout,然后重新编译Darknet。不过这种方法不如命令行方式灵活,适合需要固定输出流的场景。

内容的提问来源于stack exchange,提问作者Sihwan Park

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:07:56