解决复现video-feature-extractor过程中的问题2

在复现video-feature-extractor时,遇到输出特征尺寸不一致的问题。经研究,发现是video_loader中ffmpeg参数设置不当,导致特征形状与视频长度相关。通过调整video_loader的帧率设置,确保不同长度视频抽取相同数量的帧,并记录在input.csv中。修改videoloader.py,删除默认framerate,使用预处理数据作为帧率输入。在extract.py中删除VideoLoader的framerate参数,成功实现统一尺寸的特征图。问题解决,期待与他人交流opencv和ffmpeg的应用。

video_feature_extractor1
在复现video-extractor中,我需要的是一个统一尺寸的特征图,但是它的输出大小不一样。后来整了很长时间,一直以为是sampler中存在的问题,改了很多,一点用没有,最后发现是video-loader中存在的问题。
1、之前提取的特征尺寸老是不一样,特征shape和视频长短相关。经过仔细阅读源码,发现是是ffmpeg中关于提取视频帧设置有一定的问题。
在这里插入图片描述
在videoLoader中ffmpeg默认参数抽取频率为1fps
在这里插入图片描述
为了将不同长度的视频提取相同数目的帧,将提取视频的帧率保存到input.csv中
将每段视频的视频地址 ,保存特征地址、帧率
video-path,feature-path,framerate

import csv
import os
import numpy as np
import cv2
video_path = "../cnn-lstm-master/data/video_data/WritingOnBoard/"
# n = [["/home/t123/projects/cnn-lstm-master/data/video_data/WritingOnBoard/v_WritingOnBoard_g25_c07.avi", "/home/t123/projects/video_feature_extractor-master/tools/A.npy"]]
b = ["video_path", "feature_path", "framerate"]
feature_path = "../video_feature_extractor-master/tools/feature1/"
n1 = []
videos = os.listdir(video_path)
for v in videos:
    v_path = os.path.join(video_path, v)
    # print(v[:-4])
    f_path = os.path.join(feature_path, v[:-4]+".npy")
    try:
        cap = cv2.VideoCapture(v_path)
        fps = int(round(cap.get(cv2.CAP_PROP_FPS)))
    except:
        print('Can not open %s.' % video_path)
        pass
    frames = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值