郭晨霞,李 達,楊瑞峰
(1.中北大學儀器與電子學院,山西太原 030051;2.山西省自動化檢測裝備與系統工程技術研究中心,山西太原 030051)
目前,動態稱重數據處理算法有平均值算法、極大似然估計法、濾波法、EMD 算法、神經網絡法等[1],但是針對動物動態稱重的研究比較少。機器視覺技術應用于無接觸測量動物體重是熱門研究方向,但是目前只能估測且成本較高[2]、難以適應規?;B殖的需求。孫建英研制的智能稱重系統滿足規?;枨?,稱重平均相對誤差只有1.2%,但是樣本小且未對算法進行深入研究[3]。在動態稱重前對羊只進行一周的適應性訓練,能有效降低平均相對誤差[4]。在稱重算法研究領域,Ma W 利用改進的限幅濾波算法和BP 神經網絡降低肉雞動態稱重的誤差[5]。唐思豪利用ADAM 改進的BP 神經網絡對動態檢重秤的砝碼稱重數據進行處理,能夠準確估計動態稱量結果[6]。魏赫通過粒子群優化RBF 神經網絡算法對車輛動態稱重數據處理后提升了動態稱重的精度[7]。
針對動態稱重數據樣本不平穩、真實信號淹沒在噪聲中導致難以快速準確測量的問題,使用收斂速度快的RBF 神經網絡對數據進行處理。通過與EMD 算法進行對比,驗證RBF 神經網絡在動物動態稱重中的優越性。
利用RBF 神經網絡模型處理動態稱重數據本質是預測問題。將徑向基函數(RBF)引入神經網絡設計中,形成了RBF神經網絡。RBF神經網絡是一種由輸入層、隱含層和輸出層構成的三層前向型網絡[8-9]。
輸入層用于為網絡傳輸預處理后的稱重數據。隱含層完成對輸入信號的非線性映射。輸出層完成對各隱含層神經元輸出的加權求和[10]。
高斯函數是RBF 神經網絡中常用的徑向基函數,因此徑向基神經網絡的激活函數可表示為:
RBF 神經網絡的輸出為:
式中,j=1,2,…,n;||xp-ci||為歐氏范數;xp為第p個輸入樣本;ci為網絡隱含層結點的中心;σ為高斯函數的方差;wij為隱含層到輸入層的連接權值;h為隱含層節點數;yi為與輸入樣本對應網絡的第j個輸出節點的實際輸出[11]。
RBF 神經網絡學習算法分為三步,第一步是求取基函數的中心,第二步是求解方差,第三步是求取隱含層和輸出層之間的權值。
常采用K-均值聚類方法確定隱含層的中心[12],徑向基函數為高斯函數時,方差σi的求解公式為:
式中,i=1,2,…,h。cmax是所選取中心之間的最大距離。隱含層和輸出層之間的權值可以通過最小二乘法直接計算得到,計算公式為:
K-均值聚類算法流程圖如圖1 所示。

圖1 K-均值聚類算法流程圖
EMD 是由美籍華人Noden E.Huang 等在上個世紀九十年代提出的一種新的信號分析方法[13],近年來被用于動態稱重數據的處理,EMD 分解的信號包含真實的物理信號。一些學者認為動態體重測量值是靜態體重和噪聲疊加而成,靜態體重可看作EMD分解的殘余量,干擾信號可看作本征函數,所以通過EMD 逐步分解,最終可以得到殘余量,也就是真實的體重值。
EMD 分解的過程為:
1)確定單個真值對應所有測量值的局部極大值和極小值點,用三次樣條插值曲線將所有局部極大值點和局部極小值點連接起來,形成單次測量信號的上包洛線yup(t)、下包絡線ylow(t)[14]。
沿河地區村莊成村較早,歷史悠久。綜合考慮日照、灌溉、飲水及防災減災等因素,聚落選址講究,多位于沿河兩岸較高的坪臺上,背山面水,形成“山-水-田-人”共生共榮的人文景觀(圖2、3)。
2)按照式(5)獲取上、下包絡線的均值曲線:
3)x(t)減去平均值m1(t)后得到一個去掉低頻成分的新序列h1(t):
如果h1(t) 滿足IMF 條件,則就得到x(t) 的首個IMF 分量h1(t)。
4)如果h1(t)不符合IMF 的條件,則將h1(t)作為初始數據,再次執行步驟(1)、(2),得到上下包絡線的均值m11(t),再判斷式(7)是否符合IMF 條件:
如果不符合,則重復循環k次,得到:
當h1k(t)滿足IMF 條件時,將h1k(t)賦值給c1(t),這就是信號x(t)的第一階IMF 分量。
5)將c1(t)從信號中去除,得到一個新的信號:
將Res1(t)作為新的原始數據重復上述步驟,得到第二階IMF 分量,然后再重復上述步驟直到無法從剩余信號中提取滿足條件的IMF 分量,剩余的信號記作Resn(t),n為重復的次數。
文中使用的稱重設備主要由裝有四個稱重傳感器的秤臺、高精度數據采集卡、控制臺組成。其中控制臺負責控制稱重流程、讀取和保存稱重數據。圖2所示為動態稱重的簡要過程。

圖2 動態稱重簡要過程
三個不同體重的工作人員攜帶不同的砝碼通過實驗室搭建的稱重平臺獲得2 967 組實驗數據。實驗數據包括稱量物體的靜態體重和四組傳感器測量值。得到測量值以后,通過靜態標定公式將四個傳感器測量值轉換為動態體重測量值,然后剔除三組存在極大誤差的數據,將處理后的動態體重測量值和靜態體重保存在Excel 表中。實驗用到的靜態標定公式如下:
其中,x1、x2、x3、x4分別為四個傳感器的輸出信號,x為傳感器輸出信號的和,y為動態體重。
3.3.1 EMD算法處理
將2 964 組實驗數據中相同真值的數據提取出來,一共有96 組有共同目標體重的數據,對每組數據通過EMD 算法進行處理,由于每組數據兩端的數據不一定是極值點,這樣在數據兩端無法畫出準確的上下包絡線,無疑為實驗結果帶來了誤差而且誤差層層累積[15],為此采用鏡像延拓法[16]對每組數據進行預處理后,再通過EMD 算法對每組數據進行分解,并取SD=0.2,得到的Resn(t) 即為想要的體重信號,對Resn(t) 求平均即可得到理想的體重測量值。實驗結果如圖3 和圖4 所示。

圖3 EMD測試數據

圖4 EMD測試數據相對誤差
求得95 組數據的平均相對誤差為9.523%,由圖4 可知,樣本數據中間和右端部分誤差較小。
3.3.2 RBF算法處理
盡管EMD 算法對部分數據有較好的處理效果,但是其整體誤差仍然較大,嘗試利用徑向基神經網絡對數據進行處理。
首先對實驗數據進行隨機排序,然后選擇前2 864 組數據進行訓練,剩下的100 組數據進行測試。利用Matlab 中的newrb()函數對數據進行仿真實驗,均方誤差設置為0.01、徑向基函數的擴展速度設置為1。RBF 神經網絡訓練過程中隱含層神經元個數增加到50 時,均方誤差即不再改變,此時均方誤差為0.047 87。訓練結果如圖5、圖6 所示。

圖5 RBF神經網絡測試數據誤差

圖6 RBF神經網絡測試數據相對誤差
由圖6 可看出,RBF 算法對某些數據處理的誤差接近0%,對動態稱重數據進行10 次隨機排序,并利用RBF 神經網絡進行處理得到測試數據的平均相對誤差為5.866%,將其視作RBF 神經網絡算法的平均相對誤差。
表1 為EMD 算法和RBF 神經網絡對動態稱重數據處理的對比,可以看出,RBF 神經網絡是比EMD算法更有效的動態稱重處理模型。

表1 EMD算法和RBF神經網絡的比較
針對動物動態稱重精度較低的問題,文中提出一種適用于動物動態稱重的RBF 模型,實驗結果表明,相比于EMD 模型,提出的RBF 擬合模型具有更高的精度,同時由于動物動態稱重的復雜性,利用RBF 神經網絡可以不對稱重模型進行復雜的分析就可得到較為準確的數據,由此可以看出,RBF 神經網絡在動物動態稱重領域有實際的應用價值。