劉廣同,曹淑楠,楊萬林,劉橙,何金成
(福建農林大學機電工程學院,福州市,350002)
生豬養殖產業是我國畜牧業的支柱性產業,2022年世界豬肉總產量為1.098×108t,相比于2021年,同比上升幅度為2.08%。世界豬肉產量上升的主要原因就是中國生豬產能的快速恢復[1]。中國生豬市場自2020年1月份以來就面臨著非洲豬瘟疫情與新冠肺炎防控雙重打擊,使得生豬供給出現緊張態勢,造成豬肉價格劇烈上漲[2]。因此,國內養殖企業逐步大規模采用封閉式養殖豬舍,降低豬只之間的疾病傳播。其中以方艙豬舍養豬最為典型,方艙形狀規整,移動方便,能夠根據養殖需要進行任意擺放和隨時轉移。它是一個全封閉空間,漏糞板將豬舍一分為二,上層位生豬生活區,下層為集污區[3-4]。相較于現有技術,方艙豬舍能有效地隔離各種疾病傳染源。然而,當前市面上的方艙豬舍豬只缺乏綜合管理和對個體的精準飼養,對于生豬的生長狀況不能及時掌握,對于生豬病疫的爆發也不能及時預防,這樣直接制約生豬養殖事業的發展。所以對豬只進行綜合管理,監測豬只的行為活動,分析豬只采食數據成為科學養豬勢在必行的策略。
二十世紀五十年代,美國海軍研究室開發了一套名為“辨別敵我系統”的無線識別技術。在其后的數十年間,該技術在物流、制造、倉儲等不同行業遍地開花[5-6]。隨著我國高新技術的快速發展,社會對于糧食安全、智能化管理等方面的要求也逐步提高,這些促使RFID技術在農畜業快速推廣與普及。當前國內外市場的多種自動化養豬系統中已經成功采用RFID技術。Ostersen等[7]為了檢測母豬的自動發情情況,提出一種妊娠期恢復發情母豬的自動檢測方法。Chen等[8]設計了一個基于RFID技術的智能化監測雞舍箱系統,可以分析單個母雞的產蛋性能。Li等[9]開發了UHF RFID系統用于自動監測與量化單個母雞的喂養與筑巢行為。Catarinucci等[10]基于RFID技術,研究了小型活體動物的跟蹤系統,適用于小動物定位和跟蹤。謝菊芳等[11]設計了“肉豬工廠化生產質量安全監控系統”,能促進養豬場的工廠集約化管理。高云[12]基于無線傳感器網絡技術,提出了養豬綜合監測系統,能夠實現養豬綜合監測的網絡化、智能化。李日華等[13]結合稱重、PLC養殖生態環境控制、智喂精準控制等技術設計基于RFID的智能化養豬系統,能對規模化養豬實現全程智能管控。
對于生豬的采食行為分析主要有兩個方面:一方面,動物的采食量信息是其健康和生產所需營養物質的量化基礎[14],研究動物的采食量對其采食行為有著極其重要的意義;另一方面,生豬在經歷疫病亞臨床和臨床表現之前,往往其自身的行為會產生較大的改變,比如日常進食量和活動量驟減,糞便干燥,尿液渾濁等[15]。對于非洲豬瘟,其臨床表現有四種:最急性型;急性型;慢性型;溫和型。其中最急性型與溫和型并不多見,而急性型與慢性型往往伴隨著豬只進食量的急劇變化[16-17]。因此,監控生豬的行為活動和生理表現可以及時有效地發現疫病爆發情況,提早發現異常豬只,防止造成更大規模的疫病爆發。
本研究設計了一種包括RFID在內的多傳感器方艙豬舍豬只采食行為分析系統,根據豬只身份信息,記錄豬只的采食量,并分析豬只的采食數據,預警飼養員,實現對豬只采食異常的準確追蹤與病疫預警。
豬只的采食行為分析數據包括獲取豬只的采食量,采食時間,采食頻率。其中由前文可知采食量又最能直觀反映豬只的健康狀況。而獲取豬只的采食數據信息首先要做的就是對豬只的身份進行確定。因此,本文采用RFID電子標簽對豬只的身份檔案進行注冊,然后使用RFID讀寫器標定豬只身份,這樣便能對豬只進行信息化管理。為了獲取到豬只的采食時間與采食頻率,本文選用圖像識別技術與稱重傳感器進行測定。其中圖像識別技術和RFDI技術共同判別豬只是否進入采食區域,以及進入采食豬只的身份,而稱重傳感器則是記錄隨時間變化的食槽重量來反應豬只采食量、采食時間、采食頻率。
系統由上位機應用軟件和與之相連的下位機系統設備兩部分組成。其中系統通過RFID設備、攝像頭、稱重傳感器以及溫濕度傳感器等設備對方艙豬舍內豬只的生長環境與狀態進行實時監控,用戶可以通過軟件及時得知豬只在成長過程中出現的異常采食數據與豬舍的溫濕度環境信息。系統在獲得數據的同時也提供了采食數據分析的策略,根據豬只的歷史采食數據與該重量下豬只的科學進食量進行判斷與專業的決策,即對用戶進行預警,防止病疫的傳播,方艙豬舍豬只采食行為分析系統的整體設計方案如圖1所示。

