王雨竹,王 興,劉森瑞
(1.太原科技大學 計算機科學與技術學院,山西 太原 030024;2.長沙理工大學 建筑學院,湖南 長沙 410015)
鳥類的特性和特殊的生活習性,無疑會增加相機拍攝的難度,同時對拍攝設備的要求也很高,導致人們近距離觀察鳥類的成本太高,而且拍攝時間過長,需要有人值守等待鳥類出現。為了解決鳥類的觀賞成本太高以及拍攝需要長期值守的問題,本文研究了一種物聯網智能鳥類投食器。該設備有遠程控制投食的功能,利用鳥食吸引鳥類靠近。投食設備中的攝像頭和麥克風將采集到的信息發送到處理器,運用智能圖像識別和音頻識別算法對鳥類進行識別;隨后將識別結果發送到用戶軟件,用戶根據需求可遠程控制投食開關。另外,投食器配備了定位裝置和太陽能充電板,可以放置在野外對鳥類進行觀察。
物聯網智能鳥類投食器總體由三部分組成,分別是采集部分、識別部分、控制部分。采集部分由壓力傳感器來感知鳥類是否靠近,微型麥克風和高清攝像頭對鳥類的聲音和圖像進行收集并傳輸到用戶端界面。識別部分是對收集來的鳥類畫面以及聲音做處理分析,用特定算法來識別鳥的種類。控制部分電路主板通過自身集成的網絡通信模塊接收來自用戶端的控制信息,隨后通過I/O 接口將控制信息發送到投食裝置。用戶端軟件與云服務器連接,在得到用戶許可后,該鳥類的音視頻信息將會通過網絡模塊上傳到服務器進行保存。設備模型如圖1所示。

圖1 設備模型
起初裝在投食皿內部的電阻型壓力傳感器因受到鳥類自身的重力阻值發生變化,從而引起電路電流的變化。檢測到電流發生了變化,控制電路會將麥克風和攝像頭打開,對鳥類進行錄音和拍照,產生的緩存文件保存到投食器的SD 卡中。投食器內置的CPU 會對照片中的鳥類進行識別,將識別結果暫時保存到本地。與此同時,網絡模組會發送提醒信息到用戶端軟件,當用戶端進入觀察模式時,實時音視頻信息和鳥類識別信息會傳送到軟件界面,觀看視頻的同時可以對鳥類進行拍照截圖并選擇是否打開投食開關;退出觀察模式時,如得到用戶許可,投食器會將此次流程采集到的信息發送到服務器,同時控制電路收到來自網絡模組斷開連接的信息,關閉麥克風和攝像頭。設備的工作原理如圖2所示。

圖2 設備工作原理
主控電路板是整個裝置的核心模塊,它集成了CPU、電源、開關控制器、WiFi/4G 傳輸模塊、內部存儲設備等。主要完成的工作有:監測電路中的電流變化,當電流發生明顯變化時,控制芯片向采集和識別模塊發送控制信息,并且通過網絡傳輸模塊向用戶軟件發送指令;當用戶軟件斷開連接時,網絡模塊會向控制芯片發送特定指令集,控制芯片關閉電路中的各個元器件。
使用電阻型壓力傳感器[1]來檢測是否有鳥前來覓食。傳感器將壓力變化轉換成電阻的變化,從而引起電路中電流的變化。攝像頭采用索尼IMX179 CMOS Sensor,此設備主要用于生物識別和高清監控等,可以滿足投食設備的使用需求。拍攝到的監控視頻暫時保存到SD 卡中,然后按照MP4 的文件格式對視頻進行封裝[2],最后通過網絡模塊將壓縮編碼后的視頻數據通過網絡發送到客戶端。
用于鳥類識別的圖像處理模塊采用ARM9 系列S3C2440作為系統處理器,該芯片功耗低,整個系統設計簡單高效,由于是全靜態設計,所以適用于對成本和功耗有要求的投食設備[3]。S3C2440 芯片可以控制整個系統,它不但具有圖像處理功能,同時也控制著其他各個模塊的運行。其在電路中的架構如圖3所示。

