肖 巍, 盧勁伉, 李博深, 吳啟槊, 白英東, 潘 超
(長(zhǎng)春工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 吉林 長(zhǎng)春 130012)
人流量檢測(cè)是計(jì)算機(jī)視覺中的經(jīng)典問(wèn)題,也是長(zhǎng)期以來(lái)難以解決的問(wèn)題。人流量檢測(cè)主要解決的是能在圖片或視頻幀中識(shí)別所有行人,包括位置和數(shù)量。人流量檢測(cè)技術(shù)具有廣泛的應(yīng)用背景和工程價(jià)值,可以用于客流量統(tǒng)計(jì)與分析、智能系統(tǒng)等。目前主要面臨三大難題:
1)遮擋問(wèn)題。在很多公共地點(diǎn)中,行人非常密集,存在嚴(yán)重遮擋,只能看到人體的一部分,這給檢測(cè)算法帶來(lái)了嚴(yán)重挑戰(zhàn)。
2)背景復(fù)雜問(wèn)題。無(wú)論是室內(nèi)還是室外,人流量檢測(cè)一般面臨的背景都非常復(fù)雜,有些物體的外觀和形狀、顏色、紋理很像人體,導(dǎo)致算法無(wú)法準(zhǔn)確區(qū)分。
3)檢測(cè)速度問(wèn)題。人流量檢測(cè)一般采用復(fù)雜模型,運(yùn)算量相當(dāng)大,要達(dá)到實(shí)時(shí)非常困難,需要大量?jī)?yōu)化。
近些年,隨著研究人員的投入和深度學(xué)習(xí)的發(fā)展。圖像分類[1]、目標(biāo)識(shí)別[2]、 圖像分割和檢測(cè)[3]等得到了極大發(fā)展,很多優(yōu)秀的算法也隨之而來(lái):
1)R-CNN網(wǎng)絡(luò)[4]。R-CNN(全稱Region-CNN)是第一個(gè)成功將深度學(xué)習(xí)應(yīng)用到目標(biāo)檢測(cè)上的算法。傳統(tǒng)的目標(biāo)檢測(cè)方法大多以圖像識(shí)別為基礎(chǔ)。一般可以在圖片上使用窮舉法選出所有物體可能出現(xiàn)的區(qū)域框,對(duì)這些區(qū)域框提取特征,并使用圖像識(shí)別方法分類,得到所有分類成功的區(qū)域后,通過(guò)非極大值抑制輸出結(jié)果。R-CNN遵循傳統(tǒng)目標(biāo)檢測(cè)思路,在提取特征這一步使用深度卷積網(wǎng)絡(luò)提取的特征代替?zhèn)鹘y(tǒng)的特征(如 SIFT、HOG 特征等)。
2)SPP-Net網(wǎng)絡(luò)[5]。SPP-Net是一種可以不用考慮圖像大小,輸出圖像固定長(zhǎng)度的網(wǎng)絡(luò)結(jié)構(gòu),并且在圖像變形情況下表現(xiàn)穩(wěn)定。基本思想是,輸入整張圖像,進(jìn)行一次conv得到整張圖的Feature Map,然后找到每個(gè)候選框在Feature Map上的映射Patch,將此Patch作為每個(gè)候選框的卷積特征輸入到SPP layer和之后的層。這種方法節(jié)省了大量的前一個(gè)conv所花費(fèi)的計(jì)算時(shí)間。所以SPP-Net在檢測(cè)速度上比R-CNN快24~102倍。
3)Fast RCNN[6]。Fast RCNN含有一個(gè)可以視為單層SPP-Net的網(wǎng)絡(luò)層 ----ROI Pooling,對(duì)每個(gè)不同的region都提取一個(gè)固定緯度的特征表示,并通過(guò)softmax函數(shù)進(jìn)行類型識(shí)別。同時(shí),把bbox regression加入到神經(jīng)網(wǎng)絡(luò)內(nèi)部,與region分類和并成multi-task模型,這兩個(gè)任務(wù)能夠共享卷積特征,并相互促進(jìn)。執(zhí)行Fast RCNN時(shí),首先輸入一張完整的圖片,卷積一次,其次每個(gè)候選框找到相應(yīng)的映射,最后輸入映射Patch在第五個(gè)卷積層得到每個(gè)候選框的特征。Fast RCNN相對(duì)于R-CNN的提速原因在于: R-CNN對(duì)每個(gè)候選區(qū)域提取特征,而Fast RCNN是整張圖片只提取一次特征,原因在于Fast RCNN將候選框映射到conv5上,而SPP只需要計(jì)算一次特征,其余的操作在conv5上執(zhí)行。
4)Faster RCNN[7]。Faster RCNN網(wǎng)絡(luò)在Fast RCNN網(wǎng)絡(luò)的基礎(chǔ)上添加RPN,卷積特征輸入到RPN,得到圖片中候選框的特征信息。在不用尋找到每個(gè)候選框在Feature Map的情況下映射Patch,將此Patch作為每個(gè)候選框的卷積特征輸入到SPP layer和之后的層,進(jìn)一步提高了物體檢測(cè)的速度和精度。
2016年,Kaiming He等[8]詳細(xì)提出了對(duì)于使用Faster RCNN實(shí)現(xiàn)對(duì)物體檢測(cè)方法,重點(diǎn)介紹了Faster RCNN網(wǎng)絡(luò)的結(jié)構(gòu)和物體檢測(cè)方法。文中基于Faster RCNN 實(shí)現(xiàn)對(duì)人流量的檢測(cè),檢測(cè)對(duì)象是公共地點(diǎn)的行人。針對(duì)檢測(cè)人流量這一場(chǎng)景下,發(fā)現(xiàn)Faster RCNN有進(jìn)一步優(yōu)化的空間,文中在FasterRCNN中針對(duì)RPN網(wǎng)絡(luò)[7]做了優(yōu)化,重構(gòu)了RPN網(wǎng)絡(luò)生成候選框的實(shí)現(xiàn)策略,提高了行人檢測(cè)的速度。
XML和JSON的主要成分:
XML:element、attribute和element content。
JSON:object、array、string、number、boolean(true/false)和null。
XML需要選擇怎么處理element content的換行,而JSON string則不需作這個(gè)選擇。XML映射數(shù)組沒(méi)大問(wèn)題,就是數(shù)組元素tag比較重復(fù)冗余,JSON 比較易讀,JSON的true/false/null也容易統(tǒng)一至一般編程語(yǔ)言的對(duì)應(yīng)語(yǔ)義。
傳統(tǒng)的Faster RCNN代碼只支持xml類型數(shù)據(jù)的讀取。文中補(bǔ)充了對(duì)JSON數(shù)據(jù)文件的讀取,需要JSON文件的key值有以下關(guān)鍵參數(shù):name(檢測(cè)圖片的相對(duì)路徑),num(圖片中的人數(shù)),annotation(圖片中所有行人的候選框信息,(x,y)表示框左上角點(diǎn)的坐標(biāo),w和h分別表示圖片的寬和高,坐標(biāo)點(diǎn)與寬、高相加(x+w,y+h)表示框的右下角的坐標(biāo)))。
對(duì)JSON文件讀取的補(bǔ)充使得項(xiàng)目更加完整,支持讀取JSON類型的數(shù)據(jù),兼容行也有提高。
傳入的圖片或視頻幀送入Faster RCNN網(wǎng)絡(luò)框架,先經(jīng)過(guò)RPN網(wǎng)絡(luò)[7]進(jìn)行特征提取,得到特征圖片,特征圖片上的特征值數(shù)組計(jì)算機(jī)可以“看見”和“理解”。原始框架中RPN網(wǎng)絡(luò)的候選框生成策略:對(duì)于該圖片的每一個(gè)像素點(diǎn),考慮有Kanchor=3*3個(gè)候選框,如圖1所示。
三種面積分別是128*128、256*256、512*512,每種面積的長(zhǎng)寬比分別有1∶1,1∶2,2∶1。
文中的檢測(cè)對(duì)象是行人,根據(jù)百度之星比賽提供的開源數(shù)據(jù)集,計(jì)算了3 000張圖片中行人框的高比長(zhǎng),得到平均值為2.311,為了方便訓(xùn)練按照四舍五入的方法得到結(jié)果為2。因此在訓(xùn)練時(shí)保留(1∶2)的候選框,所以將原始的候選框生成策略(1∶1,1∶2,2∶1)*(128,256,512)改進(jìn)為文中的(1∶2)*(128,256,512),只保留(1∶2)比例的候選框進(jìn)行行人的檢測(cè),更改后的Kanchor=1*3個(gè)候選框如圖2所示。
最終圖片生成候選框的總數(shù)為
Nanchor=WConv*HConv*Kanchor,
(1)
式中:WConv----圖片寬上的像素點(diǎn)數(shù);
HConv----圖片高上的像素點(diǎn)數(shù);
RPN網(wǎng)絡(luò)會(huì)生成region proposals,通過(guò)Softmax[7]判斷anchors屬于Foreground(前景)或者Background(背景),并得到偏移量,再利用bounding box regression修正anchors,獲得精確的proposals。而最后的Proposal層則負(fù)責(zé)綜合positive anchors和對(duì)應(yīng)bounding box regression偏移量獲取proposals,同時(shí)剔除太小和超出邊界的proposals。
將proposals和圖片特征信息傳入ROI池化層[7]進(jìn)行檢測(cè),獲得每個(gè)候選框的得分,再經(jīng)過(guò)Classification進(jìn)行類別分類,將最終結(jié)果傳入全連接層輸出圖片結(jié)果。
文中檢測(cè)圖片所花的時(shí)間單位為秒。原始的Faster RCNN網(wǎng)絡(luò)1 s內(nèi)可以檢測(cè)多張圖片,但是要實(shí)現(xiàn)實(shí)時(shí)檢測(cè),還是存在延遲問(wèn)題,文中設(shè)計(jì)以下方法解決時(shí)間上的延遲和同步問(wèn)題。
文中支持兩種檢測(cè)方式:視頻檢測(cè)和直播檢測(cè)。兩種不同的檢測(cè)方法需要的時(shí)間軸也不同。視頻檢測(cè)時(shí),時(shí)間軸為視頻中的時(shí)間。直播檢測(cè)時(shí),時(shí)間軸為系統(tǒng)時(shí)間。
處理視頻時(shí),先獲取到視頻的Rate(幀率),再把視頻截成視頻幀,將視頻幀送入Faster RCNN網(wǎng)絡(luò)進(jìn)行檢測(cè),檢測(cè)后的圖片保存到本地文件夾,并把在每張圖片上檢測(cè)到的人數(shù)信息累加到Shuman中,每檢測(cè)Rate個(gè)圖片后相當(dāng)于檢測(cè)了視頻中的1 s,此時(shí)計(jì)算這1 s的人數(shù)信息Nhuman,

