发明内容
本发明实施方式的目的在于提供一种平面物体的定位方法、终端及可读存储介质,能够提高对物体的定位的准确度。
为解决上述技术问题,本发明的实施方式提供了一种物体的定位方法,包括:获取图像数据中N个目标物体各自对应的第一估计平面,N为大于1的整数;融合N个第一估计平面,获得融合后的估计平面,并将融合后的估计平面作为N个目标物体共处的共有估计平面;根据共有估计平面,确定图像数据中每个目标物体的位姿信息。
本发明的实施方式还提供了一种终端,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行物体的定位方法。
本发明的实施方式还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现物体的定位方法。
本发明实施方式相对于现有技术而言,根据图像数据中的一个目标物体即可确定出该目标物体对应的第一估计平面,获取N个第一估计平面;由于每个目标物体共处的平面应为同一个平面,通过融合N个第一估计平面,可以实现各个目标物体到达共有估计平面的距离最小,从而找到最优的共有估计平面;同时由于共有估计平面是基于多个第一估计平面的融合确定,从而可以避免图像数据中因单个目标物体受环境影响,导致的对目标物体所处平面的估计不准确的情况;通过多个第一估计平面进行融合,丰富了确定共有估计平面的数据,进而提高了确定的共有估计平面的准确性。
另外,融合N个第一估计平面,获得融合后的估计平面,具体包括:根据N个第一估计平面,拟合第二估计平面;判断第二估计平面是否满足第一约束条件;若满足第一约束条件,则将第二估计平面作为共有估计平面;否则,调整第二估计平面的参数,直至第二估计平面满足第一约束条件,第一约束条件用于表征共有估计平面的参数为最优参数。通过平面拟合,可以快速确定出接近共有估计平面的第二估计平面,通过第一约束条件,不停调整第二估计平面的参数,从而加快了共有估计平面确定的速度以及准确性。
另外,第一约束条件为第一约束值最小,第一约束值根据第一约束距离和第一约束角度确定,第一约束距离为N个第一估计平面到第二估计平面的距离之和,第一约束角度为N个第一估计平面与第二估计平面的角度之和。通过综合考虑第一约束距离和第一约束角度,使得满足该第一约束条件的第二估计平面更加接近真实情况。
另外,根据共有估计平面,确定图像数据中每个目标物体的位姿信息,具体包括:拟合所有目标物体构成的三维点云数据,获得三维点云数据对应的第三估计平面;融合共有估计平面和第三估计平面,得到图像数据中所有目标物体共处的实际目标平面;根据实际目标平面,确定图像数据中每个目标物体的位姿信息。通过图像数据中所有目标物体确定的三维点云数据,确定第三估计平面,该第三估计平面是基于三维点云数据确定,通过融合第三估计平面和共有估计平面,可以进一步提高共有估计平面的准确度,得到更加准确的实际目标平面,进而准确的确定每个目标物体的位置信息。
另外,融合共有估计平面和第三估计平面,得到图像数据中所有目标物体共处的实际目标平面,具体包括:根据共有估计平面和第三估计平面,拟合得到第四估计平面;判断第四估计平面是否满足第二约束条件,若满足第二约束条件,则将第四估计平面作为实际目标平面,否则,调整第四估计平面的参数,直至第四估计平面满足第二约束条件;其中,第二约束条件为第二约束值最小,第二约束值根据第二约束距离和第二约束角度确定,第二约束距离为共有估计平面和第三估计平面到第四估计平面的距离之和,第二约束角度为共有估计平面与第四估计平面的角度以及第三估计平面与第四估计平面的角度之和。通过第二约束条件可以快速找出实际目标平面,提高确定实际目标平面的速度。
另外,获取图像数据中N个目标物体各自对应的第一估计平面,具体包括:针对图像数据中的每个目标物体确定对应的第一估计平面的过程为:获取目标物体在图像数据中的被识别轮廓区域;根据被识别轮廓区域内的特征点,确定变换矩阵;根据变换矩阵,确定第一估计平面。通过目标物体的被识别轮廓区域,便于快速确定出变换矩阵,进而准确确定对应的第一估计平面。
另外,目标物体的位姿信息为目标物体的中心点的位置信息;在获得融合后的估计平面之后,且在确定图像数据中每个目标物体的位姿信息之前,平面物体的定位方法还包括:根据每个被识别轮廓区域、实际目标平面以及目标物体的模板轮廓信息,确定在实际目标平面上每个目标物体的完整轮廓区域,目标物体的完整轮廓区域用于确定目标物体的中心点的位置信息。通过确定每个目标物体的完整轮廓区域,可以修正因被遮挡导致漏识别目标物体的问题,也避免出现因重叠的目标物体导致的定位不准确的问题。
另外,在获取图像数据中N个目标物体各自对应的第一估计平面之前,平面物体的定位方法还包括:获取图像数据中每个被识别的物体的置信度;在被识别的物体的置信度超过预设阈值后,将被识别的物体作为目标物体。选择置信度高的被识别物体作为目标物体,可以避免确定的第一估计平面与真实的平面之间差距过大的问题,提高确定实际目标平面的准确性。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
发明人发现相关对物体的定位技术中,由于扁平的物体的中心点与放置该物体的平面之间的距离较小,因而在定位过程中往往需要借助放置该扁平的物体的平面,但是若放置的平面的面积较小,不易与该扁平物体进行区分,会影响对该扁平物体的定位的准确性。
本发明的第一实施方式涉及一种物体的定位方法。该物体的定位方法可以应用于终端,例如,机器人、导航头盔、无人驾驶汽车、智能轮椅等。还可以应用于服务端,由该服务端将该物体的定位信息发送至需要该定位信息的终端。该物体的定位方法具体流程如图1所示。
步骤101:获取图像数据中N个目标物体各自对应的第一估计平面,N为大于1的整数。
在获取图像数据中N个目标物体各自确定的第一估计平面之前,需要获取图像数据中N个目标物体,获取N个目标物体的具体过程为:获取图像数据中每个被识别的物体的置信度;在被识别的物体的置信度超过预设阈值后,将被识别的物体作为目标物体。
具体的说,获取目标场景的图像数据,该图像数据可以是彩色图像,也可以是彩色图像和深度图像。其中,深度图像可以由深度图像采集装置采集获得,如深度摄像机;深度图像还可以是根据多个彩色图像计算得到。图像数据还可以从服务端获取,其中,服务端的图像数据是由目标场景内设置的图像采集装置采集后上传获得。
可以利用目标物体的检测模型对获取的图像数据进行目标检测,获得目标场景中所有被识别的物体。再获取每个被识别的物体的置信度,将每个被识别的物体的置信度分别与预设阈值进行比较,若出现被识别的物体的置信度超过预设阈值,则将该被识别物体作为目标物体;若被识别的物体的置信度未超过预设阈值,则将该被识别的物体作为非目标物体。例如,被识别的物体分别有物体A、物体B和物体C;且物体A的置信度为0.4,物体B的置信度为0.6,物体C的置信度为0.8;预设阈值为0.5,则将物体A的置信度与预设阈值进行比较、物体B的置信度与预设阈值进行比较,以及将物体C的置信度与预设阈值进行比较,确定物体B的置信度超过预设阈值,物体C的置信度超过预设阈值,则物体B和物体C作为目标物体。
通过选择置信度高的被识别物体作为目标物体,可以避免确定的第一估计平面与真实的平面之间差距过大的问题,提高确定实际目标平面的准确性。
一个具体实现中,针对图像数据中的每个目标物体确定对应的第一估计平面的过程为:获取目标物体在图像数据中的被识别轮廓区域;根据被识别轮廓区域内的特征点,确定变换矩阵;根据变换矩阵,确定第一估计平面。
具体的说,在进行目标检测后,可以确定出目标物体在图像数据中的被识别轮廓,被识别轮廓是指,该目标物体可见的轮廓范围。提取目标物体的可见轮廓范围内的特征点,特征点可以为一个或多个,本实施方式中获取该目标物体被识别轮廓区域内的四个特征点,例如,目标物体为扑克牌,可以获取该目标物体的被识别区域内的四个角点作为4个特征点。根据四个特征点,可以计算出对应的变换矩阵,例如,利用位姿求解方法计算得到由绝对平移向量t以及旋转矩阵R共同组成的RT矩阵。利用该RT矩阵即可得到该目标物体对应的第一估计平面。
步骤102:融合N个第一估计平面,获得融合后的估计平面,并将融合后的估计平面作为N个目标物体共处的共有估计平面。
一个具体的实现中,根据N个第一估计平面,拟合第二估计平面;判断第二估计平面是否满足第一约束条件;若满足第一约束条件,则将第二估计平面作为共有估计平面;否则,调整第二估计平面的参数,直至第二估计平面满足第一约束条件,第一约束条件用于表征共有估计平面的参数为最优参数。
具体的说,通常可以用方程ax+by+cz=d来表示一个平面,可以利用相关拟合方法拟合N个第一估计平面,得到第二估计平面,拟合的方法有多种,例如,可以最小二乘法,此处不再一一赘述。
在获得了该第二估计平面后,判断该第二估计平面是否满足第一约束条件。第一约束条件为第一约束值最小,第一约束值根据第一约束距离和第一约束角度确定,第一约束距离为N个第一估计平面到第二估计平面的距离之和,第一约束角度为N个第一估计平面与第二估计平面的角度之和。如公式(1)~公式(4):
Es=Ed+λEa 公式(1);
Ea=∑|A(pi,pj)-90·nij|2 公式(3);
其中,Es表示为第一约束值,Ed表示第一约束距离,Ea表示第一约束角度,λ用于平衡第一约束距离和第一约束角度之间的误差,v表示第一估计平面上的点的三维坐标,D用于衡量点到第二估计平面之间的距离,即D(pi,vij)表示第i个第一估计平面上的点j到第二估计平面pi的距离,pi表示经过i次参数调整的第二估计平面。其中,公式(3)中的90用于表示法向量的角度,在实际应用中也可以不用法向量。
下面以一个具体的例子来说明融合的过程:
例如,假设有三个第一估计平面,分别为平面A、平面B和平面C,通过拟合三个第一估计平面,即可获得第二估计平面(假设为平面D),第一约束距离即为平面A到平面D的距离d1,平面B到平面D的距离d2,平面C到平面D的距离d3,则第一约束距离Ed=d1+d2+d3;同理,计算平面A与平面D之间的角度α1(为了便于计算,可以使用各平面的法向量确定角度),平面B与平面D之间的角度α2;平面C与平面D之间的角度α3,则Ea=α1+α2+α3;确定该第一约束值,判断该第一约束值是否最小,若不是最小,则调整第二估计平面的参数,继续判断该第二估计平面是否满足该第一约束条件,直至该第二估计平面满足第一约束条件。若该第一约束值最小,则将该第二估计平面作为共有估计平面。
步骤103:根据共有估计平面,确定图像数据中每个目标物体的位姿信息。
具体的说,在确定出该共有估计平面,则可以直接利用该共有估计平面确定每个目标物体的位姿信息,该位姿信息可以为该目标物体的中心点的位置信息,包括中心点的坐标信息以及该中心点的角度信息。
本发明实施方式相对于现有技术而言,根据图像数据中的一个目标物体即可确定出该目标物体对应的第一估计平面,获取N个第一估计平面;由于每个目标物体共处的平面应为同一个平面,通过融合N个第一估计平面,可以实现各个目标物体到达共有估计平面的距离最小,从而找到最优的共有估计平面;同时由于共有估计平面是基于多个第一估计平面的融合确定,从而可以避免图像数据中因单个目标物体受环境影响,导致的对目标物体所处平面的估计不准确的情况;通过多个第一估计平面进行融合,丰富了确定共有估计平面的数据,进而提高了确定的共有估计平面的准确性。
本发明的第二实施方式涉及一种物体的定位方法。该物体的定位方法包括:获取图像数据中N个目标物体各自对应的第一估计平面,N为大于1的整数;融合N个第一估计平面,获得融合后的估计平面,并将融合后的估计平面作为N个目标物体共处的共有估计平面;根据共有估计平面,确定图像数据中每个目标物体的位姿信息。
第二实施方式是第一实施方式的步骤103的进一步细化,根据共有估计平面,确定图像数据中每个目标物体的位姿信息的具体流程如图2所示。
步骤201:拟合所有目标物体构成的三维点云数据,获得三维点云数据对应的第三估计平面。
具体的说,图像数据中的目标物体的数量可以为N,也可以大于N,N为大于1的整数,获取该图像数据中的所有的目标物体,并确定出所有目标物体构建的三维点云数据。通过三维点云数据可以确定对应的第三估计平面。利用三维点云数据确定平面是基于点云到某一个估计平面的距离最小的原理进行。
假设,第三估计平面为:Ex+By+Cz=D,数学变换为:(E/D)x+(B/D)y+(C/D)z=1;
设a=E/D;b=B/D;c=C/D;则:
以矩阵形式表示,即为:AX=0;
||X||=1;A是由三维点云数据中所有的点以及点的均值构成的矩阵,对A进行奇异值分解(SingularValue Decomposition,简称“SVD分解”),当奇异值最小时对应的最优解X(a,b,c)即为第三估计平面。
步骤202:融合共有估计平面和第三估计平面,得到图像数据中所有目标物体共处的实际目标平面。
一个具体的实现中,根据共有估计平面和第三估计平面,拟合得到第四估计平面;判断第四估计平面是否满足第二约束条件,若满足第二约束条件,则将第四估计平面作为实际目标平面,否则,调整第四估计平面的参数,直至第四估计平面满足第二约束条件;其中,第二约束条件为第二约束值最小,第二约束值根据第二约束距离和第二约束角度确定,第二约束距离为共有估计平面和第三估计平面到第四估计平面的距离之和,第二约束角度为共有估计平面与第四估计平面的角度以及第三估计平面与第四估计平面的角度之和。
具体的说,该第二约束值与第一约束值类似,该第二约束值Es2表示如下:
Es2=Ed2+λEa2 公式(5);
Ea2=∑|A(pi,pj)-90·nij|2 公式(7);
其中,Es2表示为第二约束值,Ed2表示第二约束距离,Ea2表示第二约束角度,λ用于平衡第二约束距离和第二约束角度之间的误差,v表示点的三维坐标,D(pi,vij)表示第i个平面的点j到第四估计平面pi的距离,pi表示经过i次参数调整的第四估计平面。其中,pi中可以用下标i的值表示共有估计平面以及第三估计平面,例如,i=1时表示共有估计平面,i=2时表示第三估计平面。公式(6)中的D与公式(4)类似,此处不再赘述。
步骤203:根据实际目标平面,确定图像数据中每个目标物体的位姿信息。
该步骤与第一实施方式中的步骤103中根据共有估计平面,确定图像数据中每个目标物体的位姿信息的过程大致相同,区别仅在于将共有估计平面变为实际目标平面。
值得一提的是,在确定了实际目标平面之后,且在步骤203之前该物体的定位方法还包括:根据每个被识别轮廓区域、实际目标平面以及目标物体的模板轮廓信息,确定在实际目标平面上每个目标物体的完整轮廓区域,目标物体的完整轮廓区域用于确定目标物体的中心点的位置信息。
具体的说,如图3所示,目标物体为扑克牌,其中,K牌被遮挡,确定的目标物体的可识别轮廓区域如黑色虚线所示,但实际上该目标物体的识别不准确,该可识别轮廓区域内包含了两张扑克牌,因此,利用目标物体的模板轮廓信息进行匹配,即可在该实际目标平面上标注出每张扑克牌的完整轮廓区域,从而修正了初始确定的目标物体,如图4所示,箭头左边为目标物体的可识别轮廓区域的示意图,箭头右边为每张扑克牌的完整轮廓区域的示意图。根据每张扑克牌的完整轮廓区域,即可确定每张扑克牌的中心点的位置信息。通过确定每个目标物体的完整轮廓区域,可以修正因被遮挡导致漏识别的目标物体,也避免了对重叠的目标物体的定位不准确的问题。
本实施方式提供的物体的定位方法,通过图像数据中所有目标物体确定的三维点云数据,确定第三估计平面,该第三估计平面是基于三维点云数据确定,通过融合第三估计平面和共有估计平面,可以进一步提高共有估计平面的准确度,得到更加准确的实际目标平面,进而准确的确定每个目标物体的位置信息。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施方式涉及一种终端,该终端的具体结构如图5所示,包括:至少一个处理器301;以及,与至少一个处理器301通信连接的存储器302;其中,存储器302存储有可被至少一个处理器301执行的指令,指令被至少一个处理器301执行,以使至少一个处理器301能够第一实施方式或第二实施方式中的物体的定位方法。
其中,存储器302和处理器301采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器301和存储器302的各种电路链接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器301处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
处理器301负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
本发明第四实施方式涉及一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时实现物体的定位方法。
本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。