圖1 方艙豬舍豬只采食行為分析系統框架圖Fig. 1 Framework diagram of feeding behavior analysis system for pigs in square cabin pig houses
系統的整個工作過程為:RFID生豬識別模塊利用RFID唯一標識的電子耳牌標識豬只,建立豬只的管理檔案,從而實現豬只的身份認證。限位欄一次只允許一頭生豬進入采食,當豬只進入限位欄后,就進入了RFID天線的識別范圍,可以被RFID讀寫器識別,此時系統記錄下豬只的身份信息。圖像識別模塊通過視頻監控實時將方艙豬舍內的信息及時發送到上位機(工控機),在上位機端設計相應的豬只運動判別算法去判別豬只是否在采食區域。稱重模塊通過安裝在食槽下方的重力傳感器測量到食槽飼料重量。當圖像識別模塊識別到豬只進入采食區域時,系統記錄下當前的時間與食槽飼料重量,當圖像識別模塊識別到豬只離開采食區域時,系統再次記錄下當前的時間與食槽飼料重量,通過食槽飼料重量的減少值,從而對每只生豬的每次進食量數據進行收集。通過重力傳感器檢測料槽飼料的減少,RFID傳感器對豬只的準確定位,圖像傳感器對豬只采食位置的識別,三個傳感器確保準確識別收集到每一個豬只的采食行為和采食量。此外,限位欄內安裝有防躺桿,防止因為采食結束的豬只長期滯留在采食區域內而影響后續豬只的采食。
RFID識別模塊是整個系統構成的重要部分,主要包括四個部分,分別是讀寫器,電子標簽,增益天線,以及RS485輸出。空間分布為將RFID的增益天線固定在食槽上方,也就是正對限位欄的方向,讀寫器安裝在方艙豬舍的墻壁高處,防止方艙豬舍內的雜污對其進行腐蝕。電子標簽則釘在豬只的耳朵上,隨著豬只的運動而不斷移動。由于疫情期間內豬場都不允許生人進入,所以本文所開發的系統不能實地測試,只能采用實驗室搭建的豬舍模擬方艙豬舍,布偶豬只模擬生豬對系統進行測試,因此將電子標簽貼在布偶豬耳朵上。現場的布局結構圖如圖2所示。

圖2 基于多傳感器的方艙豬舍豬只采食行為分析系統結構示意圖Fig. 2 Schematic diagram of feeding behavior analysis system for pigs in square cabin pig house based on multi-sensor1.RFID系統讀寫器 2.工控機 3.方艙豬舍 4.限位欄 5.視頻傳感器 6.食槽 7.RFID系統天線 8.漏糞板 9.RFID系統電子標簽
由于無法進入方艙豬舍的實際養豬場對生豬進行實驗,所以根據方艙豬舍豬只采食行為分析系統的總體設計方案以及設備的選型,搭建了模擬現場系統。方艙豬舍的主體限位欄采用220 cm×70 cm×100 cm的加厚熱鍍鋅管來搭建,其特點是易于裝配且承載能力強,不易被復雜的環境所腐蝕。漏糞板采用了50 cm×60 cm的聚丙烯材料,能夠做到無縫接插,漏糞無死角,而且具有很強的承重能力。對于讀寫器,本文選擇了十六通道超高頻讀寫器,相比于其他頻段,超高頻通過電場來傳輸能量,該頻段識別的距離遠,有較好的讀取距離,其次還有很高的數據傳輸速率。本文采用了無源耳標式18000-6B電子標簽,它施加在動物的耳部,可以承載動物的個體信息,既能節約成本,又具備極佳的存儲性能和響應速度,可靠性極高。監測設備主體是使用了一顆1080P的高清視頻監控攝像頭,安裝在方艙豬舍的墻壁內側,通過調整攝像頭角度使得攝像頭能夠正好監測到豬只進入食槽的采食區域范圍。稱重傳感器鑲嵌在稱重支架里然后安裝在食槽下方固定住,如圖3所示。

圖3 食槽與稱重壓力臺Fig. 3 Feeding trough and weighing pressure table1.稱重支架 2.稱重傳感器 3.食槽
2.1.1 自適應高斯混合模型
傳統高斯混合模型對目標物體的運動檢測過程中,在對背景場景進行建模的時候,需要對每一個像素點建立K個高斯分布[18]。在進行背景建模和目標運動檢測時,對于所截獲的每幀圖像都需要建立固定數量的高斯分布去進行描述,同時再對高斯混合模型進行更新時,需要對其所有的像素點均進行同步更新,這樣就使得高斯混合模型的算法運算量變得極其龐大而且加重了對于后臺硬件設備的運行負擔,同時冗余的運算量更是無法保證檢測的實時效果[19-20]。改進后的高斯混合模型的算法如下。
第一步,自適應的高斯混合模型的分布初始化。對于監控視圖里所有的像素點均只建立一個高斯模型,但是需要對其分布數K0進行賦值,K0賦值的計算方法如式(1)所示,K0一般為1~5。
(1)
式中:KL、KM、KS——初始化時不同的高斯分布數初值設定;
σ02——初始化設置的方差;
Tk1、Tk2——分配的不同初始分布數的閾值。
第二步,自適應的高斯混合模型的動態調整。
1)α的更新。在高斯混合模型中,運動檢測算法的參數學習率α是一個固定值,這就導致了高斯混合模型對于場景背景中運動目標其速度變化的情形難以適應[21]。場景背景的更新速度取決于學習率α的取值情況,一旦場景變化率產生了變化,那么此時學習率α也會隨之更新,其更新規則按式(2)所示。
(2)
式中:α0——初始設定的學習率,根據經驗所得,一般取值范圍在0.01~0.1之間;
f——高斯分布在單位時間內的變化次數;
Tf——所設閾值。
2) 高斯分布的更新。將高斯混合模型的K個高斯分布按照權重值大小進行排序,若當前的觀察值與K個高斯分布均不匹配的時候,就新增加一個分布,K已經達到了所設的最大值,就刪除掉權重值最小的高斯分布,然后再增加一個高斯分布。若高斯分布滿足式(3),則對均值相似的兩個高斯分布進行合并,對權重值較大的分布進行更新處理,較小的則需要刪除。
|μx-μy|≤Tμ
(3)
式中:μx——均值為x的高斯分布;
μy——均值為y的高斯分布;
Tμ——均值最小間隔的閾值。
對高斯分布進行處理后,再進行權重值的比較,若權重值低于閾值,就將當前的高斯分布舍去。
2.1.2 基于自適應的高斯混合模型的豬只運動判別算法
對于豬只的運動行為判別來說,采用改進的自適應高斯混合模型可以得到理想的豬只運動判別效果。
首先需要對攝像頭傳輸過來的圖像幀進行截取,對其進行灰度化預處理,得到灰度化圖像幀。這樣做是為了減少原始的圖像數據量,便于后續計算量的消減,因為對于圖像處理而言,并不是所有的彩色圖像都需要對RGB三個顏色通道的分量都進行處理。然后創建一個改進的自適應高斯混合模型用于視頻幀的背景減法,它的作用是更新背景模型,輸出前景掩碼。然后用特定的圖像和當前時間戳更新motionHistory對象,將上述灰度化圖像添加進motionHistory對象中作為基準圖像。接著獲取到運動目標的蒙版副本并增強它的顏色。這里采用蒙版是為了進行前景分離,它是一個灰度圖,每一個像素點的灰度值便表示在原始圖像中每個這個像素屬于運動前景的程度。最后定義運動區域范圍,用閾值來降低檢測微小運動的值。最后在特點的運動區域內遍歷每個運動組件,輸出運動像素數量。基于自適應的高斯混合模型豬只運動判別算法流程圖如圖4所示。

