参加2018之江杯全球人工智能大赛 :视频识别&问答(二)
先将视频切分成一帧帧图片,再做后续处理,代码如下:
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')
后边的思路是把问题分类,不同的问题提取不同的视频帧进行训练。如问人穿的衣服是什么颜色,则先判断帧中是否有人,将包含人的帧对问题进行训练。
提取了所有帧,这个量就比较大,而且很多帧之间的差别非常小,是否需要再抽样需要思考。
如问题包含颜色,则不能取灰度,否则可以将帧转为灰度图。