?

基于國產化邊緣計算設備的警用機器人視頻結構化應用

2023-02-26 13:06公安部第一研究所孟博
中國安全防范技術與應用 2023年4期
關鍵詞:邊緣機器人智能

■ 文/ 公安部第一研究所 孟博

關鍵字:邊緣計算 模型 機器人

1 引言

人工智能技術在安防領域的應用越來越廣泛。隨著視頻結構化分析、語音識別和智能翻譯等人工智能技術的引入,智慧安防已經能夠精確管控人、車、物,將傳統安防的事后處理變為智慧安防的實時與主動預警,并實現應急聯動處置。2023年1月,工信部等十七部委聯合印發了《“機器人+”應用行動實施方案》,其中明確提出推動機器人在安保巡邏、緝私安檢、反恐防暴、勘查取證、交通邊防、治安管控、特戰處置、服務管理等社會安全場景的應用。

邊緣計算(Edge Computing)是相對云計算(Cloud Computing)而言的一種新興計算模式[1]。隨著物聯網特別是智能物聯網(AIoT)的發展,各種新型智能設備不斷涌現,產生了海量的數據。全球安防攝像頭每年產生超過10 的17 次方量級的圖片和視頻流。如果把這些視頻數據都傳輸到云中心上進行處理,將會消耗大量的網絡帶寬資源和計算資源。相比之下,邊緣計算可以在前端對這些數據進行就地處理,大大降低了數據傳輸量,減輕了云中心的計算壓力,提高了計算效率。

邊緣計算在智慧警務場景下有較廣泛的應用價值和市場。一般來說,派出所或警務站點分布分散,如果將視頻數據傳輸至中心節點統一處理,不但對網絡帶寬需求大,而且實時性較差。同時,警務場景的智能分析需求也是相對變化的,需要靈活配置分析的視頻源,算法和業務邏輯。通過基于邊緣計算的視頻結構化技術,可以輕松應對這些變化的需求,同時將監控視頻中有價值的信息提取出來,上報到上一級部門做進一步的綜合應用。

邊緣計算也是AI 國產化較好突破的一個重要方向,相對通用GPU 或AI 推理芯片,邊側AI 芯片的只負責推理,算力較小,芯片的研發難度較低;此外,邊緣計算在AI 算法落地上較容易,能做到場景、算法封閉,軟硬一體快速交付,具有易推廣,高性價比等特點。

邊緣計算設備搭載在警用機器人上,通過部署圖像,視頻和語言等領域的人工智能算法賦予警用機器人更多的智能化功能,提高異常事件響應的實時性,且可將結構化信息和數據上傳到云平臺做數據的綜合治理和應用,降低視頻傳輸對網絡帶寬造成的壓力,進一步優化和提升人機協同作業模式。通過數據驅動、科技集約、精準發力,為警務工作提供更強戰斗力,運用科技力量來防范化解風險。

2 基于小站Atlas 500 的警用機器人視頻結構化方案

Atlas 500[2]智能小站是面向廣泛邊緣應用場景的輕量邊緣設備,具有較強計算性能、大容量存儲、配置靈活、體積小、支持溫度范圍寬、環境適應性強、易于維護管理等特點。Atlas 500 智能小站依托于昇騰AI 處理器,可為多種邊緣計算的圖像、視頻智能分析場景打造基礎AI 計算平臺,增強邊緣側圖像、視頻分析的實時性,降低對網絡帶寬的依賴度,并可不斷升級算法來提升應用體驗。

由于它體積小、環境適應性強、配置靈活,而且具有較強計算性能和可擴展的大容量存儲,再加上便于管理維護的優點,因此滿足了在智慧城市、各類機房、交通、商場、園區等區域的應用需求,被廣泛用于數據存儲、分析以及智能視頻監控等方面。

2.1 環境與數據準備

本文方案對cuda 框架和Python 有詳細的版本要求,詳情如表1 所示(“——”)表示沒有具體要求。本方案需要安裝10.2 版本的cuda 框架和3.5 版本及以上的Python。

工具 版本Python v3.6 及以上cuda v10.2 Anaconda/miniconda ——git ——

本文使用的Objects365 數據集是由北京智源人工智能研究院與曠視科技于2019 年共同推出的一項基準數據集,旨在促進計算機視覺領域中的目標檢測研究。Objects365 在180 萬余張圖像上標注了365 個對象類,包含人、衣物、居室、浴室、廚房、辦公/醫療、電器、交通、食物 、動物、運動/樂器等。訓練集中有超過2900 萬個邊界框,超越了Pascal VOC、ImageNet 和COCO 數據集。數據集示例圖片如圖1 所示。

圖1 數據集示例

圖2 YOLOv5 算法性能測試圖[3]

圖6 準備文件列表

圖7 npu 信息

2.2 模型選擇與訓練

目標檢測是計算機視覺領域中一項重要的任務,其目標是檢測出圖像中物體的類別并將其定位。隨著卷積神經網絡的興起,基于深度學習方法的目標檢測進入了新的階段。主要的技術發展路線有anchor—based和anchor—free 系 列 方 法,anchor—based 方 法 包 括 一階段和兩階段檢測算法。兩階段檢測算法精度更高,如Faster—RCNN 系列,但是一階段算法計算速度更快,如YOLO、SSD 等。

YOLO(You Only Look Once)系列模型是經典的一階段算法,在精度滿足要求的同時,保證了模型的速度,使得實時目標檢測得以廣泛應用。Ultralytics 團隊提出了YOLOv5,由于其速度更快、精度更高、體積更小等優點,成為世界上最受歡迎的視覺AI 模型。綜合考慮部署場景檢測實時性、高召回、低誤檢要求,本文選擇YOLOv5 作為檢測模型。YOLOv5 共有4 個版本可供選擇:YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x。其中,s、m、l、x 分別代表模型大小,模型越大,精度越高,速度越慢。下圖是YOLOv5 的算法性能測試圖。

2.2.1 深度學習目標檢測模型YOLOv5 算法介紹

YOLOv5 的網絡結構由輸入端、 主干網絡(Backbone)、連接層(Neck)和輸出端(Prediction)四個部分組成。

2.2.1.1

YOLOv5 輸入端主要完成了數據增強、自適應錨框計算和自適應圖片縮放工作。

數據增強方法:通過對四張輸入圖像的隨機縮放、裁剪以及隨機排布方式將其拼接成一張,這種數據增強方法既豐富了檢測背景又提高了模型對小目標的檢測能力。

自適應錨框計算:YOLOv5 在訓練時集成了K—means方法來獲取不同訓練數據集中的最佳錨框值,此功能也可以關閉。

自適應圖片縮放:在目標檢測任務中,輸入圖像的尺寸通常需要被統一,以便模型可以批量處理。然而,不同尺寸的圖像如果直接縮放到相同的尺寸,往往需要在圖像的周圍填充一些額外的像素,這些填充的像素通常為黑色,即所謂的“黑邊”。如果填充過多,不僅會增加計算量,還會引入一些冗余的信息,影響模型處理的效率。YOLOv5 通過自適應圖片縮放技術,優化了這一過程。它可以根據輸入圖像的原始尺寸,智能地添加最少的黑邊,使得圖像在高度方向上的兩端黑邊減少,從而減少了信息的冗余和計算量的浪費。

2.2.1.2

Focus 結構:主要是對圖像進行切片操作,如下圖所示,將4×4×3 的圖像切片成2×2×12 的特征圖。

以YOLOv5s 為 例, 尺 度 為640×640×3 的 輸 入圖像經過Focus 結構首先進行切片操作得到尺度為320×320×12 的特征圖,再進行一次卷積核數為32 的卷積操作,得到的特征圖尺度為320×320×32。

CSP 結構:YOLOv5 中設計了兩種CSP 結構,以YOLOv5s 網絡為例,CSP1_X 結構應用于主干網絡中,另一種CSP2_X 結構則應用于連接層中。

2.2.1.3

網絡連接層用于連接主干網絡與頭部,采用FPN+PAN 的結構進行特征融合。

FPN 結構將語義特征從上而下傳遞,PAN 結構接在FPN 之后,從下而上將定位特征傳遞上去,這樣可得到了既含有豐富語義又含有定位信息的特征。

2.2.1.4

損失函數:采用CIoU_loss 作為損失函數,定義如下:

非極大值抑制(NMS):基于錨框的檢測方法對于同一目標會產生大量冗余的候選框,我們需要利用非極大值抑制的方法消除冗余,篩選出最佳的目標邊界框,公式如下:

2.2.2 模型訓練

訓練數據經過數據增強、灰度填充操作形成尺度統一、信息豐富的輸入圖像,再經過主干網絡提取圖像特征,得到的特征經過連接層的處理將語義和定位信息融合,最后經過檢測頭得到損失,進行反向傳播。

訓練過程在8 卡NVIDIA TITAN 24G 服務器上完成,epoch 設為200,batch—size 設為32,其余超參默認。

3 訓練模型部署

模型訓練完成后,可以將訓練模型在Atlas 500 上對視頻流進行推理檢測工作,工作流程如圖5 所示,首先在Ubuntu 系統中安裝CANN—toolkit,包括安裝工具包、下載CANN 軟件包、準備用戶并安裝和配置環境變量。第二步是模型轉換,主要是將訓練得到的權重文件格式轉換為om 模型。之后的操作便在Atlas 500 上進行,包括Atlas 500 固件升級、構建docker 鏡像等。在完成了上述準備工作后,便可配置CANN—nnrt 和運行環境,執行detect腳本程序開始視頻流的檢測結構化工作。詳細流程介紹如下。

3.1 在Ubuntu 服務器上安裝CANN-toolkit

參考“技術支持—文檔中心”中的《CANN 5.0.x 軟件安裝指南》等文檔。

(1)安裝anaconda 或miniconda,并創建虛擬環境。命令如下:

conda create —n atc_yolov5 python=3.7 # ascend—deployer 要求python 版本>=3.6

(2)安裝git 和安裝YOLOv5 所需的第三方庫,如pytorch 等。