圖4 豬只運動判別算法流程圖Fig. 4 Flowchart of pig motion discrimination algorithm
當豬只未進入采食區域時,由于都是靜態的背景(場景未變化),改進的高斯混合模型檢測不到目標運動點的信息,也不能得到符合豬只進入的運動像素點的信息,如圖5所示。

圖5 豬只未進入時檢測圖像Fig. 5 Detect images when pigs are not entering
當豬只采食區域后如圖6所示,此時靜態的背景場景被打破,在豬只運動判別算法的作用下,豬只的運動像素被記錄下,自定義的運動區域內運動組件的遍歷數量也大幅度增加,豬只的運動像素點被記錄下來上傳給數據庫的表中供程序調用。

圖6 豬只進入時檢測圖像Fig. 6 Detect images when pigs are entering
對豬只的采食行為判別是對豬只進行采食數據收集的前提,豬只的采食行為判別分為三個部分。首先是RFID設備對豬只身份的確定,當采食豬只進入了限位欄內RFID增益天線所能識別的最大有效距離(0.5 m)后,由于電子標簽的響應,上位機系統能很快接收到豬只身份信息,完成對豬只的信息化定位。其次,當豬只前進到攝像頭所能監控到的采食區域后,根據上文所述,上位機會受到一個基于自適應的高斯混合模型的豬只運動判別算法返回的運動像素點。此時需判斷此運動像素點是否大于豬只運動點閾值T1(這個閾值在本文中設為200 000),若大于,則判定被RFID設備所識別的豬只已經進入采食區域,反之,則豬只未進入采食區域。
進入了采食區域的豬只并不一定會進行采食,有可能只是滯留,所以要判斷豬只的采食行為還需要稱重傳感器所提供的食槽重量的數據支撐。一旦豬只被RFID設備識別,又進入了攝像頭所監控的采食區域,而且此時重力傳感器能夠監測到食槽飼料重量的波動,便認為豬只已經正在進行采食行為,記錄下此時的時間作為豬只采食開始的時間。同理,當上位機收到的返回的運動像素點小于豬只運動點閾值T2(這個閾值在本文中設為5 000),且稱重傳感器不再檢測到食槽重量值的波動,就認為豬只已經完成了本次的采食行為,記錄下此時的時間作為豬只采食結束的時間。最后,通過食槽前后重量的對比,可以很清晰的得出豬只本次的進食量,完成一個完整的豬只采食行為收集過程。
軟件設計的一個很重要環節是確定開發工具和編程語言。在進行系統的軟件開發時,本項目使用Visio Stdio2019軟件來編寫、調試、編譯程序。為了方便軟件的二次開發與通用性,本設計使用基于C#語言的窗體程序進行編程。對于軟件開發的架構,本文選擇了C#經典的三層架構進行開發。數據庫方面考慮到成本、功能,本文選擇了MySQL數據庫。
通過上文對于系統的構建分析,設計滿足以下的系統功能:(1)新的生豬進入豬舍后,飼養員可為其建立一個全新的身份檔案,用于后續采食行為的分析。(2)系統須包含對于RFID設備的操作功能,如更改RFID讀寫器的功率等。(3)系統需包含豬只運動檢測功能。(4)系統需包含對于稱重傳感器的操作功能,如清零,標定等。(5)系統需對方艙豬舍內的豬只進行采食數據分析,確保采食異常的豬只能被及時預警,此外豬只的采食數據能被導出,供用戶使用。
系統主控模塊是系統跳轉各種功能界面的接口,其本身也包括了預警信息,異常豬只信息,以及豬舍環境信息與視頻監測的部分內容,如圖7所示。

