在安防領域,人臉識別技術已經被廣泛應用,國內的一些大廠比如大華、海康等也已早早布局人臉識別技術,這是因為在安防領域,尤其是政府機關、車站機場、銀行等安防等級比較高的場合,人臉識別技術會極大的提高安全性。舉例說,在機場、車站、碼頭等交通樞紐部署分布式監控系統,并同時在每臺設備上部署人臉識別系統,就可以實時的在這些場合對特定人群或者特定目標實時監控,能夠在第一時間發現并上報監控對象位置,并根據目標的移動軌跡進行路跡顯示和報警。
早些年,人臉識別技術不是十分成熟,對圖像的分辨率、人臉特征完整性要求高,設備計算資源無法滿足,實時性也無法保證。并且在早期的安防監控部署方案中,基本上都是模擬攝像機+同軸電纜+視頻錄像機的方案,錄像只能保存在本地,不具備容災性。
隨著科技發展,如今安防領域的典型解決方案已經變為數字高清攝像頭+POE以太網/無線網橋+RAID硬盤錄像機/云存儲的方案。最近一兩年,嵌入式設備的運算能力逐步提高,成本逐步下降,這就導致了安防監控從被動存儲回放式向主動防御監控式的轉變。海康威視成熟的視頻安防監控設備內部處理器集成FPGA和ARM處理器,FPGA負責處理圖像傳感器數據,然后傳輸給ARM處理器進行數據的處理,ARM處理器上一般運行一個裁剪版的嵌入式Linux系統,負責對圖像數據進行圖像預處理、FPGA圖像采集前端參的數調節、視頻的編碼以及編碼后數據的網絡協議封裝和數據發送。
有些處理器設計為異構架構,內部還集成了DSP運算核心,能夠實現一些特定的圖像算法,從一定程度上看,這類設備已經具備了一定的視頻內容分析功能。但是,DSP一般用作視頻編碼加速用,ARM主要用來調度FPGA圖像處理前端和進行網絡數據發送,能夠用來做圖像處理尤其是人臉檢測與識別、人體分類等等高運算量和高內存占用的工作還是力不從心的。本作品延續這類安防設備的思路,針對安防設備本身運算能力不高,對一些運算密集型的算法無法部署到計算資源低的設備上的弊端進行改進,設計使用兩級人臉識別算法,使用傳統的人臉識別分類器在低運算量的嵌入式設備上進行初步圖像處理,提取出視頻流中的人臉ROI區域,通過網絡發送到監控中心后,使用集中式的高性能計算設備進行更加準確的識別分類。同時監控中心可以針對每一個監控相機分發不同的分類器,實現特定機位對特定目標的搜索識別。硬件設備:樹莓派3樹莓派攝像頭 Oray異地VPN組網路由器X3軟件環境:Python3 opencv2.4.13
硬件連接圖:
代碼說明:首先,監控中心分發特定目標的圖片和和訓練好的lbp分類器文件到各樹莓派節點,樹莓派控制攝像頭采集圖像并利用下發的分類器對采集到的視頻幀進行人臉ROI區域提取,并發送提取到的ROI區域圖像到中心節點(本作品中心節點使用的是Face++的服務器),進行比對、搜素并返回結果。
face_roi_extract.py 功能是視頻采集和人臉ROI提取,負責對視頻中的人臉進行檢測和提取儲存。
face_api.py 是一個python3 的face++ sdk,因為face++僅提供python2 的sdk,所以就簡單做了一個py3 的sdk,其實就是api集合,非常簡陋。
faceset_cli.py 是一個簡單的命令行交互工具,可以用來管理faceset數據集,包括faceset的創建、列舉、刪除,faceset中face的添加、列舉、刪除。同時支持從本地圖片導入人臉、face token導入、攝像頭捕捉人臉導入三種方式。本代碼執行后會在tmp文件夾下面自動建立錄入的人臉信息和face token的映射文件,為其他模塊工作時提供索引文件。
face_search.py 是一個人臉搜素的工具。能對傳入的圖片在指定的人臉集合中搜素匹配,若搜索到則返回搜索到的目標姓名信息。
face_detect.py 是一個對視頻中所有已經檢測到的人臉進行檢測,提取臉部特征和facetoken并存入dat文件中的工具。這個可以用來做簽到。
face_compare.py 是一個對傳入的兩張圖片做比對的工具,返回兩個人臉的相似度。
-
FPGA
+關注
關注
1630文章
21791瀏覽量
605092 -
人臉識別
+關注
關注
76文章
4015瀏覽量
82146 -
樹莓派
+關注
關注
117文章
1710瀏覽量
105797
原文標題:使用樹莓派部署分布式人臉識別系統
文章出處:【微信號:cirmall,微信公眾號:電路設計技能】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論