張新科 王亞麗 馬敬皓 向波 沈明
摘要:近年來,人工智能、計算機視覺和深度學習的高速發(fā)展,極大地促進了基于監(jiān)控視頻的行人流量統(tǒng)計、社交距離檢測的研究?;诒O(jiān)控視頻的行人流量與社交距離檢測時資源合理分配、收集商業(yè)信息和進行智能管理等任務的基礎(chǔ),它也是現(xiàn)代視頻智能監(jiān)控重要的功能組成部分,具有比較高的研究意義和應用價值。本系統(tǒng)的研究與開發(fā)是基于深度學習和圖像處理技術(shù)的安全社交距離檢測和行人流量統(tǒng)計。利用YOLOv3算法實現(xiàn)行人檢測,使用opencv圖像處理工具進行社交距離的檢測,采用常規(guī)數(shù)學計數(shù)手段進行行人的流量統(tǒng)計與數(shù)據(jù)處理,將處理完畢的數(shù)據(jù)存入數(shù)據(jù)庫進行數(shù)據(jù)存儲,最后利用pyqt5界面設(shè)計工具設(shè)計界面,最終實現(xiàn)了公共場所安全距離監(jiān)測系統(tǒng)在街道中的應用實例。
關(guān)鍵字:深度學習;行人檢測;社交距離檢測;行人流量統(tǒng)計
1引言
近年來,人工智能、計算機視覺和深度學習的高速發(fā)展,極大地促進了基于監(jiān)控視頻的人流量統(tǒng)計、社交距離檢測的研究。基于監(jiān)控視頻的行人流量與社交距離檢測時資源合理分配、收集商業(yè)信息和進行智能管理等任務的基礎(chǔ),它也是現(xiàn)代視頻智能監(jiān)控重要的功能組成部分,具有比較高的研究意義和應用價值?;诒O(jiān)控視頻的安全距離檢測與行人流量統(tǒng)計通過圖像處理和計算機視覺的理論與技術(shù)(特別是深度學習在圖像處理和計算機視覺領(lǐng)域的應用),對監(jiān)控區(qū)域的目標行人進行準確實時的檢測識別,完成項目系統(tǒng)所要求的任務[1-4]。
本文基于深度學習對密集安全距離監(jiān)測這一課題展開研究,設(shè)計并實現(xiàn)滿足密集人流場合下的安全距離監(jiān)測算法,同時設(shè)計基于監(jiān)控視頻的安全距離監(jiān)測服務系統(tǒng)。該系統(tǒng)提供的安全距離監(jiān)測結(jié)果可以為商場提供商業(yè)決策。如;依據(jù)統(tǒng)計公共場所內(nèi)的人數(shù),可以幫助管理者有效做好預警,采取分流措施,通過臨時增加出入通道和維護人員,從而有效避免擁堵情況;另外,也能對公共場所內(nèi)違規(guī)社交距離、人群異常狀態(tài)的及時可靠的檢測和疏散,使疫情擴散的風險降為最低,為疫情當下的公共安全問題提供了一種有效的緩解途徑。。
2 YOLOv3目標檢測算法
YOLOv3網(wǎng)絡是JosephRedmon等人提出的對于檢測任務的CNN,與RCNN系列預先提取候選框的方法不同,YOLOv3網(wǎng)絡將輸入圖像分成S*S的網(wǎng)格,每個網(wǎng)格在三個不同的尺度預測邊界框,每個邊界框預測每個目標的類別、位置和尺寸信息。YOLO系列網(wǎng)絡不需要預先提取候選框,因此其大大地提高了檢測的速度。
YOLOv3網(wǎng)絡結(jié)構(gòu)conv包含卷積層、批量歸一化層和LeaKyReLu層,殘差單元(res)層包含兩個卷積層和一個快捷鏈路。YOLOv3從第0層到第74層是特征提取的主要網(wǎng)絡結(jié)構(gòu),其卷積層采用一系列的3*3和1*1的卷積核。這些卷積層是通過整合來自各種主流網(wǎng)絡結(jié)構(gòu)的有更好性能的卷積層得到。從75到106層為YOLOv3網(wǎng)絡的特征交互層,通過采用與特征金字塔類似的操作從上采樣特征與更細粒度的信息中收集更有意義的語義信息,從而預測3種不同尺度的框(對于輸入分辨率為416*416的圖片,三種預測框為3*3,26*26,52*52),多尺度預測。具體實現(xiàn)過程為:第79層的特征圖進行兩種操作,第一種將其進行卷積得到第一個尺度預測結(jié)果,第二種是將其上采樣與第61層的特征圖融合后,再經(jīng)過一系列卷積操作得到第91層特征圖,同上,第91層的特征圖進行兩種操作,第一種將其進行卷積得到第二個尺度預測結(jié)果,第二種是將其上采樣與第36層的特征圖融合后,再經(jīng)過一系列卷積操作得到第三個尺度預測結(jié)果。YOLOv3使用K-means方法去確定邊界框的9個聚類先驗框,在三個尺度上平均分割聚類。
3 社交距離檢測算法
在行人檢測中,能夠得到公共場景中每個行人的位置信息,并根據(jù)這些位置信息來框出行人。而在算法研究這一部分本項目即會利用上述信息來進行社交距離的檢測。
整個圖片的坐標系是以圖片的左上角為零點,橫向為x軸,縱向為y軸而建立的。上述的位置信息中包含行人框的左上角以及右下角坐標,那么根據(jù)這些坐標可以得出中心點在圖片坐標系下的精確坐標。利用精確坐標和數(shù)學工具歐式距離的計算可以得出點與點之間的距離,這也代表了行人之間的社交距離。
本文利用opencv圖像處理工具結(jié)合圖像的透視變換。但經(jīng)過處理后的圖像依舊存在“遠小近大”的情況,所以,本文結(jié)合圖像中行人的“身高”比例,對于圖像上方(感官上為遠處)的行人將框的高度設(shè)定為距離閾值,而對于圖像下方(感官上為近處)的行人將框的高度乘以某一經(jīng)驗比例值設(shè)為距離閾值,這樣設(shè)定不同的距離閾值即可更加正確的檢測間距。
4 界面顯示
本項目采用python語言編寫,對于GUI設(shè)計選擇使用優(yōu)勢較強的PyQt5。應用界面如圖2所示。
具體控件與槽函數(shù)說明:
1一號、二號攝像頭按鈕:連接檢測算法函數(shù),對其輸入的視頻進行檢測,將其監(jiān)測結(jié)果顯示在對應窗口上。其中兩個控件切換不同的輸入視頻。
2密度數(shù)標簽:對應對密度數(shù)計算函數(shù),將其密度數(shù)顯示,每5秒更新一次。
3當前流量標簽:對應此時攝像設(shè)備檢測到的行人數(shù)量。
4建議疏散標簽:對應密度數(shù)閾值判斷函數(shù),若高于設(shè)定閾值,顯示紅色,應該疏散。低于閾值,顯示綠色則視為正常情況。
5刷新數(shù)據(jù)統(tǒng)計標簽:對應畫表函數(shù),根據(jù)從數(shù)據(jù)庫上獲取到的數(shù)據(jù),進行繪制統(tǒng)計圖,并顯示。
6時間標簽:對應showtime函數(shù),顯示實時時間,一秒刷新一次。
7退出按鈕:結(jié)束進程與窗口,關(guān)閉系統(tǒng)。
5 結(jié)論
本文提出了基于深度學習和圖像處理技術(shù)的安全社交距離檢測統(tǒng)計設(shè)計。利用YOLOv3算法實現(xiàn)行人檢測,使用opencv圖像處理工具進行社交距離的檢測,采用常規(guī)數(shù)學計數(shù)手段進行行人的流量統(tǒng)計與數(shù)據(jù)處理,將處理完畢的數(shù)據(jù)存入數(shù)據(jù)庫進行數(shù)據(jù)存儲,最后利用pyqt5界面設(shè)計工具設(shè)計界面,最終實現(xiàn)了公共場所安全距離監(jiān)測系統(tǒng)在街道中的應用實例。
參考文獻
[1] 沈爽.基于深度學習的密集人流量統(tǒng)計應用[D].大連:大連海事大學,2019.
[2] 小白學視覺.使用Python+OpenCV+detectorn2實現(xiàn)社交距離檢測
[EB/OL].https://mp.weixin.qq.com/s/68nSMY5QgkqshRHDfsttxQ,2020-06-02.
[3] 普里亞-迪維迪.深度學習
[EB/OL].https://github.com/priya-dwivedi/Deep-Learning/tree/master/detecting_social_distancing_violation,2020.
[4] 王維波,栗寶娟,張曉東,等.python Qt GUI與數(shù)據(jù)可視化編程[M].人民郵電出版社:北京,2019:1-490.