孫宇彤
(吉林電子信息職業技術學院,吉林吉林 132021)
人群信息檢測是智慧城市建設過程中城市管理的支撐技術之一,其功能是利用公共場所的監控設備實時獲取人群信息,然后由邊緣計算系統對數據信息進行計算、分析,在準確識別人群中異常狀況后發布預警信息,提醒相關部門采取措施加強人群秩序管理,從而避免因為人群過于密集而出現踩踏等事故,切實保障公共安全。本文基于人工智能技術設計的邊緣計算系統,具有較高的實時性、可靠性,通過人群信息分析不僅能輔助公共場所的秩序管理,而且在城市規劃、公共設施配置與資源調度等方面也發揮了重要作用。
基于人工智能的邊緣計算系統,主要由攝像裝備、邊緣設備、云服務器等組成。其中,攝像裝備可以實時采集監控區域內的圖像信息或視頻信息,并將其發送至邊緣設備;部署了神經網絡算法的邊緣設備,會利用特定算法對采集到的圖像、視頻信息進行運算處理,并基于HTTP(超文本傳輸協議)將分析結果發送到云服務器上進行直觀呈現,以便于管理人員了解人群密度、人群流向。邊緣計算系統的整體架構如圖1 所示。
本文設計的邊緣計算系統主要用于人群信息檢測,系統設計需求如下:可利用部署于商場、道路、車站等公共場所的監控設備,實現對人群信息的全天候、實時性監測,通過人工智能分析提取人群流向與人群密度等重要信息,在必要時可以發出報警信號,降低監控成本并提高檢測效率。
基于RISC-V 精簡指令集架構的CPU 具有結構簡單、穩定性好、能效比高等一系列特點,并且支持自定義指令拓展,與本文設計的邊緣計算系統有較高的切合度,最終選擇基于RISC-V 架構的RI5CY 處理器作為系統CPU,RI5CY 的架構如圖2 所示。

圖2 RI5CY 的設計框圖
圖2中ALU 為邏輯運算單元,MULT 為乘法器,兩者組合可以使RI5CY 完成各種邏輯運算和乘法運算;CSR 為控制和狀態寄存器,主要用于記錄RI5CY的運行狀態并提供控制信號;LSU 為存儲器訪問的控制模塊,可支持RI5CY 在數據存儲器中讀寫數據;GPR 為寄存器組。將RI5CY 處理器作為系統CPU,能夠將管理員編輯的任意一條指令劃分為4 級流水線,即取值、譯碼、執行和寫回4 個階段,這種流水線結構顯著提升了指令的吞吐率,并在一定程度上縮短了每條指令的運行時間,使得CPU 性能得到明顯的增強。RI5CY 處理器的四級流水線結構見表1。

表1 四級流水線結構
本文設計的邊緣計算系統具有較強的可擴展性,通過設計自定義指令拓展接口,后期可根據人群信息檢測的實際需求靈活拓展新的功能,從而降低了系統二次開發的成本與難度。自定義指令拓展接口包含2個通道,分別是req_請求通道和rsp_反饋通道。前者的作用是將拓展指令和源操作數發送給CPU,后者的作用是將CPU 的運算結果再返回給終端處理器。RI5CY 處理器(即CPU)中的譯碼模塊,對取值模塊產生的指令進行譯碼,然后根據譯碼結果判斷此指令是否為CPU 指令,如果判斷結果為“是”,則利用2 個源操作數rs1、rs2 進一步檢驗此指令是否需要讀取源寄存器數據信息。如果需要讀取,則CPU 直接從寄存器中調用相關數據。數據寫入后,生成新程序并使系統獲得新功能,完成功能的拓展。
邊緣設備需要將處理分析的結果發送至云服務器,受到網絡帶寬的存儲容量的限制,當傳輸量較大時經常會出現信道堵塞的情況,導致系統的實時性較差。為了降低系統的運行功耗、保證處理結果的實時呈現,本文設計了一種基于卷積神經網絡的實時人群信息檢測邊緣計算模型。在該模型中,基于人工智能的神經網絡算法部署在邊緣設備中,這樣就保證了邊緣設備在接收到前端攝像裝備傳輸的圖像與視頻信息后,能夠提取特征信息并對多個節點的數據進行清洗與聚合,從而大幅度減少了需要傳輸的數據總量,降低了對網絡資源的占用,提高了系統運行效率[1]。
根據處理流程的不同,卷積神經網絡的訓練可分為“前向傳播”與“反向傳播”2 個階段。所謂前向傳播,就是利用卷積神經網絡模型對參數進行初始化,輸入數據依次經過卷積層、池化層及全連接層的處理后,得到輸出數據;而反向傳播則是對比輸出值與真實值,計算兩者之間的誤差后利用反向傳播算法進行參數更新。在經過多次迭代訓練后得到神經網絡模型,具體訓練過程如圖3 所示。
在卷積神經網絡的前向傳播中,輸入的圖像信息或視頻信息分別經過卷積運算、池化運算和激活函數處理后,得到圖像或視頻的特征信息。然后將特征信息作為輸入量,輸入到全連接層、歸一化層做進一步處理,得到最終的輸出結果。判斷輸出值與真實值是否相符,若兩者相符則本次訓練結束;若兩者不相符,則繼續進入反向傳播。同時,將輸出值與真實值之間的誤差記為e,將e向前一層返回,通過遞推得到每一層的誤差,并根據誤差進行參數更新。由于每一層的誤差并不完全相同,相應的各層的誤差值求解方法也存在差異,具體如下。
1)對于全連接層之間的誤差,首先求出輸出總誤差,將誤差反向到輸出層的上一層(即全連接層)。由于本層中的誤差是由全連接的神經元造成的,首先分別求出每個神經元的誤差,然后再進行求和運算。每個節點誤差=誤差×節點參數值。
2)對于池化層誤差,如果需要計算“最大池化誤差”,可以將誤差直接反向到上層連接節點;如果需要計算“平均池化誤差”,則將誤差平均分布到上一層中。
3)對于卷積層誤差,考慮到卷積層中的誤差是通過卷積操作傳遞的,在計算時首先要通過卷積核定位本層與上層之間的連接節點,在此基礎上求上層誤差。確定本層誤差后,在最外層進行零填充處理,將卷積核反轉后對零填充過程中產生的誤差進行卷積操作,最后得出卷積層上一層的誤差[2]。
在完成卷積神經網絡模型的訓練后,本文針對邊緣端處理器數據處理效率不高的問題進行了優化,優化內容包括以下3 個方面。
首先,將原來的CSRnet 網絡模型從vggnet 模型替換成了輕量級的mobilenet 模型,將該模型部署在性能要求較低的邊緣端,一方面能夠滿足基本的數據運算需要,保證邊緣計算系統各項功能的實現;另一方面還能大幅度減少計算量,對減輕系統運行負荷、提高系統響應效率也有積極幫助。
其次,對CSRnet 網絡模型進行了參數剪枝處理。引入評估算法,在卷積神經網絡訓練時,刪減了許多不重要的參數和冗余,在確保計算精度滿足系統使用要求的基礎上最大程度減少網絡運算量。
最后,對參數作量化處理。在原來的CSRnet 網絡模型中,使用32 位浮點數的權重,浮點數運算過程中會占用較多的存儲空間,導致系統出現響應延遲問題。通過參數優化后將32 位浮點數的權重和激活值轉換為8 位定點數值。這種定點數運算對硬件設備的要求更低,占用的資源更少,系統運行速度更快。
按照上述方法對該模型進行通道裁剪和參數量化處理后,優化后新模型的參數量比原模型下降了7.2%,將優化后模型以tensorflow lite格式輸出到嵌入式平臺[3]。
邊緣系統內布置有若干個數據采集節點,每個節點對應著一個監控攝像設備。前端設備實時采集圖像、視頻信息后,傳輸至對應節點后利用神經網絡模型進行數據運算、人群特征提取和分析。完成分析后,節點會利用網絡將分析結果發送至區域邊緣總結點。在總結點上,對數據做清洗、聚合處理后,統計區域內人群總數,得到人群流向分析結果和各節點擁擠程度分析結果。如果擁擠程度超過設定值,還會自動預警。區域邊緣總結點將上述信息匯總成日志,經網絡發送至云服務器,云服務器根據接收到的日志展開深度分析和智能決策,并將接收到的信息進行備份保存到數據庫中。邊緣計算系統的功能實現如圖4 所示。

