陳 曦,徐志宇,2
(1.同濟大學電子與信息工程學院,上海 201804;2.同濟大學計算機與信息技術國家級實驗教學示范中心,上海 201804)
城市流浪貓主要是指棲息于城市各大公園、社區及城鄉結合部的無主家貓。其來源主要是走失、遺棄和自然狀態下的無序繁殖[1]。流浪貓不僅自身健康狀況堪憂[2],而且構成城市衛生防疫[3]、居民生活[4]、基礎設施及道路交通安全[5]的潛在威脅。由于貓科動物活動的隱秘性,很難對其生態進行全面、深入的考察和數據采集。
計算機科學、人工智能與傳統基于數理統計的生物測定學(Biometrics)相結合,催生了現代生物識別技術。該技術早期主要以人為識別對象。VOC2006首次將動物列為識別對象[6]。微軟、cvPaper等開放數據庫也陸續添加了各種動物圖片數據集。動物檢測不僅要求能夠判斷場景中是否含有目標,而且要求精確標記目標出現的位置。Tatsuo Kozakaya提出CoHOG特征,并將其與Haar-Like特征一起送入AdaBoost分類器[7]。Akihiko Yamad提出了一種四方向特征(four directional features,FDF)和線性判別式分析(linear discriminant analysis,LDA)聚類算法[8]。Danai Triantafyllidou提出將生物臉部的形狀特征和紋理特征分開,分別訓練分類器,再并聯兩個分類器,利用卷積神經網絡得出最終分類結果[9]。
本文參考野生動物科考的思路[10],運用機器視覺和遠程通信技術,設計了一種用于城市流浪貓生態考察的監測系統。通過現場隱蔽的攝像頭采集流浪貓活動的影像,運用貓臉檢測進行分析,將疑似貓臉部分圖片通過遠程通信方式上傳至監控中心上位機。該監測系統可以為動物救助和走失寵物認領提供重要依據,也可為相關科學研究提供第一手的參考資料。
本文旨在開發一種能夠監測城市流浪貓活動的系統。監測系統整體架構如圖1所示。

圖1 監測系統整體架構圖Fig.1 Overall architecture of surveillance system
該系統由多個部署于現場的移動端和一個部署于監控中心的上位機組成。工作時,移動端根據貓臉識別記錄影像,并經由遠程通信上傳縮略圖像至上位機。監測數據可用于科學考察、動物救助、丟失寵物查找等。
移動端:硬件包括以樹莓派(Raspberry Pi)為核心的處理模塊、基于USB免驅攝像頭的圖像采集模塊、兼容3G和LoRa的通信模塊。軟件以Linux的發行版Raspberry Jessie為平臺,采用C++語言編程,并借助OpenCV和LibJpeg實現圖像處理和壓縮;通過調用Linux API驅動相關通信模塊,實現縮略圖像發送。
上位機:硬件為一臺計算機。軟件以Win10為開發平臺,采用Python語言編程,分別調用GUI工具包PyQt、串口開發工具包PySerial、網絡通信工具包PySocket,實現界面顯示、數據接收與存儲,
根據應用場景的需要,該監測系統應滿足以下性能要求。①智能性:根據采集的圖像自動識別貓臉,自動控制影像記錄設備的啟停,自動選擇通信模式并向監控中心服務器發送圖片。②遠程性:現場移動端與監控中心相配合,監控人員能夠在遠程的監控中心了解到現場的情況,決定是否到達現場對動物或設備實施干預。③可靠性:實際應用中,移動端需長期部署于戶外,氣候條件復雜、溫濕度環境多變,因此要求功耗低、待機時間長、可靠耐用。④經濟性:實際應用中,移動端需大量、多點部署;在滿足基本性能的前提下,要盡量降低購買、部署、維護成本。
局部二值模式(local binary pattern,LBP)是一種關于圖像紋理特征的描述符,將每個像素點與其相鄰像素比較,得到一個0/1序列,可突出強調圖像的局部細節特征。LBP算子具有灰度不變性和旋轉不變性[11]。為提高抗噪能力,進一步提出“多比例塊”(multi-scale block,MB)的改進方案,即MB-LBP。本文采用MB-LBP算子表征貓臉的紋理特征。
將圖像分為多個子區域(sub-region)。每個子區域與相鄰的8個子區域共同組成一個塊(block)。每個塊含有(s×s)個像素點。取子區域像素的均值為該子區域的灰度值,再通過子區域之間灰度值的比較,得到該子區域的LBP值。
子區域灰度值的均值操作,等價于對圖像的平滑處理。在此基礎上進行紋理提取,使魯棒性和抗噪能力得到顯著提升。
基于MB-LBP算法的貓臉紋理檢測結果如圖2所示。

