先將視頻切分紅一幀幀圖片,再作後續處理,代碼以下: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
如問題包含顏色,則不能取灰度,不然能夠將幀轉爲灰度圖。視頻