摘要:為了解決谷物選育品種過程中人工計(jì)數(shù)存在的操作費(fèi)時(shí)、精度不高等問題,提出一種利用計(jì)算機(jī)處理谷物顆粒圖像進(jìn)行計(jì)數(shù)的方法。首先對(duì)所采集到的谷物顆粒圖像進(jìn)行二值化,將圖像中背景和目標(biāo)區(qū)域分開;然后對(duì)圖像進(jìn)行形態(tài)學(xué)運(yùn)算、目標(biāo)分割等預(yù)處理,最大程度減少圖像中的谷物顆粒黏連現(xiàn)象;在最終的計(jì)數(shù)環(huán)節(jié),為了提高計(jì)數(shù)速度,基于經(jīng)過預(yù)處理后的谷物顆粒圖像沒有孔洞這一重要特征,利用圖像歐拉數(shù)算法代替?zhèn)鹘y(tǒng)的連通域標(biāo)記算法實(shí)現(xiàn)計(jì)數(shù)工作。結(jié)果表明,利用圖像歐拉數(shù)算法的計(jì)數(shù)結(jié)果與利用傳統(tǒng)連通域標(biāo)記算法的計(jì)數(shù)結(jié)果完全一致,但在計(jì)數(shù)速度方面,利用圖像歐拉數(shù)算法進(jìn)行計(jì)數(shù)明顯優(yōu)于傳統(tǒng)的連通域標(biāo)記算法。
關(guān)鍵詞:歐拉數(shù)算法;谷物顆粒圖像;計(jì)數(shù)方法
中圖分類號(hào):TP391" " " " "文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):0439-8114(2023)08-0197-05
DOI:10.14088/j.cnki.issn0439-8114.2023.08.031 開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
Target counting method of grain particle images based on Euler numbers
KANG Shi-ying1, YAO Bin2
(1. School of Computer Science, Xianyang Normal University, Xianyang" 712000,Shaanxi,China; 2. School of Electronic Information and Artificial Intelligence, Shaanxi University of Science and Technology, Xi’an" 710021,China)
Abstract:In order to solve the problems of time-consuming and low accuracy in manual counting during the process of grain breeding, a method of counting using computer processing of grain particle images was proposed. Firstly, the collected grain particle images was binarized to separate the background and target regions in the image; then morphological operations, object segmentation, and other preprocessing on the image were performed to minimize the phenomenon of grain particle adhesion in the image; in the final counting link, in order to improve the counting speed, based on the important feature that the grain particle images had no holes after preprocessing, the image Euler numbers algorithm was used to replace the traditional connected domain marking algorithm to achieve the counting work.The results showed that the counting result of the image Euler numbers algorithm was completely consistent with that of the traditional connected domain labeling algorithm, but the counting speed of the image Euler numbers algorithm was obviously better than that of the traditional connected domain labeling algorithm.
Key words: Euler numbers algorithm; grain particle images; counting method
中國(guó)作為農(nóng)業(yè)大國(guó),高質(zhì)量的糧種是決定糧食產(chǎn)出的重要因素,直接關(guān)系到全民經(jīng)濟(jì)的發(fā)展。因此,在農(nóng)業(yè)相關(guān)領(lǐng)域中,培育出優(yōu)質(zhì)、高產(chǎn)的糧種是一項(xiàng)非常重要的工作,而傳統(tǒng)的使用人工進(jìn)行糧種顆粒計(jì)數(shù)工作存在耗時(shí)較長(zhǎng)、準(zhǔn)確率較低等問題,進(jìn)而影響糧種篩選、培育效率。因此,糧種計(jì)數(shù)速度和結(jié)果準(zhǔn)確性一直是學(xué)者研究的熱點(diǎn)。
1 糧種計(jì)數(shù)方法與技術(shù)
隨著計(jì)算機(jī)視覺技術(shù)的發(fā)展,糧種的計(jì)數(shù)方法也有了新變化,不再局限于原來的人工計(jì)數(shù)以及利用光電轉(zhuǎn)換技術(shù)實(shí)現(xiàn)的半自動(dòng)計(jì)數(shù),而是在獲取糧種顆粒圖像的基礎(chǔ)上,對(duì)圖像進(jìn)行特征分析處理的計(jì)數(shù)方法。在實(shí)際應(yīng)用中,糧種計(jì)數(shù)方法分為3類。第1類,利用光電轉(zhuǎn)換器件的光電管計(jì)數(shù)法。常禮等[1]提出了利用光電二極管記錄玉米顆粒的下落信號(hào),以此完成顆粒計(jì)數(shù),但光電二極管的固有屬性難以應(yīng)對(duì)不同尺寸種子的測(cè)量,同時(shí)相關(guān)零部件的更換增加了成本、影響了準(zhǔn)確率。第2類,基于圖像處理技術(shù)的計(jì)數(shù)方法。該方法是將采集到的圖像進(jìn)行預(yù)處理,然后基于圖像不同特征完成計(jì)數(shù)。戴文華等[2]提出了基于圓心定位的子粒計(jì)數(shù)方法,可以實(shí)現(xiàn)對(duì)大豆等圓形子粒進(jìn)行計(jì)數(shù),而對(duì)圓形度偏小的目標(biāo)識(shí)別不夠準(zhǔn)確。陳進(jìn)等[3]提出了基于視覺及概率統(tǒng)計(jì)的方法,對(duì)于尺寸均勻的目標(biāo)顆粒效果較顯著,但對(duì)于尺寸大小不一的顆粒存在誤差較大等問題。此外,現(xiàn)有基于圖像處理技術(shù)的計(jì)數(shù)方法中,最終計(jì)數(shù)步驟大多采用圖像連通域標(biāo)記算法,盡管這種方法可以精確識(shí)別圖像中的每一個(gè)目標(biāo),但標(biāo)記過程需要對(duì)圖像進(jìn)行多次逐行掃描,標(biāo)記步驟中會(huì)涉及等價(jià)標(biāo)記的分類、合并等過程,所需時(shí)間較長(zhǎng)。第3類,基于機(jī)器學(xué)習(xí)的計(jì)數(shù)方法。近年來,隨著機(jī)器學(xué)習(xí)方法應(yīng)用的不斷深入,很多學(xué)者開始研究利用機(jī)器學(xué)習(xí)的方法實(shí)現(xiàn)計(jì)數(shù),劉冠楠[4]提出了構(gòu)建支持向量機(jī)對(duì)種子黏連類型分類并以MATLAB為仿真工具進(jìn)行計(jì)數(shù)的方法,取得了較好的試驗(yàn)結(jié)果。但基于機(jī)器學(xué)習(xí)計(jì)數(shù)方法需要的樣本數(shù)量較多,前期建立分類器或模型訓(xùn)練所需時(shí)間較長(zhǎng),不適用于小規(guī)模計(jì)數(shù)場(chǎng)景。
2 試驗(yàn)方法
為了快速、準(zhǔn)確地對(duì)圖像中目標(biāo)進(jìn)行計(jì)數(shù),本研究提出了基于計(jì)算機(jī)視覺、利用圖像歐拉數(shù)代替連通域數(shù)量的谷物顆粒計(jì)數(shù)方法。首先將獲取的彩色圖像進(jìn)行預(yù)處理,通過濾波、形態(tài)學(xué)處理等方法得到?jīng)]有噪聲的二值圖像,然后將現(xiàn)有分水嶺算法進(jìn)行改進(jìn),對(duì)得到的二值圖像去除局部最小區(qū)域后進(jìn)行分割,使黏連在一起的谷物顆粒分開,最后基于預(yù)處理后圖像的無孔特征,利用圖像歐拉數(shù)代替圖像連通域數(shù)量對(duì)圖像中的谷物顆粒進(jìn)行計(jì)數(shù)。
2.1 圖像獲取
獲取谷物顆粒原始圖像,需將待測(cè)谷物平鋪于檢測(cè)平臺(tái)上進(jìn)行圖像采集。首先,為了得到清晰的待測(cè)圖像,檢測(cè)平臺(tái)的背景色與谷物的顏色盡可能有明顯的區(qū)分度,同時(shí)谷物應(yīng)避免重疊。然后,利用圖像采集設(shè)備在檢測(cè)平臺(tái)正上方的適當(dāng)高度進(jìn)行拍照,即可得到谷物的原始圖像。本試驗(yàn)的原始圖像如圖1所示。
2.2 圖像預(yù)處理
為了降低圖像處理的數(shù)據(jù)壓力,減少圖像處理的時(shí)間,需要將圖像采集設(shè)備獲得的RGB圖像進(jìn)行灰度化、二值化及形態(tài)學(xué)等預(yù)處理,從而得到?jīng)]有噪聲、孔洞的二值圖像,在計(jì)數(shù)環(huán)節(jié)對(duì)這些圖像中的目標(biāo)進(jìn)行識(shí)別、計(jì)數(shù)。
2.2.1 圖像灰度化 圖像灰度化是指將彩色圖像轉(zhuǎn)換為灰度圖,本試驗(yàn)采用加權(quán)平均值法進(jìn)行圖像灰度化。加權(quán)平均值法是根據(jù)不同分量的重要性,采用不同的加權(quán)值(ωR、ωG、ωB)對(duì)R、G、B 3個(gè)分量進(jìn)行加權(quán)平均。經(jīng)過轉(zhuǎn)換后的圖像中每個(gè)像素的灰度值都滿足式(1),計(jì)算公式如下:
Gray = ωRR + ωGG + ωBB" " " " " " " " (1)
式中,Gray表示圖像的灰度值;ωR、ωG、ωB分別表示R、G、B 3個(gè)分量的加權(quán)值;R、G、B分別表示原始圖像中的紅、綠、藍(lán)3個(gè)分量的值。
ωR、ωG、ωB的值不同,所產(chǎn)生的灰度圖亮度也不同。根據(jù)人類眼睛的敏感度,當(dāng)ωR=0.299、ωG=0.587、ωB=0.114時(shí),得到的灰度圖像效果最好。
2.2.2 圖像二值化 常用的圖像二值化方法包括OTSU算法和自定義閾值法。OTSU算法是一種根據(jù)圖像內(nèi)容自適應(yīng)的閾值確定方法;自定義閾值法是根據(jù)灰度圖像的直方圖先選取閾值,然后再進(jìn)行二值化。因?yàn)楸驹囼?yàn)所采集的圖像前景色與背景色對(duì)比鮮明,所以2種二值化方法都能取得較好的結(jié)果,如果前景色與背景色對(duì)比不明顯,可根據(jù)實(shí)際情況選擇適合的方法。本試驗(yàn)二值化后的效果如圖2所示。
2.2.3 圖像分割 二值化后的圖像中目標(biāo)顆粒存在黏連現(xiàn)象。要對(duì)谷物顆粒圖像中的目標(biāo)進(jìn)行準(zhǔn)確計(jì)數(shù),就需要對(duì)圖像中的目標(biāo)進(jìn)行分割。圖像的分割法主要包括閾值分割法、區(qū)域分割法、邊緣分割法、分水嶺法等。根據(jù)圖像中目標(biāo)黏連的形態(tài),本試驗(yàn)采用分水嶺法[5,6]。分水嶺法是一種借鑒了形態(tài)學(xué)理論的分割方法,可以看作是一種自適應(yīng)的多閾值分割算法。
為了得到更好的圖像分割效果,在使用分水嶺法進(jìn)行分割之前,先將二值圖像中面積小于一定值的對(duì)象進(jìn)行刪除,也就是降噪處理。通過形態(tài)學(xué)理論中的“開”運(yùn)算,刪除較小的對(duì)象;然后用Bwdist函數(shù)計(jì)算元素間的距離,利用距離進(jìn)行分水嶺算法分割。
但是這樣的處理結(jié)果中會(huì)存在一些過分割現(xiàn)象,如圖3所示,主要原因還是局部最小對(duì)象過多。針對(duì)該現(xiàn)象,本試驗(yàn)在分水嶺的圖像分割中使用Imextendmin函數(shù)過濾掉一些特別小的區(qū)域,修改距離變換結(jié)果,使濾波后的區(qū)域不再出現(xiàn)局部最小值,然后再使用分水嶺分割法,獲得去掉過分割現(xiàn)象的谷物顆粒圖像,結(jié)果如圖4所示。
2.3 目標(biāo)計(jì)數(shù)
圖像分割完成后,如果把圖像中每粒谷物看成一個(gè)目標(biāo),就需要對(duì)圖像中的目標(biāo)進(jìn)行計(jì)數(shù),圖像中的目標(biāo)數(shù)量就是谷物顆粒數(shù)量。
在很多圖像目標(biāo)計(jì)數(shù)算法中,計(jì)算圖像中目標(biāo)數(shù)量采用的是連通域標(biāo)記算法[7,8]。所謂連通域是指二值圖像中位置相鄰的目標(biāo)像素組成的圖像區(qū)域,連通域標(biāo)記就是把圖像中不同的連通域用不同的標(biāo)號(hào)標(biāo)記出來,標(biāo)記后每一個(gè)連通域就是一個(gè)目標(biāo)。在連通域標(biāo)記算法中,為了確定哪些像素屬于同一個(gè)連通域,需要對(duì)像素進(jìn)行從左到右、從上到下的逐行掃描,對(duì)于掃描到的每一個(gè)目標(biāo)像素分配臨時(shí)標(biāo)號(hào),同時(shí)還需要判斷哪些標(biāo)號(hào)屬于等價(jià)標(biāo)號(hào)(即屬于同一個(gè)連通域),最后對(duì)圖像進(jìn)行一次逐行掃描,完成等價(jià)標(biāo)號(hào)替換。經(jīng)過2次掃描后,屬于同一連通域的像素具有相同的標(biāo)號(hào)。
傳統(tǒng)的連通域標(biāo)記算法需要事先對(duì)圖像有全面的了解,整個(gè)過程需要對(duì)圖像進(jìn)行多次掃描才能實(shí)現(xiàn)標(biāo)號(hào)和等價(jià)標(biāo)號(hào)解析、替換[9,10]。如圖5所示,只有掃描到圖像中最后一個(gè)像素時(shí)才能確定該圖像中連通域的數(shù)量。
除圖像連通域外,圖像的歐拉特性也是圖像主要的拓?fù)涮卣髦?,圖像的歐拉特征又稱為圖像歐拉數(shù)(Euler number)[11]。在對(duì)圖像進(jìn)行翻轉(zhuǎn)、變換或橡皮膜拉伸時(shí),圖像歐拉數(shù)保持不變,從而被當(dāng)作一個(gè)主要特性使用于圖像處理中。圖像歐拉數(shù)E的計(jì)算公式如下:
E = O-H" " "(2)
式中,O為圖像中連通域數(shù)量;H為孔洞數(shù)量。
由于本試驗(yàn)預(yù)處理得到的圖像是沒有孔洞的圖像,即H = 0。于是可以得到E = O,即圖像歐拉數(shù)和圖像中連通域數(shù)量相等,如果能得到圖像歐拉數(shù),也就得到了圖像中目標(biāo)的數(shù)量。然而,如果根據(jù)圖像歐拉數(shù)的定義計(jì)算,還是需要對(duì)圖像中的目標(biāo)進(jìn)行標(biāo)記,運(yùn)算量并沒有減少。
盡管圖像歐拉數(shù)被定義為圖像中連通域數(shù)量減去孔洞數(shù)量,但在實(shí)際計(jì)算中,如果只是為了得到圖像歐拉數(shù),很少會(huì)利用定義去計(jì)算,而是利用圖像局部特征實(shí)現(xiàn),例如,利用圖像中目標(biāo)的周長(zhǎng)、邊緣像素、游程等特征進(jìn)行計(jì)算。這樣可以避免圖像連通域標(biāo)記過程中復(fù)雜的等價(jià)標(biāo)號(hào)解析、替換等過程,只需要對(duì)圖像進(jìn)行一次掃描即可完成計(jì)算。
針對(duì)圖像中目標(biāo)像素較集中的特征,本試驗(yàn)采用基于游程統(tǒng)計(jì)的圖像歐拉數(shù)算法[12,13]。游程是圖像中任意一行中連續(xù)的前景像素構(gòu)成的目標(biāo)像素段。在圖像的一行像素中,游程和游程之間用背景像素分隔。游程長(zhǎng)度用其包含的像素?cái)?shù)量表示,最小可以是一個(gè)像素,最大可以是整行像素,即和圖像的列數(shù)相等。位于相鄰行的游程像素之間如果形成鄰接關(guān)系,則這2個(gè)游程之間形成一個(gè)鄰接游程。一個(gè)游程可以同時(shí)與多個(gè)游程形成鄰接關(guān)系。
如圖6所示,第2行像素共形成3個(gè)游程,第3行像素共形成4個(gè)游程,第4行像素共形成4個(gè)游程,圖像中游程數(shù)量是11個(gè);第2行和第3行游程之間形成6個(gè)鄰接游程,第3行和第4行游程之間也形成6個(gè)鄰接游程,這些鄰接游程在圖像中用橢圓標(biāo)記,鄰接游程數(shù)量是12個(gè)。
在實(shí)際計(jì)算歐拉數(shù)時(shí),同樣需要對(duì)圖像進(jìn)行逐行掃描。對(duì)于正在掃描的某一行像素,需要查找其所包含的所有游程并統(tǒng)計(jì)數(shù)量,同時(shí)還需要記錄每個(gè)游程的起始位置和結(jié)束位置;在掃描下一行像素時(shí),一方面查找其所包含的所有游程并統(tǒng)計(jì)數(shù)量、記錄每個(gè)游程的起始位置和結(jié)束位置,另一方面還需要根據(jù)本行像素包含游程的位置信息,判斷其是否與上一行像素中的游程形成鄰接游程。當(dāng)圖像中游程的數(shù)量(RUNS)和鄰接游程的數(shù)量(NBRUNS)統(tǒng)計(jì)完畢后,利用式(3)計(jì)算圖像歐拉數(shù)。這種方法計(jì)算圖像歐拉數(shù)只需要對(duì)圖像進(jìn)行一次逐行掃描就可以實(shí)現(xiàn)。
E= RUNS - NBRUNS" " " " " " " " " " (3)
在圖6所示圖像中,游程數(shù)量RUNS為11個(gè),鄰接游程N(yùn)BRUNS數(shù)量為12個(gè),根據(jù)式(3),圖像歐拉數(shù)E = RUNS-NBRUNS = 11-12 = -1。而圖6所示圖像中包含1個(gè)連通域,2個(gè)孔洞,根據(jù)式(2),圖像歐拉數(shù)E = O- H = 1-2 = -1,可見2種方法計(jì)算結(jié)果相同。
3 結(jié)果與分析
為了驗(yàn)證本研究方法的正確性和有效性,采用30張分辨率為4 600 px×3 500 px圖像進(jìn)行試驗(yàn),包括黏連程度嚴(yán)重、中等、一般的圖像各10張。分別用圖像歐拉數(shù)算法和傳統(tǒng)的連通域標(biāo)記算法對(duì)圖像進(jìn)行計(jì)數(shù)。平臺(tái)為臺(tái)式機(jī)(Inter Core i7-6700 CPU@3.4 GHz,8 GB RAM,操作系統(tǒng)Windows7),編譯器為GUNC Compiler 4.6.1,為保證結(jié)果的準(zhǔn)確性,2種算法均被運(yùn)行100次,取平均值作為試驗(yàn)結(jié)果。圖7a為谷物顆粒黏連嚴(yán)重、中等、一般的部分原始圖像樣本,圖7b為對(duì)應(yīng)圖像的預(yù)處理結(jié)果,圖7c為對(duì)應(yīng)圖像的計(jì)數(shù)結(jié)果及算法運(yùn)行時(shí)間,紅色框內(nèi)是使用連通域標(biāo)記算法后的計(jì)數(shù)結(jié)果,綠色框內(nèi)是使用圖像歐拉數(shù)算法的計(jì)數(shù)結(jié)果。
對(duì)于黏連程度嚴(yán)重的谷物顆粒圖像樣本,利用連通域標(biāo)記算法的計(jì)數(shù)時(shí)間為101.687 ms,而利用圖像歐拉數(shù)算法的計(jì)數(shù)時(shí)間只有5.880 ms;對(duì)于黏連程度中等的谷物顆粒圖像樣本,利用連通域標(biāo)記算法的計(jì)數(shù)時(shí)間為102.246 ms,而利用圖像歐拉數(shù)算法的計(jì)數(shù)時(shí)間只有5.827 ms;對(duì)于黏連程度一般的谷物顆粒圖像樣本,利用連通域標(biāo)記算法的計(jì)數(shù)時(shí)間為102.511 ms,而利用圖像歐拉數(shù)算法的計(jì)數(shù)時(shí)間只有5.937 ms。綜上,基于經(jīng)過預(yù)處理后的谷物顆粒圖像沒有孔洞的特征,圖像歐拉數(shù)算法與傳統(tǒng)連通域標(biāo)記算法的計(jì)數(shù)結(jié)果一致,但在計(jì)數(shù)速度方面,利用圖像歐拉數(shù)所用時(shí)間明顯小于利用連通域標(biāo)記算法所用時(shí)間。
4 小結(jié)
本研究采用計(jì)算機(jī)處理圖像的方法,根據(jù)對(duì)采集到的圖像進(jìn)行預(yù)處理、分割等步驟后得到的圖像沒有孔洞這一特征,利用基于游程的圖像歐拉數(shù)算法計(jì)算圖像歐拉數(shù),以此代替連通域標(biāo)記算法,實(shí)現(xiàn)谷物顆??焖儆?jì)數(shù)。結(jié)果表明,本研究提出的方法可對(duì)谷物顆粒圖像實(shí)施快速、準(zhǔn)確地分離、計(jì)數(shù),為基于計(jì)算機(jī)視覺的自動(dòng)計(jì)數(shù)方法提供了一種有效的實(shí)施途徑。
參考文獻(xiàn):
[1] 常 禮,馬成學(xué),高理富.基于光電信號(hào)的玉米粒計(jì)數(shù)方法的研究[J].中國(guó)科學(xué)技術(shù)大學(xué)學(xué)報(bào),2014,45(5):275-279.
[2] 戴文華,吳 翔,裘正軍,等.基于圓心定位的籽粒計(jì)數(shù)方法研究[J].農(nóng)機(jī)化研究,2015,37(7): 198-202.
[3] 陳 進(jìn),陳 璇,王 月,等.基于視覺及概率統(tǒng)計(jì)的谷粒在線計(jì)數(shù)系統(tǒng)設(shè)計(jì)[J].測(cè)控技術(shù),2017,36 (11):110-114.
[4] 劉冠楠.目標(biāo)識(shí)別技術(shù)在種子計(jì)數(shù)方法中的研究[D].沈陽(yáng):沈陽(yáng)理工大學(xué),2018.
[5] 周洪壘.基于圖像處理的水稻考種系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2019.
[6] 秦一博.基于數(shù)字圖像處理的粘連顆粒分析方法研究[D].山東淄博:山東理工大學(xué),2013.
[7] 萬路瑤.基于圖像識(shí)別的作物種子自動(dòng)計(jì)數(shù)方法研究[D].成都:成都大學(xué),2020.
[8] 康世英,姚 斌.基于計(jì)算機(jī)視覺的糧種顆??焖儆?jì)數(shù)方法[J].自動(dòng)化技術(shù)與應(yīng)用,2019,38(8): 98-101,106.
[9] HE L,REN X,GAO Q, et al. The connected-component labeling problem: A review of state-of-the-art algorithms[J].Pattern recognition, 2017, 70: 25-43.
[10] 謝雨霏.基于FPGA圖像加速的油菜種粒計(jì)數(shù)方案的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:武漢輕工大學(xué),2022.
[11] YAO B,HE L, KANG S, et al. A new run-based algorithm for Euler number computing[J].Pattern analysis and applications, 2017, 20(1): 49-58.
[12] 史永勝,洪鑫揚(yáng),段青亞,等.圖像歐拉數(shù)計(jì)算的FPGA加速設(shè)計(jì)[J].微電子學(xué)與計(jì)算機(jī),2019, 36(8):6-9.
[13] 姚 斌.圖像歐拉數(shù)算法研究及其在紙張?zhí)盍狭椒治鲋械膽?yīng)用[D].西安:陜西科技大學(xué),2019.
收稿日期:2022-05-23
基金項(xiàng)目:國(guó)家自然科學(xué)基金項(xiàng)目(61603234)
作者簡(jiǎn)介:康世英(1980-),女,山西大同人,講師,主要從事計(jì)算機(jī)視覺、圖像處理研究,(電話)15991889141(電子信箱)kangsying@126.com。