鄒 偉
(湖南財經工業職業技術學院,湖南 衡陽 421002)
隨著人們消費水平的提高,越來越多的人傾向于購買高品質的水果[1]。目前,我國的水果種植及生產面積位居世界前列,但銷售價格遠遠低于同類進口水果,造成這一現象的原因是銷售的水果品質良莠不齊,沒有對水果品質進行區分,從而影響了水果的產后附加值。而對水果品質進行無損檢測分級是實現水果走向高端市場的重要一環,對水果品質分選方法的技術研究意義重大。本文利用機器視覺技術對柑橘成熟度進行了品質區分,而與柑橘成熟度相關的重要指標則是柑橘表面顏色,表面顏色越是橙黃色則表示越成熟,顏色呈青綠色則表示未成熟。利用機器視覺技術對柑橘表面顏色進行分選的方法,可以規避柑橘表皮人為破損的風險,也可以提高工作效率,為水果后處理加工企業實現水果品質自動化分選提供技術支撐。
近年來,國內外眾多科研人員開始注重利用機器視覺技術對水果品質分級的研究,機器視覺水果品質無損檢測已成為農林產品智能檢測研究的熱點課題,尤其是對水果品質顏色的區分研究。Tao Y等[2]研制了一套針對蘋果顏色分選的機器視覺系統,該系統可對蘋果的黃、綠色進行準確區分。Mendoza等[3]研究了基于RGB、HSV、L*a*b*3種顏色模型對水果顏色品質的檢測,結果表明,RGB模型在水果顏色檢測中效率高準確率偏低,L*a*b*模型最適合水果顏色品質的檢測區分。國內也有相關學者進行了此類的研究,饒秀勤等[4]研究了HIS顏色模型對柑橘顏色等級的區分檢測,分級準確度誤差僅為1.75%。馮斌等[5]引入了神經網絡算法評價水果的顏色,選取與果實顏色相關的分形維數特征值作為神經網絡的輸入層參數,輸出結果為顏色等級,結果準確率可達95%。何東健等[6]利用視覺技術通過采集水果的彩色圖像,將RGB值轉換成HIS值,選用合適色相值下的直方圖累計面積百分比對水果的顏色等級進行了很好的區分,區分準確度達到了88%以上。王麗娟等[1]開發了一套利用機器視覺技術針對蘋果成熟度分選的分揀機,大大提高了蘋果成熟度分選準確率與分選效率。
本課題利用機器視覺技術對柑橘的果皮顏色成熟度進行了分選研究。利用視覺設備采集柑橘圖像,并對柑橘圖像進行顏色模型轉換,HSV顏色模型更符合人類視覺特征;對柑橘HSV模型進行顏色通道分離,分離出H(色調)、S(飽和度)、V(色調)3個通道,發現H通道更能反映柑橘的顏色特征;對H通道直方圖提取最大峰值對應的bins色調值,判斷柑橘的顏色品質區間;根據柑橘的bins色調值區間來對柑橘的成熟度品質進行分選,并對分選結果進行了驗證,該方法對柑橘成熟度的分選準確度達到90%以上。
采用CCD工業相機獲取柑橘的RGB圖像,而RGB圖像是基于設備的,不是面向用戶的,需要對采集的柑橘RGB圖像轉換成HSV圖像,HSV顏色模型由3通道構成,H通道代表色調,S通道飽和度,V通道代表亮度。從RGB顏色空間轉換成HSV顏色空間的計算公式:
V=max(R,G,B)
計算結果中,如果存在H<0時,則令H=H+360。
柑橘在RGB顏色空間下的圖像見圖1,柑橘在HSV顏色空間下的圖像見圖2。

圖1 柑橘RGB圖

圖2 柑橘HSV圖
RGB圖像轉HSV圖像核心代碼語句:
img2=cv.cvtColor(img,cv.COLOR_BGR2HSV)
本課題研究的是柑橘HSV顏色空間下的直方圖,故先要得到H、S、V 3個通道的顏色直方圖,實現方法為調用opencv算法庫中的calcHist()函數;括號中第1個參數表示柑橘的HSV圖像,第2個參數表示通道,0代表H通道,1代表S通道,2代表V通道,第3個參數為掩膜,本文未作掩膜處理,第4個參數表示每個圖像維度參與直方圖計算的直方圖組數,第5個參數表示參與直方圖計算的每個維度的數值范圍,即橫坐標的最小值和最大值,具體實現方法及程序語句:
img_h=img_hsv[:,:,0]
img_s=img_hsv[:,:,1]
img_v=img_hsv[:,:,2]
h_hist=cv.calcHist([img_hsv],[0],None,[256],[0,255])
s_hist=cv.calcHist([img_hsv],[1],None,[256],[0,255])
v_hist=cv.calcHist([img_hsv],[2],None,[256],[0,255])
# m,dev=cv.meanStdDev(img_hsv) #計算H、V、S3通道的均值和方差。
H、S、V 3通道直方圖的繪制代碼程序:
plt.plot(h_hist,label=‘H’,color=‘blue’)
plt.plot(s_hist,label=‘S’,color=‘green’)
plt.plot(v_hist,label=‘V’,color=‘red’)
plt.legend(loc=‘best’)
plt.xlim([0,256])
plt.show()
得到的HSV直方圖如圖3所示,顏色直方圖中縱坐標代表像素數目,橫坐標代表色調值,從圖3可以看出,H通道能很好地表示柑橘顏色的特征,故只提取柑橘的H通道直方圖,H通道直方圖如圖4所示。

