[深度学习][原创]使用labelImg+yolov5完成所有slowfast时空动作检测项目-流程篇

Posted FL1623863129

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[深度学习][原创]使用labelImg+yolov5完成所有slowfast时空动作检测项目-流程篇相关的知识,希望对你有一定的参考价值。

首先我门看看数据集整个文件夹情况:

我们打开videos这个文件夹看到我放的2个mp4文件,如果你训练则可以放1000+都可以,随便放多少就可以。

这里我分2个类别,fight和person2个类别,然后我们调用slowfasttool.py函数进行抽帧

 # 第一步:放入自己的视频文件,并抽取视频帧,要求视频长度>40s
   tool.convert_video_spec_frame('/home/fut/Downloads/SlowFast-main/myava/videos', '/home/fut/Downloads/SlowFast-main/myava/frame') 

注意这个需要安装ffmpeg才能运行,得到结果图如下:

 

然后我们对抽取帧生成train.csv和val.csv

#上一步骤抽取的视频帧进行转化train.csv和val.csv
    #tool.convert_train_val_dataset('/home/fut/Downloads/SlowFast-main/myava/frame', '/home/fut/Downloads/SlowFast-main/myava/frame_lists', 0.5)

其中0.5是因为2个视频,一个训练集一个用于验证集。

 

其中train.csv截图

val.csv截图

 

 

然后我们得到图片以后,就利用yolov5官方模型进行预标注得到voc数据集

 

对于得到的数据集再进行手工标注,标注要求必须满足:

(1)不得对图片的人进行错标和漏标

(2)不得删除里面任何的一张图片

(3)同一个人多种行为怎么标注,采用逗号分隔,比如一个人有talk还有stand则可以标注为talk,stand,如果需要追踪,则可以每个标注后面加个追踪ID号(这里我没有关注追踪ID无需添加,如果要则必须每个标注最后必须是ID且必须写)

(4)负样本怎么标注,采用逗号分隔,标注动作名称只要不在自己动作名称就可以,比如talk,stand,neg这样转化解析时候将neg设置-1这样就解决了负样本标注问题

手工校正的十分耗费时间,只能耗费大量时间,人力去做了。

拿到图片标注后我们使用slowfastool.py函数直接生成所有训练所需要的文件。

    # 第三步:对抽取的视频帧利用yolov5预标注,然后人工审核,使用labelImg审核,要求同一个人动作使用逗号分隔,如果是负样本可以随便打个标签。只要标签不在动作类别即可。标注过程不可以手动删除任何图片
    # 第四步:删除空标签,这个删除后xml对应图片的帧就是exclude timestamp对应的列表
    # tool.check_zero_object('/home/fut/Downloads/myava/frame_voc')
    # 第五步:生成训练各种需要的文件
    tool.generate_all_train_files(['fight', 'person'], 'myava/annotations')

下一章,我们将展示所有生成配置文件截图,好让读者对于训练的配置文件有个清晰了解。 

 

以上是关于[深度学习][原创]使用labelImg+yolov5完成所有slowfast时空动作检测项目-流程篇的主要内容,如果未能解决你的问题,请参考以下文章

[深度学习][原创]使用labelImg+yolov5完成所有slowfast时空动作检测项目-训练测试篇

[深度学习][原创]使用labelImg+yolov5完成所有slowfast时空动作检测项目-配置文件篇

[深度学习][原创]使用labelImg+yolov5完成所有slowfast时空动作检测项目-开山篇

[深度学习][原创]使用labelImg+yolov5完成所有slowfast时空动作检测项目-流程篇

labelImg安装及使用(YOLO标签为例)

[深度学习][原创]一个可以将yolo txt格式转成coco json傻瓜式操作教程