基于双目视觉的烟叶表面积三维测量方法研究

2023-03-08 10:56林雅婷侯开虎张冀武盖小雷孙浩巍张晓伟
软件导刊 2023年2期
关键词:网格法视差双目

林雅婷,侯开虎,张冀武,盖小雷,龙 杰,孙浩巍,张 轲,张晓伟

(1.昆明理工大学 机电工程学院,云南 昆明 650500;2.云南省烟草质量监督检测站,云南 昆明 650106)

0 引言

烟草行业在我国占有非常重要的经济地位。目前,国内外主要依靠分级人员的经验对烟叶进行分级。随着产业化发展进程的加快,该方式难以适应烟叶质量检测与分级标准不断规范化的客观要求[1-2]。因此,烟叶智能分级成为当前产业进一步发展的关键。

目前,机器视觉技术成为烟叶智能分级的重要手段,在烟叶颜色和叶形识别方面取得了重要成果,为烟叶智能分级提供了重要依据[3-4]。为使烟叶分级精度得到进一步提高,除上述要素外,还需考虑叶片纹理、褶皱等因素。目前,已有学者对烟叶褶皱纹理特征进行了研究。例如,杨晓娟[5]运用灰度共生矩阵法提取烟叶纹理特征,最后确定能量、纹理熵、对比度和相关性作为评判烟叶等级的4 个特征;戴建民等[6]基于图像的灰度直方图统计纹理特征的均值、标准差对纹理进行描述;陈朋[7]运用Gabor 小波变换法对烟叶纹理特征进行提取,最终通过各级别烟叶纹理的特征均值和标准方差划分烟叶等级。然而,现有研究主要通过单目相机获取二维图像提取信息进行褶皱纹理分析,由于受图像维度的限制,表面遮挡、褶皱等信息无法得到精准表征,进而影响烟叶面积、褶皱等形态学参数的测量精度,对烟叶分级造成一定影响。因此,针对烟叶表型测量存在的问题和局限性,如何呈现烟叶表面细节以更好地提高烟叶表面积计算精度是目前亟待解决的问题。

双目立体视觉是目前可视化研究中的关键技术,其通过模仿人的视觉原理获取图像的深度信息,将二维图像转换为三维几何信息,可以更大程度地呈现物体的表面细节,在植物表型研究方面具有明显的优势。目前,部分学者基于双目视觉对植物表型进行了三维重建技术研究。例如,殷悦等[8]采用基于双目视觉的三维重建技术得到拟南芥三维逼真模型;田东旭[9]采用双目视觉技术结合植物建模方法建立了大田玉米植株模型并在此基础上实现了植株各叶片的识别与定位;尹世和等[10]通过搭建双目视觉平台对大豆植株的生长参数进行无损检测,快速准确地获得了测量结果。

上述文献表明,采用基于双目视觉的三维重建技术应用于植物研究能得到更全面的性状参数,对植物表型进行更精确的分析,还具有操作灵活、成本低、效率高等特点,但目前将该技术应用于烟叶表型分析的研究较少。因此,本文针对采用二维图像处理测量存在维度分析局限性而影响烟叶智能分级准确度的问题,提出一种基于双目视觉的烟叶表面积三维测量方法。首先,通过双目视觉系统采集烟叶图片,对得到的左右图像进行立体匹配得到视差图;然后运用三角测量原理生成三维点云,导入Meshlab 软件中实现烟叶表面的三维重建;最后基于VTK 库计算得到烟叶的表面积。

1 材料与方法

1.1 实验材料

本研究使用的烟叶均由云南省烟草质量监督检测站的分级专家进行部位分级,根据最小样本量的要求选取上部烟叶、中部烟叶、下部烟叶各30 片,共计90 片不同褶皱弯曲烟叶。

1.2 图像处理

1.2.1 相机双目标定

采用张氏标定法对相机进行标定,标定板选用12×9规格的棋盘格,每个格子的大小为15mm。通过固定的双目相机分别拍摄标定板正面、前后、左右各倾斜15°方向的图片,选择性地删除存在角度或光线问题的图片以提升标定精度,最终得到采集后的左右图片各14 张。将图片分组导入MATLAB,使用图像处理和计算机视觉工具箱中的Stereo Camera Calibration 进行标定,获取左右两个相机的内外参数。经上述操作后,得到标定板与相机的14 种位姿和空间信息以及相机标定误差,最后得到相机标定误差为0.17,满足实验所需的精度要求。