圖7 系統主控界面Fig. 7 System master interface
今日預警信息是后臺對豬只采食數據進行分析,其流程先獲取豬只一天的采食量然后再與該豬只的前一天進食量進行對比,如果進食量小于前一天的二分之一,就接著比較該豬只進食量和其體重類似的豬只科學進食量官方數據,若還是小于,那就對飼養技術員進行預警,顯示在主控界面上,此豬存在采食異常狀況,可能發生病情,需要重點關注。其他的子功能窗體都由主控界面的按鍵跳轉,如點擊RFID設置便能跳轉到RFID設置界面。
RFID讀寫器的開發是基于Winform窗體下的程序開發。采用了UHFREADER288.DLL動態連接庫,該開發包可以支持程序調用C語言接口函數,對開發者屏蔽RFID設備的下層硬件協議,大大減少了開發者的工作量。上位機應用程序可以通過UHFREADER288.DLL操作讀寫器讀寫R2000系列的18000-6C與18000-6B格式的電子標簽,并同時支持上位機程序在多個接口同時打開多個讀寫器。通過設置界面,用戶可以完成連接上位機與讀寫器,設置讀寫器的地址,設置查詢的響應時間,對射頻頻率、射頻輸出功率進行控制,對增益天線進行設置等一系列功能。
對電子標簽進行讀取和寫入操作是RFID模塊最重要的功能。本文所述讀寫器可對多張18000-6B標簽進行同時讀取,當讀寫器接收到用戶讀取電子標簽的命令后,便開始讀取每張標簽由起始位開始的8位字節數據,識別電子標簽完成后返回本次識別的標簽數目,并將標簽信息置入數據庫。
稱重模塊是將稱重傳感器獲取到的有效采食信息實時傳輸到系統的數據庫中。除了基本的獲取稱重傳感器的稱重數據外,還開發一些高級功能,如對稱重傳感器進行清零、標定等操作。其中清零是為了消除因為溫度原因所引起的零點漂移,對于校正稱重傳感器還是很有必要的。
3.4.1 豬只身份信息管理模塊
當有新的豬苗進入方艙豬舍或者是有豬只離開方艙豬舍時都需要對豬只的身份進行登記或修改。豬只的身份信息包括豬只編號、性別、豬齡(以月為單位)、產地、異常信息五個部分組成,其中編號是RFID賦予的電子耳標編號,也是系統準確定位到該豬只的唯一方式,異常信息就是該豬只所有的異常采食數據信息。豬只身份信息管理模塊的增加、修改、刪除功能均是以豬只編號為索引,通過MySQL語句對數據庫進行操作。如圖8所示為查詢豬齡大于三個月的方艙豬舍所有豬只。

圖8 豬只身份信息管理模塊功能展示圖Fig. 8 Pig identity information management module function display diagram
3.4.2 豬只采食信息管理模塊
豬只采食信息管理模塊主要提供給用戶三個主要的查詢功能,第一是豬只的歷史采食數據查詢,可以通過豬只的編號和采食時間分開檢索,也可以結合兩者綜合檢索,這里同樣是通過查詢語句對數據庫進行查詢操作。第二是查詢RFID數據功能,這里有區別于RFID設置里的RFID實時數據顯示的是,在這里可以查詢到RFID歷史數據,而在RFID設置界面內只能查詢到實時識別的RFID標簽數據。第三是數據導出,數據導出是將控件的數據導出到excel。圖9展示的是查詢編號為1000591120621的豬只于2021年12月5日的所有采食數據。

