发明内容
基于此,有必要针对上述技术问题,提供一种检测精度高的物体高度的检测方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
第一方面,本申请提供了一种物体高度的检测方法。所述方法包括:
获取待检测容器图像;
确定所述待检测容器图像中容器顶部轮廓的第一位置信息,以及容器内目标物体边缘的第二位置信息;
根据所述第一位置信息以及预设的透视变换矩阵对所述待检测容器图像进行透视变换处理,得到目标容器图像,所述透视变换矩阵用于将所述待检测容器图像转换为第一视角下的图像;
确定所述目标容器图像中与所述第二位置信息对应的目标位置信息;
根据所述目标位置信息和多个参考刻度之间的比较结果,生成所述目标物体的高度。
在其中一个实施例中,所述获取待检测容器图像,包括:
响应于图像获取操作,显示图像采集页面,在所述图像采集页面中显示图像蒙版,所述图像蒙版是根据第一标准图像生成的,所述第一标准图像是从第二视角对容器样本进行拍摄得到的;
通过所述图像采集页面获取与所述图像蒙版相匹配的所述待检测容器图像。
在其中一个实施例中,所述透视变换矩阵的生成方式,包括:
对所述第一标准图像进行检测,得到所述第一标准图像中容器顶部轮廓的第三位置信息;
对第二标准图像进行检测,得到所述第二标准图像中容器顶部轮廓的第四位置信息,所述第二标准图像是从所述第一视角对所述容器样本进行拍摄得到的;
根据所述第三位置信息以及所述第四位置信息,生成所述透视变换矩阵。
在其中一个实施例中,所述根据所述第一位置信息以及预设的透视变换矩阵对所述待检测容器图像进行透视变换处理,得到目标容器图像,包括:
根据所述第一位置信息以及所述预设的透视变换矩阵对所述待检测容器图像进行透视变换处理,得到透视变换处理后的所述待检测容器图像;
根据所述第四位置信息,确定所述第二标准图像的图像高度;
根据所述图像高度对透视变换处理后的所述待检测容器图像进行缩放处理,得到所述目标容器图像。
在其中一个实施例中,所述确定所述待检测容器图像中容器顶部轮廓的第一位置信息,包括:
将所述待检测容器图像输入至检测模型,得到所述第一位置信息,所述检测模型是根据样本容器图像以及所述样本容器图像对应的目标标签训练得到的,所述目标标签是通过对所述样本容器图像的原始标签进行高斯模糊处理得到的,所述原始标签是按照预设顺序对所述样本容器图像中容器顶部轮廓的多个边界点进行标注得到的。
在其中一个实施例中,确定容器内目标物体边缘的第二位置信息,包括:
对所述待检测容器图像进行图像分割处理,得到容器内图像;
对所述容器内图像进行直线检测处理,生成所述容器内图像的直线检测结果;
对所述直线检测结果进行聚类处理得到线段聚类结果,根据所述线段聚类结果确定所述目标物体所在区域;
对所述目标物体所在区域进行边缘检测,确定所述第二位置信息。
第二方面,本申请还提供了一种物体高度的检测装置,其特征在于,所述装置包括:
图像获取模块,用于获取待检测容器图像;
第一确定模块,用于确定所述待检测容器图像中容器顶部轮廓的第一位置信息,以及容器内目标物体边缘的第二位置信息;
透视变换模块,用于根据所述第一位置信息以及预设的透视变换矩阵对所述待检测容器图像进行透视变换处理,得到目标容器图像,所述透视变换矩阵用于将所述待检测容器图像转换为第一视角下的图像;
第二确定模块,用于确定所述目标容器图像中与所述第二位置信息对应的目标位置信息;
高度生成模块,用于根据所述目标位置信息,生成所述目标物体的高度。
第三方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项实施例所述的物体高度的检测方法。
第四方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一项实施例所述的物体高度的检测方法。
第五方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面任一项实施例所述的物体高度的检测方法。
上述物体高度的检测方法、装置、计算机设备、存储介质和计算机程序产品,通过获取待检测容器图像,确定待检测容器图像中容器顶部轮廓的第一位置信息以及容器内目标物体边缘的第二位置信息,根据第一位置信息以及预设的透视变换矩阵对待检测容器图像进行透视变换处理,得到第一视角下的目标容器图像,确定目标容器图像中与第二位置信息对应的目标位置信息,根据目标位置信息和多个参考刻度之间的比较结果,生成目标物体的高度,能够直接利用待检测容器图像中容器顶部轮廓的位置信息对待检测容器图像进行透视变换处理,基于透视变换后得到的第一视角下的目标容器图像,确定与待检测容器图像中容器内目标物体边缘对应的目标位置信息,将目标位置信息和多个参考刻度进行比较,以生成容器内目标物体的高度,从而提高物体高度的检测精度。此外,采用本申请提供的物体高度的检测方法时,由于无需利用图像采集设备与容器之间的相对位置关系对像素位置进行处理,能够简化物体高度的检测流程,从而提高物体高度的检测效率。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的物体高度的检测方法,可以应用于计算机设备中。其中,计算机设备可以是终端,也可以是服务器,还可以是包括终端和服务器的系统。具体地,计算机设备中存储有物体高度生成逻辑和预设的透视变换矩阵,物体高度生成逻辑中包括有多个参考刻度,透视变换矩阵用于将待检测容器图像转换为第一视角下的图像。计算机设备获取待检测容器图像,对待检测容器图像中的容器顶部轮廓进行目标检测,确定容器顶部轮廓的第一位置信息。对待检测容器图像中容器内的目标物体进行边缘检测,确定目标物体边缘的第二位置信息。根据第一位置信息和透视变换矩阵对待检测容器图像进行透视变换处理,得到第一视角下的目标容器图像。确定目标容器图像中与第二位置信息对应的目标位置信息。采用物体高度生成逻辑对目标位置信息进行处理,将目标位置信息和多个参考刻度进行比较,根据比较结果生成目标物体的高度。
其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能电视、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在本申请公开的一个实施例中,如图1所示,提供了一种物体高度的检测方法,该方法应用于容器内物体的物体高度检测场景,以该方法应用于终端为例进行说明,包括以下步骤:
步骤S102,获取待检测容器图像。
其中,待检测容器图像可以是针对敞口容器进行拍摄得到的图像,敞口容器中可以包括目标物体。一个示例中,待检测容器图像可以是针对敞口垃圾桶进行采集得到的图像,在垃圾桶的敞口区域可以显示有目标物体。
具体地,终端响应于物体高度的检测请求,获取待检测容器图像。其中,物体高度的检测请求可以是终端自动触发的,例如终端在检测到待检测容器图像后,自动触发针对待检测容器图像的物体高度的检测请求;也可以是用户按需手动触发的,例如用户在终端界面上点击相应的检测按键,触发物体高度的检测请求,获取本地数据库或服务器中的待检测容器图像。
步骤S104,确定待检测容器图像中容器顶部轮廓的第一位置信息,以及容器内目标物体边缘的第二位置信息。
其中,第一位置信息可以用于表征容器顶部轮廓上像素点的位置。一个示例中,第一位置信息可以包括容器顶部轮廓上每个像素点的坐标。另一个示例中,第一位置信息可以包括容器顶部轮廓上固定位置处的多个像素点的坐标,例如在容器顶部轮廓的四个拐角处的像素点的坐标。
第二位置信息可以用于表征目标物体边缘处像素点的位置。一个示例中,第二位置信息可以包括目标物体边缘处的每个像素点的坐标。另一个示例中,第二位置信息可以包括目标物体预设边缘处的多个像素点的坐标,例如在目标物体上边缘处的多个像素点的坐标。
具体地,终端对待检测容器图像中的容器顶部轮廓进行目标检测,确定容器顶部轮廓的第一位置信息。对待检测容器图像中容器内的目标物体进行边缘检测,确定目标物体边缘的第二位置信息。其中,第一位置信息可以但不仅限于是通过Faster R-CNN模型(Faster Region-Convolutional Neural Networks,快速区域卷积神经网络模型)、SSD模型(Single Shot MultiBox Detector,单目多目标检测模型)、YOLO模型(You Only LookOnce,一种小型快速目标检测模型)等多种目标检测模型中的任一种模型确定得到的。第二位置信息可以是通过罗伯特交叉梯度算子Roberts Cross、索贝尔算子Sobel、坎尼算子Canny、拉普拉斯算子Laplacian等多种边缘检测算子中的任一种算子确定得到的。
步骤S106,根据第一位置信息以及预设的透视变换矩阵对待检测容器图像进行透视变换处理,得到目标容器图像。
其中,透视变换矩阵可以用于将待检测容器图像转换为第一视角下的图像。
第一视角可以用于表征从容器上方对容器进行图像采集时图像采集设备的视角。一个示例中,第一视角可以为从容器正上方对容器进行图像采集时图像采集设备的俯视视角。
具体地,终端中存储有透视变换矩阵。根据第一位置信息确定待检测容器图像中需要进行透视变换的容器内部区域。获取容器内部区域中每个像素点的位置信息,采用透视变换矩阵对容器内部区域中每个像素点的位置信息进行处理,生成每个像素点变换后的位置信息。根据容器内部区域中每个像素点变换后的位置信息,生成目标容器图像。
步骤S108,确定目标容器图像中与第二位置信息对应的目标位置信息。
具体地,终端采用透视变换矩阵对目标物体边缘的第二位置信息进行运算处理,生成目标容器图像中与第二位置信息对应的目标位置信息,将目标位置信息作为目标容器图像中目标物体边缘的位置信息。
步骤S110,根据目标位置信息和多个参考刻度之间的比较结果,生成目标物体的高度。
具体地,终端中存储有物体高度生成逻辑,物体高度生成逻辑中包括有多个参考刻度。采用物体高度生成逻辑对目标物体的目标位置信息进行处理,将目标位置信息和多个参考刻度进行比较,根据比较结果生成目标物体的高度。其中,物体高度生成逻辑可以是将目标位置信息与多个参考刻度在水平方向上的参考位置信息进行比较,根据位置信息之间的比较结果生成目标物体的高度;也可以是根据目标位置信息确定目标物体边缘的像素尺寸,将像素尺寸与多个参考刻度对应的参考像素尺寸进行比较,根据像素尺寸之间的比较结果生成目标物体的高度;还可以是根据目标容器图像中的目标物体边缘的目标位置信息以及容器顶部轮廓的位置信息,确定目标容器图像中目标物体边缘与容器顶部轮廓之间的距离,将距离和多个参考刻度对应的参考距离进行比较,根据距离之间的比较结果生成目标物体的高度。
一个示例中,终端获取的目标物体边缘的目标位置信息为(3,3),第一参考刻度在水平方向上的第一参考位置为(1,1),第二参考刻度在水平方向上的第二参考位置为(1,2),第三参考刻度在水平方向上的第三参考位置为(1,3),依次将目标位置信息与三个参考刻度在水平方向上的参考位置进行比较,确定目标位置信息与第三参考刻度在水平方向上的参考位置匹配度最高,将第三参考刻度对应的物体高度作为目标物体的高度。
上述物体高度的检测方法中,通过获取待检测容器图像,确定待检测容器图像中容器顶部轮廓的第一位置信息以及容器内目标物体边缘的第二位置信息,根据第一位置信息以及预设的透视变换矩阵对待检测容器图像进行透视变换处理,得到第一视角下的目标容器图像,确定目标容器图像中与第二位置信息对应的目标位置信息,根据目标位置信息和多个参考刻度之间的比较结果,生成目标物体的高度,能够直接利用待检测容器图像中容器顶部轮廓的位置信息对待检测容器图像进行透视变换处理,基于透视变换后得到的第一视角下的目标容器图像,确定与待检测容器图像中容器内目标物体边缘对应的目标位置信息,将目标位置信息和多个参考刻度进行比较,以生成容器内目标物体的高度,从而提高物体高度的检测精度。此外,采用本申请提供的物体高度的检测方法时,由于无需利用图像采集设备与容器之间的相对位置关系对像素位置进行处理,能够简化物体高度的检测流程,从而提高物体高度的检测效率。
在本申请公开的一个实施例中,步骤S102,获取待检测容器图像,包括:响应于图像获取操作,显示图像采集页面,在图像采集页面中显示图像蒙版,通过图像采集页面获取与图像蒙版相匹配的待检测容器图像。
其中,图像蒙版可以是根据第一标准图像生成的容器轮廓模板,可以用于指示用户按照图像蒙版对应的图像采集角度对图像进行采集。
第一标准图像可以是从第二视角对容器样本进行拍摄得到的图像。一个示例中,容器样本可以为敞口的空容器。
第二视角可以用于表征从容器样本前方对容器样本进行图像采集时图像采集设备的视角。一个示例中,图像采集设备可以从第二视角采集到容器样本完整的顶部轮廓。
具体地,终端中预先存储了图像蒙版。响应于用户触发的图像获取操作,显示图像采集页面,在图像采集页面中显示图像蒙版。通过图像采集页面获取容器图像,对容器图像进行边缘检测,确定容器图像中的容器轮廓,将得到的容器轮廓与图像蒙版进行比较,确定容器图像与图像蒙版之间的相似度。当容器图像与图像蒙版之间的相似度大于阈值时,确定容器图像与图像蒙版相匹配,将容器图像作为与图像蒙版相匹配的待检测容器图像。其中,容器图像可以是终端上部署的图像采集组件实时采集到的图像,也可以是终端从本地数据库中或服务器上获取到的图像。
本实施例中,通过在图像采集页面中显示图像蒙版,通过图像采集页面获取与图像蒙版相匹配的待检测容器图像,能够统一待检测容器图像的图像采集角度,以使得待检测容器图像中包括物体高度检测时所需的容器顶部轮廓,从而提高后续对待检测容器图像的处理效率。
在本申请公开的一个实施例中,如图2所示,透视变换矩阵的生成方式包括:
步骤S202,对第一标准图像进行检测,得到第一标准图像中容器顶部轮廓的第三位置信息。
步骤S204,对第二标准图像进行检测,得到第二标准图像中容器顶部轮廓的第四位置信息。
步骤S206,根据第三位置信息以及第四位置信息,生成透视变换矩阵。
其中,第二标准图像可以是图像采集设备从第一视角对容器样本进行采集得到的图像。
具体地,终端中部署有已训练的目标检测模型。将第一标准图像输入目标检测模型,对第一标准图像中容器样本的容器顶部轮廓进行检测,得到第一标准图像中容器顶部轮廓的第三位置信息。将第二标准图像输入目标检测模型,对第二标准图像中容器样本的容器顶部轮廓进行检测,得到第二标准图像中容器顶部轮廓的第四位置信息。对第二视角下容器顶部轮廓的第三位置信息以及第一视角下容器顶部轮廓的第四位置信息进行运算处理,生成透视变换矩阵。
本实施例中,通过获取第二视角下容器样本的容器顶部轮廓以及第一视角下容器样本的容器顶部轮廓,根据不同视角下容器顶部轮廓的位置信息生成透视变换矩阵,能够使得后续采用透视变换矩阵将第二视角下的待检测容器图像转换为第一视角下的目标容器图像,从而提高物体高度的检测精度。
在本申请公开的一个实施例中,步骤S106,根据第一位置信息以及预设的透视变换矩阵对待检测容器图像进行透视变换处理,得到目标容器图像,包括:
步骤S302,根据第一位置信息以及透视变换矩阵对待检测容器图像进行透视变换处理,得到透视变换处理后的待检测容器图像。
步骤S304,根据第四位置信息,确定第二标准图像的图像尺寸。
步骤S306,根据图像尺寸对透视变换处理后的待检测容器图像进行缩放处理,得到目标容器图像。
其中,图像尺寸可以用于表征第二标准图像的像素长宽比。
具体地,终端中存储有预设的透视变换矩阵,根据第一位置信息确定待检测容器图像中需要进行透视变换的容器内部区域。采用透视变换矩阵对容器内部区域中的每个像素点进行透视变换处理,得到透视变换后的待检测容器图像。对第二标准图像中容器顶部轮廓的四个拐角处像素点的第四位置信息进行运算处理,确定第二标准图像的图像尺寸。按照第二标准图像的图像尺寸对透视变换处理后的待检测容器图像进行缩放处理,直至缩放处理后图像的图像尺寸与第二标准图像的图像尺寸一致,得到目标容器图像。
本实施例中,通过确定第二标准图像的图像尺寸,根据图像尺寸对透视变换处理后的待检测容器图像进行缩放处理,得到目标容器图像,能够便于后续利用目标容器图像确定目标物体的高度,从而提高物体高度的检测效率。
在本申请公开的一个实施例中,第二标准图像中的容器样本标注有多个水平方向上的参考刻度。步骤S110,根据目标位置信息和多个参考刻度之间的比较结果,生成目标物体的高度,包括:根据目标位置信息和第二标准图像中多个参考刻度之间的比较结果,生成目标物体的高度。
具体地,终端可以将目标容器图像中的目标位置信息和第二标准图像中多个水平方向上的参考刻度在竖直方向上对应的参考位置进行比较,生成目标位置信息与每个参考刻度之间的比较结果,确定与目标位置信息匹配度最高的参考刻度,将匹配度最高的参考刻度对应的物体高度作为目标物体的高度。或者,终端也可以对目标容器图像中目标物体边缘的目标位置信息进行运算处理,确定目标物体对应的边缘像素长度。将边缘像素长度与第二标准图像中多个参考刻度对应的参考像素长度进行比较,确定与目标物体的边缘像素长度匹配度最高的参考刻度,将匹配度最高的参考刻度对应的物体高度作为目标物体的高度。
本实施例中,通过将目标物体的目标位置信息和容器样本上标注的多个参考刻度进行比较,根据目标容器图像中目标位置信息和第二标准图像中多个参考刻度之间的比较结果,生成目标物体的高度,能够基于目标位置信息与参考刻度的比较结果快速生成目标物体的高度,提高了物体高度的检测效率。
在本申请公开的一个实施例中,步骤S104,确定待检测容器图像中容器顶部轮廓的第一位置信息,以及容器内目标物体边缘的第二位置信息,包括:将待检测容器图像输入至检测模型,得到第一位置信息。
其中,检测模型可以是终端根据样本容器图像以及样本容器图像对应的目标标签对未训练的目标检测模型进行训练得到的。
目标标签可以是终端通过对样本容器图像的原始标签进行高斯模糊处理后得到的。
原始标签可以是终端按照预设顺序对样本容器图像中样本容器的容器顶部轮廓处的多个边界点进行标注得到的。
具体地,终端中部署有已训练的检测模型。将待检测容器图像输入至检测模型,通过检测模型依次对待检测容器图像中容器顶部轮廓处的多个边界点进行检测,得到待检测容器图像中容器顶部轮廓处的多个边界点对应的像素点位置信息,将得到的多个像素点位置信息作为容器顶部轮廓的第一位置信息。
一个示例中,对检测模型的训练方法进行说明:终端获取多张样本容器图像,按照顺时针顺序依次对每张样本容器图像中样本容器顶部轮廓处的左上边界点、右上边界点、右下边界点和左下边界点进行标注,生成每张样本容器图像的原始标签。对每张样本容器图像执行以下处理:对样本容器图像中的多个原始标签进行缩放处理,对缩放处理后得到的原始标签进行高斯模糊处理,得到与样本容器图像对应的目标标签。对多张样本容器图像进行分组,确定样本训练集中的样本容器图像以及样本测试集中的样本容器图像。采用样本训练集中的多张样本容器图像以及样本训练集中每张样本容器图像对应的目标标签作为检测模型的输入数据,对未训练的检测模型进行迭代训练,采用随机梯度下降算法对检测模型的参数进行优化。采用样本测试集中的多张样本容器图像以及样本测试集中每张样本容器图像对应的目标标签作为检测模型的测试数据,对迭代训练后得到的检测模型进行测试,采用均方方差的计算方式确定检测模型的损失函数。重复上述迭代训练过程,直至检测模型的损失函数满足迭代停止条件时,或者,直至迭代次数满足迭代停止条件时,得到已训练的检测模型。
本实施例中,通过采用样本容器图像以及样本容器图像对应的目标标签对未训练的目标检测模型进行训练得到已训练的检测模型,将待检测容器图像输入已训练的检测模型,确定容器顶部轮廓处多个边界点的第一位置信息,能够提高第一位置信息的精度,从而提高后续利用第一位置信息对待检测容器图像进行透视变换处理以生成目标容器图像的精度。
此外,现有的样本容器图像标注方法中,由于样本容器顶部轮廓的边界点难以准确地被某一个像素位置定义,存在边界点标注难度大的问题,而本实施例中通过对样本容器图像的原始标签进行高斯模糊处理,以生成样本容器图像的目标标签,采用高斯模糊处理后得到的目标标签和样本容器图像对未训练的检测模型进行训练,能够降低检测模型训练过程的干扰,使得检测模型的网络收敛性更好,从而提高检测模型的检测精度。
在本申请公开的另一个实施例中,步骤S104,确定待检测容器图像中容器顶部轮廓的第一位置信息,以及容器内目标物体边缘的第二位置信息,包括:
步骤S402,对待检测容器图像进行图像分割处理,得到容器内图像。
步骤S404,对容器内图像进行直线检测处理,生成容器内图像的直线检测结果。
步骤S406,对直线检测结果进行聚类处理得到线段聚类结果,根据线段聚类结果确定目标物体所在区域。
步骤S408,对目标物体所在区域进行边缘检测,确定第二位置信息。
具体地,终端可以对待检测容器图像中的容器内区域和除容器内区域外的背景区域进行图像分割处理,得到容器内区域的容器内图像。采用边缘检测算子对容器内图像进行边缘检测处理,得到容器内图像的边缘检测结果。采用直线检测算法对边缘检测结果中的直线段进行直线检测,生成容器内图像的直线检测结果。采用线段过滤阈值对直线检测结果进行过滤处理,得到过滤后的直线检测结果。采用密度聚类算法对过滤后的直线检测结果进行聚类处理,得到容器内图像的线段聚类结果,将线段聚类结果中直线段数量最多的一类聚类结果作为目标物体所属的类别,得到目标物体所在区域。分别采用多种边缘检测算法对目标物体所在区域进行边缘检测,得到与每种边缘检测算法对应的目标物体所在区域的边缘检测结果。根据与每种边缘检测算法对应的边缘检测结果,确定目标物体边缘的第二位置信息。
一个示例中,终端可以根据直线检测结果中每个直线段的线段长度生成直线检测结果的线段长度分布图,确定线段长度分布图中出现频次最多的线段长度和出现频次最少的线段长度。根据出现频次最多的线段长度和出现频次最少的线段长度确定线段过滤阈值。线段过滤阈值可以用于过滤掉直线检测结果中出现频次较低的直线段。
一个示例中,终端可以分别采用凸包检测算法、最小外接矩形检测算法和最大内接矩形检测算法对目标物体所在区域进行边缘检测,得到凸包检测算法对应的凸包检测结果、最小外接矩形检测算法对应的最小外接矩形检测结果和最大内接矩形检测算法对应的最大内接矩形检测结果。确定最小外接矩形检测结果与最大内接矩形检测结果之间的区域中点位置。将凸包检测结果作为目标物体所在区域的预测边缘。获取区域中点位置所在的水平线与预测边缘交点处的像素点位置信息,将交点处的像素点位置信息作为目标物体上边缘的第二位置信息。
本实施例中,通过对待检测容器图像的容器内图像进行直线检测处理,根据容器内图像的直线检测结果确定目标物体所在区域,对目标物体所在区域进行边缘检测,确定第二位置信息,能够基于待检测容器图像中的线特征检测得到目标物体边缘的第二位置信息,具有更好的鲁棒性和较高的检测精度。
在本申请公开的一个实施例中,提供了一种物体高度的检测方法,包括:
步骤S502,响应于图像获取操作,显示图像采集页面,在图像采集页面中显示图像蒙版,通过图像采集页面获取与图像蒙版相匹配的待检测容器图像。
具体地,终端中预先存储了图像蒙版。响应于用户触发的图像获取操作,显示图像采集页面,在图像采集页面中显示图像蒙版。通过图像采集页面获取容器图像,根据容器图像与图像蒙版之间的相似度,确定与图像蒙版相匹配的待检测容器图像。具体的待检测容器图像的获取操作可以参照上述实施例中提供的待检测容器的获取方法实现,在此不做具体阐述。一个示例中,如图5a所示,提供了一种图像蒙版生成步骤的示意图。图5a左侧为从第二视角对敞口垃圾桶样本进行图像采集得到的第一标准图像,其中敞口垃圾桶样本带有容积刻度。图5a右侧为根据左侧的第一标准图像生成的图像蒙版。另一个示例中,如图5b所示,提供了一种待检测容器图像获取步骤的示意图。图5b左侧的图像采集页面中显示有图像蒙版,图像采集提示信息“请对准垃圾桶拍照”,以及图像采集按键。图5b右侧的待检测容器图像是通过图5b左侧的图像采集页面获取到的与图像蒙版相匹配的图像。
步骤S504,将待检测容器图像输入至检测模型,得到待检测容器图像中容器顶部轮廓的第一位置信息。
具体地,终端中部署有已训练的检测模型。将待检测容器图像输入至检测模型,通过检测模型依次对待检测容器图像中容器顶部轮廓处的左上边界点、右上边界点、右下边界点和左下边界点进行检测,得到待检测容器图像中容器顶部轮廓处的左上边界点、右上边界点、右下边界点和左下边界点对应的像素点位置信息,将得到的多个像素点位置信息作为容器顶部轮廓的第一位置信息。具体的检测模型的训练操作可以参照上述实施例中提供的检测模型的训练方法实现,在此不做具体阐述。一个示例中,如图5c所示,提供了一种第一位置信息确定步骤的示意图。
步骤S506,对待检测容器图像中容器内图像进行直线检测处理,根据容器内图像的直线检测结果,确定容器内目标物体边缘的第二位置信息。
具体地,终端可以对待检测容器图像进行图像分割处理,得到容器内区域的容器内图像。采用坎尼算子Canny对容器内图像进行边缘检测处理,得到容器内图像的边缘检测结果。采用FLD算法(Fast Line Detection,快速直线检测算法)对边缘检测结果中的直线段进行直线检测,生成容器内图像的直线检测结果。根据直线检测结果中线段长度的出现频率确定线段过滤阈值,采用线段过滤阈值对直线检测结果进行过滤处理。采用DBSCAN算法(Density-Based Spatial Clustering of Applications with Noise,具有噪声的基于密度的聚类方法)对过滤后的直线检测结果进行聚类处理,得到容器内图像的线段聚类结果。根据线段聚类结果确定目标物体所在区域,对目标物体所在区域进行边缘检测,确定目标物体上边缘的第二位置信息。具体的第二位置信息的确定操作可以参照上述实施例中提供的第二位置信息的确定方法实现,在此不做具体阐述。一个示例中,如图5d所示,提供了一种第二位置信息确定步骤的示意图。终端对目标物体所在区域进行凸包检测,得到目标物体区域边缘。分别采用最小外接矩形检测算法和最大内接矩形检测算法对目标物体所在区域进行检测,确定与目标物体所在区域对应的最小外接矩形区域和最大内接矩形区域。确定最小外接矩形区域和最大内接矩形区域之间的区域中点,确定区域中点所在水平线与凸包检测得到的目标物体区域边缘的交点,根据交点确定目标物体所在区域的上边缘,根据交点的位置信息得到目标物体上边缘的第二位置信息。
另一个示例中,终端可以采用HED算法(Holistically-nested Edge Detection,整体嵌套的边缘检测算法)、像素差分网络PidiNet检测算法等多种边缘检测算法中的任一种算法对容器内图像进行边缘检测处理,以获取边缘检测结果。可以采用LSD算法(LineSegment Detector,一种线段检测算法)、LSM算法(一种直线检测算法)等多种直线检测算法中的任一种算法对边缘检测结果中的直线段进行直线检测,以获取直线检测结果。可以采用Optics算法(Ordering points to identify the clustering structure,基于密度的聚类算法)、MDCA算法(Maximum Density Clustering Application,密度最大值聚类)等多种密度聚类算法中的任一种算法对过滤后的直线检测结果进行聚类处理,以获取线段聚类结果。
步骤S508,根据第一位置信息以及透视变换矩阵对待检测容器图像进行透视变换处理,按照第二标准图像的图像尺寸对透视变换处理后的待检测容器图像进行缩放处理,得到目标容器图像。
具体地,终端中存储有预设的透视变换矩阵。根据第一位置信息确定待检测容器图像中需要进行透视变换的容器内部区域。采用透视变换矩阵对容器内部区域中的每个像素点进行透视变换处理,得到透视变换后的待检测容器图像。对第二标准图像上容器顶部轮廓的第四位置信息进行运算处理,确定第二标准图像的图像尺寸。按照第二标准图像的图像尺寸对透视变换处理后的待检测容器图像进行缩放处理,得到目标容器图像。具体的目标容器图像的生成操作可以参照上述实施例中提供的目标容器图像生成方法实现,在此不做具体阐述。一个示例中,如图5e所示,提供了一种目标容器图像生成步骤的示意图。
另一个示例中,如图5f所示,提供了一种透视变换矩阵生成步骤的示意图。终端可以根据以下公式生成透视变换矩阵:
T3=[a31 a32]
其中,XABCD为第二标准图像上容器顶部轮廓处四个拐角处的像素点A、B、C、D的横坐标,YABCD为第二标准图像上容器顶部轮廓处四个拐角处的像素点A、B、C、D的纵坐标,xabcd为第一标准图像上容器顶部轮廓处四个拐角处的像素点a、b、c、d的横坐标,yabcd为第一标准图像上容器顶部轮廓处四个拐角处的像素点a、b、c、d的纵坐标,Transform为透视变换矩阵,T1为用于图像线性变换的矩阵,T2为用于产生图像透视变换的矩阵,T3为用于图像平移的矩阵。
步骤S510,确定目标容器图像中与第二位置信息对应的目标位置信息,根据目标位置信息和多个参考刻度之间的比较结果,生成目标物体的高度。
具体地,终端采用透视变换矩阵对目标物体边缘的第二位置信息进行运算处理,生成目标容器图像中与第二位置信息对应的目标位置信息。将目标位置信息和第二标准图像中多个水平方向上的参考刻度进行比较,确定与目标位置信息匹配度最高的参考刻度,将匹配度最高的参考刻度对应的高度作为目标物体的高度。具体的目标物体高度的生成操作可以参照上述实施例中提供的目标物体高度生成方法实现,在此不做具体阐述。一个示例中,如图5g所示,提供了一种目标物体高度生成步骤的示意图。将目标容器图像中目标物体上边缘与第二标准图像中的参考刻度进行比较,根据比较结果生成目标物体的高度。
本实施例中,通过图像蒙版获取待检测容器图像,能够统一待检测容器图像的图像采集角度,从而提高后续对待检测容器图像的处理效率;通过检测模型确定待检测容器图像中容器顶部轮廓的第一位置信息,能够提高第一位置信息的精度;通过对待检测容器图像的容器内图像进行直线检测处理,根据容器内图像的直线检测结果确定目标物体所在区域,对目标物体所在区域进行边缘检测确定第二位置信息,能够基于待检测容器图像中的线特征检测得到目标物体边缘的第二位置信息,具有更好的鲁棒性和较高的检测精度;通过采用透视变换矩阵将第二视角下的待检测容器图像转换为第一视角下的目标容器图像,根据目标容器图像上的目标位置信息与第一视角下的第二标准图像中的多个参考刻度的比较结果,生成目标物体的高度,能够基于同一视角下的图像之间目标位置信息与参考刻度的比较结果快速生成目标物体的高度,不仅提高了物体高度的检测效率,还同时提高了物体高度的检测精度。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的物体高度的检测方法的物体高度的检测装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个物体高度的检测装置实施例中的具体限定可以参见上文中对于物体高度的检测方法的限定,在此不再赘述。
在本申请公开的一个实施例中,如图6所示,提供了一种物体高度的检测装置600,包括:图像获取模块602、第一确定模块604、透视变换模块606、第二确定模块608和高度生成模块610,其中:
图像获取模块602,用于获取待检测容器图像。
第一确定模块604,用于确定待检测容器图像中容器顶部轮廓的第一位置信息,以及容器内目标物体边缘的第二位置信息。
透视变换模块606,用于根据第一位置信息以及预设的透视变换矩阵对待检测容器图像进行透视变换处理,得到目标容器图像,透视变换矩阵用于将待检测容器图像转换为第一视角下的图像。
第二确定模块608,用于确定目标容器图像中与第二位置信息对应的目标位置信息。
高度生成模块610,用于根据目标位置信息和多个参考刻度之间的比较结果,生成目标物体的高度。
在本申请公开的一个实施例中,图像获取模块602包括:蒙版显示单元,用于响应于图像获取操作,显示图像采集页面,在图像采集页面中显示图像蒙版,图像蒙版是根据第一标准图像生成的,第一标准图像是从第二视角对容器样本进行拍摄得到的;蒙版匹配单元,用于通过图像采集页面获取与图像蒙版相匹配的待检测容器图像。
在本申请公开的一个实施例中,透视变换模块606包括:透视变换矩阵生成单元,用于对第一标准图像进行检测,得到第一标准图像中容器顶部轮廓的第三位置信息;对第二标准图像进行检测,得到第二标准图像中容器顶部轮廓的第四位置信息,第二标准图像是从第一视角对容器样本进行拍摄得到的;根据第三位置信息以及第四位置信息,生成透视变换矩阵。
在本申请公开的一个实施例中,透视变换模块606还包括:尺寸缩放单元,用于根据第一位置信息以及预设的透视变换矩阵对待检测容器图像进行透视变换处理,得到透视变换处理后的待检测容器图像;根据第四位置信息,确定第二标准图像的图像尺寸;根据图像尺寸对透视变换处理后的待检测容器图像进行缩放处理,得到目标容器图像。
在本申请公开的一个实施例中,第二标准图像中的容器样本标注有多个水平方向上的参考刻度。高度生成模块610还用于:根据目标位置信息和第二标准图像中多个参考刻度之间的比较结果,生成目标物体的高度。
在本申请公开的一个实施例中,第一确定模块604包括:轮廓检测单元,用于将待检测容器图像输入至检测模型,得到第一位置信息,检测模型是根据样本容器图像以及样本容器图像对应的目标标签训练得到的,目标标签是通过对样本容器图像的原始标签进行高斯模糊处理得到的,原始标签是按照预设顺序对样本容器图像中容器顶部轮廓的多个边界点进行标注得到的。
在本申请公开的一个实施例中,第一确定模块604包括:边缘检测单元,用于对待检测容器图像进行图像分割处理,得到容器内图像;对容器内图像进行直线检测处理,生成容器内图像的直线检测结果;对直线检测结果进行聚类处理得到线段聚类结果,根据线段聚类结果确定目标物体所在区域;对目标物体所在区域进行边缘检测,确定第二位置信息。
上述物体高度的检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、移动蜂窝网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种物体高度的检测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。