基于SR300深度相机的褐蘑菇原位测量技术

2019-01-05 07:43杜开炜朱家豪
农业机械学报 2018年12期
关键词:边界点倾斜角圆心

王 玲 徐 伟 杜开炜 卢 伟 朱家豪 张 俊

(1.南京农业大学工学院, 南京 210031; 2.江苏省现代设施农业技术与装备工程实验室, 南京 210031)

0 引言

褐蘑菇是一种名贵的高蛋白、低脂肪、无胆固醇、色味俱全、药食兼优的美味食用菌[1],价格昂贵,市场缺口很大。根据菇形大小,褐蘑菇可分为大褐菇(Portabella)与小褐菇(Crimini),其价格与蘑菇的直径大小有关,因此,褐蘑菇种植企业需要选择性采摘特定尺寸的蘑菇。目前国内外均采用人工方式采摘褐蘑菇,费工费时、成本高、劳动强度大,急需研究一种能够替代人工进行蘑菇原位在线测量、采摘的智能蘑菇采摘机器人设备。

现有的蘑菇图像分割、识别及定位研究都是基于二维彩色相机的。陈红等[2-4]针对流水线上蓝色背景的蘑菇,利用形状、纹理特征和模式识别算法实现了蘑菇的在线检测。周云山等[5]和俞高红等[6]利用苗床、蘑菇边界、蘑菇中心的灰度值逐渐增加的特点,考虑到蘑菇的中心不重叠,用一个较高的阈值搜索蘑菇的中心区域,然后由中心向某一方向搜索蘑菇的边界点,再沿着边界的切线方向搜索其余边界点,提取蘑菇的边界、周长、面积和中心坐标。可见,现有蘑菇图像的背景分割借助了苗床与蘑菇灰度的显著差异或人工背景,并且尚未进一步分割粘连的蘑菇,基于二维图像坐标系下定位的蘑菇并未转换到三维世界坐标系下。

近年来,由于果实的分割与检测对颜色空间高度敏感,针对光照条件不稳定并且果实与背景的颜色区分不显著的情形,基于有源测距获得的深度图像在高通量植物表型检测方面已逐渐显露出优势[7],基于农业场景深度信息采集玉米、草莓冠层、果树等植物表面的三维点云,实现了植物表面的三维重建[8-15],通过测量棉株、玉米、油菜花、甜椒的直径、高度、3D曲面特征等株型参数来评价其生长状态和产量[16-20]。可见,与灰度图像相比,深度图像不受光照阴影及物体光滑表面纹理干扰,可以得到更可靠的果实几何信息,为实现田间果实图像的背景分割、识别及定位积累了丰富的经验。

本文针对褐蘑菇工厂化种植环境光照不均匀,菇床土壤中含有大量菌丝,菌丝不断地出茬、生长,蘑菇的灰度与土壤背景没有显著差异的情况,采用基于深度图像的背景分割方法,对蘑菇图像背景进行分割,进一步分割粘连的蘑菇,并测量蘑菇在世界坐标系下的位置、直径、倾斜角等。

1 图像采集设备与方法

以扬州奥吉特生物科技有限公司的褐蘑菇生产菇房为实验地,现场采集不同光源环境下的菇床深度视频流,总计185幅深度图像;其中,顶层光源下采集的51幅图像光照均匀、亮度较高,侧光源下采集的60幅图像光照不均匀,菇房中央采集的74幅图像光照较均匀、亮度较低。可见,工厂光照条件不稳定。视频采集现场如图1所示。

图1 视频采集现场Fig.1 Video capture scenes

每一间菇房里有2个蘑菇架,每一个菇架有6层,每一层有18个菇床,每一个菇床上方空间长1 340 mm、宽1 400 mm、高400 mm,菇床里的营养土含有大量菌丝,土面高出边框至多50 mm;根据市场需求将褐蘑菇分为香啡、贵啡、牛排、大褐4种,对应菌盖直径为40~50 mm、60~70 mm、80~90 mm、100 mm,对应菌柄高度为20、30、30、55 mm,主产牛排菇。拟研制的蘑菇采摘机器人沿着菇架自动滑行、停靠、升降于菇床旁边,机械臂伸入菇床自动完成采摘任务。采摘过程中,机械臂呈S型遍历菇床,安装在机械臂末端的3D相机沿途采集菇床深度视频流并实时送入工控机,由工控机计算每个蘑菇在世界坐标系下的位置以及直径和倾斜度,供机械手选择性采摘直径为80~90 mm的牛排菇。

依据菇床上方空间400 mm的高度限制,本实验选用尺寸为110 mm×12.6 mm×4.1 mm的消费级Intel RealSense Camera SR300型嵌入式结构光3D相机,其为RGB+Depth型彩色、红外双目相机。相机工作时,红外激光发射器向被测物体表面发射结构光斑,红外摄像头捕获红外光斑的相位偏移后获取深度图像,可避免彩色图像受限于光照条件的影响。其工作参数为:深度量程200~1 500 mm,测量误差不超过1%,在实际应用中可增加到2%;红外激光发射器波长860 nm,发射角72.5°×60°;红外摄像头视角71.5°×55°,视频采集速率60 f/s。

选用研龙HS201-6C型工控机,载有Intel酷睿 I5 CPU,支持USB3.0、RS485、RS232通信接口,安装64位Windows 10系统、C/C++语言编译器Visual Studio 2015、计算机视觉函数库OpenCV-3.1和相机驱动程序Intel RealSense SDK,以采集菇床深度视频流。

2 蘑菇图像分割

3D相机所采集的菇床深度图像为分辨率为640像素×480像素的灰度图像,其灰度值代表相机平面至菇床表面点云的距离(单位:mm),因而蘑菇表面呈深灰色,土壤表面呈浅灰色(图2a)。观察发现,相机的成像特性使得结构光投射到凹凸表面易发生测不到现象,产生了177 054个灰度为零的噪声点,因而蘑菇边缘区域、土壤凹凸不平区域以及图像边缘存在部分零噪声点(图2b),剔除这些噪声点,统计深度图像的直方图(图2c)可知,菇床表面点云的灰度在200~400之间。

由于土壤表面不一定平整,图像二值化时须确立一个动态阈值来适应相机的移动。计算灰度图像中130 140个非零像素灰度的均值为321,大于该均值的非零像素的灰度众数能够表示土壤表面点云,其众数为346,蘑菇高度至少20 mm,考虑5 mm的高度裕度,设定动态灰度阈值为331,对灰度图像进行二值化,确保提取出特定直径的蘑菇区域(图2d)。相机的成像特性使得二值图中蘑菇边界失去了其本身的光滑轮廓,有必要对二值图进行形态学开运算、高斯滤波等边缘平滑处理(图2e),使零噪声也落在蘑菇边界轮廓上(图2f)。

图2 深度图像背景分割Fig.2 Background segmentation of depth image

3 粘连蘑菇识别

由于菇床上出茬的蘑菇不同程度地倾斜、粘连,其二值图通常呈现类圆形,这与圆形Hough变换检测的标准圆有一定的偏差,为了获取蘑菇的原始边界轮廓,可考虑先借助圆形Hough变换初步检测圆心和半径,再结合蘑菇本身的边界轮廓来分割相互粘连的蘑菇,获取单体蘑菇边界轮廓的二维坐标。

传统圆形Hough变换的基本思想是将图像的空间域变换到参数空间,用大多数边界点满足的某种参数形式来描述图像中的边缘曲线,通过累加投票求得峰值对应点。具体方法为,将X-Y平面上的圆转换到X-Y-R参数空间,则图像空间中过任意一点的圆对应于参数空间中的一个三维锥面,图像空间中同一圆上的点对应于参数空间中所有三维锥面相交的一点,通过累积投票可求得这一点的圆参数。传统圆形Hough变换对噪声不敏感,能够检测变形或缺失的圆,但由于采用一到多的参数映射,计算开销大,占用内存空间大,难于确定参数量化间隔标准。针对以上不足,研究者们提出了多种改进算法,较为常用的2-1圆形Hough变换[16]将传统圆形Hough变换的三维Hough空间降到二维,具体步骤为:

图3 圆检测Fig.3 Cyclo detection

(1)检测圆心:标记二值图中的连通域并通过Canny算子检测其边缘点,绘出所有边缘点的法线,经反复试验设定阈值为30,法线交汇点处的累加法线数量大于该阈值的点即为圆心(x0,y0),分别为1号(154, 142)、2号(529, 309)、3号(266, 109)、4号(408, 62)、5号(229, 354)、6号(431, 217)、7号(301, 436)(图3a)。

(2)推导半径:计算某一圆心到所有边缘点的距离,并设定最小半径阈值为25像素、最大半径阈值为300像素、最小圆心距为45像素,在所限定的25~300像素范围内对检测圆进行半径排序并依次计数,经反复试验设定计数阈值为30,投票数大于该阈值的半径46、50、59、50、64、47、41为检测出的圆半径r0。