(3)獲取ascend—deployer 工具

安裝后“主目錄”下會出現一個“ascend—deployer”文件夾(完整路徑為“/home//ascend—deployer”)。

(4)下載CANN 軟件包

在 官 網 下 載“Ascend—cann—toolkit_5.0.3.7_linux—x86_64.zip”、人工驗證簽名pgp、自動驗證簽名cms(需要下載權限)或者使用命令:

ascend—download ——os—list=Ubuntu_18.04_x86_64——download=CANN

(5)準備運行用戶并安裝,命令如下:

groupadd HwHiAiUser # 新建用戶組HwHiAiUser

adduser {username} HwHiAiUser

cd ~/ascend—deployer

./install.sh ——install=toolkit

安裝完成的toolkit 在“~/Ascend/ascend—toolkit”路徑下。

(6)配置環境變量,配置前請確認set_env.sh 中的toolkit 的路徑是否正確,如與安裝路徑不匹配,則需要修改。

# 安裝toolkit 后配置

.~/Ascend/ascend—toolkit/set_env.sh

# 或者把set_env.sh 的內容添加到~/.bashrc 中

# 然后運行source ~/.bashrc

3.2 Ubuntu 服務器上進行模型轉換

(1)安裝onnx

conda activate atc_yolov5

conda install onnx

pip install onnx—simplifier

(2)利用ATC 工具轉換為om 模型。生成的.om 文件在yolov5 根目錄下。

3.3 Atlas500 固件升級

主要參考Atlas 500 智能邊緣管理系統 (V2.2.200.010版本至21.0.2 版本),下載固件升級包“A500—3000_A500—3010—ESP—FIRMWARE—V2.2.209.020.zip”,瀏覽器訪問Atlas500,選擇“維護— 固件升級— 系統固件升級” ,上傳固件升級包,升級,等待升級進度100%,重啟生效。

3.4 在Atlas 500 上構建docker 鏡像

(1)在Ubuntu 服務器上準備YOLOv5—image 文件

1)將以下文件放置到yolov5—image 文件夾下。其中下載Ascend—cann—nnrt_5.0.3.7_linux—aarch64.run 需要權限。

2)創建Dockerfile。

3)將“3.2 模型轉換”的“yolov5”文件夾去除無用文件并打包。

4)創建install.sh。

#!/bin/bash

#進入容器工作目錄

cd /root

#解壓業務推理程序壓縮包

tar xf dist.tar

5)創建run.sh。

#!/bin/bash

#進入業務推理程序的可執行文件所在目錄

cd /root/dist

#運行可執行文件

#./main

python3./detect.py

(2)將上述文件復制到Atlas 500 上

1) 瀏 覽 器 訪 問Atlas 500, 新 建 分 區 為“/opt/mount/docker01”。

2)在Ubuntu 服務器(非昇騰設備)上,通過scp命令,將yolov5—image 文件夾完整傳輸到Atlas 500 的/opt/mount/docker01 路徑下。命令如下:

# 訪問yolov5—image 文件夾的上層目錄

s c p —r./y o l o v 5—i m a g e/vision@172.23.0.111:/opt/mount/docker01/

(3)ssh 遠程Atlas 500

1)在Ubuntu 服務器(非昇騰設備)上,ssh 遠程訪問Atlas 500。登錄后,需要通過timeout 0 和TMOUT=0 重置超時時間,否則超時后,會話會自動關閉,退出操作窗口。

2)查看npu 信息。

npu—smi info

其中的 NPU Chip 代表 NPU 芯片,這里的device id為 0 ,Name Device 為 310 ,代表Ascend 310 。Health Bus—Id 為 OK ,則說明正??梢允褂?。

(4)在Atlas 500 上制作鏡像

1)查看docker 版本和現有鏡像。

2)構建docker 鏡像。

3.5 YOLOv5 在docker 容器中檢測視頻流— —Atlas 500

具體流程如下:

(1)啟動docker 容器

(2)配置CANN—nnrt

(3)查看npu 是否可用

(4)配置代碼運行環境

(5)改寫detect.py 文件并運行

4 模型推理

在完成上述模型訓練以及邊緣計算設備部署后,可以開始對視頻流進行測試,這里使用驗證集或測試集數據進行推理分析,可視化預測結果如圖8 所示,畫面中人、海鷗、建筑等物體均可使用不同顏色的目標框進行標識,實現了圖像中人、物等目標的提取,為進一步開展視頻結構化提供了基礎。

圖8 模型推理結果示意

5 結語

綜上所述,基于國產邊緣計算設備Atlas 500 的視頻結構化研究,可以使機器人具備前端智能,為機器人賦予“小腦”,實時分析前端探測設備采集數據,提高機器人對異常行為異常事件的響應處置能力,解決警用機器人實戰應用的“最后一公里”,助力警用機器人的普及推廣。

猜你喜歡
邊緣機器人智能
智能前沿
智能前沿
智能前沿
智能前沿
一張圖看懂邊緣計算
機器人來幫你
認識機器人
機器人來啦
在邊緣尋找自我
走在邊緣
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合