Pytorch版 YOLO v3,中的视频保存

最近在学YOLOv3

YOLOv3, 于是看 “从零开始PyTorch项目:YOLO v3目标检测实现”

英文原版:https://blog.paperspace.com/how-to-implement-a-yolo-object-detector-in-pytorch/

网上也有许多翻译

原版教程中的github项目地址 https://github.com/ayooshkathuria/YOLO_v3_tutorial_from_scratch

遇到的问题:用YOLOv3 运行视频文件,处理后的视频没有保存

解决办法:修改video.py 文件,用opencv,保存视频文件

详细步骤:

1. 在while循环前添加

fourcc = cv2.VideoWriter_fourcc('M','J','P','G')
fps = 24
savedPath = 'saveVideo.avi'  # 保存地址
ret, frame = cap.read()
videoWriter = cv2.VideoWriter(savedPath, fourcc, fps,(frame.shape[1], frame.shape[0])) # 最后为视频图片的形状

while cap.isOpened():
    ret, frame = cap.read()
    
    if ret:   

        ## 中间省略,之后修改部分都有注释

    list(map(lambda x: write(x, frame), output))
    
    cv2.imshow("frame", frame)
    videoWriter.write(frame)           # 每次循环,写入该帧

    key = cv2.waitKey(1)
    if key & 0xFF == ord('q'):
        break
    frames += 1
    print(time.time() - start)
    print("FPS of the video is {:5.2f}".format( frames / (time.time() - start)))
else:
    videoWriter.release()              # 结束循环的时候释放
    break    

 

不过这么写,相当于扔了视频第一frame,强迫症患者,可以优化一下。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: yolo v3 pytorch源码解读是指对yolo v3算法在pytorch框架下的实现进行解析和说明。该算法是一种目标检测算法,可以在图像检测出物体的位置和类别。在pytorch框架下,该算法的实现主要包括网络结构的搭建、数据预处理、训练和测试等步骤。通过对源码的解读,可以深入理解yolo v3算法的原理和实现细节,从而更好地应用该算法解决实际问题。 ### 回答2: YOLO (You Only Look Once)是一种基于卷积神经网络的目标检测算法,具有实时性和高准确率等优点。而YOLO v3则是YOLO系列最新本,其采用了一系列改进措施来提升检测性能,如采用多尺度特征图、SPP结构和残差连接等。此外,由于PyTorch成为了深度学习领域流行的开源框架,因此许多研究者也将YOLO v3的代码移植到了PyTorch实现。 YOLO v3 PyTorch源码在实现上比较复杂,需要结合相关论文和理论知识进行理解。其主要包括以下几个部分: 1.网络结构:YOLO v3采用了Darknet-53作为特征提取层,并将输入图像分别缩放到三个尺度,然后对不同尺度的特征图进行检测。 2.特征图处理:在进行检测前,需要对特征图进行处理,主要包括三个方面。第一,对于不同尺度的特征图需要分别调整每个锚点框的大小和形状。第二,为了提高检测质量,需要引入SPP结构(Spatial Pyramid Pooling),该结构能够获取不同大小的感受野。第三,引入残差连接(Residual Connection),可以在网络学习更加精细的特征。 3.检测流程:YOLO v3采用的是Multi-scale Training的训练方式,即在多个不同尺度下分别训练,并且将在不同尺度下的检测结果进行融合。对于每个尺度分别计算每个位置预测框的置信度、类别得分和框的坐标信息。然后通过非极大抑制算法,去除重复检测的框,并提取概率最高的框作为最终检测结果。 总的来说,YOLO v3 PyTorch源码实现较为复杂,需要对目标检测算法、卷积神经网络、图像处理等技术领域有深入的理解。对于初学者来说,可以先从代码的框架结构入手,逐步了解各个模块的作用和实现细节。而要深入理解YOLO v3的原理和算法,还需要结合相关论文和多方面的参考资料进行学习。 ### 回答3: YOLOv3是目前最快的目标检测算法之一,它采用了纯卷积的方式实现,并且其结果也非常准确。在目标检测YOLOv3是一个非常重要的算法,因此了解其源码非常有必要。下面将就yolo v3 pytorch源码解读做一些简要分析。 首先,需要了解的是,YOLOv3主要分为三个部分:输入预处理、特征提取和后处理。输入预处理是将原图像扩展为模型输入的固定尺寸。在特征提取阶段,YOLOv3采用的是多尺度特征融合的方法,通过不同的尺度获得不同的特征图。在后处理阶段,YOLOv3对特征图进行预测,通过置信度评分、NMS和筛选等操作输出最终的检测结果。 其次,需要注意的是,YOLOv3使用的是Darknet53作为基础网络,该网络由很多卷积层、max-pooling层、residual层等组成。在网络最后一层,将会有三个不同大小的盒子来检测不同大小的目标,每个盒子会预测3个不同的类别,总共预测9个类别。对于每个目标,预测将会包括坐标、置信度、类别等信息。在训练过程,对于每个目标,YOLOv3会使用交叉熵损失函数来计算误差,然后进行反向传播。 最后,需要提到的是,YOLOv3源码的实现非常复杂,需要熟悉深度学习、神经网络等相关领域才能理解。同时,在实际使用,需要根据自己的需求进行修改和优化,以达到最佳检测效果。当然,在理解源码的过程,最重要的还是深入理解YOLOv3的算法原理和各个模块之间的关系,这样才能更好地掌握该算法及其实现。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值