一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

目标检测方法、终端设备和介质与流程

2022-07-17 01:24:54 来源:中国专利 TAG:

目标检测方法、终端设备和介质
1.相关申请的交叉引用
2.本技术要求于2019年12月12日向美国专利商标局提交的序列号为62/947,314的美国专利申请的优先权和益处,该美国专利申请的全部内容通过引用并入本文。
技术领域
3.本公开涉及图像识别技术领域,尤其涉及一种目标检测方法、目标检测装置、终端设备和介质。


背景技术:

4.通过目标检测可以检测出图像中的特定对象,例如人脸或者汽车。目标检测广泛应用于图像识别技术领域。
5.目前,主流的目标检测方法将检测过程分为两个阶段。第一阶段是通过使用候选区域(region proposal)生成方法来基于图像提取出可包括目标对象的多个区域(即,候选区域)。第二阶段是利用神经网络对提取出的候选区域进行特征提取,然后通过分类器识别每个候选区域中的目标对象的类别。
6.相关技术中,由于当拍摄对象的图像时,相机可以处于横向模式或者在特定方向上旋转到特定角度,因此该对象在拍摄的图像中的取向可能与该对象的实际取向不同,即,拍摄的图像也发生了旋转。例如,当相机以特定取向拍摄图像时,所拍摄的图像可以如图1所示旋转。当检测这种旋转的目标图像时,通常执行数据增强,即,预先对神经网络的训练数据执行各种几何变换以使该神经网络能够学习该旋转的对象的特性,然后使用通过训练生成的神经网络执行目标检测。由于需要数据增强,这种实现过程比较复杂,从而浪费了大量的计算时间和计算资源。


技术实现要素:

7.第一方面的实施例提供了一种目标检测方法。该方法包括:获取相机拍摄的第一场景图像;获取所述相机的当前位置和姿态信息;基于所述相机的所述当前位置和姿态信息来调整所述第一场景图像以获得第二场景图像;以及对所述第二场景图像执行目标检测。
8.第二方面的实施例提供了一种目标检测装置。该装置包括:第一获取模块,被配置为获取相机拍摄的第一场景图像;第二获取模块,被配置为获取所述相机的当前位置和姿态信息;调整模块,被配置为基于所述相机的所述当前位置和姿态信息来调整所述第一场景图像以获得第二场景图像;以及检测模块,被配置对所述第二场景图像执行目标检测。
9.第三方面的实施例提供了一种终端设备,包括:存储器、处理器和计算机程序,该计算机程序存储在存储器中且能够由所述处理器执行。当所述处理器执行所述计算机程序时,实现根据第一方面的实施例的目标检测方法。
10.第四方面的实施例提供了一种计算机可读存储介质,该计算机可读存储介质中存
储有计算机程序。当所述计算机程序由处理器执行时,实现根据第一方面的实施例的目标检测方法。
附图说明
11.从以下参考附图的描述中,本公开的实施例的上述和/或附加方面和优点将变得显而易见并且更容易理解,其中:
12.图1是根据本公开的实施例的旋转的图像的示意图;
13.图2是根据本公开的实施例的目标检测方法的流程图;
14.图3是根据本公开的实施例的未经调整的场景图像的示意图;
15.图4是根据本公开的实施例的调整后的场景图像的示意图;
16.图5是根据本公开的实施例的目标检测方法的流程图;
17.图6是根据本公开的实施例的生成多个三维区域的方法的流程图;
18.图7是根据本公开的实施例的生成候选区域的方法的流程图;
19.图8是根据本公开的实施例的目标检测装置的框图;
20.图9是根据本公开的另一实施例的目标检测装置的框图;
21.图10是根据本公开的实施例的终端设备的框图。
具体实施方式
22.将详细描述本公开的实施例,并且在附图中示出实施例的示例。在整个说明书中,相同或相似的元件以及具有相同或相似功能的元件由相同的附图标记表示。本文中参考附图描述的实施例是解释性的,用于解释本公开,并且不被解释为限制本公开的实施例。
23.在检测旋转的目标图像时,通常进行数据增强,即,预先对神经网络的训练数据进行各种几何变换,使该神经网络能够学习旋转的对象的特性,然后利用训练生成的神经网络执行目标检测。由于需要数据增强,这种实现过程比较复杂,从而浪费了大量的计算时间和计算资源。为此,本公开的实施例提供了一种目标检测方法。利用该方法,通过在获取相机拍摄的第一场景图像后,获取该相机的当前位置和姿态信息,并基于该相机的该当前位置和姿态信息对该第一场景图像进行调整以获得调整后的第二场景图像,对该第二场景图像执行目标检测,从而可以在不需要进行数据增强的情况下对场景图像执行目标检测,过程简单,节省了目标检测的计算时间和计算资源,提高了目标检测的效率。
24.下面,参照附图说明目标检测方法、目标检测装置、终端设备以及计算机可读取存储介质。
25.以下结合图2描述根据本公开的实施例的目标检测方法。图2是根据本公开的实施例的目标检测方法的流程图。
26.如图2所示,根据本公开的目标检测方法可以包括以下动作。
27.在框101处,获取相机拍摄的第一场景图像。
28.具体地,根据本公开的目标检测方法可以由根据本公开的目标检测装置执行。目标检测装置可被配置在终端设备中以对场景的场景图像执行目标检测。根据本公开的实施例的终端设备可以是能够进行数据处理的任何硬件设备,例如智能手机、平板电脑、机器人和可穿戴设备(如头戴式移动设备)。
29.可以理解的是,终端设备中可以配置相机以拍摄第一场景图像,使得目标检测装置可以获得相机拍摄的第一场景图像。
30.场景可以是实际场景或虚拟场景。第一场景图像可为静态或动态的,在此不作限制。此外,相机所拍摄的第一场景图像可以是未经旋转的图像,该图像中,对象具有与该对象的实际取向一致的取向,或者相机所拍摄的第一场景图像可以是经旋转的图像,该图像中,该对象具有与该对象的实际取向不一致的取向,在此不作限制。
31.在框102处,获取相机的当前位置和姿态信息。
32.在框103处,基于相机的当前位置和姿态信息来调整第一场景图像以获得第二场景图像。
33.当前位置和姿态信息可以包括相机的取向。
34.在具体实施方式中,同步定位和建图(simultaneous localization and mapping,在下文中,简称为slam)系统可用于获得相机的当前位置和姿态信息。
35.下面将简要描述本公开的实施例中使用的slam系统。
36.slam系统,顾名思义,能够实现定位和地图构建。当用户持有或佩戴终端设备从未知环境中的未知位置出发时,该终端设备中的slam系统基于相机在运动过程中监测到的特征点,估计相机在每个时刻的位置和姿态,并将相机在不同时间获取的图像帧进行融合,以重建用户周围场景的完整三维地图。slam系统广泛用于机器人定位导航、虚拟现实(virtual reality,vr)、增强现实(augmented reality,ar)、无人机和无人驾驶中。相机在每个时刻的位置和姿态可以由包含旋转和平移信息的矩阵或向量表示。
37.slam系统通常可被划分为视觉前端模块和优化后端模块。
38.视觉前端模块的主要任务是利用相机在运动期间不同时刻获取的图像帧,通过特征匹配解决相邻帧间的相机姿态变换,以及实现图像帧的融合从而重构地图。
39.视觉前端模块依赖于终端设备,例如安装在机器人或智能手机中的传感器。常见的传感器包括相机(例如单目相机、双目相机、飞行时间(time of flight,tof)相机)、惯性测量单元(inertial measurement unit,imu)、和激光雷达,被配置为采集实际环境中的各种类型的原始数据,包括激光扫描数据、视频图像数据和点云数据。
40.slam系统的优化后端模块主要是对视觉前端模块得到的不准确的相机姿态和重构地图进行优化和微调,优化后端模块可以作为离线操作与视觉前端模块分离,或者集成到视觉前端模块中。
41.当前slam系统通常基于视觉-惯性测距(vio),其通过同步处理视觉信号和惯性测量单元(imu)信号来跟踪相机的位置和取向。
42.以下是对通过slam系统确定相机的位置和姿态信息的过程的简要介绍。
43.执行初始化。具体地,可以从由相机获取的场景图像中识别特征点,将从场景图像提取的并且在不同时间获取的特征点相关联,以找到在不同时间提取的特征点之间的对应关系,并且可以根据该对应关系计算特征点的三维位置和相机的位置关系。
44.在初始化之后,当相机获取先前尚未获取的内容时,slam系统可以实时跟踪相机姿态并递增地扩展三维点的数量。
45.此外,在获取相机的当前位置和姿态信息之后,可基于相机的该当前位置和姿态信息来调整第一场景图像,以获得调整后的第二场景图像。
46.具体地,当调整第一场景图像时,可基于相机的当前位置和姿态信息来确定第一场景图像的旋转角度,使得第一场景图像基于该旋转角度旋转以获得第二场景图像。第二场景图像中的对象的取向与该对象的实际取向相同。换句话说,第二场景图像中的水平方向平行于第二场景图像的横向方向。
47.例如,假设图3是由相机拍摄的第一场景图像。根据slam系统在相机拍摄该图像时获取的相机的当前位置和姿态信息,确定第一场景图像的旋转角度为顺时针45度,然后可以将第一场景图像逆时针旋转45度,使得图3所示的第一场景图像的水平方向(图3中的方向b)与第一场景图像的横向方向(图3中的方向a)平行,得到图4所示的第二场景图像。
48.需要说明的是,通过slam系统获取相机的当前位置和姿态信息的技术比较成熟,在此不作赘述。
49.在框104处,对第二场景图像执行目标检测。
50.具体地,在调整第一场景图像以获得第二场景图像之后,可以将第二场景图像划分为多个候选区域。使用神经网络分别提取该多个候选区域的特征图。使用分类方法识别每个候选区域中的对象的类别,并且针对每个对象执行边界框回归以确定每个对象的大小,从而可以实现对第二场景图像中的该多个候选区域进行的目标检测,以确定第二场景图像中待检测的目标对象。由于第二场景图像是通过调整第一场景图像的方向而获得的场景图像,因此第二场景图像的目标检测结果是针对第一场景图像的目标检测结果,只是在第一场景图像和第二场景图像中,待检测的目标对象具有不同的取向。
51.用于提取候选区域的特征图的神经网络可以是用于提取特征的任何神经网络,对象的类别可以通过使用用于对图像进行分类的任何神经网络来确定,并且当执行边界框回归时,可以使用用于边界框回归的任何神经网络,在此不作限制。
52.值得注意的是,在本公开的实施例中,第二场景图像的方向与用于对第二场景图像执行目标检测的神经网络的训练数据有关。例如,在本公开的实施例中,在用于训练神经网络的训练数据中,图像的横向方向通常为图像中的水平方向,则在调整第一场景图像时,第一场景图像被调整成使得调整后的图像的水平方向能够对应地平行于该调整后的图像的横向方向。即,用于训练神经网络的训练数据中的对象的取向与第二场景图像中的对象的取向相同。在具体实施方式中,第一场景图像可根据需要调整为具有其它方向,在此不作限制。
53.此外,可以理解的是,由相机拍摄的第一场景图像中的对象的取向可以与用于训练神经网络的训练数据中的对象的取向相同或不同。在本公开的实施例中,若确定相机所拍摄的第一场景图像中的对象与用于训练神经网络的训练数据中的对象具有相同的取向,则可直接对第一场景图像执行目标检测。
54.也就是说,在本公开的实施例中,在调整第一场景图像之前,该方法还包括:基于相机的当前位置和姿态信息,确定第一场景图像满足调整要求。调整要求可以是第一场景图像的旋转角度大于0度。
55.具体地,如果基于相机的当前位置和姿态信息确定相机拍摄的第一场景图像满足调整要求,则可基于相机的当前位置和姿态调整第一场景图像以获得调整后的第二场景图像。然后,第二场景图像经受目标检测。若第一场景图像不符合调整要求,则直接对相机所拍摄的第一场景图像进行目标检测。
56.在示例性实施例中,可以设置角度阈值,且将调整要求设置为第一场景图像的旋转角度大于该角度阈值,在此不作限制。
57.可以理解的是,在根据本公开的目标检测方法中,由于在执行目标检测之前基于相机的当前位置和姿态来调整第一场景图像,获得调整后的第二场景图像。第二场景图像中的对象的取向与神经网络的训练数据中的对象的取向相同,因此不需要事先对神经网络的训练数据进行各种转换,以使神经网络能够学习旋转后的对象的特性。可以直接使用单个方向上训练的训练数据生成的神经网络对第二场景图像执行目标检测,从而过程简单,节省了目标检测的计算时间和计算资源,提高了目标检测的效率。
58.利用根据本公开的实施例的目标检测方法,在获取相机拍摄的第一场景图像后,获取相机的当前位置和姿态信息,基于相机的当前位置和姿态信息对第一场景图像进行调整以获得调整后的第二场景图像,对第二场景图像执行目标检测。以此方式,可以在不需要进行数据增强的情况下对场景图像执行目标检测,过程简单,节省了目标检测的计算时间和计算资源,提高了目标检测的效率。
59.根据上述分析,在调整第一场景图像以获得经调整的第二场景图像之后,可直接通过上述实施例所述的方法将第二场景图像划分为多个候选区域,然后再执行后续的目标检测。在可能的实施方式中,为了提高生成的候选区域的准确性,可通过slam系统获取与第二场景图像对应的三维点云,通过使用三维点云对第二场景图像进行划分以形成多个候选区域,并执行后续的目标检测。以下将参照图5进一步描述根据本公开的实施例的目标检测方法。图5为本公开另一实施例的目标检测方法的流程图。
60.如图5所示,根据本公开的目标检测方法可以包括以下步骤。
61.在框201处,获取由相机拍摄的第一场景图像。
62.在框202处,由同步定位和建图(slam)系统获取相机的当前位置和姿态信息。
63.在框203处,基于相机的当前位置和姿态信息来确定第一场景图像的旋转角度。
64.在框204处,基于该旋转角度旋转第一场景图像以获得第二场景图像。
65.上述对框201至204的动作的具体实现过程和原理可以参考上述实施例的描述,在此不再赘述。
66.在框205处,通过slam系统扫描与第一场景图像对应的场景以生成与该场景对应的三维点云。
67.任何现有技术均可通过slam系统扫描与第一场景图像对应的场景,以生成与该场景对应的三维点云,在此不作限制。
68.在示例实施例中,可以预先校准包括在终端设备中的相机以确定相机的内部参数,并且使用校准后的相机扫描场景以通过slam系统生成与该场景对应的三维点云。
69.为了校准相机,可以在a4纸上打印7*9黑白校准版,校准板的一个棋盘格尺寸为29.1mm*29.1mm。将该校准板贴在整洁且平坦的墙壁上,并且使用待校准的相机对该校准板拍摄视频。拍摄期间,连续移动相机,以从不同的角度和不同的距离拍摄校准板。使用opencv封装算法函数编写校准程序。将视频转换为图像,选取其中的50幅图像作为校准图像,将校准图像与校准板的基本参数一起输入校准程序,可计算出相机的内部参数。
70.世界坐标系中的点是以物理长度维度来测量的,而图像平面坐标系中的点是以像素来测量的。内部参数用于在两个坐标系之间进行线性变换。空间中的点q(x,y,z)可以由
内部参数矩阵变换以得到该点在像素坐标系下通过射线投影到图像平面上的对应点q(u,v):
[0071][0072]
k为相机的内部参数矩阵。
[0073][0074]
其中,f是相机焦距,单位为毫米;dx和dy分别表示每个像素的长度和宽度,单位为毫米;,u0和v0表示图像中心的坐标,通常以像素为单位。
[0075]
根据相机的内部参数和相机拍摄场景时得到的场景图像的高度和宽度,按照dso程序所需的格式编写相机参数文件,并将该相机参数文件作为输入启动dso程序。换句话说,当使用相机扫描场景时,可以实时地构建该场景的三维点云。
[0076]
需要说明的是,框205处的动作可以在框204处的动作之后执行,或者可以在框204处的动作之前执行,在此不作限制,框205处的动作只需在框206处的动作之前执行即可。
[0077]
在框206处,基于相机的当前位置和姿态信息来调整三维点云,以使得调整后的三维点云对应于第二场景图像的方向。
[0078]
具体地,以与框103处的动作类似的方式调整与场景对应的三维点云的方向,使得调整后的与场景对应的三维点云对应于待执行目标检测的第二场景图像的方向。
[0079]
需要说明的是,在本公开的实施例中,在生成第二场景图像对应的三维点云时,形成与第一场景图像对应的三维点云,并基于相机的当前位置和姿态信息调整三维点云,以使该三维点云与第二场景图像的方向对应。在示例性实施例中,通过slam系统获取相机的当前位置和姿态信息后,直接使用由slam系统确定的相机的当前位置和姿态信息扫描与第二场景图像对应的场景,以直接生成与第二场景图像对应的三维点云,在此不作限制。
[0080]
在框207处,基于调整后的三维点云来划分第二场景图像以形成多个候选区域。
[0081]
具体地,可以通过以下步骤来实现框207处的动作。
[0082]
在框207a处,划分调整后的三维点云以形成多个三维区域。
[0083]
在框207b处,将该多个三维区域投影到第二场景图像以形成多个候选区域。
[0084]
具体地,在框207的动作可以以下面的方式实现。
[0085]
第一方式
[0086]
可以理解的是,同一对象通常具有相同或相似的纹理、颜色和其它特性,但不同的对象具有不同的纹理、颜色和其它特性。对应地,在调整后的三维点云中,同一对象所对应的三维点之间的相似度通常大于该对象的三维点与另一对象的三维点之间的相似度。那么,在本公开的实施例中,当对调整后的三维点云进行划分以形成多个三维区域时,基于调整后的三维点云中的三维点之间的相似度,将具有高相似度的三维点(相似度越高,三维点
越接近)合并在一起,以使得能够形成多个三维点子云,并且将每个三维点子云所在的区域配置为三维区域,从而将三维点云划分为多个三维区域。
[0087]
具体地,三维点云中的三维点可以通过使用聚类算法被分类成多个类别,使得同一类别的三维点之间的相似度大于一个类别的三维点和另一类别的三维点之间的相似度。将同一类别的三维点合并在一起,从而可以形成多个三维点子云,将一个三维点子云所占的区域配置为三维区域,从而将三维点云划分为多个三维区域。
[0088]
聚类算法可以是基于距离的聚类算法,例如k均值聚类算法,或者基于图的聚类算法,例如图割算法,或者其它任意聚类算法,本公开不做限制。
[0089]
在框207a的动作可以以下面的方式实现。
[0090]
通过聚类算法将三维点云中的三维点合并,并将合并后的三维点云进行划分以形成多个三维区域。
[0091]
例如,假设图6中所示的三维点是调整后的三维点云中的三维点的一部分。在图6中,通过使用聚类算法,将三维框架1中的三维点分类为一个类别,将三维框架2中的三维点分类为一个类别,将三维框架3中的三维点分类为一个类别,并且将三维框架4中的三维点分类为一个类别。可以将三维框架1、2、3、4中的三维点分别合并以形成四个三维点子云,并将每个三维点子云所占的区域配置为三维区域,从而实现将经合并的三维点云划分为四个三维区域。
[0092]
通过聚类算法合并三维点云中的三维点,并且如下所述,通过将k均值算法作为聚类算法,划分合并后的三维点云以形成多个三维区域。
[0093]
具体地,可以预先设置要形成的三维区域的数量。通过k均值算法将三维点云中的三维点分类为总数k个类别,并统计三维点云中三维点的数量n。随机生成k个三维聚类中心点,确定n个三维点中的每个三维点对应k个三维聚类中心点中的哪个聚类中心点,即确定每个三维点的类别并确定属于每个聚类中心点的类别的三维点。对于每个聚类中心点,确定属于该聚类中心点的类别的所有三维点的中心点的坐标,并将该聚类中心点的坐标修改为该中心点的坐标。再次确定每个三维点对应k个聚类中心点中的哪个聚类中心点,并且根据属于每个聚类中心点的类别的所有三维点的中心点的坐标确定该每个聚类中心点的坐标。重复上述过程直到算法收敛。以此方式,可以将所有的三维点划分为k个类别,并将每个类别中的三维点合并在一起,从而可以形成k个三维点子云,将每个三维点子云所占的区域配置为三维区域,从而实现将经合并的三维点云划分为k个三维区域。
[0094]
当确定特定三维点对应于k个三维聚类中心点中的哪一个时,可以计算该三维点与k个聚类中心点中的每个之间的距离,并且将与该三维点的距离最短的聚类中心点视为与该三维点对应的聚类中心点。
[0095]
第二方式
[0096]
可以理解的是,对象通常具有特定的形状,例如,杯子可以是圆柱形的,门可以是正方形的。对应地,对于场景中具有特定形状的对象,对应的三维点云中的三维点也可以拟合为具体形状。在本公开的实施例中,上述三维点云中的三维点可与多个预设模型拟合,以将该三维点云划分为多个三维区域,该多个三维区域分别对应于该多个预设模型。
[0097]
在框207a处的动作可以以下面的方式实现。
[0098]
上述三维点云中的多个三维点可以与多个预设模型拟合,以将该三维点云划分为
分别与多个预设模型对应的多个三维区域。
[0099]
预设模型可以是预设的几何基本模型,例如球体、圆柱体、平面,或者可以是由几何基本模型组成的复杂几何模型,或者可以是其它任何预设模型,在此不作限制。
[0100]
在具体实施方式中,如果三维点云中的三维点能够拟合多个预设模型,则可以将与该多个预设模型对应的三维点合并为多个三维点子云,一个三维点子云中的三维点对应一个预设模型,并将每个三维点子云所占的区域配置为三维区域,从而可以将三维点云划分为分别与该多个预设模型对应的多个三维区域。
[0101]
将三维点云中的三维点与预设模型进行拟合的方式可以是最小二乘法或任何其他方式,在此不作限制。
[0102]
例如,假设在调整后的三维点云中,标识为1-200的三维点是三维点的一部分,标识为1-100的三维点可以与预设模型1拟合,标识为101-200的三维点可以与预设模型2拟合,则标识为1-100的三维点可以合并成三维子点云a,标识为101-200的三维点可以合并成三维子点云b。三维子点云a所占的区域被配置为三维区域,三维子点云b所占的区域也被配置为三维区域。
[0103]
以圆柱体为预设模型中的一个为例,在将三维点云中的三维点与圆柱体进行拟合时,对圆柱体进行参数化,例如,空间中的圆柱体可以用三维空间中的中心坐标(x,y,z)、底部半径、高度、取向等参数来表示,使用随机抽样一致性(randomsample consensus,ransac)算法从三维点云中随机选取若干个三维点。假设这些三维点在一个圆柱体上,计算该圆柱体的参数,统计该三维点云中的所有三维点中的在该圆柱体上的三维点的数量,并判断该数量是否超过预设的数量阈值。如果没有超过,则再次选择若干个三维点重复上述过程;否则,则可以确定该圆柱体上的三维点和三维点云中的三维点是否能与该圆柱体拟合,且该算法继续判断该三维点云中的三维点是否能与其它预设模型拟合,从而将分别与多个预设模型拟合的三维点合并以形成多个三维点子云。每个三维点子云中的三维点对应一个预设模型,并将每个三维点子云所占的区域配置为三维区域,从而可以将三维点云划分为分别与该多个预设模型对应的多个三维区域。
[0104]
该数量阈值可以根据需要设置,在此不作限制。
[0105]
此外,可以设置距离阈值。可以计算三维点云中的每个三维点到该圆柱体的距离,且将距离小于该距离阈值的三维点确定为该圆柱体上的三维点。
[0106]
应当注意的是,上述第一方式和第二方式仅是划分调整后的三维点云以形成多个三维区域的两个示例。在实际应用中,本领域技术人员可以用任何其它方式划分调整后的三维点云,本公开不做限定。
[0107]
进一步地,在对调整后的三维点云进行划分以形成多个三维区域之后,将该多个三维区域投影到第二场景图像上,并将所获得的分别与三维区域对应的二维边界框配置为指示本公开中要确定的多个候选区域。
[0108]
具体地,可以采用坐标变换,以将三维区域中的每个三维点的坐标从对象坐标系依次到世界坐标系、相机坐标系、投影坐标系、以及图像坐标系进行转换。以此方式,将每个三维区域投影到场景图像。在投影之后,配置与三维区域对应的二维边界框以指示候选区域,从而生成多个候选区域。
[0109]
例如,假设图7中的立方体是通过划分调整后的三维点云而形成的三维区域。在将
该三维区域投影到第二场景图像之后,配置与该三维区域对应的二维边界框(由图7中的虚线框5指示)以指示候选区域。
[0110]
可以理解的是,在执行本公开的实施例中的目标检测时,通过使用slam系统扫描场景生成的与该场景对应的三维点云,对第二场景图像进行划分,以形成多个候选区域。通过结合三维信息,所生成的候选区域可以更加准确,数量更少。
[0111]
需要说明的是,在前述实施例中,在通过slam系统对场景进行扫描生成与该场景对应的三维点云后,将调整后的三维点云进行划分以形成多个三维区域,并将该多个三维区域投影到调整后的第二场景图像上以形成多个候选区域。在实际应用中,可以通过深度相机获取与场景对应的密集三维点云,或者可以通过其他方法获取场景的三维点云,并对三维点云进行调整、划分及后续操作,以形成多个候选区域,本公开对此不作限制。
[0112]
在框208处,分别对多个候选区域执行目标检测。
[0113]
具体地,在形成多个候选区域之后,可以通过使用神经网络来提取该多个候选区域的特征图,并且采用分类方法来识别每个候选区域中的对象的类别。对每个对象执行边界框回归以确定每个对象的大小,从而实现对该多个候选区域的目标检测,以及确定场景图像中的待检测的目标对象。
[0114]
用于提取候选区域的特征图的神经网络可以是用于提取特征的任何神经网络,用于对图像进行分类的任何神经网络可以用于确定对象的类别,并且当执行边界框回归时,可以使用用于边界框回归的任何神经网络,在此不作限制。
[0115]
可以理解的是,根据本公开的实施例的目标检测方法可以应用于ar软件开发工具包(software development kit,sdk)中,提供目标检测功能,开发人员可以利用ar sdk中的目标检测功能实现场景中对象的识别,进而实现电子商务领域的产品推荐等各种功能。
[0116]
利用本公开的实施例的目标检测方法,在对第一场景图像执行目标检测之前,基于相机的当前位置和姿态信息对第一场景图像进行调整以获得调整后的第二场景图像,并对第二场景图像执行目标检测,从而可以对场景图像执行目标检测,而不需要进行数据增强,过程简单,节省了目标检测的计算时间和计算资源,提高了目标检测的效率。另外,通过slam系统生成的与场景对应的三维点云用于辅助生成多个候选区域,使得生成的候选区域更加准确且数量更少。由于减少了候选区域的数量,使得对候选区域的特征提取等后续处理花费的计算时间较少,消耗的计算资源较少,从而节省了目标检测的计算时间和计算资源,且提高了目标检测的效率。
[0117]
下面参考图8描述根据本公开的实施例的目标检测装置。图8是根据本公开的实施例的目标检测装置的框图。
[0118]
如图8所示,目标检测装置包括:第一获取模块11、第二获取模块12、调整模块13、和检测模块14。
[0119]
第一获取模块11被配置为获取相机拍摄的第一场景图像。
[0120]
第二获取模块12被配置为获取相机的当前位置和姿势信息。
[0121]
调整模块13被配置为基于相机的当前位置和姿势信息来调整第一场景图像以获得第二场景图像。
[0122]
检测模块14被配置为对第二场景图像执行目标检测。
[0123]
详细地,该目标检测装置可以执行在前述实施例中描述的目标检测方法。该装置
可以被配置为在终端设备中以对场景的场景图像执行目标检测。本公开的实施例中的终端设备可以是能够进行数据处理的任何硬件设备,例如智能手机、平板电脑、机器人、可穿戴设备如头戴式移动设备。
[0124]
在示例性实施例中,第二获取模块12被配置为通过slam系统获取相机的当前位置和姿态信息。
[0125]
在示例性实施例中,调整模块13被配置为基于相机的当前位置和姿态信息来确定第一场景图像的旋转角度;以及基于该旋转角度旋转第一场景图像。
[0126]
需要说明的是,本实施例的目标检测装置的实现过程和技术原理,参考上述第一方面的实施例中的目标检测方法的说明,在此不再赘述。
[0127]
根据本公开的实施例的目标检测装置,获取相机拍摄的第一场景图像,获取该相机的当前位置和姿态信息,然后基于该相机的当前位置和姿态信息对该第一场景图像进行调整以获得调整后的第二场景图像,对该第二场景图像执行目标检测。以此方式,可以在不需要进行数据增强的情况下对场景图像执行目标检测,过程简单,节省了目标检测的计算时间和计算资源,提高了目标检测的效率。
[0128]
下面结合图9进一步描述根据本公开的实施例的目标检测装置。图9是根据本公开的另一实施例的目标检测装置的框图。
[0129]
如图9所示,在图8的基础上,该装置还包括处理模块15,处理模块15被配置为通过slam系统扫描与第一场景图像对应的场景以生成与该场景对应的三维点云,并根据相机的当前位置和姿态信息调整该三维点云,以使调整后的三维点云对应于第二场景图像的方向。
[0130]
检测模块14包括划分单元141和检测单元142。
[0131]
划分单元141被配置为划分第二场景图像以形成多个候选区域。
[0132]
检测单元142被配置为分别对多个候选区域执行目标检测。
[0133]
在示例性实施例中,划分单元141被配置为基于调整后的三维点云来划分第二场景图像以形成多个候选区域。
[0134]
在示例性实施例中,划分单元141被配置为:对调整的三维点云进行划分以形成多个三维区域;以及将该多个三维区域投影到第二场景图像以形成多个候选区域。
[0135]
需要说明的是,本实施例的目标检测装置的实现过程和技术原理,参考上述第一方面的实施例中的目标检测方法的说明,在此不再赘述。
[0136]
根据本公开的实施例的目标检测方法,在对第一场景图像执行目标检测之前,基于相机的当前位置和姿态信息对第一场景图像进行调整以获得调整后的第二场景图像,并对第二场景图像执行目标检测,从而可以在不需要进行数据增强的情况下对场景图像执行目标检测,过程简单,节省了目标检测的计算时间和计算资源,提高了目标检测的效率。另外,通过slam系统生成的与场景对应的三维点云用于辅助生成多个候选区域,使得生成的候选区域更加准确且数量更少。由于减少了候选区域的数量,使得对候选区域的特征提取等后续处理花费的计算时间较少,消耗的计算资源少,从而节省了目标检测的计算时间和计算资源,提高了目标检测的效率。
[0137]
为了实现上述实施例,本公开还提供了一种终端设备。
[0138]
图10是根据本公开的实施例的终端设备的框图。
[0139]
如图10所示,该终端设备包括:存储器、处理器和计算机程序,该计算机程序存储在该存储器中且能够由该处理器执行。当该处理器执行该计算机程序时,实现根据参照图2描述的实施例的目标检测方法。
[0140]
需要说明的是,本实施例的终端设备的实现过程和技术原理,参考结合上述图2描述的实施例中的目标检测方法的说明,在此不再赘述。
[0141]
根据本公开的实施例的终端设备,在获取相机拍摄的第一场景图像后,获取该相机的当前位置和姿态信息,并基于该相机的当前位置和姿态信息对该第一场景图像进行调整以获得调整后的第二场景图像,对该第二场景图像执行目标检测。以此方式,可以在不需要进行数据增强的情况下对场景图像执行目标检测,过程简单,节省了目标检测的计算时间和计算资源,提高了目标检测的效率。
[0142]
为了实现上述实施例,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序。当该计算机程序由处理器执行时,实现根据第一方面的实施例的目标检测方法。
[0143]
为了实现上述实施例,本公开还提供了一种计算机程序。当该计算机程序中的指令由处理器执行时,实现根据前述实施例的目标检测方法。
[0144]
整个说明书中对“实施例”、“一些实施例”、“示例”、“特定示例”或“一些示例”的提及是指,结合该实施例或示例描述的特定特征、结构、材料或特性包括在本公开的至少一个实施例或示例中。
[0145]
此外,诸如“第一”和“第二”之类的术语在本文中用于描的目的,并不旨在指示或暗示相对重要性或意义。因此,限定有“第一”和“第二”的特征可以包括一个或多个该特征。
[0146]
在流程图中描述或在本文中以其他方式描述的任何过程或方法,可以理解为包括用于实现过程中特定逻辑功能或步骤的可执行指令的一个或多个模块、代码段或代码部分。本领域技术人员应当理解,本公开的优选实施例的范围包括其它实施方式。
[0147]
可以理解的是,本公开的各个部分可以通过硬件、软件、固件或者它们的组合来实现。在上述实施例中,多个步骤或方法可以通过存储在存储器中并由适当的指令执行系统执行的软件或固件来实现。例如,如果通过硬件实现,同样在另一实施例中,这些步骤或方法可以通过本领域已知的以下技术中的一种或组合来实现:具有用于实现数据信号的逻辑功能的逻辑门电路的分立逻辑电路,具有适当组合逻辑门电路的专用集成电路,可编程门阵列(programmable gate array,pga),现场可编程门阵列(field programmable gate array,fpga)等。
[0148]
本领域技术人员可以理解,上述实施例中的方法所执行的全部或部分步骤可以通过程序指令相关硬件来完成。该程序可以存储在计算机可读存储介质中。当程序被执行时,可以完成上述实施例中的方法的一个步骤或几个步骤的组合。
[0149]
上述存储介质可以是只读存储器、磁盘或cd等。虽然已经示出和描述了说明性的实施例,但是本领域技术人员可以理解,上述实施例不能被解释为限制本公开,并且在不背离本公开的范围的情况下可以对实施例进行改变、替换和修改。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献