在新的yolov5版本中已加入了–frame-interval参数,可直接使用。以下用于早期版本无此参数的情况。

yolov5 detect.py 视频目标检测 跳帧检测

由于没找到可用的视频跳帧参数,因此自行修改。
文件:detect.py

1.参数位置添加参数

parser.add_argument('--frame-interval', type=str, default='123456789', help='process every N frames')#跳过尾数在设定字符串内的帧,例如:设置123456789则10帧丢掉9帧,保留第0帧

2.推理位置进行修改

# Run inference
if device.type != 'cpu':
    model(torch.zeros(1, 3, imgsz, imgsz).to(device).type_as(next(model.parameters())))  # run once
t0 = time.time()
video_img_ind = 0
for path, img, im0s, vid_cap in dataset:
    video_img_ind += 1
    if 'video' in source:#如果是视频,请一定要放在有video字符串的文件夹下
        if str(video_img_ind)[-1] in opt.frame_interval:#跳过尾数为x的图片帧分析
            continue

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

3.注:

最终结果写到视频时,只保留了识别过的帧,不保留跳过的帧;
请一定要将视频放在有video字符串的文件夹下,比如:test_images = './test_imgs/video/'(
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