1. 程式人生 > >基於神經網路的目標檢測論文之目標檢測系統:實時路況檢測系統的設計與實現

基於神經網路的目標檢測論文之目標檢測系統:實時路況檢測系統的設計與實現

注:本文源自本人的碩士畢業論文,未經許可,嚴禁轉載!
原文請參考知網:知網地址

第五章 實時路況檢測系統的設計與實現

物體識別技術被廣泛應用於人們的生產生活中。隨著深度學習與雲端計算的飛速發展,帶動了物體識別技術產生質的飛躍。高解析度影象和檢測的實時性要求越來越高。

從本章開始,我們從無到有開發一個小型的物體識別(路況資訊識別)系統。整個系統包括兩大部分,一個是線下網路的訓練和驗證,另一個是線上物體識別。第一部分線下網路訓練主要用於網路引數的訓練,第二部分線上物體識別即為系統的實際應用。這兩部分相輔相成,互為補充。

線上物體識別系統一般包括4個組成部分,分別是影象採集,影象預處理,影象特徵提取以及影象匹配與識別。

5.1 路況檢測系統需求分析

物體識別技術雖然很早就已經開始應用,但是由於檢測技術一直無法突破,導致識別領域大多隻限於科學研究,並沒有在實際生產生活中發揮作用。隨著各行業的飛速發展,尤其是農業現代化程序加快,工業4.0時代全面開啟,計算機視覺領域也迎來一波迅猛發展。社會化大生產導致了分工明確,也促使了機器代替人工的迫切需求。機器能達到人類無法企及的計算速度,演算法能發現人眼捕捉不到的資訊。日常生活中我們仍能接觸到很多影象檢測的應用,比如,手機刷臉解鎖,刷臉支付,過安檢接受檢查等,人們有意或無意間都會碰到這些有趣的事情。物體識別演算法已經融入到了人們生活的方方面面。實時路況檢測就是一個重要的研究方向。想象一下,每天中國的道路上奔跑著數以千萬記的車子,同時每天又在發生著一些本可以避免的交通事故。如果每個車上都安裝一套這樣的實時檢測路況的系統,很大程度上能幫助司機提前做出判斷,從而減少事故的發生。

構建一個高效可用的實時路況檢測系統需要具備很多優良的效能,主要的需求如下所示:

1、系統的功能性需求就是,當我們的車子行駛在道路上時,該檢測系統能實時地檢測到道路及兩旁的目標物體並標出目標的具體位置和置信度。這些目標物體包括行人,過往車輛,交通標識等。系統先根據資料集訓練模型,然後從攝像頭視訊流採集到的一幀幀的影象經過模型進行預測,最後返回到客戶端與使用者互動。

2、系統的效能需求。要求模型的檢測既能保證準確率,又能保證速度。深度學習模型在訓練時耗時長,對硬體要求高,這就要求能夠真正適應實時路況的場景需求。

3、系統的可移植性。系統要求預測模組能和系統中其他的模組很好地融合在一起,那麼演算法就應該具備高可移植性。

4、系統的魯棒性。考慮到實際中的路況資訊的複雜性,以及室外天氣多變,這些都是阻礙系統正常檢測的因素。這就要求系統有一定的魯棒性,能夠在不同場景和天氣條件下正常檢測。

5.2 系統概述

系統採用流式開發模型。具體過程是先從視訊畫面中採集影象,接著進行影象預處理,再進行影象特徵提取,最後進行影象識別,這幾個模組順序執行,實現了真正的端到端的處理過程。系統的處理流程如圖5-1所示

圖5-1 物體識別過程
該系統的具體執行流程為:
1、影象採集:影象採集是指通過採集視訊流中的每一幀。
2、影象預處理:裁剪、規範化等處理。
3、影象特徵提取:提取影象中的數字化資訊,生成特徵圖。
4、影象特徵匹配:將提取的特徵與資料集中的標籤進行匹配。

