徐 微,李 彤,李守智
(1.西安交通大學(xué)城市學(xué)院,陜西 西安 710018;2.西安理工大學(xué)電氣工程學(xué)院,陜西西安 710048)
高校用電節(jié)能是當(dāng)前熱點話題[1-2],隨著高校擴招,校園人數(shù)增加,照明用電量逐年遞增,目前對于照明用電的管理主要是人工控制[3-4],但教室數(shù)量多,同一個教室,不同時間,自習(xí)人數(shù)不固定,管理人員無法及時對教室的照明燈進行實時有效的控制,造成了巨大的電能浪費[5-6]。
要實現(xiàn)對教室照明燈準確控制,對教室燈光和人的定位是關(guān)鍵[7-8],該文采用圖像處理算法結(jié)合卷積神經(jīng)網(wǎng)絡(luò)算法[9-10],進行教室照明燈和人數(shù)識別與定位,將人和照明燈位置發(fā)送給單片機,結(jié)合光照傳感器,實現(xiàn)教室照明燈分區(qū)域控制。通過多次測試數(shù)據(jù)分析,發(fā)現(xiàn)該文算法不僅適用于教室,還適用于不同背景的圖書館、自習(xí)室,采用卷積神經(jīng)網(wǎng)絡(luò)能有效提高檢測的適應(yīng)性和準確性。
測試對象為校園教室、自習(xí)室以及圖書室,教室容納人數(shù)為200 人,燈的數(shù)量為25 個;圖書館中一個小場館容納人數(shù)為36 人,燈的數(shù)量為8 個;自習(xí)室容納人數(shù)為53 人,燈的數(shù)量為12 個。利用教室安裝的攝像頭進行數(shù)據(jù)采集。采集的圖像尺寸為4 000×3 000,輸出文件格式為JPG。采集數(shù)量為1 000張,以不同場景下的亮燈、滅燈以及人作為識別對象,隨機選取700幅圖像用于訓(xùn)練,其余300張圖像用于測試。
將采集的圖像導(dǎo)入PyCharm 軟件中,為了減少算法運算量,先將圖像壓縮,轉(zhuǎn)換成300×300 dpi 的尺寸,再使用rotate 將圖像旋轉(zhuǎn)90°、180°、270°,使用flip 函數(shù)對圖像水平鏡像,以進行數(shù)據(jù)增強,最后再進行濾波處理,數(shù)據(jù)增強如圖1 所示。
圖1 數(shù)據(jù)增強
將采集的教室圖像作為輸入值,再將亮燈數(shù)、滅燈數(shù)和人數(shù)作為輸出值,利用神經(jīng)網(wǎng)絡(luò)算法建立輸入與輸出之間的關(guān)聯(lián)。
BP 神經(jīng)網(wǎng)絡(luò)是一種按照誤差逆向傳播算法訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò),是應(yīng)用最廣泛的神經(jīng)網(wǎng)絡(luò)。學(xué)習(xí)過程是以網(wǎng)絡(luò)誤差的平方為目標函數(shù),采用梯度下降法來計算目標函數(shù)的最小值[11]。
該文首先對每張預(yù)處理后的圖像進行二值化處理,轉(zhuǎn)化為一維的向量(x1,x2,x3)作為輸入,采用平方誤差代價函數(shù),通過BP 神經(jīng)模型分析圖像中亮燈的數(shù)量、滅燈的數(shù)量、人數(shù)。假設(shè)有N個訓(xùn)練樣本,誤差函數(shù)[12]如式(1):
其中,y_pre是每個位置對應(yīng)的預(yù)測值,而y表示每個位置的實際值,用式(2)和式(3)來求解出y_pre:
其中,x1表示第1 層的輸出;ω1表示輸入層到隱含層的權(quán)重;ω2表示隱含層到輸出層的權(quán)重;b1表示輸入層到隱含層的偏置項;b2表示隱含層到輸出層的偏置項;f(x)表示激活函數(shù),由于所預(yù)測的亮燈數(shù)量、人數(shù)等是大于0 的整數(shù),經(jīng)過采用多個激活函數(shù)進行多次實驗,對比發(fā)現(xiàn)效果比較好的是Relu激活函數(shù),因此該文采用Relu 激活函數(shù),如式(4)所示[13]:
利用梯度下降算法進行反向傳播,進而達到優(yōu)化內(nèi)部參數(shù)的作用,計算出誤差函數(shù)E對參數(shù)偏置項和權(quán)重的偏導(dǎo),使用式(5)和式(6)求取偏置項和權(quán)重變化值:
經(jīng)過多次循環(huán)迭代優(yōu)化內(nèi)部參數(shù)后,得到一個較好模型,如圖2 所示。
圖2 BP神經(jīng)網(wǎng)絡(luò)模型
為了提高算法的識別效果,讓模型預(yù)測結(jié)果更加準確,采用卷積神經(jīng)網(wǎng)絡(luò)模型。輸入一張含有RGB 3 個顏色通道的圖片,然后將亮燈數(shù)、滅燈數(shù)、人數(shù)作為要訓(xùn)練的變量,由此建立含兩個卷積核為3×3 的卷積層和、兩個池化核為2×2 的池化層、兩個激活函數(shù)、兩個全連接層以及一個SoftMax 輸出層的CNN 網(wǎng)絡(luò)模型,如圖3 所示。
圖3 CNN網(wǎng)絡(luò)模型
卷積層使用“卷積核”進行局部感知得到一個值,通過不斷移動卷積核和求卷積來完成對整個圖像的卷積。二維卷積的輸出如式(7)表示[14]:
圖4 卷積結(jié)果
仿真采用Intel(R)Core(TM)i5-8250u CPU,運行環(huán)境為8 GB 的Win10 64 bit 系統(tǒng),編程環(huán)境為PyCharm Community Edition 2020.2.1 x64,編程語言為Python 3.7 64 bit。BP 神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)圖像參數(shù)分別如表1、表2 所示。
表1 BP神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置
表2 卷積神經(jīng)網(wǎng)絡(luò)參數(shù)設(shè)置
實驗將700 張樣本圖像分批次進行訓(xùn)練,每批樣本圖像為100 張,采用BP 神經(jīng)網(wǎng)絡(luò)和卷積神經(jīng)網(wǎng)絡(luò)兩種算法,選取0.001 的學(xué)習(xí)率對構(gòu)建的BP 神經(jīng)網(wǎng)絡(luò)算法進行了3 000 次迭代,每經(jīng)過100 次迭代,記錄一次損失值,第2 900 次迭代后的模型損失值為0.365 568 72。選取0.001 的學(xué)習(xí)率對構(gòu)建的卷積神經(jīng)網(wǎng)絡(luò)算法進行了150 次迭代,每經(jīng)過1 次迭代,記錄一次損失值,卷積神經(jīng)網(wǎng)絡(luò)模型第149 次迭代后的模型損失值為0.040 264 7。采用Matlab 擬合出了迭代過程中損失值的變化曲線,如圖5所示。
圖5 兩種神經(jīng)網(wǎng)絡(luò)模型損失值隨迭代次數(shù)變化曲線
從圖5 可以直觀地發(fā)現(xiàn)隨著迭代次數(shù)的增加,損失值不斷減少直至趨于平緩,說明訓(xùn)練好的網(wǎng)絡(luò)模型具有較好的穩(wěn)定性。隨機抽取一批樣本進行驗證,發(fā)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)算法的準確率為81.6%,卷積神經(jīng)網(wǎng)絡(luò)算法的準確率為96.5%左右,卷積神經(jīng)網(wǎng)絡(luò)算法大大提高了教室照明燈、人數(shù)的識別率,結(jié)果如圖6所示。
圖6 兩種神經(jīng)網(wǎng)絡(luò)檢測結(jié)果與實際值對比圖
由于抽取的樣本來自教室、圖書館、自習(xí)室,不同環(huán)境下樣本復(fù)雜度不同,從檢測結(jié)果發(fā)現(xiàn)在復(fù)雜場景下BP 神經(jīng)網(wǎng)絡(luò)模型識別準確率較低且用時過長,而卷積神經(jīng)網(wǎng)絡(luò)模型通過權(quán)重共享、局部感受野和降采樣三種方式降低了模型的復(fù)雜性[17-18],且對尺度縮放、平移、旋轉(zhuǎn)等形式具有不變性,可以快速有效地從大量圖片樣本中學(xué)習(xí)到相應(yīng)特征,準確率高達到96.5%,較BP 神經(jīng)網(wǎng)絡(luò)模型提高了14.9%。
為了對高校照明燈進行有效管理,該文提出了基于卷積神經(jīng)網(wǎng)絡(luò)的照明燈圖像識別算法,對1 000張樣本中的照明燈和人員進行數(shù)量和位置識別。經(jīng)過多次仿真證明,采用卷積神經(jīng)網(wǎng)絡(luò)能夠快速有效地從大量圖片樣本中學(xué)習(xí)到相應(yīng)特征,對燈和人的識別準確率可達到96.5%。