YOLOX 做视频推理的时候 保存的文件夹为空解决方案

YOLOX 做视频推理的时候 保存的文件夹为空解决方案

  1. 在测试yolox的demo 的时候图片可以正常推理
  2. 视频推理也可以执行(不报错),但是保存的文件内,是空的。
  3. 本人纠结好久,终于完美解决(在github上还没有解决这个问题)

其实解决这个问题很简单

就是 cv2.VideoWriter.write函数在写入不存在的文件夹时,不会自动创建,也不会报错,这样就导致了,保存的文件夹为空。

为什么会出现保存文件夹不存在

  1. 可能是路径生成的时候不对
  2. 输入的控制台不同,导致出现文件夹路径创建错误

修复这个bug

找到tools\demo.py这个文件的(imageflow_demo函数)

def imageflow_demo(predictor, vis_folder, current_time, args):
    cap = cv2.VideoCapture(args.path if args.demo == "video" else args.camid)
    width = cap.get(cv2.CAP_PROP_FRAME_WIDTH)  # float
    height = cap.get(cv2.CAP_PROP_FRAME_HEIGHT)  # float
    fps = cap.get(cv2.CAP_PROP_FPS)
    save_folder = os.path.join(
        vis_folder, time.strftime("%Y_%m_%d_%H_%M_%S", current_time)
    )
    os.makedirs(save_folder, exist_ok=True)

    if args.demo == "video":
        save_path = os.path.join(save_folder, args.path.split("\\")[-1])
    else:
        save_path = os.path.join(save_folder, "camera.mp4")
    logger.info(f"video save_path is {save_path}")
    vid_writer = cv2.VideoWriter(
        save_path, cv2.VideoWriter_fourcc(*"mp4v"), fps, (int(width), int(height))
    )

将其中的
save_path = os.path.join(save_folder, args.path.split("/")[-1])
修改为
save_path = os.path.join(save_folder, args.path.split("\\")[-1])

再到 这个函数最后加入一句 (如下所示)

    while True:
        ret_val, frame = cap.read()
        if ret_val:
            outputs, img_info = predictor.inference(frame)
            result_frame = predictor.visual(outputs[0], img_info, predictor.confthre)
            if args.save_result:
                vid_writer.write(result_frame)
                # cv2.imshow('frame', result_frame)
            ch = cv2.waitKey(1)
            if ch == 27 or ch == ord("q") or ch == ord("Q"):
                break
        else:
            break
    logger.info(f"video save_path is {save_path}")

logger.info(f"video save_path is {save_path}")
方便运行完成提示

取消这句注释 可以实时查看哦

cv2.imshow('frame', result_frame)

有问题大家再一起讨论(byteTrack出现类似问题,原因是一样的,解决方案自己弄一下)

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小兮风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值