朱瑞金,張 濤,扎西頓珠
(西藏農(nóng)牧學(xué)院電氣工程學(xué)院,西藏 林芝 860000)
我國養(yǎng)殖技術(shù)飛快發(fā)展,水產(chǎn)養(yǎng)殖規(guī)模在不斷擴大,但是水產(chǎn)養(yǎng)殖場依然采用傳統(tǒng)的機器或人工投喂方式,無法精準(zhǔn)判斷魚類攝食時間及規(guī)律,造成過度投喂或投喂不足。過度投喂會影響水質(zhì),養(yǎng)殖成本上升;而投喂不足則會影響魚類的生長。基于魚類的攝食行為及規(guī)律進行研究,設(shè)計精準(zhǔn)投喂具有十分重要的意義。
設(shè)計利用圖像處理技術(shù)來實現(xiàn)對魚群攝食行為的特征提取,利用BP神經(jīng)網(wǎng)絡(luò)算法對魚群攝食行為進行分類與識別,從而建立起一套完整的基于圖像處理及人工智能算法的魚群攝食行為研究系統(tǒng)。具體思路為:利用攝像頭實時獲取養(yǎng)殖水廠的魚群視頻數(shù)據(jù),通過對視頻數(shù)據(jù)分幀處理,提取魚群圖像的LBP直方圖特征數(shù)據(jù),將特征數(shù)據(jù)送入BP神經(jīng)網(wǎng)絡(luò)模型,進行魚群攝食行為的分類識別。
搭建了魚群養(yǎng)殖系統(tǒng),利用其獲取實驗研究用的視頻數(shù)據(jù)。搭建的具體養(yǎng)殖系統(tǒng)如圖1所示,高清攝像機架設(shè)在養(yǎng)殖池正上方約1 m處,高清攝像機會實時拍攝記錄魚群的運動情況視頻。利用實時拍攝到的視頻數(shù)據(jù)進行分幀處理,所得到的圖像數(shù)據(jù)如圖2所示。將視頻分幀獲取到的圖像幀保存為bmp格式的圖像數(shù)據(jù)集,該數(shù)據(jù)集將作為BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練及驗證的數(shù)據(jù)集。基于以上獲取到的系列圖像數(shù)據(jù)進行魚群攝食行為研究。
圖1 魚群活動分析實驗材料獲取示意圖Fig.1 Schematic diagram of acquisition of experimental materials for fish activity analysis
圖2 魚群活動狀態(tài)圖像Fig.2 Image of shoal activity
利用魚群攝食行為的圖像進行LBP特征提取,將提取好的特征數(shù)據(jù)送入設(shè)計好的BP神經(jīng)網(wǎng)絡(luò)模型中,利用神經(jīng)網(wǎng)絡(luò)模型對特征數(shù)據(jù)進行訓(xùn)練學(xué)習(xí),利用訓(xùn)練好的模型對魚群攝食行為圖像數(shù)據(jù)進行分類識別。具體算法流程如圖3所示。
圖3 本文整體算法流程圖Fig.3 Overall algorithm flow chart
LBP(Local Binary Pattern)特征由Ojala等人提出,是一種圖像局部紋理特征的描述算子,該特征具有良好的抗旋轉(zhuǎn)、光照分布不均勻及灰度不變性等特征。LBP算子的算法本質(zhì)是將當(dāng)前需要計算的中心點像素灰度值作為閾值,與鄰域像素點的灰度值進行比較,形成一串為0或1的二進制碼表來作為特征描述。
作為一種描述圖像局部特征的LBP算子可以較好地描述每個像素與鄰域像素之間的關(guān)系,LBP具體的數(shù)學(xué)表達式為式(1):
(1)
式(1)中的(xc,yc)為中心像素點的位置,該中心像素點的灰度值為in,該中心點的8鄰域像素點的灰度值為ic。式中的ψ函數(shù)為二值比較函數(shù),具體的數(shù)學(xué)表達式為式(2)所示:
(2)
原始的LBP特征算子是將圖像分為多個3×3的子窗口,分別計算每個子區(qū)域的特征,具體的計算過程為分別比較當(dāng)前3×3子窗口的中心像素點灰度值與其相鄰的8個鄰域像素點的灰度值,若中心點的灰度值小于該鄰域點的灰度值則該節(jié)點比較結(jié)果為1,否則比較結(jié)果為0,按照以上流程繞著中心點順時針比較8次以后就會計算出8個0或1的二進制碼表,將該二進制碼表轉(zhuǎn)為十進制后就形成了該子窗口的LBP局部特征值。原始的LBP特征計算示意圖如圖4所示。
圖4 基本LBP 算法示意圖Fig.4 Schematic diagram of basic LBP algorithm
由于以上原始LBP特征算子只能計算一個固定區(qū)域的局部子圖,而無法滿足不同頻率紋理的需要,因此Ojala等人對原始LBP特征算子進行優(yōu)化,提出了圓形LBP,圓形LBP對計算區(qū)域沒有限制,可以隨意進行擴展,同時拋棄了方形子窗口,利用圓形區(qū)域進行計算。圓形LBP算子可以在半徑R范圍內(nèi)計算任意多個像素點。圖5所示為三個圓形LBP算子示意圖。
圖5 鄰域的圓形LBPFig.5 Circular LBP in neighborhood
圓形LBP算子的本質(zhì)是利用當(dāng)前圖像區(qū)域的聯(lián)合概率分布作為圖像的局部紋理信息分布,具體的像素點的灰度值聯(lián)合概率分布如式(3)所示:
M=m(pc,p0,…pn-1)
(3)
上式中,pc為該圓形子窗口的中心像素點的灰度值。p0,…pn-1分別為該圓形窗口上的位于圓周位置的各像素點的灰度值。圓形LBP算子的數(shù)學(xué)表達式如式(4)所示:
(4)
利用圓形LBP算子對魚群活動圖像進行紋理特征計算以后,由于LBP特征只是圖像局部紋理特征的一種表達,不能對魚群活動圖像的整體特征進行表達,因此利用LBP特征進行轉(zhuǎn)換,計算它的LBP特征直方圖的序列。利用圓形LBP計算出來的紋理特征及相應(yīng)的LBP特征直方圖序列如圖6所示。
1986年,BP神經(jīng)網(wǎng)絡(luò)由Rumelhart和McCelland等科學(xué)家提出,它是一種多層狀的前饋神經(jīng)網(wǎng)絡(luò)網(wǎng)絡(luò)模型。BP神經(jīng)網(wǎng)絡(luò)模型是信號既有的前向傳遞,同時也有誤差按照反向傳播來調(diào)節(jié)神經(jīng)網(wǎng)絡(luò)參數(shù)的雙向流動模型。BP神經(jīng)網(wǎng)絡(luò)模型一般分為輸入層、隱藏層、輸出層,這3層之間是按照全連接方式進行數(shù)據(jù)傳遞,其本質(zhì)工作流程為通過給模型輸入數(shù)據(jù)及期望的數(shù)據(jù),輸入數(shù)據(jù)通過前向傳遞分別經(jīng)過輸入層、隱藏層及輸出層,在前向傳遞過程中,當(dāng)前的神經(jīng)元的輸出狀態(tài)只能傳遞到下一層相鄰的神經(jīng)元,當(dāng)經(jīng)過輸出層的數(shù)據(jù)與期望數(shù)據(jù)不符合時,輸出層的數(shù)據(jù)與期望數(shù)據(jù)之間的誤差值進行反向傳播,從而通過反向的誤差傳播來調(diào)整網(wǎng)絡(luò)模型的權(quán)值及閾值,通過梯度下降策略來不斷使該模型的輸出數(shù)據(jù)與期望數(shù)據(jù)達到趨近。BP神經(jīng)網(wǎng)絡(luò)模型圖如圖7所示。
圖7 BP神經(jīng)網(wǎng)絡(luò)模型Fig.7 BP neural network model
BP神經(jīng)網(wǎng)絡(luò)模型中的每一個節(jié)點是一個神經(jīng)網(wǎng)絡(luò)元感知器,這些神經(jīng)網(wǎng)絡(luò)元感知器對輸入數(shù)據(jù)進行線性組合計算,當(dāng)線性組合計算出來的值大于設(shè)定的閾值時,輸出為1,否則為-1。采用的激活函數(shù)為sigmod函數(shù),該激活函數(shù)的優(yōu)點是可以將輸出值進行壓縮,使神經(jīng)網(wǎng)絡(luò)模型可以快速收斂,sigmod函數(shù)如式(5)所示:
(5)
BP神經(jīng)網(wǎng)絡(luò)模型的前向傳播及誤差反向傳播的具體流程步驟如下:(1)將神經(jīng)網(wǎng)絡(luò)模型的各項權(quán)值及閾值進行隨機初始化。(2)根據(jù)公式(6)分別計算中間層及輸出層的輸出值:
bj=f(wijai-θj)
ct=f(vjtbj-rt)
(6)
上式中,bj為中間層的網(wǎng)絡(luò)神經(jīng)元的輸出,wij代表輸入層到中間層的網(wǎng)絡(luò)神經(jīng)元之間的連接權(quán)值,ct表示輸出層的網(wǎng)絡(luò)神經(jīng)元的輸出,vjt代表中間層到輸出層的網(wǎng)絡(luò)神經(jīng)元之間的連接權(quán)值。
(1)進行步驟(2)的下一次迭代,直至神經(jīng)網(wǎng)路模型的輸出與期望值達到要求為止。
程序?qū)崿F(xiàn)及仿真的硬件配置為:Intel(R)Core(TM)i7-7700HQ CPU@2.80GHz 2.81 GHz,安裝內(nèi)存RAM為8GB,筆記本操作系統(tǒng)為win10。
設(shè)計的BP神經(jīng)網(wǎng)絡(luò)模型為3層模型,其中輸入層接收LBP直方圖序列數(shù)據(jù)的輸入,中間層即為隱藏層為30個神經(jīng)單元,輸出層為2個神經(jīng)元。神經(jīng)網(wǎng)絡(luò)訓(xùn)練的最大迭代次數(shù)為500次,隱藏層的激活函數(shù)設(shè)置為sigmod函數(shù),訓(xùn)練的截止精度為1×10-4,當(dāng)BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中的誤差小于截止誤差時訓(xùn)練結(jié)束。圖8所示為BP神經(jīng)網(wǎng)絡(luò)模型在訓(xùn)練過程中的訓(xùn)練性能圖,其中橫軸代表迭代次數(shù),縱軸代表訓(xùn)練過程中的均方誤差。
圖8 BP神經(jīng)網(wǎng)絡(luò)訓(xùn)練性能圖Fig.8 BP neural network training performance diagram
由圖8可以看到神經(jīng)網(wǎng)絡(luò)模型經(jīng)過246次迭代后模型誤差達到了要求范圍內(nèi)的誤差,因此系統(tǒng)可以快速收斂并精確地對魚群攝食行為進行分類識別。
利用訓(xùn)練好的BP神經(jīng)網(wǎng)絡(luò)模型準(zhǔn)備了魚群活動的批量測試數(shù)據(jù)來進行BP神經(jīng)網(wǎng)絡(luò)模型的魚群攝食行為的分類識別測試,具體的分類識別結(jié)果如表1所示。從表1可知,利用BP神經(jīng)網(wǎng)絡(luò)模型的魚群攝食行為的識別準(zhǔn)確率為97.23%。
表1 BP神經(jīng)網(wǎng)絡(luò)分類識別結(jié)果Tab.1 BP neural network classification and recognition results
提出了一種基于LBP特征的BP神經(jīng)網(wǎng)絡(luò)算法的魚類攝食行為識別模型算法。利用對魚群的攝食活動圖像及未攝食活動圖像數(shù)據(jù),分別進行濾波等預(yù)處理及LBP特征提取,將特征紋理數(shù)據(jù)送入BP神經(jīng)網(wǎng)絡(luò)模型進行訓(xùn)練,利用訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)模型進行魚類攝食行為的分類識別。經(jīng)過實驗仿真,由實驗結(jié)果可得,設(shè)計的算法對魚類攝食行為的識別準(zhǔn)確率可達到97.23%。