林詩妍,劉宇翔,魏宏安
(福州大學(xué)物理與信息工程學(xué)院,福建 福州 350108)
高空拋物也被稱為“懸在城市上空的痛”,是一種嚴(yán)重威脅公共安全的行為.由于拋物物體的高處釋放,其速度和沖擊力巨大,一旦擊中行人、車輛或建筑物,將導(dǎo)致嚴(yán)重的人身和財產(chǎn)損失,這種不負(fù)責(zé)任的行為不僅給受害者帶來巨大痛苦,也給社會帶來恐慌和不安全感.但進(jìn)行高空拋物巡查需要投入足夠的人力來巡查和監(jiān)控潛在的危險區(qū)域,并且巡查范圍廣泛,需要對多個區(qū)域進(jìn)行巡查.這增加了巡查任務(wù)的復(fù)雜性和耗時性,同時也增加了發(fā)現(xiàn)高空拋物的難度.因此,引入計算機(jī)視覺監(jiān)測技術(shù)來加強(qiáng)監(jiān)管迫在眉睫.
計算機(jī)視覺監(jiān)測在高空拋物檢測中已經(jīng)被廣泛采用,主要使用目標(biāo)檢測技術(shù)來自動識別高空拋物行為.這些目標(biāo)檢測技術(shù)主要包括基于深度學(xué)習(xí)的方法,在一定程度上解決了傳統(tǒng)手工提取特征難的問題,使得系統(tǒng)更加自動化和智能化.然而,當(dāng)前的計算機(jī)視覺監(jiān)測系統(tǒng)仍然面臨一些新問題.首先,由于采用深度學(xué)習(xí)等復(fù)雜算法,計算復(fù)雜度較高,需要更強(qiáng)大的硬件資源來支撐系統(tǒng)的運(yùn)行,這可能導(dǎo)致系統(tǒng)投入成本增加,尤其是在需要大規(guī)模監(jiān)控的場景下.其次,由于高空拋物行為通常是不規(guī)律和隨機(jī)的,監(jiān)測系統(tǒng)在大部分時間可能處于空閑狀態(tài),這會導(dǎo)致資源浪費(fèi)和運(yùn)行效率低下,因此這些問題成為當(dāng)前研究的重點(diǎn).
一種解決方案是將復(fù)雜的任務(wù)集中到云端處理,以減輕終端設(shè)備的計算壓力.但隨著萬物互聯(lián)時代的到來,終端設(shè)備數(shù)量的增加,集中式的云計算模式無法負(fù)擔(dān)海量數(shù)據(jù)的存儲和處理.當(dāng)前基于深度學(xué)習(xí)的視覺任務(wù)帶來高復(fù)雜度的計算,終端設(shè)備的計算能力有限,并且也難以滿足數(shù)據(jù)處理實(shí)時性、安全性以及能耗方面的需求.為了應(yīng)對移動設(shè)備日益增長的數(shù)據(jù)處理需求,以及物聯(lián)網(wǎng)應(yīng)用需要的低延遲、高帶寬、高性能的計算服務(wù),邊緣計算應(yīng)運(yùn)而生.
本文針對當(dāng)前高空拋物行為監(jiān)測難度大,取證困難等挑戰(zhàn),設(shè)計了一種基于魚眼相機(jī)邊緣計算的實(shí)時性拋物動目標(biāo)檢測系統(tǒng).主要可以分為視頻采集、動目標(biāo)檢測和目標(biāo)識別3個模塊,其中視頻采集模塊和動目標(biāo)檢測模塊位于系統(tǒng)終端.視頻采集模塊的監(jiān)控端能夠采集到被檢測樓房的全貌信息,并對采集到的視頻進(jìn)行預(yù)處理;目標(biāo)檢測模塊算法可以檢測到大小、形狀以及種類不確定的被拋物體;放置在邊緣端的目標(biāo)識別模塊基于深度學(xué)習(xí)對檢測視頻序列進(jìn)一步精確識別物體.本文主要貢獻(xiàn)如下:
(1)設(shè)計了一個高空拋物檢測系統(tǒng),旨在有效應(yīng)對高空拋物行為帶來的安全隱患.系統(tǒng)可以自動識別高空拋物行為,為城市安全提供強(qiáng)有力的保障.
(2)使用魚眼相機(jī)作為移動端,將視頻監(jiān)控的視野范圍擴(kuò)大,確保全方位對高空拋物行為進(jìn)行鎖定,進(jìn)一步提高系統(tǒng)的覆蓋能力和準(zhǔn)確性.
(3)為了進(jìn)一步提高系統(tǒng)的效率和節(jié)省成本,引入邊緣計算技術(shù)對圖像在終端進(jìn)行校正和初步排查,并將深度學(xué)習(xí)目標(biāo)識別任務(wù)遷移至邊緣服務(wù)器端,旨在有效減輕終端的計算負(fù)擔(dān),提高系統(tǒng)的實(shí)用性和可擴(kuò)展性.
動目標(biāo)檢測是圖像處理和計算機(jī)視覺領(lǐng)域的基礎(chǔ)性算法,在視頻監(jiān)控領(lǐng)域有著舉足輕重的地位.其主要原理是對視頻圖像中發(fā)生變化部分的分離,基于幾何和統(tǒng)計特征的圖像分割,主要目的在于從視頻圖像中提取出運(yùn)動目標(biāo)并獲得其特征信息.根據(jù)動目標(biāo)檢測算法特點(diǎn)可將其分為3類:背景減法[1]、幀差法[2]、光流法[3].光流法是物體在運(yùn)動時圖像亮度模式的表觀運(yùn)動,即空間物體表面上的點(diǎn)的運(yùn)動速度在視覺傳感器的成像平面上的表達(dá),當(dāng)目標(biāo)區(qū)域運(yùn)動時,計算圖像幀的光流場,具有相同光流向量的區(qū)域,其運(yùn)動模式也相同,則可以看作一個運(yùn)動目標(biāo),達(dá)到將運(yùn)動目標(biāo)分割出來的目的;幀差法是常用的運(yùn)動目標(biāo)檢測和分割方法之一,即利用視頻流幀序列中的前后兩幀或者當(dāng)前視頻幀與前某視頻幀的差分來計算當(dāng)前圖像幀中的運(yùn)動目標(biāo)區(qū)域;背景差法是通過將當(dāng)前幀與定義的背景幀的差分計算運(yùn)動目標(biāo)區(qū)域[4].
其中,光流法由于計算量較大,難以達(dá)到實(shí)時性,而且噪聲、多光源、陰影和遮擋等因素都會對光流場分布的計算結(jié)果造成嚴(yán)重影響,同時稀疏的光流場很難精確提取運(yùn)動目標(biāo)的形狀,所以不適合適用于視頻監(jiān)控系統(tǒng);背景差法由于外界環(huán)境變化頻繁,會造成結(jié)果受外界環(huán)境影響而引入大量噪聲,影響檢測結(jié)果[5];幀差法具有算法簡單、計算復(fù)雜度較低、實(shí)時性強(qiáng)等優(yōu)點(diǎn),并且由于誤差和噪聲在相鄰幀之間位置相近,系統(tǒng)誤差和噪聲對檢測結(jié)果影響不大.此外,由于相鄰幀的時間間隔非常短,幀差法對光照有一定抗干擾能力.經(jīng)過分析,結(jié)合視頻監(jiān)控場景的特有屬性以及系統(tǒng)實(shí)時性要求,本文選擇使用幀差法進(jìn)行拋物檢測.3種動目標(biāo)檢測算法的比較如表1所示.
表1 動目標(biāo)檢測算法比較Tab.1 Comparison of moving target detection algorithms
目標(biāo)識別技術(shù)的發(fā)展可以追溯到20世紀(jì)50年代,在那個時期,目標(biāo)識別主要依賴于手工設(shè)計的特征提取器,例如SIFT[6]、HOG[7]等.這些方法能夠從圖像中提取局部特征,并將其用于目標(biāo)檢測、模板匹配等任務(wù).然而,由于手工設(shè)計的特征提取器局限于人為經(jīng)驗(yàn),難以適應(yīng)復(fù)雜多變的目標(biāo)場景.隨著時間的推移,目標(biāo)識別算法不斷進(jìn)化.到了20世紀(jì)70年代,出現(xiàn)了以統(tǒng)計建模為代表的算法,如K-means聚類、K近鄰分類器、支持向量機(jī)(SVM)等,這類方法利用大量數(shù)據(jù)進(jìn)行特征學(xué)習(xí)和迭代訓(xùn)練,實(shí)現(xiàn)對目標(biāo)的分類和識別.雖然這些算法在一定程度上提高了目標(biāo)識別的準(zhǔn)確性,但仍然存在對特征提取的依賴,且在復(fù)雜場景下效果有限.在20世紀(jì)末,出現(xiàn)了一些基于機(jī)器學(xué)習(xí)的目標(biāo)識別方法,如主成分分析(PCA)、線性判別分析(LDA)、隱馬爾科夫模型(HMM)等[8].這些方法在一些特定場景下取得了不錯的效果,但對于大規(guī)模復(fù)雜的目標(biāo)識別任務(wù)仍存在局限性.
隨著物聯(lián)網(wǎng)時代的到來,目標(biāo)識別算法在人們生活中已經(jīng)成為不可或缺的一部分,不僅能節(jié)省人力,也能大幅度提高工作效率.新的目標(biāo)識別算法不斷涌現(xiàn),也在一定程度上推動了智能視頻監(jiān)控領(lǐng)域的蓬勃發(fā)展.當(dāng)前深度學(xué)習(xí)已經(jīng)成為目標(biāo)識別的主流方法,其中卷積神經(jīng)網(wǎng)絡(luò)是應(yīng)用最廣泛的模型.目前主流的目標(biāo)識別算法主要分為基于分類器和檢測框的two-stage算法和基于回歸的one-stage算法,前者有RCNN[9]、Fast RCNN[10]、Faster RCNN[11]等,而SSD[12]、YOLO[13]則為one-stage算法中的代表,其能在保證較高的準(zhǔn)確率的同時擁有更低的時間和硬件損耗,具有更大實(shí)用性和廣泛性.深度學(xué)習(xí)的優(yōu)勢在于能夠自動從數(shù)據(jù)中學(xué)習(xí)特征表示,從而解決了傳統(tǒng)方法中手工設(shè)計特征的瓶頸.此外,深度學(xué)習(xí)算法還能夠逐層抽象和處理圖像信息,有效地提取高級語義特征,提高了目標(biāo)識別的精度和魯棒性.
邊緣計算是一種新型的計算模式,其核心思想是“計算要更靠貼近用戶”,旨在將存儲、計算能力從云數(shù)據(jù)中心遷移到距離數(shù)據(jù)較近的邊緣一側(cè),可支持在網(wǎng)絡(luò)邊緣端處理大型深度學(xué)習(xí)模型,避免了視覺任務(wù)從網(wǎng)絡(luò)邊緣到遠(yuǎn)距數(shù)據(jù)處理中心的網(wǎng)絡(luò)延遲,達(dá)到實(shí)時性的視覺應(yīng)用要求.邊緣計算并不是為了取代云計算,而是對云計算的一種擴(kuò)展補(bǔ)充,在解決設(shè)備本身資源的缺陷的同時,也減少了需要傳送云端的數(shù)據(jù)量,緩解網(wǎng)絡(luò)帶寬的壓力.
邊緣計算最直接的方法就是終端設(shè)備將其數(shù)據(jù)發(fā)送到附近的邊緣服務(wù)器,并在服務(wù)器處理后接收相應(yīng)的結(jié)果[14].Vigil[15]是一個實(shí)時無線監(jiān)控系統(tǒng),它在邊緣計算節(jié)點(diǎn)上執(zhí)行處理,以智能地選擇幀進(jìn)行分析.相比傳統(tǒng)的視頻流上云的方法,Vigil在與攝像頭和云位于同一位置的邊緣計算節(jié)點(diǎn)之間智能分區(qū)視頻處理,可以減少帶寬消耗.在Wang等[16]提出的用于物聯(lián)網(wǎng)中射頻傳感的通用深度學(xué)習(xí)框架中,將DNNs卸載到邊緣服務(wù)器來分析無線信號.類似地,Glimpse[17]也將所有的DNN計算部署到附近的邊緣服務(wù)器.
為了滿足當(dāng)前用戶數(shù)據(jù)公共安全隱患的需求,解決終端設(shè)備在資源受限、計算性能等方面存在的不足,需要對動目標(biāo)檢測系統(tǒng)進(jìn)行必要的改進(jìn),提高數(shù)據(jù)處理的實(shí)時性,緩解云中心的計算壓力.此外,為了能準(zhǔn)確高效地提取高價值的數(shù)據(jù)信息,還需在邊緣端對視頻數(shù)據(jù)進(jìn)一步處理.因此,針對實(shí)時拋物動目標(biāo)檢測系統(tǒng),本文選擇了終端和邊緣服務(wù)器相結(jié)合的邊緣計算架構(gòu).
系統(tǒng)總體框架如圖1所示.終端設(shè)備是部署在公共場所、建筑物和工地等需要進(jìn)行高空拋物檢測的位置的計算設(shè)備,通常為嵌入式系統(tǒng),具備一定的計算能力.終端設(shè)備通過魚眼相機(jī)擴(kuò)大視頻監(jiān)控視野,負(fù)責(zé)實(shí)時采集視頻流并進(jìn)行處理.然而,由于魚眼相機(jī)產(chǎn)生畸變,影響了動目標(biāo)檢測的準(zhǔn)確率.為解決此問題,在終端設(shè)備上進(jìn)行畸變矯正和動目標(biāo)檢測,實(shí)時結(jié)構(gòu)化分析視頻并尋找運(yùn)動目標(biāo)軌跡,并將可能為高空拋物事件的圖片視頻傳輸至邊緣端.
圖1 系統(tǒng)總體框架Fig.1 General framework of the system
邊緣服務(wù)器基于深度學(xué)習(xí)算法對經(jīng)過初步動目標(biāo)檢測的視頻序列進(jìn)行識別,過濾掉誤識別事件,例如樹葉、飛蟲等.一旦識別到有垃圾被拋下,小區(qū)管理平臺將立即觸發(fā)告警.將初步動目標(biāo)檢測和預(yù)處理部署至終端,可在本地快速處理數(shù)據(jù),并將關(guān)鍵信息傳輸?shù)竭吘壏?wù)器進(jìn)行深度學(xué)習(xí)推理,從而降低網(wǎng)絡(luò)傳輸延遲,提高實(shí)時性和系統(tǒng)性能.邊緣服務(wù)器負(fù)責(zé)對實(shí)時性、計算能力要求較高的目標(biāo)識別任務(wù)進(jìn)行處理,通過深度學(xué)習(xí)算法進(jìn)一步精確識別物體,以獲得更高質(zhì)量的服務(wù)體驗(yàn).該系統(tǒng)架構(gòu)有效利用了邊緣計算的優(yōu)勢,將處理任務(wù)分配到終端設(shè)備和邊緣服務(wù)器,優(yōu)化了計算資源的利用,提高了高空拋物檢測系統(tǒng)的效率和準(zhǔn)確性.
魚眼相機(jī)在拍攝過程中會使圖像產(chǎn)生畸變,拍攝后需要對圖像進(jìn)行畸變矯正.相比于其他方法,基于棋盤格標(biāo)定法的相機(jī)畸變矯正具有精確性、簡便性、可靠性和廣泛應(yīng)用性,能夠滿足實(shí)時拋物動目標(biāo)檢測系統(tǒng)對于高質(zhì)量圖像的要求,并為系統(tǒng)提供更準(zhǔn)確的圖像數(shù)據(jù).本文使用OpenCV中的魚眼矯正模塊對采集到的視頻進(jìn)行矯正,模塊使用的是Kannala提出的魚眼相機(jī)的一般近似模型[18],該模型基于等距投影模型而提出.圖2顯示的是用于實(shí)驗(yàn)的棋盤格標(biāo)定圖.
圖2 棋盤格標(biāo)定示例圖Fig.2 Checkerboard calibration map
利用OpenCV尋找棋盤格中的角點(diǎn)位置[19],角點(diǎn)后將以一定的順序排列,并進(jìn)行棋盤格角點(diǎn)的繪制.圖3顯示的是棋盤格圖繪制前后的對比圖.
圖3 角點(diǎn)繪制前后對比圖Fig.3 Comparison of before and after corner plotting
相機(jī)標(biāo)定的目的是得到魚眼相機(jī)的內(nèi)外參以及畸變系數(shù).函數(shù)在求出相機(jī)參數(shù)后利用ceres進(jìn)行優(yōu)化[20],再利用優(yōu)化后的內(nèi)外參以及畸變參數(shù)矯正整幅圖像.經(jīng)過魚眼相機(jī)標(biāo)定,成功獲得本文使用的魚眼相機(jī)的內(nèi)參和畸變參數(shù).計算得出的相機(jī)內(nèi)參矩陣K和畸變參數(shù)矩陣D如下所示:
(1)
(2)
上述參數(shù)對于后續(xù)的圖像校正非常關(guān)鍵,利用這些參數(shù)可進(jìn)行無畸變和修正轉(zhuǎn)換映射計算,并得到映射結(jié)果.最后,通過應(yīng)用這些映射,成功獲得經(jīng)過校正的視頻圖像.圖4展示了原始圖像和校正后圖像的對比,圖4中清晰顯示該矯正算法的有效性.本文通過去除魚眼相機(jī)造成的圖像畸變問題,提高了后續(xù)目標(biāo)檢測的準(zhǔn)確性.
圖4 畸變矯正前后對比圖Fig.4 Aberration correction comparison chart
對于經(jīng)過校正的圖像視頻序列,采用動態(tài)目標(biāo)檢測技術(shù)進(jìn)行初步排查,以識別并定位可能存在的移動目標(biāo).在終端上執(zhí)行這一過程,使得高空拋物檢測系統(tǒng)能夠在終端設(shè)備上進(jìn)行實(shí)時快速的數(shù)據(jù)處理.并且終端設(shè)備的計算能力和存儲資源相對較小,僅將關(guān)鍵的初步處理放在終端可以更好地適應(yīng)不同規(guī)模和需求的系統(tǒng)部署,優(yōu)化了系統(tǒng)性能和可擴(kuò)展性.
2.3.1 動目標(biāo)檢測技術(shù)
幀差法是在視頻序列中快速提取多運(yùn)動目標(biāo)的算法,主要用于相鄰幀之間,其基本思想是通過當(dāng)前幀與相鄰幀之差,以此判斷物體運(yùn)動.幀差法主要分為兩幀差分法和多幀差分法.幀差法具體步驟如下:
首先,將第k幀灰度圖像fk(x,y)和第(k-1)幀灰度圖像fk-1(x,y)相減得到差分圖像,并取絕對值,如式(3)所示:
D(x,y)=|fk(x,y)-fk-1(x,y)|.
(3)
進(jìn)而通過OTSU算法[21]獲得適當(dāng)?shù)拈撝?前景像素指的是將圖像種差分結(jié)果大于閾值的點(diǎn)視為運(yùn)動目標(biāo),背景像素指差分結(jié)果小于閾值的部分.在理想狀態(tài)下,差分運(yùn)算能保留前景像素,除去背景像素.為了更好監(jiān)測各種不同場景的視頻圖像,需要選用合適的閾值對灰度圖像進(jìn)行二值轉(zhuǎn)換,以消除噪聲干擾:
(4)
其中,T為預(yù)先設(shè)定的閾值,若選取閾值過大,則檢測目標(biāo)可能會出現(xiàn)目標(biāo)運(yùn)動區(qū)域空洞或漏檢現(xiàn)象;若閾值選取過小,將會出現(xiàn)大量噪聲.當(dāng)(x,y)差分結(jié)果小于閾值T時,像素值為0即代表背景像素.當(dāng)兩幀之間的差異大于或等于T時,像素值為255代表前景像素.最后將聚集前景點(diǎn)的區(qū)域作為目標(biāo)區(qū)域[21].
兩幀差法同時具備兩個缺點(diǎn):
(1)檢測到的目標(biāo)內(nèi)部存在空洞、漏檢.從幀差法公式可以看出,如果物體勻速運(yùn)動,幀差法得到的運(yùn)動目標(biāo)會比較一致,但當(dāng)物體加速或減速時,可能會產(chǎn)生漏檢現(xiàn)象.并且因?yàn)橄噜弾g時間間隔非常短,導(dǎo)致相鄰幀中的移動物體具有重疊區(qū)域.重疊區(qū)域上個點(diǎn)的灰度差值小于閾值,因此會被誤認(rèn)為背景,導(dǎo)致移動物體內(nèi)部出現(xiàn)空洞.
(2)無法有效檢測得到物體的輪廓.因?yàn)閮蓭g的運(yùn)動目標(biāo)變化不能反映在目標(biāo)的邊界,提取到的目標(biāo)區(qū)域就會輪廓模糊.
這兩個缺陷影響了幀差法運(yùn)動物體檢測的準(zhǔn)確性.為解決上述兩個缺點(diǎn),有學(xué)者提出三幀差法.三幀差法充分考慮了運(yùn)動像素的時間相關(guān)性,對動態(tài)監(jiān)測比較敏感,對隨機(jī)噪聲也有很好的抑制作用[22],檢測結(jié)果優(yōu)于兩幀差法,可以避免“空洞現(xiàn)象”.但其需要根據(jù)經(jīng)驗(yàn)選取最合適的閾值[23].本文使用三幀差法,其關(guān)鍵在于選取合適的閾值對圖像進(jìn)行二值化變換.
圖5為三幀差法原理框圖,具體過程如下:
圖5 三幀差法算法原理框圖Fig.5 Block diagram of the three-frame difference algorithm
首先,由式(3)可知,對連續(xù)的三幀圖像進(jìn)行差分,可得到兩個差分圖像,即k-1幀與k-2幀的差分圖像和k幀與k-1幀差分圖像;其次,分別通過選定與之對兩個差分圖像通過式(4)進(jìn)行閾值化處理,得到對應(yīng)二值化前景圖像Dk(x,y)和Dk+1(x,y);最后,通過式(5)可知,兩個二值化前景圖像通過“與”運(yùn)算,得到運(yùn)動目標(biāo)圖像Sk(x,y).
Sk(x,y)=Dk(x,y)∩Dk+1(x,y).
(5)
通過幀差法進(jìn)行差異分析,能夠精確鎖定運(yùn)動軌跡,并輸出經(jīng)過處理的視頻序列,以提醒相關(guān)人員.為了進(jìn)行更進(jìn)一步的目標(biāo)識別,這些視頻序列將被傳輸至邊緣服務(wù)器端.
考慮到高空拋物視頻場景的背景復(fù)雜性和目標(biāo)尺寸較小,本課題選擇采用先進(jìn)的YOLOv5模型進(jìn)行目標(biāo)檢測.本文利用邊緣端的計算資源,運(yùn)用YOLOv5模型來進(jìn)行視頻序列的檢測工作.相較于傳統(tǒng)的目標(biāo)檢測算法,YOLOv5具有更快的檢測速度和更好的檢測精度,不僅可以進(jìn)行高空拋物目標(biāo)的類別分析和運(yùn)動軌跡定位,還能夠有效過濾誤識別事件.這使得系統(tǒng)能夠快速而準(zhǔn)確地識別高空拋物目標(biāo),提高了系統(tǒng)的可靠性、響應(yīng)能力和實(shí)用性.
YOLO系列是目前工業(yè)領(lǐng)域使用最多的目標(biāo)檢測網(wǎng)絡(luò)模型,目前已有多個較為成熟的版本.YOLOv5是一種端到端的目標(biāo)檢測算法,通過使用先進(jìn)的數(shù)據(jù)增強(qiáng)技術(shù)和新穎的網(wǎng)絡(luò)結(jié)構(gòu),能夠在相對較少的數(shù)據(jù)集上訓(xùn)練出高性能的檢測模型.此外,YOLOv5具有較快的檢測速度和較高的精度,能夠在實(shí)時系統(tǒng)中進(jìn)行目標(biāo)檢測,同時還支持在不同的場景和應(yīng)用中進(jìn)行自定義的訓(xùn)練和調(diào)整.YOLOv5目標(biāo)檢測模型相比于其他YOLO系列模型,采用了新的網(wǎng)絡(luò)架構(gòu)和訓(xùn)練策略.YOLOv5的網(wǎng)絡(luò)架構(gòu)如圖6所示[26],基于主干網(wǎng)絡(luò)和檢測頭.主干網(wǎng)絡(luò)采用了CSP(cross-stage partial)[24]架構(gòu),這是一種輕量級的特征提取網(wǎng)絡(luò),可以在減少參數(shù)的同時提高準(zhǔn)確性.檢測頭包括一個3×3的卷積層和一個預(yù)測層,用于生成目標(biāo)的邊界框、類別和置信度等信息.在訓(xùn)練方面,YOLOv5采用了一種新的方法SWAC(self-train with accumulated confidence)[25],它通過在模型中累積置信度高的樣本來增強(qiáng)模型的泛化能力.此外,YOLOv5還使用了一種自適應(yīng)的圖像增強(qiáng)策略,可以提高模型的魯棒性.
圖6 YOLOv5網(wǎng)絡(luò)架構(gòu)圖Fig.6 YOLOv5 network architecture diagram
本文實(shí)驗(yàn)數(shù)據(jù)使用了kaggle社區(qū)的Plastic-Paper-Garbage Bag Synthetic Images數(shù)據(jù)集(圖7).該數(shù)據(jù)集包含塑料袋、紙袋和垃圾袋的合成圖像.Bag Classes包含每個圖像類的100張圖像,而ImageClassesCombined包含所有組合的類的注釋圖像,注釋采用COCO格式.實(shí)驗(yàn)隨機(jī)抽取數(shù)據(jù)樣本總數(shù)的90%訓(xùn)練集,10%測試集.針對樣本不足引發(fā)的模型過擬合問題,對部分?jǐn)?shù)據(jù)集進(jìn)行隨機(jī)裁剪、上下翻轉(zhuǎn)、隨機(jī)縮放、高斯噪聲等數(shù)據(jù)增強(qiáng)處理,提升模型對新領(lǐng)域的適應(yīng)能力.
圖7 Plastic-Paper-Garbage Bag Synthetic Images數(shù)據(jù)集Fig.7 Plastic-Paper-Garbage Bag Synthetic Images
本文采用了準(zhǔn)確率Accuracy、AP(average precision)、mAP(mean average precision)等指標(biāo)來評估分類模型的性能.準(zhǔn)確率反映了模型的分類準(zhǔn)確性和預(yù)測能力,AP衡量了分類器在面對不平衡數(shù)據(jù)時的分類能力,mAP則是各類AP的平均.衡量指標(biāo)公式如下:
(10)
其中,TP代表真正例,F(xiàn)P代表假正例,F(xiàn)N代表真反例,TN代表假反例,Precision衡量的是模型在預(yù)測為正類別的樣本中有多少是真正的正類別樣本,Recall衡量的是模型能夠正確預(yù)測出所有正類別樣本的能力,對于AP的計算,根據(jù)標(biāo)準(zhǔn)可以將其定義為經(jīng)過插值(r1,r2,…,ri是升序排列的Precision插值段第一個插值處對應(yīng)的Recall值)的PR曲線與橫軸包絡(luò)的面積,這種方式稱為AUC(area under curve),計算出所有種類的AP后,可以根據(jù)總類別數(shù)K和總AP之和計算mAP.
3.2.1 Loss函數(shù)變化
在本次實(shí)驗(yàn)中,使用了垃圾的訓(xùn)練集對YOLOv5網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練,并利用驗(yàn)證集對該檢測模型進(jìn)行了評估.訓(xùn)練的epoch為300次,可以看出在約270個epoch之后,驗(yàn)證集的損失已經(jīng)下降到了一定的程度沒有大幅度減少,則說明模型逐漸收斂,震蕩越來越微弱,逐步保持穩(wěn)定,Loss收斂于0.000 65,如圖8所示.因此,本文選擇使用訓(xùn)練300個epoch后的網(wǎng)絡(luò)模型來進(jìn)行后續(xù)實(shí)驗(yàn).
圖8 模型訓(xùn)練損失函數(shù)變化曲線Fig.8 Model training loss function change curve
3.2.2 模型Precision、Recall及mAP
檢測結(jié)果如圖9所示,其中,box_loss表示預(yù)測框損失,obj_loss表示目標(biāo)檢測損失,cls_loss表示分類損失,模型損失值Loss由三者共同構(gòu)成.
圖9 損失率與準(zhǔn)確性Fig.9 Loss rate and accuracy
F1曲線表示F1分?jǐn)?shù)與置信度閾值(X軸)之間的關(guān)系.F1分?jǐn)?shù)是分類的一個衡量標(biāo)準(zhǔn),是精確率和召回率的調(diào)和平均數(shù),介于0到1之間.如圖10所示,F(xiàn)1曲線下的面積(通常稱為平均精確率均衡點(diǎn))大,說明模型在召回率和精確度之間的平衡性好.并且頂部接近1,說明模型訓(xùn)練數(shù)據(jù)集上表現(xiàn)優(yōu)異.根據(jù)F1曲線可以調(diào)整合適的閾值,選擇靠近左上角的平衡點(diǎn)為閾值,使得精確度和召回率相對均衡,從而達(dá)到最優(yōu)的模型性能.
圖10 F1曲線Fig.10 F1 Curves
PR曲線體現(xiàn)精確率和召回率的關(guān)系,對于所有類別的預(yù)測結(jié)果進(jìn)行評估.如圖11所示,0.994代表平均精確率均值mAP,在計算mAP時選擇閾值為0.5的置信度閾值.這意味著該模型在目標(biāo)檢測任務(wù)中具有較高的綜合性能,能夠在多個類別上準(zhǔn)確地檢測和識別目標(biāo).
圖11 PR曲線Fig.11 Precision-Recall Curves
3.3.1 終端動目標(biāo)檢測結(jié)果
動目標(biāo)檢測模塊在終端執(zhí)行.對于三幀差法而言,閾值T的選取尤為重要,閾值過小就無法抑制差分圖像中的噪聲,閾值過大又會產(chǎn)生目標(biāo)漏檢現(xiàn)象,本文在實(shí)驗(yàn)多次后選取合適閾值T=10.將矯正后的實(shí)際高空拋物視頻送入目標(biāo)檢測模塊,如圖12所示,三幀差算法可以很好地檢測到拋物目標(biāo),將其精準(zhǔn)標(biāo)記以便于鎖定拋物對象及拋物者.
圖12 幀差法目標(biāo)檢測結(jié)果Fig.12 Frame difference method target detection results
3.3.2 邊緣端目標(biāo)識別結(jié)果
實(shí)驗(yàn)結(jié)果如圖13所示,當(dāng)垃圾從高空落下時,模型會實(shí)時定位垃圾的位置并將其框選出來.由于YOLO原本模型中獲取的坐標(biāo)格式為目標(biāo)框的中心點(diǎn)、相對高度和相對寬度,是基于原圖尺寸的百分比大小,這不利于管理平臺的下一步操作,本文優(yōu)化了模型檢測模塊輸出部分,將輸出坐標(biāo)改為基于原圖的真實(shí)坐標(biāo)系,輸出框的左上角坐標(biāo)以及右下角坐標(biāo).使得在管理平臺中不需要再對圖片進(jìn)行坐標(biāo)提取操作,優(yōu)化了步驟,減少了運(yùn)行時間.
圖13 目標(biāo)檢測結(jié)果Fig.13 Target detection result
本文主要針對高空拋物這一備受熱議的社會性問題,設(shè)計了一個高空拋物檢測系統(tǒng).該系統(tǒng)使用魚眼相機(jī)對圖像視頻進(jìn)行采集,并在終端進(jìn)行矯正處理以及動目標(biāo)檢測,隨后在邊緣端部署基于YOLOv5的目標(biāo)識別任務(wù),進(jìn)一步精準(zhǔn)檢測高空拋物.實(shí)驗(yàn)結(jié)果顯示,mAP數(shù)值達(dá)到0.994,表明本課題所提出的檢測系統(tǒng)能夠高效實(shí)時地捕捉高空拋物者以及拋物目標(biāo),解決了對于高空拋物行為難以取證的難題,做到了有跡可循、有據(jù)可依,有利于協(xié)助進(jìn)一步完善取證、追責(zé)以及監(jiān)管制度,也能有效預(yù)防和震懾高空拋物這一不文明行為.