由图3a可知,圆形Hough变换检测的圆并不能准确拟合蘑菇的边界点,可考虑以其结果为初始圆心和初始半径,找出二值图(图2e)中每一个初始圆心所在的连通域,用八邻域跟踪法顺序遍历其边界轮廓(图3b),分割粘连的蘑菇,获取单体蘑菇边界轮廓的二维坐标。

图4 5号蘑菇边界拟合Fig.4 Boundaries fitting of mushroom 5

针对粘连的蘑菇,以5号蘑菇为例,顺序提取其圆心周围1.3倍半径范围内的边界点直角坐标(图4a),并转换为极坐标系下的半径ρ和角度θ,将角度θ升序排列(图4b),依次计算相邻两角角度差记为Δθ(图4c),当k=289时,Δθ=10.9767°,对应角度序号j为236和314(图4d),试验证明,蘑菇边缘粘连处的Δθ通常在5°~355°之间,据此判断粘连处在红圈与绿圈之间(图4e),去除红、绿点之间的边界噪声(图4f),计算初始圆心到红、绿点的半径,在极坐标系下的红、绿点之间插补一系列角间距为1°的圆弧点(图4g,表1),由此获取单体蘑菇边界轮廓的二维坐标。

表1 5号蘑菇插补的圆弧点Tab.1 Points interpolation in arc of mushroom 5

4 蘑菇原位测量

假设SR300相机的世界坐标系XYZ是以红外摄像头光心为原点的右手螺旋型,Z为光心到物体表面的距离,由于图像坐标系xy通常以图像左上角为原点且灰度图像的灰度z等于Z,则由深度相机的视场角和图像分辨率可推导出图像中某像素点(x,y)对应的世界坐标系坐标(X,Y,Z)。

为了获取相机世界坐标系下单体蘑菇的圆心位置、直径、偏向角和倾斜角等参数,首先,校准相机的世界坐标系;然后,验证相机世界坐标系下原位测量陶瓷圆板的圆心位置、直径、偏向角和倾斜角的精度。

4.1 相机坐标系校准

相机固定在铝支架上,置于可移动桌面上方,采集并显示桌面的深度视频流,调用视频窗口的回调函数获取鼠标指向位置的深度值,将鼠标依次指向桌面的4个角,微调相机的摆放角度,直至4个角均显示图像灰度近似290,表明相机摆放基本平整。

桌面上摆放一张刻度为10 mm的方格坐标纸,为了在坐标纸上寻找相机的X轴,将一个平整的黑色盒子边缘与网格线重合,采集桌面的深度视频流,并显示其二值图(图5a),调用视频窗口的回调函数获取鼠标指向位置的Y坐标值,将鼠标指向黑盒子的底边,轻微移动桌子,直至黑盒子底边上各点Y坐标值近似207(图5b),表明相机X轴与网格线平行。

为了在坐标纸上寻找相机的坐标原点,将一个圆柱体置于坐标纸中间的某十字线上,采集并显示桌面的深度视频流(图5c),调用视频窗口的回调函数获取鼠标指向位置的X、Y坐标值,将鼠标指向圆柱体的中心,微调圆柱体的位置,直至圆柱体的中心点坐标显示(320,240)(图5d)。

图5 相机坐标系校准Fig.5 Coordinate system’s calibration of camera

4.2 陶瓷圆板原位测量方法

为了模拟褐蘑菇,取一块直径为100 mm的标准陶瓷圆板以X轴向下倾斜15°(偏向角为-90°,倾斜角为15°)立于世界坐标系原点附近(图6a),采集桌面的深度图像(图6b、6c),经上述图像分割算法获取陶瓷圆板的边界点的二维坐标,基于此,验证圆板的圆心位置、直径、偏向角和倾斜角的测量精度,步骤为:

(1)圆心位置:计算陶瓷圆板边界点的二维坐标的均值,获取陶瓷圆板的圆心(x0,y0)及其灰度z0,由相机的视场角和图像分辨率推导出世界坐标系下陶瓷圆板的圆心坐标为(-7.014 9 mm,-0.54 mm,256 mm),基本在世界坐标系原点附近。

由于二值化后的边缘平滑处理,陶瓷圆板边界点的灰度存在零噪声(图6e、6f),可由噪声边界点(x1,y1)与圆心(x0,y0)建立两点式直线方程(y-y0)/(y1-y0)=(x-x0)/(x1-x0),获取圆心至边界半径线上所有点的灰度(图6g),并沿着半径方向取零噪声点附近的灰度替代零噪声(图6h),进一步对圆板边界灰度进行滑动平均以便更好地拟合蘑菇边缘深度(图6i)。

