美林?jǐn)?shù)據(jù)技術(shù)專家團(tuán)隊(duì)干貨分享|基于Jetson Nano的抽煙檢測(cè)相關(guān)實(shí)踐
2021-12-01 09:26:53
次
隨著大數(shù)據(jù)、人工智能技術(shù)的不斷發(fā)展,視頻監(jiān)控技術(shù)越來(lái)越廣泛應(yīng)用于“智慧城市”、“平安城市”等公共安全項(xiàng)目,相比基于云端的視頻分析服務(wù),人們更傾向于在靠近視頻源頭的邊緣設(shè)備如智能攝像頭上直接運(yùn)行模型,以降低網(wǎng)絡(luò)延遲、帶寬占用、部署成本及保護(hù)隱私。本文以抽煙檢測(cè)為例,來(lái)闡述在Jetson Nano這種計(jì)算資源有限的設(shè)備上,提供近端智能分析服務(wù)的相關(guān)實(shí)踐。
對(duì)于抽煙的檢測(cè),在計(jì)算機(jī)視覺(jué)場(chǎng)景屬典型的小目標(biāo)檢測(cè),這類目標(biāo)通常分辨率低、信息少、噪音多,會(huì)給檢測(cè)帶來(lái)較大的困難,首先,我們先來(lái)回顧一下基于深度學(xué)習(xí)的小目標(biāo)檢測(cè)常用的一些方法。
小目標(biāo)檢測(cè)常用技術(shù)
小目標(biāo)檢測(cè)常用技術(shù)有以下幾種:
基于多尺度滑動(dòng)窗口的方法
通過(guò)對(duì)原圖構(gòu)建不同分辨率的圖像金字塔,并用分類器在不同層滑動(dòng)來(lái)檢測(cè)不同尺度的目標(biāo);
基于數(shù)據(jù)增強(qiáng)的方法
其基本思想是通過(guò)增加圖像中小目標(biāo)的數(shù)量來(lái)提升模型的效果,具體可采用過(guò)采樣的策略或是通過(guò)復(fù)制小目標(biāo)區(qū)域再粘貼的方法;
基于特征金字塔FPN的方法
其考慮網(wǎng)絡(luò)不同層的特征圖對(duì)信息的表達(dá)程度不一樣,淺層感受野較小,更適合小目標(biāo)檢測(cè);
基于拼圖的方法
在不改變?cè)瓐D大小的情況下,對(duì)圖片進(jìn)行按照網(wǎng)絡(luò)輸入分辨率進(jìn)行切分,組成一批數(shù)據(jù),傳入網(wǎng)絡(luò)進(jìn)行檢測(cè);
基于切圖的方法
其基本思想是選擇真值尺度和錨框接近的目標(biāo)進(jìn)行訓(xùn)練,代表方法有SNIP和SNIPER等;
基于自適應(yīng)錨框的方法
根據(jù)特定的任務(wù)來(lái)調(diào)優(yōu)預(yù)先設(shè)置的錨框,如可采用KMeans聚類算法來(lái)對(duì)數(shù)據(jù)集的邊框做聚類分析,找到合適的錨框尺寸。
具體針對(duì)抽煙場(chǎng)景,“煙”本身長(zhǎng)寬比例較為特殊,且無(wú)明顯特征,并經(jīng)常有手遮擋的情況,因此,在實(shí)踐中,我們一方面采用自適應(yīng)錨框的方法來(lái)適應(yīng)煙的比例,同時(shí)配合數(shù)據(jù)增強(qiáng)的方法來(lái)增加煙的數(shù)量,另一方面,采用“先檢測(cè)手,再檢測(cè)煙”這種基于兩階段的檢測(cè)方法。由于我們是在邊緣設(shè)備上運(yùn)行模型,模型過(guò)大會(huì)造成實(shí)時(shí)性較差,這種兩階段的方法,可以極大降低目標(biāo)檢測(cè)難度,即可以用簡(jiǎn)單的模型來(lái)實(shí)現(xiàn),并可以很好地消除誤檢。
基于兩階段的抽煙檢測(cè)流程

基于兩階段的抽煙檢測(cè)流程如上圖所示,第一階段采用基于Yolov4-tiny的手檢測(cè)模型,從整幅圖片中定位出手所在的區(qū)域,這樣可極大減少后續(xù)抽煙檢測(cè)的計(jì)算量;第二階段,考慮到目標(biāo)本身所包含的判別信息,采用語(yǔ)義分割模型來(lái)對(duì)煙所在區(qū)域的像素進(jìn)行區(qū)分,這樣可充分利用周圍像素的相關(guān)信息。具體采用基于U-Net的煙語(yǔ)義分割模型,進(jìn)而判斷是否有煙的存在,最終,完成抽煙的判定。
為了加速模型在Jetson Nano上的運(yùn)行速度,我們基于TensorRT模型優(yōu)化加速框架,生成針對(duì)Nano GPU硬件優(yōu)化的模型文件,具體流程如下:
由于第一階段采用的檢測(cè)模型為Yolov4-tiny,而TensorRT中對(duì)其中的一些層的算子不支持,要生成優(yōu)化模型,需要結(jié)合DeepStream部署框架及TensorRT相關(guān)標(biāo)準(zhǔn),實(shí)現(xiàn)對(duì)應(yīng)IPluginV2和IPluginCreator的接口:
基于Jetson Nano的抽煙檢測(cè)模型部署
抽煙檢測(cè)對(duì)接實(shí)時(shí)視頻流,在部署時(shí)采用DeepStream框架進(jìn)行部署:
首先對(duì)于輸入視頻流,采用H264等解碼器結(jié)合硬件進(jìn)行解碼,然后輸入模型,模型部分借助DeepStream的nvinfer接口來(lái)加載經(jīng)TensorRT優(yōu)化后的模型,并結(jié)合OSD展示檢測(cè)框、類別等,最終經(jīng)EGL等Sink進(jìn)行桌面展示。其中,對(duì)于檢測(cè)結(jié)果,可借助GstPlugin接口進(jìn)行結(jié)合業(yè)務(wù)進(jìn)行整合:
在抽煙檢測(cè)場(chǎng)景,我們基于此實(shí)現(xiàn)對(duì)于煙分割結(jié)果中煙類別的獲取、煙所在區(qū)域的獲取及抽煙違規(guī)的判定,并生成對(duì)應(yīng)的檢測(cè)元信息,經(jīng)消息轉(zhuǎn)換及消息Broker實(shí)現(xiàn)檢測(cè)結(jié)果的發(fā)送。
綜上,利用基于深度學(xué)習(xí)的小目標(biāo)檢測(cè)相關(guān)方法,借助Nano GPU硬件及DeepStream等軟件框架,可實(shí)現(xiàn)邊緣端的抽煙實(shí)時(shí)檢測(cè),滿足智能監(jiān)控分析場(chǎng)景的實(shí)時(shí)性要求,并很好地降低了帶寬消耗、保護(hù)數(shù)據(jù)隱私,同時(shí)可結(jié)合云端存儲(chǔ),實(shí)現(xiàn)事中實(shí)時(shí)報(bào)警、事后可追溯。