圖3 S3C2440 控制器示意圖
投食器視頻編碼采用H.264 視頻編碼標準,與其他的壓縮編碼標準相比,H.264 具有低碼率、高質量、容錯能力強、網絡適應性強的優點[4]。H.264 在功能上被分為:視頻編碼層(VCL)和網絡提取層(NAL)。VCL 對視頻的原始數據進行壓縮,并且在輸出數據之前會先把數據封裝到NAL 中。每個NAL 單元都包含一個NAL 頭信息和一個RBSP(Raw Byte Sequence Payload,原始字節序列負荷)。NAL 單元序列如圖4所示。

圖4 NAL 單元序列實例
H.264 有兩種封裝格式:一種是Annexb 格式[5],主要用于本地存儲;另外一種是RTP 格式,主要用于網絡傳輸。圖5 為H.264 碼流結構分層。

圖5 H.264 碼流結構分層
由于投食設備需要實現音視頻數據的按需實時傳輸[6],所以設備通信協議采用RTSP 實時流傳輸協議,該協議是TCP/IP 協議應用層中的一種[7],可以控制實時數據的傳送。
通信指令按照RTSP 協議中的請求報文的方法來設計。請求報文方法的功能見表1 所列。

表1 請求報文方法描述
用戶端軟件根據設備返回的不同命令來執行不同的任務。RTSP 回應信息用3 位十進制整數來表示[8]。
本系統對于鳥的種類識別基于圖像識別和聲音識別兩種方法。圖像識別結果會受到光線、拍攝角度、鳥類體積、鳥類姿態等因素的影響,其中鳥類的姿態對識別性能影響巨大[9]。最近的一項研究表明,物體姿態的變化會使識別算法的性能下降超過10%[10]。因此,當拍攝條件不滿足圖像識別算法要求時,自動切換為基于鳥類鳴叫的音頻識別方案。
2.3.1 鳥類圖像識別設計
同一張圖片的不同區域會有不同的特征,局部特征又有代表性的特征點,而每一張照片所擁有的特征信息又是不同的。因此,特征點可以作為圖像的獨有特征來實現圖像識別。圖像特征點最突出的就是其斑點和角點。尋找斑點采用灰度值比較的方法,提取出與周邊環境灰度值有較大差異的區域。對于圖像而言,角點可以理解為物體輪廓的連接點。本文采用了DoH 識別算法,該方法占用計算資源較少,識別精度高。
DoH 斑點檢測是通過計算圖像Hessian 行列式矩陣中的極大值完成的[11]。Hessian 矩陣的表達式為:
行列式表達為:
其中:Lxx表示通過高斯函數求x的二階偏導對圖像進行卷積后的結果;Lxy表示通過高斯函數求關于x的偏導和關于y的偏導對圖像進行卷積后的結果;Lyy表示通過高斯函數求y的二階偏導對圖像進行卷積后的結果。
然后,計算偏導算子,結果如下:
進一步計算得到:
DoH 檢測算法的步驟為:(1)通過計算得出圖像的二階微分Hessian 矩陣;(2)計算其行列式;(3)根據σ值生成相應的偏導算子;(4)對圖像進行卷積運算;(5)在圖像中查找DoH 對應的峰值。
算法檢測:在算法驗證階段,采用了投食器攝像頭拍攝到的同一鳥類不同姿態的照片。圖像大小為662×504 像素。
如圖6 和圖7所示,不管拍攝到的角度如何,采用DoH識別都能較好地提取出目標圖像的特征點。

圖6 鳥類正面特征結果提取

圖7 鳥類側面特征結果提取
2.3.2 鳥類音頻識別設計
在音頻識別的案例中,Incze 等人[12]提出了一種采用預處理錄音后獲得的聲譜圖對鳥類進行分類的技術。所提出的模型僅在少數物種上進行了測試,結果顯示準確率為88%。
通過比較已有方法得出,采用深度學習技術可以為解決鳥類識別問題提供有效的方案。本文的主要貢獻在于:開發了一個有效的分類模型,該模型運用了遷移學習和卷積神經網絡[13],為大量鳥類識別提供最佳方案。
鳥類音頻識別流程如圖8所示。首先對麥克風輸入的音頻進行預處理,然后將處理好的音頻輸入模型,最終得到鳥種類名稱。

