周文杰,伍文豪,丁德紅,郭國強,帥勇
(1.國網(wǎng)湖南省電力有限公司常德供電分公司,常德 415000;2.湖南文理學(xué)院,常德 415000;3.湖南應(yīng)用技術(shù)學(xué)院,常德 415099)
人體行為識別是利用計算機技術(shù),通過特定的識別算法,分析視頻設(shè)備采集到的數(shù)據(jù),對視頻中的人進(jìn)行行為識別的技術(shù)[1]。隨著我國在視頻監(jiān)控領(lǐng)域的市場不斷擴大,傳統(tǒng)的視頻監(jiān)控系統(tǒng)已經(jīng)不能滿足人們的需求,更期望能有一套完整的監(jiān)控系統(tǒng),對視頻中我們感興趣的事件能夠自動地檢測出來,不需要人工干預(yù)即可完成我們所需要的視頻片段或者圖片,當(dāng)前有很多學(xué)者研究人員在這方面進(jìn)行不斷發(fā)掘,在傳統(tǒng)的人體行為分析算法進(jìn)行改進(jìn)或者開發(fā)出新的算法。
文獻(xiàn)[2]在復(fù)雜場景下的單人行為監(jiān)測、實時連續(xù)行為監(jiān)測、多人交互行為分類問題上給出了不同的解決方案,在復(fù)雜場景單人行為監(jiān)測中使用了遮罩的模板匹配方法使用CMU數(shù)據(jù)庫進(jìn)行了算法測試,實驗結(jié)果表明通過遮罩進(jìn)行特征識別結(jié)果比沒有遮罩識別結(jié)果效果好,文獻(xiàn)[3]中提出了一種慢特征分析(SFA)方法進(jìn)行視頻中的人體行為分析,與改進(jìn)型慢特征分析算法(D-SFA)進(jìn)行實驗對比,驗證了慢特征分析方法和改進(jìn)型的特征分析算法在人體行為分析提取慢特征的有效性,同時實驗證明在一定程度上D-SFA比SFA的效果更好。文獻(xiàn)[4]中作者將人臉識別、人體解析和行為解析應(yīng)用到公安的交通治安、視頻巡邏、調(diào)查取證、治安案件調(diào)查等多個重要業(yè)務(wù)應(yīng)用,就不需要大量人力對視頻內(nèi)容進(jìn)行手動篩選,減少工作量,并且提到監(jiān)控領(lǐng)域?qū)χ悄芊治鱿到y(tǒng)的需求日益增多。
目前我國市面上有很多平臺都推出了用戶可以根據(jù)自己的需求自定義事件模型,通過在公共的模型數(shù)據(jù)基礎(chǔ)上,用戶在不斷地添加素材對模型進(jìn)行二次訓(xùn)練,可以達(dá)到比較高識別準(zhǔn)確率,但是這樣本地部署會有很多的條件限制,例如:需要昂貴的GPU服務(wù)器及復(fù)雜的授權(quán),等等。因此可以選擇自帶處理芯片的攝像頭,可以節(jié)省成本加快研究發(fā)速度。
整個系統(tǒng)主要分為AI行為分析、MQTT服務(wù)器和后臺三部分,也就是正好對應(yīng)物聯(lián)網(wǎng)的感知層、傳輸層和應(yīng)用層,整體架構(gòu)如圖1所示。
AI行為分析主要是把我們在線上訓(xùn)練好的數(shù)據(jù)集部署到??禂z像頭中,由它完成視頻流采集和圖像分析,對圖像進(jìn)行采集并且通過機器學(xué)習(xí)訓(xùn)練各種模型,如睡覺模型、玩手機、不著工裝、看報、吃零食模型,等等,后期使用中可以不斷提高模型的識別準(zhǔn)確率;通過處理視頻流分析出人體的異常行為動作,攝像頭連接MQTT服務(wù)器,實時地推送消息到MQTT服務(wù)器,最后得出結(jié)果,主要的實現(xiàn)步驟如下:
(1)對各種異常行為進(jìn)行樣本視頻采集,對視頻進(jìn)行結(jié)構(gòu)化、行為化處理,打上相應(yīng)的標(biāo)簽,從而訓(xùn)練出對應(yīng)的行為模型。
(2)對多個行為模型進(jìn)行混合,整理成混合行為模型。
(3)模型訓(xùn)練采用海康的AI框架進(jìn)行線上訓(xùn)練。
(4)訓(xùn)練完成后下載離線的模型包以及標(biāo)簽文件,對局域網(wǎng)內(nèi)的攝像頭進(jìn)行離線部署。
圖1 AI行為分析整體架構(gòu)圖
MQTT是機器對機器(M2M)/物聯(lián)網(wǎng)(IoT)連接協(xié)議。它被設(shè)計為一個極其輕量級的發(fā)布/訂閱消息傳輸協(xié)議。對于需要較小代碼占用空間和/或網(wǎng)絡(luò)帶寬非常寶貴的遠(yuǎn)程連接非常有用,是專為受限設(shè)備和低帶寬、高延遲或不可靠的網(wǎng)絡(luò)而設(shè)計。這些原則也使該協(xié)議成為新興的“機器到機器”(M2M)或物聯(lián)網(wǎng)(IoT)世界的連接設(shè)備,以及帶寬和電池功率非常高的移動應(yīng)用的理想選擇[5]。我們通過加入MQTT中間件的加入,降低整個系統(tǒng)的耦合度,同時可以在不可靠的網(wǎng)絡(luò)環(huán)境中,為遠(yuǎn)程連接的設(shè)備提供可靠的消息服務(wù)。MQTT服務(wù)器我們是借助第三方平臺以降低整個系統(tǒng)的成本,把??禂z像頭接入到該平臺中,只要檢測到有事件發(fā)生就會實時推送消息到該MQTT相應(yīng)的Topic中,后臺通過MQTT客戶端訂閱Topic就可以獲取到發(fā)生的事件。
MQTT服務(wù)器主要是借助華為云提供的物聯(lián)網(wǎng)服務(wù)通過網(wǎng)絡(luò)經(jīng)過MQTT協(xié)議把對應(yīng)的消息傳輸?shù)饺A為云的MQTT服務(wù)器中,傳輸過程如圖2所示。
MQTT作為整個系統(tǒng)的中間產(chǎn)品,起到連接作用,也是傳輸消息重要通道,對整個系統(tǒng)的重要性不言而喻。MQTT是基于訂閱/推送方式的消息傳輸協(xié)議,所以我們把??禂z像頭接入華為云的物聯(lián)網(wǎng)平臺時,通過代碼設(shè)置監(jiān)測到有事件觸發(fā)時推送到指定的Topic。
圖2消息傳輸過程
MQTT進(jìn)行二進(jìn)制數(shù)據(jù)傳輸時,主要是以JSON格式的數(shù)據(jù)作為載體傳輸消息,JSON格式數(shù)據(jù)中主要包含了設(shè)備基本信息、監(jiān)測到的事件類型、事件發(fā)生的時間以及對應(yīng)事件圖片的URL,如下JSON數(shù)據(jù)格式說明。
整個后臺使用主流編程語言Java進(jìn)行開發(fā),利用Spring全家桶進(jìn)行開發(fā)構(gòu)建,同時也利用thymeleaf模板引擎開發(fā)前端界面,為了節(jié)省資源使用了Websocket進(jìn)行消息的實時展示,并且把消息持久化到MySQL數(shù)據(jù)庫中。
為了保證系統(tǒng)每次啟動時,可以自動訂閱??禂z像頭推送檢測事件的Topic,因此把這些訂閱信息存儲在數(shù)據(jù)庫中,并且在接收消息后實時顯示消息并且持久化數(shù)據(jù)庫表中,我們也可以查看所有的歷史消息。部分?jǐn)?shù)據(jù)庫表如表1。
表1 數(shù)據(jù)表mqtt_client
表2 數(shù)據(jù)表mqtt_topic
表3 數(shù)據(jù)表mqtt_data
每次系統(tǒng)啟動初始化時都會從數(shù)據(jù)庫中查詢訂閱信息,訂閱Topic以接收MQTT服務(wù)器接收的消息。
本系統(tǒng)中為了避免使用AJAX輪詢消耗較多的資源,該系統(tǒng)實時數(shù)據(jù)展示中使用Websocket技術(shù),使用Websocket的點對點通信推送,在MQTT客戶端的接收消息回調(diào)方法中發(fā)送消息給前端頁面展示同時把相應(yīng)的數(shù)據(jù)存儲在數(shù)據(jù)庫中。
本次AI行為分析算法利用的是??低旳I開放平臺,建立一個行為分析模型需要先讓機器進(jìn)行學(xué)習(xí),機器學(xué)習(xí)主要包括以下四個步驟:
(1)數(shù)據(jù)采集
AI行為分析是通過一個機器去識別不同狀態(tài),機器就需要一個不斷學(xué)習(xí)的過程,所以就需要大量的數(shù)據(jù)去發(fā)掘規(guī)律,一些定義的問題就需要這些數(shù)據(jù)作代表,這些大量的數(shù)據(jù)能讓機器學(xué)習(xí)算法在從中學(xué)習(xí)到規(guī)律,最終得到預(yù)測模型。我們把已經(jīng)知道結(jié)果的歷史數(shù)據(jù)稱為標(biāo)記數(shù)據(jù),每一條獨立的標(biāo)記數(shù)據(jù)叫做樣本。一條樣本包含兩個部分:
目標(biāo)值label:即結(jié)果,就是需要預(yù)測的答案。
特征值:即特征,特征值是指和目標(biāo)值有關(guān)聯(lián)關(guān)系的屬性或者描述性的數(shù)據(jù),變量值越豐富越好。
(2)特征工程
特征工程是把樣本數(shù)據(jù)中的各變量數(shù)據(jù)處理得更具有表征意義,是將特征的選擇、變換、組合等過程。目的是希望能夠最大限度地從原始數(shù)據(jù)中提取特征以供算法和模型使用。提取特征值的過程包括以下幾個方面:
特征選擇:選取重要有用的特征用于建立模型。
特征組合:可以把已有的特征經(jīng)過組合去形成一個新的有意的特征。
連續(xù)特征離散化:在算法應(yīng)用中,某些算法很少直接將連續(xù)特征輸入而是將連續(xù)特征離散化為一系列0、1特征交給邏輯回歸處理,離散化之后的特征更加具有魯棒性。如果特征沒有離散化,會給模型造成很大的干擾。
(3)模型訓(xùn)練與優(yōu)化
有了足夠多的樣本數(shù)據(jù),通過選擇合適的算法并配置合適的算法參數(shù),就能進(jìn)行模型訓(xùn)練。模型算法能學(xué)習(xí)到訓(xùn)練樣本數(shù)據(jù)中變量和目標(biāo)值之間的函數(shù)關(guān)系,我們把學(xué)習(xí)到的這個函數(shù)關(guān)系叫做模型。
實際訓(xùn)練過程中,我們訓(xùn)練出的模型通常需要通過嘗試多次評估以及多次的參數(shù)設(shè)定,訓(xùn)練來產(chǎn)生一個較優(yōu)的模型以供實際業(yè)務(wù)使用,這個過程也叫做模型優(yōu)化。
(4)預(yù)測應(yīng)用
通過上述模型訓(xùn)練,得到一個可用模型后,通過給模型輸入新的待預(yù)測的數(shù)據(jù),可以測得到預(yù)計結(jié)果。根據(jù)識別應(yīng)用場景不同,應(yīng)用方式可分為以下2種:
批量預(yù)測:通過一段時間的堆積,有很多要被預(yù)測結(jié)果的數(shù)據(jù),需要通過模型一次性的產(chǎn)生這些數(shù)據(jù)的預(yù)測結(jié)果,這種批量預(yù)測的方式也稱之為線下預(yù)測。
實時檢測:通過模型對線上實時產(chǎn)生的一條或多條數(shù)據(jù)進(jìn)行預(yù)測,實時地給出預(yù)測結(jié)果,這種預(yù)測方式也稱之為線上檢測。
有了對機器學(xué)習(xí)過程的了解,就可以利用海康的AI訓(xùn)練平臺去訓(xùn)練和發(fā)布模型。主要步驟如下:
(1)對需要檢測行為進(jìn)行樣本視頻采集,對視頻進(jìn)行結(jié)構(gòu)化、行為化。
(2)對采集到的每個單獨數(shù)據(jù)打上相應(yīng)的標(biāo)簽,指定要提取特征值的范圍,構(gòu)成一個待訓(xùn)練的數(shù)據(jù)集。
(3)將數(shù)據(jù)集進(jìn)行訓(xùn)練成模型,可以選擇合適的算法并配置合適的算法參數(shù),就能進(jìn)行模型訓(xùn)練,再進(jìn)行多次評估和參數(shù)設(shè)定就可以訓(xùn)練成模型。
(4)模型訓(xùn)練完成之后就可以使用測試樣本對其模型進(jìn)行預(yù)測,也稱之為線下測試。預(yù)測試可以檢測出該模型分析行為的準(zhǔn)確度,當(dāng)測試的準(zhǔn)確度沒有達(dá)到一定預(yù)期值就能重新對該模型進(jìn)行訓(xùn)練,為實際部署減低成本。
線下測試通過便將模式實際部署進(jìn)機器,該模型可通過線上實時產(chǎn)生的一條或多條數(shù)據(jù)進(jìn)行預(yù)測,實時地給出預(yù)測結(jié)果,稱之為線上測試。
(5)預(yù)測試結(jié)果達(dá)標(biāo)即可實際使用并實時檢測行為,對其分析出結(jié)果。
人體行為識別的主要過程,第一通過??禂z像頭采集視頻流檢測是否有我們所需要的模型事件發(fā)生,我們在模型訓(xùn)練時,采集了大量的不同動作類型的素材,對每種素材標(biāo)上標(biāo)簽后進(jìn)行統(tǒng)一的線上訓(xùn)練,在測試時發(fā)現(xiàn)只有攝像頭只有正對著每個崗位,采集角度偏差不大時識別準(zhǔn)確率會很高,并且后面在測試過程中不斷地人工糾正識別錯誤的動作類型圖片,使模型識別準(zhǔn)確率基本可以達(dá)到95%以上,第二將??禂z像頭將檢測到的模型事件通過網(wǎng)絡(luò)推送到MQTT服務(wù)器上,第三后臺解析MQTT接收的消息并且展示出來。
圖3實時識別效果
圖4視頻結(jié)構(gòu)化(MQTT推送的識別結(jié)果)
本文詳細(xì)地描述了如何使用海康攝像頭和物聯(lián)網(wǎng)技術(shù)融合開發(fā)出AI行為分析的整套系統(tǒng),本系統(tǒng)開發(fā)中我們嘗試過使用其他的幾家大公司的AI平臺上訓(xùn)練模型然后部署在本地GPU服務(wù)器進(jìn)行高性能處理計算監(jiān)測事件,這種方式的成本比較高,而且有很多授權(quán)條件限制,對于需要進(jìn)行二次開發(fā)且成本受控追求高性價比的項目來說并不合適,浪費了很多的資源和精力。因此,采用了海康攝像頭自帶的芯片進(jìn)行監(jiān)測處理是不錯的選擇,雖然剛開始的時候識別準(zhǔn)確率不是很高,但是隨著素材的增加,模型識別準(zhǔn)確率不斷提高。本系統(tǒng)中主要利用AI和IoT的技術(shù)結(jié)合開發(fā),具有識別準(zhǔn)確率高、性價比高、可靠性高等特點。以上經(jīng)驗與教訓(xùn),為同類項目的研究者提供參考。