RTSP網絡攝像頭 WEB端播放 並實時人臉檢測

(大的彩色圖爲攝像頭的原始數據;左邊灰色的視頻是灰度化、縮放以後的視頻,用來檢測人臉信息,以提高效率;下邊的人臉圖片是檢測到人臉信息後,截取人臉信息和後臺比較然後回顯)

項目地址:https://github.com/15225845996/rtsp-face

功能描述

1)瀏覽器實時播放攝像頭信息

2)實時人臉檢測(圈出視頻中的人臉)

3)根據人臉位置截取人臉,與後臺交互獲取人臉信息並回填

4)定義可過期的Map,實現濾重(一秒內可能會有很多幀同一個人的人臉信息請求)

 

參考項目(參考rtsp瀏覽器播放):https://gitee.com/lllyl2012/rtspDemo

 

準備工作

安裝FFmpeg(視頻轉碼,瀏覽器不支持rtsp協議),並在PATH下配置環境(項目中會調用CMD命令)

 

1)官網(http://ffmpeg.org)下載後解壓到任意目錄,並將bin目錄配置在PATH中即可

2)CMD運行:ffmpeg 不報錯即可

 

項目介紹

1)項目結構

 

2)調用ffmpeg推流到指定的controller,由ConvertVideoPakcet實現ApplicationRunner接口,並在項目啓動完成時運行run方法實現。

#命令示例:將指定rtsp地址的視頻 推送到指定controllerffmpeg -rtsp_transport tcp -i "rtsp://admin:[email protected]:554/Streaming/Channels/101" -q 0 -f mpegts -codec:v mpeg1video -s 800x600 http://localhost/rtsp/receive

3)將接收(RtspController接收)到的流通過WebSocket推送到客戶端。

4)客戶端使用jsmpeg.min.js解碼並輸出到 canvas 元素 實現動態播放

5)改造jsmpeg.min.js 結合opencv.js實現動態人臉識別,具體見代碼(jsmpeg.min.js 中的 CanvasRenderer.prototype.render)

 

總結:

動態識別人臉信息可根據需求靈活調整
優化方案:在硬件不變的情況下,可根據需求靈活調整。

如考勤場景,只需要檢查入口範圍,但是一般情況下攝像頭獲取到的影像要比入口大的多,所以可以根據實際場景將獲取到的圖片截取到只有入口大小,然後在根據情況縮放一下在檢測(要保證縮放後也可以看清楚人臉),流暢度會有一個提升(因爲參與校驗的數據量變小了)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章