楊 姝, 于 闖, 蔣 寧
(1. 沈陽師范大學(xué) 教育技術(shù)學(xué)院, 沈陽 110034; 2. 沈陽師范大學(xué) 計(jì)算機(jī)與數(shù)學(xué)基礎(chǔ)教學(xué)部, 沈陽 110034; 3. 沈陽航空航天大學(xué) 計(jì)算機(jī)學(xué)院, 沈陽 110136)
定點(diǎn)視頻監(jiān)控是視頻監(jiān)控系統(tǒng)的一種主要應(yīng)用模式,在人們的日常生活中發(fā)揮著越來越大的作用[1]。在定點(diǎn)視頻監(jiān)控系統(tǒng)中,對(duì)運(yùn)動(dòng)行人進(jìn)行自動(dòng)檢測(cè)與識(shí)別,有著非常重要的意義。由于監(jiān)控視頻中的遠(yuǎn)景區(qū)域運(yùn)動(dòng)行人目標(biāo)相對(duì)過小,所以對(duì)監(jiān)控視頻遠(yuǎn)景區(qū)域中的運(yùn)動(dòng)行人的檢測(cè)在實(shí)際應(yīng)用場(chǎng)景中存在漏檢和誤檢的問題。解決這個(gè)問題的一種方法是設(shè)置輔助變焦攝像頭,使得遠(yuǎn)景區(qū)域中監(jiān)控視頻的圖像分辨率得到提高[2]。本文基于運(yùn)動(dòng)特征的目標(biāo)檢測(cè)算法和卷積神經(jīng)網(wǎng)絡(luò)模型,設(shè)計(jì)并開發(fā)了配置輔助變焦攝像頭的定點(diǎn)視頻監(jiān)控系統(tǒng)行人檢測(cè)平臺(tái),實(shí)現(xiàn)了對(duì)運(yùn)動(dòng)行人的有效自動(dòng)檢測(cè)[3-6]。首先,對(duì)行人檢測(cè)平臺(tái)進(jìn)行模塊化設(shè)計(jì),設(shè)計(jì)出主要功能模塊;其次,設(shè)計(jì)并完成行人檢測(cè)平臺(tái)各組成功能模塊,在運(yùn)動(dòng)目標(biāo)檢測(cè)模塊中配置并使用輔助變焦攝像頭,完成遠(yuǎn)景區(qū)域數(shù)據(jù)處理。將主監(jiān)控畫面平均分割為4等份,其中左上與右上2部分定義為遠(yuǎn)景區(qū)域,實(shí)驗(yàn)測(cè)試對(duì)象選取為右上區(qū)域;最后,根據(jù)搭建出的行人檢測(cè)平臺(tái)進(jìn)行行人檢測(cè),統(tǒng)計(jì)分析實(shí)驗(yàn)數(shù)據(jù)。實(shí)驗(yàn)結(jié)果表明,本文設(shè)計(jì)的平臺(tái)有效地提高了對(duì)行人檢測(cè)的準(zhǔn)確率,可以滿足實(shí)際應(yīng)用需求。
本文的主要目標(biāo)是實(shí)現(xiàn)對(duì)定點(diǎn)視頻監(jiān)控中的運(yùn)動(dòng)行人檢測(cè),因此,可將行人檢測(cè)平臺(tái)分為3個(gè)功能模塊,即運(yùn)動(dòng)目標(biāo)檢測(cè)模塊、行人分類模塊和數(shù)據(jù)分析模塊。其中,運(yùn)動(dòng)目標(biāo)檢測(cè)模塊主要完成運(yùn)動(dòng)目標(biāo)的提取;行人分類模塊主要對(duì)提取出的運(yùn)動(dòng)目標(biāo)進(jìn)行分類,即提取出運(yùn)動(dòng)行人和非運(yùn)動(dòng)行人2類;數(shù)據(jù)分析模塊主要完成數(shù)據(jù)的記錄、對(duì)比與分析,從而得出實(shí)驗(yàn)結(jié)果。運(yùn)動(dòng)行人檢測(cè)平臺(tái)的功能模塊的設(shè)計(jì)如圖1所示,運(yùn)行過程如圖2所示。
圖1 平臺(tái)功能模塊設(shè)計(jì)Fig.1 Functional module design of the platform
圖2 平臺(tái)運(yùn)行過程Fig.2 Operation process of the platform
運(yùn)動(dòng)目標(biāo)檢測(cè)模塊分為運(yùn)動(dòng)目標(biāo)檢測(cè)、目標(biāo)分割和目標(biāo)保存3個(gè)子模塊。首先,將定點(diǎn)視頻監(jiān)控中錄制的視頻文件輸入到運(yùn)動(dòng)目標(biāo)檢測(cè)子模塊中,為有效避免重復(fù)數(shù)據(jù)對(duì)統(tǒng)計(jì)結(jié)果的影響,按照每間隔15 s的速度提取1幀監(jiān)控畫面,并作標(biāo)記幀序號(hào)處理;通過高斯背景建模算法對(duì)幀中的運(yùn)動(dòng)目標(biāo)進(jìn)行檢測(cè)和提取,并作圖像二值化處理;其次,在目標(biāo)分割子模塊中,對(duì)目標(biāo)幀中所檢測(cè)到的運(yùn)動(dòng)目標(biāo)進(jìn)行分割,得到二值化處理后的運(yùn)動(dòng)目標(biāo)檢測(cè)結(jié)果,確定出這些運(yùn)動(dòng)目標(biāo)的坐標(biāo)、寬度、高度以及解決噪聲、影子等因素對(duì)目標(biāo)分割的影響,如頭腳斷裂、陰影干擾等問題;最后,在目標(biāo)保存子模塊中,保存已分割好的各運(yùn)動(dòng)目標(biāo)圖片,這些圖片數(shù)據(jù)作為該子模塊的數(shù)據(jù)輸出。
行人分類模塊的主要功能是完成對(duì)運(yùn)動(dòng)目標(biāo)檢測(cè)模塊中得到的運(yùn)動(dòng)目標(biāo)進(jìn)行分類,即從提取出的運(yùn)動(dòng)目標(biāo)中檢測(cè)出運(yùn)動(dòng)行人,然后為數(shù)據(jù)分析模塊提供接口調(diào)用。該子模塊由卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練與生成和卷積神經(jīng)網(wǎng)絡(luò)模型接口調(diào)用2個(gè)子模塊構(gòu)成。首先對(duì)卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,然后使用接口調(diào)用卷積神經(jīng)網(wǎng)絡(luò)對(duì)分割好的圖片進(jìn)行分類。該模塊的輸入為已分割好的運(yùn)動(dòng)目標(biāo)圖片,輸出為各已分割目標(biāo)圖片的分類結(jié)果。
數(shù)據(jù)分析模塊主要完成平臺(tái)中相關(guān)數(shù)據(jù)的記錄、對(duì)比與分析。記錄的數(shù)據(jù)包括主攝像頭與輔助攝像頭2種情況下分別錄制的視頻文件對(duì)應(yīng)的批次序號(hào)、分割出的文件名稱、分類結(jié)果、分類概率值、結(jié)果核對(duì)值等原始數(shù)據(jù)。根據(jù)這些原始數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,得出實(shí)驗(yàn)結(jié)果。數(shù)據(jù)分析模塊的輸入為行人分類模塊輸出的相關(guān)分類數(shù)據(jù),輸出為數(shù)據(jù)分析匯總表。
2.1.1 運(yùn)動(dòng)目標(biāo)檢測(cè)模塊的算法設(shè)計(jì)
在運(yùn)動(dòng)目標(biāo)檢測(cè)模塊中,主要需要完成的任務(wù)是對(duì)視頻文件中的運(yùn)動(dòng)目標(biāo)進(jìn)行檢測(cè)并提取,最后生成各運(yùn)動(dòng)目標(biāo)圖片。模塊的運(yùn)動(dòng)目標(biāo)檢測(cè)、提取與保存關(guān)鍵算法設(shè)計(jì)如圖3和圖4所示。
圖3 運(yùn)動(dòng)目標(biāo)檢測(cè)模塊的算法Fig.3 Algorithm of moving target detection module
圖4 目標(biāo)提取與保存函數(shù)算法Fig.4 Object extraction and preservation function algorithm
通過高斯背景建模算法對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行檢測(cè),然后進(jìn)行前景二值化、去陰影、膨脹處理,再調(diào)用頭腳斷裂問題處理、陰影處理、圖片標(biāo)記、保存處理、結(jié)果顯示等函數(shù)[7-10],檢測(cè)效果如圖5所示。
(a) 主攝像頭遠(yuǎn)景區(qū)域檢測(cè)結(jié)果; (b) 輔助攝像頭檢測(cè)結(jié)果圖5 檢測(cè)效果Fig.5 Detection result
2.1.2 運(yùn)動(dòng)目標(biāo)檢測(cè)模塊運(yùn)行環(huán)境的搭建
為了實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)檢測(cè)模塊的功能,主要應(yīng)用到的操作系統(tǒng)和軟件開發(fā)工具等如表1所示。
表1 運(yùn)動(dòng)目標(biāo)檢測(cè)模塊的開發(fā)運(yùn)行環(huán)境
2.1.3 運(yùn)動(dòng)目標(biāo)檢測(cè)算法的實(shí)現(xiàn)
根據(jù)算法設(shè)計(jì)流程圖,逐步完成各功能函數(shù)的測(cè)試應(yīng)用,確定相關(guān)參數(shù)設(shè)置,最后輸出各運(yùn)動(dòng)目標(biāo)所對(duì)應(yīng)的圖像文件,實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)檢測(cè)模塊的功能。在輸入的監(jiān)控視頻中通過調(diào)用各功能函數(shù),進(jìn)行運(yùn)動(dòng)目標(biāo)的提取。在運(yùn)動(dòng)目標(biāo)檢測(cè)過程中,主要涉及到的實(shí)際問題有畫面噪聲的影響、行人影子的影響等。
2.2.1 行人分類模塊的算法設(shè)計(jì)
圖6 行人分類過程Fig.6 Pedestrian classification process
2.2.2 行人分類模塊運(yùn)行環(huán)境的搭建
在此模塊中,主要完成卷積神經(jīng)網(wǎng)絡(luò)的構(gòu)造、訓(xùn)練和調(diào)用,同時(shí)采用可視化的形式管理數(shù)據(jù)和顯示結(jié)果,選擇的操作系統(tǒng)、軟件及工具包等如表2所示。
表2 行人分類模塊的運(yùn)行環(huán)境Table 2 Operating environment of pedestrian classification module
2.2.3 行人分類模塊的實(shí)現(xiàn)
1) caffe框架的運(yùn)行環(huán)境測(cè)試
運(yùn)行環(huán)境搭建好后,先對(duì)環(huán)境進(jìn)行功能測(cè)試。選擇經(jīng)典的卷積神經(jīng)網(wǎng)絡(luò)模型LeNet,測(cè)試數(shù)據(jù)集采用MNIST,測(cè)試模型的識(shí)別準(zhǔn)確率為98.99%,符合實(shí)驗(yàn)要求,caffe框架運(yùn)行環(huán)境配置正確[11-12]。
2) 行人數(shù)據(jù)集的建立
利用運(yùn)動(dòng)目標(biāo)檢測(cè)模塊中所提取的運(yùn)動(dòng)行人樣本圖片,建立行人數(shù)據(jù)集,作為網(wǎng)絡(luò)訓(xùn)練的數(shù)據(jù)源。經(jīng)過人工篩選建立的數(shù)據(jù)集行人正樣本1 451個(gè),負(fù)樣本1 085個(gè)。建立數(shù)據(jù)集正負(fù)樣本的工作區(qū)和數(shù)據(jù)集的標(biāo)簽文件,標(biāo)簽與分類序號(hào)的對(duì)應(yīng)關(guān)系如表3所示,數(shù)據(jù)集的名稱設(shè)置為person_2。
表3 分類序號(hào)與標(biāo)簽Table 3 Classification number and label
3) 卷積神經(jīng)網(wǎng)絡(luò)的構(gòu)建和訓(xùn)練
采用13層的AlexNet卷積神經(jīng)網(wǎng)絡(luò),用所建立出的數(shù)據(jù)集進(jìn)行網(wǎng)絡(luò)訓(xùn)練[13]。訓(xùn)練初期設(shè)定一個(gè)較大的學(xué)習(xí)率0.01,訓(xùn)練一段時(shí)間后,網(wǎng)絡(luò)跳出局部最小值,然后逐步調(diào)小學(xué)習(xí)率,直到達(dá)到0.001,使得網(wǎng)絡(luò)參數(shù)得到優(yōu)化調(diào)整。訓(xùn)練精確度達(dá)到95.16%時(shí),網(wǎng)絡(luò)分類效果較好。
4) 卷積神經(jīng)網(wǎng)絡(luò)接口調(diào)用
卷積神經(jīng)網(wǎng)絡(luò)經(jīng)過行人數(shù)據(jù)集對(duì)其訓(xùn)練,得到分類效果良好的網(wǎng)絡(luò)模型參數(shù)。使用Python對(duì)網(wǎng)絡(luò)模型接口調(diào)用,并將分類結(jié)果數(shù)據(jù)送入數(shù)據(jù)分析模塊[14]。
2.3.1 數(shù)據(jù)分析模塊的算法設(shè)計(jì)
表4 基礎(chǔ)信息表Table 4 Basic information table
表5 結(jié)果統(tǒng)計(jì)表Table 5 Results table
上述行人分類模塊對(duì)目標(biāo)進(jìn)行分類時(shí),由于目標(biāo)分類數(shù)據(jù)數(shù)量較多,且需要統(tǒng)計(jì)每一目標(biāo)的文件名、分類結(jié)果、屬于行人的概率值、不屬于行人的概率值及目標(biāo)檢測(cè)所屬監(jiān)控視頻文件的批次序號(hào)等多項(xiàng)數(shù)據(jù)值,數(shù)據(jù)分析模塊采用數(shù)據(jù)庫(kù)進(jìn)行相關(guān)數(shù)據(jù)的存儲(chǔ)與統(tǒng)計(jì)分析,使用MYSQL數(shù)據(jù)庫(kù)建立基本信息表和結(jié)果統(tǒng)計(jì)分析表[15]。設(shè)計(jì)records表用于存儲(chǔ)基礎(chǔ)數(shù)據(jù)信息,結(jié)構(gòu)如表4所示,結(jié)果分析表結(jié)構(gòu)如表5所示。
2.3.2 數(shù)據(jù)統(tǒng)計(jì)分析的實(shí)現(xiàn)
使用可視化數(shù)據(jù)庫(kù)工具執(zhí)行數(shù)據(jù)統(tǒng)計(jì)計(jì)算命令,對(duì)records表中的基礎(chǔ)實(shí)驗(yàn)數(shù)據(jù)進(jìn)行統(tǒng)計(jì)分析,并將實(shí)驗(yàn)結(jié)果數(shù)據(jù)保存到results表中。
在行人檢測(cè)平臺(tái)中,采用輔助變焦攝像頭對(duì)遠(yuǎn)景區(qū)域內(nèi)行人檢測(cè)的方法,有效地降低了遠(yuǎn)景區(qū)域中行人的檢測(cè)誤差,使得整個(gè)行人檢測(cè)平臺(tái)的行人檢測(cè)準(zhǔn)確率得到提高,行人目標(biāo)在運(yùn)動(dòng)目標(biāo)檢測(cè)模塊中的相對(duì)檢出率提高到了95.29%。在輔助攝像頭中檢測(cè)到的運(yùn)動(dòng)目標(biāo)解析度也得到提高,有利于后續(xù)目標(biāo)的分類和分析處理。在行人分類模塊中,遠(yuǎn)景區(qū)域行人分類準(zhǔn)確率由80.43%提升至92.61%,行人分類準(zhǔn)確率與分類平均概率所提高的相對(duì)比率分別為15.14%和3.75%,取得了較好的檢測(cè)效果。