(2)
式中:Shuman----1 s內(nèi)人數(shù)信息的總數(shù);
Rate----幀率信息。
綜上所述,考慮到碳限額與交易政策,本文為有多種配方、生產(chǎn)多種鐵水產(chǎn)品的高爐煉鐵廠制定合理的生產(chǎn)計(jì)劃,并探討碳限額、碳價(jià)對(duì)生產(chǎn)的影響。
最后將檢測(cè)好的圖片合成視頻,并將Rate信息保存到JSON文件中,至此一段視頻處理完畢,獲得視頻中的人流量信息。
處理直播檢測(cè)功能時(shí),設(shè)定時(shí)間t記錄系統(tǒng)經(jīng)過(guò)的時(shí)間,獲取攝像頭捕獲的圖片,將圖片送入Faster RCNN網(wǎng)絡(luò)檢測(cè),檢測(cè)到的人數(shù)信息累加到Shuman中,每當(dāng)執(zhí)行累加時(shí),累加次數(shù)Ttimes加1,當(dāng)t≥1 s時(shí),計(jì)算Nhuman,

(3)
式中:Shuman----1 s內(nèi)人數(shù)信息的總數(shù);
Ttimes----累加的次數(shù)。
計(jì)算完成后,將Shuman和Ttimes清零,進(jìn)入下一個(gè)循環(huán)。如此循環(huán),保證人數(shù)信息和系統(tǒng)時(shí)間軸同步,將60 s內(nèi)的圖片合成視頻,并將這60 s內(nèi)的人數(shù)信息保存到JSON文件中,保存的視頻和視頻信息實(shí)時(shí)更新,即完成了直播檢測(cè),實(shí)現(xiàn)了直播到直播加檢測(cè)信息。
最終兩種檢測(cè)方式檢測(cè)到的Nhuman向上取整,結(jié)果保存到本地文件中,向上取整可以最大化地減小漏查、誤查所帶來(lái)的誤差,每隔60 s將內(nèi)存中的數(shù)據(jù)保存到JSON文件中,作為這60 s時(shí)間段內(nèi)的人數(shù)信息。
TCP協(xié)議提供的是面向?qū)ο蟮耐ㄐ艂鬏敚€(wěn)定性相對(duì)較高,因此網(wǎng)頁(yè)端的數(shù)據(jù)傳輸采取TCP協(xié)議。但是現(xiàn)今的網(wǎng)絡(luò)通信中,無(wú)線網(wǎng)絡(luò)傳輸占有越來(lái)越高的比重,而無(wú)線網(wǎng)絡(luò)不同于有線網(wǎng)絡(luò),數(shù)據(jù)丟失有可能是由于誤碼丟包,而不是網(wǎng)絡(luò)擁堵。
采用傳統(tǒng)的TCP協(xié)議,則會(huì)導(dǎo)致?lián)砣刂票粏⒂茫W(wǎng)絡(luò)性能將大幅下滑。
因此需要優(yōu)化無(wú)線網(wǎng)絡(luò)中的TCP協(xié)議。對(duì)于TCP協(xié)議,文中將其與自適應(yīng)流媒體傳輸技術(shù)DASH(dynamic adaptive streaming over HTTP)[10]相結(jié)合,從而對(duì)TCP協(xié)議里面的擁塞控制算法進(jìn)行相應(yīng)優(yōu)化。這樣即可有效地防止在之前的擁塞控制算法超過(guò)空閑時(shí)間之后迅速降低擁塞窗口[10],將擁塞窗口的大小保持在一個(gè)相比之前更加恒定的值。
因此,這種技術(shù)能夠提供良好的使用體驗(yàn)。
在檢測(cè)圖片和其所用的時(shí)間時(shí),常常因?yàn)闄z測(cè)的圖片太多、太密集,不方便對(duì)比,通過(guò)將密集的數(shù)據(jù)平滑化,使得數(shù)據(jù)清晰。根據(jù)人體功能學(xué),人眼一次看50個(gè)數(shù)據(jù)的統(tǒng)計(jì)圖時(shí)會(huì)比較清晰,文中在繪制統(tǒng)計(jì)圖時(shí)將數(shù)據(jù)平滑化處理,橫坐標(biāo)長(zhǎng)度設(shè)置為50。
具體算法用偽代碼描述見表1。

表1 數(shù)據(jù)平滑化算法偽代碼
3.1.1 硬件
采用1 080ti顯卡和cuda驅(qū)動(dòng)做計(jì)算,CPU為E5系列3核,內(nèi)存8 G。
3.1.2 軟件
操作系統(tǒng)采用Ubuntu,基于Tensorflow框架進(jìn)行訓(xùn)練,訓(xùn)練前采用VGG-16作為權(quán)重初始值,迭代次數(shù)為40 000次。
選用VOC2007數(shù)據(jù)集和2019年軟件杯的測(cè)試視頻做測(cè)試數(shù)據(jù),分別用原始的FasterRCN網(wǎng)絡(luò)和做出修改的FasterRCNN網(wǎng)絡(luò)進(jìn)行檢測(cè)。在同樣的環(huán)境下,對(duì)同一個(gè)測(cè)試視頻做檢測(cè),記錄兩種網(wǎng)絡(luò)在檢測(cè)視頻的每一幀中所用的時(shí)間,進(jìn)行對(duì)照實(shí)驗(yàn),將修改前后的檢測(cè)時(shí)間進(jìn)行對(duì)比。實(shí)驗(yàn)結(jié)果分別如圖3和圖4所示(平滑化2.5)。
圖4平滑化的目的是將橫坐標(biāo)數(shù)據(jù)縮小為50,使結(jié)果看起來(lái)明顯,對(duì)比平滑化前橫坐標(biāo)會(huì)有減少,如果數(shù)據(jù)小于50,不用做平滑化。
根據(jù)兩個(gè)網(wǎng)絡(luò)檢測(cè)時(shí)間的統(tǒng)計(jì)圖可以看出,經(jīng)過(guò)修改后的RPN網(wǎng)絡(luò)更適合用于行人檢測(cè),不僅用于檢測(cè)圖片的時(shí)間短,而且檢測(cè)的準(zhǔn)確率也略有提升,經(jīng)過(guò)多次檢測(cè)后得到數(shù)據(jù)見表2。

