母豬產仔早知道,這次南農用上了英偉達邊緣 AI Jetson

2023-08-18     CDA數據分析師

原標題:母豬產仔早知道,這次南農用上了英偉達邊緣 AI Jetson

By 超神經

內容一覽:對養豬業而言,母豬產仔是其中關鍵的一環。因此,提高豬仔成活率、確保母豬分娩過程安全,成為重要課題。現有的 AI 監測方式,存在著高設備成本與信息傳輸不穩定的問題,南京農業大學研究人員,利用一種輕量級深度學習方式,對母豬分娩這一過程進行早期預警和有效監測,降低成本的同時,提升了監測準確率。

關鍵詞:嵌入式開發板 輕量級深度學習

作者|alice

編輯|三羊

我國生豬養殖業規模居全球首位,但產業整體依舊面臨著養殖水平較差的問題。對於很多大型養豬場,最關鍵的是在提高豬仔成活率的同時降低成本。傳統方法靠人力監管難度大且主觀性強,面對母豬分娩過程中難產、豬仔窒息等一系列問題,難以及時有效地處理。

近幾年,AI 監控已成為解決這一問題的重要方法。其原理大多是藉助雲計算為基礎的深度學習來進行監控,然而這一方法對設備與網絡寬頻要求高,具有很強的限制性與不穩定性。

據中國養豬網介紹,母豬在分娩前 12-24 小時內,由於催產素或催乳素的作用,往往會表現出築巢行為,且姿勢變換頻率增加。基於此,實驗團隊通過 YOLOv5 算法設計出一個監測母豬姿勢與豬仔出生的模型,並部署在英偉達 Jetson Nano 開發板上,從而在複雜場景中對該過程進行監測和分析,具有低成本、低延遲、高效率、易實現的特點。

目前這一成果於 2023 年 1 月發表於《Sensors》期刊,標題為:「Sow Farrowing Early Warning and Supervision for Embedded Board Implementations」。

論文已發表於《Sensors》期刊。

論文地址:

https://www.mdpi.com/1424-8220/23/2/727

實驗概述

數據與處理

視頻數據來自江蘇宿遷與靖江兩個養殖場,共收集了 35 頭圍產期母豬的視頻數據。其中靖江豬場的 11 頭母豬的數據記錄於 2017 年 4 月 27 日至 5 月 13 日,宿遷豬場的 24 頭母豬的數據記錄於 2020 年 6 月 9 日至 15日。母豬被隨機放置在特定尺寸 (2.2m x 1.8m) 的產床之中,視頻數據由攝像頭 24 小時連續記錄。

流程如下:

圖 1: 視頻採集流程圖

接下來,對數據進行預處理。實驗團隊首先篩選出母豬分娩前後一天錄製的視頻,然後用 Python 和 OpenCV 將其處理成圖像數據。利用標籤軟體對獲取的 12,450 張圖像中的母豬姿勢及新生仔豬數據進行手動標註和數據增強,得到 32,541 張圖像數據組成數據集。

數據增強 (Data Augmentation):此處指裁剪、平移、旋轉、鏡像、改變亮度、添加噪音和剪切)

這個數據集被分為 5 個類別:4 種母豬姿勢(側臥、胸骨臥、站立和坐)和仔豬,訓練集、驗證集和測試集的比例為 7 : 1 : 2。

圖 2: 經過數據增強後的效果

實驗模型

實驗團隊利用 YOLOv5s-6.0 建立了一個檢測母豬姿勢和仔豬的模型。此模型由 4 個部分組成:

Input:圖像輸入

BackBone:母豬和仔豬圖像特徵的提取

Neck:圖像特徵的融合

Prediction:預測(因母豬和仔豬的體型差異較大,這一部分使用了 3 種不同的特徵圖 (feature map),以進行大、中、小目標對象的檢測)

圖 3: YOLOv5s 算法的網絡結構

a:CBS 模塊細節

b:Res-unit 模塊細節

c:CSP1_X 和 CSP2_X 模塊細節結構

d:SPPF 模塊細節結構

