龐丁黎,奪實祥偉,楊舒舒,秦君
(云南電網(wǎng)有限責任公司德宏供電局,云南 德宏 678400)
據(jù)統(tǒng)計,大約80%的人從外部世界中獲得的信息都是來自于視覺,所以,視覺信息在人們獲得信息中扮演著非常重要的角色。同時,伴隨著科學技術的持續(xù)發(fā)展,人們需要利用現(xiàn)有的技術,來幫助人們完成某些視覺任務,從而使計算機視覺這一領域成為了當下的一個研究熱點。
在計算機視覺領域中,行人檢測屬于一個重要的研究領域,它主要是通過使用圖像處理和機器學習的方法,來對圖像中的行人展開定位,并對每個行人目標的大致位置進行精確的預測。一個較為精確的行人檢測模型,是后續(xù)圖像智能分析(行人目標跟蹤,識別,檢索,匹配等領域)的先驗條件。所以,它的應用領域非常廣泛,包括:軍事領域、視頻監(jiān)控與安防領域、無人駕駛領域、搜索營救領域[1]。
2005 年,Dalal 等通過對行人區(qū)域進行分割,并通過對其局部區(qū)域進行梯度直方圖的統(tǒng)計,得到了行人邊緣的輪廓信息。自HOG(High Theoretical Graph,簡稱HOG)特征被提出以來,已有不少學者在此基礎上對其進行了改進。為了提高梯度直方圖的檢測效率問題,Zhu 等人[2]采用積分圖的形式加速梯度直方圖的計算。Yangwei Pang 等人通過對局部窗口重疊區(qū)域的特征利用,避免了梯度直方圖在特征選取的時候重復計算問題,將檢測時間縮短為原來的1/5。2008 年Felzenszwalb 等人[3]基于圖結構,提出了可形變部件模型(Deformable Part Model,簡稱DPM),該模型主要包括根模型和部件模型兩部分。該模型將整體和局部信息結合在一起。根模型在低分辨的特征圖上捕獲整體輪廓,部件模型在高分辨率的特征圖上捕獲細節(jié)部分,將二者進行融合得到最終的結果。2010 年,F(xiàn)elzenszwalb 等人[4]在原有可形變部件模型的基礎上,融入了視覺語法和多個視覺角度,采用一組混合模型,能夠更好的處理人體的形變問題。目前可形變部件模型已成為眾多分類器、分割、人體姿態(tài)和行為分類的重要部分。然而在可形變部件模型的檢測算法中,算法的時間主要消耗在部件和圖片匹配過程以及最優(yōu)部件位置的選取與計算上,F(xiàn)elzenszwalb的模型在當時的時間復雜度上并不理想,因此,F(xiàn)elzenszwalb 在可形變部件模型的基礎上提出了級聯(lián)檢測,使用主成分分析法對特征進行降維,提高了整個算法的速度。
隨著深度學習技術的不斷發(fā)展,行人遮擋檢測進入了第二階段,使用深度學習方法進行檢測。2009 年Piotr Dollar 等人[5]開源了Caltech數(shù)據(jù)集,從而為行人遮擋檢測在深度學習領域的發(fā)展提供了更多的高質(zhì)量的行人訓練數(shù)據(jù)集,為近年來深度學習在行人遮擋檢測領域的發(fā)展奠定了基石。2017 年 Shanshan Zhang 等人[6],對于Cityscapes 數(shù)據(jù)集進行了重新標注并且開源了Citypersons 數(shù)據(jù)集,與此同時對于Faster RCNN 進行了改進,使其更有利于行人遮擋檢測任務,使用該方法進行行人遮擋檢測成為近幾年行人遮擋檢測領域的基準線。2018 年行人遮擋檢測領域有了迅猛的發(fā)展,Chunluan Zhou等人[7]提出了在模型訓練的時候, 將可見框和全身框同時進行訓練,這兩個部分相互影響,從而降低在遮擋條件下漏檢率。Xinlong Wang 等人提出了Rep Loss,降低了密集場景下行人的漏檢率。
從國內(nèi)外的研究現(xiàn)狀分析,不管是基于傳統(tǒng)的機器學習方法還是基于深度學習方法對于行人遮擋檢測這一領域仍存在很多的不足,還需要加以研究。
行人檢測指的是以行人為對象檢測的主體,對輸入圖片中是否含有行人進行判斷,如果圖片中有行人,就將其位置框出來,反之,則會忽略該圖片。但在行人檢測中,遮擋是一種很普遍的現(xiàn)象,其根本原因在于攝像機與移動物體的視角不同,即攝像機與移動物體的視角不同,所以,在現(xiàn)實生活中,遮擋現(xiàn)象普遍存在。由于人體局部被遮擋,導致對人體進行識別時,往往會出現(xiàn)漏檢的情況。
基于機器學習的方法是現(xiàn)階段行人檢測算法的主流,主要運用特征提取和分類任務兩個模塊[8]來進行檢測圖像或視頻幀中的行人。特征提取部分主要是獲得邊緣特征、顏色特征、紋理特征等行人外觀特征和深度語義特征信息,然后把這些特征運用于訓練分類器,將背景和行人目標兩個類別進行高效地辨別并輸出分類結果。最后對輸入的測試圖像進行檢測,若存在行人目標則輸出其預測框,如圖1 所示。
圖1 行人檢測流程
目前基于深度學習的目標檢測算法,比如說Faster RCNN,YOLO V3,SSD,RetinaNet等算法,對于非遮擋場景,也就是整張圖片中完整的行人目標有較好的表現(xiàn),但是在遮擋場景下效果就變得很差,如圖2 所示,我們可以看到由于行人之間遮擋會導致目標檢測算法會產(chǎn)生漏檢現(xiàn)象。相比于完整的行人目標,檢測器難以提取遮擋行人的特征,從而導致檢測結果變差。綜上所述,行人遮擋檢測是行人檢測領域當中的難題之一。這也是本文主要的研究內(nèi)容。
圖2 行人之間遮擋導致漏檢效果
行人遮擋檢測主要分為2 種情況:如圖3左圖所示表示物體對于行人的遮擋,如圖3 右圖所示表示行人與行人之間的遮擋。對于一般的目標檢測算法,在被遮擋的行人場景中表現(xiàn)良好,但是在被遮擋的行人圖像中很容易產(chǎn)生漏檢現(xiàn)象。
圖4 深度置信網(wǎng)絡結構
在實際安防場景中,遮擋問題主要出現(xiàn)在行人密集場景,行人與行人之間的遮擋出現(xiàn)的頻率遠遠大于物體對于行人的遮擋。因此本文主要解決行人與行人之間的遮擋的問題,經(jīng)過實驗發(fā)現(xiàn),本文算法不僅僅可以減少因為行人與行人之間的遮擋而產(chǎn)生的漏檢,而且還可以減少因為物體對于行人遮擋而產(chǎn)生的漏檢。
基于深度學習的遮擋行人檢測算法主要分成3 種類別:
1)基于深度置信網(wǎng)絡(DBN);
2)基于卷積神經(jīng)網(wǎng)絡(CNN);
3)基于循環(huán)神經(jīng)網(wǎng)絡(RNN)。
基于深度學習的算法對遮擋處理主要有兩種方式:
1)引入部件模型,通過深度學習網(wǎng)絡結構和部件模型的相結合,綜合處理遮擋;
2)基于優(yōu)化函數(shù),通過優(yōu)化損失函數(shù)對遮擋進行處理。
基于深度置信網(wǎng)絡的檢測算法是基于深度置信網(wǎng)絡(Deep Belief Network,DBN)進行建模,能夠有效地識別和定位輸入圖像中的目標物體。深度置信網(wǎng)絡是一種多層前饋神經(jīng)網(wǎng)絡,它通過對多個無監(jiān)督層進行訓練來提高學習性能。這種網(wǎng)絡通常由多個限制玻爾茲曼機(Restricted Boltzmann Machine,RBM)組成[9],每個RBM 都包含一個可見層和一個隱藏層。RBM 的學習過程是通過無監(jiān)督的方法進行的,即網(wǎng)絡根據(jù)訓練數(shù)據(jù)自動學習每個RBM 中的參數(shù)。深度置信網(wǎng)絡通過逐層訓練每個RBM 來進行訓練,從而實現(xiàn)了對高層特征的自動提取和學習。
在基于深度置信網(wǎng)絡的檢測算法中,首先通過將輸入圖像傳遞給深度置信網(wǎng)絡來提取特征。然后,通過添加全連接層和輸出層,將網(wǎng)絡轉換為分類器,用于對輸入圖像中的目標進行識別和定位。深度置信網(wǎng)絡的主要優(yōu)點在于它能夠有效地學習圖像中的高級特征,因此在處理復雜圖像時比傳統(tǒng)的檢測算法表現(xiàn)更好。此外,深度置信網(wǎng)絡還可以通過微調(diào)來進一步提高性能,這種微調(diào)技術利用大量標記數(shù)據(jù)來對網(wǎng)絡進行訓練,從而實現(xiàn)更好的分類和檢測。
雖然基于深度置信網(wǎng)絡的檢測算法在實際應用中表現(xiàn)出了良好的性能,但它們也存在一些局限性。例如:
1)訓練數(shù)據(jù)量的要求較高?;谏疃戎眯啪W(wǎng)絡的檢測算法通常需要大量的訓練數(shù)據(jù)來獲得良好的性能。這可能會限制它們在某些應用場景下的效果,特別是在數(shù)據(jù)量較小的情況下;
2)訓練和調(diào)試過程相對復雜。由于深度置信網(wǎng)絡的復雜性和訓練過程的非監(jiān)督性質(zhì),這種算法的訓練和調(diào)試過程相對復雜。這使得它們可能需要更多的專業(yè)知識和技能來使用和優(yōu)化。
3)可解釋性較低。由于深度置信網(wǎng)絡的復雜性和非線性性質(zhì),它們通常比傳統(tǒng)的檢測算法更難解釋。這可能會限制它們在某些實際應用場景中的使用,例如醫(yī)療診斷或法律審查等需要對決策過程進行解釋的場景。
4)對計算資源要求較高。基于深度置信網(wǎng)絡的檢測算法通常需要大量的計算資源來進行訓練和推理。這可能會限制它們在某些低成本或低功耗設備上的應用,例如移動設備或嵌入式設備。
5)對數(shù)據(jù)質(zhì)量的要求較高。由于基于深度置信網(wǎng)絡的檢測算法通常需要大量的訓練數(shù)據(jù),因此數(shù)據(jù)質(zhì)量對它們的性能至關重要。如果訓練數(shù)據(jù)中存在噪聲或錯誤標注,可能會導致算法的性能下降。
總之,基于深度置信網(wǎng)絡的檢測算法是一種非常有前途的技術,它在圖像處理和計算機視覺領域具有廣泛的應用前景。通過不斷地改進和優(yōu)化,這種算法有望在未來實現(xiàn)更好的性能和更廣泛的應用。
基于卷積神經(jīng)網(wǎng)絡(如圖5 所示)的檢測算法是一種應用深度學習技術進行目標檢測的方法。它使用卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)來對輸入圖像進行處理和分類,從而實現(xiàn)對目標的檢測和識別[10]。
圖5 神經(jīng)網(wǎng)絡結構
基于卷積神經(jīng)網(wǎng)絡的檢測算法有如下優(yōu)勢:
1)特征提取能力強。卷積神經(jīng)網(wǎng)絡具有非常強的特征提取能力,能夠從輸入圖像中提取出高層次、抽象的特征,這些特征可以用來區(qū)分不同的目標類別。卷積神經(jīng)網(wǎng)絡的卷積層和池化層結構可以有效地捕捉不同尺度和方向的特征。
2)魯棒性好?;诰矸e神經(jīng)網(wǎng)絡的檢測算法對圖像中的光照、尺度、姿態(tài)、遮擋等變化具有很好的魯棒性,能夠處理各種復雜的場景。
3)可擴展性強?;诰矸e神經(jīng)網(wǎng)絡的檢測算法能夠輕松地應用于多類別目標檢測、實時目標跟蹤等任務中,并能夠通過添加更多的卷積層、池化層或全連接層等進一步提升其性能。
4)訓練效率高。基于卷積神經(jīng)網(wǎng)絡的檢測算法使用反向傳播算法進行訓練,相較于傳統(tǒng)的機器學習算法,其訓練效率更高。同時,由于CNN 可以直接使用圖像作為輸入,因此無需進行繁瑣的特征提取過程,也降低了訓練的復雜度。
5)實現(xiàn)方式多樣?;诰矸e神經(jīng)網(wǎng)絡的檢測算法有很多不同的實現(xiàn)方式,如Faster R-CNN(見圖6)、YOLO、SSD 等,這些算法都可以根據(jù)不同的需求進行定制和改進。
圖6 R-CNN算法結構
雖然基于卷積神經(jīng)網(wǎng)絡的檢測算法具有許多優(yōu)點,但也存在一些不足之處。
1)目標定位精度?;诰矸e神經(jīng)網(wǎng)絡的檢測算法在目標定位精度上仍存在一定的局限性。尤其是在目標大小不一的情況下,算法可能難以精確地定位目標,這可能會導致誤判和漏檢。
2)目標多樣性?;诰矸e神經(jīng)網(wǎng)絡的檢測算法往往只能檢測出一類或少數(shù)類目標,對于目標種類較多的情況,可能需要訓練多個不同的模型進行檢測,這會增加算法的復雜性和成本。
3)訓練數(shù)據(jù)量。基于卷積神經(jīng)網(wǎng)絡的檢測算法需要大量的訓練數(shù)據(jù)才能獲得良好的性能。對于某些應用場景,如醫(yī)學圖像分析等,數(shù)據(jù)采集難度較大,可能會影響算法的性能。
4)運算速度。雖然基于卷積神經(jīng)網(wǎng)絡的檢測算法可以通過GPU 等硬件加速來提高運算速度,但仍存在一定的計算復雜度,可能無法滿足實時性要求較高的應用場景。
總之,基于卷積神經(jīng)網(wǎng)絡的檢測算法在實際應用中具有一定的局限性,需要在算法設計和應用場景選擇上進行綜合考慮。在未來,隨著技術的不斷發(fā)展和數(shù)據(jù)資源的不斷積累,相信這些不足之處也將會逐步被克服。
基于循環(huán)神經(jīng)網(wǎng)絡(RNN)的行人檢測是計算機視覺領域的一項重要研究。RNN 是一種能夠?qū)π蛄袛?shù)據(jù)進行建模的深度學習模型(見圖7)。在行人檢測任務中,RNN 可以通過對序列數(shù)據(jù)進行處理和判斷,來實現(xiàn)對行人的檢測。RNN 是一類以序列數(shù)據(jù)為輸入,在序列的演進方向進行遞歸并且所有節(jié)點(循環(huán)單元)按鏈式連接的遞歸神經(jīng)網(wǎng)絡。其中雙向循環(huán)神經(jīng)網(wǎng)絡(Bidirectional RNN,Bi-RNN)和長短期記憶網(wǎng)絡(Long Short Term Memory networks,LSTM)是常見的循環(huán)神經(jīng)網(wǎng)絡。
圖7 循環(huán)神經(jīng)網(wǎng)絡結構
傳統(tǒng)神經(jīng)網(wǎng)絡將原始圖像作為輸入,網(wǎng)絡的復雜程度導致學習時間較長,影響檢測器的性能。崔鵬等提出DSAEN(Deep Sparse Auto-Encoder Network),在輸入晨后加了一層感興趣縣,提取出充分表示行人信息的混合特征,在處理神經(jīng)網(wǎng)絡復雜的運算問題時,該算法將通過網(wǎng)絡得到的特征輸入到線性核函數(shù)的SVM分類器中進行訓練,并采用非極大值抑制法,降低計算量,能夠?qū)π腥说奈恢眠M行精確定位。Stewart 等人提出了一種由over feat 模型改進而來的方法,如圖8。該方法將圖像解碼成一組人體檢測器,使用一個循環(huán)的LSTM 層進行序列生成,并使用一個新的提夫函數(shù),同時結合定位和檢測兩方面對模型進行端對端訓練。同時也證明了可以利用LSTM 單元鏈將圖像內(nèi)容解碼為可變長度的相干實值輸出,是一個分部處理遮擋的新思路。
圖8 LSTM結構
在RNN 模型中,輸入序列的每個時間步都有一個對應的隱藏狀態(tài)。這個隱藏狀態(tài)是在模型學習過程中動態(tài)生成的,可以捕捉到輸入序列中的長期依賴關系。對于行人檢測任務,輸入序列通常是由視頻幀組成的。RNN 模型的核心是循環(huán)層。在循環(huán)層中,RNN 會根據(jù)當前時間步的輸入和上一個時間步的隱藏狀態(tài),計算出當前時間步的隱藏狀態(tài)。這個隱藏狀態(tài)可以看作是對前面所有時間步的信息進行了聚合。由于循環(huán)層的結構,RNN 能夠捕捉到輸入序列中的時序信息,對于行人檢測任務尤為重要。
在行人檢測任務中,RNN 通常被用于序列建模,即將輸入的視頻幀序列轉換為輸出的序列,其中序列中的每個元素代表當前時間步是否存在行人。為了實現(xiàn)這個目標,通常需要使用卷積神經(jīng)網(wǎng)絡(CNN)來對每個視頻幀進行特征提取,然后再將提取出的特征作為輸入序列,傳入RNN 模型進行處理。基于RNN 的行人檢測模型通常需要經(jīng)過大量的訓練才能達到較高的準確率。在訓練過程中,需要使用大量的數(shù)據(jù)對模型進行訓練,并對模型進行不斷的優(yōu)化。同時,也需要對模型進行調(diào)參,以達到最佳的性能。
總的來說,基于RNN 的行人檢測是一項具有挑戰(zhàn)性的任務,需要對深度學習模型有深入的了解,并在實踐中不斷探索和優(yōu)化。
基于深度學習的遮擋情形下行人檢測是計算機視覺領域中一個重要的研究方向,旨在解決現(xiàn)實場景中行人被遮擋的情況下的檢測問題。近年來,隨著深度學習技術的發(fā)展和硬件設備的不斷升級,基于深度學習的遮擋情形下行人檢測已經(jīng)取得了顯著的進展。首先,可以通過訓練大規(guī)模的數(shù)據(jù)集來學習遮擋情形下行人的特征,進而提高檢測的準確性和魯棒性;其次,一些基于深度學習的方法采用多尺度的特征提取方式和級聯(lián)式的檢測網(wǎng)絡,可以有效地提高檢測的速度和效率;此外,一些基于深度學習的方法還將注意力機制和目標跟蹤技術等引入行人檢測中,進一步提升了檢測的性能和魯棒性。
基于深度學習的遮擋情形下行人檢測在未來仍有較大的發(fā)展空間和應用前景。首先,隨著深度學習技術的不斷進步,基于深度學習的方法在檢測的準確性、魯棒性和速度等方面都將得到進一步的提高;其次,隨著自動駕駛、智能監(jiān)控等領域的發(fā)展,基于深度學習的遮擋情形下行人檢測將在未來扮演著越來越重要的角色,成為保障交通安全和提高智能化程度的關鍵技術之一。同時,隨著物聯(lián)網(wǎng)和云計算等技術的不斷發(fā)展,基于深度學習的遮擋情形下行人檢測也將得到更加廣泛的應用和普及,包括城市交通管理、公共安全監(jiān)控等領域。
綜上所述,基于深度學習的遮擋情形下行人檢測是一個充滿挑戰(zhàn)和機遇的領域,需要不斷探索和創(chuàng)新,才能不斷提高檢測的準確性、魯棒性和效率,為人類社會的發(fā)展做出更大的貢獻。