該系統中網路訓練階段存在著大量矩陣運算和線性運算。為了保證快速完成任務,系統使用了GPU進行計算加速。系統的開發環境和工具如下:
1、開發平臺:Windows10、NVIDIA GTX 1080。
2、開發工具:JavaWeb、CUDA、OpenCV。

5.3 系統架構

在弄清楚了實際的需求後,我們確定使用客戶端/伺服器模式作為整體系統的架構。伺服器端的主要功能就是提供識別服務,識別服務的核心主要是由第四章提出的基於SSD改進的物體識別方法。伺服器主要工作流程是接收視訊資料流並提取影象後對影象資料做處理,最終將標定好的影象傳輸到客戶端。客戶端使用JavaWeb技術來實現,通過傳送HTTP請求到伺服器,伺服器端將結果以JSON格式返回給客戶端。系統的整體功能模組圖如圖5-2所示,從圖中我們可以看出,系統首先分為兩個比較大的模組,分別是離線的網路訓練和線上的物體識別,這兩個大模組又包括了一些小模組,接下來會詳細介紹。

圖5-2 系統整體框架圖
5.3.1 視訊流解析

這個模組主要是用來對視訊流進行取幀操作,將視訊擷取成一幀一幀的影象,然後送到後續的模組進行處理。工作示意圖如圖5-3所示。

圖5-3 視訊流解析模組

5.3.2 影象預處理

從視訊流中取到的影象是原始影象,並不能直接輸入進檢測演算法進行計算,需要對影象進行預處理。預處理的操作主要包括縮放、裁剪和歸一化等。工作示意圖為5-4。

圖5-4 影象預處理模組
5.3.3 物體識別演算法模組

這個模組是整個系統的核心部件。模組本身是個大模組,其中又包括了幾個小模組,這些小模組分別執行檢測演算法中的一個步驟。訓練模組根據系統提供的資料集對網路的引數進行學習,驗證模組用來測試生成的深度模型是否達到相應的準確度,特徵提取模組用來提取影象中的特徵圖,預測模組根據特徵圖進行目標分類和邊框迴歸。整個大的模組流程圖如圖5-5所示:

圖5-5 識別演算法模組
5.3.4 日誌模組

這個模組用來記錄檢測過程中產生的識別資訊。比如:每一幀視訊中是否包含想要檢測到的物體,如果有,則記錄物體的邊框位置和置信度。流程圖如圖5-6所示:
在這裡插入圖片描述

5.4 系統流程

5.4.1 物體識別流程

這個模組用來記錄檢測過程中產生的識別資訊。比如:每一幀視訊中是否包含要檢測的目標。整個系統的流程圖如圖5-7所示,流程圖中包括了前面講的幾個模組。這些模組按順序組成一個端到端的影象檢測系統,具體流程圖如圖5-7所示:

圖5-7 系統處理過程

圖5-8 系統處理流程圖
從圖中可以看出,系統從讀取視訊流開始,逐幀讀取視訊中的每一幀影象,然後將影象進行預處理(包括影象縮放、裁剪和歸一化),處理過的影象再經過特徵提取,得到深度特徵圖,再根據特徵圖進行物體類別和邊框的預測,最後將預測產生的資料寫入日誌。系統的具體流程圖如圖5-8所示。

5.4.2 網路訓練流程

神經網路演算法的流程就是網路訓練的過程,也是網路學習引數的過程。如前面所講的,網路的訓練由兩個階段組成,一個是前向傳播得到誤差,另一個是反向傳播修改網路引數。

前向傳播就是經過一系列卷積,池化,ReLU非線性轉換的過程。反向傳播就是向前傳遞誤差,最終修改引數的過程。網路訓練的流程圖如圖5-9所示:
圖5-9 網路訓練流程圖
5.5 系統測試與分析

