劉小紅 馬凌 仇煥青



摘要 在移動端直接上傳獲取的病害圖像進行遠程診斷時,因圖片數據量大可導致上傳速度緩慢,增大服務端數據處理難度,影響圖像識別的及時性和準確性。針對這個問題,以黃瓜病害為例,提出在移動端先將獲取的圖像進行圖像裁剪和閾值分割處理,提取用戶感興趣區域上傳遠程服務端。系統測試數據發現,病害圖像經過裁剪和閾值分割處理后,在獲得良好圖像質量前提下,大大減少了圖像數據容量,能加快圖片上傳速度,降低遠程服務端圖片數據處理難度,提高診斷的及時性,具有較高的實用性。
關鍵詞 閾值分割;Android;圖像診斷
中圖分類號: TP391.41 文章標識碼:A 文章編號:2095–3305(2021)01–0071–02
近幾年農業災害研究已成為熱點,農業災害研究也是對農作物進行科學防治的前提。隨著手機應用的不斷普及和拍攝圖像方便的特點,已有國內外學者利用Android手機結合圖像處理技術在病害或蟲害診斷方面開展了深入研究,如鄭姣[1]等在手機端通過分析水稻四種病害的顏色、形狀、紋理特征,采用圖像預處理、增強、分割、特征提取以及識別的處理方法,實現基于基Android水稻病害圖像識別系統。但在特征提取和病害診斷過程中,受手機硬件性能的限制,容易出現圖像處理能力有限和數據庫檢索能力不足等問題。文獻[2-5]提到將手機端采集到的病害圖片發送至服務器端,在服務器端接收圖片后進行分割,利用顏色矩陣和灰度共生矩陣來提取病害特征參數,最后利用向量機進行識別并返回結果。這些雖能解決Android手機端圖像處理能力有限和數據庫檢索能力不足的問題,但在進行病害或蟲害圖像遠程診斷時,需上傳病害或蟲害特征清晰的大容量圖片,會導致上傳速度緩慢、消耗數據流量、增大服務端圖像數據處理難度,影響圖像識別的及時性。因此,需要對診斷的病害圖像在手機端進行圖像分割處理,去除背景,提取重要的信息,減少圖片數據大小,加快上傳速度,提高服務端圖像處理能力。
現以黃瓜病斑圖像為研究對象,在移動端將隨時獲取的原始圖像進行裁剪,保留頁片區域后,再進行閾值分割去除背景并提取用戶感興趣的區域,控制病害圖片大小,繼而加快圖片上傳速度。
1 Otsu圖像閾值分割方法
在Android端實時采集的病害圖像,未經處理就直接上傳到服務端進行圖像預處理、分割、特征提取和識別等,會影響上傳速度,消耗帶寬和數據流量,同時也加大服務端圖像處理的難度,延緩識別時長。因此,需要將實時圖像進行裁剪,去除多余的部分,以控制圖片大小。裁剪后的圖像包含葉片健康區域和病害區域,這二種區域從視覺上分別以綠色和非綠色二種顏色相交錯。而在服務端對圖像進行特征提取時只針對病斑區域處理,還要進行病斑分割處理。圖像分割的目的是去除健康區域,保留病害區域。常用分割方法有閾值分割、區域分割、邊緣檢測分割。而閾值分割法具有計算簡單、速度快和效率高等優點,很適用于Android中進行病害圖像分割[6]。
在Android中端進行圖像分割的思路:在移動端首先讀入帶有病斑的黃瓜病害彩圖,進行適當的裁剪后,保留頁片部分,再將RGB圖像編寫灰度化程序使彩圖灰度化后,形成前景和背景圖像,最后利用Otsu分割算法(即最大類間方差法)進行閾值分割,去除圖像非病斑區域,實現病斑區域提取[7-9]。病斑圖像分割流程圖(圖1)。
其中,OTSU算法是將圖像灰度化后歸一化處理,循環尋找類間方差最大值,即最佳閾值,利用最佳閾值將圖像分割成病害區域、健康區域,提取目標區域[10-12]。OTSU算法具體步驟如下:
(1)假設圖像的大小為M×N,取其中一個閾值為t,圖像歸一化處理后像素灰度值y,輸入圖像的灰度圖,利用公式y=(x-MinV)/(MaxV-MinV)進行歸一化處理,使像素的灰度值分布在0~255,其中x為歸一化前的值,y為歸一化后的值,MaxV、MinV分別為原始圖像灰度的最大值和最小值。
(2)當y
(3)循環尋找類間方差最大值g,并記下此時的閾值t,即為最佳閾值。
(4)利用最佳閾值進行圖像閾值化。
2 實驗與結果分析
圖像要提取病害區域,在手機端須應用openCV進行圖像分割。openCV是一種跨平臺的圖像處理庫,有C、C++、Java等接口,可應用到Android平臺上進行圖像處理。openCV環境搭配方法:先安裝JDK1.8、Android Studio2.3等;接著在官網下載并解壓OpenCV的 Android pack并解壓,將OpenCV中SDK目錄下JAVA接口導入到新建的Android 項目中;選中項目按右鍵進行Module Dependency的配置,添加Opencv Library模式;最后將Opencv 的sdk/native/libs下的文件全部復制到新建項目libs庫中[13-14]。
在Android端獲取病害圖像,裁剪成綠色和病斑區域后,進行灰度化處理,利用Opencv中的cvCvtColor(const CvArr*src, CvArr*dst, int code)方法將原圖src的RGB空間轉換到目標圖dst,并設置相應的code值為CV_BGR2GRAY,將原圖轉換為灰度圖[15]。
OpenCV中threshold( )方法是對單通道數組進行固定閾值操作,由于病害圖像經過灰度化后,病斑特征邊緣明顯度有所降低,如果采用固定閾值操作來進行分割,效果比較差。因此,采用OpenCV中的adaptiveThreshold(myGray,
myAdaptive,255,ADAPTIVE_THRESH_MEAN_C,THRESH_BINARY_INV,5,5)方法進行自適應閾值分割病害區域,效果比較好,其中myGray表示灰度圖像數組;myAdaptive表示輸出圖像組;并設定預設滿足條件最大值255;自適應閾值算法參數為ADAPTIVE_THRESH_MEAN_C,并計算出鄰域的平均值再減去第七個參數的值。閾值類型為THRESH_BINARY_INV, 鄰域塊大小為5,用來計算區域閾值。閾值分割的部分效果圖(圖2~4)。
在Android端進行原圖裁剪并分割后,圖片大小有所縮小,且在病斑圖像效果上都差不多,不影響服務端后期的圖像識別處理。在手機端再將提取病斑后的圖像進行遠程上傳,選取100個樣本進行測試,很大程度上縮小了圖片數據量、大小,降低了網絡流量,提高了上傳速度,同時便于后期服務端的快速處理。圖像分割的實驗記錄(表1)。
3 結論
主要以黃瓜病斑圖像為研究對象,在移動端進行病害遠程診斷時對輸入的病害圖像進行適當的裁剪以獲取只有綠色區域和病斑區域的頁片圖像,再將裁剪后的圖像調用本地方OpenCV內的相關函數,編寫灰度化程序,將彩色圖像灰度化后利用Otsu分割算法進行分割,去除圖像非病斑區域,實現病斑區域提取。試驗證明,通過此方法可大大縮小圖像數據大小,加快圖片上傳速度,提高遠程服務端診斷處理能力。
參考文獻
[1] 鄭姣,劉立波.基于Android的水稻病害圖像識別系統設計與應用[J].計算機工程與科學,2015,37(7):1366-1371.
[2] 夏永泉,李耀斌,李晨.基于圖像處理技術與Android手機的小麥病害診斷系統[J].安徽大學學報(自然科學版),2016,40(2):26-31.
[3] 王梅嘉.基于Android平臺的蘋果葉部病害遠程識別系統研究[D].咸陽:西北農林科技大學,2015.
[4] 吳子龍.基于Android移動終端的煙草病蟲害圖像智能識別系統研究[D].昆明:云南農業大學,2015.
[5] 郭彥麟.基于Android的黃瓜病蟲害檢測系統[D].銀川:寧夏大學,2017.
[6] 劉桂紅,趙亮,孫勁光,等.一種改進粒子群優化算法的Otsu圖像閾值分割方法[J].計算機科學,2016,43(3):309-312.
[7] 羅鈞,楊永松,侍寶玉.基于改進的自適應差分演化算法的二維Otsu多閾值圖像分割[J].電子與信息學報,2019,41(8):2017-2024.
[8] 李想,謝慕君.改進Otsu圖像分割方法[J].長春工業大學學報,2019,40(2):117-120.
[9] 袁小翠,黃志開,馬永力,等.Otsu閾值分割法特點及其應用分析[J].南昌工程學院學報,2019,38(1):85-90,97.
[10] 蔡云飛,郭宇俤,花僑飛,等.基于Android手機的玉米幼苗葉片圖像分割方法[J].福建電腦,2017,33(7):16,43.
[11] 刁廣強.基于圖像的水稻病蟲害分割算法研究[D].杭州:浙江理工大學,2014.
[12] 韓雪峰,陳國斌,郭鵬,等.基于安卓平臺的作物病害圖像自動分割算法實現[J].電腦知識與技術,2015,11(22):112-114.
[13] 劉賢輝.基于OpenCV在移動端的圖像處理技術[J].電子技術與軟件工程,2017(9):70.
[14] 王武.基于OpenCV的Android手機全景圖像拼接技術研究[D].長春:長春理工大學,2018.
[15] 曾嬙.基于圖像處理的煙葉病害識別方法研究[D].成都:西華大學,2018.
責任編輯:黃艷飛
Application of Image Thr-eshold Segmentation Me-thod in Disease Image Dia-gnosis Based on Android
LIU Xiao-hong et al (Hunan Institute of Information Technology, Changsha, Hunan 410151)
Abstract When disease Image upload to remote diagnosis In mobile, the large amount of image data will reduce upload speed and increase the difficulty of data processing on the server, and affect the timeliness and accuracy of image recognition. In order to solve this problem, this paper takes the cucumber disease as an example, proposes to cut and segment the image at the mobile at first , then extract the region of user interest , upload it to the remote server at last. The test data of the system show that after clipping and thresholding the image With good image quality, the image data capacity can be reduced greatly, the upload speed of the image can be accelerated, and the difficulty of image data processing on the remote server can be reduced, improve the timeliness of diagnosis, it has higher degree of practicality.
Key words Threshold segmentation; Android; Image diagnosis