周文杰,伍文豪,丁德紅,郭國強,帥勇
(1.國網湖南省電力有限公司常德供電分公司,常德 415000;2.湖南文理學院,常德 415000;3.湖南應用技術學院,常德 415099)
人體行為識別是利用計算機技術,通過特定的識別算法,分析視頻設備采集到的數據,對視頻中的人進行行為識別的技術[1]。隨著我國在視頻監控領域的市場不斷擴大,傳統的視頻監控系統已經不能滿足人們的需求,更期望能有一套完整的監控系統,對視頻中我們感興趣的事件能夠自動地檢測出來,不需要人工干預即可完成我們所需要的視頻片段或者圖片,當前有很多學者研究人員在這方面進行不斷發掘,在傳統的人體行為分析算法進行改進或者開發出新的算法。
文獻[2]在復雜場景下的單人行為監測、實時連續行為監測、多人交互行為分類問題上給出了不同的解決方案,在復雜場景單人行為監測中使用了遮罩的模板匹配方法使用CMU數據庫進行了算法測試,實驗結果表明通過遮罩進行特征識別結果比沒有遮罩識別結果效果好,文獻[3]中提出了一種慢特征分析(SFA)方法進行視頻中的人體行為分析,與改進型慢特征分析算法(D-SFA)進行實驗對比,驗證了慢特征分析方法和改進型的特征分析算法在人體行為分析提取慢特征的有效性,同時實驗證明在一定程度上D-SFA比SFA的效果更好。文獻[4]中作者將人臉識別、人體解析和行為解析應用到公安的交通治安、視頻巡邏、調查取證、治安案件調查等多個重要業務應用,就不需要大量人力對視頻內容進行手動篩選,減少工作量,并且提到監控領域對智能分析系統的需求日益增多。
目前我國市面上有很多平臺都推出了用戶可以根據自己的需求自定義事件模型,通過在公共的模型數據基礎上,用戶在不斷地添加素材對模型進行二次訓練,可以達到比較高識別準確率,但是這樣本地部署會有很多的條件限制,例如:需要昂貴的GPU服務器及復雜的授權,等等。因此可以選擇自帶處理芯片的攝像頭,可以節省成本加快研究發速度。
整個系統主要分為AI行為分析、MQTT服務器和后臺三部分,也就是正好對應物聯網的感知層、傳輸層和應用層,整體架構如圖1所示。
AI行為分析主要是把我們在線上訓練好的數據集部署到海康攝像頭中,由它完成視頻流采集和圖像分析,對圖像進行采集并且通過機器學習訓練各種模型,如睡覺模型、玩手機、不著工裝、看報、吃零食模型,等等,后期使用中可以不斷提高模型的識別準確率;通過處理視頻流分析出人體的異常行為動作,攝像頭連接MQTT服務器,實時地推送消息到MQTT服務器,最后得出結果,主要的實現步驟如下:
(1)對各種異常行為進行樣本視頻采集,對視頻進行結構化、行為化處理,打上相應的標簽,從而訓練出對應的行為模型。
(2)對多個行為模型進行混合,整理成混合行為模型。
(3)模型訓練采用海康的AI框架進行線上訓練。
(4)訓練完成后下載離線的模型包以及標簽文件,對局域網內的攝像頭進行離線部署。

圖1 AI行為分析整體架構圖
MQTT是機器對機器(M2M)/物聯網(IoT)連接協議。它被設計為一個極其輕量級的發布/訂閱消息傳輸協議。對于需要較小代碼占用空間和/或網絡帶寬非常寶貴的遠程連接非常有用,是專為受限設備和低帶寬、高延遲或不可靠的網絡而設計。這些原則也使該協議成為新興的“機器到機器”(M2M)或物聯網(IoT)世界的連接設備,以及帶寬和電池功率非常高的移動應用的理想選擇[5]。我們通過加入MQTT中間件的加入,降低整個系統的耦合度,同時可以在不可靠的網絡環境中,為遠程連接的設備提供可靠的消息服務。MQTT服務器我們是借助第三方平臺以降低整個系統的成本,把海康攝像頭接入到該平臺中,只要檢測到有事件發生就會實時推送消息到該MQTT相應的Topic中,后臺通過MQTT客戶端訂閱Topic就可以獲取到發生的事件。
MQTT服務器主要是借助華為云提供的物聯網服務通過網絡經過MQTT協議把對應的消息傳輸到華為云的MQTT服務器中,傳輸過程如圖2所示。
MQTT作為整個系統的中間產品,起到連接作用,也是傳輸消息重要通道,對整個系統的重要性不言而喻。MQTT是基于訂閱/推送方式的消息傳輸協議,所以我們把海康攝像頭接入華為云的物聯網平臺時,通過代碼設置監測到有事件觸發時推送到指定的Topic。

圖2消息傳輸過程
MQTT進行二進制數據傳輸時,主要是以JSON格式的數據作為載體傳輸消息,JSON格式數據中主要包含了設備基本信息、監測到的事件類型、事件發生的時間以及對應事件圖片的URL,如下JSON數據格式說明。

整個后臺使用主流編程語言Java進行開發,利用Spring全家桶進行開發構建,同時也利用thymeleaf模板引擎開發前端界面,為了節省資源使用了Websocket進行消息的實時展示,并且把消息持久化到MySQL數據庫中。
為了保證系統每次啟動時,可以自動訂閱海康攝像頭推送檢測事件的Topic,因此把這些訂閱信息存儲在數據庫中,并且在接收消息后實時顯示消息并且持久化數據庫表中,我們也可以查看所有的歷史消息。部分數據庫表如表1。