1.2.2 烟叶图像立体校正

立体校正是为了将实际情况下双目摄像头成像不共面、极线不平行的两幅烟叶图像,通过标定参数R 和T 进行矫正,得到左右相机光轴平行、成像平面完全共面且行对准的图像。在双目相机拍摄完烟叶的照片后,根据上述标定所得参数,调用opencv 中cv2.stereo Rectify、cv2.undistort、cv2.remap、cv2.init Undistort Rectify Map 等函数进行图像校正,并修剪成合适的尺寸,再通过画线的方式进行立体校正检验。通过烟叶实物的图像校正可以看出该方法的矫正效果良好。图1 为立体校正前的图像,图2 为立体校正后的图像。

Fig.1 Tobacco leaf image before stereo correction图1 立体校正前的烟叶图像

Fig.2 Tobacco leaf image after stereo correction图2 立体校正后的烟叶图像

1.2.3 图像立体匹配

SGBM(Semi-global Block Matching)算法是一种半全局算法,结合了全局和局部匹配算法的优点,在运算速度和精度方面具有优势,主要包括以下几个步骤。

(1)预处理。水平算子Sobel 遍历图像上的每个像素点,然后利用函数将其映射成为一个新图像,从而得到图像的梯度信息,用于代价计算。Sobel算子的计算公式为:

(2)代价计算。烟叶左右图像同时进行两种不同的处理[11],一种是对原图进行水平方向的梯度滤波,然后再进行BT 代价计算;另一种是直接输入图像进行BT 代价计算。将以上两步代价计算得到的结果进行融合,并进行成块处理。

(3)动态规划。通过图像中多个方向上一维路径的约束建立一个全局的马尔科夫能量方程,每个像素最终的匹配代价为所有路径信息的叠加,每个像素的视差选择通过赢家通吃算法(Winner-Takes-All,WTA)决定。在每个方向上按照动态规划的思想进行能量累积,然后将各个方向上的匹配代价相加得到总的匹配代价,表示为:

式中,P1、P2 为控制视差变化平滑性的参数,两值越大,视差越平滑。当P1

(4)视差图后处理。由于环境或设备因素影响,经上述操作得到视差图后,图像一般会存在一定缺陷,如噪声过大、图像不连贯等现象,不便于后续点云三维重建。后处理包含唯一性检测、亚像素插值、左右一致性检测步骤。首先对立体校正后的烟叶图片进行灰度化和直方图均衡化处理,经过操作后仍能反映整幅图像整体亮度和色度分布,且图像更为清晰,增强了图像整体的对比度,同时减少了后续计算量。图像预处理完后,调用opencv 中的SGBM算法进行立体匹配,其中StereoSGBM_create 函数中的各个参数需要根据不同参数设置下获得的视差图效果进行调整,得到最终参数设置。

1.2.4 视差图获取

图3 左图为初始视差图,右图为精细化视差图。可以看出,左图像中烟叶轮廓信息和深度信息大且灰度值分布比较均匀,匹配效果较好。但此时的初始视差图受实验条件和实验设备的影响,仍存在一些问题,如噪声点多、精度低等,需要对视差图进行优化和修正。使用阈值处理初始视差图获得二值化图像,利用形态学处理进行孤立小区域的去除和孔洞填充,对图像中遮挡区域和空洞点进行适当填补,使得图像更加稠密可观。

Fig.3 Initial disparity map and refined disparity map图3 初始视差图和精细化视差图

1.3 烟叶表面三维重建

1.3.1 烟叶三维点云

通过SGBM 算法立体匹配得到视差图后,根据三角测量原理对视差图中所有点的深度进行计算。将得到的深度值代入成像模型中,根据逆向数学转换关系计算各点的三维坐标,再对其进行点云可视化操作,从而恢复图像的三维信息[12]。将物体在左右相机成像平面的一定偏移视差信息作为基础获取深度信息,其测量原理见图4。

