王甜昆 李 政 張克儉 宋方韜 于浩偉 俞曉冬 董 霞 劉樹林
(齊魯工業(yè)大學(山東省科學院)電氣工程與自動化學院 山東·濟南 250353)
傳統(tǒng)的照明控制方式具有簡單、有效、直觀的優(yōu)點[1-4],但這種方式過多依賴控制者,而且控制相對分散,無法有效管理,也無法實現(xiàn)一鍵智能控制,其適時性和自動化程度不高,不能滿足節(jié)能的要求和社會發(fā)展,文獻[5]提出了一種智能的自習室照明控制系統(tǒng),該系統(tǒng)以單片機為核心組件,結合紅外傳感器和光敏電阻達到照明系統(tǒng)的智能控制,但是這需要大量的傳感器,線路比較復雜。2005年,法國研究人員Dalal對照明系統(tǒng)的智能化控制檢測算法開始研究,并在CVPR發(fā)表HOG+SVM行人檢測算法[6],該算法計算量大,檢測結果也并不理想。文獻[7]提出根據(jù)形態(tài)學的方法進行人物邊界提取,結合改進的邊界跟蹤算法實現(xiàn)人物頭部判別,其利用了圖像灰度化和二值化、圖像邊緣檢測與跟蹤等一系列處理技術,處理過程比較繁雜。
本文提出了利用卷積神經(jīng)網(wǎng)絡對大量圖片進行訓練和深度學習,通過訓練一種端對端的目標檢測模型,采用YOLOv3算法對攝像頭的行人檢測技術進行優(yōu)化與處理,大大提高了攝像頭檢測和處理圖像的精確度,計算量小,處理速度快,且顯示界面直觀清晰,為建立智能化教室照明系統(tǒng)提供可靠的理論與實驗依據(jù)。
通過調(diào)用訓練好的數(shù)據(jù)集進行相似匹配,搭建卷積神經(jīng)網(wǎng)絡,調(diào)取YOLOv3算法訓練的模型來對攝像頭采集的人體圖像進行處理與優(yōu)化,增強了行人檢測的識別準確度。此系統(tǒng)由兩部分組成:上位機子系統(tǒng)與下位機子系統(tǒng)。上位機子系統(tǒng)負責對教室內(nèi)進行實時的圖像采集、處理、顯示與存儲,并實現(xiàn)分區(qū)域控制等功能。下位機子系統(tǒng)負責對教室的照明燈具進行控制。系統(tǒng)的原理是:教室內(nèi)的監(jiān)控攝像頭實時采集圖像,傳輸給上位機進行行人檢測,上位機調(diào)用提前訓練好的行人檢測模型,在圖像采集區(qū)域建立坐標系,利用質(zhì)心追蹤算法獲取行人中心坐標,并將該坐標轉換為物理坐標,經(jīng)過處理的數(shù)據(jù)通過串口通信的方式發(fā)送給下位機,由下位機對照明燈具進行控制,技術路線如圖1所示。
本系統(tǒng)包括模型訓練、圖像采集、上位機數(shù)據(jù)處理三個工作過程。
首先,訓練一種端到端的目標檢測模型,然后,利用YOLOv3卷積神經(jīng)網(wǎng)絡,對大量圖片提取特征,得到特定大小的特征圖輸出,形成行人檢測數(shù)據(jù)集。卷積神經(jīng)網(wǎng)絡具有自動提取特征、權值共享、圖像輸入與網(wǎng)絡結構結合良好等優(yōu)勢。權值共享使得圖像可以直接作為網(wǎng)絡的輸入,自動識別特征,提高圖像識別的精度和效率,訓練結果如圖2所示。
在圖像采集環(huán)節(jié),系統(tǒng)自動調(diào)取監(jiān)控設備采集的視頻序列,并進行每秒25幀的圖像采集,采集完成之后將視頻序列轉換為圖像幀,系統(tǒng)對圖像幀進行空間域、圖像分割以及邊緣檢測等預處理。圖像的預處理在數(shù)字圖像中占了很重要的地位,圖像質(zhì)量的好壞,直接影響系統(tǒng)的分析,圖像預處理完成之后將其發(fā)送到上位機,如圖3所示。
利用上位機進行可視化界面的展示和相應的數(shù)據(jù)處理。首先,對采集的圖像幀進行分析,將圖像坐標轉換為物理坐標,如圖4所示。然后把位置信息類型轉換之后上傳給信息處理終端,用Qt的串口通信技術與下位機(stm32單片機)進行信息交互,最后再由下位機對燈具進行控制。
圖1:技術路線圖
從教室監(jiān)控視頻中截取并保存大量的行人照片,將照片預處理之后的結果作為卷積神經(jīng)網(wǎng)絡的輸入,進而訓練一種端到端的目標檢測模型,對大量圖片提取特征,最終得到特定大小的特征圖輸出。輸入圖像分成13×13的grid cell,如果真實框中某個object的中心坐標落在某個grid cell中,就由該gridcell來預測object。每個object有固定數(shù)量的boundingbox,YOLOv3中有三個boundingbox,使用邏輯回歸確定預測的bounding box,并形成最終的行人檢測的訓練模型。
圖3:圖像預處理
圖4:坐標轉換
在Windows下搭建Qt+OpenCV平臺中,通過Open-CV中的cv::VideoWriter函數(shù)讀取監(jiān)控攝像頭中的視頻序列,并進行每秒25幀的圖像采集,采集完成之后將視頻序列轉換為圖像幀,系統(tǒng)對圖像幀進行空間域、圖像分割以及邊緣檢測等預處理,預處理完成之后發(fā)送到上位機。
先用特征檢測器檢測圖像幀的行人特征,然后利用行人檢測器調(diào)取訓練好的行人檢測模型進行特征匹配,達到行人檢測的功能,再對目標進行運動追蹤,并利用輪廓追蹤函數(shù)給行人建立標定框,并且通過Qt采用C++編程將目標框的信息上傳,與此同時發(fā)送指令給下位機。
通過Qt與stm32的串口通信技術,使stm32接收到上位機的行人檢測目標框信息和物理坐標信息,然后自動運行提前燒錄好的控制程序,在接收到數(shù)據(jù)之后,通過條件判斷,做出不同的使能信號。當有人進比某一區(qū)域之后,此區(qū)域的燈具會接收到使能信號,燈具開啟,當此區(qū)域的行人離開之后,燈具關閉。
本文利用卷積神經(jīng)網(wǎng)絡,對大量圖片進行特征點提取,不斷進行迭代,生成特征點數(shù)據(jù)集,調(diào)用數(shù)據(jù)集可進行準確而迅速的目標追蹤。在攝像頭識別過程中,通過調(diào)用訓練好的模型進行相似檢測,可以識別復雜的人體動作輪廓,達到更好地檢測行人的效果。然后在圖像采集的目標區(qū)建立二維物理坐標系,將檢測目標所在的圖像坐標轉換為物理坐標,并且利用質(zhì)心追蹤算法確定目標的中心坐標,然后將物理坐標系上傳給上位機進行區(qū)域塊的配對。最后由上位機使用Qt設計一個可視化界面,并通過串口通信技術與下位機進行信息交互,最后再由下位機對照明燈具進行控制。