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

物体检测方法、系统和计算机可读介质与流程

2022-12-03 12:21:37 来源:中国专利 TAG:


1.本技术涉及图像处理技术,尤其涉及一种物体检测方法、系统及计算机可读介质。


背景技术:

2.物体检测可以在增强现实(augmented reality,ar)中发挥重要作用。对现实世界场景中物体的感知/理解可以为ar带来很多应用。例如,真实物体的外观可以通过相应地调整虚拟覆盖层来改变,还可以通过某些关联规则将虚拟物体放置到场景中(例如,在真的桌子附近显示相匹配的虚拟椅子)。对于电商应用,也可以根据对场景的了解,推荐相关商品。
3.深度神经网络(deep neural network,dnn),包括ssd、yolo和快速r-cnn等,已经实现了图像或视频中物体的检测。再者,随着移动设备上移动集成芯片和专用dnn解决方案的进步,越来越多的dnn可以在智能手机上实时运行。然而,用于物体检测的dnn需要大量的训练数据来处理尺寸和视点的变化。此外,移动设备上传统的二维物体检测dnn通常具有相对较低的全类平均精度(mean average precision,map),例如mobilenetv2_ssdlite达到22.1%的map,这表明在推算过程中有很多假阳误报。使用来自cad模型或深度相机的几何信息,可以提高正确率。但是,对于许多现实世界的物体来说,获得cad模型并不容易,而且移动设备上的深度相机相当耗能、昂贵且工作范围有限(《5公尺)。
4.另一方面,移动ar框架已经成为主流,例如苹果公司的ar kit和谷歌公司的arcore。此类ar框架采用slam算法(更具体地说,为vio算法)来跟踪6个自由度(degree-of-freedom,dof)的相机姿态(即,位置和方向)。此类框架还提供3d稀疏点云数据,可以重建距离相机50米以上的3d数据点。


技术实现要素:

