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

车窗状态检测、控制测试、网络构建方法及设备和介质与流程

2023-04-05 03:34:17 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,具体涉及车窗状态检测方法、车窗状态控制测试方法、车窗状态检测神经网络的构建方法、电子设备和计算机可读存储介质。


背景技术:

2.车窗控制是传统汽车以及具有智能座的汽车常见交互功能。通常可以通过读取和分析埋点日志(例如,为满足自动化测试需求,在程序流程节点中输出相关日志)的方式判断车窗的打开状态,但埋点日志输出的工作状态日志有时因机械故障、电气故障、指令执行故障、车窗损坏等,导致其并不真实对应车窗的打开状态(程序发送给硬件的指令,硬件最终有没有真正执行,软件不可知,形成不了有效的闭环)。


技术实现要素:

3.本公开提供一种车窗状态检测、控制测试、网络构建方法及设备和介质,用于实现车窗状态的真实检测。
4.在本公开的一个方面,提供了一种车窗状态检测方法,包括下述步骤:
5.获得目标车窗的图像集,所述图像集包含至少一张目标车窗的图像;
6.将所述图像集输入预训练的车窗状态检测神经网络进行分析处理;
7.基于分析处理结果判断所述目标车窗的开启状态。
8.在一些实施例中,所述获得目标车窗的图像集,包括:通过调整位于车内的成像装置的方位,获得所述目标车窗的图像集。
9.在一些实施例中,通过转动所述成像装置以调整成像装置面向所述目标车窗的角度,在所述目标车窗的图像获取区域的下边界和上边界内获得至少一张包含目标车窗全景的图像。
10.在一些实施例中,所述调整成像装置的方位,包括:通过步进电机驱动调整成像装置的方位,在步进电机的步进驱动形成的成像装置方位下,获得所述目标车窗的多张图像。
11.在一些实施例中,所述车窗状态检测方法还进一步包括:将所述图像集中的多张目标车窗的图像输入预训练的车窗状态检测神经网络进行分析处理,预测每张图像所属目标车窗开启状态的类别,被分类别数量最多的类别作为所述目标车窗开启状态的识别结果。
12.在本公开的另一个方面,提供了一种车窗状态控制测试方法,包括下述步骤:
13.接收并产生对待测试目标车窗的控制指令;
14.获得所述目标车窗的图像集,并通过前述任一实施例的车窗状态检测方法判断待测试目标车窗的开启状态;
15.比较所述开启状态与所述控制指令对应的期望值,确定测试结果。
16.在一些实施例中,所述产生对待测试目标车窗的控制指令,包括通过语音产生对待测试目标车窗的控制指令。
17.在一些实施例中,所述测试方法还包括:在测试结果不通过的情况下,存储对应的目标车窗的图像。
18.在本公开的又一个方面,提供了一种车窗状态检测神经网络的构建方法,所述车窗状态检测神经网络应用于前述实施例的车窗状态检测方法或车窗状态控制测试方法,该车窗状态检测神经网络的构建方法包括下述步骤:
19.采集多个车窗中的每个车窗的多个图像样本作为训练集,对训练集中的每个图像中车窗的状态类别进行标注;
20.基于所述训练集中的每个图像及其标注,通过有监督学习的方式对初始卷积神经网络进行训练;
21.形成所述车窗状态检测神经网络。
22.在一些实施例中,所述采集多个车窗中的每个车窗的多个图像样本作为训练集,包括:通过调整位于车内的成像装置的方位,采集每个车窗的多个图像样本以形成训练集。
23.在一些实施例中,通过转动所述成像装置以调整成像装置面向所述车窗的角度,在所述每个车窗的图像获取区域的下边界和上边界内获得至少一张包含目标车窗全景的图像。
24.在一些实施例中,通过步进电机驱动调整成像装置的方位,在步进电机的步进驱动形成的成像装置方位下,获得所述每个车窗的多张图像。
25.在一些实施例中,所述采集多个车窗中的每个车窗的多个图像样本,包括:在每个车窗的多个开启状态位置设置不同颜色,采集每个开启状态下的图像样本。
26.在一些实施例中,所述对训练集中的每个图像中车窗的状态类别进行标注,包括:基于预设的编码形式对所述标注进行编码处理。
27.在一些实施例中,所述预设的编码包括独热编码。
28.在本公开的还一个方面,提供了一种电子设备,包括:处理器及存储器;其中,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行如前述任一实施例的车窗状态检测方法,或车窗状态控制测试方法,或车窗状态检测神经网络构建方法。
29.在本公开的还一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述任一实施例的车窗状态检测方法,或车窗状态控制测试方法,或车窗状态检测神经网络构建方法。
附图说明
30.为了更清楚地说明本技术公开实施例中的技术方案,下面将对技术方案描述所需使用的附图作简单地介绍,以下描述的附图仅仅是本技术的一些实施例说明,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。本技术的保护范围不限于以下附图说明。
31.图1a显示为本公开实施例所述的车窗状态检测方法的硬件应用场景示意图。
32.图1b显示为图1a所示的硬件应用场景中摄像头采集车窗全景图像的示意图。
33.图2显示为本公开实施例所述的车窗状态检测方法的一种示例性流程示意图。
34.图3显示为本公开实施例所述的车窗状态控制测试方法的一种示例性流程示意
图。
35.图4显示为本公开实施例所述的测试用例的一种结构示意图。
36.图5显示为本公开实施例所述的车窗状态检测神经网络的构建方法的一种示例性流程示意图。
37.图6显示为本公开实施例所述的建模阶段和测试阶段的一种示例性流程示意图。
38.图7显示为本公开实施例所述的车窗打开程度的细分场景示意图。
39.图8显示为本公开实施例所述的初始卷积神经网络的训练流程示意图。
40.图9显示为本公开实施例所述的电子设备的一种示例性结构示意图。
具体实施方式
41.以下通过特定的具体实例说明本公开的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本公开的其他优点与功效。本公开还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本公开的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
42.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本公开的基本构想,遂图式中仅显示与本公开中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
43.现在将参照附图来详细描述本公开的各种示例性实施例。对示例性实施例的描述仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。本公开可以以许多不同的形式实现,不限于这里所述的实施例。提供这些实施例是为了使本公开透彻且完整,并且向本领域技术人员充分表达本公开的范围。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置应被解释为仅仅是示例性的,而不是作为限制。
44.本公开使用的所有术语(包括技术术语或者科学术语)与本公开所属领域的普通技术人员理解的含义相同,除非另外特别定义。还应当理解,在诸如通用字典中定义的术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
45.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
46.对于车窗控制的测试,当前的测试方式多为人工测试,测试人员发出“打开车窗”等相关语音指令,然后观察车窗的打开情况,人工记录测试结果。对于细化的需求,例如测试人员发出“主驾车窗打开二分之一”等语音指令,人眼大致目测打开程度,没有定量的标准。
47.针对语音控制车窗的测试场景,尚未实现有效的自动化测试。在自动化测试场景中,往往以分析日志的方式,查看车窗控制指令执行的返回值并进行执行结果的比对,最终形成自动化测试的闭环,但返回值是否能正确执行,车窗能否真正的物理打开,自动化测试场景并不能进行覆盖。
48.在下述实施例中,车窗指的是机动车中的由框架结构限定的具有可透光性或可调
可透光性等材料制成的具有前后或上下方向移动的可移动部件,车窗可以由车窗升降驱动电机带动其移动。
49.在下述实施例中,车窗状态指的是车窗的打开状态,例如车窗完全升起(即车窗关闭)、车窗打开四分之一(即车窗从关闭向完全开启的状态移动1/4距离)、车窗打开一半(即车窗从关闭向完全开启的状态移动1/2距离)、车窗打开四分之三(即车窗从关闭向完全开启的状态移动3/4距离)、打开车窗(即车窗完全开启)。此处所列举的车窗状态仅为示意性的。
50.在下述实施例中,所称的神经网络可以通过包括卷积神经网络(cnn)实现,包括但不限于基于cnn延伸的vgg(vgg-16、vgg-19)、googlenet/inception、resnet(residual networks)等在内的实现。
51.在下述实施例中,所称的分类,为本领域技术人员普遍理解的,可以在神经网络的输出层设置分类器,包括但不限于softmax、svm、lr等分类器。例如,对于二分类(车窗打开、车窗关闭等),可以使用lr分类器;对于多分类输出,可以使用softmax、svm等分类器。
52.在一些实施例中,所称的包含目标车窗全景的图像指的是包含了车窗相对边界的图像。例如对于车窗是纵向移动开合的,则所述包含目标车窗全景的图像包含了目标车窗在水平方向上的相对端侧;例如对于车窗是水平移动开合的,则所述包含目标车窗全景的图像包含了目标车窗在纵向上的相对端侧。
53.在一些实施例中,所称的包含目标车窗全景的图像可以是在车窗的开合方向上获得包含了相对端侧的目标车窗的全景图像。例如对于车窗是纵向移动开合的,所述包含目标车窗全景的图像包含了目标车窗在纵向的相对端侧;例如对于车窗是水平移动开合的,则所述包含目标车窗全景的图像包含了目标车窗在水平方向上的相对端侧。
54.参考图1a所示,本公开的实施例提供的一种车窗状态检测方法、测试方法的硬件场景示意图,在车辆中安装有车窗的成像装置(图像采集装置)。在该硬件系统中,包括:车机101、摄像头102、支持成像装置的角度和高度调节的器件(如,旋转云台103、升降杆104)、喇叭105、方向盘106。其中,摄像头102作为成像装置,通过旋转云台103、升降杆104将其调整至合适的成像高度和成像角度,可以对目标车窗进行图像采集,获得目标车窗的一张或多张图像。车机101对目标车窗的图像集进行检测,可以获得目标车窗的真实状态。在测试时可以通过麦克风105获得测试人员发出的测试指令并将其传输给车机101,以命令车窗进行打开操作。
55.前述图1a所称的硬件环境,是以车机作为数据处理设备为例进行说明,但具有图像处理功能的任意类型设备,例如手机、笔记本、pc机、平板电脑、服务器、云端服务器等具有,凡是具有图像处理功能的设备都可以用于实现本公开所述方案,因此本公开的保护范围不限于图1a所示的示例性实现结构。
56.尽管前述以摄像头作为成像装置的示例,其他类型的成像装置,例如手机、平板电脑的摄像头也可以用于实现本公开所述方案。
57.在本公开的一些实施例中,例如进行车机性能的测试,对图像的检测及推理处理是在自动化测试应用中进行,可以通过手机(使用手机摄像头进行图像采集输入并在手机上运行自动化测试程序)或者与摄像头结合在一起的pc机(摄像头负责采集图像输入,pc机负责图像检测及推理处理并进行自动化测试程序的运行)进行。
58.如图1a所示,以旋转云台和升降杆为例说明了调整成像装置位置的方式,任何其它可以带动成像装置位置调整的设备,如电动自拍杆,或其它人工调整成像装置位置的方式亦可适用。
59.如图1a所示,成像装置的位置可以根据需要进行调整,例如可以在几何中心位置,初始朝向面向车子的前挡玻璃;例如可以在前挡玻璃位置并朝向座椅过道。
60.参考图1a所示,例如可以通过下述过程采集目标车窗的图像:通过调整升降杆104使得成像装置到适合采集目标车窗图像的采集高度,所述采集高度使得所述摄像头102在当前高度水平旋转(或纵向旋转)时能够采集到目标车窗的完整图像;旋转云台103旋转带动摄像头102同步旋转;其中,所述摄像头102的旋转角度初始值为0
°
(图中箭头方向c),摄像头102从初始值角度开始顺时针(或逆时针)旋转,每进行一个单位步长的旋转实现一次图像的采集,直至旋转一周;通过所述旋转云台103的旋转量来获取旋转角度值,单位步长可用单位旋转角度值进行设定。
61.例如,旋转云台103的旋转角度可以以步进电机步进的步数进行度量,以步进电机的步长为γ
°
为例,步进电机步进一个步长对应所述旋转云台103旋转角度为γ,步进电机旋转一周所需步长n
step
的计算式为:n
step
=360
°

