我最近在学习草莓派。 我想做脸部识别。 然后,我想转发视频。 仔细想想,用mjpeg视频传输,再传输,在PC端用opencv进行脸部识别。mjpeg:
mjpeg不是帧间编码器,因为它是由一系列连续JPEG图像构成的视频流。 另外,由于不是帧间编码器,所以计算力小,适合嵌入式平台。 缺点是所需的网络带宽较大,仅支持视频流。
安装mjpeg
pi @ raspberry pi :~$ sudo apt-getinstallcmakelibjpeg8- de VPI @ raspberry pi :~$ git clone https://e.coding.net/fiving mjpg-streamer.git pi @ raspberry pi :~$ CDM jpg-* pi @ raspberry pi 3360~/mjpg-streamer-master $ CDM jpg-* pi @ mjpg-streamer-experimental $ make pi @ raspberry pi : (/mjpg-streamer-master/mjpg-streamer-experimental
启动mjpeg
命令框直接输入
pi @ raspberry pi :~$/usr/local /大餐咖啡豆/mjpg _ streamer-I ‘/usr/local/lib/mjpg-streamer/input _ u uu
如果只接收视频,则可以直接在浏览器中打开
http://草莓派ip:/javascript.html本次人脸视频采用opencv-python。 没有说明安装步骤。 请在百度上查看python和opencv-python版的安装。
首先分析视频流,然后使用以下代码
URL=’ http://192.168.43.98:8080/action=stream ‘ rtmp _ URL=’ rtmp ://58.200.131.233601935/live te
使用RTMP应该会减少延迟。
接下来和普通的脸部识别代码一样,下面直接贴上所有的代码
import cv2#引入了脸部级联分类器, “. xml”文件包含训练的面部特征face _ engine=cv2.cascade classifier (r ‘ c : (SERS (123 ) desktop ) Haar的action=stade live TV/hunantv ‘ #网络摄像机cap=cv2 .打开视频捕获的defface_filter(faces ) : if len (faces )==0: return None # 正在查找key=lambdafacces,h )=max _ faceifw 10 orh 10: # returnnonereturnmax _ face #大小可调窗口cv2.named window () 0 )如果不创建while (1) (1) 3360,则返回false # ret,frame=cap.read(ret,frame=cap.read ) #print ) ret, frame ) faces=face _ engine.detect muling 10 ) img=cv2.resize(frame,(0,0 ),fx=1,fy=1) if ) len ) faces y ) #效果画面cv2.imshow ) ‘ frame2’,img ) #每5毫秒监测一次键盘操作if cv2.waitKey(5) )5)0xff==