圖8 鳥類音頻識別流程
(1)預處理
音頻預處理包括如下兩部分:
第一部分涉及對數據集進行裁剪,使其成為一個平衡集,其中每個輸出類都由相同數量的輸入數據樣本表示。這是通過過濾數據集來實現的,以獲得在質量方面評級為4 或5 的音頻錄音。錄音的質量是基于錄音的長度,較短的錄音比較長的錄音評分低。所有多余的零錄音剪輯被刪除。
第二部分是將音頻數據集轉換為Mel Spectrogram,并存儲為單獨的Mel-Spectrogram 數據集。轉換是通過DFT 完成的,Mel-Spectrogram 數據集被用作ML 分類模型的輸入。
(2)音頻分類模型
音頻分類模型中涉及EfficientNet-B0 和多層感知器兩種神經網絡。
EfficientNet-B0 是一種卷積網絡,它使用復合系數以更結構化的方式對神經網絡進行放大。該模型有從B0 到B7 的不同版本,每個版本都比之前的版本有更高的層數。這也意味著,隨著版本的增加,它的復雜性和編譯時間也會增加??紤]到這些因素,本文已經使用了這個模型的基本版本,即高效網絡B0,高效網絡B0 有237 層。
多層感知器是一種前饋神經網絡,用于簡單的分類和預測任務。它由一個輸入層、輸出層和任意數量的隱藏層組成,這些隱藏層的權值使用反向傳播算法進行訓練。非線性激活函數和網絡中存在的多層使得它不同于線性感知器。多層感知器中的層是完全連接的層,這意味著特定層中的每個神經元都與下一層中的每個神經元相連。
3.1.1 CPU
主控電路板集成了所有的系統元件,CPU 采用的是S3C2440AL-40 微控制器,焊接在主控電路板。
3.1.2 攝像頭
攝像頭采用SonyIMX179 技術攝像頭,該攝像頭接口類型為USB2.0,有效像素為800 萬像素,并且支持按鍵拍照,有自動對焦功能。在電路板上使用USB2.0 插槽進行連接,方便拆卸,并且有不同的攝像鏡頭可以選擇,便于后期推出不同攝像頭配置的設備。
3.1.3 RAM
由于原始控制芯片不能提供巨量的存儲空間,為了能夠滿足系統需要的圖像緩存存儲資源,使用了外界的SDRAM作為各模塊的驅動緩存器以及圖像數據緩存器,采用8 MB的IS42S16400 芯片。
3.1.4 光伏充電器
DC-DC 開關電源轉換芯片采用TPS5430,轉化效率高達95%[14],輸出電壓可調,輸入電壓最高為35 V,電流輸出為3 A,輸出電壓通過設置VSENSE 管腳對應電阻的值來改變。
采用太陽能光伏板為蓄電池充電,通過對電路電壓的檢測,系統可以控制何時對蓄電池進行充電,提高了對蓄電池的保護。將太陽能光伏板輸出電壓經電阻分壓電路處理,所得電壓作為檢測電路的采樣電壓。電路如圖9所示。

圖9 太陽能板輸出電壓檢測電路
U1A為同相比例運算放大電路,可由以下公式得出:
式中,U1AI=1 V,則R5=1.5R4,所以電阻R4為1 kΩ。U1B與其他元器件組成二階低通濾波器,對放大電路輸出的電壓進行濾波處理。此濾波器由U1B、C1、C4、R2、R3組成:
化簡可得:
為了解決鳥類觀賞成本高以及監控設備不夠智能化的問題,本文研究設計了一種物聯網智能鳥類投食器。它包括遠程監控和投食功能、智能識別鳥類功能,一定程度上降低了觀賞成本并實現了智能化。經過實驗檢測,驗證了設計的可行性,對多種鳥類進行圖像和音頻識別時,準確率高達80%。同時,開發了配套的客戶端控制軟件,實現了用戶與投食設備的遠程交互。后期如實現大面積推廣,可以進行鳥種類劃分,建立飛行軌跡數據庫,方便以后的鳥類生態學研究。