Fig.4 Binocular camera imaging principle图4 双目相机成像原理

在图4 中,点P 为世界坐标系中的一点,其在相机左右成像平面上得到Pl和Pr两点,Xl和Xr分别为点P 在左右成像平面上的视差;左右相机基线b 表示两个相机光心的距离;相机焦距f 表示相机光心到成像平面的距离。定义P点到两光心OlOr的垂直距离为深度Z,由上图可以得到ΔOlPZl~ΔOlPlRl和ΔOrPZr~ΔOrPrRr。然后按照三角形相似原则,最终得到P点的三维坐标信息,表示为:

根据SGBM 生成的视差图、相机标定参数、左相机原图提供的RGB 信息结合三角测量原理,利用python-pcl 将其转换成立体图像进行可视化显示,并进行交互处理,获得的点云图如图5所示。

1.3.2 烟叶表面三维重建

Fig.5 3D point cloud image of tobacco leaves图5 烟叶的三维点云图

由于烟叶表面存在不规则的纹理和褶皱,直接使用离散点云求取叶片面积会产生测量结果不准确的现象。为解决该问题,本文基于三维点云数据使用Ball Pivoting 算法对叶片表面进行三维重建[13]。将三维点云数据导入Meshlab,原本的烟叶三维点云数量为62310,对一些由于噪声造成的离群的点云手动进行删除和滤波处理,经过处理后烟叶的点云数量变为61599,整体点云变得更加平滑。在表面重建中选择Ball Pivoting 对非均匀离散点云进行曲面重建。根据点云的疏密程度,设置合适的聚类半径和角度阈值,得到接近实际的烟叶表面模型,如图6所示。

Fig.6 Tobacco leaf surface reconstruction by Ball Pivoting algorithm图6 Ball Pivoting算法重建烟叶表面模型

1.4 烟叶表面积计算

将上述三维重建模型生成的ply 文件通过VTK 库中的公式vtkMassProperties 实现三角网格的表面积计算。首先遍历叶片表面所有的封闭三角网格单元,然后将所有网格面积进行累加得到整体叶片总面积。

2 实验结果与分析

2.1 不同处理方法的烟叶面积测量

分别采用本文方法、二维图像法以及网格法对上、中、下3 个部位的90 片烟叶进行面积测量,以评价本文方法的性能。单叶面积测量有多种方法,其中网格法和纸样称重法最为准确[14]。由于本文采用烘烤后的烟叶作为实验对象,烟叶叶形较大且有不同程度的褶皱弯曲,单片烟叶中区块间的厚度差异各不相同,纸样称重法很难对其面积进行测量,因此选用网格法作为面积测量值的参考标准。在使用网格法进行测量时,选用带有方格单位的白纸,最小方格单位为1cm2,将待测烟叶叶片完全展开平铺在方格纸上,用铅笔在白纸上准确勾勒出每片烟叶的形状,计算出烟叶所占用的方格数量,其中切格的按四舍五入计算,最后经过统计得到叶片面积[15]。由于烟叶面积较大,且测量时是将烟叶完全平整地按压在纸上描形,测量出的网格误差数对烟叶面积的影响较小,因此将网格法测量的结果作为烟叶表面积真实值的参考值。

在使用二维图像测量法进行测量时,首先需要采集烟叶自然形态下的图像,然后对烟叶图像进行预处理,进一步提高图像质量,增强可靠性。为进一步得到烟叶图像的外形特征,选用合适的阈值对处理后的图像进行二值化处理和图像分割,从而获得烟叶的轮廓信息,然后调用cv2.contourArea 公式求得图像面积。但此时得到的烟叶面积数值为像素值,需要与参照物真实面积值和像素值等比代换得到的值进行换算,最后得出烟叶真实的二维图像面积。上述两种方法与本文方法得到的上、中、下部烟叶面积测量结果比较如表1-表3所示。

Table 1 Comparative calculation results of the surface area of the upper tobacco leaves by each method表1 各方法上部烟叶叶片表面积测量结果比较

2.2 实验结果分析

