视频抽帧+模型训练

创建文件夹

建立存放待处理和处理文件夹

在工程包的主目录下新建目录

新建的mydata实际上是用来存放我们后续模型训练前处理的图片的,分开videos和images

后面吧video抽帧后的图片保存到image去

运行代码

在主目录下新建.py文件

代码

import cv2
from PIL import Image
import numpy as np


cap = cv2.VideoCapture("D:/Users/14211/Desktop/yolov5-master/mydata/videos/test1.mp4")  # 获取视频对象"
isOpened = cap.isOpened  # 判断是否打开
# 视频信息获取
fps = cap.get(cv2.CAP_PROP_FPS)

imageNum = 0
sum=0
timef=15  #隔15帧保存一张图片

while (isOpened):

    sum+=1

    (frameState, frame) = cap.read()  # 记录每帧及获取状态

    if frameState == True and (sum % timef==0):

        # 格式转变,BGRtoRGB
        frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
        # 转变成Image
        frame = Image.fromarray(np.uint8(frame))

        frame = np.array(frame)

        # RGBtoBGR满足opencv显示格式
        frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)

        imageNum = imageNum + 1
        fileName = 'D:/Users/14211/Desktop/yolov5-master/mydata/images/image' + str(imageNum) + '.jpg'  # 存储路径
        cv2.imwrite(fileName, frame, [cv2.IMWRITE_JPEG_QUALITY, 100])
        print(fileName + " successfully write in")  # 输出存储状态

    elif frameState == False:
        break

print('finish!')
cap.release()

运行结果


可以看到按照每15帧把视频抽出来了。

打标签

 labelimg

       一定要把自动保存打勾,这个东东经常闪退的

  • w 选框标注
  • a 上一张
  • d 下一张
  • 记得要换成yolo格式

分别在lables和images中创建train(训练集)和val(测试集)文件,选取部分数据作为测试集,注意选取测试集的图片要和标签测试集的相对应

打完标签后的图片

我们现在选取一部分放入train(训练集),剩下的放入vla(测试集)中

 注意class.txt放在最外层

数据划分的方法并没有明确的规定,不过可以参考3个原则:

对于小规模样本集(几万量级),常用的分配比例是 60% 训练集、20% 验证集、20% 测试集。
对于大规模样本集(百万级以上),只要验证集和测试集的数量足够即可,例如有 100w 条数据,那么留 1w 验证集,1w 测试集即可。1000w 的数据,同样留 1w 验证集和 1w 测试集。
超参数越少,或者超参数很容易调整,那么可以减少验证集的比例,更多的分配给训练集。

images和labels这两个文件夹名字千万别打错,不然后面会报错,

在/images和/labels目录下记得放对应的图片和处理好的图片。

修改coco128.yaml文件

在data里面


把这个文件复制一份改成自己的名字(my_fire_check.yaml)放在该目录下。

修改我们的文件:

  • path: ./mydata # 根路径,相对于当前项目而言
  • train: images/train # 训练集数据目录
  • val: images/val # 验证集数据目录

修改成自己需要的东西

修改detect.py文件

改成

点击运行就好

等他跑完

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值