圖4 邊緣計算系統的具體實現
本系統選擇Pi-Camera 作為圖像、影像的采集模塊,用樹莓派處理器作為邊緣端處理器。將圖像或影像的像素設定為640×480,傳輸到樹莓派后利用神經網絡模型進行計算、分析,可以得到某個節點上的人群數量。樹莓派節點能夠做到每3 s 處理一幀圖像,每5 s向邊緣總節點發送1 次數據,這樣就保證邊緣計算系統每分鐘可以進行12 次人群信息的提取與分析,極大地提高了系統的運行性能,完全能夠滿足人群消息檢測的需求[4]。使用ARC iotdk 開發板作為區域邊緣總結點,可支持以下功能。
1)數據清洗。邊緣計算系統的前端包含海量的攝像監控設備,每臺設備對應的節點會源源不斷地通過局域網向總節點傳送數據。為了減輕系統的運行負荷和提高數據處理效率,區域邊緣總節點需要對數據進行清洗,目的是刪除那些帶有明顯錯誤的節點數據,在保證數據正確性的基礎上達到“數據瘦身”的效果。正常情況下,經過數據清洗處理后,區域邊緣總節點接收的數據量會減少20%~40%不等。
2)數據聚合。該功能是在完成數據清洗的基礎上,對各個節點傳送的數據進行特征信息提取,并根據提取內容展開數據計算,最后匯總計算結果。數據聚合可以將具有共性特征的數據信息按照特定的類別進行存儲,為下一步人工智能調用數據并進行分析決策提供了便利條件。
3)擁擠警報。管理員可自定義邊緣計算系統的總人數,以及任意一個節點的人數,將其作為擁擠警報的閾值。系統在運行過程中,對前端攝像監控設備提供的圖像或視頻信息進行分析,并計算出該節點或總節點的人數。將計算結果與閾值進行對比,如果計算結果超出了設定的閾值,則系統自動發出報警信息,提醒系統管理員或者相關單位及時采取預防措施。
4)人群流向預測。邊緣計算系統會自動對比各個節點的歷史數據和當前數據,以此來預測該節點未來的人群流向趨勢。同時,將預測結果以可視化圖形的方式呈現,以便于系統管理員能夠直觀地掌握人群流向。
5)本地數據備份。ARC iotdk 開發板在處理數據的過程中,還會把原始數據和處理后的數據分別進行備份,然后將備份數據保存在本地服務器[5]。當系統管理員需要查看系統日志時,可以直接從本地服務器下載相應的數據。
6)上傳數據至云端。區域邊緣總節點會根據設定好的時間,通過互聯網自動將數據日志上傳到云端。云端除了提供更加豐富的數據分析功能外,還能融合大數據計算、人工智能分析,從而為科學決策提供依據。
基于人工智能的邊緣計算系統,以公共場所監控設備采集到的實時圖像和視頻作為輸入信息,通過提取行人特征信息可以監控某個區域的人群密度、預測未來一段時間內的人群流向,從而為城市安全管理、公共空間設計、基礎設施建設等提供必要的數據支持,在智慧城市建設中發揮了重要作用。同時,本文針對云端計算實時性差、網絡帶寬要求高等問題,采取了卷積神經網絡模型迭代訓練與優化措施,經過優化的系統模型不僅提高了人群信息分析速度,而且在節約帶寬資源、提高響應速度方面也取得了顯著效果,進一步提高了邊緣計算系統的實用效果。