运用3 种方法对烟叶表面积进行测量,其中二维图像法运行平均时长最少约为110ms,三维重建法平均运行时长比二维图像法多5s。网格法测量用时最长,其在烟叶描形、格子计数等步骤花费了大量时间,每片烟叶测量平均耗时7.5min,测量操作步骤繁琐且效率低,不便于大规模用于烟叶表面积测量。

经过3 次实验,在上部烟叶面积测量中,本文方法与二维图像法相比面积测量值的平均相对误差有显著下降,减少约39.46%;在中部烟叶面积测量中,本文方法与二维图像法相比平均相对误差减少约30.61%;在下部烟叶面积测量中,本文方法与二维图法相比平均相对误差约减少18.16%。综上所述,本文方法在各个部位烟叶面积测量上的准确率均有所提升,其中上部烟叶的测量效果最为明显。

Table 2 Comparative calculation results of the surface area of the central tobacco leaves by each method表2 各方法中部烟叶叶片表面积测量结果比较

根据上述分析,本文方法在烟叶面积测量上的平均相对误差低于二维图像法,所测量的面积值更接近于真实值。由于烟叶各部位存在不同程度的褶皱,二维图像法测量面积时只能计算烟叶自然状态下的投影面积,无法对弯曲褶皱部分的面积进行测量,因此测量出的面积值与真实值存在较大偏差。而本文方法利用双目视觉存在的视觉差对烟叶进行三维重建,能够最大程度地还原烟叶的表面形态,尽可能测量到弯曲褶皱部分的面积。与网格法相比,本文方法测量面积偏大是由于相机精度不够高或测量的图像存在一些噪声,导致点云测量面积增大;测量面积偏小则是由于部分烟叶存在折叠层数过多或褶皱程度过深的现象,双目相机拍摄图像时仍存在一些无法获取的叶片折叠或褶皱信息,无法捕捉这部分烟叶褶皱区域的坐标数据,重建过程中该部分点云缺失,给测定结果造成影响。

Table 3 Comparative calculation results of the surface area of the lower tobacco leaves by each method表3 各方法下部烟叶叶片表面积测量结果比较

此外,专家经验表明烟叶的部位越高,叶片表面褶皱程度越深。随着烟叶部位的升高,烟叶表面褶皱程度加深,二维图像中遮挡的面积部分也会相应增加,因此产生了烟叶部位越高,应用二维图像法测量造成的面积相对误差越高的现象。而运用三维重建法测量烟叶上、中、下3个部位烟叶的表面积时,各部位平均相对误差较二维图像法大幅度降低,测量出的结果表现为上部烟叶测量的相对误差值>中部烟叶测量的相对误差值>下部烟叶测量的相对误差值。从另一个角度来看,可根据二维图像法与网格法的相对误差和三维重建法与网格法的相对误差两者的差值对烟叶褶皱程度进行判别,这两者的差值表现为三维重建法重建出的褶皱部分在网格法测量面积值中的占比,两者差值越大表明烟叶的褶皱程度越深,因而其更偏向于上部烟叶;反之差值越小,表明存在的褶皱区域越少,则更靠近下部烟叶。

3 结语

本文针对二维图像测量中存在烟叶弯曲褶皱现象,从而导致烟叶表面积计算有误,进而影响烟叶智能分级精度的问题,提出一种基于双目视觉的烟叶表面积三维测量方法。通过烟叶各部位面积测量结果的比较,发现本文方法的平均测量准确度较二维图像法提高约30%,更接近于叶片直接测量得到的实际面积,验证了该方法用于烟叶表面积测量的准确性和有效性。除此之外,以上两种方法与网格法测量结果的相对误差差值可以体现各个部位烟叶的不同褶皱程度,为后续烟叶智能分级过程中褶皱程度分析提供一定参考。

猜你喜欢
网格法视差双目
基于自适应窗的立体相机视差图优化方法研究
雷击条件下接地系统的分布参数
基于双目测距的卡尔曼滤波船舶轨迹跟踪
角接触球轴承的优化设计算法
基于梯度域引导滤波的视差精炼迭代算法
基于分割树的视差图修复算法研究
基于双目视觉图像的长度测量方法
立体视差对瞳孔直径影响的研究
基于双目视觉的接触线几何参数测量方法
一种双目立体视觉相机标定方法