?

基于Sophon SC5+芯片構架的行人搜索算法與優化

2023-03-24 13:24孫杰吳紹鑫王學軍華璟
計算機應用 2023年3期
關鍵詞:三元組行人損失

孫杰,吳紹鑫,王學軍,華璟*

(1.浙江工商大學 計算機與信息工程學院,杭州 310018;2.深圳市星火電子工程公司,廣東 深圳 518001)

0 引言

行人重識別算法通過標注監控視頻圖像的行人來獲取圖像,但是預處理工作繁瑣,不適用于現實場景;并且一個單獨的行人重識別算法也不能滿足實際應用需求,可以通過行人搜索的思想解決該問題。行人搜索分為行人檢測與行人重識別兩個模塊。行人檢測任務從圖像集合或視頻集合中找到所有出現的行人,并分別對他們的位置進行定位和標注;行人重識別任務通過計算機視覺技術判斷目標行人是否存在于某段視頻或圖片中,主要解決跨攝像頭跨場景下行人的識別與檢索問題[1]。給定現實場景中的原始監控視頻或圖像,行人檢測技術完成每幀圖像的行人定位,生成候選行人圖像數據庫;再將目標行人圖像和候選行人圖像輸入行人重識別模塊進行特征提取與比對,完成相似度度量,最終獲取目標行人在原始監控視頻中存在的信息。

基于深度學習的檢測算法能學習到更有效的行人特征表示和相似度度量,相較于傳統算法,此類算法過程簡便,魯棒性和準確性較高。目前已經有越來越多的目標檢測技術用于行人檢測,Redmon等[2]提出的YOLOv3(You Only Look Once version 3)里程碑式地增加了多尺度檢測,提高了網絡對小物體的檢測準確率。Wang等[3]提出了引入神經網絡隱式知識學習的YOLOR(You Only Learn One Representation),該算法具備捕獲不同任務的物理意義的能力。Ge等[4]提出YOLOX,將解耦頭、數據增強、無錨點以及標簽分類等目標檢測領域的優秀進展與YOLO 進行巧妙的集成組合。

近年來,從有監督學習到半監督學習,以及面對復雜多變的場景,數據跨模態和端到端的行人重識別算法也開始成為研究關注的對象。Zeng等[5]提出分類聚層和難樣本挖掘三元組損失(Hard-batch Triplet Loss)相結合的偽標簽聚類算法,通過層次聚類,充分利用目標數據集中樣本間的相似性產生高質量的偽標簽,并提高了算法性能。He等[6]采用了Vison Transformer 作為骨干網絡提取特征,將圖像塊打亂后重組形成不同的局部表示,每個部分都包含多個隨機的圖像塊嵌入,并在網絡中嵌入了非視覺信息以學習更多不變的特征。Zhang等[7]提出多分辨率表征聯合學習(Multi-resolution Representations Joint Learning,MRJL)算法,充分利用高分辨率行人圖像中的細節信息和低分辨率圖像中的全局信息。

雖然當前的算法都具有較好的檢測效果和重識別能力,但也需要更多的計算需求和耗時,難以在確保準確性和實時性的同時將算法部署在硬件資源有限且功率預算緊張的設備上。降低模型計算強度、參數大小和內存消耗,并高效地部署于AI 芯片,是將行人搜索算法應用于生產中的必備環節,設計一個符合應用需求的行人搜索系統值得深入研究。為解決上述問題,本文圍繞提高行人檢測速度和行人重識別精度兩個方面展開理論研究和實驗證明,并基于Sophon SC5+人工智能芯片,對改進后的算法進行量化,將高性能行人搜索系統部署于實際場景中。本文主要工作如下。

1)在行人檢測算法上,使用GhostNet[8]優化YOLOv5 的主干網絡結構,替換原有的部分CBS 和C3 模塊,大幅度減少了模型的參數量;同時在主干網絡和頸部網絡中加入CBAM(Convolutional Block Attention Module)[9]增強網絡對行人重要信息的提取能力,在保證檢測精度的同時提升檢測速度。

2)在行人重識別算法上,使用一個負樣本對和兩個正樣本對緩解難樣本挖掘三元組損失[10]優化模糊的問題,并加入中心損失約束,進一步壓縮類內特征;再使用附加間隔交叉熵損失[11]進行組合,有效地使用融合損失優化網絡,以提高網絡的特征提取能力,加快網絡訓練。

3)將改進后的行人檢測和行人重識別算法在AI 芯片Sophon SC5+上進行量化和部署實驗,實現行人搜索系統。

1 行人檢測算法

1.1 基于Ghost模塊的重構模型網絡結構

YOLOv5 中使用了較多的CBS 和C3 模塊提取輸入圖像的特征,它們的結構如圖1 所示。其中,C3 模塊使用了多個殘差組件會導致特征冗余的問題產生。

圖1 YOLOv5中的CBS和C3模塊結構Fig.1 CBS and C3 module structure in YOLOv5

為了減少模型的計算量和參數量,使網絡更輕量化,使用Ghost 模塊替換YOLOv5 主干網絡中的部分CBS 和C3 模塊。目前大部分卷積操作都使用1×1 的逐點卷積方式降低維度,再通過深度卷積提取特征,而Ghost 模塊采用線性變換的方式生成特征圖,可以更有效地減少網絡的計算量,傳統卷積與Ghost 模塊的結構示意如圖2 所示。

圖2 傳統卷積生成特征圖和Ghost模塊生成特征圖Fig.2 Traditional convolution to generate feature maps and Ghost module to generate feature maps

普通卷積層生成n個特征圖,可以表示為如下形式:

其中:卷積輸入X∈Rc×h×w,c、h、w分別為輸入特征圖的通道、高度與寬度;f∈Rc×k×k×n代表n個大小為k×k×c的卷積核;b是偏置項。輸出特征圖Y∈Rn×k′×w′,n為輸出特征圖的通道數。整個卷積過程運算所需要的浮點運算量為n×h′×w′×c×k×k。在YOLOv5s 中,n和c通常為512 或1 024,導致計算量非常大。

Ghost 模塊的計算如式(2)所示:

其中:卷積輸入Y′∈Rm×h′×w′;m是經過普通卷積后得到的特征圖個數,由于m≤n,所以省略了偏置項;Yi′是Y′的第i個特征圖;φij是第i個特征圖生成第j個Ghost 特征映射的線性操作。此處普通卷積的浮點運算量為m×h′×w′×c×k×k。為保證空間尺度相同,通過式(2)生成n-m個特征圖。假設每個線性運算核為d×d,可以用理論加速比衡量Ghost的提升程度,如式(3)所示:

其中:d×d與k×k的大小相同,且s?c。最終Ghost 模塊的計算量是普通卷積的,且參數計算量也相似,可以從理論上證明Ghost 模塊的優越性。因此將YOLOv5 的主干網絡中的C3 和CBS 模塊替換為步長分別為1、2 的GhostBottleneck。

1.2 添加CBAM

CBAM 是高效的注意力機制,可無縫嵌入各種CNN,經過CBAM 之后生成的特征圖,可以提高特征在通道和空間上的聯系,有利于提取目標的有效特征。CBAM 主要由通道注意力模塊(Channel Attention Module,CAM)與空間注意力模塊(Spartial Attention Module,SAM)組成,在這兩個維度上對特征進行調整,以加強網絡的特征提取能力。如圖3 所示。

圖3 CBAM結構Fig.3 Stucture of CBAM

輸入的特征圖首先經過CAM,如圖3(a)所示,基于特征圖的寬高分別進行最大池化(MaxPool)和平均池化(AvgPool);兩個池化操作共享一個多層感知機(MultiLayer Perceptron,MLP),經過MLP 后分別輸出兩個特征向量進行相加;最后經過Sigmoid 激活函數δ得到通道權重,將權重與輸入特征圖相乘得到新的加權特征圖,完成通道注意力對原始特征的重新標定。計算如式(4)所示:

其中:W0和W1是MLP 中的兩層全連接層的權重參數。

通過SAM 對輸入的特征圖每個位置的所有通道進行最大池化和平均池化,得到兩個h×w×1 的特征圖并按照通道拼接。再使用7×7 的卷積核和Sigmoid 激活函數生成空間權重,然后與通道特征圖相乘,得到經過CBAM 后的最終特征,從通道和空間兩個維度上完成對特征圖的重標定:

因此基于上述思想,結合了Ghost 模塊的YOLOv5 雖然降低了模型的參數和計算量,但也會導致檢測精度降低。通過添加CBAM 可以在少量增加模型計算量和參數的基礎上,提高檢測效果,緩解精度下降問題。

本文在YOLOv5 中使用步長為2 的GhostBottleneck 替換原始主干網絡中的4 個C3 模塊,使用步長(Stride)為1 的GhostBottleneck 替換主干網絡中的部分CBS 模塊,并在主干網絡的末端和頸部網絡的3 個尺度特征模塊后面嵌入CBAM,總計5 個注意力機制模塊,并保留YOLOv5 中的其他結構,最終得到輕量級YOLOv5-GC 行人檢測模型如圖4 所示。新的網絡結構通過替換原來Bottleneck 中較多的3×3 標準卷積,降低了網絡的計算量,并提高了模型檢測速度;再通過添加CBAM 提高對行人檢測任務的準確率。

圖4 YOLOv5-GC網絡結構Fig.4 YOLOv5-GC network structure

2 行人重識別算法

2.1 改進的中心三元組損失約束

三元組損失[12]函數是行人重識別中常用的損失函數之一,其中的三元組由目標、正樣本、負樣本圖片組成。損失函數的目的是網絡訓練學習后使正樣本和目標圖片的特征表達距離更近,負樣本和目標圖片的特征表達距離更遠。

難樣本挖掘三元組損失[13]是三元組損失的改進版本,傳統的三元組損失是從訓練數據中隨機抽取三張圖片,雖然該方法比較簡單,但抽取的圖片大部分都是容易區分的樣本對,不利于網絡學習到更好的表征,因此最相似的負樣本和最不相似的正樣本是所需要的難樣本。對于每個輸入圖像,選取與它距離最遠的正樣本和距離最接近的負樣本構成三元組,并計算三元組距離,如式(6)所示:

其中:一個批次中的圖片數量N=M×K,M是從每個批量訓練組中挑選出的查詢行人數,每個行人對應有K張圖片;分別代表目標圖片、正樣本、負樣本的特征向量;α是正負樣本之間的閾值,控制不同行人ID 圖像之間的特征向量接近程度。

難樣本三元組損失在優化時可能會存在優化目標模糊的情況,如圖5 所示。圖5(a)是樣本在特征空間中的一種表示情況,Hard Negative 是距離最近的負樣本,Hard Positive 是距離最遠的正樣本,Nearest Positive 是距離最近的正樣本。經過難樣本三元組損失后,可能會出現圖5(b)所示的結果,屬于同一個行人的anchor 和最近正樣本之間的距離大于同一行人的Anchor 和最近負樣本之間的距離。

圖5 圖片在特征空間上的距離Fig.5 Distance of image in feature space

因此為了較好地緩解優化目標模糊的問題,在原有難樣本挖掘三元組損失的基礎上,使用一個負樣本對和兩個正樣本對進行改進,使圖片在特征空間上,anchor 最近正樣本和最遠正樣本的距離都小于最近負樣本的距離。此外,考慮到會有少量樣本特征沒有歸屬到本類中心,和其他類別特征重疊,這樣對行人重識別任務十分不利。因此在上述改進的基礎上,增加中心損失[13]約束項,驅使相同類別向各自類內中心聚集,使特征分布更加緊湊,以提高類內相似度。改進后的中心約束三元組損失計算如式(7)所示:

其中:α和β控制樣本對之間的相對距離;Cyi是第i個樣本所屬類別的中心特征;γ是平衡改進難樣本挖掘損失和中心損失的權重。

2.2 融合損失函數設計

網絡模型在同時訓練分類模型和驗證模型時,可以采用不同的損失函數。不同的損失函數雖然針對不同任務,但最終對樣本特征分布的約束相似,因此起到互補的作用。有效利用這種互補性可以對網絡產生較強約束,幫助網絡學習到魯棒性更強的行人特征,從而改善網絡的性能。

因此本文嘗試將附加間隔交叉熵損失[11]和改進后的中心約束三元組損失共同組合對模型進行監督優化。附加間隔交叉熵損失中引入了角間距,對類間距離的優化效果明顯,但由于類內約束不足,同類行人的特征分布仍比較分散。而中心約束三元組損失對有較強的類內約束能力,聚集相同類別的樣本,但由于每次僅可以利用一個batch 中的信息,神經網絡會隨著訓練、迭代,遺忘掉之前的信息,存在收斂困難的情況。融合附加間隔交叉熵損失后不僅可以加快收斂,在訓練時會同時考慮難樣本對和簡單樣本對,完全利用訓練集中所有行人圖片的標注信息。綜上所述,融合損失函數可以讓兩種損失之間優勢互補,提高網絡的特征提取能力,加快網絡訓練。融合損失函數如式(8)所示:

其中:cos(θyi)是計算樣本在類別yi中的區域;cos(θyi)-m表示要求不同類的行人區域之間至少有m的間隔。s(c os(θyi)-m)將cos(θyi)增大s-1 倍,由于cos (θyi)的取值范圍為[0,1],數值較小,無法有效區分不同類的差異,增大s倍之后,再通過Softmax 可以提高分布差異性,產生明顯的馬太效應,使收斂速度提升。

2.3 網絡結構

圖6 給出了本文行人重識別算法ReID(Person Re-IDentification)的網絡結構,將ResNet50 作為ReID 網絡中的基礎提取網絡,引入BNNeck(Batch Normalization Neck)[14]網絡結構的思想,經過批標準化(Batch Normalization,BN)層得到歸一化后的特征,在各個維度上獲得平衡,近似于在超球面附近分布,使分類損失更易收斂,從而緩解融合損失優化目標特征所在的空間差異導致損失優化方向不同的問題。并在ResNet50 中引入Non-local[15]注意力機制,通過加權得到非局部的響應值,構造了和特征圖尺寸一樣大小的卷積核,進而保留更多的行人特征。

圖6 ReID網絡結構Fig.6 Structure of ReID network

3 基于Sophon SC5+的模型部署

本文的行人檢測與行人重識別算法基于Pytorch 深度學習框架實現,為了將模型移植到SC5+上,需要把基于開源框架的模型轉換為BITMAIN TPU 平臺特有的bmodel 格式。bmodel 是面向比特大陸張量處理器((Tensor Processing Unit,TPU)的深度神經網絡模型文件格式,包括目標網絡的權重、TPU 指令流、輸入輸出等信息。因此首先需要將本文算法在圖形處理器(Graphics Processing Unit,GPU)的環境中訓練后,得到文件后綴為.pt 的模型,完成模型轉換后,以fp32 模型和int8 模型兩種格式部署到SC5+中。

現有的行人檢測和行人重識別算法,在訓練時往往都會使用fp32 的數據精度表示權值、偏置、激活值。如果使用深層次的網絡,參數和計算量就會大幅度增加,用于實際的視頻監控系統會面臨性能較差的問題。因此采用模型量化的方法,在保證一定精度的情況下,對模型的大小進行壓縮,以減少內存占用,加速前向推理。本文通過比特大陸自主開發的網絡模型量化工具Quantization-Tools 對fp32 模型進行量化。在Sophon SC5+運算平臺上,網絡各層輸入、輸出、系數都用8 bit 表示,在保證網絡精度的基礎上,大幅減少功耗、內存、傳輸延遲,提高運算速度。模型的量化步驟如圖7 所示。

圖7 中的int8_umodel 是通過量化生成的int8 格式的網絡系數文件,是作為臨時中間存在的文件形式。需要將該文件進一步轉換成可以在SC5+中執行的int8_bmodel 文件。經過int8 量化后的算法與原本在GPU 下的算法精度存在一定誤差。因此還需要對網絡的精度進行預檢測,比特大陸平臺提供了可視化分析工具calibration 來初步查看網絡的誤差,該工具使用平均絕對百分比誤差(Mean Absolute Percentage Error,MAPE)、余弦相似度(COsine Similarity,COS)和歐氏距離(DIST)作為誤差評價的標準,具體如式(9)~(11)所示:

圖7 模型量化為int8_bmodelFig.7 Quantizing model as int8_bmodel

其中:At代表實際值;Ft代表預測值;xi、yi分別表示特征向量。本文以YOLOv5-GC 算法為例,通過calibration 可視化分析工具生成如圖8 所示的量化誤差分析圖。

參考COS 曲線,在圖8(a)中,在模型最后輸出階段,曲線下滑得較為明顯,說明經過直接量化的int8 模型誤差較大。而圖8(b)中的混合量化執行在部分層使用定點計算,部分層使用浮點計算,有效提高了網絡的整體量化精度,因此COS 曲線較為平穩,近似于1,是本文所需要的量化模型。兩個量化后的int8 模型誤差較大,因為基于Pytroch 框架的網絡轉換之后的模型可能包含前處理和后處理相關的算子,對這些算子進行量化在很大程度上會影響網絡的量化精度,Sophon SC5+內部集成了浮點計算單元,因此可以高效地利用浮點計算,根據這個特點,在轉換int8_umodel 文件的命令行中,提供了標記前處理、后處理相關的層,并允許這些層以浮點形式計算,有效提高網絡的整體量化精度,使轉換后的模型精度與原有算法不會產生較大誤差。

圖8 量化誤差分析圖Fig.8 Quantitative error analysis diagram

4 實驗與結果分析

4.1 實驗設置

為驗證本文行人重識別和行人檢測算法的有效性,采用COCO[16]、Market-1501[17]、DukeMTMC-ReID[18]數據集進行實驗。COCO 數據集進行了預處理,只提取行人圖片,訓練集包含行人圖片64 115 張,行人數量為257 252;測試集包含圖片數量2 693 張,行人數量11 004。Market-1501 數據集共收集了1 501 個行人的32 688 張身份標注的行人圖片。DukeMTMC-ReID 包含來自不同視角的行人1 812 個。實驗運行環境為Ubuntu18.04 和Pytorch1.8,硬件平臺使用的GPU 為2080Ti,AI 芯片為Sophon SC5+,內存為64 GB。

行人檢測部分設置圖片的輸入分辨率為640×640,Batchsize 為64,共訓練300 個epoch。行人重識別部分設置圖片的輸入分辨率為256×128,Batchsize 為64,共訓練120 個epoch。

4.2 實驗評價指標

為了保證對比實驗的客觀性,采用平均精度均值(mean Average Precision,mAP)、幀率、Rank-k指標進行評價。mAP 用于評價檢測模型的平均準確率均值:

其中:M為圖像總數;P為精度;IAP表示平均檢測精度(Average Precision,AP),mAP 是所有類別的平均精度。由于本文行人檢測中只有行人這一類目標,所以AP 值與mAP 值相等。一般來說行人檢測模型的性能越好,mAP 值越大,模型精度越高。

Rank-k表示在算法測試階段,對于查詢目標行人query,在候選集(gallery)中對圖片提取特征后根據相似度高低進行排序,若最靠前的k張圖片中包含query 行人,則正確匹配的概率。k一般取值為1、5 或者10。以Rank-1 為例,表示在提取的query 特征和gallery 特征計算特征距離后,正確的目標行人排在首位的準確率,如式(13)所示:

其中:n是待查詢行人圖像的總數;i是第i個查詢對象,Si表示若第i個查詢行人對應的首位排序是同一個行人的話,則識別成功Si=1;否則Si=0。

4.3 行人檢測實驗

4.3.1 消融實驗

為了驗證本文行人檢測算法(YOLOv5-GC)的有效性,對不同模塊在YOLOv5s 上的作用進行對比實驗。為了驗證改進效果對不同深度的YOLOv5 的影響,加入了原始YOlOv5l和YOLOv5l-Ghost 進行對比實驗,結果如表1 所示??梢钥闯?,將YOLOv5s 的網絡主干替換為Ghost 模塊時,使原先復雜的卷積操作更輕量化,YOLOv5s 的模型大小降低了3.9 MB,但由于包含重要信息的網絡參數減少,也會使平均精度會下降。YOLOv5s 在添加CBAM 后,盡管模型參數量會增大,但檢測速度變化較小,并且精度也有所提升,達到了82.9%。而同時添加兩個模塊的YOLOv5s-GC 網絡,相較于初始的YOLOv5s,模型大小減少了3.7 MB,在GPU 上的推理時間也從5.3 ms 降低到了4.9 ms,并且相較于YOLOv5s-Ghost,mAP 也提升了1.1 個百分點。此外,YOLOv5l 在加入Ghost 模塊后,模型大小相較于原始YOLOv5l 降低了47%。對加入CBAM 注意力機制的行人檢測模型進行可視化分析,如圖9 所示。

圖9 檢測結果示意圖Fig.9 Schematic diagram of detection results

表1 各模塊對行人檢測算法的影響Tab.1 Influence of each module on person detection algorithm

可以看到YOLOv5s-ghost 在添加注意力模塊之后,對圖片中行人被干擾背景遮擋導致的漏檢問題,有一定的改善。本文結合Ghost 模塊和CBAM 模塊構造的YOLOv5s-GC,在大幅度減少計算量、參數量和模型大小的情況下也保持了較高的mAP,并且隨著網絡的深度增加,輕量化效果也更明顯。

4.3.2 與YOLO其他算法的對比實驗

將YOLOv5s-GC 與其他主流檢測算法進行比較,以進一步驗證算法的可行性,結果如表2 所示。

表2 YOLOv5s-GC與其他YOLO算法對比實驗結果Tab.2 Comparison of experimental results between YOLOv5s-GC and other YOLO algorithms

可以看出,在主流的行人檢測算法中,雖然YOLOv4-tiny的幀率最高,但它的mAP 精度較低。本文的YOLOv5s-GC 的mAP 比YOLOv4-tiny 高出35.7 個百分點,并且模型大小減小了54.7%。YOLOv5s-GC 的mAP 相較于其他YOLO 算法最多提高了43.8 個百分點。實驗結果表明,本文改進的行人檢測算法可以應用到行人搜索任務的現實場景中,并且比原有的YOLOv5 更輕量化。

4.4 行人重識別實驗

4.4.1 消融實驗

表3 列出了在Market-1501 和DukeMTMC-reID 數據集上使用行人重識別算法(ReID)的消融實驗結果,Baseline 為BagTricks[14]??梢钥闯?,將Baseline 中的Softmax 替換為附加間隔交叉熵損失(LAMS),LAMS進一步增大類間距離,縮小類內距 離,在Market-1501 上Baseline+LAMS的mAP 和Rank-1分別提 高0.4 和0.1 個百分 點。在Market-1501 上,Baseline+L的mAP 和Rank-1 分別提高了0.6 和0.2 個百分點,說明聯合兩個損失函數訓練有效。此外本文在Baseline 上加入Non-local注意力機制,可以看出在Market-1501 數據集上,mAP 和Rank-1 分別提升了1.1 和0.4 個百分點,說明Non-local 進一步提升了主干網絡提取行人特征的能力。將所有方法整合后,在Market-1501 數據集上,ReID 的mAP 和Rank-1 相較于Baseline 分別提高了1.5 和0.6 個百分點,另外在DukeMTMC-ReID 數據集上,ReID 仍然有較好的效果。

表3 消融實驗結果 單位:%Tab.3 Results of ablation experiment unit:%

4.4.2 與其他算法的對比實驗

表4 列出了ReID 和近幾年主流的行人重識別算法在Market-1501 和DukeMTMC-ReID 數據集下的對比實驗結果。對比算法包括:ACRN(Attribute-Complementary Re-ID Net)[22]、SVDNe(tSingular Vector Decomposition Net)[23]、MMT-500(Mutual Mean-Teaching)[24]、GPR(Generalizing Person Re-identification)[25]、ConsAtt[26]、PCB-RPP(Part-based Convolutional Baseline with Refined Part Pooling)[27]、PPS(Part Power Set)[28]與BagTricks。

表4 不同行人重識別算法的對比實驗結果 單位:%Tab.4 Comparison of experimental results of different person re-identification algorithms unit:%

與MMT-500 和GPR 這類無監督的行人重識別算法相比,基于監督學習的算法效果上會更好。在Market-1501 數據集上,雖然ReID 的Rank-1 相較于ConsAtt 算法降低了1 個百分點,但ReID 的mAP 提高了2.7 個百分點,說明ReID 對mAP 的影響更大。SVDNet 算法對全連接層進行奇異值分解,提高了檢索性能,但需要人工操作的地方較多。PCBRPP 算法結合了分塊特征,而ReID 在僅提取全局特征的情況下,在Market-1501 數據集上的mAP 與Rank-1 提高了5.8和1.3 個百分點。綜上所述,在本文提出的融合損失函數的約束下,ReID 可以較好地壓縮類內特征,在兩個數據集上都表現出較好的性能,mAP 最多提高了25.7 個百分點。

4.4.3 超參數設置

本文提出的中心約束三元組損失有3 個超參數,分別是α、β與γ。文獻[14-29]已經充分討論了平衡權重,因此設置γ=5× 10-4。本文選取不同的α和β在兩個數據集上進行實驗,結果如表5 所示。從表5 中可以看出α和β的值對實驗結果存在一定影響,設置α=0.3,β=0.7,對本文算法會有較好的效果。

表5 不同參數的性能對比 單位:%Tab.5 Performance comparison of different parameters unit:%

4.5 Sophon SC5+實驗

在將模型量化后,還需要將量化后的模型加載到TPU 上執行。由于行人搜索算法涉及到兩個不同模型的推理,預處理到后處理之間的步驟需要反復多次執行。在實際的應用開發中,只針對神經網絡的運算進行加速,無法滿足真實安防場景下的需求。因此比特平臺提供了若干硬件加速模塊以及相應的軟件接口庫,分別針對以上步驟進行加速,提高算法運行效率。不同算法量化后的模型結果比較如表6 所示,實驗中設置推理的批處理大小為1,Sophon SC5+只使用一個BM1684 芯片,推理時間為平均推理時間。

由表6 中的數據可知,將NVIDIA 2080Ti 顯卡下訓練出的模型轉換到fp32_bmodel,能有效地保證算法的精度不變。雖然轉換成fp32 之后,部分模型的大小會有少量增加,但模型在Sophon SC5+下的推理時間更短。YOLOv5s-GC 在轉換bmodel 中,需要將YOLOv5 算法export 成torchscript,才 能進行量化部署,所以相較于GPU 下訓練的模型,初始的模型更大。YOLOv5s-GC 的fp32 模型的平均推理時間相較于在2080Ti 下訓練的模型,縮短了0.8 ms;基于融合損失的ReID模型的平均推理時間比在2080Ti 下訓練的模型少1.3 ms。

表6 不同算法量化后的結果比較Tab.6 Comparison of results after quantization by different algorithms

將模型進一步量化為int8_bmodel 后,只使用int8 量化的模型,如MMT 算法,相較于原始模型,模型大小減小了74.3%。此外,為了保證精度的誤差范圍,對于一些較為復雜的網絡,需要采用混合執行的方式進行量化,如Fast-ReID算法,混合量化后Fast-ReID 的模型大小縮小了44.5%左右。且各個算法轉換成int8_bmodel 之后的平均推理時間,也比在GPU 和fp32 下的平均推理時間更短,模型也更輕量化。

本文的融合損失的ReID 模型在int8 下的推理時間相較于2080Ti 訓練的模型少4.5 ms。雖然相較于fp32 下的模型,mAP 下降了1.7 個百分點,但是模型容量減小了74.4%。且一張SC5+卡包含3 個BM1684 芯片,為算法現場場景應用提供了高計算、低成本的方案,由此可以證明AI 芯片Sophon SC5+對算法的現實應用有很高的價值。最后,本文將上述的改進方法,在Sophon SC5+上進行部署,完成行人搜索系統的實現,可視化的結果如圖10 所示。圖10(a)表示從監控攝像機中以目標對象的單張截圖為查詢條件,查找區域內所有視頻中目標對象;圖10(b)表示針對搜索的目標結果,點擊任一結果圖片,播放對應時間的監控視頻。

圖10 行人搜索結果示意圖Fig.10 Schematic diagram of person search results

5 結語

本文首先分析了在智能視頻監控下行人搜索算法存在的問題,并基于這些問題提出了使用Ghost 模塊和CBAM,使算法模型的精度保持在一定范圍內,而模型計算量大幅下降,速度更快。針對行人重識別中難樣本挖掘三元組損失存在的目標模糊和聚類不足的問題,引入中心損失函數,并融合附加間隔交叉熵損失,使行人重識別算法在訓練時,能較好地壓縮類內特征。將改進模型部署在Sophon SC5+人工智能芯片上,驗證量化后的模型的速度和大小都有較大優勢。從算法到硬件,自上而下地優化深度學習的效率,符合行人搜索系統低成本高性能的需求。在下一步的研究中,可以從處理行人服裝更換和室內外場景變化下的行人重識別入手,通過姿態估計或骨架關鍵點檢測輔助提取行人可見信息,提高匹配的準確率;還可以建立基于端到端聯合建模優化的行人搜索模型,并部署到Sophon 芯片上,以減輕兩階段模型對邊界框生成這一額外步驟的依賴。

猜你喜歡
三元組行人損失
胖胖損失了多少元
特征標三元組的本原誘導子
毒舌出沒,行人避讓
關于余撓三元組的periodic-模
路不為尋找者而設
玉米抽穗前倒伏怎么辦?怎么減少損失?
我是行人
基于三元組的擴頻碼構造及其性能分析
一般自由碰撞的最大動能損失
損失
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合