基于机器视觉技术的柑橘果实成熟度分选研究
2023-09-22邹伟
邹 伟
(湖南财经工业职业技术学院,湖南 衡阳 421002)
引言
随着人们消费水平的提高,越来越多的人倾向于购买高品质的水果[1]。目前,我国的水果种植及生产面积位居世界前列,但销售价格远远低于同类进口水果,造成这一现象的原因是销售的水果品质良莠不齐,没有对水果品质进行区分,从而影响了水果的产后附加值。而对水果品质进行无损检测分级是实现水果走向高端市场的重要一环,对水果品质分选方法的技术研究意义重大。本文利用机器视觉技术对柑橘成熟度进行了品质区分,而与柑橘成熟度相关的重要指标则是柑橘表面颜色,表面颜色越是橙黄色则表示越成熟,颜色呈青绿色则表示未成熟。利用机器视觉技术对柑橘表面颜色进行分选的方法,可以规避柑橘表皮人为破损的风险,也可以提高工作效率,为水果后处理加工企业实现水果品质自动化分选提供技术支撑。
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]开发了一套利用机器视觉技术针对苹果成熟度分选的分拣机,大大提高了苹果成熟度分选准确率与分选效率。
2 柑橘颜色成熟度检测研究方法
本课题利用机器视觉技术对柑橘的果皮颜色成熟度进行了分选研究。利用视觉设备采集柑橘图像,并对柑橘图像进行颜色模型转换,HSV颜色模型更符合人类视觉特征;对柑橘HSV模型进行颜色通道分离,分离出H(色调)、S(饱和度)、V(色调)3个通道,发现H通道更能反映柑橘的颜色特征;对H通道直方图提取最大峰值对应的bins色调值,判断柑橘的颜色品质区间;根据柑橘的bins色调值区间来对柑橘的成熟度品质进行分选,并对分选结果进行了验证,该方法对柑橘成熟度的分选准确度达到90%以上。
2.1 柑橘图像的获取与颜色模型转换
采用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)
2.2 柑橘HSV颜色直方图
本课题研究的是柑橘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通道颜色直方图
2.3 柑橘色度峰值对应的色调值区间计算
如图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色调阈值
2.4 柑橘对应的色调区间值判断与柑橘等级分级
采用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 结语