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