箱式结构的形变检测方法、装置、电子设备及存储介质
技术领域
本申请涉及人工智能
技术领域
,尤其涉及一种箱式结构的形变检测方法、装置、电子设备及计算机可读存储介质。背景技术
人工智能(AI,Artificial Intelligence)是计算机科学的一个综合技术,通过研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,例如自然语言处理技术以及机器学习/深度学习等几大方向,随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
相关技术中缺乏基于人工智能对箱式结构的形变进行检测的有效方案,主要通过人眼对箱式结构进行观察后,对于观察到的存在形变的区域,使用测量仪器手工测量确定具体的形变程度,导致针对箱式结构的形变检测存在效率较低、且准确度不高的问题。
发明内容
本申请实施例提供一种箱式结构的形变检测方法、装置、电子设备及计算机可读存储介质,能够高效且准确地检测出箱式结构发生形变的区域。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种箱式结构的形变检测方法,包括:
获取箱式结构的侧面的深度图像;
基于所述深度图像的深度信息,从所述深度图像中识别出所述侧面包括的多个部件分别对应的区域;
确定与至少一个所述部件对应的基准平面,并确定每个所述区域包括的像素点与所述基准平面之间的距离;
基于每个所述区域包括的像素点与所述基准平面之间的距离,确定每个所述区域中的形变区域。
上述方案中,当所述多个部件中存在强度大于强度阈值的特定部件时,所述确定与至少一个所述部件对应的基准平面,包括:确定所述特定部件对应的区域包括的像素点的第五深度均值;基于所述第五深度均值,确定与所述特定部件对应的特定基准平面;所述基于每个所述区域包括的像素点与所述基准平面之间的距离,确定每个所述区域中的形变区域,包括:确定所述特定部件包括的像素点与所述特定基准平面之间的距离;基于所述特定部件包括的像素点与所述特定基准平面之间的距离,确定所述特定部件对应的区域中的形变区域。
上述方案中,所述获取所述箱式结构的侧面的二维图像,包括:获取针对所述箱式结构的三维点云数据;从所述三维点云数据中提取出所述侧面的二维图像;所述获取箱式结构的侧面的深度图像,包括:从所述三维点云数据中提取出所述侧面的所述深度图像。
本申请实施例提供一种箱式结构的形变检测装置,包括:
获取模块,用于获取箱式结构的侧面的深度图像;
识别模块,用于基于所述深度图像的深度信息,从所述深度图像中识别出所述侧面包括的多个部件分别对应的区域;
确定模块,用于确定与至少一个所述部件对应的基准平面,并确定每个所述区域包括的像素点与所述基准平面之间的距离;
所述确定模块,还用于基于每个所述区域包括的像素点与所述基准平面之间的距离,确定每个所述区域中的形变区域。
上述方案中,所述确定模块,还用于以预设尺寸的窗口滑动遍历所述深度图像,确定每个所述窗口包括的不同像素点之间深度值的跳变幅度;将所述跳变幅度大于幅度阈值对应的窗口所在的区域,确定为所述深度图像中的噪点;所述装置还包括删除模块,用于从所述深度图像中删除所述噪点。
上述方案中,所述识别模块,还用于基于所述深度图像的深度信息以及所述深度图像包括的不同像素点之间的梯度差异,从所述深度图像中识别出所述侧面包括的多个部件分别对应的区域。
上述方案中,所述确定模块,还用于确定所述深度图像中深度值小于深度阈值、且与相邻像素点的梯度差异大于梯度差异阈值的像素点;将所述深度图像中由所述深度值小于深度阈值、且与相邻像素点的梯度差异大于梯度差异阈值的像素点组成、以及对应的空间特征为角落的区域,确定为所述侧面包括的角件对应的区域。
上述方案中,所述确定模块,还用于基于所述侧面包括的角件对应的区域,确定所述侧面包括的加强板的与所述角件重合的第一边界;以所述第一边界包括的至少一个像素点为起始点,遍历确定后续多个像素点的梯度;基于梯度差异大于梯度差异阈值的位置对应的像素点,确定所述加强板的第二边界;将所述深度图像中由所述第一边界和所述第二边界组成的区域,确定为所述侧面包括的加强板对应的区域。
上述方案中,所述确定模块,还用于基于所述侧面包括的加强板对应的区域,确定所述侧面包括的侧梁的左右边界;以所述深度图像的边界包括的至少一个像素点为起始点,遍历确定后续多个像素点的梯度;基于梯度差异大于梯度差异阈值的位置对应的像素点,确定所述侧梁的上下边界;将所述深度图像中由所述侧梁的左右边界和所述侧梁的上下边界组成的区域,确定为所述侧面包括的侧梁对应的区域。
上述方案中,所述确定模块,还用于基于所述侧面包括的角件对应的区域,确定所述侧面包括的横梁的上下边界;确定由所述角件对应的最小横坐标和最大横坐标组成的区间,并遍历确定所述区间中每个像素点的梯度;基于梯度差异大于梯度差异阈值的位置对应的像素点,确定所述横梁的左右边界;将所述深度图像中由所述横梁的上下边界和所述横梁的左右边界组成的区域,确定为所述侧面包括的横梁对应的区域。
上述方案中,所述确定模块,还用于基于所述侧面包括的横梁对应的区域,确定所述侧面包括的延伸板的与所述横梁重合的边界;基于所述侧面包括的加强板对应的区域,确定所述延伸板的上下边界;以所述与所述横梁重合的边界包括的至少一个像素点为起始点,遍历确定后续多个像素点的梯度;基于梯度差异大于差异阈值的位置对应的像素点,确定所述延伸板的剩余边界;将所述深度图像中由所述与所述横梁重合的边界、所述延伸板的上下边界以及所述剩余边界组成的区域,确定为所述侧面包括的延伸板对应的区域;以及用于将所述侧面中除角件、加强板、所述横梁、侧梁和所述延伸板之外的区域,确定为所述侧面包括的侧板对应的区域。
上述方案中,所述装置还包括选取模块,用于从所述多个部件中选取最大尺寸的目标部件;所述确定模块,还用于确定所述目标部件对应的区域包括的像素点的深度均值,基于所述深度均值确定与所述目标部件对应的基准平面。
上述方案中,所述确定模块,还用于确定所述侧面包括的凸槽区域和凹槽区域;确定所述凸槽区域包括的像素点的第一深度均值,并删除所述凸槽区域中距离所述第一深度均值大于深度均值阈值的像素点;确定所述凸槽区域中剩余像素点的第二深度均值,并基于所述第二深度均值确定与所述凸槽区域对应的第一基准平面;确定所述凹槽区域包括的像素点的第三深度均值,并删除所述凹槽区域中距离所述第三深度均值大于所述深度均值阈值的像素点;确定所述凹槽区域中剩余像素点的第四深度均值,并基于所述第四深度均值确定与所述凹槽区域对应的第二基准平面。
上述方案中,所述确定模块,还用于针对每个所述区域,执行以下处理:确定所述区域中距离大于距离阈值对应的像素点;将由所述距离大于距离阈值对应的像素点组成的区域,确定为所述区域中的形变区域;以及用于基于所述形变区域包括的噪点数量与所述形变区域包括的像素点的总数量之间的比值,确定所述形变区域的置信度。
上述方案中,当所述多个部件中存在强度大于强度阈值的特定部件时,所述确定模块,还用于确定所述特定部件对应的区域包括的像素点的第五深度均值;基于所述第五深度均值,确定与所述特定部件对应的特定基准平面;以及用于确定所述特定部件包括的像素点与所述特定基准平面之间的距离;基于所述特定部件包括的像素点与所述特定基准平面之间的距离,确定所述特定部件对应的区域中的形变区域。
上述方案中,所述获取模块,还用于获取所述箱式结构的侧面的二维图像;所述装置还包括标注模块,用于基于所述深度图像与所述二维图像之间的对应关系,在所述二维图像中标注出所述侧面包括的多个部件分别对应的区域、以及每个所述区域中的形变区域。
上述方案中,所述获取模块,还用于获取针对所述箱式结构的三维点云数据;所述装置还包括提取模块,用于从所述三维点云数据中提取出所述侧面的二维图像;以及用于从所述三维点云数据中提取出所述侧面的所述深度图像。
本申请实施例提供一种电子设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的箱式结构的形变检测方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的箱式结构的形变检测方法。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,用于被处理器执行时,实现本申请实施例提供的箱式结构的形变检测方法。
本申请实施例具有以下有益效果:
通过获取箱式结构的侧面的深度图像,从而能够基于深度图像的深度信息从深度图像中识别出侧面包括的多个部件分别对应的区域,接着,可以从多个部件中选取出至少一个部件,以确定与至少一个部件对应的基准平面,随后,可以基于每个区域包括的像素点与基准平面之间的距离,来确定出每个区域中的形变区域,如此,实现了对箱式结构的形变程度的自动检测,提高了检测效率和检测精度。
附图说明
图1是本申请实施例提供的箱式结构的形变检测系统100的架构示意图;
图2是本申请实施例提供的服务器200的结构示意图;
图3是本申请实施例提供的箱式结构的形变检测方法的流程示意图;
图4是本申请实施例提供的箱式结构的形变检测方法的流程示意图;
图5是本申请实施例提供的箱式结构的形变检测方法的流程示意图;
图6A是本申请实施例提供的集装箱顶面的线扫2D示意图;
图6B是本申请实施例提供的集装箱顶面的深度图像;
图6C是本申请实施例提供的集装箱顶面的形变检测结果示意图;
图7是本申请实施例提供的箱式结构的形变检测方法的流程示意图;
图8A是本申请实施例提供的待检测的集装箱顶面的线扫2D示意图;
图8B是本申请实施例提供的待检测的集装箱顶面的深度图像;
图9是本申请实施例提供的集装箱顶面的区域切分结果示意图;
图10是相关技术提供的集装箱顶面形变检测方法的流程示意图;
图11是本申请实施例提供的集装箱顶面形变检测方法的流程示意图;
图12A是本申请实施例提供的待检测的集装箱顶面的线扫2D示意图;
图12B是本申请实施例提供的待检测的集装箱顶面的深度图像;
图12C是本申请实施例提供的集装箱顶面的形变检测结果示意图;
图13A是本申请实施例提供的待检测的集装箱顶面的线扫2D示意图;
图13B是本申请实施例提供的待检测的集装箱顶面的深度图像;
图13C是本申请实施例提供的集装箱顶面的形变检测结果示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)深度图像(depth image),也称距离影像,是指将从图像采集器(例如摄像机)到场景中各点的深度(距离)作为像素值的图像,它直接反映了景物可见表面的几何形状。例如,深度图像中的每个像素点的灰度值可用于表征场景中某一点距离摄像机的远近。深度图像经过坐标转换可以计算为点云数据,有规则及必要信息的点云数据也可以反算为深度图像数据。
2)点云数据,又称三维点云数据,是指在一个三维坐标系统中的一组向量的集合,这些向量通常以X、Y、Z三维坐标的形式表示,而且一般主要用来代表一个物体的外表面形状,不仅如此,除(X、Y、Z)代表的几何位置信息之外,点云数据还可以表示一个点的RGB颜色,灰度值,深度,分割结果等。
3)线阵扫描成像,是指对物体成像时,每次在像面上行扫描形成一条线图像,甚至是一幅二维影像,最后沿着物体运动的方向,拼接实现完整成像,简称线扫成像。
4)2D图像,又称平面图像,2D图像只有X轴向和Y轴向,其中,2D图像和RGB图像的含义相同。
5)3D图像,是指具有立体效果的图像,拥有X轴向、Y轴向和Z轴向。
6)箱式结构,具有容纳空间的立体结构,例如集装箱、包装箱、模块化房屋等。以集装箱的顶面为例,集装箱的顶面通常包括角件(位于顶面的四个角落)、加强板(位于顶面的四个角落,在角件旁边)、延伸板(位于顶面的两端)、顶横梁(位于顶面的左右两端)、顶侧梁(位于顶面的上下两端)和顶板(位于顶面的中间)等。
以箱式结构为集装箱为例,为了检测出集装箱表面的形变程度,相关技术提供了如下几种方案:
方案A:采集集装箱的箱体外部图像和/或箱体内部图像,其中,箱体外部图像用于检测集装箱外部的损伤,而箱体内部图像用于检测集装箱内部的损伤;对采集的图像进行存储或传输,以供后续计算获得验箱结果且能够在非固定场景下对箱体图像进行灵活采集。
方案B:提供一种固定场景集装箱智能化验视系统,包括集卡位置采集单元、图像采集处理单元、终端处理单元、数据传输单元和人机交互单元。该系统布置在集卡车通过的车道上,应用于固定场景包括港口、海关、货柜场、堆场等集装箱入口处,用于对集卡车上的集装箱进行图像自动采集,智能化验视。
方案C:通过检测人员的人眼对集装箱进行观察,对于观察到的存在形变的区域,使用测量仪器手工测量确定具体的形变程度。
然而,申请人在实施本申请的过程中发现:方案A和方案B虽然能够对集装箱顶面的形变程度进行检测,但这两种技术方案均为复杂,且只用到了2D信息,其中,方案A只用到了2D相机,无法获取具体的形变数值,只适合对集装箱的损失进行粗略的分析,而对于集装箱堆场,需要准确得到集装箱每一个区域的形变精确值,仅靠2D相机是无法完成的。方案B的图像采集装置虽然是高清摄像头,但同样无法获取区域形变的具体数值,且上述两种方案中若集装箱存在拐弯等,本身的采集信息必然与统计规律不符合,这时整个系统就会失效,根本无法进行形变检测。方案C在很大程度上依赖于检测人员的熟练程度,效率过低,检测时间较长,而且往往只关注形变严重的区域。
针对上述技术问题,本申请实施例提供了一种箱式结构的形变检测方法、装置、电子设备及计算机可读存储介质,能够高效且准确地检测出箱式结构发生形变的区域。下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的电子设备可以实施为终端,也可以实施为服务器,或者由终端和服务器协同实施。下面以由终端和服务器协同实施本申请实施例提供的箱式结构的形变检测方法为例进行说明。
参见图1,图1是本申请实施例提供的箱式结构的形变检测系统100的架构示意图,终端400通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。
终端400(运行有客户端410,例如箱式结构的形变检测客户端)可以被用来获取针对箱式结构的形变检测请求,例如,检测人员在客户端410中输入箱式结构的侧面的深度图像后,终端400自动获取针对箱式结构的形变检测请求。接着,终端400通过网络300将针对箱式结构的形变检测请求发送至服务器200。服务器200在接收到终端400发送的针对箱式结构的形变检测请求后,从形变检测请求中提取出所携带的箱式结构的侧面的深度图像,接着,基于深度图像的深度信息,从深度图像中识别出侧面包括的多个部件(例如当箱式结构为集装箱时,对应的多个部件可以是角件、加强板、延伸板、横梁等)分别对应的区域,随后,从多个部件中挑选出至少一个部件,并确定与至少一个部件对应的基准平面,并确定每个区域包括的像素点与基准平面之间的距离,最后,基于每个区域包括的像素点与基准平面之间的距离,确定出每个区域中的形变区域(即检测结果)。在确定出每个区域中的形变区域后,服务器200可以通过网络300将携带有确定出的每个区域中的形变区域的检测结果返回至终端400,以使终端400在与深度图像对应的二维图像(例如检测人员在客户端410中输入箱式结构的侧面的深度图像的同时,还可以输入箱式结构的侧面的二维图像,其中,深度图像和二维图像是完全对准的,每个区域的像素点的坐标在两张图像中都是一致的)中根据检测结果进行标注,并在客户端410的人机交互界面中显示标注有检测结果的二维图像。
在一些实施例中,也可以由终端单独实施本申请实施例提供的箱式结构的形变检测方法。
示例的,以图1中示出的终端400为例,终端400运行的客户端410中可以植入箱式结构的形变检测插件,用以在客户端410本地实现箱式结构的形变检测方法。例如,终端400在获取到针对箱式结构的形变检测请求后,调用箱式结构的形变检测插件,以实现箱式结构的形变检测方法,通过提取形变检测请求中携带的箱式结构的侧面的深度图像,基于深度图像的深度信息,从深度图像中识别出侧面包括的多个部件分别对应的区域,接着,从多个部件中挑选出至少一个部件,并确定与至少一个部件对应的基准平面,随后,在确定出基准平面之后,可以确定出每个区域包括的像素点与基准平面之间的距离,并基于该距离,确定出每个区域中的形变区域。如此,能够实现对箱式结构的形变程度进行自动检测,提高了检测效率以及检测的准确性。
在另一些实施例中,终端400在获取到针对箱式结构的形变检测请求后,还可以调用服务器200提供的箱式结构的形变检测接口(例如可以是提供为云服务的形式,即箱式结构的形变检测服务),服务器200在接收到形变检测请求后,首先从形变检测请求中提取出携带的待检测的箱式结构的侧面的深度图像,接着,基于深度图像的深度信息,从深度图像中识别出侧面包括的多个部件分别对应的区域,随后,从多个部件中挑选出至少一个部件,并确定与至少一个部件对应的基准平面,最后,在确定出基准平面之后,可以确定出每个区域包括的像素点与基准平面之间的距离,并基于该距离,确定出每个区域中的形变区域,如此,能够实现对箱式结构的形变程度进行自动检测,例如,当检测出某个箱式结构的形变程度超出形变程度阈值(即无法继续使用时),可以向检测人员发出提醒消息,以提醒检测人员进行更换。
在一些实施例中,本申请实施例提供的箱式结构的形变检测方法可以结合云技术实现。
示例的,图1中示出的服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端400以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
下面对图1中示出的服务器200的结构进行说明。参见图2,图2是本申请实施例提供的服务器200的结构示意图,图2所示的服务器200包括:至少一个处理器210、存储器240、至少一个网络接口220。服务器200中的各个组件通过总线系统230耦合在一起。可理解,总线系统230用于实现这些组件之间的连接通信。总线系统230除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统230。
处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器240可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器240可选地包括在物理位置上远离处理器210的一个或多个存储设备。
存储器240包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器240旨在包括任意适合类型的存储器。
在一些实施例中,存储器240能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统241,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块242,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
在一些实施例中,本申请实施例提供的箱式结构的形变检测装置可以采用软件方式实现,图2示出了存储在存储器240中的箱式结构的形变检测装置243,其可以是程序和插件等形式的软件,包括以下软件模块:获取模块2431、识别模块2432、确定模块2433、删除模块2434、选取模块2435、标注模块2436和提取模块2437,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。需要指出的是,在图2中为了方便表达,一次性示出了上述所有模块,但是不应视为在箱式结构的形变检测装置243排除了可以只包括获取模块2431、识别模块2432和确定模块2433的实施,将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的箱式结构的形变检测装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的箱式结构的形变检测方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application SpecificIntegrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
如前,本申请实施例提供的箱式结构的形变检测方法可以由各种类型的电子设备实施,例如可以由终端或者服务器单独实施,也可以由终端和服务器协同实施。下面以由图1中示出的终端400和服务器200协同实施本申请实施例提供的箱式结构的形变检测方法为例进行说明。参见图3,图3是本申请实施例提供的箱式结构的形变检测方法的流程示意图,将结合图3示出的步骤进行说明。
在步骤S101中,获取箱式结构的侧面的深度图像。
在一些实施例中,箱式结构可以包括集装箱、包装箱、模块化房屋等,箱式结构的侧面可以包括箱式结构的顶面、侧围面、地面等。例如当需要对箱式结构的顶面的形变程度进行检测时,可以获取箱式结构的顶面的深度图像;当需要对箱式结构的侧围面的形变程度进行检测时,可以获取箱式结构的侧围面的深度图像。
示例的,以获取集装箱的顶面的深度图像为例,获取深度图像的方法可以分为两类:被动测距传感和主动测距传感,其中,被动测距传感的方法是双目立体视觉,通过两个相隔一定距离的摄像机同时获取同一场景的两幅图像(即通过两个相隔一定距离的摄像机同时对同一个待检测的集装箱进行拍摄,得到两幅图像),并通过立体匹配算法找到两幅图像中对应的像素点,随后根据三角原理计算出视差信息,而视差信息通过转换即可得到用于表征场景中物体的深度信息(即得到集装箱的顶面的深度图像,深度图像包括了待检测的集装箱的顶面的深度信息)。基于立体匹配算法,还可以通过拍摄同一场景下不同角度的一组图像来获得该场景的深度图像(例如可以从不同角度对待检测的集装箱的顶面进行拍摄,并基于拍摄得到的一组图像来获得集装箱的顶面的深度图像)。此外,还可以通过对待检测的集装箱的顶面的二维图像的光度特征、明暗特征等特征进行分析,间接估算得到集装箱的顶面的深度信息。
示例的,承接上文,与被动测距传感相比,主动测距传感的特征是:图像采集设备本身需要发射能量来完成深度信息的采集,这也保证了深度图像的获取独立于二维图像的获取。主动测距传感可以包括结构光、激光扫描和飞行时间技术(TOF,Time Of Flight),其中,结构光是指具有特定模式的光,其具有例如点、线、面等模式的图案,基于结构光的深度图像获取原理是:将结构光投射至场景(例如待检测的集装箱),并由图像传感器捕获相应的带有结构光的图案,由于结构光的模式图案会因为集装箱的形状发生变形,因此可以通过模式图像在捕捉得到的图像中的位置以及形变程度利用三角原理计算即可得到场景中各点的深度信息(即包括集装箱的顶面的各点的深度信息,基于各点的深度信息组合得到集装箱的顶面的深度图像)。基于激光扫描的深度图像获取原理是:按照一定时间间隔向待检测的集装箱的顶面发射激光,并记录各个扫描点的信号从激光雷达到被测集装箱的顶面,随后又经过被测集装箱的顶面反射回到激光雷达的相隔时间,据此推算出被测集装箱的顶面各点与激光雷达之间的距离。基于TOF相机获取深度图像的原理是:通过对被测集装箱的顶面发射连续的近红外脉冲,然后用传感器接收由被测集装箱的顶面反射回的光脉冲,通过比较发射光脉冲与经过集装箱的顶面反射的光脉冲的相位差,可以推算得到光脉冲之间的传输延迟进而得到被测集装箱的顶面相对于发射器的距离,最终得到集装箱的顶面的深度图像。
在一些实施例中,还可以通过以下方式获取箱式结构的侧面的深度图像:获取针对箱式结构的三维点云数据,从三维点云数据中提取出侧面的深度图像。
示例的,以箱式结构为集装箱为例,可以通过以下方式获取集装箱的顶面的深度图像:使用激光雷达(2D/3D)、立体摄像头或者TOF相机对待测集装箱的顶面进行扫描,得到对应的三维点云数据,其中,点云数据文件形式是3D坐标文件(经常指一个XYZ文件),这些文件是ASCII,因此可以被所有的后处理软件读取,例如在一个3D灰度文件中,灰度像素点云数据为:X1,Y1,Z1,灰度值1;X2,Y2,Z2,灰度值2等,在获取到针对待测集装箱的顶面进行三维扫描得到的点云数据后,可以从点云数据中提取出待测集装箱的顶面的深度图像。
在另一些实施例中,在获取到箱式结构的侧面的深度图像后,用户(例如检测人员)可以在终端运行的客户端(例如箱式结构的形变检测客户端)中输入所获取的深度图像,终端自动获取针对箱式结构的形变检测请求(携带有深度图像),并将针对箱式结构的形变检测请求发送至服务器,以使服务器在接收到形变检测请求后,提取出深度图像,并基于深度图像对箱式结构的形变程度进行检测,并将检测结果返回至终端,以使终端调用客户端的人机交互界面呈现服务器返回的检测结果。
在步骤S102中,基于深度图像的深度信息,从深度图像中识别出侧面包括的多个部件分别对应的区域。
在一些实施例中,服务器在接收到终端发送的针对箱式结构的形变检测请求后,从形变检测请求中提取出深度图像,并在基于深度图像的深度信息,从深度图像中识别出侧面包括的多个部件分别对应的区域之前,还可以执行以下处理:以预设尺寸的窗口滑动遍历深度图像,确定每个窗口包括的不同像素点之间深度值的跳变幅度;将跳变幅度大于幅度阈值对应的窗口所在的区域,确定为深度图像中的噪点;从深度图像中删除所确定出的噪点。
示例的,以箱式结构为集装箱为例,由于原始的深度图像中可能会存在许多噪点,影响后续计算,因此,服务器在从形变检测请求中提取出集装箱的顶面的深度图像后,首先需要对深度图像进行去噪处理,例如服务器可以以预设尺寸(例如50*50像素)的窗口滑动遍历整个深度图像,并针对滑动过程中的每个窗口对应的区域,确定该区域中不同像素点之间深度值的跳变幅度,由于噪点的深度值变化极快,在较小的像素区间内,噪点的深度值会反复跳变,即重复变小-变大-变小这一过程,且跳变幅度较大,因此,可以将跳变幅度大于幅度阈值对应的窗口所在的区域,确定为深度图像中的噪点,在遍历完整个深度图像后(即确定出每个窗口所在的区域是否为深度图像中的噪点后),可以将确定出的噪点从深度图像中删除。
需要说明的是,在实际应用中,预设尺寸的取值可以是与深度图像的尺寸相关的,例如当深度图像的尺寸越大时,对应的预设尺寸的取值也可以越大(例如当深度图像的尺寸为10000*10000像素时,对应的预设尺寸可以为50*50像素;当深度图像的尺寸为20000*20000像素时,对应的预设尺寸可以是100*100像素);当然,预设尺寸的取值也可以是与去噪精度相关的,例如当需要的去噪精度越高时,对应的预设尺寸的取值也越小;当需要的去噪精度较低时,对应的预设尺寸的取值也越大,也就是说,预设尺寸的取值是可以灵活调整的,本申请实施例对预设尺寸的取值不做具体限定。
在一些实施例中,服务器还可以通过以下方式实现上述的基于深度图像的深度图像,从深度图像中识别出侧面包括的多个部件分别对应的区域:基于深度图像的深度图像以及深度图像包括的不同像素点之间的梯度差异,从深度图像中识别出侧面包括的多个部件分别对应的区域。
示例的,以箱式结构为集装箱为例,可以通过以下方式从深度图像中识别出集装箱的角件对应的区域:确定深度图像中深度值小于深度阈值(即深度图像中的最高区域)、且与相邻像素点的梯度差异大于梯度差异阈值的像素点;将深度图像中由深度值小于深度阈值、且与相邻像素点的梯度差异大于梯度差异阈值的像素点组成、且对应的空间特征为角落的区域,确定为集装箱的角件对应的区域。
举例来说,角件位于集装箱的四个角落,同时,角件的特征明显,在深度图像中,角件是全图中最高的区域(即深度值小于某个深度阈值的区域),因此,可以按照此高度特征和其空间特征(位于角落),即可在集装箱的四个角落定位出角件的位置。
示例的,以箱式结构为集装箱为例,可以通过以下方式从深度图像中识别出集装箱的加强板对应的区域:基于角件对应的区域,确定集装箱的加强板的与角件重合的第一边界;以第一边界包括的至少一个像素点为起始点,遍历确定后续多个像素点的梯度;基于梯度差异大于梯度差异阈值的位置对应的像素点,确定加强板的第二边界;将深度图像中由第一边界和第二边界组成的区域,确定为集装箱的加强板对应的区域。
举例来说,加强板环绕在角件周围,且加强板与顶横梁、延伸板以及顶板的交界处存在着焊缝,因此,在确认角件后,即可确定出加强板的部分外边界(即与角件重合的边界),以该边界包括的至少一个像素点为起始点,沿着同一行或者同一列遍历计算后续多个像素点的梯度,在焊缝处,梯度会存在突变(即在焊缝两侧像素点的梯度差异将会大于梯度差异阈值),因此,依据这一特点,即可确定出加强板的剩余边界,则可以从深度图像中识别出加强板对应的区域。
示例的,以箱式结构为集装箱为例,可以通过以下方式从深度图像中识别出集装箱的侧梁对应的区域:基于集装箱的加强板对应的区域,确定集装箱的侧梁的左右边界;以深度图像的边界包括的至少一个像素点为起始点,遍历确定后续多个像素点的梯度;基于梯度差异大于梯度差异阈值的位置对应的像素点,确定侧梁的上下边界;将深度图像中由侧梁的左右边界和侧梁的上下边界组成的区域,确定为集装箱的侧梁对应的区域。
举例来说,以集装箱的顶面为例,顶侧梁位于集装箱顶面的上侧与下侧,且顶侧梁的左右边界与加强板的左右边界重合,上侧的顶侧梁的上边界即为集装箱的上边界,下边界与顶板相连,且存在焊缝;类似的,下侧的顶侧梁的下边界为集装箱的下边界,上边界与顶板相连,且存在焊缝,因此,在确定顶侧梁的边界时,可以以集装箱的上下边界包括的至少一个像素点为起始点,遍历确定后续位于同一列的多个像素点的梯度,在上下边界处梯度值会出现极大的跳变,因此,可以将梯度差异大于梯度差异阈值的位置对应的像素点组成的线段作为顶侧梁的上下边界,从而识别出顶侧梁在深度图像中对应的区域。
示例的,以箱式结构为集装箱为例,可以通过以下方式从深度图像中识别出集装箱的横梁对应的区域:基于集装箱的角件对应的区域,确定集装箱的横梁的上下边界;确定由角件对应的最小横坐标和最大横坐标组成的区间,并遍历确定区间中每个像素点的梯度;基于梯度差异大于梯度差异阈值的位置对应的像素点,确定横梁的左右边界;将深度图像中由横梁的上下边界和横梁的左右边界组成的区域,确定为集装箱的横梁对应的区域。
举例来说,以集装箱的顶面为例,顶横梁位于集装箱顶面的两侧边缘,左右各一条,且必定在两侧的角件之间,即在确定出四个角件的位置之后,即可定位出两条顶横梁的上下边界,而顶横梁的左右边界则可以根据深度图像来确定,假设顶横梁对应侧的角件的最小横坐标为x1,最大横坐标为x2,则遍历由x1和x2组成的区间[x1,x2]内的像素点,并计算像素点的梯度,在顶横梁的左右边界处,梯度会出现极大的跳变,即可确定出顶横梁的左右边界,从而识别出顶横梁在深度图像中对应的区域。
示例的,以箱式结构为集装箱为例,可以通过以下方式从深度图像中识别出集装箱的延伸板对应的区域:基于集装箱的横梁对应的区域,确定集装箱的延伸板的与横梁重合的边界;基于集装箱的加强板对应的区域,确定延伸板的上下边界;以与横梁重合的边界包括的至少一个像素点为起始点,遍历确定后续多个像素点的梯度;基于梯度差异大于梯度差异阈值的位置对应的像素点,确定延伸板的剩余边界;将深度图像中由与横梁重合的边界、延伸板的上下边界以及剩余边界组成的区域,确定为集装箱的延伸板对应的区域。
举例来说,在定位出顶横梁之后,顶横梁的一侧为集装箱的边界,而另一侧便是延伸板,即在定位出顶横梁之后,即可确定出延伸板的部分边界(即与顶横梁重合的边界),并且,延伸板的上下边界为对应侧两个加强板的边界(即在定位出加强板后,即可确定出延伸板的上下边界),此外,延伸板剩余的边界是与顶板相连,且连接处存在焊缝,即在焊缝处像素点的梯度将发生极大的跳变,那么根据梯度差异便能确定出延伸板的剩余边界,如此能够从深度图像中识别出延伸板所在的位置。
示例的,继续以箱式结构为集装箱为例,在定位了集装箱顶面的其余部件(例如角件、加强板、延伸板、顶横梁和顶侧梁)之后,则可以自动获得顶板的位置(即将剩余的区域自动确定为集装箱的顶板对应的区域),如此,便从深度图像中识别出了集装箱包括的所有重要部件分别对应的区域。
在步骤S103中,确定与至少一个部件对应的基准平面,并确定每个区域包括的像素点与基准平面之间的距离。
在一些实施例中,可以通过以下方式确定与至少一个部件对应的基准平面:从多个部件中选取最大尺寸的目标部件;确定目标部件对应的区域包括的像素点的深度均值,基于深度均值确定与目标部件对应的基准平面。
示例的,以箱式结构为集装箱为例,在基于深度图像的深度信息以及不同像素点之间的梯度差异,从深度图像中识别出集装箱的顶面包括的多个部件(例如角件、加强板、延伸板、顶横梁、顶侧梁和顶板)分别对应的区域后,可以从多个部件中选取出最大尺寸对应的目标部件(例如顶板),接着,计算出目标部件对应的区域包括的所有像素点的深度均值,随后,可以将计算出的深度均值对应的平面确定为与目标部件对应的基准平面。
在另一些实施例中,还可以通过以下方式确定与至少一个部件对应的基准平面:确定侧面包括的凸槽区域和凹槽区域;确定凸槽区域包括的像素点的第一深度均值,并删除凸槽区域中距离第一深度均值大于深度均值阈值的像素点;确定凸槽区域中剩余像素点的第二深度均值,并基于第二深度均值确定与凸槽区域对应的第一基准平面;确定凹槽区域包括的像素点的第三深度均值,并删除凹糟区域中距离第三深度均值大于深度均值阈值的像素点;确定凹槽区域中剩余像素点的第四深度均值,并基于第四深度均值确定与凹槽区域对应的第二基准平面。
示例的,以箱式结构为集装箱为例,集装箱顶面的顶板是由波纹板组成的,波纹板包括凸起区域(即凸槽区域)和凹陷区域(即凹槽区域),因此,需要分别确定与凸槽区域和凹槽区域分别对应的基准平面。例如,以凸槽区域为例,首先对凸槽区域包括的所有像素点进行统计,并计算出所有像素点的深度均值m1,接着,确定出凸槽区域包括的所有像素点中距离深度均值m1超过深度均值阈值(例如10毫米)的像素点并进行删除,随后,重新计算凸槽区域包括的剩余像素点的深度均值m2,深度均值m2即可用于表示凸槽区域对应的基准平面的高度。同理,对凹槽区域进行类似的处理,即可得到凹槽区域对应的基准平面。
在一些实施例中,当在步骤S102中识别出的多个部件中存在强度大于强度阈值的特定部件时,则可以针对特定部件执行以下处理:确定特定部件对应的区域包括的像素点的第五深度均值;基于第五深度均值,确定与特定部件对应的特定基准平面;确定特定部件包括的像素点与特定基准平面之间的距离;基于特定部件包括的像素点与特定基准平面之间的距离,确定特定部件对应的区域中的形变区域。
示例的,以箱式结构为集装箱为例,角件是集装箱中最坚固的部件(即强度大于强度阈值的特定部件),角件的形变是比较小的,多数点都不存在形变,因此,在计算角件的形变时,是以四个角件构成的平面确定对应的基准平面的。例如对于四个角件来说,与集装箱的其他区域不同,角件的中间存在一个空洞,空洞不参与形变计算,所以首先需要定位出空洞的位置;由角件边缘向中间进行遍历,计算小尺寸(例如5*5像素)区间内的梯度最大值,空洞周围像素点的梯度将会出现一次较大的跳变,如此可以基于像素点的梯度差异确定出空洞位置,接着计算四个角件对应的区域包括的剩余像素点的深度均值m3,在得到深度均值m3后,可以去除四个角件对应的区域中距离深度均值m3大于深度均值阈值(例如5毫米)的像素点,随后,针对剩余的像素点,计算剩余像素点的深度均值,得到深度均值m4,深度均值m4即可用于表示角件对应的基准平面的高度。在得到角件对应的基准平面后,可以计算角件对应的区域中除空洞外的像素点到角件的基准平面之间的距离,将距离超过距离阈值(例如8毫米)的像素点确定为形变点,并组合形变点得到形变区域,还可以进一步确定出形变区域的大小、坐标、形变最大值(即距离角件的基准平面最远距离)以及置信度(置信度由形变区域包括的噪点数量占形变区域总像素点的数量的比值确定)。
在一些实施例中,可以通过以下方式实现上述的确定每个区域包括的像素点与基准平面之间的距离:针对每个区域,确定该区域包括的各个像素点的深度值与基准平面之间的距离,例如假设基准平面的高度为20毫米,某个像素点的深度值为18毫米,则该像素点与基准平面之间的距离为2毫米。
在步骤S104中,基于每个区域包括的像素点与基准平面之间的距离,确定每个区域中的形变区域。
在一些实施例中,图3示出的步骤S104可以通过图4示出的步骤S1041至步骤S1042实现,将结合图4示出的步骤进行说明。
在步骤S1041中,确定区域中距离大于距离阈值对应的像素点。
在一些实施例中,在基于步骤S103确定出每个区域包括的像素点与基准平面之间的距离后,可以针对每个区域,执行以下处理:确定区域中距离大于距离阈值对应的像素点。
示例的,以箱式结构为集装箱为例,在从深度图像中识别出集装箱的顶面包括的多个部件(例如角件、加强板、延伸板、顶侧梁和顶横梁等)对应的区域、以及每个区域包括的像素点与基准平面之间的距离之后,可以确定每个区域中距离大于距离阈值对应的像素点。例如以加强板为例,在确定出加强板对应的区域包括的各个像素点与基准平面(例如与顶板对应的基准平面,即基于顶板确定的基准平面)之间的距离后,可以从中挑选出距离大于距离阈值对应的像素点,接着,可以基于挑选出的像素点组合得到形变区域。
需要说明的是,在实际应用中,针对从深度图像中识别出的箱式结构的侧面包括的不同部件,在计算不同部件的形变程度时,对应的距离阈值的取值可以是相同的,也可以是不同的,例如在计算不同部件的形变程度时,可以选取一个固定的距离阈值来确定出距离大于距离阈值的像素点;当然,也可以针对不同的部件,分别设置对应的距离阈值的取值,例如当某个部件的强度较大时(即不容易发生变形),其对应的距离阈值的取值可以小些;当某个部件的强度较小时(即容易发生变形),其对应的距离阈值的取值可以大些,也就是说,距离阈值的取值是可以灵活调整的,本申请实施例对此不作限制。
在步骤S1042中,将由距离大于距离阈值对应的像素点组成的区域,确定为区域中的形变区域。
在一些实施例中,在基于步骤S1041确定出区域中距离大于距离阈值对应的像素点后,可以将由距离大于距离阈值对应的像素点进行组合得到的区域,确定为区域中的形变区域。
以箱式结构为集装箱为例,可以通过以下方式确定出集装箱包括的顶板中的形变区域:计算顶板对应的区域包括的各个像素点的深度值与基准平面之间的距离,接着,从中挑选出距离大于距离阈值(例如20毫米)对应的像素点,随后,将挑选出的像素点进行组合,将组合得到的区域作为顶板中的形变区域,如此,能够实现对集装箱的形变程度的自动检测,提高了检测效率以及检测结果的准确性。
在另一些实施例中,参见图5,在执行完图3示出的步骤S104之后,还可以执行图5示出的步骤S105至步骤S106,将结合图5示出的步骤进行说明。
在步骤S105中,获取箱式结构的侧面的二维图像。
在一些实施例中,可以通过以下方式获取箱式结构的侧面的二维图像:通过2D相机对箱式结构的侧面进行拍摄,得到箱式结构的侧面的二维图像,其中,二维图像与深度图像是完全对准的,每一个区域的像素点的坐标在两张图像上都是一致的。
以箱式结构为集装箱为例,通过2D相机(例如高清摄像机)对集装箱的顶面进行线阵扫描,得到集装箱顶面的线扫2D灰度图像,其中,线扫2D灰度图像与步骤S101中获取的集装箱顶面的深度图像是完全对准的,每一个区域的像素点的坐标在两张图像上都是一致的,如此,在基于深度图像识别出集装箱顶面包括的多个部件分别对应的区域、以及集装箱的形变区域后,可以在线扫2D灰度图像的相应位置进行标注,从而方便检测人员清楚地确定出集装箱发生形变的区域。
在另一些实施例中,还可以通过以下方式获取箱式结构的侧面的二维图像:获取针对箱式结构的三维点云数据;从三维点云数据中提取出侧面的二维图像。
示例的,以箱式结构为集装箱为例,首先获取针对集装箱顶面的三维点云数据(例如通过激光雷达对集装箱顶面进行扫描,得到针对集装箱顶面的三维点云数据),接着,对三维点云数据进行格式转换以及提取操作,以从三维点云数据中提取出集装箱顶面的二维图像。
在步骤S106中,基于深度图像与二维图像之间的对应关系,在二维图像中标注出侧面包括的多个部件分别对应的区域、以及每个区域中的形变区域。
在一些实施例中,在步骤S101中获取的箱式结构的侧面的深度图像与在步骤S105中获取的箱式结构的侧面的二维图像是完全对准的,即每个区域的像素点的坐标在两张图像上都是一致的,因此,在基于深度图像的深度信息以及不同像素点之间的梯度差异,从深度图像中识别出侧面包括的多个部件分别对应的区域、以及每个区域中的形变区域之后,可以基于深度图像与二维图像之间的对应关系,在二维图像中标注出侧面包括的多个部件分别对应的区域、以及每个区域中的形变区域,如此,通过在二维图像中标注出箱式结构发生形变的区域,能够直观地表现出箱式结构的形变区域,方便了检测人员后续针对发生形变的箱式结构进行处理。
本申请实施例提供的箱式结构的形变检测方法,通过获取箱式结构的侧面的深度图像,从而能够基于深度图像的深度信息从深度图像中识别出侧面包括的多个部件分别对应的区域,接着,可以从多个部件中选取出至少一个部件,以确定与至少一个部件对应的基准平面,随后,可以基于每个区域包括的像素点与基准平面之间的距离,来确定出每个区域中的形变区域,如此,实现了对箱式结构的形变程度的自动检测,提高了检测效率和检测精度。
下面,以箱式结构为集装箱为例,说明本申请实施例在一个实际的应用场景中的示例性应用。
在实际应用场景中,受挤压、撞击等影响,集装箱顶面可能会出现凹陷或者凸起形变。对于集装箱顶面的形变程度检测,相关技术通常是通过手动测量,这需要耗费大量的人力,导致成本较高。鉴于此,本申请实施例提供了一种箱式结构的形变检测方法,与计算机视觉技术相结合,以提升集装箱顶面形变程度检测的效率与精度。
示例的,参见图6A至图6C,图6A是本申请实施例提供的集装箱顶面的线扫2D示意图,图6B是本申请实施例提供的集装箱顶面的深度图像(如图6B所示,不同区域对应的深度值不同,例如灰色区域601包括的像素点的深度值大于白色区域602包括的像素点的深度值,即灰色区域601距离图像采集设备的距离大于白色区域602),其中,图6B所示的深度图像是由线扫3D相机获取的,且图6B示出的深度图像与图6A示出的线扫2D示意图是完全对准的,即每一个区域的像素点坐标在两张图像上都是一致的。本申请实施例提供的箱式结构的形变检测方法可以准确输出集装箱顶面发生形变的具体位置以及形变程度信息,例如图6C中示出的实线方框603表示集装箱顶面形变较大的区域。
下面对本申请实施例提供的箱式结构的形变检测方法进行具体说明。对于集装箱顶面形变程度检测这一问题,申请人对集装箱堆场中运输入场的集装箱进行了检测实践,在具体的实践过程中,发现了以下两个难点:
1)集装箱被运输入场时,由于路面不平、行车拐弯等情况,导致线扫相机所成图像会出现畸变,而且集装箱行进方向首尾的深度值会出现较大变化;
2)相关技术提供的集装箱形变程度检测方法,基本都需要激光器测距或者金属探伤仪等仪器,导致成本较高,并且需要集装箱保持静止状态,还需要特定场地放置集装箱与检测仪器,要求较高,在实际生产中,可能没有那么多的场地可以使用,也就是说,相关技术提供的方案要求比较苛刻,无法满足真实场景的检测需求。
在实际生产中,针对集装箱堆场中的集装箱,申请人还发现了以下两个事实:
1)堆场空余区域较小,且业务繁忙,若等货车停下再成像检测形变,会影响堆场正常运行,所以最好的方式是在集装箱运输入场的同时,不停车,完成成像与检测;
2)算法输出的检测结果的可信度虽然较高,但没有达到100%,对于实际生产来说,还是需要结合少量的人工进行检查。
鉴于此,为了支持项目开发,保证检测结果的可靠性,本申请实施例提供了一种箱式结构的形变检测方法,能够对集装箱顶面的形变程度进行自动检测,以提升检测效率,同时降低检测成本。
示例的,参见图7,图7是本申请实施例提供的箱式结构的形变检测方法的流程示意图,如图7所示,本申请实施例提供的箱式结构的形变检测方法主要包括:输入、去噪、区域定位、定位基准平面和形变计算五个步骤,下面分别对上述五个步骤进行具体说明。
(一)输入:首先获取需要进行形变检测的图像,图像为集装箱顶面图像,例如包括如图8A所示的线扫2D示意图和如图8B所示的深度图像(如图8B所示,不同区域对应的深度值不同,例如灰色区域801对应的深度值大于白色区域802对应的深度值),并且,集装箱顶面可以进一步切分为角件、加强板、延伸板、顶横梁、顶侧梁和顶板六个部件,其中,顶板由波纹板组成,波纹板包括凹槽区域和凸槽区域。
(二)去噪:遍历深度图像,去除其中的噪点,以保证后续计算的准确性。
在一些实施例中,原始的深度图像中存在着许多噪点,影响后续计算,因此,首先需要对深度图像进行去噪处理。在实际情况下,无论是形变点还是部件的交界处,相邻不同像素点之间深度值的变化均存在规律,一般是缓慢变化的,有些则是存在一次较大的变化,而噪点的深度值变化是极快的,在较小的像素区间内,噪点的深度值会反复跳变,即重复变大-变小-变大这一过程,且幅度较大,因此,可以依据这一规律,滑动遍历整个深度图像,去除小区间(例如50*50像素)内反复跳变的噪点。
(三)区域定位:根据深度图像中各区域深度值以及梯度的差异,定位角件、加强板、延伸板、顶横梁、顶侧梁和顶板,并在线扫2D灰度图像中对应标出。
在一些实施例中,集装箱顶面包括六个区域,分别是角件、加强板、延伸板、顶横梁、顶侧梁和顶板,其中,角件、加强板、延伸板、顶横梁分布在集装箱顶面的左右两端,一端各有两个角件、两个加强板、一块延伸板及一个顶横梁,而顶侧梁分布在集装箱顶面上下,共两条,剩余区域则是顶板。
下面首先对角件和加强板的定位进行说明。
角件及加强板位于集装箱顶面的四个角落,角件的特征十分明显,在深度图像中,角件是全图中最高的区域,因此,可以按照此高度特征与其空间特征(位于角落),即可在集装箱顶面的四个角落定位出角件位置。
加强板环绕在角件周围,且加强板与顶横梁、延伸板及顶板的交界处存在着焊缝,确认角件后,即可确定加强板的部分外边界,以该部分外边界包括的任意一个或多个像素点为起始点,遍历计算每一个像素点的梯度,在焊缝处,梯度会存在突变,依据这一特点,即可确定加强板的剩余边界,则角件与加强板定位完毕。
下面对延伸板及顶横梁的定位进行说明。
顶横梁位于集装箱顶面的两侧边缘,左右各一条,且必定在两侧的角件之间,确定四个角件位置后,即可定位两条顶横梁的上下边界,而顶横梁的左右边界可以根据深度图像确定,假设顶横梁对应侧的角件的最小横坐标为x1,最大横坐标为x2,遍历[x1,x2]区间内的像素点,计算每个像素点的梯度,在顶横梁的左右边界处,梯度会出现极大的跳变,即可确定出顶横梁的左右边界,从而得到顶横梁的准确位置。
顶横梁的一侧为集装箱的边界,而另一侧便是延伸板,且延伸板的上下边界为对应侧的两个加强板的边界,延伸板剩余的边界则与顶板相接,且存在焊缝,那么根据梯度差异同样可以确定出延伸板的剩余边界,即延伸板对应的区域定位完毕。
下面对顶侧梁及顶板的定位进行说明。
顶侧梁位于集装箱顶面的上侧与下侧,其左右边界即加强板的左右边界,上侧的顶侧梁的上边界为集装箱的上边界,下边界与顶板相连,且存在焊缝,下侧的顶侧梁的下边界为集装箱的下边界,上边界与顶板相连,且存在焊缝,那么与顶横梁的定位方式相同,通过遍历像素点,并计算每个像素点的梯度,在上下边界处梯度会出现极大的跳变,即可定位出顶侧梁的位置。
定位了集装箱顶面的其余部件后,可自动获得顶板位置,顶板位于两块延伸板及两个顶侧梁之间,接下来,为了方便确定凹凸两个基准平面,需对顶板的凹凸槽进行细分,定位每一个凹凸槽,在实际处理中,从左到右遍历顶板,第一个区域和最后一个区域必定是凹槽,而凹槽与凸槽的边界,梯度存在一个较大的跳变,如此即可确定每一个凹凸槽的位置。
示例的,参见图9,图9是本申请实施例提供的集装箱顶面的区域切分结果示意图,如图9所示,在基于深度图像的深度信息以及不同像素点之间的梯度差异,定位出角件、加强板、延伸板、顶侧梁、顶横梁和顶板后,可以在图9所示的线扫2D示意图的相应位置进行标注,例如位于集装箱四个角落处的角件901、环绕在角件901周围的加强板902、位于集装箱顶面左右两侧边缘的顶横梁904、与顶横梁904相连的延伸板903、位于集装箱顶面上下两侧边缘的顶侧梁905和集装箱顶面中出角件901、加强板902、延伸板903、顶横梁904和顶侧梁905之外的顶板906。
(四)定位基准平面:计算集装箱顶面的形变程度,其实就是计算集装箱顶面与基准平面之间的距离,除角件外,其他区域以顶板凹槽平面作为凹陷的基准平面(即计算凹陷形变时与该基准平面进行比较),以顶板凸槽平面作为凸起的基准平面(即计算凸起形变时与该基准平面进行比较),如此,可以基于切分出的区域,在深度图像中找到集装箱凸起和凹陷的两个基准平面;角件是集装箱中最坚固的部件,角件的形变是比较小的,多数点都不存在形变,所以在计算角件的形变时,是以四个角件构成的平面作为基准平面的。
在一些实施例中,以计算顶面的形变为例,首先需定位两个基准平面,平面方程为ax+by+cz=D,考虑到顶面线扫相机的特性,这里的a、b均为0,c为1,则方程变为z=D,则求得基准平面的高度即可定位基准平面,具体步骤为:
对于顶板凸槽区域{X1,X2,…,Xn},每一个凸槽区域可以进一步划分为三个子区域,即离上侧的顶侧梁的下边界y1的坐标差值小于第一预设差值(例如20像素)的为第一个子区域,离下侧的顶侧梁的上边界y2的坐标差值小于20像素的为第二个子区域,剩下区域为第三个子区域,计算所有凸槽区域中第一个子区域的深度均值,然后排除与均值差距超过预设阈值(例如10毫米)的像素点组成的区域,剩下区域再计算一次均值,得到凸槽区域的第一子区域对应的深度均值m1,同样的,得到第二子区域对应的深度均值m2,然后取m1与m2的均值m,均值m即表示凸槽区域对应的基准平面的高度;对凹槽区域进行同样的操作,即可定位出凹槽区域对应的基准平面的高度。
而对于四个角件来说,与集装箱顶面的其他部件不同,角件中间存在一个空洞,该空洞不参与形变计算,所以首先需要定位空间的位置,由角件边缘向中间进行遍历,计算预设尺寸(例如5*5像素)区间内的梯度最大值,空洞周围梯度会出现一次跳变,如此便可以定位出空洞的位置,接着计算四个角件剩余点的深度均值,得到均值后,去除与均值差距大于预设阈值(例如5毫米)的像素点,再针对剩余的像素点重新计算一次均值,该值即为角件基准平面的高度,因为z=D,即可得到角件基准平面。
(五)形变计算:遍历集装箱顶面所有区域,对每个区域分别计算形变程度,例如对于某个区域中的像素点,与基准平面距离较大(例如大于距离阈值)的点即为形变点,并将单个区域内的所有形变点组合为形变区域,得到最终的输出结果,同时输出该区域的检测置信度。
在一些实施例中,形变计算的同时还需要输出置信度,对于顶面不同区域,每个区域计算一个置信度(顶板区域则是每一个小凹凸槽计算一个置信度);计算方式相同,置信度由该区域中的噪声数量占区域包括的像素点的总数量的比例决定,假设噪点数量占像素点的总数量的比例为i,则置信度为1-2*i,噪点越多,则对应的置信度越低,最低为0,不同区域的形变计算的方式不同,具体如下:
1)角件:在定位出角件的位置、以及角件基准平面后,计算角件中除空洞外的像素点到角件基准平面之间的距离,将距离超过距离阈值(例如8毫米)的像素点视为形变点,组合形变点为形变区域,并给出形变区域的大小、坐标、形变最大值以及置信度。
2)加强板:计算加强板包括的各像素点到凸槽区域对应的基准平面之间的距离,将超过基准平面且距离大于距离阈值(例如20毫米)的像素点视为形变点,组合形变点为形变区域(即凸起形变),并给出形变区域的大小、坐标、形变最大值以及置信度;接着,计算加强板包括的各像素点到凹槽区域对应的基准平面之间的距离,将低于基准平面且距离大于20毫米的像素点视为形变点,组合形变点为形变区域(即凹陷形变),并给出形变区域的大小、坐标、形变最大值以及置信度。
3)延伸板:计算延伸板包括的各像素点到凸槽区域对应的基准平面之间的距离,将超过基准平面且距离大于距离阈值(例如35毫米)的像素点视为形变点,组合形变点为形变区域(即凸起形变),并给出形变区域的大小、坐标、形变最大值以及置信度;接着,计算延伸板包括的各像素点到凹槽区域对应的基准平面之间的距离,将超过基准平面且距离大于35毫米的像素点视为形变点,组合形变点为形变区域(即凹陷形变),并给出形变区域的大小、坐标、形变最大值以及置信度。
4)顶横梁:计算顶横梁包括的各像素点到凸槽区域对应的基准平面之间的距离,将超过基准平面且距离大于距离阈值(例如20毫米)的像素点视为形变点,组合形变点为形变区域(即凸起形变),并给出形变区域的大小、坐标、形变最大值以及置信度;接着,计算顶横梁包括的各像素点到凹槽区域对应的基准平面之间的距离,将超过基准平面且距离大于20毫米的像素点视为形变点,组合形变点为形变区域(即凹陷形变),并给出形变区域的大小、坐标、形变最大值以及置信度。
5)顶侧梁:计算顶侧梁包括的各像素点到凸槽区域对应的基准平面之间的距离,将超过基准平面且距离大于距离阈值(例如30毫米)的像素点视为形变点,组合形变点为形变区域(即凸起形变),并给出形变区域的大小、坐标、形变最大值以及置信度;接着,计算顶侧梁包括的各像素点到凹槽区域对应的基准平面之间的距离,将超过基准平面且距离大于30毫米的像素点视为形变点,组合形变点为形变区域(即凹陷形变),并给出形变区域的大小、坐标、形变最大值以及置信度。
6)顶板:计算顶板包括的各像素点到凸槽区域对应的基准平面之间的距离,将超过基准平面且距离大于距离阈值(例如20毫米)的像素点视为形变点,组合形变点为形变区域(即凸起形变),并给出形变区域的大小、坐标、形变最大值以及置信度;接着,计算顶板包括的各像素点到凹槽区域对应的基准平面之间的距离,将超过基准平面且距离大于20毫米的像素点视为形变点,组合形变点为形变区域(即凹陷形变),并给出形变区域的大小、坐标、形变最大值以及置信度。
需要说明的是,在实际生产中,为了进一步确认,对于系统给出的低置信度区域(例如置信度小于0.8对应的区域),可以进行人工复核,以确保没有问题。
示例的,参见图10和图11,图10是相关技术提供的集装箱顶面形变检测方法的流程示意图,图11是本申请实施例提供的集装箱顶面形变检测方法的流程示意图,通过对比图10和图11可以看出,本申请实施例提供的形变检测方法加入了计算机视觉技术,辅佐以较少的人工,在实际生产中的结果表明,与图10示出的形变检测方法相比,本申请实施例提供的形变检测方法能够更快、更好的获取到检测结果。
本申请实施例提供的箱式结构的形变检测方法,首先对深度图像进行去噪处理,接着,基于去噪后的深度图像的深度信息定位出集装箱顶面包括的多个部件(例如角件、加强板、延伸板、顶侧梁、顶横梁和顶板)分别对应的位置,随后,定位凹槽区域和凸槽区域分别对应的基准平面,最后,基于基准平面计算出每个区域的形变程度,确认形变区域,如此,通过使用算法对集装箱顶面的形变程度进行自动检测,降低了人工成本。
下面结合实际生产中的形变检测结果,对本申请实施例提供的箱式结构的形变检测方法的有益效果进行进一步的说明。
示例的,参见图12A至图12C,图12A是本申请实施例提供的待检测的集装箱顶面的线扫2D示意图,图12B是本申请实施例提供的待检测的集装箱顶面的深度图像(如图12B所示,不同区域对应的深度值不同,例如灰色区域1201对应的深度值大于白色区域1202对应的深度值),基于图12B所示的深度图像,调用本申请实施例提供的箱式结构的形变检测方法对集装箱顶面的形变程度进行检测,得到如图12C所示的形变检测结果,其中,图12C示出的实线方框1203表示集装箱顶面中形变较大的区域。
示例的,参见图13A至图13C,图13A是本申请实施例提供的待检测的集装箱顶面的线扫2D示意图,图13B是本申请实施例提供的待检测的集装箱顶面的深度图像(如图13B所示,不同区域对应的深度值不同,例如灰色区域1301对应的深度值大于白色区域1302对应的深度值),基于图13B所示的深度图像,调用本申请实施例提供的箱式结构的形变检测方法对集装箱顶面的形变程度进行检测,得到如图13C所示的形变检测结果,其中,图13C示出的实线方框1303表示集装箱顶面中形变较大的区域,结合图13A至图13C可以看出,即使采集到的集装箱图像本身畸变比较严重,采用本申请实施例提供的箱式结构的形变检测方法同样能够得到比较理想的形变检测结果。
需要说明的是,本申请实施例提供的箱式结构的形变检测方法不仅可以应用于堆场集装箱顶面的形变检测中,还可以对刚生产出厂的集装箱顶面的整体状况进行检测,以确保产品质量良好。
此外,本申请实施例提供的箱式结构的形变检测方法也可以不结合待检测集装箱顶面的2D信息,直接采集集装箱顶面的三维点云数据(例如3D点云图),并使用3D数据处理技术,来检测集装箱顶面的形变程度,例如首先采集针对集装箱顶面的三维点云数据,接着,从三维点云数据中提取出集装箱顶面的深度图像,并基于深度图像的深度信息确定出集装箱顶面发生变形的区域,随后,从三维点云数据中提取出集装箱顶面的二维图像,并基于确定出的形变区域在二维图像中进行标注。
下面继续说明本申请实施例提供的箱式结构的形变检测装置243实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器240的箱式结构的形变检测装置243中的软件模块可以包括:获取模块2431、识别模块2432和确定模块2433。
获取模块2431,用于获取箱式结构的侧面的深度图像;识别模块2432,用于基于深度图像的深度信息,从深度图像中识别出侧面包括的多个部件分别对应的区域;确定模块2433,用于确定与至少一个部件对应的基准平面,并确定每个区域包括的像素点与基准平面之间的距离;确定模块2433,还用于基于每个区域包括的像素点与基准平面之间的距离,确定每个区域中的形变区域。
在一些实施例中,确定模块2433,还用于以预设尺寸的窗口滑动遍历深度图像,确定每个窗口包括的不同像素点之间深度值的跳变幅度;将跳变幅度大于幅度阈值对应的窗口所在的区域,确定为深度图像中的噪点;箱式结构的形变检测装置243还包括删除模块2434,用于从深度图像中删除噪点。
在一些实施例中,识别模块2432,还用于基于深度图像的深度信息以及深度图像包括的不同像素点之间的梯度差异,从深度图像中识别出侧面包括的多个部件分别对应的区域。
在一些实施例中,确定模块2433,还用于确定深度图像中深度值小于深度阈值、且与相邻像素点的梯度差异大于梯度差异阈值的像素点;将深度图像中由深度值小于深度阈值、且与相邻像素点的梯度差异大于梯度差异阈值的像素点组成、以及对应的空间特征为角落的区域,确定为侧面包括的角件对应的区域。
在一些实施例中,确定模块2433,还用于基于侧面包括的角件对应的区域,确定侧面包括的加强板的与角件重合的第一边界;以第一边界包括的至少一个像素点为起始点,遍历确定后续多个像素点的梯度;基于梯度差异大于梯度差异阈值的位置对应的像素点,确定加强板的第二边界;将深度图像中由第一边界和第二边界组成的区域,确定为侧面包括的加强板对应的区域。
在一些实施例中,确定模块2433,还用于基于侧面包括的加强板对应的区域,确定侧面包括的侧梁的左右边界;以深度图像的边界包括的至少一个像素点为起始点,遍历确定后续多个像素点的梯度;基于梯度差异大于梯度差异阈值的位置对应的像素点,确定侧梁的上下边界;将深度图像中由侧梁的左右边界和侧梁的上下边界组成的区域,确定为侧面包括的侧梁对应的区域。
在一些实施例中,确定模块2433,还用于基于侧面包括的角件对应的区域,确定侧面包括的横梁的上下边界;确定由角件对应的最小横坐标和最大横坐标组成的区间,并遍历确定区间中每个像素点的梯度;基于梯度差异大于梯度差异阈值的位置对应的像素点,确定横梁的左右边界;将深度图像中由横梁的上下边界和横梁的左右边界组成的区域,确定为侧面包括的横梁对应的区域。
在一些实施例中,确定模块2433,还用于基于侧面包括的横梁对应的区域,确定侧面包括的延伸板的与横梁重合的边界;基于侧面包括的加强板对应的区域,确定延伸板的上下边界;以与横梁重合的边界包括的至少一个像素点为起始点,遍历确定后续多个像素点的梯度;基于梯度差异大于差异阈值的位置对应的像素点,确定延伸板的剩余边界;将深度图像中由与横梁重合的边界、延伸板的上下边界以及剩余边界组成的区域,确定为侧面包括的延伸板对应的区域;以及用于将侧面中除角件、加强板、横梁、侧梁和延伸板之外的区域,确定为侧面包括的侧板对应的区域。
在一些实施例中,箱式结构的形变检测装置243还包括选取模块2435,用于从多个部件中选取最大尺寸的目标部件;确定模块2433,还用于确定目标部件对应的区域包括的像素点的深度均值,基于深度均值确定与目标部件对应的基准平面。
在一些实施例中,确定模块2433,还用于确定侧面包括的凸槽区域和凹槽区域;确定凸槽区域包括的像素点的第一深度均值,并删除凸槽区域中距离第一深度均值大于深度均值阈值的像素点;确定凸槽区域中剩余像素点的第二深度均值,并基于第二深度均值确定与凸槽区域对应的第一基准平面;确定凹槽区域包括的像素点的第三深度均值,并删除凹槽区域中距离第三深度均值大于深度均值阈值的像素点;确定凹槽区域中剩余像素点的第四深度均值,并基于第四深度均值确定与凹槽区域对应的第二基准平面。
在一些实施例中,确定模块2433,还用于针对每个区域,执行以下处理:确定区域中距离大于距离阈值对应的像素点;将由距离大于距离阈值对应的像素点组成的区域,确定为区域中的形变区域;以及用于基于形变区域包括的噪点数量与形变区域包括的像素点的总数量之间的比值,确定形变区域的置信度。
在一些实施例中,当多个部件中存在强度大于强度阈值的特定部件时,确定模块2433,还用于确定特定部件对应的区域包括的像素点的第五深度均值;基于第五深度均值,确定与特定部件对应的特定基准平面;以及用于确定特定部件包括的像素点与特定基准平面之间的距离;基于特定部件包括的像素点与特定基准平面之间的距离,确定特定部件对应的区域中的形变区域。
在一些实施例中,获取模块2431,还用于获取箱式结构的侧面的二维图像;箱式结构的形变检测装置243还包括标注模块2436,用于基于深度图像与二维图像之间的对应关系,在二维图像中标注出侧面包括的多个部件分别对应的区域、以及每个区域中的形变区域。
在一些实施例中,获取模块2431,还用于获取针对箱式结构的三维点云数据;箱式结构的形变检测装置243还包括提取模块2437,用于从三维点云数据中提取出侧面的二维图像;以及用于从三维点云数据中提取出侧面的深度图像。
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本申请实施例提供的箱式结构的形变检测装置中未尽的技术细节,可以根据图3-5、图7、或图11中的任一附图的说明而理解。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的箱式结构的形变检测方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3-5、图7、或图11示出的箱式结构的形变检测方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,本申请实施例通过获取箱式结构的侧面的深度图像,从而能够基于深度图像的深度信息从深度图像中识别出侧面包括的多个部件分别对应的区域,接着,可以从多个部件中选取出至少一个部件,以确定与至少一个部件对应的基准平面,随后,可以基于每个区域包括的像素点与基准平面之间的距离,来确定出每个区域中的形变区域,如此,实现了对箱式结构的形变程度的自动检测,提高了检测效率和检测精度。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。