
1.本技术涉及图像识别技术领域,特别是涉及一种目标物的位置识别方法、装置、系统及存储介质。
背景技术:2.随着自动化的发展,对目标物在各种复杂情况下的位置识别的精确有着更高的需求。现有的位置识别的方法,比如,基于目标物的三维图像和二维图像等进行的目标物的位置识别,在某些方面都各自存在一定的优势和缺点,导致最终得到的目标物的位置信息识别结果的鲁棒性较差。
技术实现要素:3.本技术提供一种目标物的位置识别方法、装置、系统及存储介质,可以提高目标物的位置信息识别的鲁棒性。
4.第一方面,本技术提供一种目标物的位置识别方法,所述位置识别方法包括:
5.获取目标物的二维图像和目标物点云;
6.获取所述目标物的3d模型;
7.基于第一配准与第二配准相结合的方法,识别所述目标物的位置信息;
8.其中,
9.所述第一配准为所述目标物点云和所述3d模型的配准;
10.所述第二配准为所述二维图像和所述3d模型的配准。
11.在一个实施例中,所述基于第一配准与第二配准相结合的方法,识别所述目标物的位置信息包括:
12.基于目标函数,以迭代的方式执行所述第一配准和所述第二配准,直到满足终止条件;其中,
13.所述目标函数为基于权重系数,结合第一函数和第二函数得到;
14.所述第一函数为基于迭代的方式进行所述第一配准所定义的函数;
15.所述第二函数为基于迭代的方式进行所述第二配准所定义的函数。
16.在一个实施例中,所述目标函数为:
[0017][0018]
其中,0≤α≤1,α表征调整f1和f2的比重的权重系数;f1表征所述第一函数;f2表征所述第二函数;(r,t)表征所述目标物的位置信息。
[0019]
在一个实施例中,所述目标函数为:
[0020][0021]
其中,0≤α≤1,α表征调整f1和f2的比重的权重系数;l1表征所述第一配准里定义在p和q点对的误差;l2表征第二配准里定义在u和v点对的误差;p表征模型点云上的点;q表
征目标物点云上的点;u表征二维模板图像上的局部特征点;v表征二维图像上的局部特征点;(r,t)表征所述目标物的位置信息。
[0022]
在一个实施例中,所述目标物的3d模型为目标物点云模型,所述第一配准包括:
[0023]
基于第一函数,以迭代的方式进行所述第一配准。
[0024]
在一个实施例中,所述第二配准包括:
[0025]
基于第二函数,迭代改变所述3d模型的姿态;生成每个姿态下的所述3d 模型对应的二维模型图像;提取所述二维模型图像中的所述目标物的局部特征;基于所述二维图像中的局部特征和所述二维模型图像中的局部特征进行配准。
[0026]
在一个实施例中,所述位置识别方法还包括:
[0027]
提取所述二维图像中的所述目标物的局部特征,以得到包括所述局部特征的所述二维图像。
[0028]
在一个实施例中,所述获取目标物的目标物点云之前还包括:
[0029]
基于所述目标物的二维图像,生成所述目标物点云;或
[0030]
基于所述目标物的二维图像,生成所述目标物的局部区域的所述目标物点云。
[0031]
在一个实施例中,所述基于第一配准与第二配准相结合的方法,识别所述目标物的位置信息之前包括:
[0032]
以所述目标物的所述二维图像和/或所述目标物点云作为第二识别模型的输入,以得到所述目标物的位置信息的预处理结果。
[0033]
第二方面,本技术提供一种目标物的位置识别方法,所述位置识别方法包括:
[0034]
获取目标物的二维图像和目标物点云;
[0035]
以所述二维图像和所述目标物点云作为第一识别模型的输入,以得到所述目标物的位置信息。
[0036]
在一个实施例中,所述第一识别模型为人工智能模型或统计表模型。
[0037]
第三方面,本技术提供一种目标物的位置识别装置,所述位置识别装置包括:
[0038]
数据获取模块,用于获取目标物的二维图像和目标物点云;
[0039]
模型获取模块,用于获取所述目标物的3d模型;
[0040]
结合配准模块,用于基于第一配准与第二配准相结合的方法,识别所述目标物的位置信息;其中,所述第一配准为所述目标物点云和所述3d模型进行配准;所述第二配准为所述二维图像和所述3d模型进行配准;或
[0041]
数据获取模块,用于获取目标物的二维图像和目标物点云;
[0042]
位置识别模块,用于以所述目标物的二维图像和目标物点云作为第一识别模型的输入,以得到所述目标物的位置信息。
[0043]
第四方面,本技术提供一种控制器,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现第一方面任一项所述的目标物的位置识别方法。
[0044]
第五方面,本技术提供一种目标物的位置识别系统,所述系统包括图像传感器和第四方面所述的控制器;
[0045]
所述图像传感器和所述控制器通信连接。
[0046]
第六方面,本技术提供一种计算机可读存储介质,其上存储有程序,所述程序被处
理器执行时实现第一方面任一项所述的目标物的位置识别方法。
附图说明
[0047]
为了更清楚地说明本技术实施例的技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
[0048]
图1为本技术实施例中位置识别系统的结构示意图;
[0049]
图2为本技术实施例中二维模板图像的示意图;
[0050]
图3为本技术实施例中计算机设备的结构框图;
[0051]
图4为本技术实施例中位置识别方法的第一流程图;
[0052]
图5a为本技术实施例中位置识别方法的第二流程图;
[0053]
图5b为本技术实施例中位置识别方法的第三流程图;
[0054]
图6为本技术实施例中位置识别方法的第四流程图;
[0055]
图7为本技术实施例中位置识别方法的第五流程图;
[0056]
图8为本技术实施例中位置识别方法的第六流程图;
[0057]
图9为本技术实施例中位置识别方法的第七流程图;
[0058]
图10为本技术实施例中位置识别方法的第八流程图;
[0059]
图11为本技术实施例中位置识别装置的第一结构框图;
[0060]
图12为本技术实施例中位置识别装置的第二结构框图。
具体实施方式
[0061]
为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
[0062]
本技术实施例提供一种目标物的位置识别方法、装置、设备及存储介质,可以应用于图像识别技术领域。通过该目标物的位置识别方法,可以提高在各种情况下对目标物的位置信息识别的鲁棒性。
[0063]
为方便理解,首先对本技术中涉及的一些基本概念进行说明。
[0064]
本技术中所述的位置信息可以是指目标物的三维姿态信息或二维坐标信息。其中,姿态信息(r,t)可以为针对目标物的预设坐标系的3d坐标;刚体在3维空间的运动可以用3d坐标描述,具体的,可以分为平移r和旋转t,各为3个自由度。刚体在3维空间的平移是普通的线性变换,可以使用一个3x1的向量描述平移位置;而旋转姿态常用的描述方式包括但不限于:旋转矩阵、旋转向量、四元数、欧拉角和李代数。
[0065]
本技术中所述的各人工智能模型可以包括但不限于是各种神经网络(neuralnetworks,nn)。比如,卷积神经网络(convolutionalneuralnetworks,cnn),常见的cnn模型可以包括但不限于:lenet,alexnet,zf,net,vgg,googlenet,residualnet,densenet,r-cnn,spp-net,fast-rcnn,faster-rcnn,yolo,ssd,bb8,yolo-6d,deep-6dpose,posecnn,hourglass,cpn以及其他现在已知或将来开发的网络模型结构。
[0066]
预先经过训练的人工智能模型可以是指预先通过采用现在已有或将来开发的各种模型训练方法完成训练后的人工智能模型,使得基于输入的图像数据等,可以直接输出识别结果。人工智能模型的训练方法可以根据人工智能模型的用途等的不同而不同,比如:可以采用监督学习、半监督学习的方法。以监督学习为例,可以将训练数据输入到具有初始参数的神经网络模型中,将模型的输出结果与已经预先标记的标准输出结果进行对比,根据差值不断更新模型的参数,直到满足预设条件。
[0067]
如图1所述,在一个实施例中,本技术提供一种目标物的位置识别系统,该系统包括:图像传感器210、220和控制器110,用于对目标物m的位置信息进行识别。
[0068]
控制器110通常包括处理器和存储器,存储器用于存储程序,处理器用于执行存储器存储的程序,以实现下面实施例所述的位置识别方法中的各方法步骤等。具体的,控制器14可以根据预先固定的程序,结合预先存储的信息、参数;人工输入的信息、参数;和/或者图像传感器等采集的数据信息等生成程序、指令,后面实施例会有进一步详细说明。
[0069]
具体的,控制器可以为计算机终端(personal computer,pc)、工业控制计算机终端(industrial personal computer,ipc)、移动终端、服务器、包括终端和服务器的系统(通过终端和服务器的交互实现控制)、可编程逻辑控制器(programmable logic controller,plc)、现场可编程门阵列(field-programmablegate array,fpga)、数字信号处理器(digital signal processer,dsp)或微控制器(microcontroller unit,mcu)等类似的运算装置中执行。
[0070]
其中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(contentdelivery network,内容分发网络),以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音响、智能手表等,但并不局限于此。终端以及服务器可以通过有线或者无线通信方式进行直接或间接地连接,本技术在此不做限定。
[0071]
示例性的,控制器110可以为如图3所示的计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信。该计算机程序被处理器执行时以实现目标物的位置识别方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的安检、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0072]
控制器110与图像传感器210、220通信连接。
[0073]
其中,通信连接可以是指控制器通过有线或者无线的方式直接或者间接地与图像传感器通信连接。
[0074]
具体的,无线的方式可以但不限于是:3g/4g/5g、ieee规范802.11(wi-fi)、蓝牙、wimax(worldwide interoperability for microwave access,全球互通微波访问)、ieee规范802.15.4(zigbee,紫蜂)、uwb(ultra wide band,超宽带),以及其它现在已知或将来
开发的无线连接方式。
[0075]
具体的,图像传感器可以但不限于是:照相机、摄像机、扫描仪或其他带有相关功能的设备(手机、电脑)等。图像传感器可以包括各种2d图像传感器,在一些实施例中,图像传感器还可以包括3d图像传感器(比如:3d激光传感器、深度传感器)。图像传感器的数量可以根据需要设计为一组或者多组,每组图像传感器可以根据需要为一个或者多个。
[0076]
需要说明的是,对于2d图像传感器(以“相机”为例)而言,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立相机成像的几何模型,这些几何模型参数就是相机参数,预先对每个相机进行标定,可以求出相机的内、外参数,以及畸变参数等。
[0077]
需要说明的是,上述方法、装置、系统等中提到的目标物、传感器等,即可以是真实环境下的真实的物体,也可以是仿真平台下的虚拟的物体,通过仿真环境以达到连接真实物体的效果。可以将依赖虚拟环境完成训练后的控制器,移植到真实环境下,对真实的物体进行控制或者再训练,可以节省训练过程的资源和时间。
[0078]
本领域技术人员可以理解,图1和图3中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的装置、设备或系统等的限定,具体的装置、设备或系统等可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0079]
如图4所示,在一个实施例中,提供一种目标物的位置识别方法,以该方法应用于图1所示的系统为例,该目标物的位置识别方法可以包括如下方法步骤:
[0080]
步骤s110获取目标物的二维图像和目标物点云;
[0081]
步骤s120获取目标物的3d模型;
[0082]
步骤s130基于第一配准与第二配准相结合的方法,识别目标物的位置信息;
[0083]
其中,
[0084]
第一配准为目标物点云和3d模型的配准;
[0085]
第二配准为二维图像和3d模型的配准。
[0086]
基于第一配准与第二配准相结合的方法识别目标物的位置信息,可以提高目标物位置信息识别的鲁棒性。
[0087]
为方便理解,下面对上述方法步骤进行进一步详细说明。
[0088]
步骤s110获取目标物的二维图像和目标物点云。
[0089]
如图8所示,在一个实施例中,位置识别方法还包括:
[0090]
步骤s160提取二维图像中的目标物的局部特征,以得到包括局部特征的二维图像。
[0091]
具体的,上述局部特征可以但不限于是:目标物的某些关键特征点和/或关键特征线(比如:目标物的边缘),其中,关键特征线可以视为多个关键特征点的集合。
[0092]
示例性的,如图2所示,以目标物m为某个立方体物体为例,该局部特征可以为该立方体在二维图像中的边缘轮廓和/或该立方体各边的角点。
[0093]
具体的,可以基于传统图像处理、人工智能等方法提取二维图像中的目标物的局部特征。
[0094]
传统图像处理方法可以但不限于是:去噪、二值化、边缘提取、图像分割等以及各
种方法的组合得到目标物的局部特征。人工智能的方法可以是以该二维图象作为预先经过训练的特征提取模型(即人工智能模型)的输入,以输出得到目标物的局部特征。
[0095]
具体的,可以直接将该局部特征作为上述目标物的二维图像;也可以将提取的局部特征标记在二维图像中,以得到包括该局部特征标记的二维图像,使得后续可以基于二维图像中的局部特征进行第二配准(后面实施例会有进一步说明)。
[0096]
在一个实施例中,如图1所示,控制器110获取图像传感器210、220采集并发送的目标物m的原始二维图像,以该原始二维图像作为上述目标物的二维图像;或者控制器对图像传感器采集并发送的原始二维图像经过传统图像处理方法(比如:经过二值化、边缘提取、背景去除)或人工智能方法等方法处理后得到该目标物的二维图像。
[0097]
如图6所示,进一步,在一个实施例中,步骤s110中获取目标物点云之前,还可以包括:
[0098]
步骤s140基于目标物的二维图像,生成目标物点云。
[0099]
在一个实施例中,控制器可以获取图像传感器采集并发送的目标物的原始二维图像,以该原始二维图像作为上述目标物的二维图像,并基于该二维图像生成目标物点云。
[0100]
在一个实施例中,上述二维图像也可以是控制器对图像传感器采集并发送的原始二维图像经过处理后得到的二维图像。
[0101]
在一个实施例中,控制器也可以获取基于上面实施例所述的方法得到的包括局部特征的二维图像,并基于该二维图像生成目标物点云。
[0102]
示例性的,如图1所示,该目标物的位置识别系统包括一组图像传感器,该组图像传感器包括两个2d照相机(简称“双目相机”),“双目相机”分别采集并发送目标物的二维图像(可以称为“左图”和“右图”),控制器基于某些算法对“左图”和“右图”进行匹配,得到左图和右图中相互匹配的点对,基于双目相机预先标定的参数,结合三角测量法等,可以生成这些匹配的点对在三维空间的点云。
[0103]
需要说明的是,上述目标物点云可以是生成有关在二维图像中所显示的可见目标物的整体的点云,也可以是目标物的局部某个区域的点云,比如:可以通过对左图和右图的裁剪,截取左图和右图中大概对应目标物某个区域部分的图像,基于此进行匹配,从而可以得到目标物局部区域的点云;又或者,通过左图和右图进行匹配,可以得到包括背景物和目标物体的点云,可以对该点云进行裁剪,以得到目标物点云,示例性的,可以预先训练一个人工智能模型,将该点云输入人工智能模型,以得到去掉背景部分点云的目标物体的点云;另外,在某些情况下,二维图像中可能包括多个目标物,可以基于某些算法或人工智能的方法等生成、拣选其中某个目标物的目标物点云。
[0104]
如图7所示,根据上面所述,在一个实施例中,步骤s110中获取目标物点云之前,还可以包括:
[0105]
步骤s150基于目标物的二维图像,生成目标物局部区域的目标物点云。
[0106]
在某些情况下,也可以只提取可以准确生成点云部分的目标物点云,比如:目标物正对图像传感器的面的点云,因该面的图像不会往往不会像目标物的其它面容易因遮挡、光线等问题造成点云生成失败的发生,通过与第二配准相结合,可以实现只基于目标物的局部区域的点云就可以完成目标物的位置信息的识别;除此之外,也可以根据上面实施例所述的方法等其它方法生成目标物局部区域的目标物点云。
[0107]
步骤s120获取目标物的3d模型。
[0108]
在一个实施例中,控制器可以访问预先生成并存储的3d模型对应的存储地址(二者可以分别存储,也可以存储在同一个地址下),从访问的存储空间中提取存储的3d模型;在一个实施方式中,3d模型已预先生成并存储在服务器中,控制器可以生成3d模型获取请求,通过网络将3d模型获取请求发送至服务器;服务器接收3d模型获取请求,根据3d模型获取请求中的数据标识提取3d模型,通过网络将3d模型发送至控制器;在一个实施方式中,控制器也可以基于真实的目标物或某些其它类型的3d模型等,实时生成上述需要的3d模型。
[0109]
具体的,上述3d模型可以指目标物的点云模型、cad模型、基于深度相机采集得到的深度图、或针对真实的目标物测量所构建的真实目标物的3d模型等。
[0110]
具体的,上述点云模型可以基于各种现在已有或将来开发的方法实现,比如,可以基于solidworks、meshleb等软件由目标物的cad模型等3d模型转换得到。
[0111]
步骤s130基于第一配准与第二配准相结合的方法,识别目标物的位置信息。
[0112]
如图5a所示,在一个实施例中,步骤s130可以包括如下方法步骤:
[0113]
步骤s131基于目标函数,以迭代的方式执行第一配准和第二配准,直到满足终止条件;其中,
[0114]
目标函数为基于权重,结合第一函数和第二函数得到;
[0115]
第一函数为以迭代的方式进行第一配准所定义的函数;
[0116]
第二函数为以迭代的方式进行第二配准所定义的函数。
[0117]
在一个实施例中,基于上面所述,目标函数可以表示为:
[0118][0119]
其中,0≤α≤1;α表征调整第一函数和第二函数的比重的权重系数;f1表征第一函数;f2表征第二函数。
[0120]
具体的,上述第一函数和第二函数可以分别根据第一配准和第二配准的方法定义为任意需要的函数。
[0121]
需要说明的是,上述权重系数α可以设定为一个固定的系数,也可以根据需要设定为一个动态的系数,比如:可以基于二维图像和目标物点云在不同场景和不同局部识别的精度动态的调整该系数。
[0122]
通过该方法,可以基于目标物的二维图像和目标物点云在线基于目标函数进行迭代配准,从而得到目标物的位置信息识别的结果。通过将目标物二维图像和目标物点云结合,可以克服目标物二维图像和目标物点云各自在目标物位置识别中在不同场景下可能存在的缺陷,比如:通过第二配准可以改善在第一配准过程中点云在边缘处信息提取容易产生错误的问题,而第一配准可以改善第二配准在不同视角下边缘2d特征点不确定的问题,从而提高目标物位置识别的鲁棒性;另外,通过将目标物的二维图像和目标物点云结合,可以减少实际中目标物点云生成的数量,从而有利于提高目标物位置识别的效率;另外,通过将二者结合,可以各自选取最有利于位置识别的部分,比如:可以选择有利于进行配准的目标物的正面部分的图像生成点云,或者在二维图像只提取具有明显区分的局部特征(比如:目标物的角点或者边缘),从而有利于提高位置识别的精度。
[0123]
在一个实施例中,上述终止条件可以但不限于是:目标函数的最小值小于和/或等
于预设阈值或迭代达到最大次数限制。
[0124]
具体的,目标函数可以线下预先生成或者线上实时生成,本技术不做限定。
[0125]
在一个实施例中,控制器可以访问预先生成并存储的目标函数对应的存储地址,从访问的存储空间中提取存储的目标函数;在一个实施方式中,目标函数已预先生成并存储在服务器中,控制器可以生成目标函数获取请求,通过网络将目标函数获取请求发送至服务器;服务器接收目标函数获取请求,根据目标函数获取请求中的数据标识从数据库中提取目标函数,通过网络将目标函数发送至控制器;在一个实施方式中,控制器也可以基于第一函数和第二函数,实时生成上述目标函数。
[0126]
如图5b所示,在一个实施例中,上述步骤s131可以包括如下方法步骤:
[0127]
步骤s1311基于第一函数执行第一配准;
[0128]
步骤s1312基于第二函数执行第二配准;
[0129]
步骤s1313基于目标函数判断是否满足终止条件;若否,重复执行步骤s1311和步骤s1312;若是,执行步骤s1314以满足终止条件时的目标物的姿态信息作为目标物的位置信息。
[0130]
在一个实施例中,本技术所述的目标物的3d模型为目标物点云模型,则第一配准可以包括以迭代的方式进行第一配准,具体可以包括:基于第一函数,将目标物点云与目标物点云模型进行迭代配准。具体的,第一函数可以根据需要设定为任意,比如:以icp的方式进行配准,则第一函数为基于icp配准方式定义的函数。
[0131]
在一个实施例中,本技术所述的第二配准可以包括以迭代的方式进行第二配准,具体可以包括:基于第二函数,迭代改变3d模型的姿态;生成每个姿态下的3d模型对应的二维模型图像;提取二维模型图像中的局部特征;对二维图像中的局部特征和二维模型图像中的局部特征进行配准。
[0132]
具体的,可以分别提取多个姿态下的二维模型图像中的局部特征(比如:如图2所示,该局部特征可以为立方体的各个角点a1)和实际提取的二维图像中的该局部特征进行配准,直到完成配准,以完成配准时的3d模型的姿态作为目标物的位置信息。
[0133]
有关二维模型图像中的局部特征的提取方法可以参见上面实施例中有关二维图像中的局部特征提取方法的描述,在此不再赘述。具体的,该第二函数可以根据需要设定为任意,后面会进一步举例说明。
[0134]
为方便理解,下面举例进行说明。
[0135]
示例性的,对于以迭代的方式进行第一配准而言,可以迭代变换模型点云的姿态(r,t),每一个姿态(r,t)下,三维模型点云上的点p和目标物点云中的点q有可能可以建立对应关系,具体的,可以根据不同的定义方式(也即第一函数)来建立对应关系,然后再计算这些点对的某种度量之下的差距,求和,直到满足终止条件。
[0136]
示例性的,对于以迭代的方式进行第二配准而言,可以在模板二维图片中提取一些局部特征点,例如:位于目标物的边缘的某个点u,实际采集得到的目标物的二维图像中也检测出局部特征点v,关键点u与v同样在某种定义(即第二函数)之下建立对应关系,然后在计算这些二维点对在某种度量之下的距离(比如:图像上的欧氏距离),求和,直到满足终止条件。如有多张二维图像 (比如:上面实施例所述的左图和右图两张图像),就对多张二维图像和二维模板图像都执行相同的动作,通过迭代变换3d模型的姿态,得到不同姿态下
的模板二维图像中的u点,基于第二函数迭代计算,直到满足终止条件(比如:误差小于等于预设阈值)以完成配准(当有多张图像时,需多张图像同时满足该终止条件),以此时3d模型对应的姿态(r,t)作为目标物的位置信息。
[0137]
为方便理解,下面进一步举例进行说明。
[0138]
示例性的,上述第一函数可以定义为:
[0139][0140]
其中,p表征模型点云上的点;q表征目标物点云上的点。
[0141]
上述第二函数可以定义为:
[0142][0143]
其中,u表征二维模板图像上的局部特征点;v表征二维图像上的局部特征点;
[0144]
所以,如果将第一函数和第二函数结合的话,其实就是将上面所述的第一配准和第二配准的优化目标合起来,因此,目标函数可以定义为:
[0145][0146]
其中,0≤α≤1;α表征第一函数和第二函数的比重的权重系数;l1表征第一配准里定义在p和q点对的误差,l2表征第二配准里定义在u和v点对的误差。
[0147]
如图9所述,在一个实施例中,步骤s130之前还可以包括如下方法步骤:
[0148]
步骤s200以目标物的二维图像和/或目标物点云作为第二识别模型的输入,以得到目标物的位置信息的预处理结果。
[0149]
具体的,可以将目标物的二维图像或目标物点云作为第二识别模型的输入,以得到预处理结果;除此之外,也可以将二维图像和目标物点云同时作为第二识别模型的输入,以得到预处理结果等,本技术不做限定。
[0150]
通过将目标物的二维图像和/或目标物点云输入第二识别模型,得到目标物的位置信息的预处理结果,基于得到的目标物的位置信息的预处理结果作为执行步骤s130配准过程中的目标物或3d模型的初始位置信息,可以有助于提高最终目标物的位置信息识别的精度和/或目标物的位置信息识别的效率。
[0151]
具体的,上述第二识别模型可以为可基于目标物的二维图像和/或局部特征点云得到目标物的位置信息的任意模型,比如:预先经过训练的人工智能模型或统计表模型。
[0152]
在一个实施例中,统计表模型可以是指预先建立多个模板二维图像和/或模板目标物点云与目标物的位置信息一一对应的统计表。将实际获取的目标物的二维图像和/或目标物点云与统计表中模板二维图像和/或模板目标物点云的进行匹配,从而得到对应的目标物的位置信息。
[0153]
如图10所示,在一个实施例中,提供一种位置识别方法,以该方法应用于图1所示的系统中的控制器为例,该位置识别方法可以包括如下方法步骤:
[0154]
步骤s210获取目标物的二维图像和目标物点云;
[0155]
步骤s220以二维图像和目标物点云作为第一识别模型的输入,以得到目标物的位置信息。
[0156]
具体的,上述第一识别模型可以为可基于目标物的二维图像和目标物点云得到目标物的位置信息的任意模型,比如:预先经过训练的人工智能模型或统计表模型。
[0157]
具体的,上述目标物的二维图像可以是图像传感器采集并发送的原始二维图像;或者是经过某些处理后的图像;又或者是上面实施例所述的标记过目标物的局部特征后的二维图像等,本技术不做限定。
[0158]
在一个实施例中,对于统计表模型而言,可以预先建立由3d模型在不同姿态下所对应的不同的模板点云和模板二维图像共同构建的模板库,可以将该二维图像和目标物点云分别与目标物点云模板库和二维图像模板库进行配准,从而可以直接得到配准的点云模板和二维模板图像对应的3d模型的姿态信息,以该姿态信息作为目标物的位置信息;或者,也可以基于配准结果,结合某些算法(比如:插值、拟合算法)等得到最终的目标物的位置信息,比如:在某些情况下,可能无法找到完全配准的结果,或者存在多个配准结果。
[0159]
通过上述方法,将目标物的二维图像和目标物点云输入第一识别模型,可以直接得到该目标物的位置信息,因此可以提高目标物的位置信息识别的效率。
[0160]
在一个实施例中,目标物的位置识别方法还包括:
[0161]
步骤s260提取二维图像中的目标物的局部特征,以得到包括局部特征的二维图像。
[0162]
在一个实施例中,步骤s210中获取目标物点云之前,还可以包括:
[0163]
步骤s240基于目标物的二维图像,生成目标物点云。
[0164]
在一个实施例中,步骤s210中获取目标物点云之前,还可以包括:
[0165]
步骤s250基于目标物的二维图像,生成目标物局部区域的目标物点云。
[0166]
有关位置识别方法的其它相关描述可以参见上面的实施例,在此不再重复赘述。
[0167]
应该理解的是,虽然图4-10的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图4-10的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
[0168]
如图11所示,本技术实施例还提供一种目标物的位置识别装置,该位置识别装置包括:
[0169]
数据获取模块110,用于获取目标物的二维图像和目标物点云;
[0170]
模板获取模块120,用于获取目标物的3d模型;
[0171]
结合配准模块130,用于基于第一配准与第二配准相结合的方法,识别所述目标物的位置信息;其中,所述第一配准为所述目标物点云和所述3d模型的配准;所述第二配准为所述二维图像和所述3d模型的配准。
[0172]
在一个实施例中,位置识别装置还包括:
[0173]
特征提取模块160,用于提取二维图像中的目标物的局部特征,以得到包括局部特征的二维图像。
[0174]
在一个实施例中,位置识别装置还包括:
[0175]
点云生成模块140,用于基于目标物的二维图像,生成目标物点云。
[0176]
在一个实施例中,位置识别装置还包括:
[0177]
局部生成模块150,用于基于目标物的二维图像,生成目标物局部区域的目标物点云。
[0178]
在一个实施例中,位置识别装置还包括:
[0179]
预处理生成模块200,用于以目标物的二维图像和/或目标物点云作为第二识别模型的输入,以得到目标物的位置信息的预处理结果。
[0180]
在一个实施例中,结合配准模块130包括:
[0181]
第一迭代配准单元131,用于基于目标函数,以迭代的方式执行第一配准和第二配准,直到满足终止条件;其中,目标函数为基于权重,结合第一函数和第二函数得到;第一函数为基于迭代的方式进行第一配准所定义的函数;第二函数为基于迭代的方式进行第二配准所定义的函数。
[0182]
在一个实施例中,结合配准模块130包括:
[0183]
第一迭代配准单元131,用于基于第一函数执行第一配准;基于第二函数执行第二配准;基于目标函数判断是否满足终止条件;若否,重复执行上述第一配准和第二配准的步骤;若是,以满足终止条件时的目标物的姿态信息作为目标物的位置信息。
[0184]
如图12所示,本技术实施例还提供一种目标物的位置识别装置,该位置识别装置包括:
[0185]
数据获取模块210,用于获取目标物的二维图像和目标物点云;
[0186]
位置识别模块220,用于以二维图像和目标物点云作为第一识别模型的输入,以得到目标物的位置信息。
[0187]
在一个实施例中,位置识别装置还包括:
[0188]
特征提取模块260,用于提取二维图像中的目标物的局部特征,以得到包括局部特征的二维图像。
[0189]
在一个实施例中,位置识别装置还包括:
[0190]
点云生成模块240,用于基于目标物的二维图像,生成目标物点云。
[0191]
在一个实施例中,位置识别装置还包括:
[0192]
局部生成模块250,用于基于目标物的二维图像,生成目标物局部区域的目标物点云。
[0193]
关于上述位置识别装置的具体限定可以参见上文中对于位置识别方法的限定,在此不再赘述。上述各个位置识别装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0194]
在一个实施例中,本技术实施例提供一种控制器,该控制器包括存储器和处理器,存储器用于存储程序等,处理器执行存储器存储的程序时实现上面实施例的目标物的位置识别方法的步骤。
[0195]
在一个实施例中,本技术实施例提供一种计算机可读存储介质,其上存储有程序,当程序被处理器执行时实现上面实施例的目标物的位置识别方法的步骤。
[0196]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。
[0197]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0198]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0199]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0200]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0201]
除非另有定义,本说明书所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本说明书中在本技术的说明书中所使用的属于只是为了描述具体的实施方式的目的,不是用于限制本技术。
[0202]
本发明的权利要求书和说明书及上述附图中的术语“第一”、“第二”、“第三”、“s110”、“s120”“s130”等等(如果存在)是用来区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换或在某些情况下同时发生,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”、“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如:包括了一系列步骤或者模块的过程、方法、系统、产品或机器人不必限于清楚地列出的那些步骤或者模块,而是包括没有清楚地列出的或对于这些过程、方法、系统、产品或设备固有的其它步骤或模块。
[0203]
需要说明的是,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的结构和模块并不一定是本技术所必须的。
[0204]
在一个实施例中,对于本领域技术人员熟知的方法、手段、部件和电路等未做详细描述,以便凸显本技术的主旨。
[0205]
以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进。这些都属于本技术的保护范围。
因此,本技术专利的保护范围应以所附权利要求为准。