yolov5检测(前向)输入视频输出(不在图上画标签形式的原)图片的方法,及设置每隔几帧保存的方式(不每帧保存减少重复)

这些天我忽然有个需求,要更新迭代一个场景的检测模型,甲方爸爸提供的新数据集是监控视频形式的(因为拍视频确实更加的方便),而我训练模型确实要标注好的图片形式。

根据这些条件的话,思路应该是要这样的:首先使用现有的最新一个模型输入视频进行检测,检测结果以每帧图片的形式进行保存,以及每帧图片对应的label。将图片和label用标注工具打开如labelme等进行可视化调整模型标注好的数据(这样比每张图片直接从0开始标注要快),再将这些标注好的数据加入之前的数据中进行训练。

保存图片形式

这个流程可能会有几处有些障碍,一个是模型检测生成的label的yolo格式数据转化成labelme格式的数据以及调整好之后labelme格式的数据再转回yolo训练格式的数据,这个问题的解决及对应的代码写在我之前的文章中;另一个就是yolov5输入的是视频时输出的也同样是个视频,且是带有检测结果的视频(带有实时检测框的视频),如图:

而我们想要的是原图进行训练,保存的是原图及对应的label。解决方法如下:

在detect.py代码里的Process predictions中添加如下两行的代码:

python 复制代码
e_save = os.path.splitext(save_path)[0] + f'_{frame}' + '.jpg'
cv2.imwrite(e_save, im0)

运行结果如图:

图片命名格式输入视频的名称后面加上帧数。

设置帧率

看了一下保存的图片,会发现一个问题,基本上每张图片会重复几十次。所以如果不是高速移动的目标的话每帧都保存会有大量几乎重复的图片,每张都拿来训练是没必要的且浪费修改label的时间,所以下面设置每隔几帧保存一次。

detect.py中前向推理部分的代码结构大概是这样的:

python 复制代码
for path, img, im0s, vid_cap in dataset:
    # ... 一些前期的代码 ...

    # 运行检测
    img = torch.from_numpy(img).to(device)
    img = img.float()  # uint8 to fp16/32
    img /= 255.0  # 0 - 255 to 0.0 - 1.0
    if img.ndimension() == 3:
        img = img.unsqueeze(0)

    # ... 一些中间的代码,可能有模型推理的部分 ...

    # 后处理
    # ...

    # 在这里添加代码,确保只在每25帧执行检测
    if vid_path:
        current_frame += 1
        if current_frame % 25 == 0:
            # 执行你的检测代码
            # ...

# ... 一些后期的代码 ...

运行结果如图:

这样就减少了很多重复图片。

写在最后:

我觉得csdn是一个能学到技术的地方,那是因为很多大佬的无私奉献。我的每一条博文都是粉丝才可见,若是你们看了觉得我不值得你们关注,取关无可厚非。但是为什么就是有很多人收藏了我的博文然而又取消关注呢,我觉得让我很不舒服,我希望各位看管都是高素质人群,尊重一下创作者辣!不然越来越多这样的行为会打击分享技术的积极性,谢谢!

相关推荐
FL16238631292 小时前
智慧交通自动驾驶场景道路异常检测数据集VOC+YOLO格式8302张6类别
人工智能·yolo·自动驾驶
全球通史3 小时前
[特殊字符] RISC-V实战:从0到100+FPS!进迭时空(Spacemit)开发板YOLOv8部署终极指南
嵌入式硬件·yolo·risc-v
木头左3 小时前
自适应门控循环单元GRU-O与标准LSTM在量化交易策略中的性能对比实验
深度学习·gru·lstm
哥布林学者3 小时前
吴恩达深度学习课程二: 改善深层神经网络 第三周:超参数调整,批量标准化和编程框架(三)多值预测与多分类
深度学习·ai
xuehaisj3 小时前
菠萝蜜果实目标检测_yolo11-C3k2-ConvFormer改进
人工智能·目标检测·目标跟踪
月下倩影时4 小时前
视觉学习篇——模型推理部署:从“炼丹”到“上桌”
人工智能·深度学习·学习
高洁014 小时前
国内外具身智能VLA模型深度解析(2)国外典型具身智能VLA架构
深度学习·算法·aigc·transformer·知识图谱
小殊小殊4 小时前
从零手撸Mamba!
人工智能·深度学习
AndrewHZ5 小时前
【图像处理基石】图像连通域计算:原理、算法实现与应用全解析
图像处理·算法·计算机视觉·cv·算法原理·视觉算法·连通域计算
MediaTea5 小时前
Python 第三方库:cv2(OpenCV 图像处理与计算机视觉库)
开发语言·图像处理·python·opencv·计算机视觉