CN113066117B - 箱体体积测量方法、装置、计算机设备和存储介质 - Google Patents
箱体体积测量方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN113066117B CN113066117B CN201911279345.4A CN201911279345A CN113066117B CN 113066117 B CN113066117 B CN 113066117B CN 201911279345 A CN201911279345 A CN 201911279345A CN 113066117 B CN113066117 B CN 113066117B
- Authority
- CN
- China
- Prior art keywords
- box
- dimensional
- point
- target
- corner
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000005259 measurement Methods 0.000 claims abstract description 32
- 238000012216 screening Methods 0.000 claims abstract description 18
- 238000005457 optimization Methods 0.000 claims description 67
- 238000001514 detection method Methods 0.000 claims description 56
- 230000006870 function Effects 0.000 claims description 21
- 238000000605 extraction Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 14
- 238000012549 training Methods 0.000 description 14
- 238000006243 chemical reaction Methods 0.000 description 12
- 239000013598 vector Substances 0.000 description 12
- 239000011159 matrix material Substances 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 238000000691 measurement method Methods 0.000 description 8
- 230000003190 augmentative effect Effects 0.000 description 5
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241001061225 Arcos Species 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B11/00—Measuring arrangements characterised by the use of optical techniques
- G01B11/002—Measuring arrangements characterised by the use of optical techniques for measuring two or more coordinates
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01B—MEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
- G01B11/00—Measuring arrangements characterised by the use of optical techniques
- G01B11/24—Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20164—Salient point detection; Corner detection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Geometry (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
本申请涉及一种箱体体积测量方法、装置、计算机设备和存储介质。所述方法包括:获取目标箱体对应的二维图像,并调用预设接口获取所述二维图像对应的二维特征点与三维点云数据;通过已训练好的角点识别模型识别所述二维图像中的箱体角点;根据所述箱体角点与所述二维特征点确定所述目标箱体对应的基准面,并从所述三维点云数据中筛选所述基准面对应的目标三维点云数据;基于所述目标三维点云数据进行平面拟合得到基准面方程;根据相机原点与所述基准面方程,以及与所述箱体角点对应的三维坐标点,确定所述目标箱体的箱体体积。采用本方法能够降低箱体体积的测量成本。
Description
技术领域
本申请涉及测量技术领域,特别是涉及一种箱体体积测量方法、装置、计算机设备和存储介质。
背景技术
随着物流行业的发展,越来越多的应用场景需要测量箱体体积。比如,物流运费通常按照箱体重量来计算,但当箱体重量较轻而箱体体积较大时,会占用较多的运输空间,此时按照箱体体积计算运费更为合理。还比如,基于箱体体积合理分配运输任务,能够提高单次运输的装载率。由此,如何测量箱体体积是值得考虑的问题。
目前,通过结构光背夹或激光等方式测量箱体体积,能够解决人工测量存在测量效率低与准确性低的问题,但是该种测量方式存在测量成本高的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低测量成本的箱体体积测量方法、装置、计算机设备和存储介质。
一种箱体体积测量方法,所述方法包括:
获取目标箱体对应的二维图像,并调用预设接口获取所述二维图像对应的二维特征点与三维点云数据;
通过已训练好的角点识别模型识别所述二维图像中的箱体角点;
根据所述箱体角点与所述二维特征点确定所述目标箱体对应的基准面,并从所述三维点云数据中筛选所述基准面对应的目标三维点云数据;
基于所述目标三维点云数据进行平面拟合得到基准面方程;
根据相机原点与所述基准面方程,以及与所述箱体角点对应的三维坐标点,确定所述目标箱体的箱体体积。
在其中一个实施例中,所述已训练好的角点识别模型包括:特征提取模型、关键点检测模型与连接线检测模型;所述通过已训练好的角点识别模型识别所述二维图像中的箱体角点,包括:
通过所述特征提取模型提取所述二维图像对应的特征图;
通过所述关键点检测模型对所述特征图进行关键点检测,得到已标注关键点的第一图像;
通过所述连接线检测模型对所述特征图进行连接线检测,得到已标注连接线的第二图像;
根据所述第一图像与所述第二图像确定所述二维图像中的箱体角点。
在其中一个实施例中,所述根据所述箱体角点与所述二维特征点确定所述目标箱体对应的基准面,并从所述三维点云数据中筛选所述基准面对应的目标三维点云数据,包括:
根据所述箱体角点确定所述目标箱体对应的多个箱体面;
基于所述二维特征点从所述多个箱体面中选取基准面;
根据所述基准面内的二维特征点,从所述三维点云数据中筛选目标三维点云数据。
在其中一个实施例中,所述基于所述目标三维点云数据进行平面拟合得到基准面方程,包括:
从所述目标三维点云数据中选取预设数量的目标三维坐标点;
按照所述目标三维坐标点进行平面拟合得到拟合平面;
确定所述目标三维点云数据中与所述拟合平面的距离小于或等于预设距离阈值的三维坐标点的占比;
当所述占比大于或等于预设占比阈值时,将所述拟合平面对应的拟合方程确定为基准面方程。
在其中一个实施例中,所述根据相机原点与所述基准面方程,以及与所述箱体角点对应的三维坐标点,确定所述目标箱体的箱体体积,包括:
从所述箱体角点中选取多个第一箱体角点与一个第二箱体角点;
根据相机原点、所述基准面方程与每个第一箱体角点对应的三维坐标点,确定相应第一箱体角点在基准面的投影点;
根据所述相机原点、所述基准面方程与所述第二箱体角点对应的三维坐标点,确定所述第二箱体角点在所述基准面的投影点与投影角度;
根据所确定的投影点与投影角度计算所述目标箱体对应的箱体体积。
在其中一个实施例中,所述根据所确定的投影点与投影角度计算所述目标箱体对应的箱体体积,包括:
根据所述多个第一箱体角点各自对应的投影点,确定所述目标箱体对应的长和宽;
根据所述第二箱体角点对应的投影点与投影角度,以及与所述第二箱体角点相邻的第一箱体角点对应的投影点,确定所述目标箱体对应的高;
基于所述长、宽与高确定所述目标箱体对应的箱体体积。
在其中一个实施例中,所述第一箱体角点与所述第二箱体角点均为目标箱体角点;所述根据所确定的投影点与投影角度计算所述目标箱体对应的箱体体积,包括:
根据所确定的投影点与投影角度确定相应目标箱体角点所对应的箱体三维角点的初始角点坐标;
确定优化参数,所述优化参数包括优化限制条件、目标方程、优化迭代次数与优化误差;
根据所述优化参数调用优化函数对所述初始角点坐标进行迭代优化,得到目标角点坐标;
根据所述目标角点坐标计算所述目标箱体的箱体体积。
一种箱体体积测量装置,所述装置包括:
获取模块,用于获取目标箱体对应的二维图像,并调用预设接口获取所述二维图像对应的二维特征点与三维点云数据;
识别模块,用于通过已训练好的角点识别模型识别所述二维图像中的箱体角点;
筛选模块,用于根据所述箱体角点与所述二维特征点确定所述目标箱体对应的基准面,并从所述三维点云数据中筛选所述基准面对应的目标三维点云数据;
拟合模块,用于基于所述目标三维点云数据进行平面拟合得到基准面方程;
确定模块,用于根据相机原点与所述基准面方程,以及与所述箱体角点对应的三维坐标点,确定所述目标箱体的箱体体积。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述各个实施例中所述的箱体体积测量方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述各个实施例中所述的箱体体积测量方法的步骤。
上述箱体体积测量方法、装置、计算机设备和存储介质,获取目标箱体对应的二维图像,并调用预设接口获取该二维图像对应的二维特征点与三维点云数据,能够降低二维特征点与三维点云数据的获取成本,由此,基于所获取到的二维图像、二维特征点与三维点云数据自动进行箱体体积测量时,能够降低箱体体积的测量成本。进一步地,通过已训练好的角点识别模型自动识别目标箱体的箱体角点,基于箱体角点与二维特征点确定目标箱体的基准面,以及三维点云数据中与基准面对应的目标三维点云数据,并基于目标三维点云数据自动拟合基准面方程,进而根据基准面方程、相机原点与箱体角点自动测量目标箱体的箱体体积,无需人工过多的参与,由此,在提高箱体体积测量的准确性和效率的情况下,能够降低测量成本。
附图说明
图1为一个实施例中箱体体积测量方法的应用场景图;
图2为一个实施例中箱体体积测量方法的流程示意图;
图3为一个实施例中基于识别出的箱体角点所确定的多个箱体面的结构示意图;
图4为一个实施例中基于箱体角点、相机原点与基准面方程在世界坐标系中重现目标箱体的结构示意图;
图5为另一个实施例中箱体体积测量方法的流程示意图;
图6为一个实施例中箱体体积测量装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的箱体体积测量方法,可以应用于如图1所示的应用环境中。其中,终端102通过摄像头采集目标箱体104对应的二维图像,并调用预设接口采集目标箱体104对应的、且与所采集到的二维图像对应的二维特征点与三维点云数据。终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,目标箱体104是待测量箱体体积的箱体。
在一个实施例中,如图2所示,提供了一种箱体体积测量方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
S202,获取目标箱体对应的二维图像,并调用预设接口获取二维图像对应的二维特征点与三维点云数据。
其中,目标箱体是待测量箱体体积的箱体,具体可以是指规则箱体,比如形状为长方体或正方体的规则箱体。三维点云数据是由二维特征点在世界坐标系中对应的三维坐标点组成的集合。
具体地,当满足箱体体积测量条件时,终端通过摄像头获取目标箱体对应的二维图像,并调用预设接口获取二维图像对应的二维特征点与三维点云数据。箱体体积测量条件比如检测到用户对预设测量键的触发操作,触发操作比如点击、按压或滑动等操作,点击比如双击或点击操作等。
在一个实施例中,当检测到用户对预设测量键的触发操作时,终端通过自身的摄像头拍摄目标箱体,得到该目标箱体对应的二维图像。该二维图像为包括目标箱体对应的箱体图像的RGB图像(由R(red),G(green),B(blue)三个分量组成的彩色图像)。以终端为手机为例,二维图像就是通过手机摄像头对目标箱体进行拍摄得到的照片/图像。
在一个实施例中,终端通过预设接口调用已有的增强现实技术,获取二维图像对应的二维特征点与三维点云数据。增强现实技术比如ARCore(一款增强现实SDK(一种软件开发工具包)),ARKit(一种AR(Augmented Reality,增强现实)开发平台)。以ARCore为例,ARCore内部为一个SLAM(Simultaneous Localization And Mapping,同步定位与建图)系统。
以ARCore为例,ARCore通过运动跟踪、环境理解与光估计,将虚拟内容与通过摄像头拍摄的现实世界进行整合。ARCore检测通过摄像头所捕获的二维图像中的视觉差异特征,得到二维图像对应的二维特征点与每个二维特征点在世界坐标系下对应的三维坐标点,所有二维特征点对应的三维坐标点构成二维图像对应的三维点云数据。在终端移动的过程中,ARCore实时检测摄像头动态捕获的每一帧二维图像,得到每一帧二维图像对应的二维特征点与相应的三维点云数据,并实时更新。当检测到箱体体积测量条件时,终端通过摄像头采集用于箱体体积测量的二维图像,并调用预设接口获取该二维图像对应的二维特征点与三维点云数据。由此,调用预设接口获取到的二维特征点所处的二维图像,与通过摄像头所采集的二维图像为相同二维图像,也就是二维图像中存在与各二维特征点分别对应的二维像素点。
这样,终端通过自身的摄像头采集二维图像,并通过调用预设接口采集二维图像对应的二维特征点与三维点云数据,而无需额外外接其他硬件设备来采集二维图像和/或三维点云数据,由此,能够降低硬件成本,且能够避免硬件设备发热量大与耗电快等问题,从而能够降低二维特征点与三维点云数据的获取成本,进而能够降低箱体体积的测量成本。
在一个实施例中,终端通过摄像头对目标箱体进行拍摄时,拍摄角度需要能够拍摄到目标箱体的三个箱体面,也就是摄像头的拍摄视野中需要包括目标箱体的三个箱体面。这样,拍摄得到的二维图像中包括目标箱体的该三个箱体面所对应的二维像素点。可以理解,二维图像中包括目标箱体的七个顶点各自对应的二维像素点。
S204,通过已训练好的角点识别模型识别二维图像中的箱体角点。
其中,角点识别模型是通过训练样本集训练得到的、能够用于从二维图像中识别出目标箱体的箱体角点的模型。箱体角点是指目标箱体的顶点在二维图像中对应的二维像素点。
具体地,终端在获取到目标箱体对应的二维图像后,将所获取到的二维图像输入已训练好的角点识别模型,通过该角点识别模型从该二维图像中识别出目标箱体对应的箱体角点。
在一个实施例中,终端根据预先获取的训练样本集进行模型训练,得到已训练好的角点识别模型,并存储在本地。终端也可接收服务器训练并发送的角点识别模型,并将所接收到的角点识别模型存储在本地。
S206,根据箱体角点与二维特征点确定目标箱体对应的基准面,并从三维点云数据中筛选基准面对应的目标三维点云数据。
具体地,终端从二维图像中识别出目标箱体的箱体角点后,根据箱体角点与二维图像对应的二维特征点在该二维图像中的位置关系,确定目标箱体在二维图像中对应的基准面。终端确定基准面内的二维特征点,并根据所确定的二维特征点,以及二维特征点与三维点云数据中的三维坐标点之间的索引关系,从三维点云数据中筛选该基准面对应的目标三维点云数据。
在一个实施例中,步骤S206包括:根据箱体角点确定目标箱体对应的多个箱体面;基于二维特征点从多个箱体面中选取基准面;根据基准面内的二维特征点,从三维点云数据中筛选目标三维点云数据。
具体地,从二维图像中识别出的每个箱体角点对应有角点编号,根据角点编号能够确定各箱体角点之间的连接关系。终端在二维图像中将各箱体角点按照角点编号进行连接,得到多条箱体连接线,并根据该多条箱体连接线在二维图像中确定目标箱体对应的多个箱体面。终端确定每个二维特征点所属的箱体面,统计每个箱体面内的二维特征点数量,并将统计的二维特征点数量最多的箱体面确定为目标箱体对应的基准面。终端从三维点云数据中筛选与基准面内各二维特征点对应的三维坐标点,得到目标三维点云数据。
图3为一个实施例中基于识别出的箱体角点所确定的多个箱体面的结构示意图。如图3所示,通过角点识别模型从二维图像中识别出目标箱体对应的七个箱体角点,该七个箱体角点各自的角点编号分别为0,1,2,3,4,5,6。根据角点编号将各箱体角点进行连接,得到多条箱体连接线,比如01,12与23等。根据箱体连接线确定目标箱体对应的三个箱体面,分别为A、B与C。根据二维特征点与二维图像的对应关系,能够确定每个二维特征点所属的箱体面,并选取二维特征点最多的箱体面作为基准面。可以理解,由于目标箱体的箱体面上通常存在文字与图案等信息,具有较多的特征点,故基于特征点最多的箱体面进行箱体体积测量,能够降低对背景面及背景环境的要求,从而在保证测量准确性与效率的情况下,能够降低测量成本。
上述实施例中,选取二维特征点最多的箱体面作为基准面,并基于基准面内的二维特征点从三维点云数据中筛选目标三维点云数据,以便于基于目标三维点云数据拟合基准面时,能够提高拟合的准确性,这样,基于准确性较高的基准面进行箱体体积测量时,能够提高测量的准确性。
S208,基于目标三维点云数据进行平面拟合得到基准面方程。
具体地,终端根据目标三维点云数据对基准面进行平面拟合,以确定基准面,并得到基准面对应的基准面方程。
在一个实施例中,终端根据目标三维点云数据,通过RANSC(随机样本一致性)算法进行平面拟合得到基准面方程。
在一个实施例中,终端根据目标三维点云数据确定相应的协方差矩阵,根据协方差矩阵确定多个特征值与每个特征值对应的特征向量,将最小的特征值对应的特征向量确定为基准面的法向量,并根据目标三维点云数据中的三维坐标点与该法向量确定基准面方程。可以理解,终端根据法向量与目标三维点云数据中的任一个三维坐标点拟合得到基准面对应的拟合方程后,计算目标三维点云数据中每个三维坐标点与拟合方程的总距离。当总距离小于或等于指定距离阈值时,则将该拟合方程确定为基准面方程,否则,根据从目标三维点云数据中重新选取的三维坐标点与法向量重新拟合基准面对应的拟合方程,并按照上述方式对拟合方程进行判断。
S210,根据相机原点与基准面方程,以及与箱体角点对应的三维坐标点,确定目标箱体的箱体体积。
具体地,终端将二维图像中的箱体角点转换至世界坐标系中的三维坐标点,以确定箱体角点在世界坐标系中对应的三维坐标点。终端获取二维图像在世界坐标系中对应的相机原点,并基于相机原点、基准面方程,以及与箱体角点对应的三维坐标点,在世界坐标系中将箱体角点投影至基准面,得到箱体角点在基准面的投影点与投影角度。终端根据多个箱体角点在基准面的投影点与投影角度确定目标箱体的长、宽与高,并根据所确定的长、宽与高计算得到目标箱体的箱体体积。
在一个实施例中,终端按照预配置的坐标转换矩阵,将二维图像中的箱体角点从图像坐标系转换至世界坐标系,得到箱体角点在世界坐标系中对应的三维坐标点。预配置的坐标转换矩阵用于指定图像坐标系中的二维像素点与世界坐标系中的三维坐标点之间的坐标转换关系。按照预配置的坐标转换矩阵将图像坐标系中的二维像素点转换至世界坐标系中的三维坐标点时,将图像坐标系中的二维像素点所对应的二维坐标扩充至三维坐标,其中,新增维度坐标为三维场景中z轴方向的坐标,并将新增维度坐标的坐标值设定为固定值。固定值比如1,由此,箱体角点在二维图像中对应的二维坐标为(x,y),则将该二维坐标扩充为三维坐标(x,y,1)。
终端可调用预配置的且封装有坐标转换矩阵的坐标转换函数,将箱体角点在图像坐标系中对应的三维坐标转换至世界坐标系中的三维坐标,得到箱体角点对应的三维坐标点。终端也可将箱体角点在图像坐标系中对应的三维坐标与坐标转换矩阵相乘,得到箱体角点在世界坐标系中对应的三维坐标点所对应的三维坐标。可以理解,将箱体角点由图像坐标系转换至世界坐标系的过程中,可能会存在多个中间坐标系,比如屏幕坐标系与相机坐标系等。任意两个坐标系之间的坐标转换关系均可通过坐标转换矩阵来指定,由此,将箱体角点由图像坐标系转换至世界坐标系的坐标转换矩阵可能由多个坐标转换矩阵构成。
在一个实施例中,终端从目标箱体对应的多个箱体角点中选取目标箱体角点,并基于所选取出的目标箱体角点对应的三维坐标点,以及相机原点与基准面方程确定目标箱体的箱体体积。
上述箱体体积测量方法,获取目标箱体对应的二维图像,并调用预设接口获取该二维图像对应的二维特征点与三维点云数据,能够降低二维特征点与三维点云数据的获取成本,由此,基于所获取到的二维图像、二维特征点与三维点云数据自动进行箱体体积测量时,能够降低箱体体积的测量成本。进一步地,通过已训练好的角点识别模型自动识别目标箱体的箱体角点,基于箱体角点与二维特征点确定目标箱体的基准面,以及三维点云数据中与基准面对应的目标三维点云数据,并基于目标三维点云数据自动拟合基准面方程,进而根据基准面方程、相机原点与箱体角点自动测量目标箱体的箱体体积,无需人工过多的参与,由此,在提高箱体体积测量的准确性和效率的情况下,能够降低测量成本。
在一个实施例中,已训练好的角点识别模型包括:特征提取模型、关键点检测模型与连接线检测模型;步骤S204包括:通过特征提取模型提取二维图像对应的特征图;通过关键点检测模型对特征图进行关键点检测,得到已标注关键点的第一图像;通过连接线检测模型对特征图进行连接线检测,得到已标注连接线的第二图像;根据第一图像与第二图像确定二维图像中的箱体角点。
其中,特征提取模型是用于从二维图像中提取特征图的模型。关键点检测模型是用于根据特征图检测二维图像中的关键点的模型。连接线检测模型是用于根据特征图检测二维图像中的关键点的连接线的模型。
具体地,终端将所获取到的二维图像输入已训练好的特征提取模型,通过该特征提取模型提取二维图像对应的特征图。终端将所提取出的特征图分别输入已训练好的关键点检测模型与连接线检测模型,通过关键点检测模型根据特征图进行关键点检测,并对检测出的关键点进行标注,得到已标注关键点的第一图像,通过连接线检测模型根据特征图进行连接线检测,并对检测出的连接线进行标注,得到已标注连接线的第二图像。终端将第一图像中已标注的关键点,按照第二图像中已标注的连接线进行连接,并按照各关键点的连接关系确定二维图像中的箱体角点。
在一个实施例中,第一图像中已标注的关键点是二维图像中与目标箱体的顶点对应的二维像素点。第二图像中已标注的连接线是二维图像中与目标箱体的边对应的连接线。在未确定连接关系的情况下,一个关键点可能与其他任一个关键点进行连接,由此,多个关键点之间存在多种可能的连接关系。而目标箱体的各个顶点之间的连接关系是确定的,也就是目标箱体的各个顶点在二维图像中对应的二维像素点之间的连接关系是确定的。第二图像中已标注的连接线指定了第一图像中的各个关键点之间的连接关系。终端根据第二图像中已标注的连接线确定各个关键点之间的连接关系,并按照所确定的连接关系对第一图像中已标注的关键点进行连接,并按照连接关系对已连接的各个关键点进行顺序编号,得到目标箱体对应的多个箱体角点。这样,每个箱体角点对应有唯一的角点编号,角点编号能够用于表征箱体角点之间的连接关系,根据箱体角点与相应的角点编号能够确定相应的目标箱体。
在一个实施例中,特征提取模型具体可以是卷积网络模型,比如VGG18(VisualGeometry Group,卷积网络模型)。关键点检测模型与连接线检测模型具体可以是CNN(Convolutional Neural Networks,卷积神经网络)。
在一个实施例中,终端根据二维图像对应的特征图,通过三个阶段定位二维图像中的箱体角点,每个阶段包括两个并行的分支,一个分支通过关键点检测模型检测热点图,用于定位关键点,一个分支通过连接线检测模型检测向量场,用于定位关键点之间的连接线。前一个阶段的输出作为后一个阶段的输入,第三阶段输出已标注关键点的第一图像与已标注连接线的第二图像。终端在得到二维图像对应的第一图像与第二图像后,通过图论中的偶匹配确定关键点与连接线之间的关系,并按照连接线将关键点进行连接,得到合成的目标箱体。
在一个实施例中,终端将已训练好的特征提取模型、关键点检测模型与连接线检测模型进行组合,得到已训练好的角点识别模型。特征提取模型、关键点检测模型与连接线检测模型可通过联合训练的方式进行训练,也可分别进行训练,通过联合训练的方式能够直接训练得到已训练好的角点识别模型。
在一个实施例中,对于训练样本集中的每个二维图像,针对二维图像中的每个关键点,构建一张与最后一层特征图大小一致的纯黑图,根据关键点在二维图像中的位置,在纯黑图中的相同位置构造一个高斯模糊出来的可调半径的小圆圈。在关键点检测模型的训练过程中,将模型学习到的特征图直接与所构建的图分别做均方差,得到每个关键点对应的损失函数,并根据损失函数动态调整模型的参数,直至训练停止,得到已训练好的关键点检测模型。可以理解,二维图像中的关键点是与目标箱体的顶点对应的二维像素点。目标箱体的7个顶点对应二维图像中的7个关键点,由此构建出7个损失函数。
相应地,对于训练样本集中的每个二维图像,针对二维图像中的每个连接关系,构建一张与最后一张特征图大小一致的纯黑图,基于连接关系的方向以及该连接关系所连接的两个关键点的位置,在纯黑图中该两个关键点的连接线上绘制一条粗线,且针对x与y分别进行绘制,得到针对每个连接关系构建的两幅图。其中,x图绘制值为sin(theta),y图绘制值为cos(theta),theta为第一个关键点到第二个关键点的方向法线夹角。在连接线检测模型的训练过程中,将模型学习到的特征图与所构建的图做均方差,得到每个连接关系对应的两个损失函数,并根据损失函数动态调整模型的参数,直至训练停止,得到已训练好的连接线检测模型。可以理解,二维图像中的连接关系是与目标箱体的边对应的连接线。目标箱体的9条边对应有9个连接关系,由此构造出2*9=18个损失函数。在模型训练过程中,将目标箱体在二维图像中隐藏的关键点及连接关系的损失设置为0。
在一个实施中,终端通过OpenPose识别二维图像中的箱体角点。
上述实施例中,通过已训练好的特征提取模型、关键点检测模型与连接线检测模型,从二维图像中识别目标箱体的箱体角点,能够提高箱体角点的识别准确性与效率。
在一个实施例中,步骤S208包括:从目标三维点云数据中选取预设数量的目标三维坐标点;按照目标三维坐标点进行平面拟合得到拟合平面;确定目标三维点云数据中与拟合平面的距离小于或等于预设距离阈值的三维坐标点的占比;当占比大于或等于预设占比阈值时,将拟合平面对应的拟合方程确定为基准面方程。
其中,预设数量可根据实际情况自定义,比如3。预设距离阈值可根据实际情况自定义,比如0.5。预设占比阈值比如80%。
具体地,终端从目标三维点云数据中选取预设数量的目标三维坐标点,并按照所选取出的目标三维坐标点对基准面进行平面拟合得到拟合平面,以及拟合平面对应的拟合方程。终端分别计算目标三维点云数据中的每个三维坐标点与拟合平面的距离,统计距离小于获得等于预设距离阈值的三维坐标点的数量,并根据统计的数量与目标三维点云数据中三维坐标点的总数量,计算该目标三维点云数据中与拟合平面的距离小于或等于预设距离阈值的三维坐标点的占比。当计算的占比大于或等于预设占比阈值时,终端将拟合平面确定为拟合得到的基准面,并将拟合平面对应的拟合方程确定为基准面对应的基准面方程。
在一个实施例中,终端从目标三维点云数据中随机选取预设数量的目标三维坐标点,并以及所选取出的目标三维坐标点进行平面拟合。可以理解,任意两次选取出的预设数量的目标三维坐标点不完全相同,也就是说任意两次选取出的目标三维坐标点可以完全不同,也可以部分相同。
在一个实施例中,当计算的占比小于预设占比阈值时,终端返回至从目标三维点云数据中选取预设数量的目标三维坐标点的步骤继续执行,直至满足迭代停止条件。其中,迭代停止条件是用于判断是否停止平面拟合迭代过程的依据或条件,具体可以是迭代次数大于或等于预设次数,或者,所有的目标三维坐标点组合均遍历完毕,或者,基于当前选取出的目标三维坐标点拟合得到基准面及相应的基准面方程。
具体地,当目标三维点云数据中与拟合平面的距离小于或等于预设距离阈值的三维坐标点的占比小于预设占比阈值时,终端再次从目标三维点云数据中选取预设数量的目标三维坐标点,基于再次选取出的目标三维坐标点再次进行平面拟合,并确定目标三维点云数据中与再次拟合的拟合平面的距离小于或等于预设距离的三维坐标点的占比。当该占比大于或等于预设占比阈值时,终端将该再次拟合的拟合平面对应的拟合方程确定为基准面方程,否则,再次从目标三维点云数据中选取预设数量的目标三维坐标点,并针对再次选取出的目标三维坐标点执行上述相关步骤,直至满足迭代停止条件。这样,当根据当前选取出的目标三维坐标点拟合得到的拟合平面不符合拟合精度时,重新选取目标三维坐标点,并基于重新选取的目标三维坐标点重新进行平面拟合,以提高拟合准确性。
在一个实施例中,当迭代次数大于或等于预设次数,或者,所有的目标三维坐标点组合均遍历完毕时,若基于每次所选取出的目标三维坐标点组合所确定的占比均小于预设占比阈值,终端则从多个目标三维坐标点组合中筛选占比最大的目标三维坐标点组合,并将根据所筛选出的目标三维坐标点组合拟合得到的拟合方程确定为基准面方程。
上述实施例中,根据所选取出的目标三维坐标点进行平面拟合,能够提高拟合效率,而基于目标三维点云数据中各个三维坐标点与拟合平面的距离,确定最终拟合得到的基准面及基准面方程,能够保证拟合的准确性。
在一个实施例中,步骤S210包括:从箱体角点中选取多个第一箱体角点与一个第二箱体角点;根据相机原点、基准面方程与每个第一箱体角点对应的三维坐标点,确定相应第一箱体角点在基准面的投影点;根据相机原点、基准面方程与第二箱体角点对应的三维坐标点,确定第二箱体角点在基准面的投影点与投影角度;根据所确定的投影点与投影角度计算目标箱体对应的箱体体积。
具体地,终端按照每个箱体角点对应的角点编号,从目标箱体对应的多个箱体角点中选取多个第一箱体角点与一个第二箱体角点,并分别确定每个第一箱体角点与第二箱体角点在世界坐标系中对应的三维坐标点。终端以相机原点为射线起点,分别以每个第一箱体角点对应的三维坐标点为射线上的点,确定由相机原点与每个第一箱体角点对应的三维坐标点构成的射线,得到多条射线,并确定每条射线对应的射线方程。终端将每条射线对应的射线方程与基准面方程进行联合求解,根据求解结果确定射线与基准面的交点,并将该交点确定为该射线对应的第一箱体角点在基准面的投影点。相应地,终端以相机原点为射线起点,以第二箱体角点对应的三维坐标点为射线上的点,确定该第二箱体角点对应的射线与射线方程。终端基于第二箱体角点对应的射线方程与基准面方程,确定第二箱体角点在基准面的投影点。
进一步地,终端从多个第一箱体角点中确定与第二箱体角点相邻的第一箱体角点,并根据相机原点、该相邻的第一箱体角点对应的投影点,以及第二箱体角点对应的投影点,确定第二箱体角点在基准面的投影角度。终端根据各个第一箱体角点对应的投影点,以及第二箱体角点对应的投影点与投影角度,确定目标箱体的长、宽与高,并基于长、宽与高计算目标箱体的箱体体积。
在一个实施例中,箱体角点对应的角点编号与目标箱体的顶点相对应。终端按照箱体角点对应的角点编号,从识别出的箱体角点中选取与目标箱体的基准面上的顶点对应的多个第一箱体角点,并选取与基准面平行的箱体面上的顶点所对应的第二箱体角点。
如图3所示,以箱体面A为基准面,也就是以目标箱体的上表面为基准面,则选取与上表面上的顶点对应的箱体角点1,2与3为第一箱体角点,并选取与目标箱体下表面上的顶点对应的箱体角点5为第二箱体角点。
在一个实施例中,相机原点、第二箱体角点在基准面的投影点、与第二箱体角点相邻的第一箱体角点在基准面的投影点,在世界坐标系中构成一个三角形,终端按照三角形的余弦定理,根据该三角形的三个顶点,能够确定与第二箱体角点在基准面的投影角度互补的角度,进而能够确定第二箱体角点在基准面的投影角度。
图4为一个实施例中,基于箱体角点、相机原点与基准面方程在世界坐标系中重现目标箱体的结构示意图。终端选取如图3所示的箱体角点1,2与3为第一箱体角点,以及箱体角点5为第二箱体角点,第一箱体角点1,2与3各自对应的三维坐标点与相机原点形成的射线分别与基准面相交,得到交点P3,P2与P1,该三个交点P3,P2与P1分别为第一箱体角点1,2与3在基准面的投影点。相机原点O与第二箱体角点5对应的三维坐标点P形成的射线与基准面的交点P0,为该第二箱体角点5在基准面的投影点,该射线与基准面的夹角angle2,为第二箱体角点5在基准面的投影角度。相机原点O、投影点P0与投影点P2构成三角形OP0P2,终端按照余弦定理,根据三角形OP0P2的边OP0、OP2与P0P2确定角度angle1。其中,余弦定理为由此,按照angle1=arcos(cos(angle1)),即可确定角度angle1。角度angle1与投影角度angle2互补,由此,按照angle2=180°-angle1即可确定投影角度angle2。
上述实施例中,根据箱体角点对应的三维坐标点将箱体角点投影至基准面,得到箱体角点在基准面的投影点与投影角度,并基于投影点与投影角度确定箱体体积,能够提高箱体体积的测量准确性。
在一个实施例中,根据所确定的投影点与投影角度计算目标箱体对应的箱体体积,包括:根据多个第一箱体角点各自对应的投影点,确定目标箱体对应的长和宽;根据第二箱体角点对应的投影点与投影角度,以及与第二箱体角点相邻的第一箱体角点对应的投影点,确定目标箱体对应的高;基于长、宽与高确定目标箱体对应的箱体体积。
具体地,终端计算相邻两个第一箱体角点各自对应的投影点之间的投影点距离,根据投影点距离确定目标箱体的长和宽。第二箱体角点对应的三维坐标点与投影点,以及与第二箱体角点相邻的第一箱体角点对应的投影点构成直角三角形,按照直角三角形的边角关系,根据第二箱体角点对应的投影点与投影角度,以及与第二箱体角点相邻的第一箱体角点对应的投影点,能够确定该相邻的第一箱体角点对应的投影点与第二箱体角点对应的三维坐标点之间的距离,并将该距离确定为目标箱体的高。终端根据目标箱体的长、宽与高计算得到该目标箱体的箱体体积。
如图4所示,基于第一箱体角点1,2与3各自对应的投影点P3,P2与P1,能够确定目标箱体的长P1P2与宽P2P3。第二箱体角点5对应的投影点P0与三维坐标点P,以及与第二箱体角点5相邻的第一箱体角点2对应的投影点P2,构成直角三角形P0P2P。在该直角三角形P0P2P中,根据边P0P2与投影角度angle2,按照边角关系能够确定边P2P,并将边P2P的边长确定为目标箱体的高h。其中,边角关系为h=tan(angle2)*p0p2。由此,目标箱体的箱体体积V=P1P2*P2P3*h。
可以理解,由于将箱体角点按照预配置的坐标转换矩阵,由图像坐标系转换至世界坐标系时,将箱体角点对应的二维坐标扩充至三维坐标,且新增维度坐标的坐标值为与箱体角点无关联关系的固定值,故按照上述方式在世界坐标系中所确定的与箱体角点对应的三维坐标点,可能不是目标箱体中相应顶点所对应的三维坐标点。而箱体角点是从二维图像中识别出来的,故箱体角点对应的二维坐标是准确的,这样,箱体角点在世界坐标系中对应的三维坐标点的横坐标与纵坐标方向的坐标值是准确的,由此,箱体角点在目标箱体中对应的顶点,位于该箱体角点对应的三维坐标点与相机原点形成的射线上。这样,第一箱体角点对应的射线与基准面的交点,可作为该第一箱体角点在目标箱体中对应的顶点。
上述实施例中,基于第一箱体角点对应的投影点确定目标箱体的长和宽,基于第二箱体角点对应的投影点与投影角度确定目标箱体的高,进而确定目标箱体的箱体体积,能够在降低体积测量复杂度的情况下,保证测量准确性与效率。
在一个实施例中,第一箱体角点与第二箱体角点均为目标箱体角点;根据所确定的投影点与投影角度计算目标箱体对应的箱体体积,包括:根据所确定的投影点与投影角度确定相应目标箱体角点所对应的箱体三维角点的初始角点坐标;确定优化参数,优化参数包括优化限制条件、目标方程、优化迭代次数与优化误差;根据优化参数调用优化函数对初始角点坐标进行迭代优化,得到目标角点坐标;根据目标角点坐标计算目标箱体的箱体体积。
具体地,终端将从箱体角点中筛选出的多个第一箱体角点与一个第二箱体角点确定为目标箱体角点。终端将各第一箱体角点在基准面的投影点,确定为相应第一箱体角点在世界坐标系中所对应的箱体三维角点,并将投影点的三维坐标确定为相应箱体三维角点的初始角点坐标。终端根据第二箱体角点在基准面的投影点与投影角度,以及与该第二箱体角点相邻的第一箱体角点在基准面的投影点确定目标箱体的高,也就是确定该第二箱体角点与相邻的第一箱体角点之间的距离,并根据该相邻的第一箱体角点对应的箱体三维角点的初始角点坐标与目标箱体的高,确定第二箱体角点对应的箱体三维角点的初始角点坐标。
进一步地,终端获取预配置的优化限制条件、目标方程、优化迭代次数与优化误差等优化参数,并根据所获取到的优化参数调用预配置的优化函数,以通过优化函数对各目标箱体角点对应的初始角点坐标进行迭代优化,得到目标角点坐标。终端根据优化得到的目标角点坐标,按照几何关系确定目标箱体的长、宽与高,并根据所确定的长、宽与高计算目标箱体的箱体体积。
在一个实施例中,第一箱体角点所在的箱体面与第二箱体角点所在的箱体面相互平行,故将与第二箱体角点相邻的第一箱体角点对应的初始角点坐标,减去或者加上目标箱体的高,能够得到第二箱体角点对应的初始角点坐标。比如,如图3所示,将第一箱体角点2对应的初始角点坐标中的竖坐标减去目标箱体的高h,能够得到第二箱体角点5对应的初始角点坐标。
在一个实施例中,在箱体三维角点的优化过程中,四个目标箱体角点各自对应箱体三维角点的初始角点坐标为待优化的变量。四个箱体三维角点能够确定三个箱体面,将所有二维特征点对应的三维坐标点到相应箱体面的距离总和确定为目标方程。优化限制条件包括线性限制条件与非线性限制条件。线性限制条件是指四个箱体三维角点与通过角点识别模型在二维图像中识别出的箱体角点的像素差为零,也就是指将箱体三维角点在世界坐标系中对应的角点坐标转换至图像坐标系,所得到的像素坐标与该箱体三维角点在二维图像中对应的箱体角点的二维坐标相匹配。基于线性限制条件能够实现角点对齐。由此,箱体三维角点与二维图像中的相应箱体角点存在如下对应关系:
其中,(u*,v*)为通过角点识别模型在二维图像中识别出的箱体角点的二维坐标,(u*,v*,1)为对二维坐标扩充后的三维坐标,(X,Y,Z)为箱体三维角点在世界坐标系中的角点坐标,(u,v,w)为将箱体三维角点对应的角点坐标从世界坐标系转换至图像坐标系所得到的像素坐标。为将世界坐标系中的角点坐标转换至图像坐标系中的像素坐标的坐标转换矩阵。
非线性限制条件是指由四个箱体三维角点确定的三个箱体面的法向量相互垂直。根据四个箱体三维角点能够确定相应箱体面的法向量,按照目标箱体中任意两个箱体面的法向量相互垂直的关系,确定非线性限制条件。比如,如图3所示,向量21为箱体面C的法向量。优化迭代次数是指迭代优化的最大次数。优化迭代次数与优化误差是判断是否停止迭代优化的依据或条件。
在一个实施例中,终端调用优化函数对箱体三维角点对应的初始角点坐标进行迭代优化的过程中,需要保证每次优化后的每个角点坐标均满足优化限制条件,并根据优化后的角点坐标与目标方程确定损失函数,进而根据损失函数与优化限制条件重新优化角点坐标,得到重新优化后的角点坐标,直至迭代次数达到优化迭代次数,或者,误差小于优化误差时停止迭代优化过程,并将当前的角点坐标确定为相应箱体三维角点对应的目标角点坐标。
在一个实施例中,将上述一个或多个实施例中的优化限制条件与目标方程一并作为目标方程,由此,优化参数包括多个目标方程。在箱体三维角点的迭代优化过程中,根据该多个目标方程各自对应的损失函数得到综合损失函数,并根据综合损失函数动态优化各箱体三维角点对应的角点坐标,直至停止迭代优化过程,得到目标角点坐标。
在一个实施例中,终端调用优化函数,按照优化参数与梯度下降法迭代优化各箱体三维角点对应的初始角点坐标,得到相应的目标角点坐标。
上述实施例中,基于几何约束条件动态优化箱体三维角点,能够提高箱体三维角点的角点坐标的准确性,并基于优化后的箱体三维角点对应的目标角点坐标计算目标箱体的箱体体积,能够提高箱体体积测量的准确性与鲁棒性。
如图5所示,在一个实施例中,提供了一种箱体体积测量方法,该方法具体包括以下步骤:
S502,获取目标箱体对应的二维图像,并调用预设接口获取二维图像对应的二维特征点与三维点云数据。
S504,通过特征提取模型提取二维图像对应的特征图。
S506,通过关键点检测模型对特征图进行关键点检测,得到已标注关键点的第一图像。
S508,通过连接线检测模型对特征图进行连接线检测,得到已标注连接线的第二图像。
S510,根据第一图像与第二图像确定二维图像中的箱体角点。
S512,根据箱体角点确定目标箱体对应的多个箱体面。
S514,基于二维特征点从多个箱体面中选取基准面。
S516,根据基准面内的二维特征点,从三维点云数据中筛选目标三维点云数据。
S518,从目标三维点云数据中选取预设数量的目标三维坐标点。
S520,按照目标三维坐标点进行平面拟合得到拟合平面。
S522,确定目标三维点云数据中与拟合平面的距离小于或等于预设距离阈值的三维坐标点的占比。
S524,当占比大于或等于预设占比阈值时,将拟合平面对应的拟合方程确定为基准面方程。
S526,从箱体角点中选取多个第一箱体角点与一个第二箱体角点。
S528,根据相机原点、基准面方程与每个第一箱体角点对应的三维坐标点,确定相应第一箱体角点在基准面的投影点。
S530,根据相机原点、基准面方程与第二箱体角点对应的三维坐标点,确定第二箱体角点在基准面的投影点与投影角度。
S532,根据多个第一箱体角点各自对应的投影点,确定目标箱体对应的长和宽。
S534,根据第二箱体角点对应的投影点与投影角度,以及与第二箱体角点相邻的第一箱体角点对应的投影点,确定目标箱体对应的高。
S536,基于长、宽与高确定目标箱体对应的箱体体积。
S538,根据所确定的投影点与投影角度确定相应目标箱体角点所对应的箱体三维角点的初始角点坐标;第一箱体角点与第二箱体角点均为目标箱体角点。
S540,确定优化参数,优化参数包括优化限制条件、目标方程、优化迭代次数与优化误差。
S542,根据优化参数调用优化函数对初始角点坐标进行迭代优化,得到目标角点坐标。
S544,根据目标角点坐标计算目标箱体的箱体体积。
应该理解的是,虽然图2与图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2与图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种箱体体积测量装置600,包括:获取模块602、识别模块604、筛选模块606、拟合模块608和确定模块610,其中:
获取模块602,用于获取目标箱体对应的二维图像,并调用预设接口获取二维图像对应的二维特征点与三维点云数据;
识别模块604,用于通过已训练好的角点识别模型识别二维图像中的箱体角点;
筛选模块606,用于根据箱体角点与二维特征点确定目标箱体对应的基准面,并从三维点云数据中筛选基准面对应的目标三维点云数据;
拟合模块608,用于基于目标三维点云数据进行平面拟合得到基准面方程;
确定模块610,用于根据相机原点与基准面方程,以及与箱体角点对应的三维坐标点,确定目标箱体的箱体体积。
在一个实施例中,已训练好的角点识别模型包括:特征提取模型、关键点检测模型与连接线检测模型;识别模块604,还用于通过特征提取模型提取二维图像对应的特征图;通过关键点检测模型对特征图进行关键点检测,得到已标注关键点的第一图像;通过连接线检测模型对特征图进行连接线检测,得到已标注连接线的第二图像;根据第一图像与第二图像确定二维图像中的箱体角点。
在一个实施例中,筛选模块606,还用于根据箱体角点确定目标箱体对应的多个箱体面;基于二维特征点从多个箱体面中选取基准面;根据基准面内的二维特征点,从三维点云数据中筛选目标三维点云数据。
在一个实施例中,拟合模块608,还用于从目标三维点云数据中选取预设数量的目标三维坐标点;按照目标三维坐标点进行平面拟合得到拟合平面;确定目标三维点云数据中与拟合平面的距离小于或等于预设距离阈值的三维坐标点的占比;当占比大于或等于预设占比阈值时,将拟合平面对应的拟合方程确定为基准面方程。
在一个实施例中,确定模块610,还用于从箱体角点中选取多个第一箱体角点与一个第二箱体角点;根据相机原点、基准面方程与每个第一箱体角点对应的三维坐标点,确定相应第一箱体角点在基准面的投影点;根据相机原点、基准面方程与第二箱体角点对应的三维坐标点,确定第二箱体角点在基准面的投影点与投影角度;根据所确定的投影点与投影角度计算目标箱体对应的箱体体积。
在一个实施例中,确定模块610,还用于根据多个第一箱体角点各自对应的投影点,确定目标箱体对应的长和宽;根据第二箱体角点对应的投影点与投影角度,以及与第二箱体角点相邻的第一箱体角点对应的投影点,确定目标箱体对应的高;基于长、宽与高确定目标箱体对应的箱体体积。
在一个实施例中,第一箱体角点与第二箱体角点均为目标箱体角点;确定模块610,还用于根据所确定的投影点与投影角度确定相应目标箱体角点所对应的箱体三维角点的初始角点坐标;确定优化参数,优化参数包括优化限制条件、目标方程、优化迭代次数与优化误差;根据优化参数调用优化函数对初始角点坐标进行迭代优化,得到目标角点坐标;根据目标角点坐标计算目标箱体的箱体体积。
关于箱体体积测量装置的具体限定可以参见上文中对于箱体体积测量方法的限定,在此不再赘述。上述箱体体积测量装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种箱体体积测量方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述各个实施例中的箱体体积测量方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各个实施例中的箱体体积测量方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种箱体体积测量方法,所述方法包括:
获取目标箱体对应的二维图像,并调用预设接口获取所述二维图像对应的二维特征点与三维点云数据;
通过已训练好的角点识别模型识别所述二维图像中的箱体角点;
根据所述箱体角点与所述二维特征点确定所述目标箱体对应的基准面,并从所述三维点云数据中筛选所述基准面对应的目标三维点云数据;
基于所述目标三维点云数据进行平面拟合得到基准面方程;
按照每个箱体角点对应的角点编号,从识别出的箱体角点中选取与目标箱体的基准面上的顶点对应的多个第一箱体角点,并选取与基准面平行的箱体面上的顶点所对应的第二箱体角点;根据相机原点、所述基准面方程与每个第一箱体角点对应的三维坐标点,确定相应第一箱体角点在基准面的投影点;根据所述相机原点、所述基准面方程与所述第二箱体角点对应的三维坐标点,确定所述第二箱体角点在所述基准面的投影点与投影角度;根据所确定的投影点与投影角度计算所述目标箱体对应的箱体体积。
2.根据权利要求1所述的方法,其特征在于,所述已训练好的角点识别模型包括:特征提取模型、关键点检测模型与连接线检测模型;所述通过已训练好的角点识别模型识别所述二维图像中的箱体角点,包括:
通过所述特征提取模型提取所述二维图像对应的特征图;
通过所述关键点检测模型对所述特征图进行关键点检测,得到已标注关键点的第一图像;
通过所述连接线检测模型对所述特征图进行连接线检测,得到已标注连接线的第二图像;
根据所述第一图像与所述第二图像确定所述二维图像中的箱体角点。
3.根据权利要求1所述的方法,其特征在于,所述根据所述箱体角点与所述二维特征点确定所述目标箱体对应的基准面,并从所述三维点云数据中筛选所述基准面对应的目标三维点云数据,包括:
根据所述箱体角点确定所述目标箱体对应的多个箱体面;
基于所述二维特征点从所述多个箱体面中选取基准面;
根据所述基准面内的二维特征点,从所述三维点云数据中筛选目标三维点云数据。
4.根据权利要求1所述的方法,其特征在于,所述基于所述目标三维点云数据进行平面拟合得到基准面方程,包括:
从所述目标三维点云数据中选取预设数量的目标三维坐标点;
按照所述目标三维坐标点进行平面拟合得到拟合平面;
确定所述目标三维点云数据中与所述拟合平面的距离小于或等于预设距离阈值的三维坐标点的占比;
当所述占比大于或等于预设占比阈值时,将所述拟合平面对应的拟合方程确定为基准面方程。
5.根据权利要求1所述的方法,其特征在于,所述根据所确定的投影点与投影角度计算所述目标箱体对应的箱体体积,包括:
根据所述多个第一箱体角点各自对应的投影点,确定所述目标箱体对应的长和宽;
根据所述第二箱体角点对应的投影点与投影角度,以及与所述第二箱体角点相邻的第一箱体角点对应的投影点,确定所述目标箱体对应的高;
基于所述长、宽与高确定所述目标箱体对应的箱体体积。
6.根据权利要求1所述的方法,其特征在于,所述第一箱体角点与所述第二箱体角点均为目标箱体角点;所述根据所确定的投影点与投影角度计算所述目标箱体对应的箱体体积,包括:
根据所确定的投影点与投影角度确定相应目标箱体角点所对应的箱体三维角点的初始角点坐标;
确定优化参数,所述优化参数包括优化限制条件、目标方程、优化迭代次数与优化误差;
根据所述优化参数调用优化函数对所述初始角点坐标进行迭代优化,得到目标角点坐标;
根据所述目标角点坐标计算所述目标箱体的箱体体积。
7.一种箱体体积测量装置,其特征在于,所述装置包括:
获取模块,用于获取目标箱体对应的二维图像,并调用预设接口获取所述二维图像对应的二维特征点与三维点云数据;
识别模块,用于通过已训练好的角点识别模型识别所述二维图像中的箱体角点;
筛选模块,用于根据所述箱体角点与所述二维特征点确定所述目标箱体对应的基准面,并从所述三维点云数据中筛选所述基准面对应的目标三维点云数据;
拟合模块,用于基于所述目标三维点云数据进行平面拟合得到基准面方程;
确定模块,用于按照每个箱体角点对应的角点编号,从识别出的箱体角点中选取与目标箱体的基准面上的顶点对应的多个第一箱体角点,并选取与基准面平行的箱体面上的顶点所对应的第二箱体角点;根据相机原点、所述基准面方程与每个第一箱体角点对应的三维坐标点,确定相应第一箱体角点在基准面的投影点;根据所述相机原点、所述基准面方程与所述第二箱体角点对应的三维坐标点,确定所述第二箱体角点在所述基准面的投影点与投影角度;根据所确定的投影点与投影角度计算所述目标箱体对应的箱体体积。
8.根据权利要求7所述的装置,其特征在于,所述已训练好的角点识别模型包括:特征提取模型、关键点检测模型与连接线检测模型;所述识别模块还用于:
通过所述特征提取模型提取所述二维图像对应的特征图;通过所述关键点检测模型对所述特征图进行关键点检测,得到已标注关键点的第一图像;通过所述连接线检测模型对所述特征图进行连接线检测,得到已标注连接线的第二图像;根据所述第一图像与所述第二图像确定所述二维图像中的箱体角点。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911279345.4A CN113066117B (zh) | 2019-12-13 | 2019-12-13 | 箱体体积测量方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911279345.4A CN113066117B (zh) | 2019-12-13 | 2019-12-13 | 箱体体积测量方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113066117A CN113066117A (zh) | 2021-07-02 |
CN113066117B true CN113066117B (zh) | 2024-05-17 |
Family
ID=76557780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911279345.4A Active CN113066117B (zh) | 2019-12-13 | 2019-12-13 | 箱体体积测量方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113066117B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113628166A (zh) * | 2021-07-12 | 2021-11-09 | 广东电网有限责任公司广州供电局 | 一种开关柜断路器室的几何尺寸检测方法及装置 |
CN113793296B (zh) * | 2021-08-06 | 2024-09-06 | 中国科学院国家天文台 | 一种点云数据处理方法及装置 |
CN113888622A (zh) * | 2021-10-14 | 2022-01-04 | 吉旗(成都)科技有限公司 | 车厢内货物体积的确定方法、装置、电子设备及存储介质 |
CN118134996B (zh) * | 2024-05-10 | 2024-08-13 | 金华信园科技有限公司 | 一种包装箱智能定位体积判断系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106813568A (zh) * | 2015-11-27 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 物体测量方法及装置 |
WO2018039871A1 (zh) * | 2016-08-29 | 2018-03-08 | 北京清影机器视觉技术有限公司 | 三维视觉测量数据的处理方法和装置 |
CN108416804A (zh) * | 2018-02-11 | 2018-08-17 | 深圳市优博讯科技股份有限公司 | 获取目标物体体积的方法、装置、终端设备及存储介质 |
CN108981563A (zh) * | 2017-11-30 | 2018-12-11 | 成都通甲优博科技有限责任公司 | 体积测量方法、装置及系统 |
CN109000559A (zh) * | 2018-06-11 | 2018-12-14 | 广东工业大学 | 一种物体体积的测量方法、装置、系统和可读存储介质 |
WO2019015154A1 (zh) * | 2017-07-17 | 2019-01-24 | 先临三维科技股份有限公司 | 基于单目三维扫描系统的三维重构方法和装置 |
CN109272547A (zh) * | 2018-09-17 | 2019-01-25 | 南京阿凡达机器人科技有限公司 | 一种包裹外接体积测量方法、系统、存储介质及移动终端 |
-
2019
- 2019-12-13 CN CN201911279345.4A patent/CN113066117B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106813568A (zh) * | 2015-11-27 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 物体测量方法及装置 |
WO2018039871A1 (zh) * | 2016-08-29 | 2018-03-08 | 北京清影机器视觉技术有限公司 | 三维视觉测量数据的处理方法和装置 |
CN108541322A (zh) * | 2016-08-29 | 2018-09-14 | 北京清影机器视觉技术有限公司 | 三维视觉测量数据的处理方法和装置 |
WO2019015154A1 (zh) * | 2017-07-17 | 2019-01-24 | 先临三维科技股份有限公司 | 基于单目三维扫描系统的三维重构方法和装置 |
CN108981563A (zh) * | 2017-11-30 | 2018-12-11 | 成都通甲优博科技有限责任公司 | 体积测量方法、装置及系统 |
CN108416804A (zh) * | 2018-02-11 | 2018-08-17 | 深圳市优博讯科技股份有限公司 | 获取目标物体体积的方法、装置、终端设备及存储介质 |
CN109000559A (zh) * | 2018-06-11 | 2018-12-14 | 广东工业大学 | 一种物体体积的测量方法、装置、系统和可读存储介质 |
CN109272547A (zh) * | 2018-09-17 | 2019-01-25 | 南京阿凡达机器人科技有限公司 | 一种包裹外接体积测量方法、系统、存储介质及移动终端 |
Also Published As
Publication number | Publication date |
---|---|
CN113066117A (zh) | 2021-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113066117B (zh) | 箱体体积测量方法、装置、计算机设备和存储介质 | |
US10880541B2 (en) | Stereo correspondence and depth sensors | |
CN108062784B (zh) | 三维模型纹理贴图转换方法与装置 | |
US9135710B2 (en) | Depth map stereo correspondence techniques | |
US8903177B2 (en) | Method, computer program and device for hybrid tracking of real-time representations of objects in a sequence | |
CN111627075B (zh) | 基于aruco码的摄像头外参标定方法、系统、终端及介质 | |
CN112991429B (zh) | 箱体体积测量方法、装置、计算机设备和存储介质 | |
CN109683699A (zh) | 基于深度学习实现增强现实的方法、装置及移动终端 | |
CN108362205B (zh) | 基于条纹投影的空间测距方法 | |
JP2018055199A (ja) | 画像処理プログラム、画像処理装置、及び画像処理方法 | |
CN113793370B (zh) | 三维点云配准方法、装置、电子设备及可读介质 | |
CN106295657A (zh) | 一种视频数据结构化过程中提取人体高度特征的方法 | |
CN111325828A (zh) | 一种基于三目相机的三维人脸采集方法及装置 | |
CN116091998A (zh) | 图像处理方法、装置、计算机设备和存储介质 | |
CN109685029B (zh) | 复杂空间结构的柔性物体识别方法、装置、设备和介质 | |
CN112991427A (zh) | 物体体积测量方法、装置、计算机设备和存储介质 | |
CN112991428B (zh) | 箱体体积测量方法、装置、计算机设备和存储介质 | |
CN117788686A (zh) | 一种基于2d影像的三维场景重建方法、装置及电子设备 | |
JP6016242B2 (ja) | 視点推定装置及びその分類器学習方法 | |
US9098746B2 (en) | Building texture extracting apparatus and method thereof | |
CN115908564A (zh) | 自动运输设备的仓储巡线方法和自动运输设备 | |
Wang et al. | Multi-surface hydraulic valve block technique hole plug inspection from monocular image | |
de Lima et al. | Toward a smart camera for fast high-level structure extraction | |
Chu et al. | Robust registration of aerial and close‐range photogrammetric point clouds using visual context features and scale consistency | |
JP4546155B2 (ja) | 画像処理方法、画像処理装置および画像処理プログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |