发明内容
本说明书提供一种无人驾驶设备的控制方法及控制装置,以部分的解决现有技术存在的上述问题。
本说明书采用下述技术方案:
本说明书提供了一种无人驾驶设备的控制方法,包括:
获取无人驾驶设备的行驶轨迹,作为第一轨迹,以及所述无人驾驶设备周围目标物的行驶轨迹,作为第二轨迹;
根据所述第一轨迹以及所述第二轨迹,确定所述无人驾驶设备与所述目标物之间的空间关系;
按照预设的编码方式,对所述无人驾驶设备与所述目标物之间的空间关系进行编码,得到空间编码信息,针对所述空间编码信息中的每一位编码,该编码用于表示该编码对应的时刻下所述无人驾驶设备与所述目标物之间的空间关系;
根据所述空间编码信息,确定所述无人驾驶设备与所述目标物之间的交互行为;
根据所述交互行为,对所述无人驾驶设备进行控制。
可选地,所述第一轨迹和所述第二轨迹是世界坐标系下的行驶轨迹;
根据所述第一轨迹以及所述第二轨迹,确定所述无人驾驶设备与所述目标物之间的空间关系,具体包括:
将第一轨迹转换为道路坐标系下的行驶轨迹,得到转换后的第一轨迹,以及将所述第二轨迹转换为道路坐标系下的行驶轨迹,得到转换后的第二轨迹;
根据所述转换后的第一轨迹以及所述转换后的第二轨迹,确定所述无人驾驶设备与所述目标物之间的空间关系。
可选地,根据所述空间编码信息,确定所述无人驾驶设备与所述目标物之间的交互行为,具体包括:
将所述空间编码信息输入到预先训练的识别模型中,确定所述无人驾驶设备与所述目标物之间的交互行为。
可选地,训练所述识别模型,具体包括:
确定无人驾驶设备的历史行驶轨迹,作为第一历史轨迹,以及确定无人驾驶设备在所述历史行驶轨迹行驶时周围目标物的行驶轨迹,作为第二历史轨迹;
根据所述第一历史轨迹以及所述第二历史轨迹,确定无人驾驶设备与目标物之间的历史空间关系,以及确定所述无人驾驶设备与所述目标物之间的历史交互行为;
按照预设的编码方式,对所述无人驾驶设备与所述目标物之间的空间关系进行编码,得到历史编码信息,并将所述历史编码信息输入到待训练的识别模型中,得到预测出的所述无人驾驶设备与所述目标物之间的交互行为,作为预测交互行为;
以最小化所述历史交互行为与所述预测交互行为之间的偏差为优化目标,对所述识别模型进行训练。
可选地,所述空间关系包括:所述无人驾驶设备与所述目标物之间的相对速度关系、所述无人驾驶设备与所述目标物之间的相对位置关系中的至少一种。
可选地,根据所述空间编码信息,确定所述无人驾驶设备与所述目标物之间的交互行为,具体包括:
将所述空间编码信息中包含的重复编码进行去重,得到去重后的空间编码信息;
根据所述去重后的空间编码信息,确定所述无人驾驶设备与所述目标物之间的交互行为。
可选地,根据所述空间编码信息,确定所述无人驾驶设备与所述目标物之间的交互行为,具体包括:
若确定所述空间编码信息存在缺失的编码,根据所述空间编码信息包含的编码,确定所述无人驾驶设备与所述目标物之间的空间关系变化状态;
根据所述空间关系变化状态,对所述空间编码信息进行编码补齐,得到补齐后的空间编码信息;
根据所述补齐后的空间编码信息,确定所述无人驾驶设备与所述目标物之间的交互行为。
本说明书提供了一种无人驾驶设备的控制装置,包括:
获取模块,用于获取无人驾驶设备的行驶轨迹,作为第一轨迹,以及所述无人驾驶设备周围目标物的行驶轨迹,作为第二轨迹;
关系确定模块,用于根据所述第一轨迹以及所述第二轨迹,确定所述无人驾驶设备与所述目标物之间的空间关系;
编码模块,用于按照预设的编码方式,对所述无人驾驶设备与所述目标物之间的空间关系进行编码,得到空间编码信息,针对所述空间编码信息中的每一位编码,该编码用于表示该编码对应的时刻下所述无人驾驶设备与所述目标物之间的空间关系;
行为确定模块,用于根据所述空间编码信息,确定所述无人驾驶设备与所述目标物之间的交互行为;
控制模块,用于根据所述交互行为,对所述无人驾驶设备进行控制。
本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述无人驾驶设备的控制方法。
本说明书提供了一种无人驾驶设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述无人驾驶设备的控制方法。
本说明书采用的上述至少一个技术方案能够达到以下有益效果:
在本说明书提供的无人驾驶设备的控制方法中,无人驾驶设备可以获取自身的行驶轨迹,作为第一轨迹,以及周围目标物的行驶轨迹,作为第二轨迹,并根据该第一轨迹以及该第二轨迹,确定该无人驾驶设备与该目标物之间的空间关系。而后,无人驾驶设备可以按照预设的编码方式,对空间关系进行编码,得到空间编码信息,其中,针对空间编码信息中的每一位编码,该编码用于表示该编码对应的时刻下无人驾驶设备与目标物之间的空间关系。进而,无人驾驶设备可以根据该空间编码信息,确定该无人驾驶设备与目标物之间的交互行为,并根据交互行为,对自身进行控制。
从上述方法中可以看出,无人驾驶设备可以对自身与周围目标物之间的空间关系进行编码,得到空间编码信息后,根据该空间编码信息,确定自身所处的交互行为,相比于现有技术,不需要通过图像、点云等中的冗余特征,来确定出交互行为,从而提高了对交互行为进行识别的效率。
具体实施方式
为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
图1为本说明书中一种无人驾驶设备的控制方法的流程示意图,包括以下步骤:
S101:获取无人驾驶设备的行驶轨迹,作为第一轨迹,以及所述无人驾驶设备周围目标物的行驶轨迹,作为第二轨迹。
S102:根据所述第一轨迹以及所述第二轨迹,确定所述无人驾驶设备与所述目标物之间的空间关系。
在实际应用中,无人驾驶设备在行驶过程中需要识别自身处于的交互行为,以便于确定自身接下来的行驶策略,从而更好地对控制自身继续行驶。基于此,无人驾驶设备可以获取自身的行驶轨迹,作为第一轨迹,以及获取周围目标物的行驶轨迹,作为第二轨迹。
其中,上述提到的目标物可以是指周围能够移动的物体,如,车辆、电动车以及行人等。无人驾驶设备可以根据上述第一轨迹以及上述第二轨迹,确定自身与目标物之间的空间关系。其中,无人驾驶设备与目标物之间的空间关系可以包括相对位置关系、相对速度关系等。该空间关系可以是指无人驾驶设备在多个历史时刻以及当前时刻与目标物之间的空间关系,即,上述获取的第一轨迹以及第二轨迹可以包括在多个历史时刻以及当前时刻无人驾驶设备和目标物的轨迹点。无人驾驶设备可以获取包含当前时刻的设定时长内的第一轨迹以及第二轨迹,从而在后续确定出当前所处的交互行为。
在本说明书中,上述第一轨迹和上述第二轨迹可以是指世界坐标系下的行驶轨迹,为了便于确定无人驾驶设备与目标物之间的空间关系,可以将该第一轨迹以及第二轨迹转换为道路坐标系下的行驶轨迹,具体的,无人驾驶设备可以将第一轨迹转换为道路坐标系下的行驶轨迹,得到转换后的第一轨迹,以及将第二轨迹转换为道路坐标系下的行驶轨迹,得到转换后的第二轨迹,并根据转换后的第一轨迹以及转换后的第二轨迹,确定该无人驾驶设备与该目标物之间的空间关系。
上述提到的道路坐标系具体可以是指弗雷内(Frenet)坐标系,Frenet坐标系与道路之间的关联性较强,通过在Frenet坐标系下车辆的行驶轨迹,能够清楚的描述出车辆在道路中行驶的距离,以及车辆在道路中是否发生了偏移,如图2所示。
图2为本说明书提供的一种道路坐标系的示意图。
从图2中可以看出,道路坐标系(Frenet坐标系)的横轴纵轴方向分别为道路行进方向,以及道路横向方向,即,与道路行进方向相垂直的方向。在图2中仅以笔直的道路为例,在实际中弯曲的道路也是同样的原理,Frenet坐标系中包含的一个轴方向为道路切线方向,车辆在Frenet坐标系中的坐标点能够表示出车辆在道路行进方向上进行了多远,以及车辆在道路横向方向上的那个位置。
将第一轨迹以及第二轨迹转换为道路坐标系下的行驶轨迹,即是指,将无人驾驶设备和目标物在世界坐标系下的每个轨迹点,转换为上述道路坐标系下的坐标点,其中,无论是世界坐标系还是道路坐标系中,可以将无人驾驶设备与目标物均看成一个点,也可以将该无人驾驶设备与目标物看成多个坐标点所围成的多边形。
一个时刻中,无人驾驶设备和目标物分别在道路坐标系中的坐标点,能够清晰地表示出无人驾驶设备与目标物之间的相对位置关系,如,表示出无人驾驶设备是在目标物前方抑或是后方,在目标物左侧抑或是右侧等。并且,通过第一轨迹以及第二轨迹,还可以确定出在每一时刻中无人驾驶设备与目标物之间的相对速度关系,这里提到的相对速度关系即可以表示无人驾驶设备与目标物之间数值上的相对速度,也可以表示出无人驾驶设备相对于目标物的速度方向。
上述提到的无人驾驶设备可以是指无人车、无人机、自动配送设备等能够实现自动驾驶的设备。基于此,采用本说明书提供的无人驾驶设备的控制方法可以在无人驾驶设备行驶过程中确定无人驾驶设备与目标物之间的交互行为,该无人驾驶设备具体可应用于通过无人驾驶设备进行配送的领域,如,使用无人驾驶设备进行快递、物流、外卖等配送的业务场景。
S103:按照预设的编码方式,对所述无人驾驶设备与所述目标物之间的空间关系进行编码,得到空间编码信息,针对所述空间编码信息中的每一位编码,该编码用于表示该编码对应的时刻下所述无人驾驶设备与所述目标物之间的空间关系。
在本说明书中,无人驾驶设备确定出自身与目标物之间的空间关系后,可以按照预设的编码方式,对该空间关系进行编码,得到空间编码信息。其中,针对该空间编码信息中的每一位编码,该编码用于表示该编码对应的时刻下无人驾驶设备与目标物之间的空间关系。空间编码信息中既可以包含对相对位置关系进行编码得到的编码信息,也可以包含对相对速度关系进行编码得到的编码信息。
在本说明书中,预设的编码方式可以有多种,例如,可以将不同的空间关系设置成不同的编码,从而得到空间编码信息,如图3所示。
图3为本说明书提供的一种空间编码信息的示意图。
在图3中,示出了一种对空间关系中包含的相对位置关系进行编码的方式。图3的左侧为对无人驾驶设备与目标物之间某一时刻的相对位置关系进行编码的形式,可以看出,九宫格的中央为目标物所处位置,不同编码对应不同相对位置关系,从1~8这个8个编码分别可以表示出8个不同的相对位置关系,每个编码均能表示出无人驾驶设备相对于目标物大致的方位。
其中,1可以表示无人驾驶设备在目标物的左后方,2可以表示无人驾驶设备在目标物的后方,3可以表示无人驾驶设备在目标物右后方,4可以表示无人驾驶设备在目标物左侧,5可以表示无人驾驶设备在目标物右侧,6可以表示无人驾驶设备在目标物左前方,7可以表示无人驾驶设备在目标物前方,8可以表示无人驾驶设备在目标物右前方,在图3中,以目标物在九宫格中间来确定编码,当然,也可以将无人驾驶设备设在九宫格中间,来确定编码。
对于每一种编码来说,该编码并不需要必须是一个固定方向,该编码可以是指无人驾驶设备位于一定的方向范围内,例如,对于1这个编码,不需要是指无人驾驶设备在目标物的正后方,在目标物后方设定角度范围内均可以通过编码1来表示无人驾驶设备与该目标物之间的相对位置关系,其中,每个编码对应的设定角度范围可以预先进行设置。
对于一个时刻来说,可以通过一个编码来表征该时刻无人驾驶设备与目标物之间的相对位置关系,那么,通过转换后的第一轨迹以及转换后的第二轨迹可以确定出多个时刻下无人驾驶设备与目标物之间的相对位置关系,并进行编码,如图3右侧中的“2214”为对4个时刻下的相对位置关系进行编码,得到的空间编码信息,即,第一个时刻无人驾驶设备位于目标物后方,第二个时刻无人驾驶设备依然在目标物后方,第三个时刻无人驾驶设备移动到目标物右后方,第四个时刻无人驾驶设备移动到了目标物右侧。
上述对相对位置关系进行编码的方式进行了说明,也可以通过类似的方式对相对速度关系进行编码,例如,以数字2表示无人驾驶设备相对于目标物速度方向一致,速度较慢,以数字1表示无人驾驶设备相对于目标物速度方向偏向左,速度一致,以数字4表示无人驾驶设备相对于目标物速度大致相同,方向一致,以数字6表示无人驾驶设备相对于目标物速度较快行驶,当然,具体将哪一数字表示那种相对速度关系可以进行预先设置,相对位置关系也是同样的。
由于空间关系可以是相对位置关系,也可以是相对速度关系,因此,无人驾驶设备可以对相对位置关系进行编码后得到位置编码,并对相对速度关系进行编码得到速度编码,将位置编码与速度编码均作为空间编码信息,当然,空间编码信息可以仅包括位置编码,也可以仅包括速度编码。
S104:根据所述空间编码信息,确定所述无人驾驶设备与所述目标物之间的交互行为。
无人驾驶设备确定出空间编码信息后,可以根据该空间编码信息,确定出无人驾驶设备与目标物之间的交互行为。其中,这里提到的交互行为可以包括无人驾驶设备相对于目标物超车、无人驾驶设备正在相对于目标物跟车,以及目标物与无人驾驶设备会车等。
其中,无人驾驶设备根据空间编码信息,确定无人驾驶设备与目标物之间的交互行为的方式可以有多种。例如,针对每种交互行为可以预设出该交互行为对应的编码序列,若空间编码信息与其中一种交互行为的编码序列相匹配,则确定出该无人驾驶设备当前处于该交互行为。无人驾驶设备确定与空间编码信息相匹配的编码序列时,可以确定出具有设定比例的编码相一致的编码序列,抑或是,若空间编码信息包含了某个编码序列中的每个编码,也可以将该编码序列确定为与该空间编码信息相匹配的编码序列。
当然,无人驾驶设备还可以通过其他方式,确定无人驾驶设备与目标物之间的交互行为。例如,无人驾驶设备可以将确定出的空间编码信息输入到预先训练的识别模型中,从而确定出无人驾驶设备与该目标物之间的交互行为,该识别模型可以是预先通过有监督训练得到的识别模型,即,服务器预先获取到了若干标注了交互行为的训练样本,对该识别模型进行训练,并在训练完成后将该识别模型部署在无人驾驶设备上。
服务器在对该识别模型进行训练时,可以确定出无人驾驶设备的历史行驶轨迹,作为第一历史轨迹,以及确定无人驾驶设备在该历史行驶轨迹行驶时周围目标物的行驶轨迹,作为第二历史轨迹。而后,服务器可以根据该第一历史轨迹以及第二历史轨迹,确定无人驾驶设备与目标物之间的历史空间关系,以及确定无人驾驶设备与目标物之间的历史交互行为。该历史交互行为是指无人驾驶设备在第一历史轨迹进行行驶时与目标物之间的交互行为。
服务器可以按照上述编码方式,对无人驾驶设备与目标物之间的空间关系进行编码,得到历史编码信息,并将历史编码信息输入到待训练的识别模型中,得到预测出的无人驾驶设备与目标物之间的交互行为,作为预测交互行为,并以最小化该历史交互行为与预测交互行为之间的偏差为优化目标,对识别模型进行训练。
其中,该识别模型中可以包含卷积神经网络以及全连接层,通过卷积神经网络对空间编码信息进行特征提取,得到特征信息后,可以将该特征信息输入到全连接层,从而预测出无人驾驶设备与目标物之间的交互行为。其中,卷积神经网络中可以包含有多个卷积核,可以将空间编码信息分别通过每个卷积核进行卷积后得到不同的卷积结果,再将每个卷积结果进行池化处理,得到池化结果,而后,将池化结果进行融合,如进行拼接、相加等操作,从而得到最终的特征信息。
需要说明的是,若空间编码信息中包含重复编码,可以将空间编码信息中包含的重复编码进行去重,得到去重后的空间编码信息,并根据去重后的空间编码信息,确定无人驾驶设备与目标物之间的交互行为,例如,上述提到的“2214”这个空间编码信息中,有重复的两个数字2,可以将该空间编码信息进行去重,得到“214”,这样一来,既保留了能够表示出无人驾驶设备相对于目标物有所变化的行为的编码,又将空间编码信息简化,在一定程度上提高识别交互行为的效率。当然,在对空间编码信息进行去重时,需要分别对速度编码和位置编码进行去重,不应将两个不同维度的信息视为同种信息进行去重。
还需说明的是,在无人驾驶设备行驶过程中,可能会由于信号原因、外界原因等,使得空间编码信息中缺少部分编码,在这种情况下,无人驾驶设备可以将空间编码信息进行补全。具体的,无人驾驶设备若确定该空间编码信息存在缺失的编码,可以根据该空间编码信息包含的编码,确定无人驾驶设备与目标物之间的空间关系变化状态,并根据空间关系变化状态,对空间编码信息进行编码补齐,得到补齐后的空间编码信息,以及根据补齐后的空间编码信息,确定无人驾驶设备与目标物之间的交互行为。
上述提到的无人驾驶设备在确定存在缺失的编码后,根据该空间编码信息包含的编码,确定空间关系变化状态,是指根据空间编码信息中其余的编码,来确定出空间关系变化状态,例如,对于相对位置关系来说,无人驾驶设备最开始位置位于目标物后方,空缺了中间时刻的位置,在后一时刻直接到达目标物左侧,空间编码信息中包含“2_4”,中间的下划线代表空缺的编码,则可以确定出空缺的编码为1,因为无人驾驶设备可能先移动到了目标物左后方,再移动到右侧。可以看出,空间关系变化状态是指空间编码信息中未空缺的编码所表示出的无人驾驶设备相对于目标物空间关系变化的规律,因此,通过该空间关系变化状态可以确定处需要补齐的编码。
S105:根据所述交互行为,对所述无人驾驶设备进行控制。
无人驾驶设备确定出自身与目标物之间的交互行为后,可以根据该交互行为确定出后续的策略,并对自身进行控制。
例如,若无人驾驶设备确定出当前正处于与目标物的会车阶段,即,目标物面向该无人驾驶设备驶来,则需要针对该目标物确定出避让的策略,并控制自身避开该目标物。同样的,若无人驾驶设备确定出其他的交互行为,也需要确定出相应的策略对自身进行控制,保证自身安全行驶。
上述均是以无人驾驶设备为执行主体,在无人驾驶设备行驶过程中通过本方法确定无人驾驶设备自身的交互行为,在实际应用中,本方案还可以用于对训练样本进行标注,即,通过本方案可以对未标注的训练样本进行自动化标注,得到更多的训练样本,并继续对上述识别模型进行训练。
从上述方法可以看出,无人驾驶设备可以对自身与周围目标物之间的空间关系进行编码,得到空间编码信息后,根据该空间编码信息,确定自身所处的交互行为,并且,无人驾驶设备可以将该空间编码信息输入到预先进行有监督训练的识别模型,得到预测出的交互行为,相比于现有技术,不需要通过图像、点云等中的冗余特征,来确定出交互行为,从而提高了对交互行为进行识别的效率。
以上为本说明书的一个或多个实施例提供的无人驾驶设备的控制方法,基于同样的思路,本说明书还提供了相应的无人驾驶设备的控制装置,如图4所示。
图4为本说明书提供的一种无人驾驶设备的控制装置示意图,包括:
获取模块401,用于获取无人驾驶设备的行驶轨迹,作为第一轨迹,以及所述无人驾驶设备周围目标物的行驶轨迹,作为第二轨迹;
关系确定模块402,用于根据所述第一轨迹以及所述第二轨迹,确定所述无人驾驶设备与所述目标物之间的空间关系;
编码模块403,用于按照预设的编码方式,对所述无人驾驶设备与所述目标物之间的空间关系进行编码,得到空间编码信息,针对所述空间编码信息中的每一位编码,该编码用于表示该编码对应的时刻下所述无人驾驶设备与所述目标物之间的空间关系;
行为确定模块404,用于根据所述空间编码信息,确定所述无人驾驶设备与所述目标物之间的交互行为;
控制模块405,用于根据所述交互行为,对所述无人驾驶设备进行控制。
可选地,所述第一轨迹和所述第二轨迹是世界坐标系下的行驶轨迹;
所述关系确定模块402具体用于,将第一轨迹转换为道路坐标系下的行驶轨迹,得到转换后的第一轨迹,以及将所述第二轨迹转换为道路坐标系下的行驶轨迹,得到转换后的第二轨迹;根据所述转换后的第一轨迹以及所述转换后的第二轨迹,确定所述无人驾驶设备与所述目标物之间的空间关系。
可选地,所述行为确定模块404具体用于,将所述空间编码信息输入到预先训练的识别模型中,确定所述无人驾驶设备与所述目标物之间的交互行为。
可选地,所述装置还包括:
训练模块406,用于确定无人驾驶设备的历史行驶轨迹,作为第一历史轨迹,以及确定无人驾驶设备在所述历史行驶轨迹行驶时周围目标物的行驶轨迹,作为第二历史轨迹;根据所述第一历史轨迹以及所述第二历史轨迹,确定无人驾驶设备与目标物之间的历史空间关系,以及确定所述无人驾驶设备与所述目标物之间的历史交互行为;按照预设的编码方式,对所述无人驾驶设备与所述目标物之间的空间关系进行编码,得到历史编码信息,并将所述历史编码信息输入到待训练的识别模型中,得到预测出的所述无人驾驶设备与所述目标物之间的交互行为,作为预测交互行为;以最小化所述历史交互行为与所述预测交互行为之间的偏差为优化目标,对所述识别模型进行训练。
可选地,所述空间关系包括:所述无人驾驶设备与所述目标物之间的相对速度关系、所述无人驾驶设备与所述目标物之间的相对位置关系中的至少一种。
可选地,所述行为确定模块404具体用于,将所述空间编码信息中包含的重复编码进行去重,得到去重后的空间编码信息;根据所述去重后的空间编码信息,确定所述无人驾驶设备与所述目标物之间的交互行为。
可选地,所述行为确定模块404具体用于,若确定所述空间编码信息存在缺失的编码,根据所述空间编码信息包含的编码,确定所述无人驾驶设备与所述目标物之间的空间关系变化状态;根据所述空间关系变化状态,对所述空间编码信息进行编码补齐,得到补齐后的空间编码信息;根据所述补齐后的空间编码信息,确定所述无人驾驶设备与所述目标物之间的交互行为。
本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1提供的一种无人驾驶设备的控制方法。
本说明书还提供了图5所示的一种对应于图1的无人驾驶设备的示意结构图。如图5所述,在硬件层面,该无人驾驶设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所述的无人驾驶设备的控制方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。