摘 要 針對生豬智能化管理中傳統標識方法存在的易脫標,易引起生豬感染等問題,采用基于改進 YOLOv3模型的非侵入式方法,對生豬多個體識別進行研 究。針 對 原 有 的 YOLOv3模 型,在 Darknet53特征提取器中引入密連塊,結合下采樣層組成新的骨干網絡;在 YOLOv3模型中添加改進的 SPP單 元,最 終 構 建 了 YOLOv3_DB_SPP模型。試驗采用的豬臉數據集共分為10類,數據增強后樣本為8512張,訓練集和測試集比例約為9∶1。結果表明:1)YOLOv3_DB_SPP模型在各分類概率閾值下檢測豬臉數據集時的平均精度均值均高于 YOLOv3模型;2)當IOU 閾值為0.5,分類概率 閾 值 為 0.1時,YOLOv3_DB_SPP 模型的平均精度均值比 YOLOv3模 型 高 9.87%;3)YOLOv3_DB_SPP模型檢測遠距離有遮擋的小目標樣本時,平均精度值均高于 YOLOv3模型。YOLOv3_DB_SPP模型用于豬臉識別時,能夠提高基礎特征提取器的特征提取能力以及檢測器的準確率。
本文源自中國農業大學學報 發表時間:2021-03-09 《中國農業大學學報》是教育部主管、中國農業大學主辦的國家級綜合性農業學術期刊。本刊主要刊登生物學、作物學、植物保護、園藝學、動物科學與動物醫學、食品科學與營養工程、農業資源與環境工程、農業機械工程、信息與電氣工程、水利與土木工程及農業經濟管理等學科的學術論文、文獻綜述和研究快報等。讀者對象為國內外高等院校師生、廣大農業科技工作者及管理干部。
關鍵詞 豬臉識別;YOLOv3;DenseNet;SPP
近年來,隨著生豬養殖業智能化的發展,生豬的精準管理變得尤為 重 要,而 識 別 生 豬個體則是進行針對性養殖的關鍵。傳統的識別方式包括顏色標記、佩戴 射 頻 識 別 耳 標 (Radiofrequencyidentification,RFID)等。使用顏色 標 記 的 方 法 雖 然 直 觀,但 僅 限于生豬較少的情況;而佩戴耳標則可能存在耳標損壞,脫標以及生豬感染寄生蟲等問題。
現有的豬臉識別研究較少,主要包括:1)Naoki等[1]利用特征空間方法,采用手動分割的特征實現生豬 個 體 識 別,在 16 個 類 別 的 數 據 集 上 達 到97.9% 的識別率;2)Hansen等[2]搭建了基于卷積,最大池化等 結 構 的 CNN 模 型,在農場豬臉識別上取得了較好結果;3)秦興等[3]利用雙線性卷積神經網絡進行生豬面部特征提取,并將不同層次的特征做外積融合形成最終個體特征,在其測試圖像集上達到了95.73%的識別準確率。上述研究在解決豬臉識別問題 時,主要考慮單個個體樣本受光照、姿態、場景等因 素 的 影 響,當樣本圖像中有多個個體時,難以完成自動化管理中復雜環境下的多個體識別任務。
隨著深度學習技術在計算機視覺領域的廣泛運用[4-6],深度卷 積 神 經 網 絡 在 人 臉 識 別 領 域 成 果 頗豐。理論上,應用于非侵入式場景的人臉識別對于豬臉識別有一定參考價值。深度學習技術在人臉識別領 域 的 研 究 主 要 包 括:1)Taigman 等[7]提 出 的Deep-Face方法,使用4000個人200萬的大規模訓練數據訓練深度卷積神經網絡,對人臉對齊和人臉表示提出改進,在 LFW 數據集上達到97.35%的準確率;2)Sun等[8-9]提出的 DeepID系列使用25個網絡模型,并在網絡結構上同時考慮分類損失和驗證損失等,顯著提升了人臉識別效果;3)Sun等[10]提出的 DeepID2神 經 網 絡 結 構 利 用 人 臉 識 別 信 號 提取不同人臉特征,增大不同人臉圖像間的類間差異,并使用人臉驗證信號提取同一個人臉的特征,減小類 內 差 異,從 而 學 習 到 區 分 能 力 較 強 的 特 征;4)Florian等[11]提出的 FaceNet網絡結構共擁有27層網絡層,引入 Triplet損失函數提取人臉的特征信息,使得模型的學習能力 更 高 效;5)Omkar等[12]在網絡結構中引入跨層連接,并使用了260萬的大規模數據集,在 LFW 和 YTF 數 據 集 上 達 到 很 好 的結果。
基于以上研究,本研究擬采用在骨干網絡中引入密連塊(DenseBlock)以及在檢測器中引入改進的SPP單元的方法,以期設計出能夠在多個尺度特征圖上對不同大小的目標進行檢測,能夠有針對性的實現多個體識別任務的豬臉識別算法。
1 材料與方法
1.1 樣本采集
樣本豬來自安徽蒙城京徽蒙養豬場,使用羅技C920Pro攝像頭作為實時采集工具,利用 NanoPc-T4開發板將 USB連接的攝像頭采集到的圖像傳輸到開發板的I/O 緩沖區中,在開發板的圖形運算單元上對圖像數 據 進 行 壓 縮 打 包 處 理,利 用4G 通 信模塊將圖像信息經過互聯網傳輸到服務器。試驗中安裝攝像頭的圈舍光照較為充足,且試驗采集裝置能夠遠程控制攝像頭的旋轉,使得采集到的樣本圖像具有不同角度的生豬個體臉部信息。
為保證采集到的樣本畫面連續,能夠辨認生豬個體是否為同一只,試驗采集裝置采樣時間間隔設置為0.5s;由于過短的時間間隔可導致采集的樣本圖像之間相似度過高甚至畫面接近重復,故對采集到的樣本圖像進行了篩選。本研究對連續采集圖像之間 采 用 結 構 相 似 性 指 數 (Structuralsimilarityindex,SSIM)進行比較。經過對樣本進行一系列的比較試 驗,試 驗 樣 本 同 時 選 用 SSIM 值 <0.78 的2張圖像,若大 于 該 值,則選用序號靠后的圖 像,樣本圖像分辨率為1920像素×1080像素。
1.2 YOLOv3
YOLOv3模型使 用 連 續 的1×1和3×3卷 積以及殘差模塊構成了 1 個 包 含 52 個 卷 積 層 以 及1個全連接層的53層特征提取器 Darknet53,結構見圖1,此時輸入圖片大小為256像素×256像素。在預測時,為了能夠充分利用早期特征映射中的上采樣特征和細粒度特征,YOLOv3模型使用了多尺度預測方法[13],輸入圖片大小為416像素×416像素。YOLOv3模型 首 先 去 除 特 征 提 取 結 構 中 的 全連接層,在最后1個殘差塊的后面增加若干個核大小為1×1和3×3的卷積層集合,并使用最后1個1×1卷積層進行預測,此即為scale1。然后對該尺度提取到的特征圖執行上采樣操作,并 使 用concat操作將其與上一個殘差塊提取到的大小為26×26的特征拼接,拼接后的特征圖投入其后的多層卷積集合并預測,此即為scale2。最后,將scale2中提取的特征上采樣到52×52,并將其與上上個殘差塊輸出的特征拼接形成大小為52×52的特征圖,將該特征圖輸入其后的卷積層集合進行第3次預測,此即為scale3。
YOLOv3模型提供3種不同尺寸的先驗框,并依據不同的下采樣尺度,采用 K-means方法聚類得到9種尺寸的先驗框,按照大特征圖小尺寸框的原則分配。YOLOv3 模型利用線性回歸預測每個先驗框的目標分值[14]。網絡模型給每個groundtruth對象只分配1個先驗框。訓練時,采用誤差平方和作為邊框預測的損失函數。圖2給出先驗框與預測邊界框在 圖 像 上 的 關 系。預測邊界框的中心坐標(bx,by)及寬度bw,高度bh 的計算過程為:
式中:σ()為sigmoid函數;tx,ty 為預測邊界框的中心偏移量;Cx,Cy 分別為目標所在單元相對于圖像左上角的橫坐標與縱坐標;pw,ph 分 別 為 先 驗 框 的寬度和高度;tw,th 分別為預測邊界框的寬度和高度縮放比例。
YOLOv3模型為每個邊界框采用多標簽分類,使用單獨的邏輯回歸分類器取代softmax分類。在訓練過 程 中,利 用 二 值 交 叉 熵 損 失 (Binarycrossentropy)來預測類別。
1.3 DenseNet
密連 網 絡 (DenseNet)是卷積神經網絡中的一種跨連模型。密連網絡包括密連塊和用于連接密連塊的過渡層。密連網絡的優勢在于能夠有效解決深層神經網絡的梯度消失問題,并在實現特征重用的同時減少了參數[15-16]。
1個L 層的密連網絡,其第l層有l個輸入,且第l層的特征圖將傳遞給其后的L -l層以實現特征重 用,網 絡 共 有 L(L+1)2 個 連 接。網 絡 連 接 模式為:xl = Hl([x0,x1,…xl-1]) (2)式中:xl 為 第l 層 的 輸 出;Hl(·)為 批 標 準 化 層(Batchnormalizationlayer,BNLayer),ReLU 函數以及3×3卷積層構成的組合函數。
2 YOLOv3_DB_SPP模型
由于豬場養殖環境的限制,采集到的生豬樣本面部存在臟污遮擋,需要深層神經網絡提取更具表征性的特征用于識別。然而,由于標記檢測圖像的時間代價大,短期內無法獲取較大的樣本數來應對深層神經網絡可能出現的梯度消失問題。本研究在原始 YOLOv3模型的基礎上提出了 YOLOv3_DB_SPP模型。該結構首先在基礎特征提取器中引入了 DenseNet中 的 DenseBlock。其 次,為 了 在 不 引入過多參數的前提下融合多尺度的信息,該結構在骨干網絡之后添加改進的SPP單元,以提高檢測豬群樣本中占整張圖片面積較小的生豬個體時的準確率。
2.1 特征提取器
YOLOv3_DB_SPP 模型的特征提取器包括Convolutional單 元 和 DenseBlock 模 塊 2 部 分,結構見圖3。Convolutional單元由BNLayer,7×7或3×3的卷積層,LeakyReLU 激活函數構成(圖4)。其中 BN Layer用 于 自 適 應 的 重 參 數 化,起 到 避 免網絡參數分布發生偏移的作用,在一定程度上能夠緩解深層網絡的過擬合以及梯度消失問題,且對參數初始化的影響比較小。為了更充分的保留原圖信息,提 高 對 小 目 標 的 檢 測 精 度,本 研 究 參 考ResNet[17]和 GoogLeNet[18]的 做 法,將 特 征 提 取 器第一個卷積層的核大小設置為7×7,并在該層實現第一次下采樣,其余的4次下采樣均采用3×3的卷積層實現。
改 進 的 特 征 提 取 器 使 用 DenseBlock 代 替 原來 的 Residual單 元,DenseBlock中 每 個 卷 積 層 輸出 的 特 征 圖 數 目 為k,k 值 的 設 置 較 殘 差 模 塊 會小 得 多,使 得 網 絡 更 窄,在加深層次的同時參數數目不至于增長的過 多,減 少 網 絡 計 算 量。本 研究 采 用 的5個 DenseBlock除 Denseblock1 之 外 其余4個 DenseBlock的 結 構 一 致,如 圖 5 所 示。其中 非 線 性 轉 換 Hi 由 BN Layer,1×1 的 卷 積 層,LeakyReLU 激 活 函 數 以 及 大 小 為 3×3 的 卷 積層 組 成。 本 研 究 使 用 LeakyReLU 函 數 取 代 原DenseNet網 絡 中 使 用 的 ReLU 函 數,以 防 止 取 到負 值 的 參 數 被 置 0 導 致 該 神 經 元 無 法 學 習。 在3×3的卷積層之前仍然添加1×1的 卷 積 作 為 瓶頸 層,用 于 對 輸 入 到 3×3 卷積層的特征進行降維,減 少 計 算 量。
為 了 不 引 入 過 多 參 數,本 研 究 使 用 的DenseBlock1中 每 個 卷 積 層 的 輸 出 通 道 數 設 置 為32,且 僅 使 用 3 層 的 結 構。 經 過 DenseBlock1 對特 征 的 重 復 利 用 之 后,對 后 面 的 DenseBlock2,3,4采 取 或 加 深 層 次 或 減 小 輸 出 通 道 數 的 做 法,這3個 密 連 塊 的k值 分 別 為 16、16、32,且 均 包 含 8個 卷 積 層。 最 后 一 個 密 連 塊 為 了 輸 出 更 加 豐 富的特征信息設置了較大的通道數64,采 用4層 結構。由 于 DenseBlock 中 的 卷 積 層 較 Residual中要 多,故 將 其 疊 加 使 用 次 數 分 別 減 少 到 1、2、4、2、1。避 免 因 次 數 使 用 過 多 導 致 網 絡 層 次 過 深,影 響 到 模 型 的 效 率。YOLOv3_DB_SPP 模 型 結構 見 圖6。
2.2 檢測器
由于豬場養殖環境分為單只圈養和多只圈養,采集多只圈養的樣本時,樣本圖像中生豬個體多且擁擠,部分生豬距離攝像頭距離較遠,且有遮擋豬臉的情況發生。為了能夠檢測到這類小目標,本研究提出的 YOLOv3_DB_SPP模型引入了改進的SPP模塊。
YOLOv3_DB_SPP模型中,先在特征提取器之后增加 ConvolutionalSet。它 包 括3組1×1和3×3的卷積層,再在該單元的后面引入改進的 SPP單元(圖7)。改進的SPP單元對卷積層提取的特征圖分別進行大小為7×7,5×5以及3×3的最大池化。為了保持輸入輸出尺寸一致,在池化操作前對特征提取器的輸出做了 padding操作,并設置 池 化步長為1。
改進的 SPP單元對3種不同尺度池化的結 果進行了concat操作,多次最大池化操作在不同尺度上保留響應最強烈的特征,且利用拼接特征提取器的輸出與改進的 SPP 單元的輸出保留卷積層提 取的特征,再經過1個3×3卷積層的處理后,輸入第一尺度檢測器的1×1卷積層,實現在尺寸為13× 13的特征圖上的檢測操作。
相對于傳統的SPP,改進的SPP單元將輸入的特征圖與池化后的特征圖進行通道合并,使得更多的特征被捕獲,提高了大目標及一般目標的識別精度。其中較小尺度的池化,用于提取遠距離小目標的代表性特征。
網絡的第二 個 尺 度 對 改 進 的 SPP 單 元 輸 出 與骨干網絡輸出拼接得到的特征圖進行上采樣,輸出特征 圖 大 小 為 26×26。與 YOLOv3 模 型 不 同,YOLOv3_DB_SPP模型中密連塊層數較多,如果仍然 將 上 采 樣 得 到 的 26 × 26 的 特 征 圖 與DenseBlock4輸出的特征圖進行拼接操作,輸 出 的通道數將會變得很大,而在此處進行1×1降維又有可能會丟失部分特征,故在第二尺度采用第四個下采樣層大小為26×26的輸出與其進行拼接。再 經過 ConvolutionalSet和 3×3 卷 積 后 輸 入 1×1 卷積層,完 成 第 二 次 檢 測。最后一個尺度重復第二個尺度的 操 作,將第三個下采樣 層的輸出與第二尺度拼接后特征的上采樣特征進行拼接,經 過 一系 列1×1和3×3卷積后在最后一個1×1卷積上完成預測。
3 試驗數據集
試驗中網絡模型的輸入為416像素×416像素的 RGB彩色生豬 圖 像,原 數 據 集2128張,經 過 水平翻轉,隨 機 裁 剪,鏡 像 翻 轉 以 及 隨 機 移 位 產 生8512張樣本,訓練集和測試集樣本數比例約為9∶1。
試驗采用的豬臉數據集包含的10個生豬個體分別編號為pig1,pig2,…,pig10。使用labelImg手動標框并 賦 標 簽 名,界 面 見 圖8。labelImg生 成 的XML文件包含了樣本圖像的尺寸以及樣本框左上角和右下角的坐標等信息。
4 試驗方法
本試驗 采 用 的 操 作 系 統 為 Ubuntu18.04.3,CPU 為Inteli59400F2.9GHz,內 存64G,GPU為 NVIDIAGEFORCERTX2080Ti,顯存32G;深度學習框架為 Tensorflow,版本號1.13.0。
試驗 分 為 3 個 階 段,分 別 訓 練 15、25、40 個epoch,batch尺 寸 為32,設置最大學習率lrmax和 最小學習 率lrmin,迭代步數指迭代的 batch數 目。由于網絡訓練初期可能出現loss值 為 NaN 的 情 況,為了避免該問題,第一階段的學習率設置為當前迭代步數與第 一 階 段 總 迭 代 步 數 的 比 值 與lrmax 的 乘積,該階段用于穩定訓練,學習率逐漸增大至lrmax。第一階段與第二階段均凍結除去檢測器外所有層的參數,利用模型在 PASCAL VOC2007數據集 上 訓練得到的參數作為初始參數,僅訓練檢測器層,最終學習率為lrmax與lrmin的中值。最后一階段進行全網訓練,最終學習率為lrmin。
由于改進的 YOLOv3_DB_SPP模型與 YOLOv3模型在卷積層層數,參數數目等方面均有區別,因此在訓練時本試驗根據模型收斂實際情況使用了2組參數。針對 YOLOv3和 YOLOv3_DB模型,lrmax和lrmin分別設置為10-4和10-6,針對 YOLOv3_DB_SPP模型,lrmax和lrmin分別設置為10-5和10-7。
網絡模型的損失函數分為3個部分,目標類別的損失Lcls以及置信度損失Lconf使用二值交叉熵函數,定位損失Lloc采用預測偏移量與真實偏移量之間差的平方和作為損失函數,三者之和為最終損失total_loss,具體如下:
式中:S表示將圖像分成S×S的網格;B 為每個網格單元預測的邊界框個數;C 為置信度值;^Ci 為預測置信度值輸入Sigmoid函數后的輸出;c為類別;pi(c)為包含目標的第i個單元格中目標屬于類別c的概率;^pi(c)為 將 預 測 概 率 輸 入 Sigmoid函 數 后的輸出;Iobjij 根據第i個網格單元的第j個邊界框是否有目 標 分 別 取1、0,Inoobj ij 取 值 與 之 相 反;xi、yi、wi、hi 為groundtruth 框 的 中 心 坐 標、寬 度、高 度;^xi、^yi、^wi、^hi 為預測邊界框的中心坐標、寬度、高度。
5 結果與分析
在迭代20315個迭代步數后,3個模型的總損失值均收斂到0.15附近(圖9),三者訓練時間均為3.0~3.5h。
1 示 出 當IOU 閾 值 為 0.5,分 類 概 率 閾 值T=0.1時3種 模 型 對 豬 臉 數 據 集 的 檢 測 結 果,包括平均 精 度 均 值(Meanaverageprecision,mAP)與平 均 精 度 值 (Average precision,AP)。 其 中YOLOv3_DB模型 表 示 未 加 改 進 的 SPP單 元 的 檢測器???以 看 出,YOLOv3_DB 模 型 與 YOLOv3_DB_SPP模 型 的 mAP值 均 高 于 YOLOv3模 型,且后者較前 者 有 顯 著 提 升,說 明 本 研 究 提 出 的 方 法對提高檢測準確率有明顯作用。YOLOv3_DB 方法在前7類樣本上的 AP值雖然有所 提 升,但 對 于pig8,pig9,pig10 這種多只圈養的生豬樣本,檢 測結果并不夠好,而 YOLOv3_DB_SPP模型不僅前7類樣本的 檢 測 效 果 優 于 前 2 種 模 型,且 對 多 只 圈養的樣本仍有較高檢測結 果,說 明 改 進 的 SPP單元對于檢 測 距 離 較 遠,遮擋較多的小目 標物體有所助益。
為了進一步說明模型的性能,表2示出不同分類概率閾值下3種模型檢測豬臉數據集時的 mAP值以及檢測速度,此時IOU 閾值仍為0.5??梢钥闯鲭S著分類概率閾值的不斷提升,YOLOv3模型的mAP下降十分明顯,而改進的2版模型結果受影響相對較小,結果表明 YOLOv3模型的檢測結果普遍是低概 率 的,一 旦 閾 值 提 升,低 概 率 結 果 被 剔 除,mAP也就隨之下降;且對這10類 樣 本 進 行 目 標 檢測時,改進的網絡模型檢測每種生豬個體時的 mAP相較 于 YOLOv3 模型均有不同幅度 的提升,但YOLOv3_DB 模型與 YOLOv3_DB_SPP 模 型 的 檢測速度要次于 YOLOv3模型。
圖10示出 YOLOv3,YOLOv3_DB和 YOLOv3_DB_SPP這3種 模 型 對 多 只 圈 養 樣 本 的 檢 測 結 果??梢钥闯?,相 對 于 YOLOv3模 型,YOLOv3_DB 模型能 夠 很 好 檢 測 出 右 下 角 有 陰 影 遮 擋 的 生 豬;YOLOv3_DB_SPP 相 對 于 YOLOv3 和 YOLOv3_DB模型,實現了對角落里遮擋較多的小樣本的檢測。
圖11示出 YOLOv3,YOLOv3_DB和 YOLOv3_DB_SPP這3種模型檢測多只圈養樣本時產生的預測 邊 界 框。 可 見,YOLOv3_DB 模 型 相 對 于YOLOv3模型,預測邊界框框出的檢測目標更加完整;YOLOv3_DB_SPP模型相較于前2種模型能夠實現對較遠距離下遮擋較多的小目標的檢測,但對小樣本邊界框的定位不夠精確。
6 結 論
本研究將 DenseBlock引入 YOLOv3模型的特征提 取 器 Darknet53得 到 檢 測 模 型 YOLOv3_DB,并將其與改進的SPP單元結合,提出一種新的檢測模型 YOLOv3_DB_SPP,應用到生豬識別中。當IOU閾值為0.5,分類概率閾值為0.1時,YOLOv3_DB模型檢測豬臉數據集時的平均精度均值為82.76%,檢測速度60幀/s,與 YOLOv3模型相比,其平均精度均值高出2.76%,速度僅相差5幀/s;YOLOv3_DB_SPP模型檢測豬臉數據集時的平均精度均值為90.18%,檢測速度56幀/s,相較于 YOLOv3模型,其平均精度均值高9.87%,速度慢9幀/s。試驗表明本研究提出的 YOLOv3_DB_SPP模型在檢測速度損失不大的情況下,提高了檢測精度并實現了對遠距離有遮擋小目標的檢測,但預測邊界框的定位精度仍有待提高。
論文指導 >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >