APP下载

用于钢铁回收中的目标检测与尺寸估计算法

2024-03-31范彬彬秦训鹏毕玖琚

关键词:掩膜欧式滤波

范彬彬, 秦训鹏, 吴 强, 王 哲, 毕玖琚

(1.武汉理工大学 汽车工程学院,湖北 武汉 430070; 2.现代汽车零部件技术湖北省重点实验室,湖北 武汉 430070)

0 引 言

钢铁回收过程中,不同大小尺寸的废旧钢铁回收价格不同,并且废旧钢铁回收处理过程中,如果钢铁尺寸过大,会使龙门剪切机卡料,损坏器械,因此需要对回收的钢铁进行尺寸判别,依据尺寸大小定价,并根据尺寸大小确定废旧钢铁的处理流程。双目视觉测量是依据人类视差成像原理,利用两台相机通过左、右两幅图像获取视差进而生成三维点云数据的测量方式[1]。双目视觉测量虽然精度相比激光雷达点云精度存在差距[2],但是凭借双目视觉的高效率、精度适宜、结构简单、成本低的特点,在工业生产、三维测量领域得到了广泛的应用。

目前,点云的目标分割方法可分为基于深度学习的点云分割和基于颜色、几何等特征的点云分割。基于深度学习的三维点云语义分割模型主流上有Point Net、Point Net++、KD-Net、3D-MPA等[3-6]。这类方法对数据集有非常高的要求,应用的广泛性受到很大的限制。基于颜色、几何等特征的点云分割没有数据集的要求,具有更大的应用面。较为常用的特征有边缘特征[6-8]、表面特征[9-10]、颜色特征[11-12]等。其中,颜色特征是双目点云与激光雷达点云的一个显著区别,双目点云的颜色来源于图像颜色,因此双目点云结合颜色特征进行分割得到广泛应用。针对开放式场景的复杂情况,本文结合基于图像的目标检测和实例分割,针对图像实例分割像素精度不高的问题,提出通过实例分割掩膜自适应提取颜色阈值的方法对点云进行颜色滤波和欧式聚类,得到更加完整的实例点云。

钢铁回收领域的突出特点是开放式环境的复杂背景,往往在废旧钢铁中会混杂有其他非钢铁物体,因此本文采用Mask R-CNN模型对图像进行目标检测和实例分割,目标检测由于较高的识别精度,能够快速定位废旧钢铁的位置。由于实例分割掩膜的不完整性和低精确度,本文根据掩膜提取目标颜色阈值再对点云进行颜色滤波,以避免掩膜不完整造成的点云缺失,再通过有向包围盒(oriented bounding box,OBB)对钢铁点云进行尺寸估计。

1 算法描述

本文获取目标点云及尺寸估计的算法如图1所示。

图1 双目视觉目标点云分割流程

该算法的具体步骤如下。

1) 对采集的双目图像进行立体校正,并对左视图进行目标检测与分割,获得目标所在的矩形区域及掩膜。

2) 对校正图像进行立体匹配与视差计算,并进行目标矩形区域裁剪。

3) 结合视差与标定参数进行计算,得到三维点云。

4) 根据Mask R-CNN模型得到的mask掩膜自适应获取HSV颜色空间阈值。

5) 根据颜色阈值对点云进行颜色滤波。

6) 通过欧式聚类的方法将目标点云分割出来。

7) 通过OBB对钢铁点云进行尺寸估计。

1.1 基于Mask R-CNN模型的实例分割算法

Mask R-CNN模型[13]是在Fast R-CNN基础上,在原本的分类与回归分支上扩展并添加语义分割分支,实现对图像的目标检测与实例分割。Mask R-CNN是一种两阶段目标检测方法:第1阶段通过区域建议网络(region proposal network,RPN)生成一系列建议框;第2阶段通过生成的建议框与感兴趣区域对齐,再对特征层进行截取。最后将截取特征输入分类、回归和掩码3个分支进行不同的预测任务。本文所用Mask R-CNN模型以ResNet101为主干特征提取网络,在特征提取后利用压缩2~5次的特征层构建特征金字塔,实现多尺度特征融合。将提取到的P2~P6作为RPN的有效特征层进行建议框的提取,将P2~P5作为3个分支的有效特征层对建议框进行最终预测。通过RPN对有效特征层获取先验框调整参数并判断框内是否存在物体,随后对先验框进行调整和筛选后得到建议框。建议框是对图片有物体的区域进行初步筛选,再结合主干特征提取网络获得的多个公用特征层,经由ROI Align网络根据建议框对特征层进行截取,截取后的特征经卷积后输入到不同的检测分支对建议框进行调整和预测,并得到最终预测结果。Mask R-CNN网络框架图如图2所示。

图2 Mask R-CNN网络框架图

采用单独使用深度学习的方式对目标进行像素级的图像分割具有很大的限制。首先,对数据集的数量和质量要求较高,图像采集和打标签的工作量也非常庞大;其次,目前的实例分割模型对目标的边缘还无法做到精度很高的分割。然而,深度学习在目标检测领域能达到非常高的精度,因此本文采用Mask R-CNN模型作为点云算法的预处理模块,其功能包含目标检测和实例分割功能。目标检测得到的目标框将目标截取出来,减少计算量并突出目标,减少背景干扰;实例分割的边缘精度不高但是能够提取出目标的主体部分作为自适应颜色阈值算法的输入。自适应颜色阈值算法对目标边缘不敏感,只需要获得目标的主体颜色,因此不需要追求实例分割的高精度,这大大降低了对数据集的要求。

1.2 基于双目视觉的立体重建

本文使用open CV库中半全局块匹配(semi-global block matching,SGBM)算法[14]对校正图像进行立体匹配与视差计算,如图3所示。

图3 图像裁剪

计算出的视差图如图3b所示,由于图像像素大小为2 048×2 040,先对左视图和视差图进行目标截取,根据识别出的目标框,截取图像获得更小的图片,减少计算量和背景干扰。

双目视觉利用双目视差原理计算物体实际坐标,如图4所示。

图4 双目立体视觉示意图

计算公式如下:

(1)

(2)

(3)

其中:B为左右基线距离;Xleft、Xright、Yu为相机坐标系下的图像坐标;ul、vl为左相机图像的像素坐标;cx、cy为光心坐标。通过式(1)~(3)可计算物体在左相机坐标系下的坐标。

1.3 基于颜色的点云滤波

本文选取的实验目标是汽车B柱,具有典型的银白色金属光泽。针对场景中前景有多个干扰物体的情况,本文通过颜色的差异先对前景的物体进行处理,对目标进行颜色滤波,将非目标点云离散化,同时也减少点云数量,提高后续点云处理速度。

图像的颜色分割可通过不同的颜色空间进行区分,较为常用的有RGB颜色空间、HSV颜色空间、YCbCr颜色空间和Lab颜色空间。根据实际场景采集的图片,进行调参实验发现,HSV颜色空间能够取得更理想的分离效果,能够在将前景中汽车B柱较完整保留下来的同时,将前景目标边缘的像素滤除,实验结果如图5所示,因此本文颜色滤波采用HSV颜色空间。

图5 不同颜色空间下的颜色滤波图

通过掩膜提取目标的RGB三通道值,并转化到HSV颜色空间,再计算HSV三通道的像素分布。RGB颜色空间到HSV颜色空间的转化公式如下:

(4)

(5)

V=cmax

(6)

其中:H、S、V分别为HSV颜色空间三通道的像数值;R、G、B分别为RGB颜色空间三通道的像数值;cmax、cmin分别为当前像素点RGB三通道中的最大值和最小值。

根据实验发现,频率分布区间划分越多,阈值计算越准确,同时计算量也将加大,本文选择了100个分布区间。将HSV三通道的频率分布数列输入自适应颜色阈值选取算法中,得到目标物体的颜色分割阈值,算法伪代码如下。

Input:颜色频率分布a,b;颜色占比scale=0.9

//a存储频率,b存储区间

Output:颜色阈值{thresholdmin,thresholdmax}

x←max a//将最高频率赋值给x

m,n←index(maxa)//左右起始阈值赋值

whilex 0) do

ifm

m++//最大阈值右移

x←x+a[m]//频率和增加

end if

ifn> 0 then//最小值未越界

n--//最小值左移

x←x+a[n]//频率和增加

end if

end while

thresholdmin←b[n]

thresholdmax←b[m+1]

return thresholdmin,thresholdmax