圖2 基于MB-LBP算法的貓臉紋理檢測結果Fig.2 Feature detection results of cat-face based on MB-LBP algorithm
子區域越大(s越大),平滑效果越好,但同時也會導致圖像細節特征的丟失。當子區域大小合適時,貓臉具有明顯區別于背景的紋理特征。經試驗測試,折中選取子區域邊長s= 5,即每個塊包含(15×15)個像素點。
除了紋理特征,眼部特征也可作為貓臉檢測的重要依據。根據貓眼與下眼瞼在像素灰度值之間的差異,并借鑒人臉五官特征識別的成功案例[12],采用圖2 Haar-Like特征刻畫貓眼特征。
研究表明,在解決復雜的分類問題時,通過級聯多個分類器,并對其輸出結果進行線性組合,可以提高分類的性能。因此,構造2級級聯分類器:第1級為基于Haar-Lile特征的貓眼分類器,第2級為基于MB-LBP的貓臉紋理分類器。先用貓眼特征大致定位貓臉區域,再用紋理特征進一步判斷是否為貓臉。
Adaboost是一種針對級聯分類器的訓練算法。其核心思想是不斷尋找具有最小誤差函數的弱分類器,并在每一次弱分類之后根據分類效果調整訓練樣本的權值分布,從而提高被錯誤分類的樣本在下一次分類時的權值。弱分類器的級聯組成最終的強分類器。作為AdaBoost算法的重要改進形式,Gentle AdaBoost采用最小二乘法對每一級弱分類器進行優化,可以有效降低誤分類樣本權重的上升速率,在一定程度上避免過擬合,具有更好的數值計算穩定性。
如圖2(d)所示,當子區域較大時(如s= 60),MB-LBP特征與Haar-Like特征具有相似的結果,即貓眼的灰度值高于下眼瞼的灰度值。通過不同尺寸子區域的配合,可提高貓臉檢測的準確率和效率。
2.3.1 數據集
訓練數據集中的正、負樣本分別來源于google (https://sites.google.com/site/catdatacollection/data)和cvPaper數據庫。貓眼分類器的正樣本為1 500張含貓眼部分的圖片。其中,閉眼狀態和睜眼狀態各750張;負樣本為5 000張不含貓臉的圖片。貓臉紋理分類器的正樣本為5 000張含貓臉的圖片,其中3 000張為正臉、2 000張為側臉;負樣本為15 000張不含貓臉的圖片。
測試數據集為來源于kaggle數據庫(https://www.kaggle.com/c/dogs-vs-cats-redux-kernels-edition/data)的1 000張包含貓臉的圖片。
2.3.2 測試結果
定義分類效果的評價指標如下。①誤檢率(false positive ratio,FPR):分類器錯誤檢出的測試樣本數與分類器檢出測試樣本數之比。②正確率(true positive ratio,TPR):分類器正確檢出的測試樣本數與實際含有目標的測試樣本數之比。③檢測時間(detection time,DT):分類器檢測640×480個像素所用的時間。
經分別訓練、調試貓眼和貓臉紋理這2個分類器,最終得到一個TPR= 70%、FPR= 28%、DT= 430 ms的貓臉檢測器。基于貓眼-紋理特征信息融合的貓臉檢測結果如圖3所示。這是該分類器給出的部分典型結果。

圖3 基于貓眼-紋理特征信息融合的貓臉檢測結果Fig.3 Cat-face detection results based on information fusion of ocular region and fur texture
①檢測結果對形狀不敏感:當背景中出現如圖3(a)所示的類似貓臉的形狀或如圖3(b)所示的貓臉被部分遮擋時,仍可正確識別貓臉。
②檢測結果對光照不敏感:當照片欠曝或過曝時,仍可正確識別貓臉。
③存在如圖3(d)所示的眼部、紋理特征同時類似貓臉時,可能發生誤檢。
④當出現如圖3(e)所示的貓臉過度仰頭、側臉時,由于貓眼特征損失,可能發生漏檢。
城市流浪貓監測的應用場景,要求移動端將檢測到的貓臉圖像發送至較遠距離的上位機,并盡量降低通信功耗,延長待機時間。因此,本文給出3G和LoRa這2種遠程無線通信方案。實際應用時,可根據現場網絡信號狀況靈活選擇。
當移動端的部署地點的蜂窩信號覆蓋情況良好且交通便利時,為便于更換電池,功耗問題退居次要矛盾。此時可選用3G通信方式,即移動端利用3G無線通信技術將圖片發送至服務器的IP地址。3G通信方式可以很好地保證圖像傳輸的快速性,TCP/IP協議又能很好地保證圖像傳輸的可靠性。監控人員可在服務器端獲取更多的圖像信息。
為了讓移動端通過3G模式訪問互聯網,本文在移動端連接了3G模塊。3G模塊通過USB接口與樹莓派相連。移動端借助該模塊訪問服務器的IP地址,并向其發送圖像信息。
當移動端的部署地點無蜂窩信號覆蓋,或相對偏遠、供電困難時,功耗問題上升為主要矛盾。此時應選用LoRa擴頻方式傳輸圖像。相比于3G方案,LoRa方案的功耗顯著降低,待機時間大大延長,減輕了更換電池的負擔。但其代價是數據傳輸速率較慢,監控人員在上位機僅能獲得圖像的部分信息。
LoRa通信通過在移動端和服務器端分別連接LoRa擴頻無線串口模塊實現。LoRa擴頻模塊同樣通過USB接口與樹莓派相連,接收端模塊與服務器相連。在LoRa傳輸的范圍之內,移動端可通過訪問接收端的地址向服務器發送數據。
為完成系統的整體性能測試,制作了監測系統移動端樣機;上位機則為普通計算機,主要涉及軟件開發工作,即編程完成圖像數據的接收、存儲,并在監控界面顯示。
測試條件:同濟大學嘉定校區智信館南側庭院,上午10:00~11:00,天氣晴朗。此處為校園流浪貓的集中棲息地之一。
測試流程:通過攝像頭讀入含有貓臉的圖像,檢測其中的貓臉部分,將圖片壓縮后上傳至上位機,并在監控界面中顯示。由于3G通信的傳輸可靠性與范圍依賴于現場周圍蜂窩基站的分布,因此本文主要測試LoRa通信性能。
定義3項通信性能指標。①傳輸時延:接收到完成圖像接收和發送端開始發送圖像的時間差。②傳輸距離:接收模塊和發送模塊間隔距離。③傳輸可靠性:完成完整的圖片傳輸的數量和發送端發送的圖片數量之比。
測試場地為室外空曠地帶,中間無明顯障礙物,設定傳輸速率為0.3 kbit/s;測試方案采用移動端發送5張1 kB左右的圖片,在上位機檢驗圖片的接收狀況。監測系統移動端與上位機采用LoRa通信模式傳輸圖像的性能測試結果如表1所示。

表1 性能測試結果Tab.1 Results of performance test
監測系統的整體功能驗證效果良好。移動端通過圖像識別,可準確檢測流浪貓活動;經3G或LoRa遠程通信方式,可將圖像傳輸至上位機監控界面顯示。
本文綜合運用計算機視覺和遠程通信技術,開發了一種用于城市流浪貓生態考察的監測系統。該系統由移動端和上位機組成,分別部署于現場和監控中心。移動端基于樹莓派平臺,通過攝像頭偵測流浪貓活動,構建了2級級聯器,分別基于Haar-Like特征和MB-LBP特征,將貓眼特征與紋理特征相結合,并運用Gentle AdaBoost算法加以訓練。標準數據集測試顯示貓臉檢測的正確率為70%,誤檢率為28%。進一步制作的樣機,可根據現場蜂窩網覆蓋情況,選擇3G或LoRa方式實現遠程圖像傳輸。現場測試結果證實了系統各項功能的有效性。