表2 RPN網(wǎng)絡(luò)修改前后對(duì)照表
修改前后檢測(cè)效果分別如圖5和圖6所示。
圖5和圖6為軟件杯比賽用于測(cè)試的視頻中的截圖,通過(guò)上面的結(jié)果分析,每張圖片檢測(cè)效率提升了2.5%左右,文中提供了一個(gè)檢測(cè)人流量算法生成候選框的思路,并通過(guò)實(shí)驗(yàn)驗(yàn)證了其速度提高的效果,也驗(yàn)證了修改候選框生成策略對(duì)于人流量檢測(cè)的可行性,并在準(zhǔn)確率和檢測(cè)時(shí)間兩個(gè)重要指標(biāo)上都有提高。
隨著社會(huì)的不斷發(fā)展,公共地點(diǎn)的人流量壓力也逐漸加大。監(jiān)控人流量成為一個(gè)重要方式來(lái)保證人們的安全和交通的順暢。文中對(duì)原始Faster RCNN網(wǎng)絡(luò)存在的延時(shí)、滯后問(wèn)題,提出了改進(jìn)的Faster RCNN網(wǎng)絡(luò),通過(guò)改進(jìn)RPN、減少anchor的數(shù)量在保證準(zhǔn)確率的前提下提高實(shí)時(shí)性。
利用VOC2007數(shù)據(jù)集進(jìn)行訓(xùn)練,在原始網(wǎng)絡(luò)和改進(jìn)網(wǎng)絡(luò)上進(jìn)行測(cè)試。實(shí)驗(yàn)結(jié)果表明,減少anchor的數(shù)量和改進(jìn)訓(xùn)練模型的數(shù)據(jù)類型,可以在保證準(zhǔn)確率的情況下,提高網(wǎng)絡(luò)的實(shí)時(shí)性,此網(wǎng)絡(luò)相比于原始網(wǎng)絡(luò)在檢測(cè)時(shí)間上平均每張圖片用時(shí)減少了2%。在直播檢測(cè)人流量過(guò)程中,幀率為15~25,可以相對(duì)有效地保證數(shù)據(jù)的實(shí)時(shí)性和檢測(cè)視頻的流暢度。
人流量檢測(cè)速度的提升對(duì)實(shí)時(shí)檢測(cè)公共地點(diǎn)的人流量有很重要的作用。檢測(cè)速度提高后能加快對(duì)人流量信息的檢測(cè)、統(tǒng)計(jì)人流量信息等,并通過(guò)網(wǎng)絡(luò)快速將結(jié)果信息傳送給工作人員。根據(jù)檢測(cè)到的信息做出相應(yīng)的分析,實(shí)時(shí)了解公共地點(diǎn)的信息。未來(lái)可以將本產(chǎn)品用于及時(shí)檢測(cè)城市各個(gè)街道、車站的人流量信息,預(yù)防擁擠和踩踏事故的發(fā)生。另外,還可以將其用于檢測(cè)車輛等其他物體,實(shí)現(xiàn)多對(duì)象的檢測(cè)。