5.本技术的一个目的是提供一种物体检测方法、系统和计算机可读介质,以使用语义图来提高物体检测的准确性。
6.本技术第一方面中,一种物体检测方法包括:
7.通过处理器基于来自神经网络和增强现实(ar)的输出,创建物体表现数据,其中所述物体表现数据包括所述神经网络在图像上识别出的物体的物体标签信息、物体点的三维位置以及来自所述ar框架的所述物体点的视点信息和尺寸信息;
8.通过处理器构建包括物体超点的语义图,其中每个物体超点由所述物体点的得分历史数据、所述视点信息和所述尺寸信息表示;
9.通过处理器确定所述语义图中的一组物体超点,所述组中的物体超点的位置位于新进物体点的特定距离内,其中所述特定距离是基于所述神经网络所识别的所述物体的类别的尺寸来决定的,所述新进物体点属于所述类别;
10.通过处理器响应所述新进物体点,更新所述语义图,其中所述语义图中所确定的组中的物体超点的得分基于所述新进物体点的信息进行更新;和
11.通过处理器根据更新后的语义图,修改所述神经网络所识别及所述新进物体点所
属的类别的概率。
12.根据结合本技术第一方面的一个实施例,所述语义图基于所述物体点构建的,所述物体点在所述图像上的投影位于所述神经网络所识别的所述物体的边界区域内。
13.根据结合本技术第一方面的一个实施例,使用在所述图像上的投影位在所述物体的边界区域内的物体点的中间点来构造所述语义图的物体超点。
14.根据结合本技术第一方面的一个实施例,所述特定距离为所述新进物体点所属类别的最大尺寸。
15.根据结合本技术第一方面的一个实施例,所述响应所述新进物体点,更新所述语义图包括:
16.将所述新进物体点的视点信息与所述组中的物体超点的历史视点信息之间的比较和/或所述新进物体点的尺寸信息与所述组中的物体超点的历史尺寸信息之间进行比较,计算所述新进物体点的得分,其中所述新进物体点属于所述神经网络所识别的具有某一概率的类别,所述新进物体点的得分表示所述新进物体点所属类别的概率的变化。
17.根据结合本技术第一方面的一个实施例,在计算所述新进物体点的得分时,根据第一权重和第二权重来计算所述新进物体点的得分,其中所述第一权重与对应于所述新进物体点的视点和对应于所述组中的物体超点的所有视点之间的最小角度差相关联,所述第二权重与对应于所述新进物体点的尺寸和对应于所述组中的物体超点的所有尺寸之间的最小尺寸差相关联。
18.根据结合本技术第一方面的一个实施例,如果所述最小角度差小于第一预定角度,则将所述第一权重设为第一数值;
19.如果所述最小角度差大于第二预定角度,则将所述第一权重设为第二数值,所述第一数值小于所述第二数值且所述第一预定角度小于所述第二预定角度。
20.根据结合本技术第一方面的一个实施例,如果所述最小尺寸差在预定范围内,则所述第二权重与所述最小尺寸差成正比,如果所述最小尺寸差超出所述预定范围,则所述第二权重设为定值。
21.根据结合本技术第一方面的一个实施例,所述新进物体点的得分随着所述最小角度差和/或所述最小尺寸差增加而增加;所述新进物体点的得分随着所述最小角度差和/或所述最小尺寸差减小而减小,并且所述最小角度差和/或所述最小尺寸差的增加表示使用从所述神经网络获得的新进物体点的类别概率的机会增加,所述最小角度差和/或所述最小尺寸差的减小表示使用从所述神经网络获得的新进物体点的类别概率的机会降低。
22.根据结合本技术第一方面的一个实施例,所述响应所述新进物体点,更新所述语义图包括:
23.针对与所述神经网络所识别的新进物体点的类别相同的所述组中的物体超点的类别,利用所述新进物体点的得分更新所述组中的物体超点的得分,其中针对与所述新进物体点的类别相同的所述组中的物体超点,如果所述组中的物体超点落入所述新进物体点所属类别的最小尺寸内,则所述组中的物体超点将获得额外的分数。
24.根据结合本技术第一方面的一个实施例,所述响应所述新进物体点,更新所述语义图包括:
25.如果对应于所述组中的物体超点之一的视点与对应于所述组中的物体超点的所
有视点之间的最小角度差大于预定角度,则更新所述组中任一个物体超点的视点信息的历史数据;和/或如果对应于所述组中的物体超点之一的视点与对应于所述组中的物体超点的所有视点之间的最小尺寸差超过预定值,则更新所述组中任一个物体超点的尺寸信息的历史数据。
26.根据结合本技术第一方面的一个实施例,所述响应所述新进物体点,更新所述语义图包括:
27.如果所述新进物体点所属类别的最小尺寸内没有物体超点存在,则初始化所述新进物体点的历史数据,其中只有所述新进物体点的当前得分、视点信息和尺寸信息会被记录到所述语义图上。
28.根据结合本技术第一方面的一个实施例,所述根据所述更新后的语义图,修改所述神经网络所识别及所述新进物体点所属的类别的概率包括:
29.通过使用所述组中物体超点更新后的得分来修正所述新进物体点所属类别的概率。
30.根据结合本技术第一方面的一个实施例,考虑了具有与所述新进物体点的类别相同的类别的所述组中所有物体超点中的最高得分和具有其他类别的所述组中所有物体超点中的最高得分,来修正所述新进物体点所属类别的概率。
31.根据结合本技术第一方面的一个实施例,所述新进物体点所属类别的概率是基于sigmoid函数进行修正。
32.本技术第二方面中,一种物体检测系统包括:
33.至少一个存储器,用于存储程序指令;和
34.至少一个处理器,被配置用来执行所述程序指令,所述程序指令使所述至少一个处理器执行下步骤:
35.基于来自神经网络和增强现实(ar)的输出,创建物体表现数据,其中所述物体表现数据包括所述神经网络在图像上识别出的物体的物体标签信息、物体点的三维位置以及来自所述ar框架的所述物体点的视点信息和尺寸信息;
36.构建包括物体超点的语义图,其中每个物体超点由所述物体点的得分历史数据、所述视点信息和所述尺寸信息表示;
37.确定所述语义图中的一组物体超点,所述组中的物体超点的位置位在新进物体点的特定距离内,其中所述特定距离是基于所述神经网络所识别的所述物体的类别的尺寸来决定的,所述新进物体点属于所述类别;
38.响应所述新进物体点,更新所述语义图,其中所述语义图中所确定的组中的物体超点的得分基于所述新进物体点的信息进行更新;和
39.根据更新后的语义图,修改所述神经网络所识别及所述新进物体点所属的类别的概率。
40.根据结合本技术第二方面的一个实施例,所述响应所述新进物体点,更新所述语义图包括:
41.将所述新进物体点的视点信息与所述组中的物体超点的历史视点信息之间的比较和/或所述新进物体点的尺寸信息与所述组中的物体超点的历史尺寸信息之间进行比较,计算所述新进物体点的得分,其中所述新进物体点属于所述神经网络所识别的具有某
一概率的类别,所述新进物体点的得分表示所述新进物体点所属类别的概率的变化。
42.根据结合本技术第二方面的一个实施例,所述响应所述新进物体点,更新所述语义图包括:
43.针对与所述神经网络所识别的新进物体点的类别相同的所述组中的物体超点的类别,利用所述新进物体点的得分更新所述组中的物体超点的得分,其中针对与所述新进物体点的类别相同的所述组中的物体超点,如果所述组中的物体超点落入所述新进物体点所属类别的最小尺寸内,则所述组中的物体超点将获得额外的分数。
44.根据结合本技术第二方面的一个实施例,所述根据所述更新后的语义图,修改所述神经网络所识别及所述新进物体点所属的类别的概率包括:
45.通过使用所述组中物体超点更新后的得分来修正所述新进物体点所属类别的概率,其中考虑了具有与所述新进物体点的类别相同的类别的所述组中所有物体超点中的最高得分和具有其他类别的所述组中所有物体超点中的最高得分,来修正所述新进物体点所属类别的概率。
46.本技术第三方面中,一种非暂时性计算机可读介质,其上存储有程序指令,当所述程序指令由至少一个处理器执行时,使所述至少一个处理器执行上述任一物体检测方法。
47.在本技术中,使用语义图来提高物体检测的准确性。语义图中的语义点是通过结合来自神经网络的物体检测结果和来自ar框架的姿态数据和三维数据点的结果生成的。语义图是由物体超点组成,其具有对应于检测到的标签的得分的列表、观看方向的列表和尺寸的列表。基于这些数据,修改来自神经网络的概率。通过修改物体标签或类别的概率,提高了物体检测的准确性。
附图说明
48.为了更清楚地说明本技术实施例或相关技术,以下简要介绍将于实施例中进行描述的附图。显然,这些附图仅仅代表本技术中的一些实施例,本领域普通技术人员可以根据这些附图在不付出任何代价的前提下得出其他附图。
49.图1显示根据本技术的物体检测的架构的示意图。
50.图2显示根据本技术的物体检测方法的流程图。
51.图3显示根据本技术的语义图更新程序的流程图。
52.图4显示根据本技术的物体检测系统的框图。
53.图5显示根据本技术的物体检测系统的更新模块的框图。
54.图6显示根据本技术的实现物体检测方法的电子设备的框图。
具体实施方式
55.下面将结合本技术的附图,在技术方案、结构特征、达到的目的及效果方面,对本技术实施例进行详细说明。具体地,本技术实施例中使用的术语仅用于描述某些实施例,而不用于限制本发明。
56.本技术中使用的术语定义如下:
[0057][0058]
表1
[0059]
以下描述以dnn和ar框架为例进行说明。然而,其他神经网络和类似的增强现实技术也可以应用在本技术中,本技术的范围不限于所举出的示例。
[0060]
本技术使用(3d)语义图来提高2d物体检测dnn的准确性。语义点云是通过结合来自dnn的物体检测结果和来自ar框架的姿态和3d点的结果而生成的。语义图是由3d超点组成,其中包括与检测到的标签相对应的得分的列表、观看方向的列表和尺寸的列表。来自dnn的概率会基于这些数据进行更新或修改。通过修改物体标签或类别的概率,提高了物体检测的准确性。
[0061]
本技术的一些实施例中,针对所估算的物体点的得分测算不仅考虑某个位置上已经检测到某个标签的次数,还考虑了观看方向和尺寸上的检测。当视点不断变化时,这种方式在ar场景中的表现优于普通的dnn。这可以降低(假阳)误报的概率,即当物体被识别为最近从未从类似的观看方向看到的类别,但在同一位置已多次识别为另一个类别。例如,这种方式可以改善以下情况的(假阳)误报:在当前帧,床被检测为沙发,但是语义图显示在前几个帧同一位置处持续检测到的是床。在另一个例子中,当物体检测dnn针对一个物体标签输出相对较低的概率,但从语义图可以知道这个位置上的这个物体在一段时间之前从另一个不同的方向观看到,此方式会增加所述类别的概率。这种方式以ar框架提高了2d物体检测的准确性,而无需额外的训练数据来处理工作任务的尺寸和视点变化。这使得许多ar应用成为可能,例如,可以为3d点云加上语义标签,从而可以触发相应的虚拟内容给用户。
[0062]
图1显示根据本技术的物体检测的架构的示意图。本技术的物体检测架构描述如下。
[0063]
传统ar会话中,当设备在场景中移动,任意时间后返回先前访问过的位置时,如果持续且成功地跟踪该设备,则6个dof的相机姿态(即,位置和方向)会保持与先前记录的值几乎一致。这意味着,ar框架具有能够记住一个地方的能力。然而,当ar框架的slam(vio)因当前帧和最近的一些先前帧之间缺乏足够的特征匹配而失败时,跟踪有时会丢失。在这种情况下可以使用重定位,通过将输入图像中的特征与先前看到的图像中存储的特征进行匹配,来重新估算相对于地图的设备姿态。在vio运行过程中可能出现的另一个问题是设备轨迹随时间的累积而偏离真实轨迹。为了解决这个问题,通常会执行间歇性重定位来检测再次访问的位置,以跳脱循环。ar框架的这种记忆和识别以前访问过的地方的能力可以结合到物体检测方法和系统的开发上。
[0064]
如图1所示,3d语义图由来自ar框架和dnn的输出所构建。物体检测存在许多挑战,例如尺寸和视点上的变化,物体检测器必须从不同的视点检测图像上不同大小的物体。使用类别尺度数据库来验证所检测到的物体的类别是否与ar框架估算的尺度一致即可克服此挑战。例如,飞机不应出现在5公尺x5公尺的空间中。当dnn检测到物体时,ar框架生成的视点被存储。在一些实施例中,偏好那些从不同观看方向和/或在不同尺度上对同一物体的相一致的检测。在一些实施例中,使用概率模型在3d语义图中插入和更新物体类别、视点和尺寸信息。如图1所示,从3d语义图中提取信息以更新来自dnn的物体标签概率。
[0065]
图2显示根据本技术的物体检测方法的流程图。下面详细描述物体检测方法。
[0066]
在步骤s200中,基于来自神经网络和ar框架的输出,创建物体表现数据。
[0067]
在这此步骤中,使用来自神经网络(例如,dnn)和ar框架(例如,苹果公司的arkit或谷歌公司的arcore,它们采用slam算法,更具体地为vio算法)的输出来创建物体表现数据。物体表现数据包括神经网络在图像上识别出的物体(例如,椅子)的物体标签信息(例如,图1所示的椅子标签),还包括物体点的三维位置和来自ar框架的所述物体点的视点信息和尺寸信息。图像上的物体(例如,椅子)的2d物体点具有从ar框架估算而来的对应的3d物体点,其中2d物体点是由3d物体点在图像上的映射所产生。
[0068]
在一个例示的实例中,针对每一帧,dnn可以输出一个n个物体类别的列表,每个类别的物体具有关联的边界框和概率。针对每个物体的输出,物体表现数据结构被创建为(loc,label,view,scale),其中loc是当前帧中一个估算的物体点的3d坐标,label是来自dnn的物体标签,view是从相机到loc的观看方向(或视点),scale是尺寸信息,其取决于从相机位置到loc的距离。针对每一帧,ar框架生成6个dof的相机姿态和一组稀疏的3d点,这些稀疏的3d点具有全局3d坐标,且用于计算loc,view和scale。
[0069]
在步骤s202中,构建包括物体超点的语义图。
[0070]
在此步骤中,每个物体超点由物体点的得分历史数据、视点信息和尺寸信息表示。
[0071]
在一个例示的实例中,与估算的物体点数据结构(loc,label,view,scale)不同,物体超点是表示为(loc,list_score,list_view,list_scale)。这三个列表是对ar会话中所有先前帧的信息进行编码。1)list_score(e1,e2,f3,

,e
l


)存储该点处已检测到的每个标签l的得分e
l
的列表;得分越高,该点属于该类别l的概率越高。2)list_view(v1,v2,v3,

)存储检测到物体时从相机位置到的该点的历史观看方向(或视点)的列表;3)list_scale(s1,s2,s3,

)存储在该点检测到物体时从相机位置到该点的历史尺寸的列表。ar会话中,在不同时刻,一个点可能被标记为不同的类别。
[0072]
在一个实施例中,构建语义图时,语义图是基于物体点而构建的,这些物体点在图像上的投影位于神经网络所识别的物体的边界区域内,亦即,构建语义图时只关注或只对映射到或落入神经网络所识别的物体的边界区域(例如,边界框)内的3d物体点感兴趣。这样做的一个原因是为了减少计算量,另一个原因是,因为只有感兴趣的信息参与计算,所以可以获得更准确的结果。
[0073]
在一个实施例中,使用在图像上的投影位在物体的边界区域(例如,边界框)内的物体点的中间点(median point)来构造语义图的物体超点。中间点可以确保落入图像上的物体的边界区域内。另一方面,这个方式进一步减少了计算量。
[0074]
在一个例示的实例中,为了将dnn检测到的物体放到3d语义图上,可以针对在图像上的投影位于所检测到的物体标签的2d边界框内的所有3d点进行某种形式的统计。在一个实施例中,在xyz维度的每个维度上,所有的点的中间值用来表示当前视图中的物体。通过这种方式,避免了将物体标签指派给语义图中其他物体或背景上的不相关的点。这使得此方式获得更好的鲁棒性且更加高效。例如,如图1所示,ar框架估算相机的姿态并重建一些3d点,如圆点(参见图1右侧)。在“椅子”的2d边界框内的那些圆点的中间值p(2.8733,1.09483,1.2345)用来表示所估算的物体点loc。观看方向v(0.61497,0.76871,0.17458)是从相机位置到loc的距离计算而来。v是一个归一化的单位矢量。尺寸信息s为一个定义为对log2d取整的整数,其中d为相机位置到loc之间的距离。例如,当相机与loc的距离为1米时,s=0。因此,对所检测到的椅子,创建数据结构(p,

chair

,v,s)来表示所检测到的物体。
[0075]
在步骤s204中,确定语义图中的一组物体超点,所述组中的物体超点的位置位于新进物体点的特定距离内。
[0076]
在ar会话中,视点会改变。对于同一个物体,从不同的视点来看,会产生新的物体点。此外,可能给同一物体指派不同的标签或类别。为了将新进物体点与3d语义图中的物体超点进行融合,首先确定语义图中的一组物体超点,所述组中的物体超点的位置位于新进物体点的特定距离内。更具体地,所述特定距离是基于神经网络所识别的物体的类别(例如,椅子类别)的尺寸来决定的,而新进物体点属于该类别。物体类别或标签的尺寸可以从如图1所示的类别尺寸数据库中取得。
[0077]
在一个实施例中,在确定语义图中的一组物体超点,所述组中的物体超点的位置位于新进物体点的特定距离内的过程中,所述特定距离为新进物体点所属类别的最大尺寸。例如,椅子类别的尺寸是在0.5公尺到1.5公尺的范围内,故椅子类别的最大尺寸为1.5公尺。
[0078]
在一个例示的实例中,ar会话中,从不同的视点来看,针对同一物体可能生成不同的估算的物体点,因为从每张图像中仅能看到物体的部分表面。此外,在该会话中,同一物体可能会被赋予不同的标签。为了将每个新进的物体表现估算(loc
in
,label
in
,view
in
,scale
in
)与语义图中的超点(loc,list_score,list_view,list_scale)进行融合,首先找出语义图中位置loc距离新进物体点loc
in
在特定距离内的一组超点。为此,针对每个类别,定义了最小尺寸和最大尺寸(例如,椅子类别的尺寸范围为0.5公尺到1.5公尺),然后落入新进物体类别的最大尺寸之内的超点会添加到集合s
in
中进行处理。
[0079]
在步骤s206中,响应新进物体点,更新语义图。
[0080]
响应ar会话中的新进物体点,对语义图进行更新。更新后的语义图用来在后续过
程中修改新进物体所属的及神经网络所识别的类别的概率,以利于物体检测。在更新语义图时,语义图中所确定的组中的物体超点的得分基于新进物体点的信息进行更新。也就是说,来自新进物体点的信息参与了语义图中该组物体超点的历史得分的构建。
[0081]
图3显示根据本技术的语义图更新程序的流程图。步骤s206中语义图的更新可以包括以下步骤,即步骤300至306。
[0082]
在步骤300中,计算新进物体点的得分。
[0083]
在一个例示的实例中,针对类别l的每个新进物体点,计算其得分这里,定义了两个权重wv和ws,其中0≤wv,ws≤1。的计算如下:
[0084][0085]
其中,p
l
是dnn计算出的类别l的概率,权重wv和ws的计算如下:
[0086][0087]ws
=ks*s
diff
,if s
diff
<1/ks,orherwise ws=1
[0088]
其中,v
diff
是当前观看方向(或视点)与s
in
中所有的点的list_view中的所有观看方向之间的最小角度差。v
diff
越高,则权重wv越高。此外,当v
diff
在45度以内时,权重wv设置为零,以使得仅间歇性地更新语义图。而当v
diff
大于90度时,wv设为上限1。
[0089]
类似地,s
diff
是当前尺寸与s
in
中所有的点的list_scale中的所有尺寸之间的最小尺寸差。s
diff
越高,权重ws越高。ks是一个s
diff
的归一化因子。在一个例子中,尺寸定义为s=log2(d),其中d为相机位置和超点之间的距离。在此,需要为尺寸差s
diff
定义一个范围,使得在这个范围内可以检测到相同的物体。在这个例子中,这个范围可以根据经验选择为[0,5]。因此,ks设为1/5=0.2。
[0090]
在一个实施例中,新进物体点的得分的计算可以包括将新进物体点的视点信息与该组中的物体超点的历史视点信息之间的比较(例如,v
diff
)和/或新进物体点的尺寸信息与该组中的物体超点的历史尺寸信息之间的比较(例如,s
diff
)作为考虑来计算新进物体点的得分。亦即,可以使用新进物体点的视点信息与该组中物体超点的历史视点信息之间的比较和/或新进物体点的尺寸信息与该组中物体超点的历史尺寸信息之间的比较来估算相机姿态改变的幅度。更具体地,新进物体点属于神经网络所识别的具有某一概率的类别,新进物体点的得分表示新进物体点所属类别的概率的变化。相机姿态大幅度改变会使得新进物体点的得分较高,因为在这种情况下,最好将神经网络所识别的新标签指派给新进物体点,而相机姿态小幅度改变会使得新进物体点的得分较低,因为在这种情况下,最好为新进物体点维持已经检测到的标签。
[0091]
在一个实施例中,在计算新进物体点的得分时,根据第一权重和第二权重来计算新进物体点的得分,其中第一权重与对应于新进物体点的视点和对应于该组中的物体超点的所有视点之间的最小角度差相关联,第二权重与对应于新进物体点的尺寸和对应于该组中的物体超点的所有尺寸之间的最小尺寸差相关联。如上文的例子所示的,第一权重和第二权重可以分别为wv和ws。最小角度差v
diff
用于确定第一权重,最小尺寸差s
diff
用于确定第
二权重。
[0092]
在一个实施例中,如果最小角度差小于第一预定角度,则将第一权重设为第一数值,并且如果最小角度差大于第二预定角度,则将第一权重设为第二数值,第一数值小于第二数值且第一预定角度小于第二预定角度。如上文的例子所示的,第一权重可以是wv。如果最小角度差v
diff
小于45度,则第一权重wv设置为0,如果最小角度差v
diff
大于90度,则第一权重设置为1。
[0093]
在一个实施例中,如果最小尺寸差在预定范围内,则第二权重与最小尺寸差成正比,如果最小尺寸差超出预定范围,则第二权重设为定值。如上文的例子所示的,第二权重可以是ws。如果最小尺寸差s
diff
在1/ks以内,则第二权重与ws最小尺寸差s
diff
成正比,如果最小尺寸差s
diff
超过1/ks,则第二权重ws设为1。
[0094]
在一个实施例中,新进物体点的得分随着最小角度差和/或最小尺寸差增加而增加(例如,随着v
diff
和/或s
diff
增加而增加);新进物体点的得分随着最小角度差和/或最小尺寸差减小而减小(例如,随着v
diff
和/或s
diff
减小而减小),并且最小角度差和/或最小尺寸差的增加表示使用从神经网络获得的新进物体点的类别概率的机会增加,亦即相机姿态大幅度改变会使得新进物体点的得分较高,因为在这种情况下,最好将神经网络所识别的新标签指派给新进物体点;最小角度差和/或最小尺寸差的减小表示使用从神经网络获得的新进物体点的类别概率的机会降低,亦即相机姿态小幅度改变会使得新进物体点的得分较低,因为在这种情况下,最好为新进物体点维持已经检测到的标签。
[0095]
在步骤302中,利用新进物体点的得分更新该组中的物体超点的得分。
[0096]
在一个例示的实例中,给定一个具有得分的新进物体表现,对于一个邻近的超点n∈s
in
,其检测得分会针对类别l更新:给定新进的点和n之间的距离d,其得分更新如下:
[0097][0098]
这里,对于由新进物体点的最小尺寸所定义的邻域内的任一超点,额外的数值1会加到检测到的标签的得分,作为位于所估算出的类别中最小物体尺寸内的奖励。
[0099]
在一个实施例中,在更新该组中的物体超点的得分时,针对与神经网络所识别的新进物体点的类别相同的该组中的物体超点的类别,利用新进物体点的得分更新该组中的物体超点的得分。更具体地说,考虑了从具有相同类别的该组中的物体超点到新进物体点的距离。针对落入新进物体点的类别的最大尺寸和最小尺寸之间的物体超点,通过将新进物体点的得分加到它们的原始得分来更新它们的得分。针对与新进物体点的类别相同的该组中的物体超点,如果这些物体超点落入新进物体点所属类别的最小尺寸内,则这些物体超点将获得额外的分数(例如,1)。这考虑了在某个位置检测到某个标签的次数。
[0100]
在步骤304中,更新视点信息和/或尺寸信息的历史数据。
[0101]
在一个例示的实例中,如果v
diff
≥45
°
,则观看方向v被添加到list_view中;如果该组s
in
中的所有点的s
diff
≥1,则尺寸s被添加到list_scale中,无论它们的标签是什么。
[0102]
在一个实施例中,如果对应于该组中的物体超点之一的视点与对应于该组中的物
体超点的所有视点之间的最小角度差(例如,v
diff
)大于预定角度(例如,v
diff
≥45
°
),则更新该组中任一个物体超点的视点信息的历史数据;和/或如果对应于该组中的物体超点之一的视点与对应于该组中的物体超点的所有视点之间的最小尺寸差(例如,s
diff
)超过预定值(例如,s
diff
≥1),则更新该组中任一个物体超点的尺寸信息的历史数据。
[0103]
在步骤306中,在特定情况下初始化新进物体点的历史数据。
[0104]
在一个例示的实例中,最后,如果在新进物体点的最小尺寸距离内没有超点存在,则所有的三个列表list_score,list_view和list_scale都以相应的值v和s进行初始化。例如,list_view(v)和list_scale(s)。然后,将新的超点(loc,list_score,list_view,list_scale)添加到语义图中。
[0105]
在一个实施例中,如果新进物体点所属类别的最小尺寸内没有物体超点存在,则初始化新进物体点的历史数据。这个初始化是指只有新进物体点的当前得分、视点信息和尺寸信息会被记录到语义图上,并先前的或历史的得分、视点信息和尺寸信息被初始化为零或将之删除。
[0106]
在步骤s208中,根据更新后的语义图,修改神经网络所识别及新进物体点所属的类别的概率。
[0107]
在一个例示的实例中,针对每个带有标签l的新进物体点,可以使用存储在语义图邻域中的超点来更新其标签概率p
l
。首先,在所有带有标签l的物体超点中找出最高得分在所有带有其他标签的物体超点中找出最高得分语义图上点p的概率p
map
由修改后的sigmoid函数定义如下:
[0108][0109]
p
map
的最小值定义为0.5,以确保这不会剧烈地降低dnn的输出概率p
l
。因此,物体的最终概率为:
[0110]
p=p
map
*p
l
[0111]
针对每一帧,最终输出为一个边界框的列表,每个边界框都会有输出(l,p,bbox),其中标签和边界框与dnn的输出相同。
[0112]
在一个实施例中,通过使用该组中物体超点更新后的得分来修正新进物体点所属类别的概率。在一个实施例中,考虑了具有与新进物体点的类别相同的类别的该组中所有物体超点中的最高得分和具有其他类别的该组中所有物体超点中的最高得分,来修正新进物体点所属类别的概率。
[0113]
图4显示根据本技术的物体检测系统的框图。如图4所示,提供了物体检测系统40。物体检测系统40包括创建模块400、构建模块402、确定模块404、更新模块406和修改模块408。
[0114]
创建模块400被配置用来基于来自神经网络和增强现实(ar)的输出,创建物体表现数据,其中所述物体表现数据包括所述神经网络在图像上识别出的物体的物体标签信息、物体点的三维位置以及来自所述ar框架的所述物体点的视点信息和尺寸信息。
[0115]
构建模块402被配置用来构建包括物体超点的语义图,其中每个物体超点由所述物体点的得分历史数据、所述视点信息和所述尺寸信息表示。
[0116]
确定模块404被配置用来确定所述语义图中的一组物体超点,所述组中的物体超点的位置位于新进物体点的特定距离内,其中所述特定距离是基于所述神经网络所识别的所述物体的类别的尺寸来决定的,所述新进物体点属于所述类别。
[0117]
更新模块406被配置用来响应所述新进物体点,更新所述语义图,其中所述语义图中所确定的组中的物体超点的得分基于所述新进物体点的信息进行更新。
[0118]
修改模块408被配置用来根据更新后的语义图,修改所述神经网络所识别及所述新进物体点所属的类别的概率。
[0119]
图5显示根据本技术的物体检测系统的更新模块的框图。如图5所示,物体检测系统40的更新模块406包括计算单元500、得分更新单元502、数据更新单元504和初始化单元506。
[0120]
计算单元500被配置用来将所述新进物体点的视点信息与所述组中的物体超点的历史视点信息之间的比较和/或所述新进物体点的尺寸信息与所述组中的物体超点的历史尺寸信息之间的比较作为考虑,来计算所述新进物体点的得分,其中所述新进物体点属于所述神经网络所识别的具有某一概率的类别,所述新进物体点的得分表示所述新进物体点所属类别的概率的变化。
[0121]
得分更新单元502被配置用来针对与所述神经网络所识别的新进物体点的类别相同的所述组中的物体超点的类别,利用所述新进物体点的得分更新所述组中的物体超点的得分,其中针对与所述新进物体点的类别相同的所述组中的物体超点,如果所述组中的物体超点落入所述新进物体点所属类别的最小尺寸内,则所述组中的物体超点将获得额外的分数。
[0122]
数据更新单元504被配置用来如果对应于所述组中的物体超点之一的视点与对应于所述组中的物体超点的所有视点之间的最小角度差大于预定角度,则更新该组中任一个物体超点的视点信息的历史数据;和/或如果对应于所述组中的物体超点之一的视点与对应于所述组中的物体超点的所有视点之间的最小尺寸差超过预定值,则更新所述组中任一个物体超点的尺寸信息的历史数据。
[0123]
初始化单元506被配置用来通过使用所述组中物体超点更新后的得分来修正所述新进物体点所属类别的概率,其中考虑了具有与所述新进物体点的类别相同的类别的所述组中所有物体超点中的最高得分和具有其他类别的所述组中所有物体超点中的最高得分,来修正所述新进物体点所属类别的概率。
[0124]
关于物体检测系统的具体限定可以参见上文中对于物体检测方法的限定,在此不再赘述。上述物体检测系统中的模块或单元可全部或部分通过软件、硬件及其组合来实现。上述各模块或单元可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块或单元对应的操作。
[0125]
物体检测系统中的各个模块或单元的实现可为计算机程序的形式。该计算机程序可在终端或服务器上运行。该计算机程序构成的程序模块可存储在终端或服务器的存储器上。该计算机程序被处理器执行时,实现本技术实施例中所描述的方法的操作。
[0126]
本技术实施例还提供了一种非暂时性计算机可读存储介质。一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述一个或多个处理器执行物体检测方法的操作。
[0127]
图6为根据本技术的实施例的电子设备600的框图。例如,电子设备600可以是移动电话、游戏控制器、平板设备、医疗设备、锻炼设备或个人数字助理(pda)。
[0128]
参照图6,电子设备600可以包括以下部件中的一个或多个:外壳602、处理器604、存储器606、电路板608和电源电路610。电路板608设置在外壳602限定的空间内。处理器604和存储器606设置在电路板608上。电源电路610配置为向电子设备600的每个电路或设备供电。存储器606配置为存储可执行程序代码。处理器604通过读取存储器606中存储的可执行程序代码,运行与这些可执行程序代码对应的程序,以执行上述任一实施例的物体检测方法。
[0129]
处理器604通常控制电子设备600的整体操作,例如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理器604可包括一个或多个处理器604以执行指令以在上述方法中的全部或部分步骤中执行动作。此外,处理器604可包括促进处理器604与其他组件之间的交互的一个或多个模块。例如,处理器604可以包括多媒体模块以促进多媒体组件和处理器604之间的交互。
[0130]
存储器606配置为存储各种类型的数据以支持电子设备600的操作。此类数据的示例包括用于在电子设备600上操作的任何应用或方法的指令、联系人数据、电话簿数据、信息、图片、视频等。存储器606可以使用任何类型的易失性或非易失性存储器设备或它们的组合来实现,例如静态随机存取存储器(sram)、电可擦可编程只读存储器(eeprom)、可擦可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、闪存、磁盘或光盘。
[0131]
电源电路610向电子设备600的各种组件供电。电源电路610可以包括电源管理系统、一个或多个电源、以及与电子设备600的电力的产生、管理和分配相关联的任何其他组件。
[0132]
在示例性实施例中,电子设备600可以由一个或多个专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑设备(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子组件来实现,用于执行上述方法。
[0133]
在示例性实施例中,还提供了一种包括指令的非暂时性计算机可读存储介质,例如包括在存储器606中的指令,其可由电子设备600的处理器604执行以执行上述方法。例如,非暂时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘、光数据存储设备等。
[0134]
本领域普通技术人员可以理解,本技术实施例中描述和公开的各个单元、模块、算法和步骤均采用电子硬件或者计算机软件与电子硬件的组合实现。这些功能是以硬件还是软件方式运行,取决于应用条件和技术方案的设计要求。本领域普通技术人员可以针对每个具体的应用使用不同的方式来实现所述功能,但这种实现方式不应超出本技术的范围。
[0135]
本领域普通技术人员可以理解,他/她可以参考上文提及的实施例中的系统、装置和模块的工作流程,因为上文提及的系统、装置和模块的工作流程基本相同。为了便于描述和简洁,将不详细说明这些工作过程。
[0136]
应该理解到,在本技术实施例中公开的系统和方法可以通过其它的方式实现。以上所描述的实施例仅仅是示意性的。这些模块的划分仅是基于逻辑功能,而在实现上还存在其他的划分方式。多个模块或组件可能可以组合或集成在另一个系统中。也可以省略或跳过一些特征。另一方面,所示出的或所讨论的相互耦合、直接耦合或通信耦合是通过一些端口、装置或模块进行操作,不管是通过电气、机械或其他类型的方式进行的间接或通信地操作。
[0137]
用于解释为目的作为分离组件的模块是或不是物理上分隔的。所显示的模块是或不是物理模块,也就是,位于一个地方或分布在多个网络模块上。一些或所有的模块根据这些实施例的目而被使用。
[0138]
再者,每个实施例中的每个功能模块可以集成在一个处理模块中,其为物理上独立的,或者集成在具有两个或多于两个模块的一个处理模块中。
[0139]
如果将软件功能模块作为产品实现、使用和销售,则它可以被存储在计算机中的可读存储介质中。基于这样的理解,本技术提出的技术方案可以本质上或部分地实现为软件产品的形式。或者,对现有技术有益的技术方案的一部分可以以软件产品的形式实现。计算机中的软件产品存储在存储介质中,包括用于计算装置(例如个人计算机、服务器或网络装置)的多个命令以运行本技术实施例公开的全部或部分步骤。该存储介质包括usb盘、移动硬碟、唯读记忆体(rom)、随机存取记忆体(ram)、软碟或其他能够存储程序码的介质。
[0140]
尽管已经结合被认为是最实际和优选的实施例描述了本技术,但是应当理解,本技术不限于所公开的实施例,而是旨在覆盖在不脱离所附权利要求的最宽泛解释的范围的情况下做出的各种布置。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献