先将视频切分红一帧帧图片,再作后续处理,代码以下:ide
1 import cv2 2 import os 3 4 def capturevideo(file,filedir): 5 os.mkdir("image/" + filedir) 6 cap = cv2.VideoCapture(file) 7 ret,im = cap.read() 8 count = 0 9 while ret: 10 ret,im = cap.read() 11 if ret: 12 cv2.imwrite("image/"+filedir+"/"+str(count)+".jpg",im) 13 count = count+1 14 cap.release() 15 16 rootdir = r"D:\ai\AIE04\VQADatasetA_20180815\train" 17 list = os.listdir(rootdir) 18 for i in range(len(list)): 19 path = os.path.join(rootdir,list[i]) 20 filedir = list[i].replace(".mp4","") 21 print(i,list[i]) 22 capturevideo(path,filedir) 23 print('finish')
后边的思路是把问题分类,不一样的问题提取不一样的视频帧进行训练。如问人穿的衣服是什么颜色,则先判断帧中是否有人,将包含人的帧对问题进行训练。spa
提取了全部帧,这个量就比较大,并且不少帧之间的差异很是小,是否须要再抽样须要思考。code
如问题包含颜色,则不能取灰度,不然能够将帧转为灰度图。视频