圖3 柑橘HSV顏色直方圖

圖4 柑橘H通道顏色直方圖
如圖4所示,橫坐標代表色調值,縱坐標表示像素在每個色調值出現的頻次;含1個最大峰值,此時的色調值對應的像素出現的頻次最高,也表示了柑橘的整體顏色,參考前人的研究文獻[7,8],本項目把H通道顏色直方圖峰值對應的色調閾值在[10°~25°]區間劃分為一等果,[25°~40°]區間劃分為二等果,[40°~55°]區間劃分為三等果,色調閾值超過55°的劃分為四等果。提取最大峰值對應的色調值的方法:
maxLoc=np.where(h_hist==np.max(h_hist))
firstPeak=maxLoc[0][0]
plt.plot(h_hist,label=‘H’,color=‘blue’)
plt.legend(loc=‘best’)
plt.xlim([0,256])
plt.show()
print(‘峰值對應的bins色調值:’,firstPeak)
本項目采用Python編程語言進行開發,用相機采集柑橘的RGB圖像,對RGB圖像進行處理,通過調用OpenCV算法庫中的cvtColor函數,使柑橘RGB顏色空間轉化為HSV顏色空間,對HSV顏色空間圖像進行通道分離,調用OpenCV算法庫中的calcHist函數分別計算H、S、V 3個通道顏色直方圖,發現H通道反映了柑橘的顏色特征,對H通道峰值(縱坐標-像素數目最多)對應的色調值(橫坐標-bins色調值)進行求解,提取峰值對應的色調值方法已在上文進行了詳細闡述,得到了峰值對應的bins色調值為19,結果如圖5所示,也就是說當色調值為19的時候,此時像素數目最多,即該色調值代表了該柑橘表面的顏色。

圖5 峰值對應的bins色調閾值
采用Python語言中的if、elif條件語句對柑橘最高峰值對應的色調值區間進行條件判斷,根據相應的條件區間對柑橘的顏色等級進行判斷,最后輸出柑橘的顏色等級,最終可將柑橘的品質分為一等果、二等果、三等果,方便后續的執行機構機械手對柑橘進行分揀。對柑橘色調區間判斷及等級分級核心代碼語句:
if firstPeak≥10 and firstPeak≤25:
# 結果:
print(‘此果是一等果’)
# 條件:
elif 25 # 結果: print(‘此果是二等果’) # 條件: elif 40 # 結果: print(‘此果是三等果’) # 條件: elif firstPeak>55: # 結果: print(‘此果是四等果’) 因為被檢測的柑橘bins色調值為19,在[10°~25°]這個區間,經過上述程序的條件判斷之后,最后輸出的結果是此果是一等果,如圖6所示,得到的柑橘品質分級結果為一等果。 圖6 柑橘品質分級結果 根據試驗需要,選取了表皮看上去完全成熟的柑橘和表皮看上去未完全成熟的柑橘進行了試驗驗證,見圖7,得到一等果和二等果的試驗結果,見圖8,該試驗結果為預期結果,驗證了該方法分選柑橘成熟度的準確性,為該方法在柑橘后處理產線分選應用奠定了基礎。 圖7 試驗果 圖8 檢測結果 由于機器視覺技術在水果品質分級市場上的巨大應用前景,研究了機器視覺技術對柑橘成熟度的分選研究,通過CCD相機獲取柑橘的RGB圖像,將RGB顏色空間轉換為HSV顏色空間,分別獲取HSV 3個通道的ndarray數據,按H、S、V 3個通道分別計算顏色直方圖,發現H通道能很好地反映柑橘的成熟度,以H顏色直方圖中像素出現的頻次最高時的bins色調閾值所處區間來判斷柑橘成熟度,該方法判斷柑橘的成熟度取得了較好的試驗結果,在柑橘的分選檢測試驗中得到了驗證,準確度基本接近,該研究成果可為從事柑橘等水果分選的科研人員提供技術參考。
3 柑橘品質分選驗證


4 結語