将获得的点云的RGB颜色空间转化到HSV颜色空间,并根据自适应HSV颜色阈值进行点云颜色滤波,使非目标点云离散而目标点云保持连通。

1.4 欧式点云聚类

通过上一步点云的颜色滤波,将非目标点云离散化而最大限度保留了目标点云的完整和连通。针对颜色滤波后的点云特点,本文结合欧式聚类的方法,将目标点云分割。欧式聚类利用点与点之间的欧式距离进行聚类,点与点之间的欧式距离小于设定阈值则视为一类。由于点云数据较大,为提高计算速度,本文在欧式聚类前先对点云进行随机下采样,同时采用构建K-d树的方法提高计算速度,算法伪代码如下。

Input:P-Could,tolerance,P-Sizemin,P-Sizemax

//点云,最大距离,最小、最大点云数量

Output:点云聚类结果{clusters}

kdtree←EstablishKdtree(P-Could)

P-Num←P-Cloud.length

for idx=0 →P-Num do

if processed[idx]==1 then//该点已处理

continue

end if

seedq←idx//加入一个种子点

processed[idx] ← 1//标记该点已处理

sqidx← 0

while sqidx

k,Ind←kdtree(P-Could[seedq[sqidx]])

//获取种子点的邻近点数量及索引

ifk==1 then

sqidx++

continue

end if

forj=0 →kdo

if Ind[j]==P-Num‖

processed[Ind[j]]==1 then

continue

//已经处理的近邻点则跳出此次循环继续

end if

seedq← Ind[j]

processed[Ind[j]]=1

//加入种子点,并标记

end for

sqidx++

end while

if P-Sizemax>seedq.length>P-Sizemin then

clusters ←seedq

//聚类结果存入clusters

end if

end for

return clusters

算法中最大距离参数的选择与图像大小和相机视野大小有关,计算公式如下:

1.1αFS≤t≤1.8αFS

(7)

(8)

其中:t为最大距离阈值;α为点云下采样倍率;FS为比例因子;Fov为单边相机视野;P为单边图像像素大小;L、W分别为长和宽,Fov和P的长或宽要相对应。

1.5 点云尺寸估计

钢铁回收过程中需要对废旧钢铁进行尺寸估计以进行定价和回收处理。针对点云的尺寸估计,本文采用OBB的方式进行尺寸估计, 它沿着点云的主成分方向生成一个最小的可以随物体旋转的矩形包围盒,能够更紧密地贴近物体,该方法比较广泛地用于碰撞检测中。

点云的有向包围盒将通过对点云的主成分分析获得特征向量,以这些特征向量作为包围盒的主轴。点云的协方差矩阵A的特征向量表示有向包围盒的主轴方向。点云的中心为包围盒的中心,以点云中心为包围盒的中心,沿主轴方向计算x、y、z3个方向的半长度,即可求出点云的有向包围盒。具体计算公式如下:

cov(Xi,Xj)=E[(Xi-μi)(Xj-μj]

(9)

(10)

式(9)为协方差计算公式,其中,μ为均值。

2 实验结果与对比分析

2.1 实验平台

实验平台包括图像采集设备和算法运行环境,图像采集设备采用2个相同型号的工业相机(Basler acA2440-20gc)和工业镜头(C0828-5M)组成双目立体视觉,如图6所示,最大图像像素大小为2 440×2 048,工作距离为2 m,视野大小为2.1×1.775 m。深度学习模型Mask R-CNN在工作站上完成GPU加速训练后将权重下载并移植到算法运行环境中。运行环境如下:操作系统为Windows 10;CPU为Intel(R) Core(TM) i5-7300HQ;IDE为VS Code;深度学习框架为Tensorflow 1.13.1+keras 2.1.5。

图6 双目相机

2.2 实验结果

将400张金属汽车零部件的图像按照6∶2∶2的比例划分训练集、验证集和测试集,再对训练集进行数据增强到3 000张图像,输入Mask R-CNN模型中进行训练,训练100次迭代的损失曲线如图7所示,从图7可以看出,在迭代约80次后趋于收敛,在0.50~0.95全部IoU阈值下,回归框的平均精确率为0.892,平均召回率为0.902;掩膜的平均精确率为0.672,平均召回率为0.900。

图7 Mask R-CNN模型训练迭代过程

校正后的图像对如图8所示,目标检测和实例分割的图像为校正后的左相机图像,识别结果如图9所示。为减小运算量,对左视图和视差图进行裁剪,如图3所示,并进行三维重建得到初始点云。为提高运行速度,将初始点云进行下采样,下采样倍率α=10。因此,依据式(7)、式(8)取聚类阈值t=10。通过颜色滤波与欧式聚类得到的聚类点云如图10所示。

图9 汽车B柱目标检测图

图10 点云欧式聚类示意图

2.3 对比分析

为定量分析双目视觉目标点云分割算法的性能,参考文献[12,15-16]的滤波误差评价方法,将原始点云O分为目标点OT和非目标点OF,分割后的点云分为目标点ST和非目标点SF,滤除的点云包括目标点DT和非目标点DF。第Ⅰ类误差为将非目标点判断成目标点的误差,即Ea=(SF/DF)×100%;第Ⅱ类误差为总误差,将非目标点误判为目标点和将目标点误判为非目标点,即Eb=[(SF+DT)/O]×100%;定义目标的分割完整度为分割的目标点云与目标点云的比值,即I=(ST/OT)×100%。其中,真实的目标点云通过人为划分的方法来确定。

为验证本文算法的可行性,采用部分替换及与其他方法进行对比的方式进行对比实验。文献[17]提出了采用半径滤波进行预处理后采用欧式聚类的方法进行目标点云分割;文献[18]采用Mask R-CNN实例分割算法对桥梁进行目标检测与实例分割,根据分割掩膜对点云进行分割;基于此基础上,将2种算法结合,将Mask R-CNN模型与半径滤波和欧式聚类结合。

为验证目标检测模型对本文算法的影响,本文采用YOLOv5s-seg模型替换为Mask R-CNN模型后再进行颜色滤波与欧式聚类的方法,并通过对比进行验证本文算法。YOLOv5s-seg是基于YOLOv5网络的轻量级实例分割模型。在相同的数据集训练后,0.50~0.95全部IoU阈值下回归框的平均精确率为0.664,掩膜的平均精确率为0.673。

图像的识别结果如图9所示。从图9可以看出:Mask R-CNN模型的目标框识别准确率更高,在图像中能够将目标物体更加完整地包围;YOLOv5s-seg则没能完整地包围目标物体,且掩膜中存在错误掩膜。

汽车B柱点云为本文实验对象,双目重建后原始点云中点数目为107 142,其中:目标点数目为25 416;需要滤除的点数目为81 726。将本文算法与以上4种算法进行对比,结果见表1所列,效果图如图11所示。从表1和图11可以看出,本文算法对目标点云的分割误差比其他算法更小,点云完整度也更高。文献[17]利用半径滤波和欧式聚类的方法无法从前景的多个物体中将目标分离出来,虽然完整度很高,但是第Ⅰ类误差和第Ⅱ类误差均超过了20%。

表1 算法误差对比

图11 算法效果对比图

文献[18]利用Mask R-CNN模型结合图像分割点云,虽然误差减小,但是点云附近增加了很多噪点,并且由于图像像素分割不够准确,点云边缘还有很多非目标点云。在文献[18]基础上增加欧式聚类,可以将点云边缘附近的非目标点云滤除,减小误差,但从图11中可以发现,由于目标检测算法的掩膜分割不够准确,点云中的目标点丢失很多,导致点云缺失了一部分。将目标检测模块换成YOLOv5s-seg模型后,由于目标检测回归框的准确率较低,导致无法将目标完整地框选,因此会使保留的目标点ST减少,滤除的目标点DT增大,进而增大2种误差。同时,目标框内出现的错误掩膜将会影响颜色率波。由于YOLOv5s-seg模型识别的掩膜中出现了非目标物体,掩膜的颜色分布将会出现变化,颜色滤波的自适应阈值也会偏移,导致的结果如图11f所示,点云中出现了较大的空洞,导致点云的完整度降低。由以上分析可知,目标检测模型的回归框将影响最终点云的完整度,回归框应尽可能完整地包围目标;掩膜影响最终点云的分割误差和完整度,主要是由于错误掩膜的影响,掩膜轮廓精度对最终效果无影响。

本文所提出的算法充分考虑到图像前景干扰物体多,深度学习算法数据集不够充分的情况,利用图像的颜色、几何、统计等特征,根据目标的颜色分布,设计了自适应颜色阈值选取算法,结合欧式聚类对目标进行点云分割,分割点云的完整度可达到90%以上,第Ⅰ、第Ⅱ类误差分别为0.615%、2.807%。综合来看,本文提出的算法效果最佳。根据图11算法效果对比可知,本文算法对于边缘点云的分割更加精确。

同时,在多个废旧钢铁汽车零部件上,本文算法均表现出较好的分割性能,具有一定的泛化能力。不同物体效果如图12所示,图12中:物体a为汽车B柱;物体b为汽车上的废旧零部件;物体c为一块方形废钢。通过本文算法进行双目点云自适应分割,得到的效果图能够较为清晰的表现出物体形貌。

图12 不同物体效果图

根据实验统计,在本文的设备环境下,本文算法对图12的3个物体进行点云分割的运行时间统计结果见表2所列。

表2 不同物体数据对比

总运行时间包括目标检测时间、立体校正和三维重构时间、颜色滤波时间、欧式聚类时间,其中颜色滤波和欧式聚类占用的时间较多,这主要与目标点云的数量有关,目标点云越多,耗费时间越多。从表2可以看出,点云分割误差也表现较好,说明本文算法具有一定的泛用性和实用价值。本文算法的应用对象为双目点云,因此点云的规模是可控制的,实验所用设备采集的最大图像像素为2 448×2 040,物体通常在整个图像上不会超过画面的1/4。这种情况下,物体原始未处理点云通常不会超过1×106个点,为提高运行效率需要在不影响计算准确度和点云形貌的基础上进行下采样,一般可以进行10∶1下采样,因此本文算法的点云处理规模通常为105以下。当图像中出现多物体时,采用多线程技术处理点云可以提高效率,本文算法处理一对图像的点云时间30 s左右。当采用性能更加优秀的计算机并对目标检测模型进行剪枝、知识蒸馏以及采用更高的下采样倍率,都将缩减运行时间。

根据OBB计算方法计算物体a点云的主方向和半长度大小,包围盒效果图如图13所示。

图13 物体a的OBB效果

点云的长、宽、厚分别为1 139.28、 451.48、120.91 mm。OBB能够紧密地包裹住点云,较为准确地估计出点云的大小,实现了在钢铁回收过程中对废旧钢铁的尺寸评估,提高了钢铁回收效率和经济效益。

3 结 论

本文针对钢铁回收开放式环境下双目视觉点云数据,分析了场景和点云的几何、颜色、统计分布等特征信息,提出了一种针对钢铁回收开放式场景下的双目视觉钢铁点云分割和尺寸估计算法。首先通过基于Mask R-CNN的实例分割算法进行初步处理,将目标区域裁剪出来;然后通过掩膜区域进行自适应HSV空间颜色阈值自适应选取,对裁剪区域进行三维重建生成点云;再对点云进行颜色滤波和欧式聚类,从而得到完整的目标点云;最后通过OBB对目标点云进行尺寸估计,得到点云的三维信息。

本文以废旧汽车B柱为实验目标,模拟回收中面临的开放式环境进行对比实验,实验结果表明,本文算法对汽车B柱点云的提取效果优于其他同类型算法。同时,对于点云边缘的完整性明显优于其他算法。算法还存在一些不足之处,如目标点云中存在少数点云的颜色与其他点云颜色不同,则该部分点云会被颜色滤波滤除,导致有一小部分目标点云缺失,点云完整度受到影响,因此进一步的工作是建立更完备的点云提取模型,以提高钢铁回收过程中钢铁点云的提取精度。

猜你喜欢

掩膜欧式滤波
利用掩膜和单应矩阵提高LK光流追踪效果
一种结合图像分割掩膜边缘优化的B-PointRend网络方法
基于Creo软件的石材欧式壁炉三维造型设计
一类特殊混合跳扩散Black-Scholes模型的欧式回望期权定价
欧式城堡——木炭与色彩的碰撞
对我国小城镇建设过程中欧式古典风格建筑兴起的思考
光纤激光掩膜微细电解复合加工装置研发
多层阴影掩膜结构及其制造和使用方法
RTS平滑滤波在事后姿态确定中的应用
基于线性正则变换的 LMS 自适应滤波