在整個系統需求分析裡,最重要的兩個技術指標就是系統的識別能力和識別速度。在本節中將會在實際場景下對系統進行全面的測試。

5.5.1 系統的檢測效果

我們的系統客戶端和伺服器均使用流行的javaweb技術,系統客戶端是基於HTML開發的,使用瀏覽器開啟就能訪問到業務功能,比如可以點選選擇一張影象進入系統,隨後就會出現被標定好資料的影象進行對比。伺服器端是用來訓練模型的,可以選擇配置檔案和相應的資料集,以及規定好批量大小,點選開始訓練就可以實現網路模型的擬合了。訓練效果如圖5-10所示。訓練好模型現在我們選擇一張影象對系統進行檢驗,檢驗結果如圖5-11所示:
在這裡插入圖片描述
圖5-10 模型訓練功能圖

在這裡插入圖片描述
圖5-11 系統檢測樣例

5.5.2 系統的效能測試與分析

本人對系統的效能進行了詳細的測試,系統的測試嘗試了多個不同的基準資料集。本節使用多樣的模型引數進行了測試,分別對比多種情況下系統的準確性和實時性。

論文在訓練的過程中使用了兩種不同的資料集,一種是常用的PASCAL VOC2007,另一個也是一個公開的資料集CityScapes。VOC資料集包含常見的20類物體,CityScapes資料集是一個致力於城市場景(city sence)語義理解的公開資料集。CityScapes資料集是近幾年才問世的,質量較高,主要用來做影象分割任務,將其標註成了為VOC格式,以達到訓練的要求。測試集採用手工標定的CityScapes。論文使用的硬體測試環境為:CPU Intel i7-4790和NVIDIA GTX1080。表5-1給出測試結果,測試分別使用 , 和 大小的影象。

在這裡插入圖片描述
通過以上的分析和表中測試資料的驗證,本論文實現的檢測模型在影象尺寸為 ,且候選框為200,置信度為0.6時速度和準確度均達到最佳,並且速度也達到了實時檢測的需求。因此實際使用中常推薦上述組合引數。

5.5.3 系統的優缺點

回顧之前整個檢測系統的詳細設計與實現,並且結合測試結果來看,論文實現的實時物體識別系統具有如下幾個優點:
1、系統滿足最基本的功能性需求,即該檢測系統能實時地檢測到道路及兩旁的目標物體並標出目標的具體位置和置信度。這些目標物體包括行人,過往車輛,交通標識等。系統先根據資料集訓練模型,然後從攝像頭視訊流採集到的一幀幀的影象經過模型進行預測,最後返回到客戶端與使用者互動。
2、系統的效能較高。模型的檢測既能保證準確率,又能保證速度。還具有很高的實時性。
3、系統的可移植性。系統可以很好地將預測模組能和系統中其他的模組融合在一起。
4、系統的穩定性。得益於Web技術的先進和成熟等優勢,系統可以穩定地執行在伺服器上。

但是,雖然系統完成了大部分的需求,但是仍然不可否認的是系統還存在一些缺點:
1、系統的硬體要求高,特別是對GPU的要求很高。這無形中就加大了系統開發的成本,不利於系統升級。
2、當前系統的演算法只滿足固定需求的檢測任務。一旦產生需求變更,就不能很好的擴充套件程式。
3、當前系統仍存在優化的空間。從第四章可以看出,檢測演算法一步一步發展起來的過程是艱辛的,但演算法中每一個部分都還有很大的優化空間。
4、系統的魯棒性沒有達到高要求。在光線較暗的情況下系統檢測效果不佳,系統仍需要增加一些策略來提升暗光檢測。

5.6 本章小結

這一章裡,我們設計了一個實時的路況資訊檢測系統。論文詳細地介紹了系統的功能和使用流程。隨後又從系統性能(重點分析了檢測的速度和精度)對系統進行了整體分析。即證明了系統的高可用性,又證明了改進的演算法對於提高識別率幫助很大。