CN117218189A - 一种激光点云转深度图像的被吊物检测方法及装置 - Google Patents
一种激光点云转深度图像的被吊物检测方法及装置 Download PDFInfo
- Publication number
- CN117218189A CN117218189A CN202311041223.8A CN202311041223A CN117218189A CN 117218189 A CN117218189 A CN 117218189A CN 202311041223 A CN202311041223 A CN 202311041223A CN 117218189 A CN117218189 A CN 117218189A
- Authority
- CN
- China
- Prior art keywords
- point
- stacking
- contour
- value
- scanning
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title description 16
- 238000000034 method Methods 0.000 claims abstract description 72
- 238000001914 filtration Methods 0.000 claims abstract description 63
- 238000012856 packing Methods 0.000 claims abstract description 36
- 238000012937 correction Methods 0.000 claims description 44
- 238000012545 processing Methods 0.000 claims description 26
- 238000004364 calculation method Methods 0.000 claims description 14
- 238000003708 edge detection Methods 0.000 claims description 12
- 238000010606 normalization Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 5
- 238000012216 screening Methods 0.000 claims description 5
- 230000011218 segmentation Effects 0.000 claims description 4
- 239000000126 substance Substances 0.000 claims description 3
- 229910000831 Steel Inorganic materials 0.000 abstract description 4
- 239000010959 steel Substances 0.000 abstract description 4
- 230000007246 mechanism Effects 0.000 description 5
- 238000004806 packaging method and process Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000009191 jumping Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000005452 bending Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000007797 corrosion Effects 0.000 description 2
- 238000005260 corrosion Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Length Measuring Devices By Optical Means (AREA)
Abstract
本发明涉及一种激光点云转深度图像的被吊物检测方法及装置,属于钢铁厂型材或棒材码堆无人驾驶行车领域。该方法包括原始点云及行车位置的获取及参数配置、原始点云转换成高度表及数据过滤、高度表转换成灰度图并缩放扩展、统计直方图及归一化操作、图像兴趣层阈值化分割及处理、兴趣层边缘检测和轮廓查找、按轮廓矩和Hu矩匹配轮廓形状、被吊物顶点的确定等步骤。本发明有效提高棒材堆垛因形变造成的识别率下降问题,打包区吊取点和堆垛堆放点的第一次小角度扫描识别率明显提高;该方法也适于改善型材和高线卷的第一次扫描识别率,易于推广应用。
Description
技术领域
本发明属于钢铁厂型材或棒材码堆无人驾驶行车技术领域,具体涉及一种激光点云转深度图像的被吊物检测方法及装置。
背景技术
随着自动化和识别定位技术的发展,钢铁厂成品吊装无人驾驶行车已成为一种趋势。型材捆件为矩形截面,多层紧靠顺向堆码。高线卷为空心圆柱体侧放,多层并排紧靠升层对缝堆码。棒材捆件为椭圆形截面,多层交叠井字形堆码。因型材捆件上表面方正且高度较高、高线卷直径大,二者堆垛形变对位置检测影响较小;但棒材捆件细长易弯,两层间高度差较小,随着层数增加堆垛形变影响较大,堆放位置识别准确率下降。申请人前期申请的“一种基于类平面多高度层轮廓识别及坐标计算方法及系统”和“一种激光雷达扫描角度切换及点云采样系统及方法”虽然解决了这三种钢材的吊取堆放位置检测问题,但也存在点云数据观测不直观,兴趣高度层矩形轮廓除首尾顶点外的另两个顶点查找偏差较大导致被吊物宽度计算误差偏大的问题(棒材上表面不方正偏差相比更大),虽用目标轮廓区域内等距均分五行或五列查找计算宽度得以修正,但要求被吊物放置与激光扫描方向夹角不能太大。因此如何克服现有技术的不足是目前本技术领域亟需解决的问题。
发明内容
本申请为了解决无人驾驶行车的被吊物(棒材、型材捆或高线卷)在打包区的吊取位置和堆垛区的堆放位置检测,以及打包区和堆垛区扫描点位置计算的问题,还为了解决前期检测装置及方法存在点云数据显示不直观,大角度扫描堆垛区点云采样、处理和显示不能覆盖堆垛全景,被吊物兴趣高度层类矩形轮廓除首尾顶点外的另两个顶点查找偏差大,以及随着层数增加棒材堆垛形变较大而引起的堆放位置识别准确率下降而增加激光扫描和云台旋转方向动态角度修正的问题,提供一种激光点云转深度图像的被吊物检测方法及装置。
为实现上述目的,本发明采用的技术方案如下:
一种激光点云转深度图像的被吊物检测方法,包括如下步骤:
步骤(1),原始点云及行车位置的获取及参数配置:大角度扫描堆垛区、小角度扫描堆垛区和小角度扫描打包区,采集点云数据及行车位置,之后按这三种扫描类型进行参数配置,并动态更新激光扫描角度和云台旋转角度修正系数;
步骤(2),原始点云转换成高度表及数据过滤:将步骤(1)获得的点云数据转换到高度表,同时过滤掉超兴趣范围域、超斜域和跳变域的数据,之后,对高度表中的数据进行离群点过滤;
步骤(3),高度表转换成灰度图并缩放扩展:将高度表转换成原始深度图像,再把深度图转换成灰度图;然后把灰度图像按缩放倍率缩放,并在首尾加多个空行扩展;
步骤(4),统计直方图及归一化操作:对灰度图进行直方图统计和归一化处理,然后查找直方图值连续段特征,以获取兴趣层灰度阈值及相应的兴趣层高度阈值;
步骤(5),图像兴趣层阈值化分割及处理:用兴趣层灰度阈值对步骤(3)处理后的灰度图进行阈值化分割,保留灰度值在兴趣层灰度阈值上下限范围内的层作为兴趣层并生成兴趣层图像;然后对兴趣层图像依次进行图像形体学操作、滤波及二值化处理;
步骤(6),兴趣层边缘检测和轮廓查找:对经步骤(5)处理的兴趣层图像进行边缘检测,然后进行轮廓查找;然后计算各轮廓长度和面积,并分别按轮廓长度和面积以及轮廓面积长度比进行过滤,留下的轮廓按长度从大到小排序并存储轮廓长度及对应轮廓编号到数组,之后判断有效闭合轮廓数目;
步骤(7),按轮廓矩和Hu矩匹配轮廓形状:计算有效闭合轮廓的轮廓矩,再用轮廓矩计算Hu矩,然后用Hu矩和预存的被吊物轮廓形状样本的Hu矩进行形状匹配及过滤,过滤掉非兴趣形状轮廓,之后整理轮廓长度和编号数组,计算图像中兴趣层当前堆放被吊物的数目;
步骤(8),被吊物顶点的确定:获取各有效矩形轮廓最小矩形外框的四个顶点坐标;用圆形逼近法查找轮廓最小矩形外框四个顶点对应轮廓上距离最近的点;将轮廓上的这四个最近点坐标转换到高度表对应的坐标;在高度表这四个坐标点邻域内先近后远地查找高度值满足兴趣层高度阈值的点作为被吊物顶点;
步骤(9),目标轮廓的选定及处理:根据兴趣轮廓几何特征、在图像中的相对位置和对应高度表中顶点有效值选定目标轮廓;然后计算目标轮廓对应高度表四个顶点对应原始点云的三维坐标(x,y,z)值;再用被吊物的四个顶点三维坐标计算出被吊物长宽高、中点坐标和放置角度;
步骤(10),激光扫描角度和云台旋转角度修正系数的计算:被吊物的四个顶点邻域内各选20个点计算出高度均值,用四个顶点邻域高度均值在高度方向与激光扫描方向或与云台旋转方向构建直角三角形,用高度差和顶点间距求反正切计算出新的激光扫描和云台旋转方向的动态角度修正系数;
步骤(11),堆垛状态判断及吊取堆放位置坐标和角度计算:按大、小角度堆垛扫描类型、堆垛中点绝对坐标(X,Y,Z)、当前堆放位置相对坐标(x,y,z)和被吊物长宽高判定堆垛状态,并计算修正被吊物吊取点和堆放点位置坐标及放置角度;
步骤(12),下次扫描点的行车位置坐标计算:根据大、小角度堆垛扫描、堆垛状态和当前堆放位置计算修正下次扫描点的行车位置坐标;
步骤(13),被吊物位置及扫描点坐标输出:将计算得到的被吊物吊取点和堆放点及下次扫描点的行车位置坐标通过网络传输给PLC,从而控制行车行驶到扫描点、吊取点和堆放点。
进一步,优选的是,步骤(1)中,配置的参数包括当前堆垛中点坐标、打包区小角度扫描点坐标、被吊物堆码间距、扫描类型、激光扫描角度修正系数、云台旋转角度修正系数、离群点过滤邻域半径、离群点过滤邻域点数阈值、图像行列缩放倍率、深度图转灰度图倍率、兴趣层高度阈值、直方图兴趣层灰度占比阈值、直方图阈值化下限、轮廓长度阈值、轮廓面积阈值、高度表有效顶点查找邻域半径,以及扫描类型所对应的高度表行列总数、超斜和跳变高度误差和滤波间距。
进一步,优选的是,步骤(2)中,离群点过滤的具体方法为:
根据参数配置中的离群点过滤邻域半径r,遍历高度表,计算点(m,n)与其邻域半径范围[(m-r)~(m+r),(n-r)~(n+r)]内的各近邻点高度差的绝对值小于超斜和跳变高度误差的近邻点数,若某点的近邻点数小于离群点过滤邻域点数阈值则认为是离群点,并在高度表中把该离群点删除掉。
进一步,优选的是,步骤(4)的具体方法为:
对灰度图进行直方图统计和归一化处理,保留灰度值点数占比大于直方图阈值化下限的值,小于的清零;
然后查找灰度值点数占比大于直方图阈值化下限的连续段,记录各段灰度值点数占比连续数目和不连续数目、段中灰度值点数占比最大值和最小值、段的起始值和结尾值;
再通过段灰度值点数占比最大值和直方图兴趣层灰度占比阈值比较,筛选出有效的段;有效段筛选的具体方法为:对于打包区和堆垛第一层,有效段取灰度值点数占比最大的段;对于堆垛第二层及以上,则把所有段按灰度值点数占比最大值排序,保留灰度值点数占比最大值大于直方图兴趣层灰度占比阈值的段作为有效段;
最后选择有效段中起始值和结尾值最小的段作为兴趣段,把兴趣段的结尾值和起始值稍微外扩一点范围后作为兴趣层灰度阈值上下限,并除以深度图转灰度图倍率求出对应高度表的兴趣层高度阈值。
进一步,优选的是,步骤(6)的具体方法为:
对经步骤(5)处理的兴趣层图像进行Canny边缘检测,然后进行轮廓查找;
计算各轮廓长度和面积,过滤掉轮廓长度小于轮廓长度阈值且轮廓面积小于轮廓面积阈值及轮廓面积长度比小于二者阈值比的轮廓;对于留下的轮廓,把轮廓长度值存放到轮廓长度数组中,轮廓编号按对应的顺序存放到轮廓编号数组中;
接着轮廓长度数组按轮廓长度排序,同时按对应顺序更新轮廓编号数组;,再统计有效闭合轮廓数目。
进一步,优选的是,下一次进行被吊物检测时,对于大、小角度扫描堆垛区时,采用步骤(10)计算的激光扫描或云台旋转动态角度修正系数作为修正堆垛上表面与激光扫描或云台旋转方向的角度系数;对于小角度扫描打包区;采用步骤(10)计算的激光扫描动态角度修正系数作为动态修正激光扫描方向的角度系数,云台旋转仍采用手动修正系数;
步骤(11)中,堆垛状态包括堆空、堆满、堆未满但层空、堆未满但层满和堆未满且层未满5种状态。
进一步,优选的是,还包括如下步骤:当选定有效的闭合矩形兴趣轮廓后,把兴趣层矩形轮廓及最小矩形外框、最小矩形外框顶点所对应兴趣轮廓的四个顶点标记到原始灰度图中存储和显示。
进一步,优选的是,还包括如下步骤:放置角度用灰度图目标轮廓的长边点集转换回被吊物三维长边xyz坐标点集,再由这组长边三维坐标点集在(x,y)二维平面内拟合直线获得放置角度。
本发明同时提供一种激光点云转深度图像的被吊物检测装置,包括嵌入式控制模块,所述嵌入式控制模块执行所述程序时实现如上述激光点云转深度图像的被吊物检测方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如上述激光点云转深度图像的被吊物检测方法的步骤。
步骤(1)中,激光雷达安装好后,激光扫描角度修正系数初值根据激光扫描方向与堆垛区和打包区地平面的水平夹角标定,例如,-0.700°;云台旋转角度修正系数初值根据云台旋转方向与堆垛区和打包区地平面的水平夹角标定,例如,-0.400°
本发明中,行车启动时默认为大角度扫描堆垛区,后续根据流程自动切换扫描类型。
本发明中,灰度直方图纵坐标为灰度值点数占比,横坐标为灰度值0~255,一个段中相连两个灰度值(横坐标)的点数占比(纵坐标)都大于直方图阈值化下限算连续,连续段判段条件:(1)段中连续数目为1~3个,段中及段尾有1个以上不连续数目则认为该段结束;(2)段中有连续数目4个,段中及段尾有2个以上不连续数目则认为该段结束;(3)段中连续数目有5个,段中及段尾有3个以上不连续数目则认为该段结束;(4)段中连续数目有6个以上,段中及段尾有5个以上不连续数目则认为该段结束。
本发明中,灰度值点数占比——对应高度表中某一层高度的点数在高度表总点数中的占比。
本发明中,选择段起始值和结尾值最小的段作为兴趣段,即对应打包区或堆垛的最高层。
本发明中,把兴趣段的结尾值和起始值稍微外扩一点范围,即段起始值减1,段结尾值加1,即把该段对应的高度层对应灰度值上下限放宽一点。
本发明中,被吊物轮廓形状样本,如棒材捆用该激光点云转深度图像方法处理得到的矩形轮廓形状样本,被吊物轮廓形状可以是矩形、圆形和椭圆形。本发明是步骤(6)按轮廓长度和面积、轮廓面积长度比过滤排序后,再匹配被吊物轮廓形状样本(如棒材捆为矩形),不匹配的轮廓从数组中删除,数组删除项后续项前移再排序。
本发明步骤(10)中,顶点的邻域范围[row0~row4,column0~column4]内含顶点(row0,column0,height0)依次选择20个点,去掉除顶点外的高度最大值和高度最小值点后的18个点求平均高度值,其中所选的点要优先包含[row0~row3,column0~column3]范围内的点。其中,(row0,column0,height0)表示图像中被吊物轮廓顶点坐标,即(顶点行坐标,顶点列坐标,该顶点所对应三维坐标的高度值);[row0~row4,column0~column4]表示顶点坐标所在行及其相邻的四行与顶点所在列及其相邻的四列所组成的近邻点区域;[row0~row3,column0~column3]表示顶点所在行及其相邻的三行与顶点所在列及其相邻的三列所组成的近邻点区域;所取的row0~row4行和column0~column4列都在图像中被吊物的有效轮廓区域内。
对于算修正被吊物吊取点坐标及放置角度,行车去吊取时四个电磁吸盘(即电磁吊)下表面中点移动对正被吊物吊取点坐标上方,挂四个电磁吸盘的吊梁旋转到被吊物放置角度与长型被吊物方向对正下放到被吊物上,这样才能保证电磁吸盘对准被吊物且吸吊牢靠。堆放点位置坐标和放置角度是当前堆垛要放被吊物的位置及方向,行车从打包区吊取被吊物(吊起到安全高度后电磁吊先旋转回0度)到堆垛目标堆放点位置坐标上方,电磁吊旋转到放置角度后再下降到堆放位置坐标的高度后退磁放下被吊物。
本发明中,放置角度用灰度图目标轮廓的长边点集转换回被吊物三维长边xyz坐标点集,再由这组长边三维坐标点集在(x,y)二维平面内拟合直线获得放置角度,相比用四个被吊物三维顶点构成直角三角形求反正切角方法和用灰度图目标轮廓拟合椭圆边框取轴向角方法获得的放置角度鲁棒性好、误差小。
本申请所述的一种激光点云转深度图像的被吊物检测方法及装置基于无人驾驶行车系统的嵌入式控制模块硬件和程序实现。所述嵌入式控制模块通过网络控制三维激光雷达扫描系统,小角度扫描打包区棒材、型材捆或高线卷,大、小角度扫描堆垛区,采集原始点云,通过所述的位置检测方法及程序计算出被吊物吊取位置、堆垛堆放位置和放置角度,以及扫描点对应的行车位置坐标,并网络传送给PLC控制行车自动吊装。
所述三维激光雷达扫描系统(简称激光雷达)包括云台和二维激光扫描仪,安装在行车小车上,云台旋转方向与行车大梁垂直,激光扫描方向与行车大梁平行(可根据场景需要调整方向),以激光雷达作为参考xyz相对坐标系原点,以行车大、小车和起升机构作为参考XYZ绝对坐标系,XYZ坐标零点为大车右限位、小车后限位和起升机构上限位时电磁吊(或吊钩)底面中点。
本申请所述装置通过扫描检测出型材、棒材捆和高线卷(又称盘圆或盘卷)的吊取点、堆放点和扫描点位置坐标,通过网络传输给PLC控制行车自动吊装。
所述嵌入式控制模块采用更高性能的ARM Cortex-A53四核芯片及更大容量的内、外存储器作为运算控制和存储的核心单元,通过千兆网卡实现网络通信;带Ubuntu操作系统,可运行OpenCV开源视觉库,通过网络或USB接口与上位机进行交叉编译及调试;其电源模块为AC220V输入,DC12V/2A输出。
本发明选用更大内存和更强计算能力的嵌入式控制模块,大角度扫描堆垛区的点云采样、处理和显示可以覆盖堆垛全景,初次扫描堆垛状态判断会更准确。增加堆垛上表面与激光扫描和云台旋转方向的动态角度修正系数有利于克服堆垛形变对识别准确率带来的影响。
本发明在前期工作的基础上,开发一种激光点云转深度图像的被吊物检测方法,以达成有效提高棒材兴趣高度层类矩形轮廓四个顶点查找的准确率,进而提高棒材宽度及位置检测的准确率,被吊物放置角度允许更大且角度计算值更准。另外,使用OpenCV库,用边缘检测Canny和轮廓查找算法(算法底层边缘检测含一、二阶导数算子)检测被吊物边界跳变沿相对于前期算法按行或列相邻点高度值比较匹配鲁棒性更好,用该图像法也使除矩形外的圆形、椭圆等形状的物体检测也变得可行。此外,本发明中深度图像转灰度图像检测被吊物的步骤也适用于双目或深度相机所采集的深度图像处理。
本发明与现有技术相比,其有益效果为:
(1)本发明提供一种激光点云转深度图像的被吊物检测方法及装置,实用性强,设备成本低,易于实施;
(2)点云数据转成图像上传显示,存储空间及传输数据量小,如大角度扫描300行*720列的点云文件占2.532MB,灰度图仅占225KB,观测直观,便于调试和后续运维;装置支持网络远程调试及程序加载,算法运算较快,大角度扫描的数据计算耗时低于300ms;
(3)有效提高棒材堆垛因形变造成的识别率下降问题,打包区吊取点和堆垛堆放点的第一次小角度扫描识别率由93%提高到95%,第二次扫描识别率可达98%;
(4)大角度扫描堆垛的点云全景采样处理,有利于后续从堆垛吊取装车;本发明由点云转换得到深度图像与深度相机所采集的深度图像处理过程类似,为后续采用深度相机和激光雷达多传感器融合的位置检测探路,成本较激光雷达低的深度相机地面多点安装检测利于提高行车自动运行节奏、降低设备成本。
附图说明
图1为本发明激光点云转深度图像的被吊物检测装置的框架示意图;
图2为本发明激光点云转深度图像的被吊物检测方法流程图;
图3为小角度扫描打包区一组棒材加标记的原始灰度图;
图4为小角度扫描堆垛第二层两组棒材加标记的原始灰度图;
图5为小角度扫描堆垛第一层一组棒材加标记的原始灰度图;
图6为大角度扫描堆垛区第二层两组棒材加标记的原始灰度图;
图7为大角度扫描堆垛区第一层三组棒材加标记的原始灰度图
具体实施方式
下面结合实施例对本发明作进一步的详细描述。
本领域技术人员将会理解,下列实施例仅用于说明本发明,而不应视为限定本发明的范围。实施例中未注明具体技术或条件者,按照本领域内的文献所描述的技术或条件或者按照产品说明书进行。所用材料或设备未注明生产厂商者,均为可以通过购买获得的常规产品。
一种激光点云转深度图像的被吊物检测方法,包括如下步骤:
步骤(1),原始点云及行车位置的获取及参数配置:大角度扫描堆垛区、小角度扫描堆垛区和小角度扫描打包区,采集点云数据及行车位置,之后按这三种扫描类型进行参数配置,并动态更新激光扫描角度和云台旋转角度修正系数;
步骤(2),原始点云转换成高度表及数据过滤:将步骤(1)获得的点云数据转换到高度表,同时过滤掉超兴趣范围域、超斜域和跳变域的数据,之后,对高度表中的数据进行离群点过滤;
步骤(3),高度表转换成灰度图并缩放扩展:将高度表转换成原始深度图像,再把深度图转换成灰度图;然后把灰度图像按缩放倍率缩放,并在首尾加多个空行扩展;
步骤(4),统计直方图及归一化操作:对灰度图进行直方图统计和归一化处理,然后查找直方图值连续段特征,以获取兴趣层灰度阈值及相应的兴趣层高度阈值;
步骤(5),图像兴趣层阈值化分割及处理:用兴趣层灰度阈值对步骤(3)处理后的灰度图进行阈值化分割,保留灰度值在兴趣层灰度阈值上下限范围内的层作为兴趣层并生成兴趣层图像;然后对兴趣层图像依次进行图像形体学操作、滤波及二值化处理;
步骤(6),兴趣层边缘检测和轮廓查找:对经步骤(5)处理的兴趣层图像进行边缘检测,然后进行轮廓查找;然后计算各轮廓长度和面积,并分别按轮廓长度和面积以及轮廓面积长度比进行过滤,留下的轮廓按长度从大到小排序并存储轮廓长度及对应轮廓编号到数组,之后判断有效闭合轮廓数目;
步骤(7),按轮廓矩和Hu矩匹配轮廓形状:计算有效闭合轮廓的轮廓矩,再用轮廓矩计算Hu矩,然后用Hu矩和预存的被吊物轮廓形状样本的Hu矩进行形状匹配及过滤,过滤掉非兴趣形状轮廓,之后整理轮廓长度和编号数组,计算图像中兴趣层当前堆放被吊物的数目;
步骤(8),被吊物顶点的确定:获取各有效矩形轮廓最小矩形外框的四个顶点坐标;用圆形逼近法查找轮廓最小矩形外框四个顶点对应轮廓上距离最近的点;将轮廓上的这四个最近点坐标转换到高度表对应的坐标;在高度表这四个坐标点邻域内先近后远地查找高度值满足兴趣层高度阈值的点作为被吊物顶点;
步骤(9),目标轮廓的选定及处理:根据兴趣轮廓几何特征、在图像中的相对位置和对应高度表中顶点有效值选定目标轮廓;然后计算目标轮廓对应高度表四个顶点对应原始点云的三维坐标(x,y,z)值;再用被吊物的四个顶点三维坐标计算出被吊物长宽高、中点坐标和放置角度;
步骤(10),激光扫描角度和云台旋转角度修正系数的计算:被吊物的四个顶点邻域内各选20个点计算出高度均值,用四个顶点邻域高度均值在高度方向与激光扫描方向或与云台旋转方向构建直角三角形,用高度差和顶点间距求反正切计算出新的激光扫描和云台旋转方向的动态角度修正系数;
步骤(11),堆垛状态判断及吊取堆放位置坐标和角度计算:按大、小角度堆垛扫描类型、堆垛中点绝对坐标(X,Y,Z)、当前堆放位置相对坐标(x,y,z)和被吊物长宽高判定堆垛状态,并计算修正被吊物吊取点和堆放点位置坐标及放置角度;
步骤(12),下次扫描点的行车位置坐标计算:根据大、小角度堆垛扫描、堆垛状态和当前堆放位置计算修正下次扫描点的行车位置坐标;
步骤(13),被吊物位置及扫描点坐标输出:将计算得到的被吊物吊取点和堆放点及下次扫描点的行车位置坐标通过网络传输给PLC,从而控制行车行驶到扫描点、吊取点和堆放点。
具体地,步骤(1)中,配置的参数包括当前堆垛中点坐标、打包区小角度扫描点坐标、被吊物堆码间距、扫描类型、激光扫描角度修正系数、云台旋转角度修正系数、离群点过滤邻域半径、离群点过滤邻域点数阈值、图像行列缩放倍率、深度图转灰度图倍率、兴趣层高度阈值、直方图兴趣层灰度占比阈值、直方图阈值化下限、轮廓长度阈值、轮廓面积阈值、高度表有效顶点查找邻域半径,以及扫描类型所对应的高度表行列总数、超斜和跳变高度误差和滤波间距。
具体地,步骤(2)中,离群点过滤的具体方法为:
根据参数配置中的离群点过滤邻域半径r,遍历高度表,计算点(m,n)与其邻域半径范围[(m-r)~(m+r),(n-r)~(n+r)]内的各近邻点高度差的绝对值小于超斜和跳变高度误差的近邻点数,若某点的近邻点数小于离群点过滤邻域点数阈值则认为是离群点,并在高度表中把该离群点删除掉。
具体地,步骤(4)的具体方法为:
对灰度图进行直方图统计和归一化处理,保留灰度值点数占比大于直方图阈值化下限的值,小于的清零;
然后查找灰度值点数占比大于直方图阈值化下限的连续段,记录各段灰度值点数占比连续数目和不连续数目、段中灰度值点数占比最大值和最小值、段的起始值和结尾值;
再通过段灰度值点数占比最大值和直方图兴趣层灰度占比阈值比较,筛选出有效的段;有效段筛选的具体方法为:对于打包区和堆垛第一层,有效段取灰度值点数占比最大的段;对于堆垛第二层及以上,则把所有段按灰度值点数占比最大值排序,保留灰度值点数占比最大值大于直方图兴趣层灰度占比阈值的段作为有效段;
最后选择有效段中起始值和结尾值最小的段作为兴趣段,把兴趣段的结尾值和起始值稍微外扩一点范围后作为兴趣层灰度阈值上下限,并除以深度图转灰度图倍率求出对应高度表的兴趣层高度阈值。
具体地,步骤(6)的具体方法为:
对经步骤(5)处理的兴趣层图像进行Canny边缘检测,然后进行轮廓查找;
计算各轮廓长度和面积,过滤掉轮廓长度小于轮廓长度阈值且轮廓面积小于轮廓面积阈值及轮廓面积长度比小于二者阈值比的轮廓;对于留下的轮廓,把轮廓长度值存放到轮廓长度数组中,轮廓编号按对应的顺序存放到轮廓编号数组中;
接着轮廓长度数组按轮廓长度排序,同时按对应顺序更新轮廓编号数组;,再统计有效闭合轮廓数目。
具体地,下一次进行被吊物检测时,对于大、小角度扫描堆垛区时,采用步骤(10)计算的激光扫描或云台旋转动态角度修正系数作为修正堆垛上表面与激光扫描或云台旋转方向的角度系数;对于小角度扫描打包区;采用步骤(10)计算的激光扫描动态角度修正系数作为动态修正激光扫描方向的角度系数,云台旋转仍采用手动修正系数;
步骤(11)中,堆垛状态包括堆空、堆满、堆未满但层空、堆未满但层满和堆未满且层未满5种状态。
具体地,还包括如下步骤:当选定有效的闭合矩形兴趣轮廓后,把兴趣层矩形轮廓及最小矩形外框、最小矩形外框顶点所对应兴趣轮廓的四个顶点标记到原始灰度图中存储和显示。
具体地,还包括如下步骤:放置角度用灰度图目标轮廓的长边点集转换回被吊物三维长边xyz坐标点集,再由这组长边三维坐标点集在(x,y)二维平面内拟合直线获得放置角度。
一种激光点云转深度图像的被吊物检测装置,包括嵌入式控制模块,所述嵌入式控制模块执行所述程序时实现上述激光点云转深度图像的被吊物检测方法的步骤。
一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述激光点云转深度图像的被吊物检测方法的步骤。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
应用实例 如图1所示,在行车的小车上安装三维激光雷达扫描系统和嵌入式控制模块,行车自带PLC模块,三者通过行车上的网络交换机有线连接,行车上的网络交换机与地面网络交换机通过无线网络模块连接,地面设备(如HMI)可通过连接地面网络交换机和行车上的设备进行通信。
一种激光点云转深度图像的被吊物检测方法,具体实施如下:
原始点云及行车位置输入:根据行车所到达扫描点类型(堆垛区大角度扫描点、堆垛区小角度扫描点和打包区小角度扫描点),通过网络指令控制三维激光雷达扫描系统进行大角度扫描堆垛区、小角度扫描堆垛或小角度扫描打包区,采集点云数据采样存储到大、小角度扫描所对应的原始点云数据表中(大角度300行×720列,小角度50行×720列)。每个云台旋转角度分辨率采集一组激光扫描仪的点云数据,作为表的一行存储;即表中的行表征云台旋转角度维度,表中的列表征激光扫描角度维度,表中数值表征激光点测量距离维度。行车位置输入取行车所在扫描点的绝对位置坐标并记录,为后续模块计算下一次堆垛区小角度扫描点作准备。
参数配置:根据大角度扫描堆垛区、小角度扫描堆垛区和小角度扫描打包区配置各函数模块的参数;例如当前堆垛中点坐标,打包区小角度扫描点坐标(还有堆垛区大角度扫描点由堆垛中点推算,堆垛区(下一次)小角度扫描点为动态计算),被吊物堆码间距,扫描类型(包括大角度扫描堆垛区、小角度扫描堆垛区和小角度扫描打包区),激光扫描和云台旋转角度修正系数,扫描类型对应的高度表行列总数、超斜和跳变高度误差和滤波间距、离群点过滤邻域半径和点数阈值、图像行列缩放倍率、深度图转灰度图倍率、兴趣层高度阈值、直方图兴趣层灰度占比阈值、直方图阈值化下限、轮廓长度和面积阈值、高度表有效顶点查找邻域半径。
超斜和跳变:在高度表中,按行(或列)遍历分析相邻两点或滤波间距内一段点集,若相邻点高度值之差大于超斜和跳变高度误差判定为跳变,若滤波间距内段的首、尾点及段中点最大、最小高度值之差大于超斜和跳变高度误差判定为超斜;
并动态更新激光扫描角度和云台旋转角度修正系数;初次为手动修正默认值,后续为上次计算值;激光雷达安装好后,激光扫描角度修正系数初值根据激光扫描方向与堆垛区和打包区地平面的水平夹角标定,例如-0.700°;云台旋转角度修正系数初值根据云台旋转方向与堆垛区和打包区地平面的水平夹角标定,例如-0.400°。
原始点云转换成高度表:本发明装置内分配两块内存空间来存放与大小角度扫描对应的高度表,使高度表与原始数据表一一映射,原始数据表中的每个点做xyz坐标轴投影计算,通过原始距离值、激光扫描角度α、云台旋转角度β、x、y、z轴坐标值进行阈值滤波,过滤掉不匹配的点;把留下的点z值(即高度——激光雷达作为xyz相对坐标系原点,也可以根据需要选x或y值)存储到高度表行列映射的位置上。然后按行遍历高度表过滤掉行中高度超斜或跳变的点(在高度表中按行(或列)遍历分析相邻两点或滤波间距内的一段点集,若相邻点高度值之差大于超斜和跳变高度误差判定为跳变,若滤波间距内段的首、尾点及段中点最大、最小高度值之差大于超斜和跳变高度误差判定为超斜。其中,小角度扫描堆垛区和打包区时,若高度表中行对应棒材捆长向时按行查找,高度误差取39mm,滤波间距取18;按列查找(对应棒材捆宽向),高度误差取35mm,滤波间距取6),保留高度误差范围内连续相等或渐变小的点的高度值。因计算量大,将高度表转换按行均分为四组分四个线程进行同步(近似)计算。
高度表离群点过滤:在上一步生成的高度表中遍历,计算点(m,n)与其离群点过滤邻域半径r范围[(m-r)~(m+r),(n-r)~(n+r)]内的各近邻点高度差的绝对值小于超斜和跳变高度误差的近邻点数,若某点的近邻点数小于离群点过滤邻域点数阈值则认为是离群点,并在高度表中把该点过滤掉,即高度值清零。为缩短运算时间,将高度表离群点过滤按行均分四组分四个线程进行同步(近似)计算。
高度表转换成灰度图:把上一步所生成的大小角度扫描所对应高度表值按深度图转灰度图倍率从16位转换为8位数据,再用cv::Mat构建灰度图像。
灰度图缩放扩展:按大、小角度扫描的图像行列缩放倍率(分大、小角度扫描,即参数配置中的大小角度对应图像行列缩放倍率)放大上一步生成的灰度图,然后在灰度图首尾各加10个空行扩展,以避免小角度扫描堆垛时图像占满首尾行不利于闭合轮廓查找(见图4),同时图像也美观。
图4为小角度扫描堆垛的纵向兴趣层,激光雷达对着堆垛中点扫描转换所得原始灰度图。图中两块横向较宽的白色区域表示堆垛第一层横向放置的两组(每组2捆)棒材(棒材长度显示完整,宽度不完整),两条纵向较窄的白色区域表示堆垛第二层纵向放置的两组棒材(宽度显示完整,纵向不全,图像看着横向宽纵向窄是因为小角度扫描的高度表为50行*720列,为了图像处理方便和显示美观,图像行列缩放倍率的行倍率为8,列倍率为2);标记的两个灰白色矩形框为被吊物兴趣层轮廓的最小矩形框,标记的两组灰黑色0~3点为被吊物兴趣层轮廓的4个顶点,目标轮廓选图中纵向靠左的一组。
统计直方图分析兴趣高度层阈值:通过对灰度图进行直方图统计和归一化处理,保留灰度值点数占比大于直方图阈值化下限(例如参数取1.0)的值,小于的清零。
然后查找灰度值点数占比大于直方图阈值化下限的连续段,记录各段灰度值点数占比连续数目和不连续数目(灰度直方图纵坐标为灰度值点数占比,横坐标为灰度值0~255,一个段中相连两个灰度值(横坐标)的点数占比(纵坐标)都大于直方图阈值化下限算连续,连续段判段条件:(1)段中连续数目为1~3个,段中及段尾有1个以上不连续数目则认为该段结束;(2)段中有连续数目4个,段中及段尾有2个以上不连续数目则认为该段结束;(3)段中连续数目有5个,段中及段尾有3个以上不连续数目则认为该段结束;(4)段中连续数目有6个以上,段中及段尾有5个以上不连续数目则认为该段结束)、段中灰度值点数占比最大值和最小值(灰度值点数占比——对应高度表中某一层高度的点数在高度表总点数中的占比)、段的起始值和结尾值。
接着通过段灰度值点数占比最大值和直方图兴趣层灰度占比阈值比较,筛选出有效的段:打包区和堆垛第一层取灰度值点数占比最大的段即可,堆垛第二层及以上堆垛把各连续段灰度值点数占比最大值排序,保留灰度值点数占比最大值大于直方图兴趣层灰度占比阈值的段,在此基础上选择段起始值和结尾值最小的段作为兴趣段(即对应打包区或堆垛最高层——高度值较小的),把兴趣段的结尾值和起始值稍微外扩一点范围(段起始值减1,段结尾值加1,即把该段对应的高度层对应灰度值上下限放宽一点)后作为兴趣层灰度阈值上下限,并除以深度图转灰度图倍率求出对应高度表的兴趣层高度阈值。
图像兴趣层阈值化分割及处理:用兴趣层灰度阈值对灰度图进行阈值化分割,保留灰度值在兴趣层灰度阈值上下限范围内的层作为兴趣层并生成兴趣层图像。然后对兴趣层图像进行图像形体学操作(例如开操作、闭操作、膨胀或腐蚀等,一次或多次),选择合适的核尺寸以保证操作后被吊物对应的外围轮廓总体不外扩不内缩(对于核尺寸,闭操作核尺寸选Size(11,11),开操作核尺寸选Size(3,3);开、闭操作含膨胀和腐蚀操作,核尺寸也一致),但又可填充孔洞,消除突起;再通过滤波(如中值、均值或高斯滤波)过滤掉干扰点,降低像素点间的灰度差值后进行二值化处理。
兴趣层边缘检测和轮廓查找:兴趣层图像进行Canny边缘检测,选择合适的低阈值和高阈值(例如80和160)和核尺寸(例如3),生成边缘图像。在边缘图像上进行轮廓查找,输入边缘图像,轮廓提取模式参数设为只检索最外层轮廓,轮廓表征方式参数设为压缩水平、垂直和斜的部分只保留最后一个点,输出轮廓点向量和轮廓树结构向量。
按轮廓长度和面积排序筛选轮廓:计算上一步生成各轮廓的长度和包围面积,过滤掉轮廓长度小于轮廓长度阈值(例如500)且轮廓面积小于轮廓面积阈值(例如10000)及轮廓面积和长度比小于二者阈值比的轮廓;留下的轮廓,把轮廓长度值存放到轮廓长度数组中,轮廓编号按对应的顺序存放到轮廓编号数组中;然后轮廓长度数组按轮廓长度排序,同时按对应顺序更新轮廓编号数组;再统计有效闭合轮廓数目。
按轮廓矩和Hu矩匹配轮廓形状:根据上一步得到的轮廓长度数组、轮廓编号数组和有效闭合轮廓数目计算各轮廓的轮廓矩,再用轮廓矩计算Hu矩,然后用Hu矩和被吊物轮廓样本(如棒材捆用该激光点云转深度图像方法处理得到的灰度图像的矩形轮廓样本)的Hu矩进行形状(如矩形、圆形或椭圆)匹配,过滤掉非矩形轮廓(棒材捆为矩形轮廓),重新排序过滤后的轮廓长度数组和轮廓编号数组,仅保留与实际堆码捆数相符的数目(例如棒材堆垛每层堆放4组棒材捆)。
有效矩形轮廓最小矩形框四个顶点查找:通过查找有效矩形轮廓的最小矩形框,获得最小矩形框的四个顶点坐标。同时,通过对有效矩形轮廓进行最小矩形框或椭圆边框查找初步获得矩形被吊物的放置角度,经验证用椭圆边框获得的被吊物放置角度比用最小矩形框获得的稳定性要好。同理,对有效轮廓进行最小包围圆查找可用于处理圆形被吊物轮廓获得圆心坐标和半径。对有效轮廓进行椭圆边框查找可用于处理椭圆形被吊物轮廓获得椭圆圆心坐标和长轴向角度。
圆形逼近最小矩形框四个顶点在轮廓上的最近点:最小矩形框的四个顶点不一定在轮廓上,因此用四个顶点作为圆心,不断增大圆的半径逼近轮廓,查找圆和轮廓上最先相交点(距离最近点)作为矩形轮廓的顶点。
矩形轮廓的四个顶点坐标转换到高度表对应的坐标点:矩形轮廓四个顶点的行坐标先减10(减操作后值≥0),然后行列坐标按图像缩放倍率缩小为高度表对应的行列坐标。
四个高度表坐标点邻域内查找满足高度域值的顶点:矩形轮廓的四个顶点行列坐标转换到高度表坐标后,这四个坐标点在高度表上的高度值不一定满足兴趣层高度阈值,所以需要在这四个坐标点邻域内,先近后远地查找最先满足兴趣层高度阈值范围的点,作为被吊物在高度表中的顶点;若查找时邻域半径超出高度表有效顶点查找邻域半径(例如3)后还未找到匹配的点则认为顶点查找失败;顶点查到时的邻域半径越大后续计算得到被吊物的长宽及坐标的误差也越大。若顶点查找失败,这一步该顶点坐标不更新,只做失败标记和提示,后续步骤“计算目标轮廓对应高度表四个顶点对应原始点云的三维坐标(x,y,z)”时该点不计算,若四个顶点中有一个顶点标记失败,可用其他三个顶点计算三维坐标进而获得被吊物中点坐标和长宽高,若有两个及以上顶点标记失败,则直接认为被吊物识别检测失败,重新开启激光雷达扫描再计算,若被吊物多次扫描计算失败则报修。
按有效轮廓的几何特征、四个顶点和位置选定目标轮廓:对于打包区和堆垛兴趣层为横向(平行于激光扫描方向)的小角度扫描,因为扫描区域内只存在一组被吊物(如一组棒材),所以直接选定为目标轮廓,但对于大角度扫描堆垛或堆垛层为纵向(垂直于激光扫描方向)的小角度扫描,兴趣高度层可能存在多组被吊物轮廓,所以要根据轮廓几何特征和四个顶点的位置,按堆码顺序选择确定目标轮廓,并给出目标轮廓对应高度表的四个顶点坐标。
其中,按堆码顺序选择确定目标轮廓的示例性说明为:如棒材堆垛堆码顺序,第一层为横向,从远离大车X坐标零位一侧开始堆,若已堆2组,则选灰度图上四个顶点行坐标较大(对应行车坐标X较小)的轮廓作为目标轮廓计算出堆放位置,再用该位置计算出当前要去堆放位置;第2层为纵向,从靠行车小车Y坐标零位一侧开始堆,若已堆3组,则选灰度图上四个顶点列坐标较小的(对应行车坐标Y坐标较大)的轮廓作为目标轮廓。
计算目标轮廓对应高度表四个顶点对应原始点云的三维坐标(x,y,z):获得目标轮廓对应高度表的四个顶点坐标后,查找原始数据表对应值及行列坐标计算点对应云台旋转角度β,激光扫描角度α,进而计算出该点在相对(激光雷达)坐标系上的三维坐标(x,y,z)。
用四个顶点三维坐标计算被吊物长宽高和中点坐标:获得了被吊物四个顶点相对(激光雷达)坐标系的三维坐标值后,用首(图3中标1点)尾(图3中标3点)顶点和一个非首尾顶点(如图3中标0点)共三个点依据直角三角形勾股定理计算出被吊物长度1和宽度1(也可计算被吊物放置角度),再用首尾顶点和另一个非首尾顶点(如附图3中标2点)依据直角三角形勾股定理计算出被吊物长度2和宽度2,用两个长宽进行比较验证或取平均值。被吊物中点x坐标值取四个顶点x值相加除以4算得,被吊物中点y坐标值取四个顶点y值相加平均算得,被吊物中点z坐标值取四个顶点z值的平均值,被吊物高度取地面高度减去被吊物z值算得。被吊物中点坐标相对电磁吊(吊钩)底面中点坐标需要用相对(激光雷达)坐标系的坐标进行平移变换得到。
图3中,白色区域表征小角度扫描打包区,横向放置的一组(2捆)棒材顶面各点高度对应的灰度值;标记的灰白色矩形框为被吊物兴趣层轮廓的最小矩形框,标记的灰黑色0~3点为被吊物兴趣层轮廓的4个顶点;最小矩形框内中部标记的小黑点为轮廓中点,用该轮廓中点转换到三维坐标点作为被吊物中点与用轮廓四个顶点转换三维坐标点计算得到的被吊物中点位置不同,且轮廓四个顶点转换所得被吊物中点不受图像畸变影响,位置更准。
被吊物放置角度获取:小角度扫描打包区检测的被吊物放置角度用于旋转电磁吊对正被吊物长边方向(如棒材长边),精度要求高。大、小角度扫描堆垛区的被吊物放置角度主要用于判断堆垛当前堆放层是横向还是纵向,精度要求低。被吊物放置角度获取方法:
方法一、通过前文“有效矩形轮廓最小矩形框四个顶点查找”步骤中所述的用轮廓的椭圆边框查找获得长轴向角度减90度作为被吊物放置角度。该方法因灰度图轮廓有畸变,存在偏差。
方法二、用被吊物轮廓四个有效顶点三维坐标计算两条长边顶点构成的直角三角形的两直角边的商的反正切角的平均值获得,只找出被吊物三个有效顶点时由长边所带两个有效顶点构成直角三角形求反正切角计算获得。
方法三、查找出目标轮廓的长边点并转换回被吊物长边点的三维xyz坐标,再由这组长边三维坐标点在(x,y)二维平面(z等高)内拟合直线获得放置角度。具体实现过程:按顺序遍历目标轮廓点向量,查找轮廓的四个顶点出现的顺序,统计轮廓起始点到首先出现顶点间的段及连续两个顶点间的段的轮廓点数,并按出现顺序存储{顶点坐标、顺序编号、段的轮廓点数}到结构体数组1[4]中;再按四个顶点段的轮廓点数从大到小排序并按顺序存储{顶点坐标、顺序编号、段的轮廓点数}到结构体数组2[4];结构体数组1的下标i从第二个遍历到第四个,查找“结构体数组1[i].顺序编号”与“结构体数组2[0].顺序编号”匹配的下标值i,获得“结构体数组1[i].顶点坐标”及“结构体数组1[i-1].顶点坐标”之间的段的轮廓点集(即轮廓长边的点集),用这组轮廓长边点集转换成被吊物三维坐标点集{(x,y,z)},用被吊物三维坐标点集在xy坐标平面(点集中z等高)拟合直线算得被吊物长边的角度作为被吊物放置角度。
本发明对于打包区被吊物的放置角度计算,优选方法三(精度高、稳定性好);对于堆垛各层堆码方向的判断,优选方法一(定性判断,稳定性好、易实施);方法二用来验证前二者结论的正确性,提高输出放置角度的准确率。
用四个顶点高度值计算激光扫描和云台旋转的动态角度修正系数:用四个高度表中的顶点在邻域内各取(指四个顶点对应邻域范围内各选)20个有效点的高度均值代替顶点z坐标值(顶点的邻域内范围[row0~row4,column0~column4]内含顶点(row0,column0,height0)依次选择20个,去掉除顶点外的高度最大值和高度最小值点后的18个点求平均高度值,其中所选的点要优先包含[row0~row3,column0~column3]范围内的点),用被吊物长边上两个顶点的三维坐标(x,y,z)值计算(长边与水平线和重垂线构成直角三角形)长边和水平线的夹角:如被吊物横放(平行于激光扫描方向)则等于arctan(Δz/Δy),若被吊物纵放(垂直于激光扫描方向)则等于arctan(Δz/Δx),两条长边与水平线夹角取平均值作为激光扫描或云台旋转方向的动态修正角度系数,以供下一次原始点云转换高度表和三维坐标计算时调用,该方法主要用于大、小角度扫描堆垛区时修正堆垛上表面被吊物长边方向与激光扫描或云台旋转方向的角度系数(被吊物横向堆放长边方向对着激光扫描方向,纵向堆放长边方向对着云台旋转方向)。小角度扫描打包区只存在横向放置情况,只需动态修正激光扫描方向的角度系数,云台旋转仍用默认的手动修正系数(因被吊物宽度小动态角度修正系数误差较大)。
大、小角度扫描堆垛状态判断:按大、小角度堆垛扫描类型、堆垛中点绝对坐标(X,Y,Z)、当前堆放位置相对坐标(x,y,z)和被吊物长宽高判定堆垛状态堆垛中点绝对坐标(X,Y,Z)以行车坐标系为参考坐标系,堆放位置相对坐标(x,y,z)以激光雷达坐标系为参考坐标系,堆垛状态包括堆空、堆满、堆未满(又含层空、层满和层未满)共5种状态,以及堆垛当前层堆放方向(横向和纵向)。计算时把行车扫描点绝对坐标和当前堆放位置相对坐标叠加转换为对应行车绝对坐标系的堆放位置,再和堆垛边界进行比较,进而判断层满和层未满,层满升层为层空(堆垛状态判断为层满时要升一层即变为层空,层数加1,z坐标加一层高度)。堆空判断,在大角度扫描对应高度表过滤掉地面高度层后堆垛阈值上限内识别不到兴趣高度层时判断为堆空;堆满判断,当兴趣高度层已经层满且高度值小于堆垛阈值下限判断为堆满。
大、小角度扫描的吊取堆放位置坐标和角度修正:当堆垛状态为堆空时,堆垛第一层默认设置为横向堆放,堆放坐标给定为堆垛横向第一组的位置,并按实际堆放情况修正坐标(用行车自动吊取被吊物进行5次以上堆放的位置点坐标与给定堆放点xyz坐标的平均偏差值进行修正,用以降低行车行走机构、行车位置检测和被吊物位置检测的综合偏差),堆放角度设置(即电磁吊旋转到该目标角度)为0度。当堆垛状态为层未满时,按检测识别到当前堆垛将要堆放前一捆的位置加被吊物堆放间距设置将要堆放的位置坐标,堆放角度横向设置为0度,纵向为90度,堆放坐标和角度修正按实际堆放情况加修正系数(用行车自动吊取被吊物进行5次以上堆放的位置点坐标与给定堆放点xyz坐标的平均偏差值(修正系数)进行修正,用以降低行车行走机构、行车位置检测和被吊物位置检测的综合偏差);当堆垛状态为层满时,需要升层堆放(升层后层空),堆放坐标为上一层第一组的位置,放置角度需要换向,横向设置为0度,纵向为90度,并加修正系数(横向堆放定义为0度,放置角度给0度,纵向堆放定义为90度,放置角度给90度;修正系数用行车自动吊取被吊物进行5次以上堆放看实际堆放方向和给定的放置角度的平均偏差值,用以降低行车旋转机构的旋转偏差和角度检测的综合偏差。);当堆垛状态为堆满时,行车坐标给一个固定等待位置等待,系统发出堆满的提示信息给远程操作人员。
大、小角度扫描的下一次小角度堆垛扫描点位置修正:小角度堆垛扫描点也分上述四种堆垛状态进行坐标设置和修正。
当堆垛状态为堆空时,堆垛第一层默认设置为横向堆放,下一次小角度堆垛扫描点给定为堆垛第一组堆放位置的绝对值坐标(X,Y,Z),且X坐标要减去激光雷达扫描距离(由堆垛小角度扫描角度区间的中间角和堆垛层高度计算出,下同),放置角度(即电磁吊旋转到该目标角度)为0度。当堆垛状态为层未满时,横向堆放时,按检测识别到当前堆垛将要堆放的前一捆位置加被吊物堆放间距算得的绝对值坐标,X坐标减去激光雷达扫描距离计算出下一次小角度堆垛扫描点位置,放置角度为0度;纵向堆放时,按当前堆垛中点绝对值坐标,X坐标减激光雷达扫描距离计算下一次小角度堆垛扫描点位置,放置角度为0度。当堆垛状态为层满时,升层为横向堆放,下一次小角度堆垛扫描点位置给定为堆垛第一组的位置绝对值坐标(X,Y,Z),且X坐标要减去激光雷达扫描距离,放置角度为0度;升层为纵向堆放,按当前堆垛中点绝对值坐标,X坐标减激光雷达扫描距离计算下一次小角度堆垛扫描点位置,放置角度为0度。当堆垛状态为堆满时,按当前堆垛中点绝对值坐标,X坐标减激光雷达扫描距离计算下一次小角度堆垛扫描点位置,行车坐标给一个固定等待位置等待,系统发出堆满的提示信息给远程操作人员。
兴趣层轮廓、最小矩形框和四个顶点图像显示处理:当选定有效的闭合矩形兴趣层轮廓后,把各兴趣层轮廓的最小矩形框、被吊物对应高度表在轮廓上的四个顶点坐标转换为图像坐标,在原始灰度图上标记,然后保存为图像文件,再从所述装置中读出来显示。
被吊物位置及扫描点坐标输出:大角度扫描堆垛区得到的堆垛区小角度扫描点,小角度扫描堆垛区得到的堆放位置点和下一次堆垛小角度扫描点,小角度扫描打包区得到的被吊物吊取点均由嵌入式控制模块网络传送给行车PLC。而堆垛区大角度扫描点和打包区小角度扫描点由操作人员远程HMI界面选择发出。
小角度扫描堆垛第一层一组棒材加标记的原始灰度图如5图所示,该图为小角度扫描堆垛的横向层,行车在下一次小角度扫描点时激光雷达对着堆垛将要堆放的前一组扫描转换所得。图中白色区域表征小角度扫描堆垛将要堆放前一组横向放置的棒材顶面各点高度对应的灰度值;标记的灰白色矩形框为被吊物兴趣层轮廓的最小矩形框,标记的灰黑色0~3点为被吊物兴趣层轮廓的4个顶点。
大角度扫描堆垛区第二层两组棒材加标记的原始灰度图如图6所示,该图为大角度扫描堆垛区,激光雷达对着堆垛中点扫描转换所得。图中四块横向的白色区域表示堆垛第一层横向放置的四组(每组2捆)棒材(棒材长度和宽度显示完整),两条纵向的白色区域表示堆垛第二层纵向放置的两组棒材(棒材长度和宽度显示完整,图像看着横纵相对较均衡是因为大角度扫描的高度表为300行*720列,为了图像处理方便和显示美观,图像行列缩放倍率的行倍率为3,列倍率为2);标记纵向的两个灰白色矩形框为被吊物兴趣层轮廓的最小矩形框,标记的两组灰黑色0~3点为被吊物兴趣层轮廓的4个顶点,目标轮廓选图中纵向靠左的一组。图中可看出轮廓区域存在一定的畸变(上大下小)和弯曲,可分析出:(1)通过拟合目标轮廓椭圆边框取得的吊取和堆放的放置角度存在一定畸变和偏差,但小角度扫描堆垛和打包区的角度区间较小,畸变也小,大角度扫描区间均对着堆垛中点扫描比较稳定,这三种扫描类型存在的放置角度误差值也稳定,可以通过修正消减。(2)图像轮廓四个顶点因转换回被吊物三维坐标xyz,故不受这种畸变的影响。(3)依据第(2)项的思路,放置角度用轮廓的长边点转换回被吊物长边点三维xyz坐标,再由这组长边三维坐标点在(x,y,z等高)二维平面内拟合直线获得的放置角度更精确,详见新增内容,已写成一项权利要求。
大角度扫描堆垛区第一层三组棒材加标记的原始灰度图入图7所示,该图为大角度扫描堆垛区,激光雷达对着堆垛中点扫描三组横向堆放的棒材转换所得。图中三块横向的白色区域表示堆垛第一层横向放置的三组棒材(棒材长度宽度显示完整),标记的三个灰白色矩形框为被吊物兴趣层轮廓的最小矩形框,标记的三组灰黑色0~3点为被吊物兴趣层轮廓的4个顶点。目标轮廓选图中最下边的一组。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (10)
1.一种激光点云转深度图像的被吊物检测方法,其特征在于,包括如下步骤:
步骤(1),原始点云及行车位置的获取及参数配置:大角度扫描堆垛区、小角度扫描堆垛区和小角度扫描打包区,采集点云数据及行车位置,之后按这三种扫描类型进行参数配置,并动态更新激光扫描角度和云台旋转角度修正系数;
步骤(2),原始点云转换成高度表及数据过滤:将步骤(1)获得的点云数据转换到高度表,同时过滤掉超兴趣范围域、超斜域和跳变域的数据,之后,对高度表中的数据进行离群点过滤;
步骤(3),高度表转换成灰度图并缩放扩展:将高度表转换成原始深度图像,再把深度图转换成灰度图;然后把灰度图像按缩放倍率缩放,并在首尾加多个空行扩展;
步骤(4),统计直方图及归一化操作:对灰度图进行直方图统计和归一化处理,然后查找直方图值连续段特征,以获取兴趣层灰度阈值及相应的兴趣层高度阈值;
步骤(5),图像兴趣层阈值化分割及处理:用兴趣层灰度阈值对步骤(3)处理后的灰度图进行阈值化分割,保留灰度值在兴趣层灰度阈值上下限范围内的层作为兴趣层并生成兴趣层图像;然后对兴趣层图像依次进行图像形体学操作、滤波及二值化处理;
步骤(6),兴趣层边缘检测和轮廓查找:对经步骤(5)处理的兴趣层图像进行边缘检测,然后进行轮廓查找;然后计算各轮廓长度和面积,并分别按轮廓长度和面积以及轮廓面积长度比进行过滤,留下的轮廓按长度从大到小排序并存储轮廓长度及对应轮廓编号到数组,之后判断有效闭合轮廓数目;
步骤(7),按轮廓矩和Hu矩匹配轮廓形状:计算有效闭合轮廓的轮廓矩,再用轮廓矩计算Hu矩,然后用Hu矩和预存的被吊物轮廓形状样本的Hu矩进行形状匹配及过滤,过滤掉非兴趣形状轮廓,之后整理轮廓长度和编号数组,计算图像中兴趣层当前堆放被吊物的数目;
步骤(8),被吊物顶点的确定:获取各有效矩形轮廓最小矩形外框的四个顶点坐标;用圆形逼近法查找轮廓最小矩形外框四个顶点对应轮廓上距离最近的点;将轮廓上的这四个最近点坐标转换到高度表对应的坐标;在高度表这四个坐标点邻域内先近后远地查找高度值满足兴趣层高度阈值的点作为被吊物顶点;
步骤(9),目标轮廓的选定及处理:根据兴趣轮廓几何特征、在图像中的相对位置和对应高度表中顶点有效值选定目标轮廓;然后计算目标轮廓对应高度表四个顶点对应原始点云的三维坐标(x,y,z)值;再用被吊物的四个顶点三维坐标计算出被吊物长宽高、中点坐标和放置角度;
步骤(10),激光扫描角度和云台旋转角度修正系数的计算:被吊物的四个顶点邻域内各选20个点计算出高度均值,用四个顶点邻域高度均值在高度方向与激光扫描方向或与云台旋转方向构建直角三角形,用高度差和顶点间距求反正切计算出新的激光扫描和云台旋转方向的动态角度修正系数;
步骤(11),堆垛状态判断及吊取堆放位置坐标和角度计算:按大、小角度堆垛扫描类型、堆垛中点绝对坐标(X,Y,Z)、当前堆放位置相对坐标(x,y,z)和被吊物长宽高判定堆垛状态,并计算修正被吊物吊取点和堆放点位置坐标及放置角度;
步骤(12),下次扫描点的行车位置坐标计算:根据大、小角度堆垛扫描、堆垛状态和当前堆放位置计算修正下次扫描点的行车位置坐标;
步骤(13),被吊物位置及扫描点坐标输出:将计算得到的被吊物吊取点和堆放点及下次扫描点的行车位置坐标通过网络传输给PLC,从而控制行车行驶到扫描点、吊取点和堆放点。
2.根据权利要求1所述的激光点云转深度图像的被吊物检测方法,其特征在于:步骤(1)中,配置的参数包括当前堆垛中点坐标、打包区小角度扫描点坐标、被吊物堆码间距、扫描类型、激光扫描角度修正系数、云台旋转角度修正系数、离群点过滤邻域半径、离群点过滤邻域点数阈值、图像行列缩放倍率、深度图转灰度图倍率、兴趣层高度阈值、直方图兴趣层灰度占比阈值、直方图阈值化下限、轮廓长度阈值、轮廓面积阈值、高度表有效顶点查找邻域半径,以及扫描类型所对应的高度表行列总数、超斜和跳变高度误差和滤波间距。
3.根据权利要求1所述的激光点云转深度图像的被吊物检测方法,其特征在于:步骤(2)中,离群点过滤的具体方法为:
根据参数配置中的离群点过滤邻域半径r,遍历高度表,计算点(m,n)与其邻域半径范围[(m-r)~(m+r),(n-r)~(n+r)]内的各近邻点高度差的绝对值小于超斜和跳变高度误差的近邻点数,若某点的近邻点数小于离群点过滤邻域点数阈值则认为是离群点,并在高度表中把该离群点删除掉。
4.根据权利要求1所述的激光点云转深度图像的被吊物检测方法,其特征在于:步骤(4)的具体方法为:
对灰度图进行直方图统计和归一化处理,保留灰度值点数占比大于直方图阈值化下限的值,小于的清零;
然后查找灰度值点数占比大于直方图阈值化下限的连续段,记录各段灰度值点数占比连续数目和不连续数目、段中灰度值点数占比最大值和最小值、段的起始值和结尾值;
再通过段灰度值点数占比最大值和直方图兴趣层灰度占比阈值比较,筛选出有效的段;有效段筛选的具体方法为:对于打包区和堆垛第一层,有效段取灰度值点数占比最大的段;对于堆垛第二层及以上,则把所有段按灰度值点数占比最大值排序,保留灰度值点数占比最大值大于直方图兴趣层灰度占比阈值的段作为有效段;
最后选择有效段中起始值和结尾值最小的段作为兴趣段,把兴趣段的结尾值和起始值稍微外扩一点范围后作为兴趣层灰度阈值上下限,并除以深度图转灰度图倍率求出对应高度表的兴趣层高度阈值。
5.根据权利要求1所述的激光点云转深度图像的被吊物检测方法,其特征在于:步骤(6)的具体方法为:
对经步骤(5)处理的兴趣层图像进行Canny边缘检测,然后进行轮廓查找;
计算各轮廓长度和面积,过滤掉轮廓长度小于轮廓长度阈值且轮廓面积小于轮廓面积阈值及轮廓面积长度比小于二者阈值比的轮廓;对于留下的轮廓,把轮廓长度值存放到轮廓长度数组中,轮廓编号按对应的顺序存放到轮廓编号数组中;
接着轮廓长度数组按轮廓长度排序,同时按对应顺序更新轮廓编号数组;,再统计有效闭合轮廓数目。
6.根据权利要求1所述的激光点云转深度图像的被吊物检测方法,其特征在于:下一次进行被吊物检测时,对于大、小角度扫描堆垛区时,采用步骤(10)计算的激光扫描或云台旋转动态角度修正系数作为修正堆垛上表面与激光扫描或云台旋转方向的角度系数;对于小角度扫描打包区;采用步骤(10)计算的激光扫描动态角度修正系数作为动态修正激光扫描方向的角度系数,云台旋转仍采用手动修正系数;
步骤(11)中,堆垛状态包括堆空、堆满、堆未满但层空、堆未满但层满和堆未满且层未满5种状态。
7.根据权利要求1所述的激光点云转深度图像的被吊物检测方法,其特征在于:还包括如下步骤:当选定有效的闭合矩形兴趣轮廓后,把兴趣层矩形轮廓及最小矩形外框、最小矩形外框顶点所对应兴趣轮廓的四个顶点标记到原始灰度图中存储和显示。
8.根据权利要求1所述的激光点云转深度图像的被吊物检测方法,其特征在于:还包括如下步骤:放置角度用灰度图目标轮廓的长边点集转换回被吊物三维长边xyz坐标点集,再由这组长边三维坐标点集在(x,y)二维平面内拟合直线获得放置角度。
9.一种激光点云转深度图像的被吊物检测装置,其特征在于,包括嵌入式控制模块,所述嵌入式控制模块执行所述程序时实现如权利要求1至8任一项所述激光点云转深度图像的被吊物检测方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至8任一项所述激光点云转深度图像的被吊物检测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311041223.8A CN117218189A (zh) | 2023-08-17 | 2023-08-17 | 一种激光点云转深度图像的被吊物检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311041223.8A CN117218189A (zh) | 2023-08-17 | 2023-08-17 | 一种激光点云转深度图像的被吊物检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117218189A true CN117218189A (zh) | 2023-12-12 |
Family
ID=89039795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311041223.8A Pending CN117218189A (zh) | 2023-08-17 | 2023-08-17 | 一种激光点云转深度图像的被吊物检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117218189A (zh) |
-
2023
- 2023-08-17 CN CN202311041223.8A patent/CN117218189A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109886961B (zh) | 基于深度图像的中大型货物体积测量方法 | |
CN106709947B (zh) | 一种基于rgbd相机的三维人体快速建模系统 | |
CN107798330B (zh) | 一种焊缝图像特征信息提取方法 | |
CN109541997B (zh) | 一种面向平面/近似平面工件的喷涂机器人快速智能编程方法 | |
CN111598916A (zh) | 一种基于rgb-d信息的室内占据栅格地图的制备方法 | |
CN110188778B (zh) | 基于影像提取结果的居民区要素轮廓规则化方法 | |
CN114240845B (zh) | 一种应用于切削工件的光切法表面粗糙度测量方法 | |
CN114219842A (zh) | 港口集装箱自动装卸作业中的视觉识别、测距与定位方法 | |
CN114331986A (zh) | 一种基于无人机视觉的坝体裂纹识别与测量方法 | |
CN111587215B (zh) | 用于产生集装箱在着陆表面上的着陆解决方案的方法和系统 | |
CN114241269B (zh) | 一种用于岸桥自动控制的集卡视觉融合定位系统 | |
CN113687365B (zh) | 一种基于类平面多高度层轮廓识别及坐标计算方法及系统 | |
CN114693529B (zh) | 一种图像拼接方法、装置、设备及存储介质 | |
CN113610833A (zh) | 物料抓取方法、装置、电子设备和存储介质 | |
CN116188544A (zh) | 一种结合边缘特征的点云配准方法 | |
CN109544513A (zh) | 一种钢管端面缺陷提取识别的方法 | |
CN116309882A (zh) | 一种面向无人叉车应用的托盘检测和定位方法及系统 | |
CN117444968B (zh) | 一种大型筒件局部特征机器人扫描测量路径规划方法 | |
CN117474839A (zh) | 工件缺陷检测方法、装置、电子设备及存储介质 | |
CN117218189A (zh) | 一种激光点云转深度图像的被吊物检测方法及装置 | |
CN112734916A (zh) | 基于图像处理的彩色共聚焦并行测量三维形貌还原算法 | |
CN114202548A (zh) | 一种叉车托盘的定位方法、装置、存储介质及电子设备 | |
CN113592976B (zh) | 地图数据的处理方法、装置、家用电器和可读存储介质 | |
CN116125489A (zh) | 一种室内物体三维检测方法、计算机设备及存储介质 | |
CN117347312B (zh) | 基于多光谱结构光的柑橘连续检测方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |