Keras搭建CNN進行人臉識別系列(二)--配置,獲取實時視訊流
1.準備工作
1)首先需要準備一個USB攝像頭,能夠支援Ubuntu之類的linux作業系統;
2)PC機上安裝好Ubuntu14以上64位版本(儘量雙系統不要虛擬機器,不然模型訓練速度會慢得像蝸牛),可以安裝win7/win10,但我沒有試過在64位win系統上安裝tensorflow,雖然tensorflow已經支援win 64位系統;
3)請確定python3已安裝,我給的程式碼都是在python3下除錯通過的,python2只是簡單試過,不保證在python2下能正常執行;
4)安裝Tensorflow,如果你是獨顯,且支援CUDA,請安裝GPU版本,否則選擇CPU版本,我的機器安裝的是GPU版本,OS是Ubuntu16.04麒麟,安裝Tensorflow的操作說明請問度娘或谷歌,又或者參考本人的另一篇博文:
5)安裝opencv2,請安裝openCV3.0以上版本(該版本支援python3和python2),參考如下兩個連結:
操作指令以第一個連結為準,給第二個的原因是它給出了OpenCV3.0的安裝方法,第一個是2.14的且是支援python2的,但第一個給出的指令已經足夠用了,第二個博文指令囉嗦,當遇到如何支援python3的問題時供參考用;
6)安裝keras、sklearn、PIP等,它們的安裝說明網上有的是,也簡單,這裡就不多說了;
以上準備工作關鍵是前5步,後面第6步可以暫時不作操作,當執行程式時如果提示某個模組無法匯入,再安裝該模組也可。
2.獲取並顯示USB攝像頭實時視訊
import cv2 def make_video(): cap = cv2.VideoCapture(0) fourcc = cv2.VideoWriter_fourcc(*"DIVX") out = cv2.VideoWriter('test.avi',fourcc,20.0,(640,480)) while(cap.isOpened()): ret,frame = cap.read() if ret: out.write(frame) cv2.imshow('frame',frame) if(cv2.waitKey(1) & 0xFF == ord('q')): break else: break cap.release() out.release() cv2.destroyAllWindows() if __name__ == '__main__': make_video()
這裡我們呼叫opencv包cv2,這個cv2的包可以呼叫攝像頭。
cap = cv2.VideoCapture(0)
這個語句的引數為cv2.VideoCapture(camera_index),camera_index可以是0,代表開啟的攝像頭是筆記本自帶的前置攝像頭,如果有額外的USB攝像頭,這個camer_index可以是1,2,3......如果不知道對應裝置的標號,你可以調整這個引數進行除錯。
以上為程式碼執行效果下面我們進行以下內容。