圖9 豬只身份信息管理模塊功能展示圖Fig. 9 Pig identity information management module function display diagram
在豬只的采食行為判別過程中,RFID設備起到的是對豬只身份進行識別的作用,而在系統中對于豬只的有效識別距離則是需要一個適當的值(本文選取的有效識別距離為0.5 m)。既能保證當豬只進入采食范圍后能被確定其身份,又能保證識別的精確度,不會誤檢到其他的未采食豬只。
試驗選取了對系統影響可能較大的4個因素進行試驗,分別是RFID讀寫器功率、豬只靠近速度、射頻頻率以及RFID電子標簽的靠近方向。由于無法進入實際方艙豬舍養豬場對豬只進行試驗,所以本文選用了基于STM32芯片(速度編程可控)的智能小車來模擬豬只,同時設計了小車的行車軌道2 m。實際試驗過程中將小車按照橫線(與天線接觸面最大)、縱向和斜向,分別貼在小車上讓小車靠近增益天線,使得電子標簽的信息被讀寫器讀取。根據以上影響因素,以RFID電子標簽的有效識別距離作為評判標準,設計四因素三水平的正交試驗,各因素的三水平如表1所示。

表1 試驗因素水平表Tab. 1 Experimental factors and level table
表2中的k1、k2、k3表示每個因素在3次試驗所得RFID有效識別距離的平均值,R代表平均數的極差,A、B、C、D為因素編碼值。R的大小代表著變化的幅度,R越大,說明該因素對于最后的有效識別效果有著顯著的影響效果。

表2 正交試驗分析結果Tab. 2 Analysis results of orthogonal experiment
由表2可知,R最大的為D,其次是A,而B、C相對較小,故標簽的靠近方向與讀寫器的功率對于電子標簽的識別效果有著重要的作用。且該表因素的優水平為:A3B3C2D1,也就意味著讀寫器的功率為27 dBm,小車靠近速度為最慢的0.11 m/s,射頻頻率為920.75 MHz,標簽靠近方向為橫向靠近會使得電子標簽在0.5 m左右的識別效果最好,超過這個范圍會使得電子標簽不能被識別,滿足需求,也與實際情況相符。
試驗隨機選取了300 g、400 g、500 g、600 g作為豬只的一次進食的標準質量。每個標準質量重復模擬飼喂50次,測試前采用電子秤校準進食標準質量,測試結果如表3所示,表明在實際的工作過程中,系統具有較好的精度以及比較小的誤差,能夠滿足實際生產需求。

表3 采食數據收集性能測定表Tab. 3 Measurement table of feeding data collection performance
1) 設計了一種集豬只識別、豬只采食量收集、數據處理于一體的方艙豬舍豬只采食行為分析系統。該系統采用RFID技術和圖像處理技術,選擇了基于改進的自適應的高斯混合模型的豬只運動判別算法,能夠準確將豬只是否進入采食區域判斷出來,結合RFID技術與稱重傳感器提供的數據支撐,能夠準確分析豬只的采食數據,實現豬只的精準飼養和綜合管理。
2) 完成了系統的功能開發,根據方艙豬舍的豬只采食行為分析需求設計了不同的系統模塊,各個模塊之間分工明確共同實現對豬只身份的認證和采食量的收集。通過RFID設備影響參數正交試驗確定了RFID設備的實際應用參數設定,讀寫器的功率為27 dBm,射頻頻率為920.75 MHz,標簽靠近方向為橫向靠近會使得識別效果最好。另外通過豬只個體的飼喂測定試驗表明系統有較好的精度以及比較小的誤差(0.08%~0.1%),能夠滿足實際生產需求。