實驗團隊將算法部署在英偉達推出的 Jetson Nano 系列嵌入式 AI 計算平台,並利用 TensorRT 來優化模型,使其後續在嵌入式開發板上的運行具有更高的吞吐量和更低的延遲,同時避免了網絡傳輸過程中可能存在的數據泄漏。

圖 4: TensorRT的工作流程

具體參數如下:

模型訓練環境:Ubuntu 18.04 作業系統,Intel(R) Xeon(R) Gold 5118 @ 2.30 GHz CPU,NVIDIA Quadro P4000 GPU,8 GB 顯存,64 GB 內存,2-TB 硬碟,PyTorch 1.7.1 和 Torchvision 0.8.2 深度學習框架,CUDA 版本 10.1。

模型部署環境:適配 ARM 的 Ubuntu 16.04 作業系統,4 核 ARM A57 @ 1.43 GHz CPU,128 核 Maxwell 架構GPU,4 GB memory,JetPack 4.5,Cuda10.2.89,Python 3.6,TensorRT 7.1,Opencv 4.1.1,CMake 3.21.2 深度學習環境。

模型參數:(1) 對於 YOLOv5 訓練,設置 epoch 300,learning_rate 0 .0001,batch_size 16;(2) 對於 TensorRT 優化網絡,batch_size 為 1,精度 fp16。

最後實驗團隊使用精度 (precision)、召回率 (recall rate) 和檢測速度 (detection speed) 等指標對不同算法進行了性能評估。

其中,精度及召回率可用于衡量算法檢測所有類別數據的能力,包括 4 種母豬姿勢(側臥、胸骨臥、站立和坐)及新生小豬;模型大小及檢測速度則用于衡量該算法是否適合部署在嵌入式設備上。

計算公式如下:

表 1:Tokyo-filtered 數據集中,各階段的圖像數據

TP:正樣本 (positive sample) 的正確預測數

FP:正樣本的錯誤預測數

FN:負樣本 (negative sample) 的錯誤預測數

實驗結果

模型性能

實驗團隊發現,在模型訓練的 300 個 epoch 中,隨著疊代周期增加,精度和召回率總體呈上升趨勢。同時可發現,進行數據增強後的 YOLOv5s 模型的精度和召回率始終較高。

圖 5:YOLOv5s 檢測模型的精度和召回率

a:精度 (precision)

b:召回率 (recall)

橘線:經過數據增強後的 YOLOv5s 模型的精度/召回率

藍線:未經數據增強的 YOLOv5s 模型的精度/召回率

實驗中,平均精度 (mAP) 被用來評估該算法檢測所有類別的能力。實驗團隊在評估 YOLOv5s 算法的同時,還橫向對比了 YOLOX-nano 和 NanoDet-m 兩種算法的性能,結果發現,YOLOX-nano 和 NanoDet-m 的檢測速度略快於 YOLOv5s,但精度較低,存在對仔豬漏檢和誤檢的情況。而 YOLOv5s 算法對不同尺寸的目標檢測效果良好,模型在圖像、本地視頻和攝像頭的平均檢測速度上與其他兩種相當。並且,經過數據增強的 YOLOv5s 模型具有最高的精度和召回率,分別為 0.982 和 0.937。

表 1:不同算法對母豬姿勢和仔豬檢測的評價指標

為了測試模型的的泛化能力 (generalization ability) 與抗干擾能力,實驗團隊在訓練模型時候將其中一頭母豬保留作「新樣本」,從中選擇了 410 張包含不同複雜場景的圖像對模型進行測試。結果顯示,母豬姿勢的漏檢和誤檢主要受到光照變化影響;仔豬主要受到熱燈開啟的影響,即強光下的仔豬難以識別;第一隻仔豬出生時間和不同顏色熱燈場景對模型的檢測能力影響較小。

表 2: YOLOv5s 模型在複雜環境下的測試情況

左二欄:母豬姿勢的漏檢率在複雜光照下最高

左三欄:母豬姿勢的誤檢率在複雜光照下與夜間開啟熱燈的情況下較高

左四欄:仔豬誤檢數量在複雜光照下和夜間熱燈開啟的情況下較高

