运行darknet_images.py提示--output参数不识别错误求助
错误原因
报错是因为你当前使用的darknet_images.py脚本没有定义--output命令行参数,从报错打印的合法参数列表就能确认这一点:原版AlexeyAB/darknet仓库自带的darknet_images.py默认没有自定义输出目录的参数,推理生成的结果图会直接存在脚本运行的当前工作目录下。
另外你当前的推理命令还有一个隐藏问题:训练时用的是yolov4-tiny-custom.cfg(YOLOv4-tiny轻量版结构),推理时却传入了普通版的yolov4-custom.cfg配置,就算参数问题修复,也会因为模型结构和权重不匹配报维度错误,或者输出完全错误的检测结果。
解决方法
- 快速修复方案:直接删掉命令里的
--output ../demo_out段,提前创建好目标输出目录,等推理完成后把生成的结果图移动到目标目录即可,完整操作命令如下:# 提前创建输出目录 !mkdir -p ../demo_out # 运行推理,注意把config_file换成训练时用的tiny版本配置文件 !python darknet_images.py --thresh 0.2 --input ../b076ad266891d7aa.jpg --weights ../training/yolov4-custom_best.weights --config_file ./cfg/yolov4-tiny-custom.cfg --data_file ./data/obj.data # 把推理生成的结果图移动到目标目录 !mv predictions.jpg ../demo_out/ - 自定义参数方案:如果想直接通过
--output参数指定输出路径,手动修改darknet_images.py源码即可:- 找到脚本里argparse初始化、添加命令行参数的代码段,新增一行参数定义:
parser.add_argument('--output', help='输出结果存储目录', default='./')- 找到脚本里执行图片保存的代码段,把保存路径和传入的
args.output参数做拼接,改完保存后就可以正常使用--output参数指定输出目录了。
内容的提问来源于stack exchange,提问作者Lukman Abubakar
相关产品推荐
相关产品推荐