(3)偏向角和倾斜角:求取圆边界上全部515个点的灰度标准差为9.748 8,经试验统计,标准差大于7可判断为倾斜。求取13条直径端点的最低点(-58.530 5,2.296 9,272.235 3)和最高点 (39.350 7,-1.036 3,245.641),计算两点连线在X-Y平面上的投影与Y轴的偏向角为-88.094 3°,误差为1.905 7°,与X-Y平面向下的倾斜角为15.199 6°(图6j),误差为0.199 6°。

图6 原位测量精度验证Fig.6 Verification of measurement accuracy in site

5 现场试验与分析

对蘑菇房现场采集的185幅深度图像进行上述蘑菇图像分割、粘连蘑菇识别及蘑菇原位测量算法试验,以验证本文算法的性能和精度。

5.1 蘑菇图像分割性能试验

对185 幅深度图像进行蘑菇图像分割试验,自适应设定动态阈值,对深度图像进行二值化,以较少的噪声提取蘑菇区域为分割效果的评价标准,结果表明,准确分割177幅图像,蘑菇图像分割正确率为95.68%。部分图像分割不准确的原因是,手持相机采集图像时,难以确保相机平面的水平性。

5.2 粘连蘑菇识别性能试验

统计185幅图像中含粘连蘑菇的图像共146幅,粘连蘑菇大多两两粘连、少数闭环粘连(图7),对其进行粘连蘑菇识别试验,结果表明,正确识别粘连蘑菇图像146幅,粘连蘑菇识别正确率为100%。

图7 粘连蘑菇识别结果Fig.7 Effect of image recognition of adhesive mushrooms

5.3 蘑菇原位测量性能试验

选取不同光源下不同菇床区域的14个蘑菇,用游标卡尺人工测量其直径,目测其倾斜角(表2),再以这14个蘑菇为中心采集菇床深度图像,对其进行基于陶瓷圆板的原位测量算法试验,测量单体蘑菇的圆心位置、直径、偏向角和倾斜角,结果表明,机器测量的直径均在香啡、贵啡、牛排的菌盖直径范围内,直径误差最大为5.57 mm、倾斜角误差最大为6.3°(表2),测量结果符合实际,测量算法实际有效。

由于视频流保存的图像视野范围连续渐变,故选取不同菇床位置的17幅深度图像,记录其运行时间,并统计每一幅图像的蘑菇数量(图8),结果表明,随着图像中蘑菇数量的增加,运行时间也随之增加,每幅图像的平均运行时间为206 ms;单体蘑菇的平均运行时间为44 ms,粘连蘑菇的运行时间略长。

表2 蘑菇原位测量精度试验结果Tab.2 Results of measurement accuracy in site of mushroom

图8 每幅图像运行时间Fig.8 Run speed of each image

6 结论

(1)针对褐蘑菇的菌丝大,干扰背景,在深度图像中利用蘑菇菌柄高度至少20 mm,结合土壤表面深度的众数,自适应选择动态阈值,从菇床背景中快速、准确地提取了蘑菇菌盖二值图。

(2)针对菇床上倾斜、粘连的类圆形蘑菇,基于2-1圆形Hough变换初步检测了圆心、半径,以此为种子对蘑菇的边界轮廓进行跟踪、去噪、插补,分割粘连的蘑菇,准确拟合蘑菇的边界点,获取了单体蘑菇边界点的二维坐标。

(3)校准了相机坐标系,针对标准陶瓷圆板深度图像,利用原位测量方法得出圆板直径误差为0.87 mm,倾斜角误差为0.199 6°。

(4)现场试验表明,深度图像对光源不敏感,图像分割效果良好,蘑菇直径的误差最大为5.57 mm,倾斜角的最大误差为6.3°;视频帧的平均运行时间为206 ms,单体蘑菇的平均运行时间为44 ms。

猜你喜欢
边界点倾斜角圆心
以“倾斜角与斜角”为例谈概念教学
区分平面中点集的内点、边界点、聚点、孤立点
以圆周上一点为圆心作圆的图的性质及应用
开缝圆柱缝隙倾斜角对脱落涡的影响
基于降维数据边界点曲率的变电站设备识别
多阈值提取平面点云边界点的方法
参考答案
基于网格聚类中边界点的处理
四种方法确定圆心和半径
圆心仍对应圆心吗