羅永澤 張廣澤 林木宋 劉駿 劉旭 歐陽詠霽 徐振江 劉洪








摘要:該研究基于OpenCV庫設計出一款水稻谷粒考種軟件。它首先利用攝像頭獲取谷粒圖像并進行比例尺校正,之后對圖像進行灰度化、平滑化、閾值分割和開運算等處理,然后識別谷粒同時依據需要對其輪廓或數量進行修正,最后在OpenCV 橢圓擬合函數的基礎上獲取谷粒長、寬和周長等考種數據。通過比對軟件測量和人工測量的數據結果,發現軟件測量的數據準確性和可靠性均較高,可以替代人工進行水稻谷??挤N分析。
關鍵詞:OpenCV;水稻;考種;軟件
中圖分類號:TP317.4? ? ? 文獻標識碼:A
文章編號:1009-3044(2023)35-0023-04
開放科學(資源服務)標識碼(OSID)
0 引言
水稻(Oryza sativa L.) 是全球最重要的糧食作物之一,近一半人口以大米為主食[1]。在水稻育種和栽培過程中,育種家常常需要對收獲后的稻谷進行觀測分析,其中形態性狀測量(谷??挤N)是重點[2],谷粒考種所涉及的性狀主要包括谷粒數量、谷粒長寬和谷粒形狀等。傳統的水稻考種主要依靠人工完成,測試成本較高,且測量準確度容易受到操作人員熟練程度和專注度等因素的影響,導致測量質量和效率達不到現代水稻栽培育種研究的發展需求[3]。
為了提高作物考種效率,國內外學者和機構進行了大量的分析研究,其中在光電分析方面,美國的Seedburo公司、法國肖邦(Chopin) 公司和德國派福(Pfeuffer) 公司先后研制了光電數粒機[4],雖然這些儀器相較于人工數粒有了長足的進步,但該類儀器功能單一只能統計粒數。近年來,隨著計算機視覺分析和人工智能技術的發展,農作物自動化表型分析研究取得了巨大發展。姚遠等[5]在閾值分割、濾波操作和Harris角點檢測算法分析的基礎上,提出了大豆植株分杈數數學模型,實現了對這個性狀的可靠分析。邢航等[6]通過對水稻谷粒圖像與質量信息同步采集的方式實現了水稻谷粒考種參數自動提取。Yang等[7]基于線陣列攝像機開發了一套水稻考種系統,該系統能自動提取稻谷總粒數、空粒數和實粒數等參數。廣東九州智農科技有限公司基于圖像識別技術開發了一套自動考種分析系統(ST2001) ,利用該系統可對水稻、小麥和玉米等農作物的總粒數、實粒數和千粒重等參數進行分析研究。武漢谷豐光電科技有限公司也基于數字圖像處理技術研發了一款水稻數字化考種機(YTS-5D) ,該系統可以獲取水稻總粒數、實粒數、粒長寬和粒面積等重要表型性狀參數。上述設備雖然操作方便快捷但也存在價格昂貴和結構復雜的特點,并不利于大面積推廣應用。
作為Intel公司支持的一種重要的開源計算機視覺庫,OpenCV(Open Source Computer Vision Library) 可以在多個操作系統上運行,它提供了多個語言接口,可以實現計算機視覺圖像處理等方面的分析研究。本研究以OpenCV庫為基礎,利用水稻谷粒檢測模型和優化特征提取算法,在對比驗證的基礎上設計了一套水稻谷??挤N分析軟件,為水稻谷粒自動化考種提供一種有效方法。
1 軟件系統構成及運行流程
本軟件主要由圖像獲取、圖像識別、圖像分析與數據保存輸出4個模塊組成,其中圖像識別與分析模塊主要基于OpenCV開發。軟件操作界面利用QT平臺的C++語言設計,主要由功能菜單區、圖像預覽區和結果展示區構成(圖1) 。
在軟件運行方面,首先利用攝像頭獲取谷粒圖像并進行比例尺校正,然后通過灰度化處理、平滑化處理以及閾值分割和開運算分析降低圖像噪聲,之后提取二值圖像邊緣特征,最后利用OpenCV 橢圓擬合函數獲取谷粒最小外接矩形的4個頂點,并在此基礎上統計谷粒長、寬和周長等考種數據。
2 圖像預處理
圖像預處理的目的是增強對后續處理有重要作用的圖像特征和抑制不需要的變形[8],改進特征提取、圖像分割以及匹配和識別可靠性。通常情況下,圖像預處理包括灰度化處理、平滑化處理、閾值分割處理和開運算處理等。
2.1 灰度化處理
在獲得水稻谷粒彩色圖像后,常需要對其進行灰度處理?;叶忍幚硎且环N重要的圖像預處理方式,它的目的是均衡圖像顏色的R(紅)、G(綠)和B(藍)分量值。目前灰度處理方法主要有三種,分別為最大值法、平均值法和加權平均值法[9],其中加權平均法主要依據重要性為R、G、B分別設置不同權重,然后在此基礎上進行加權平均,即R=G=B=WrR+WgG+WbB,式中的Wr、Wg、Wb分別為R、G、B的權重,不同權重值將形成不同的灰度圖像[10]。在本軟件主要利用加權平均法對圖像進行灰度處理(圖2) ,圖像轉化函數為cv2.cvtColor() ,函數形式為cv2.cvtColor(frame, cv2.COLOR _BGR 2HSV) ,其中frame為要處理分析的圖片,cv2.COLOR _BGR2HSV表示將圖片轉化為HSV灰度圖片。
2.2 平滑化處理
在圖像采集過程中常常受到噪聲的影響,這些噪聲會使原本均勻連續變化的灰度值產生突變,從而形成虛假的輪廓或邊緣,進而對分割計數分析產生影響[11]。抑制、減弱或消除這類噪聲改善圖像質量的方法叫作圖像平滑,本軟件利用OpenCV中的blur函數對圖像進行平滑化處理[12],其工作原理是將圖像的每一個像素點替換成周圍像素的平均值,具體代碼為blur(gray,blurp,Size(3,3)) ,當中的Size(3,3) 表示對輸入的灰度圖像gray進行3×3大小的均值模糊處理,而blurp為平滑化處理后的圖像。
2.3 閾值分割處理
閾值分割是一種重要的圖像處理方法,它通過設定閾值將圖像分成前景和背景兩個部分,然后將關注部分(前景)從復雜背景區域中提取出來,以便對其進行識別和分析[13]。本軟件基于全局閾值的方法利用threshold函數對圖像進行分割處理,具體函數形式為threshold(blurp,thres,175,255,THRESH_BINARY_INV) ,當中的175為閾值,大于該值則像素值設置為255,否則設置為0。利用該函數對圖像進行二值化處理(圖3) 。
2.4 開運算處理
開運算的主要作用是對經過閾值分割處理的二值化圖像再次進行形態學分析,它首先對圖像進行腐蝕處理然后再進行膨脹處理,從而使邊界角變圓滑,最終對圖像輪廓起到修剪作用[14]。此外,開運算不僅能夠清除細小的毛刺及狹窄連接,而且還不會導致圖像輪廓整體收縮。本軟件中利用使用OpenCV的morphologyEx函數對圖像進行開運算處理,具體代碼為morphologyEx(thres,morph,MORPH _OPEN,elem) ,當中的MORPH_OPEN表示開運算。
2.5 邊緣檢測算法分析
邊緣檢測是計算機視覺圖像處理中的基本工具,其目的是標識圖像中亮度變化明顯的點。邊緣檢測不僅可以大幅減少數據量,還可以剔除不相關的信息,從而保留重要的圖像結構信息[15]。本軟件利用Canny算子對圖像進行邊緣檢測分析,代碼形式為Canny(morph,cannyo,35,70) ,其中35為滯后閾值,如果一個像素的梯度大于它,則將其認為是邊緣。而70為主閾值,如果一個像素的梯度大于它且與滯后閾值相連,則也將其認為是邊緣。
3 水稻谷粒形態數據提取
在邊緣檢測算法將特征提取出后,本軟件首先利用fitEllipse函數對谷粒輪廓進行橢圓擬合,之后從中提取谷粒最長軸與最短軸的四個頂點坐標,然后在此基礎上構建谷粒最小外接矩形并計算谷粒長度、寬度、長寬比和周長等,最后再將所有考種信息展示出來(圖4) 。
4 谷粒圖像校正
通常情況下,圖像分析結束后無需對圖像再次進行修正,然而在實踐過程中,常常發現空秕粒、芒和谷粒粘連等會影響分析結果的準確性。為了解決此類問題,本軟件增加了谷粒形狀修正與刪除功能。
4.1 谷粒形狀修正
谷粒形狀修正的主要目的是消除粘連和芒對圖像分析和數據統計的影響。本軟件設計出一個基于鼠標劃線方式調整圖像形狀的算法,具體操作步驟如下:
軟件首先會計算鼠標劃出的直線與谷粒的最小外接矩形框的交點數量,如果沒有交點或只有1個交點,則不會對圖像進行調整;如果有2個交點就會對谷粒所對應的最小外接矩形進行修正。修正方法是基于公式[x3=(x1+x2)/2]和[y3=(y1+y2)/2]計算2個交點中點坐標,式中x3和y3分別為中點的橫縱坐標,之后基于該中點作兩邊的垂線并重新構建谷粒的最小外接矩形,最后重新獲取考種數據(圖5) 。
4.2 谷粒刪除
谷粒刪除的算法與思路主要參照4.1進行,即依據鼠標劃出的直線與谷粒的最小外接矩形框的交點數量來判斷是否刪除谷粒,如果有2個交點則會刪除谷粒所對應的最小外接矩形(圖6) ,具體代碼如下:
if(cut||(count&&(delrect||split))) {
this->press=true;
this->begin=event->pos();
end=QPoint();
end.setX(begin.x()+1);
end.setY(begin.y()+1);
} else {
this->press=false;
if(mark) {
markB=event->pos();
markE=QPoint(); //markE設置為QPoint對象
markE.setX(markB.x()+1);
markE.setY(markB.y()+1);
}
}
5 數據驗證與分析
5.1 粒數計數準確率驗證
為了評價軟件的粒數計數準確率,本研究對其進行了驗證分析,驗證的谷粒數量分別為50、100和150粒,共設3個重復,最后基于下列公式計算準確率。
[準確率(%)=(1-誤差數量實際谷粒數量)×100]
從驗證結果上看(表1) ,本軟件的粒數識別的準確率達到100%,說明本軟件可以用于水稻谷粒計數分析。
5.2 谷粒長寬數據提取準確性檢測
谷粒長度和寬度是重要的考種性狀,為了評價軟件對谷粒長寬數據提取的準確性,本研究從100粒稻谷中隨機選擇10粒分別進行人工和軟件測量,重復3次,最后利用獨立樣本t檢驗和離散度對軟件測量準確性進行評價。獨立樣本t檢驗和sp計算公式分別為:
[t=x1-x2sp1n1+1n2]
[sp=(n1-1)s12+(n2-1)s22n1+n2-2]
式中sp為匯總標準差(pooled standard deviation) ,x1為人工測量結果,x2為軟件測量結果,n為樣本量,s為樣本標準差。
由于10粒長和10粒寬的人工與軟件測量的t檢驗雙尾P值遠大于0.05(表2) ,說明本軟件提取的數據與人工測量的結果為同一組數據的概率有95%。此外,本研究還發現軟件測量結果的離散度小于人工測量的,說明軟件測量的數據可靠性較高。上述分析結果表明,本軟件可以替代人工進行水稻谷??挤N分析。
6 結束語
本研究基于OpenCV庫設計出一款水稻谷??挤N軟件,它利用灰度化、平滑化、閾值分割和開運算等方法對谷粒彩色圖像進行分析,然后識別谷粒并獲取相關考種數據,此外本軟件還具備修正谷粒輪廓和數量的功能。通過對比軟件和人工考種數據,發現軟件獲取的數據準確性和可靠性均較高,可以替代人工進行水稻谷??挤N分析。
參考文獻:
[1] SCHAARSCHMIDT S,LAWAS L M F,GLAUBITZ U,et al.Season affects yield and metabolic profiles of rice (Oryza sativa) under high night temperature stress in the field[J].International Journal of Molecular Sciences,2020,21(9):3187.
[2] 鄧若玲,潘威杰,王志琪,等.農作物表型技術及其智能裝備研究進展與展望[J].現代農業裝備,2021,42(1):2-9.
[3] 周洪壘.基于圖像處理的水稻考種系統的設計與實現[D].成都:電子科技大學,2019.
[4] 楊萬能.水稻產量相關性狀參數自動提取的數字化技術研究[D].武漢:華中科技大學,2011.
[5] 姚遠,孟金慧,李向陽.大豆植株分杈數自動提取算法研究[J].現代農業科技,2019(11):6-8.
[6] 邢航,黃旭楠,楊秀麗,等.水稻谷??挤N參數自動提取裝置及試驗[J/OL].[2023-05-10].華南農業大學學報,https://kns.cnki.net/kcms/detail//44.1110.S.20230105.1238.001.html.
[7] YANG W N,GUO Z L,HUANG C L,et al.Combining high-throughput phenotyping and genome-wide association studies to reveal natural genetic variation in rice[J].Nature Communications,2014,5(1):1-9.
[8] 于殿泓.圖像檢測與處理技術[M].西安:西安電子科技大學出版社,2006.
[9] 章毓晉.圖象工程-下冊-圖象理解與計算機視覺[M].北京:清華大學出版社,2000.
[10] 楊迪寒,王承啟,于帥,等.基于OpenCV的路面裂縫檢測裝置[J].工業技術創新,2022,9(1):49-54.
[11] 劉小莉.基于圖像處理的小麥籽粒自動計數研究[D].合肥:安徽農業大學,2022.
[12] 朱文偉,李建英.OpenCV 4.5計算機視覺開發實戰:基于Python[M].北京:清華大學出版社,2022.
[13] 武紅玉.閾值分割算法在圖像處理中的應用[J].科技信息,2012(27):201-202.
[14] 葉小奇.基于機器視覺的LED劃片機定位技術研究[D].長沙:湖南大學,2018.
[15] GONZALEZ R C,WOODS R E.數字圖像處理[M].阮秋琦,阮宇智,譯.4版.北京:電子工業出版社,2020.
【通聯編輯:謝媛媛】