左五欄:仔豬漏檢數量在夜間熱燈開啟的情況下較高

圖 6: 複雜環境圖像測試效果

a:複雜光照下

b:第一隻仔豬出生

c:不同顏色的熱燈下

d:夜間熱燈開啟

部署前後

實驗團隊將模型部署在英偉達 Jetson Nano 後,能夠準確地對母豬姿勢以及豬仔進行檢測。比較測試結果後發現,雖然該模型部署在英偉達 Jetson Nano 後精度上出現了微小的降低,但是其速度卻提升了 8 倍以上。

表 3:模型測試效果對比

左一欄:模型的格式

左二欄:模型部署平台,Quadro P4000 為對比測試所用平台。

嵌入式開發板上的 GPU 利用率限制了該模型的實際應用能力。下圖展示了模型在嵌入式開發板上檢測圖像和視頻目標時的 GPU 利用率。由於需要對視頻流進行解碼處理,因此在檢測視頻時的 GPU 利用率高於檢測圖像時的利用率,但這並不影響模型的性能。測試結果表明,研究中的模型可以應用於不同的生產場景。

圖 7:檢測過程中 GPU 利用率

(a) 圖像檢測中 GPU 的利用率

(b) 視頻檢測中 GPU 的利用率

檢測結果

實驗團隊通過對 22 頭母豬的數據進行測試和分析,得出產前 48 小時至產後 24 小時母豬平均姿勢轉換頻率。根據變化頻率(下圖所示),團隊將模型的預警策略歸納為:

1. 姿勢轉換頻率超上限值(17.5 次/小時)和低於下限值(10 次/小時)時發出警報。

2. 為了減少母豬日常活動對預警的影響,上限值或下限值必須超過 5 小時。

對樣本的測試表明,該模型能夠在產仔開始前 5 小時發出警報,預警時間與產仔實際時間誤差為 1.02 小時。

圖 8: 母豬產前 48 小時至產後 24 小時平均姿勢轉換率分析圖

(a) 平均姿勢轉換率變化範圍

(b) 平均姿勢轉換頻率

產前 48 小時至產前 24 小時,此期間母豬活動正常

產前 24 小時至產前 1 小時,姿勢轉換頻率逐漸增加,後逐漸減少

產後 1 小時至 24 小時,姿勢轉換頻率接近 0,後略有增加

當首個新生仔豬被檢測到後,分娩警報就會被觸發,顯示「開始分娩!起始時間:XXX」。此外,LED 燈閃爍也可以幫助飼養員快速定位正在分娩的母豬,判斷是否需要人工干預。

但是當檢測速度過高時,仔豬往往被錯誤地檢測到。因此,為了實現實時檢測,減少誤報,實驗團隊採取了「連續三次檢測法」。只有連續三次檢測到新生仔豬時,才判斷為仔豬。此方法誤報次數為 1.59 次,傳統單次檢測法則為 9.55 次。誤報次數明顯下降,總體平均準確率為 92.9%。

AI 養豬:智慧養殖新紀元

我國作為全球生豬養殖大國,2015 年至 2018 年,生豬年出欄量為 7 億頭左右。但近年來,受到豬瘟等影響,生豬存欄量及出欄量不斷有較大波動。據已發布的行業研究數據,近年來生豬養殖散戶比例不斷下降,規模化程度不斷提高,因此要求更高效集約的養殖技術應用到生豬養殖業中。

在國內,AI 養豬已有可靠產品。阿里雲聯合艾博機器、旗碩科技推出 AI 養豬解決方案,滿足了多元場景的需求。京東農牧智能養殖方案基於 AI、物聯網等技術,實現了「豬臉識別,全鏈溯源」。AI 帶來的更智能、更精細的養殖模式正在逐漸推廣。

然而目前 AI 養豬的推廣還面臨著費用高、操作較為複雜等亟待解決的問題,如何讓更多的養豬場敞開懷抱接納 AI,恐怕還有很長的路要走。

文章來源: https://twgreatdaily.com/zh-my/2830f2e7fc039bd85a41aa0a79b3a9c4.html