表1 數據表mqtt_client

表2 數據表mqtt_topic

表3 數據表mqtt_data
每次系統啟動初始化時都會從數據庫中查詢訂閱信息,訂閱Topic以接收MQTT服務器接收的消息。
本系統中為了避免使用AJAX輪詢消耗較多的資源,該系統實時數據展示中使用Websocket技術,使用Websocket的點對點通信推送,在MQTT客戶端的接收消息回調方法中發送消息給前端頁面展示同時把相應的數據存儲在數據庫中。
本次AI行為分析算法利用的是海康威視AI開放平臺,建立一個行為分析模型需要先讓機器進行學習,機器學習主要包括以下四個步驟:
(1)數據采集
AI行為分析是通過一個機器去識別不同狀態,機器就需要一個不斷學習的過程,所以就需要大量的數據去發掘規律,一些定義的問題就需要這些數據作代表,這些大量的數據能讓機器學習算法在從中學習到規律,最終得到預測模型。我們把已經知道結果的歷史數據稱為標記數據,每一條獨立的標記數據叫做樣本。一條樣本包含兩個部分:
目標值label:即結果,就是需要預測的答案。
特征值:即特征,特征值是指和目標值有關聯關系的屬性或者描述性的數據,變量值越豐富越好。
(2)特征工程
特征工程是把樣本數據中的各變量數據處理得更具有表征意義,是將特征的選擇、變換、組合等過程。目的是希望能夠最大限度地從原始數據中提取特征以供算法和模型使用。提取特征值的過程包括以下幾個方面:
特征選擇:選取重要有用的特征用于建立模型。
特征組合:可以把已有的特征經過組合去形成一個新的有意的特征。
連續特征離散化:在算法應用中,某些算法很少直接將連續特征輸入而是將連續特征離散化為一系列0、1特征交給邏輯回歸處理,離散化之后的特征更加具有魯棒性。如果特征沒有離散化,會給模型造成很大的干擾。
(3)模型訓練與優化
有了足夠多的樣本數據,通過選擇合適的算法并配置合適的算法參數,就能進行模型訓練。模型算法能學習到訓練樣本數據中變量和目標值之間的函數關系,我們把學習到的這個函數關系叫做模型。
實際訓練過程中,我們訓練出的模型通常需要通過嘗試多次評估以及多次的參數設定,訓練來產生一個較優的模型以供實際業務使用,這個過程也叫做模型優化。
(4)預測應用
通過上述模型訓練,得到一個可用模型后,通過給模型輸入新的待預測的數據,可以測得到預計結果。根據識別應用場景不同,應用方式可分為以下2種:
批量預測:通過一段時間的堆積,有很多要被預測結果的數據,需要通過模型一次性的產生這些數據的預測結果,這種批量預測的方式也稱之為線下預測。
實時檢測:通過模型對線上實時產生的一條或多條數據進行預測,實時地給出預測結果,這種預測方式也稱之為線上檢測。
有了對機器學習過程的了解,就可以利用海康的AI訓練平臺去訓練和發布模型。主要步驟如下:
(1)對需要檢測行為進行樣本視頻采集,對視頻進行結構化、行為化。
(2)對采集到的每個單獨數據打上相應的標簽,指定要提取特征值的范圍,構成一個待訓練的數據集。
(3)將數據集進行訓練成模型,可以選擇合適的算法并配置合適的算法參數,就能進行模型訓練,再進行多次評估和參數設定就可以訓練成模型。
(4)模型訓練完成之后就可以使用測試樣本對其模型進行預測,也稱之為線下測試。預測試可以檢測出該模型分析行為的準確度,當測試的準確度沒有達到一定預期值就能重新對該模型進行訓練,為實際部署減低成本。
線下測試通過便將模式實際部署進機器,該模型可通過線上實時產生的一條或多條數據進行預測,實時地給出預測結果,稱之為線上測試。
(5)預測試結果達標即可實際使用并實時檢測行為,對其分析出結果。
人體行為識別的主要過程,第一通過海康攝像頭采集視頻流檢測是否有我們所需要的模型事件發生,我們在模型訓練時,采集了大量的不同動作類型的素材,對每種素材標上標簽后進行統一的線上訓練,在測試時發現只有攝像頭只有正對著每個崗位,采集角度偏差不大時識別準確率會很高,并且后面在測試過程中不斷地人工糾正識別錯誤的動作類型圖片,使模型識別準確率基本可以達到95%以上,第二將海康攝像頭將檢測到的模型事件通過網絡推送到MQTT服務器上,第三后臺解析MQTT接收的消息并且展示出來。

圖3實時識別效果

圖4視頻結構化(MQTT推送的識別結果)
本文詳細地描述了如何使用海康攝像頭和物聯網技術融合開發出AI行為分析的整套系統,本系統開發中我們嘗試過使用其他的幾家大公司的AI平臺上訓練模型然后部署在本地GPU服務器進行高性能處理計算監測事件,這種方式的成本比較高,而且有很多授權條件限制,對于需要進行二次開發且成本受控追求高性價比的項目來說并不合適,浪費了很多的資源和精力。因此,采用了海康攝像頭自帶的芯片進行監測處理是不錯的選擇,雖然剛開始的時候識別準確率不是很高,但是隨著素材的增加,模型識別準確率不斷提高。本系統中主要利用AI和IoT的技術結合開發,具有識別準確率高、性價比高、可靠性高等特點。以上經驗與教訓,為同類項目的研究者提供參考。