°
;旋转云台103旋转的角度计算式为:α
t
=n
t
×
γ;其中,n
t
为步进电机的实际步进步数,α
t
为所述旋转云台103的旋转角度。
62.参考图1b所示,显示了成像装置获得每个车窗的全景图像对应的旋转角度范围。以采集某目标车窗的图像为例,旋转云台103在顺时针旋转过程中,摄像头102采集到目标车窗的第一张全景图像(由图1a中的线框a表示)对应的采集角度α
t1
为所述旋转角度范围的初始角度值f
l
°
,随着所述旋转云台103沿顺时针方向继续旋转,采集目标车窗的最后一张全景图像(由图1a中的线框b表示)对应的采集角度α
t2
为所述旋转角度范围的终止角度值fh°
,故采集目标车窗对应的旋转角度范围为[f
l
°
,fh°
][即图像获取区域的下边界和上边界]。相应地,其它车窗旋转角度范围的确定方式类同,此处不再赘述。
[0063]
参考图2所示,本公开的实施例提供了一种车窗状态检测方法,包括步骤s201~s203,其中:
[0064]
s201:获得目标车窗的图像集,所述图像集包含至少一张目标车窗的图像;
[0065]
在一些实施例中,所述获得目标车窗的图像集是通过成像装置实现的。
[0066]
例如,所述成像装置可以是基于ccd、cmos等各种成像感光元件的摄像头。
[0067]
例如,可以在车内设置多个摄像头分别对目标车窗进行成像。
[0068]
例如,可以在车内设置一个可转动的摄像头分别对目标车窗进行成像。
[0069]
例如,可转动的摄像头可以是通过升降杆调整其高度,通过云台旋转摄像头的朝向角度。
[0070]
在一些实施例中,目标车窗可以包括汽车的一个或多个所选择的车窗,例如可以是前左车窗、前右车窗、后左车窗、后右车窗等中的一个或多个。
[0071]
在一些实施例中,目标车窗还可以包括汽车的可打开的天窗。
[0072]
在一些实施例中,图像集包含目标车窗不同拍摄视角的多张图像。
[0073]
例如,通过调整摄像头面向目标车窗的角度,可以获得不同拍摄视角下的多张图像。
[0074]
例如,可以在水平方向调整摄像头面向目标车窗的角度。
[0075]
例如,可以在纵向上调整摄像头面向目标车窗的角度。
[0076]
s202:将所述图像集输入预训练的车窗状态检测神经网络进行分析处理;
[0077]
在一些实施例中,将所述图像集输入预训练的车窗状态检测神经网络,还包括对图像集中的图像进行预处理,例如将图像灰度化、将图像调整至神经网络输入层所需大小等。
[0078]
s203:基于分析处理结果判断所述目标车窗的开启状态。
[0079]
在一些实施例中,所称的分析处理结果可以是通过车窗状态检测神经网络的分类器输出的图像对应车窗开启状态的分类概率计算出的类别结果,分类器的不同输出对应了车窗不同的开启状态。
[0080]
容易理解,在目标车窗包括多个车窗的情况下,通过对每个车窗的图像集进行上述处理,从而获得每个车窗的开启状态。
[0081]
在一些实施例中,所述获得目标车窗的图像集,包括:通过调整位于车内的成像装置的方位,获得所述目标车窗的图像集。
[0082]
例如,将所述成像装置调整到适合对目标车窗的高度、角度,以获得合适的适合对目标车窗进行成像的方位。
[0083]
例如,将成像装置设置在云台上,将所述云台连接到升降杆,通过调节升降杆的升降高度得到适合成像装置面向目标车窗的采集高度;通过云台的步进电机带动成像装置的旋转角度得到适合成像装置面向目标车窗的采集角度。
[0084]
在一些实施例中,通过转动所述成像装置以调整成像装置面向所述目标车窗的角度,在所述目标车窗的图像获取区域的下边界和上边界内获得至少一张包含目标车窗全景的图像。
[0085]
所称的目标车窗的图像获取区域的下边界和上边界,为云台带动成像装置旋转过程中最先和最后采集到目标车窗全景图像的位置对应的旋转角度。例如,以最先获得目标车窗全景图像对应的旋转角度为下边界,按照从初始位置到下边界所选择的旋转方向继续旋转,至最后能获得目标车窗的全景图像对应的旋转角度为上边界。
[0086]
例如,所选择的旋转方向,可以为顺时针旋转或逆时针旋转。
[0087]
例如,在水平方向上进行顺时针或逆时针旋转。
[0088]
在一些实施例中,调整成像装置的方位,包括:通过步进电机驱动调整成像装置的方位,在步进电机的步进驱动形成的成像装置方位下,获得所述目标车窗的多张图像。
[0089]
例如,在目标车窗的图像获取区域的下边界和上边界内,步进电机通过输出多个步进带动成像装置的旋转,在多个步进中的至少一部分步进形成的方位下,成像装置拍摄和获得目标车窗的多张图像,每个所述图像均包含了目标车窗的全景。
[0090]
例如,在目标车窗的图像获取区域的下边界和上边界内,步进电机通过输出多个步进带动成像装置的旋转,步进电机每输出一个单位步长,成像装置对目标车窗进行一次图像采集,拍摄和获得目标车窗的多张图像,每个所述图像均包含了目标车窗的全景。
[0091]
例如,对于汽车的四个车窗,通过驱动成像装置在水平方向上旋转360度,在每个车窗所对应的图像获取区域的下边界和上边界内进行车窗图像的水平方向的采集,可以获得左前(主驾)、右前(副驾)、左后、右后四个车窗的全部图像。
[0092]
例如,对于汽车的四个车窗,可以结合云台在水平方向和纵向的多维度旋转,可以
获得左前(主驾)、右前(副驾)、左后、右后四个车窗的全部图像。例如,通过驱动成像装置在纵向上的旋转,在每个车窗所对应的图像获取区域的下边界和上边界内进行车窗图像的纵向的采集;然后驱动成像装置在水平方向的旋转到下一个车窗位置,依次重复完成采集所有车窗的全部图像。
[0093]
例如,对于目标车窗,通过步进电机驱动成像装置,在图像获取区域的下边界和上边界内,获得了包含目标车窗全景的多张图像。将多张图像中的每一张或至少一部分输入到车窗状态检测神经网络进行分析处理,输出结果归属最多的类别(例如,多张图像中占比超过一半图像的分类结果)作为分类结果用作判断目标车窗的开启状态。
[0094]
参考图3所示,本公开的实施例还提供了一种车窗状态控制测试方法,包括步骤s301~s303,其中:
[0095]
s301:接收并产生对待测试目标车窗的控制指令;
[0096]
可以存在多种方式的控制指令,例如通过手势动作、语音指示等作为控制指令。
[0097]
例如,可以通过摄像头获得手势动作。
[0098]
例如,可以通过麦克风获得语音指示。
[0099]
在一些实施例中,产生对待测试目标车窗的控制指令,包括通过语音产生对待测试目标车窗的控制指令。
[0100]
例如,发出对目标车窗“打开一半”的指示。
[0101]
参考图1a所示硬件场景示意图,步骤s301产生对待测试目标车窗的控制指令后,根据训练指令触发所述图像采集装置采集目标车窗的训练图像。通过喇叭105来模拟驾驶车辆时的驾乘人员发出声控指令的情况,当其播放音频数据时,通过车机预设的麦克风采集音频数据得到所述控制指令,并控制所述摄像头102对目标车窗进行图像采集得到所述图像。例如,得到的所述控制指令为“副驾驶车窗打开一半”,相应地,所述目标车窗位置为副驾驶车窗,所述车窗动作类型为“车窗打开一半”,其中,副驾驶车窗对应的所述旋转角度范围为[f
l副
°
,f
h副
°
],进而控制所述摄像头102在[f
l副
°
,f
h副
°
]范围内对副驾驶车窗进行图像采集,获得目标车窗的图像集。
[0102]
s302:获得目标车窗的图像集,并通过前述任一实施例的车窗状态检测方法判断待测试目标车窗的开启状态;
[0103]
例如,目标车窗的驱动电机接收并执行前述控制指令的要求使得目标车窗呈现某一开启状态,利用成像装置获得目标车窗的至少一张图像并将其输出车窗状态检测神经网络,并输出目标车窗开启状态的检测结果。
[0104]
例如,获得目标车窗的图像集是成像装置获得目标车窗在图像获取区域的下边界和上边界内的多张图像。
[0105]
s303:比较所述开启状态与所述控制指令对应的期望值,确定测试结果。
[0106]
例如,在步骤s301,对目标车窗的控制指令为“打开一半”,则对目标车窗的期望值为“打开一半”;在步骤s302,车窗状态检测神经网络输出的目标车窗开启状态为“打开一半”或“打开1/4”或其它结果,将该结果与前述期望值进行比较,以确定测试结果。
[0107]
在一些实施例中,测试方法还包括:在测试结果不通过的情况下,存储对应的目标车窗的图像。
[0108]
例如,在步骤s301,对目标车窗的控制指令为“打开一半”,即对目标车窗的期望值
为“打开一半”;在步骤s302,车窗状态检测神经网络输出的目标车窗开启状态为“打开1/4”,将该结果与前述期望值进行比较,测试结果不通过。在此情况下,存储成像装置拍摄的目标车窗的图像,通过人工或者机械的方式,判断何处执行出现了问题,例如车机未能准确分析语音控制指令的意图、目标车窗的驱动电机出现问题、成像装置获得目标车窗的角度出现问题、车窗状态检测神经网络出现问题等。
[0109]
在一些实施例中,所述控制指令对应的期望值可以通过设置测试用例实现。
[0110]
例如:设置的测试用例的一种数据结构如图4所示,包括音频文件路径“audiopath”,车窗位置期望值position except value(包括主驾车窗期望值positionlf、副驾车窗期望值positionrf、左后车窗期望值positionlr、右后车窗期望值positionrr),用例执行开始时间extstarttime,用例执行结束时间extendtime,用例执行结果extresult,及采集图像存储路径imgpath。
[0111]
参考图1a所示硬件场景示意图,参照图4所示数据结构自定义设置测试用例;通过测试用例的音频文件路径获取音频文件,将音频文件送入喇叭105进行播报。音频播报完成之后,根据车窗控制测试用例的车窗位置期望值position except value进行对应车窗位置的图像采集,通过前述任一实施例的车窗状态检测方法判断待测试目标车窗的开启状态。
[0112]
例如车窗控制语音测试用例播报的内容为“全部车窗开一半”,车窗位置期望值position except value中的positionlf的期望值为“车窗打开一半”,positionrf的期望值为“车窗打开一半”,positionlr的期望值为“车窗打开一半”,positionrr的期望值为“车窗打开一半”。当期望值为空时,表示测试用例不执行对应位置车窗的判断。编写测试用例时,可选择期望值分别为“关闭车窗”,“车窗打开四分之一”,“车窗打开一半”,“车窗打开四分之三”,“打开车窗”。
[0113]
参考图1a所示硬件场景示意图,车机对具体图像采集及判定过程如下:因为主驾positionlf的期望值不为空,此时步进电机根据之前获取的主驾图像采集旋转角度范围[f
l主
°
,f
h主
°
],在此角度范围内,步进电机驱动云台带动摄像头进行逆时针旋转(从f
l主
°
到f
h主
°
),步进电机每步进一个角度,进行一次主驾车窗图像的采集。在图像数据采集范围[f
l主
°
,f
h主
°
]内采集完所有主驾车窗图像之后,将主驾车窗所有的图像送入车窗状态检测神经网络(又可称为图像分类模型)进行识别,预测每张图像所属的类别。
[0114]
在一些实施例中,为减少车窗状态检测神经网络(又可称为图像分类模型)自身准确率的影响,对主驾车窗所有的图像分类结果进行统计,被分类别数量最多的类别作为主驾车窗图像的识别结果。
[0115]
例如:主驾车窗在采集旋转角度范围内一共采集到10张图片,其中图像分类模型预测为[0,0,1,0,0](车窗开一半)类别的有8张,预测为[0,1,0,0,0](车窗打开四分之三)类别的有1张,预测为[0,0,0,1,0](车窗打开四分之一)类别的有1张,因为预测为[0,0,1,0,0](车窗开一半)类别的图像数量比较多,故而以[0,0,1,0,0](车窗开一半)作为主驾车窗图像的识别结果。
[0116]
例如:将独热编码[0,0,1,0,0]转化得到数值3,通过映射字典,获得数值3对应的信息为“车窗开一半”,即主驾车窗当前采集图像的分类结果是“车窗开一半”,说明当前主驾车窗打开了一半。然后使用主驾车窗的分类结果(车窗开一半)与测试用例中的
positionlf的期望值进行比对,如果二者一致,则主驾车窗执行语音车窗控制结果正确(对应位置记录为true)。反之,如果主驾车窗采集图像识别类别与positionlf期望值比对不一致,则主驾车窗执行语音车窗控制结果不正确(对应位置记录为false)。其余车窗的判断方法类同,此处不再赘述。当positionlf,positionrf,positionlr,positionrr都比对过之后,分别根据对应位置的比对结果,生成用例最终测试结果,并更新至测试用例的“用例执行结果字段”。例如positionlf,positionrf,positionlr,positionrr的比对结果分别为[true,true,true,false],因为positionrr(右后车窗)未正确执行车控语音指令,所以测试用例最终执行结果为失败,提示“右后车窗未正确执行车控语音指令”。
[0117]
例如,当测试用例最终结果执行正确时(即所有位置车窗的测试结果都为true),此时可将采集到的图片删除。反之,如果测试用例最终结果执行不正确,则可将采集到的图片进行存档。在具体应用中,可将当前测试用例执行过程中采集到的图像进行压缩,并将压缩图像存放至指定的位置,进一步的将存放地址更新到测试用例的“采集图像存储路径”参数中,用于问题的确认。最后记录测试用例执行的结束时间。
[0118]
例如,对于部分车窗打开的测试场景,例如车窗控制语音的内容为“前排车窗开一半”,positionexceptvalue的子属性positionlf的期望值为“车窗打开一半”,positionrf的期望值为“车窗打开一半”,positionlr的期望值为空,positionrr的期望值为空。因为positionlf(主驾),positionrf(副驾)的期望值不为空,所以摄像头会在主驾及副驾的位置分别在图像采集旋转范围[f
l
°
,fh°
]内进行车窗图像的采集及期望结果对比判断。因为positionlr(左后),positionrr(右后)的期望值均为空,故而测试用例的最终结果只由positionlf(主驾),positionrf(副驾)两个位置的期望比对结果进行确定。同样,如果测试用例的最终结果执行成功,则可将采集到的图片删除,反之,如果测试用例的最终结果执行不成功,则可将采集到的图像进行存档,用于问题的回溯确认。
[0119]
例如,示例中的测试用例可一次定义所有要测试的车窗,并根据各车窗位置图像全景的上下边界角度一次执行一个完整的所有车窗测试场景。
[0120]
例如,示例中测试用例的数据结构仅是示意性的,可根据测试业务场景进行灵活变动。
[0121]
本公开可实现端对端非侵入式的车窗控制自动化测试,通过摄像头采集车窗图片(执行车窗控制语音后人工判定结果正确的场景),然后将采集的图片进行标注(比如,执行的语音内容为“所有车窗开一半”,则将图像标签标记为“车窗打开二分之一”)。进行图像数据增强,形成图像分类模型的训练数据,最后进行模型训练,形成车窗图像分类模型(即车窗状态检测神经网络)。图像的采集过程中,记录每个车窗(主驾、副驾、左后、右后)图像采集时摄像头旋转的角度范围。在执行自动化测试执行时,通过喇叭播放测试用例车窗控制的语音指令,然后根据测试用例的车窗位置期望值测试对应的车窗,摄像头根据每个车窗记录的旋转角度进行实际车窗的图像采集,将采集的图像送入图像分类模型,使用图像分类模型的预测结果与测试用例中的对应车窗的期望值进行比对,最后根据各车窗的比对结果进行测试用例最终结果的判定。
[0122]
参考图5所示,本公开的实施例还提供了车窗状态检测神经网络的构建方法,包括步骤s501~s503:
[0123]
s501:采集多个车窗中的每个车窗的多个图像样本作为训练集,对训练集中的每
个图像中车窗的状态类别进行标注;
[0124]
例如:所述采集多个车窗中的每个车窗的多个图像样本,包括:在每个车窗的多个开启状态位置设置不同颜色,采集每个开启状态下的图像样本。
[0125]
在一些实施例中,所述采集多个车窗中的每个车窗的多个图像样本作为训练集,包括:通过调整位于车内的成像装置的方位,采集每个车窗的多个图像样本以形成训练集。
[0126]
例如:通过转动所述成像装置以调整成像装置面向所述车窗的角度,在所述每个车窗的图像获取区域的下边界和上边界内获得至少一张包含目标车窗全景的图像。
[0127]
例如:通过步进电机驱动调整成像装置的方位,在步进电机的步进驱动形成的成像装置方位下,获得所述每个车窗的多张图像。
[0128]
在一些实施例中,参见图6所示,在建模阶段采集车窗的多个图像样本作为训练集的过程包括:调节确定摄像头的拍摄高度和拍摄角度,采集车窗的图像样本作为训练集,输入图像识别模型(初始的车窗状态检测神经网络)进行训练,保存训练好的图像识别模型作为车窗状态检测神经网络。在测试阶段,执行设置的测试用例,控制摄像头调节到对应测试用例的拍摄高度和拍摄角度,进行车窗的图像采集,并将采集到的图像输入训练好的车窗状态检测神经网络进行识别,输出识别结果。
[0129]
参考图7所示,在一些实施例中,为提高车窗图像的辨识度,将车窗玻璃贴上不同颜色的横条,提高模型分类的准确性。
[0130]
例如,针对车窗打开程度的细分场景,使用不同横向的颜色进行区分,实现了车窗不同打开程度的度量。如图7所示,图7(a)表示车窗全部打开,图7(b)表示车窗打开四分之三,图7(c)表示车窗打开四分之二,图7(d)表示车窗打开四分之一,图7(e)表示车窗关闭,所述测试图像中出现的颜色条的不同代表着不同的车窗打开程度。
[0131]
在本公开的一个实施例中,训练过程如下所述:
[0132]
初始化摄像头,即将摄像头的升降杆高度调节到最低,将摄像头的旋转角度初始化为0
°
(车辆正前方定义为旋转为0
°
的初始化角度)。
[0133]
调节摄像头高度,确保摄像头在水平旋转时能够采集到单个车窗的完整图像,调整之后记录下摄像头调整的高度(在所训练的神经网络用于车窗状态检测时摄像头也采用该高度参数)。在高度确定之后,摄像头从初始化角度开始顺时针(或逆时针)旋转,每进行一个单位步长的旋转(步长可用单位旋转角度进行设定,此角度可进行(0,360)区间中的任意设定),进行一次图像的采集,直至水平方向旋转360
°
。然后确定每个车窗的图像获取区域的上下边界(如图1a中的a和b所示),并记录此时上下边界摄像头的旋转角度[f
l
°
,fh°
](以单位步长进行衡量),最后摄像头角度复位。
[0134]
执行车窗状态控制指令,比如全部车窗打开二分之一,然后确认所有车窗物理打开执行结果正确。摄像头根据每个车窗的图像采集旋转角度[f
l
°
,fh°
]进行每个车窗多张图像的采集,最后将所有车窗采集到的图像标注为“车窗打开二分之一”。其它车窗打开程度的图像数据采集方法类同,此处不再赘述。
[0135]
通过上述步骤分别获得标注为车窗全部关闭,车窗打开四分之一,车窗打开二分之一,车窗打开四分之三,车窗全部打开的5种标签的车窗控制图像数据,至此完成用于神经网络训练的车窗图像数据样本的采集及标注。
[0136]
在一些实施例中,所述对训练集中的每个图像中车窗的状态类别进行标注,包括:
基于预设的编码形式对所述标注进行编码处理。
[0137]
例如,所述预设的编码包括独热编码。
[0138]
例如,对所述训练图像的标签进行独热编码处理,设置标签共有5个类别,分别为“打开车窗”,“车窗打开四分之三”,“车窗打开一半”,“车窗打开四分之一”,“关闭车窗”,新建映射字典,将类别进行数值化映射以得到所述数据标签。其中,所述数据标签中主键“1”对应“打开车窗”,主键“2”对应“车窗打开四分之三”,主键“3”对应“车窗打开一半”,主键“4”对应“车窗打开四分之一”,主键“5”对应“关闭车窗”。将每个主键进行独热编码处理,独热编码长度为“5”,独热编码处理之后[1,0,0,0,0]表示映射字典主键“1”,[0,1,0,0,0]表示映射字典主键“2”,[0,0,1,0,0]表示映射字典主键“3”,[0,0,0,1,0]表示映射字典主键“4”,[0,0,0,0,1]表示映射字典主键“5”。
[0139]
s502:基于所述训练集中的每个图像及其标注,通过有监督学习的方式对初始卷积神经网络进行训练;
[0140]
s503:形成所述车窗状态检测神经网络。
[0141]
在一些实施例中,图像数据标签(即图像的标注)进行独热编码之后,搭建深度学习神经网络模型,建立图像数据与独热标签数据之间的关系映射。
[0142]
例如:参考图8所示,所述训练集中的图像使用rgb三色彩色图像作为初始卷积神经网络(模型)的输入数据,中间经过多层卷积特征提取及池化降采样处理(此图只示例性地显示两层卷积特征提取及池化降采样处理),然后经过全连接层展平(此图只示例性地显两层全连接层),最后一层全连接层的5个神经元输出的结果,经softmax分类器处理,输出图像所属的类别概率,获得预测出的图像类别。根据预测出的图像类别与真实类别(即图像的标签)进行比对,然后使用反向传播算法进行模型的迭代优化,最终将迭代优化后的模型进行保存,即获得训练好的车窗状态检测神经网络,用于车窗状态检测以及自动化测试。
[0143]
卷积神经网络从字面上包括两个部分:卷积和神经网络。其中,卷积就是特征提取器,而神经网络,可以看作分类器。训练一个卷积神经网络,就是同时训练了特征提取器(卷积)和后面的分类器(神经网络)。
[0144]
在一些实施例中,使用深度学习框架tensorflow进行模型的搭建及训练。这仅是示意性的,其它深度学习框架,例如pytorch、keras亦可适用。
[0145]
本公开实施例提供的神经网络在训练过程中,针对车窗打开程度的细分场景,使用不同横向的颜色进行区分,实现了车窗不同打开程度的度量,提高了车窗图像的辨识度,有利于提高图像分类模型的准确率。
[0146]
本公开实施例提供的检测方法,在图像采集旋转角度范围内进行多张图像的采集,然后将所有图像通过图像识别分类模型进行预测,最后将预测最多的类别作为当前车窗图像所属的类别,减少了图像识别分类模型本身正确率的影响。
[0147]
本公开实施例提供的测试方法,可以实现多车窗控制测试用例场景下的自动化测试,通过多车窗各自期望值的比对,最终确定测试用例的最终执行结果,且实现了测试用例执行失败之后的图像存档及后续的问题追溯。
[0148]
参考图9所示,在本公开的实施例还提供了一种电子设备900,包括:存储器910及处理器920;其中,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行如前述任一实施例的车窗状态检测方法,或车窗状
态控制测试方法,或车窗状态检测神经网络构建方法。
[0149]
例如,电子设备至少包括通过总线连接的:存储器、处理器,其中,存储器用于存储计算机程序,处理器用于执行存储器存储的计算机程序,以执行前述方法实施例中的全部或部分步骤。
[0150]
其中,存储器可以是各种由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
[0151]
其中,处理器可以是中央处理单元(cpu)或者现场可编程逻辑阵列(fpga)或者单片机(mcu)或者数字信号处理器(dsp)或者专用集成电路(asic)等具有数据处理能力和/或程序执行能力的逻辑运算器件。
[0152]
该电子设备还可以连接各种输入设备(例如用户界面、键盘等)、各种输出设备(例如扬声器等)、以及显示设备等实现计算机产品与其它产品或用户的交互,本文在此不再赘述。
[0153]
在本发明的实施例中,耦接、连接等可以是通过网络连接,例如无线网络、有线网络、和/或无线网络和有线网络的任意组合。网络可以包括局域网、互联网、电信网、基于互联网和/或电信网的物联网(internet of things)、和/或以上网络的任意组合等。有线网络例如可以采用双绞线、同轴电缆或光纤传输等方式进行通信,无线网络例如可以采用3g/4g/5g移动通信网络、蓝牙、zigbee或者wi-fi等通信方式。
[0154]
由于本实施例的具体实现方式与前述方法实施例对应,因而于此不再对同样的细节做重复赘述,本领域技术人员应当理解,实施例中的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个或多个物理实体上。且这些模块可以全部以软件通过处理元件调用的形式实现,也可以全部以硬件的形式实现,还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。
[0155]
本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如前述任一实施例的车窗状态检测方法,或车窗状态控制测试方法,或车窗状态检测神经网络构建方法。
[0156]
本领域普通技术人员可以理解实现上述实施例的方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(magnetic tape),软盘(floppy disk),光盘(optical disc)及其任意组合。上述存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。
[0157]
本公开实施例还可以提供一种计算机程序产品,所述计算机程序产品包括一个或多个计算机指令。在计算设备上加载和执行所述计算机指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机或数据中心进行传输。
[0158]
所述计算机程序产品被计算机执行时,所述计算机执行前述方法实施例所述的方法。该计算机程序产品可以为一个软件安装包,在需要使用前述方法的情况下,可以下载该计算机程序产品并在计算机上执行该计算机程序产品。
[0159]
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
[0160]
上述实施例仅例示性说明本公开的原理及其功效,而非用于限制本公开。任何熟悉此技术的人士皆可在不违背本公开的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本公开所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本公开的权利要求所涵盖。
再多了解一些

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

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

相关文献