一种视频转换方法及装置转让专利

申请号 : CN201811482757.3

文献号 : CN111277915A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨柳

申请人 : 阿里巴巴集团控股有限公司

摘要 :

本公开涉及一种视频转换方法及装置,包括通过OpenCV对横版视频进行逐帧分析,得到每帧图像中各识别对象的位置信息;对各帧图像的位置信息分别进行数据清洗,得到各帧图像的目标位置信息;根据各帧图像的目标位置信息,将所述横版视频划分成视频段;通过FFmpeg对各视频段进行裁剪、合并,得到竖版视频。通过使用OpenCV和FFmpeg实现视频分段、裁剪和合成,根据本公开实施例的视频转换方法及装置,能够提升横版视频转换为竖版视频的效率。

权利要求 :

1.一种视频转换方法,其特征在于,包括:通过OpenCV对横版视频进行逐帧分析,得到每帧图像中各识别对象的位置信息;

对各帧图像的位置信息分别进行数据清洗,得到各帧图像的目标位置信息;

根据各帧图像的目标位置信息,将所述横版视频划分成视频段;

通过FFmpeg对各视频段进行裁剪、合并,得到竖版视频。

2.根据权利要求1所述的方法,其特征在于,对各帧图像的位置信息分别进行数据清洗,得到各帧图像的目标位置信息,包括:针对每帧图像中每个识别对象,当该识别对象满足以下一个或多个条件中的任意一个时,删除该识别对象的位置信息:该识别对象的位置信息不在指定范围内;

该识别对象的识别准确度小于第一阈值;

该识别对象的位置信息与前一帧图像的目标位置信息的偏差大于第二阈值;

该帧图像中存在区域面积大于或者等于该识别对象的区域面积的识别对象,所述区域面积是识别对象的位置信息对应的面积;

针对每帧图像,将该帧图像剩下的位置信息,作为该帧图像的目标位置信息。

3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在通过OpenCV对横版视频进行逐帧分析时,得到每帧图像中各识别对象的识别准确度。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:获取所述横版视频的宽高比、帧率和码率,作为竖版视频的属性值。

5.根据权利要求4所述的方法,其特征在于,根据各帧图像的目标位置信息,将所述横版视频划分成视频段,包括:根据各帧图像的目标位置信息,确定各帧图像的裁剪区域;

将所述横版视频的所有图像划分为多个帧集合,每个帧集合中的图像是时间连续的,每个帧集合中图像的数量由所述帧率确定,且相邻的帧集合中前一帧集合的最后一帧图像与后一帧集合的第一帧图像是时间连续的;

针对每个帧集合,确定该帧集合中各帧图像的裁剪区域的位置信息的平均值;

根据相邻帧集合的裁剪区域的位置信息的平均值之间的差距,将所述横版视频划分成视频段。

6.根据权利要求5所述的方法,其特征在于,根据各帧图像的目标位置信息,确定各帧图像的裁剪区域,包括:从各帧图像的目标位置信息中,选取对应区域面积最大的目标位置信息;

根据选取出的目标位置信息和所述宽高比,确定参考宽高;

根据所述参考宽高和各帧图像的目标位置信息,确定各帧图像的参考区域;

对各帧图像的参考区域进行扩展,得到各帧图像的裁剪区域。

7.一种视频转换装置,其特征在于,包括:分析模块,用于通过OpenCV对横版视频进行逐帧分析,得到每帧图像中各识别对象的位置信息;

清洗模块,用于对各帧图像的位置信息分别进行数据清洗,得到各帧图像的目标位置信息;

划分模块,用于根据各帧图像的目标位置信息,将所述横版视频划分成视频段;

裁剪模块,用于通过FFmpeg对各视频段进行裁剪、合并,得到竖版视频。

8.根据权利要求7所述的装置,其特征在于,所述清洗模块具体用于:针对每帧图像中每个识别对象,当该识别对象满足以下一个或多个条件中的任意一个时,删除该识别对象的位置信息:该识别对象的位置信息不在指定范围内;

该识别对象的识别准确度小于第一阈值;

该识别对象的位置信息与前一帧图像的目标位置信息的偏差大于第二阈值;

该帧图像中存在区域面积大于或者等于该识别对象的区域面积的识别对象,所述区域面积是识别对象的位置信息对应的面积;

针对每帧图像,将该帧图像剩下的位置信息,作为该帧图像的目标位置信息。

9.根据权利要求8所述的装置,其特征在于,所述分析模块还用于:在通过OpenCV对横版视频进行逐帧分析时,得到每帧图像中各识别对象的识别准确度。

10.根据权利要求7所述的装置,其特征在于,所述装置还包括:获取模块,用于获取所述横版视频的宽高比、帧率和码率,作为竖版视频的属性值。

11.根据权利要求10所述的装置,其特征在于,所述划分模块具体用于:根据各帧图像的目标位置信息,确定各帧图像的裁剪区域;

将所述横版视频的所有图像划分为多个帧集合,每个帧集合中的图像是时间连续的,每个帧集合中图像的数量由所述帧率确定,且相邻的帧集合中前一帧集合的最后一帧图像与后一帧集合的第一帧图像是时间连续的;

针对每个帧集合,确定该帧集合中各帧图像的裁剪区域的位置信息的平均值;

根据相邻帧集合的裁剪区域的位置信息的平均值之间的差距,将所述横版视频划分成视频段。

12.根据权利要求11所述的装置,其特征在于,所述划分模块还用于:从各帧图像的目标位置信息中,选取对应区域面积最大的目标位置信息;

根据选取出的目标位置信息和所述宽高比,确定参考宽高;

根据所述参考宽高和各帧图像的目标位置信息,确定各帧图像的参考区域;

对各帧图像的参考区域进行扩展,得到各帧图像的裁剪区域。

说明书 :

一种视频转换方法及装置

技术领域

[0001] 本公开涉及多媒体技术领域,尤其涉及一种视频转换方法及装置。

背景技术

[0002] 传统视频网站积累了大量的横版视频,而随着短视频的发展,对竖版视频的需求增多。相关技术中,可以通过人工的方式将横版视频转换为竖版视频,具体过程为:人工预览横版视频每帧图像,选取需要的帧和持续的时长;根据持续时长将横版视频拆分成段;针对每一段,按照竖版视频比例对该段各帧进行裁剪;将裁剪完的各段合成为一个视频。这种方式操作复杂且人员投入大,视频转换效率较低。
[0003] 公开内容
[0004] 本公开实施例提供一种视频转换方法及装置,能够提高横版视频转换为竖版视频的效率。
[0005] 本公开实施例还提供一种视频转换方法,包括:通过OpenCV对横版视频进行逐帧分析,得到每帧图像中各识别对象的位置信息;对各帧图像的位置信息分别进行数据清洗,得到各帧图像的目标位置信息;根据各帧图像的目标位置信息,将所述横版视频划分成视频段;通过FFmpeg对各视频段进行裁剪、合并,得到竖版视频。
[0006] 本公开实施例还提供一种视频转换装置,包括:分析模块,用于通过OpenCV对横版视频进行逐帧分析,得到每帧图像中各识别对象的位置信息;清洗模块,用于对各帧图像的位置信息分别进行数据清洗,得到各帧图像的目标位置信息;划分模块,用于根据各帧图像的目标位置信息,将所述横版视频划分成视频段;裁剪模块,用于通过FFmpeg对各视频段进行裁剪、合并,得到竖版视频。
[0007] 本公开实施例采用的上述至少一个技术方案能够达到以下有益效果:
[0008] 基于OpenCV的分析结果,将横版视频划分成段,通过FFmpeg对各视频段进行裁剪和合并,得到竖版视频,实现了横版视频自动转换为竖版视频,提升了横版视频转换为竖版视频的效率。

附图说明

[0009] 此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
[0010] 图1示出根据本公开一实施例的视频转换方法的流程图。
[0011] 图2a示出图像中识别对象的示例的示意图。
[0012] 图2b示出图像中识别对象的示例的示意图。
[0013] 图2c示出图像中识别对象的示例的示意图。
[0014] 图3示出根据本公开一实施例的视频转换方法的流程图。
[0015] 图4a示出参考区域的示例的示意图。
[0016] 图4b示出参考区域的示例的示意图。
[0017] 图4c示出参考区域的示例的示意图。
[0018] 图4d示出参考区域的示例的示意图。
[0019] 图4e示出在图4a基础上裁剪区域的示例的示意图。
[0020] 图5示出根据本公开一实施例的视频转换装置的框图。

具体实施方式

[0021] 为使本公开的目的、技术方案和优点更加清楚,下面将结合本公开具体实施例及相应的附图对本公开技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0022] 以下结合附图,详细说明本公开各实施例提供的技术方案。
[0023] 图1示出根据本公开一实施例的视频转换方法的流程图。该方法可以应用于终端。如图1所示,该方法可包括:
[0024] 步骤S11,通过OpenCV对横版视频进行逐帧分析,得到每帧图像中各识别对象的位置信息。
[0025] 步骤S12,对各帧图像的位置信息分别进行数据清洗,得到各帧图像的目标位置信息。
[0026] 步骤S13,根据各帧图像的目标位置信息,将所述横版视频划分成视频段。
[0027] 步骤S14,通过FFmpeg对各视频段进行裁剪、合并,得到竖版视频。
[0028] 在本公开实施例中,基于OpenCV的分析结果,将横版视频划分成段,通过FFmpeg对各视频段进行裁剪和合并,得到竖版视频,实现了横版视频自动转换为竖版视频,提升了横版视频转换为竖版视频的效率。
[0029] 识别对象可以表示OpenCV从帧图像中识别出来为指定类别的对象。其中,指定类别可以为人物或者物体等,对此本公开不做限制。
[0030] OpenCV(Open source Computor Vision Library,开放源代码计算机视觉库)是一个用于图像处理、分析和计算机视觉方面的开源函数库。OpenCV可以识别视频每帧图像中各识别对象在帧图像中的位置信息以及识别对象的识别准确度。
[0031] 在OpenCV中采用矩形框表示识别对象。识别对象在帧图像中的位置信息可以采用该矩形框在帧图像中的位置信息表示,例如该矩形框的左上角的坐标和右下角的坐标表示,也可以采用该矩形框的左上角的坐标,以及该矩形框的宽和高表示等。
[0032] 识别对象的识别准确度可以表示该识别对象被识别为指定类别的准确度。例如,假设指定类别为人物,识别对象A的识别准确度可以表示识别对象A被识别为人物的准确度。
[0033] 表1示出根据本公开一实施例的OpenCV的识别结果的示例。
[0034]图像帧的时间 指定类别 识别准确率 左上角坐标 右下角坐标
1000.0 人物 94.38% (609,135) (1016,997)
1040.0 人物 93.38% (604,125) (1021,1017)
1080.0 人物 91.58% (526,124) (1031,995)
1120.0 人物 91.53% (513,116) (1036,990)
[0035] 在确定各帧图像中各识别对象的位置信息之后,可以针对每帧图像的位置信息进行数据清洗,例如剔除一些识别准确度较低的位置信息或者一些误差较大的位置信息等。
[0036] 在一种可能的实现方式中,步骤S12可包括:针对每帧图像中每个识别对象,当该识别对象满足以下一个或多个条件中的任意一个时,删除该识别对象的位置信息;针对每帧图像,将该帧图像剩下的位置信息,作为该帧图像的目标位置信息。
[0037] 其中,条件包括:该识别对象的位置信息不在指定范围内;该识别对象的识别准确度小于第一阈值;该识别对象的位置信息与前一帧图像的目标位置信息的偏差大于第二阈值;该帧图像中存在区域面积大于或者等于该识别对象的区域面积的识别对象,所述区域面积是识别对象的位置信息对应的面积。
[0038] 当识别对象的位置信息不在指定范围内时,可以表明识别出的位置信息误差较大,例如,帧图像x轴的范围为0至1028,识别对象对应矩形框左上角的坐标为(2000,340),该坐标不在帧图像中,该位置信息的误差较大,可以将该位置信息删除。其中,指定范围可以根据需要设置,例如指定范围可以为帧图像的坐标范围,或者帧图像中某个区域的范围,对此本公开不做限制。
[0039] 当识别对象的位置信息的识别准确度小于第一阈值时,可以表明该识别对象为指定类别的可能性较低,此时可以删除该位置信息。其中,第一阈值可以根据需要设置,例如第一阈值可以设置为90%,对此本公开不做限制。
[0040] 其中,在通过OpenCV对横版视频进行逐帧分析时,可以得到每帧图像中各识别对象的识别准确度。
[0041] 当识别对象的位置信息与前一帧图像的目标位置信息的偏差大于第二阈值,可以表明识别对象位置移动比较大,可能与前一帧图像的目标位置信息对应的识别对象不是同一个人,可以删除该位置信息。例如,识别对象为人物M,前一帧图像的目标位置信息对应的识别对象为人物N,M和N不是同一个人,可以删除人物M的位置信息。其中,第二阈值可以根据需要设置,例如设置为帧图像的宽的一半,对此本公开不做限制。
[0042] 其中,位置信息的偏差可以为识别对象对应矩形框左上角(或者右下角等)坐标之间的欧式距离、x轴坐标之差或者y轴坐标之差等,对此本公开不做限制。
[0043] 当帧图像中存在区域面积大于或者等于该识别对象的区域面积的识别对象时,表明该识别对象不是该帧图像中最重要的识别对象,可以删除该识别对象的位置信息。
[0044] 其中,识别对象的区域面积可以采用代表识别对象的矩形框表示。矩形框的面积可以根据矩形框左上角的坐标和右下角的坐标确定,或者可以根据矩形框的宽和高确定。
[0045] 在一个示例中,图2a、图2b和图2c分别示出图像中识别对象的示例的示意图。图2a所示的识别对象1该图像的目标位置信息对应的识别对象。
[0046] 假设图2a和图2b在时间上连续。图2b中识别对象2的位置信息相对于图2b中识别对象1的位置信息的偏差大于第二阈值,可以删除图2b所示的识别对象2的位置信息。
[0047] 假设图2a和图2c在时间上连续。图2c中识别对象3和识别对象4相对于图2b中识别对象1的位置信息的偏差均小于第二阈值。但是,图2c中识别对象3的区域面积小于图2c中识别对象4的区域面积,因此可以删除图2c所示的识别对象3的位置信息。
[0048] 在步骤S13中,终端可以根据各帧图像的目标位置信息,将横版视频划分成视频段。
[0049] 横版视频可以划分为一个或多个视频段。在一个示例中,终端可以将目标位置信息在第一区域内的帧图像确定为第一段,将目标位置信息在第二区域内的帧图像确定为第二段。例如,横版视频包括200帧图像,这200帧图像按照时间顺序编号为1至200,其中编号为1至100的图像中目标位置信息均在帧图像的左半部分,编号为101至200的图像中目标位置信息均在帧图像的右半部分,此时可以将编号为1至100的图像划分为一段,将编号为101至200的图像划分为一段。这样,就完成了将横版视频划分成视频段。
[0050] 在一种可能的实现方式中,图3示出根据本公开一实施例的视频转换方法的流程图。如图3所示,步骤S13根据各帧图像的目标位置信息,将所述横版视频划分成视频段可包括:
[0051] 步骤S131,根据各帧图像的目标位置信息,确定各帧图像的裁剪区域。
[0052] 裁剪区域可以用于表示从横版视频的帧图像中裁剪出来的区域。裁剪区域的图像可以作为竖版视频的帧图像。针对每帧图像,该帧图像的剪裁区域需要包括该帧图像的目标位置信息对应的区域,以保证目标位置信息对应的识别对象的完整性。
[0053] 在一种可能的实现方式中,步骤S131可以包括:从各帧图像的目标位置信息中,选取对应区域面积最大的目标位置信息;根据选取出的目标位置信息和所述宽高比,确定参考宽高;根据所述参考宽高和各帧图像的目标位置信息,确定各帧图像的参考区域;对各帧图像的参考区域进行扩展,得到各帧图像的裁剪区域。
[0054] 不同帧图像的目标位置信息对应的区域面积可能不同,例如,某个人物从远处走来的过程,该人物在图像中的区域面积不同。终端可以从各帧图像的目标位置信息中,选取对应区域面积最大的目标位置信息,以保证各帧图像的目标位置信息对应的识别对象能被完整覆盖。
[0055] 终端可以根据选取出的目标位置信息和所述宽高比,确定参考宽高。其中,宽高比和帧率为横版视频的宽高比和帧率。在一种可能的实现方式中,获取所述横版视频的宽高比、帧率和码率,作为竖版视频的属性值。例如,竖版视频的宽高比为横版视频的宽高比的倒数,竖版视频的帧率为横版视频的帧率,竖版视频的码率为横版视频的码率。
[0056] 在一个示例中,选取出的目标位置信息的宽和高分别为w1和h1,横版视频的宽高比为w2/h2。当(w1/h1)<(h2/w2)时,以h1作为参考高,以h1*h2/w2作为参考宽。当(w1/h1)≥(h2/w2)时,以w1作为参考宽,以w1*w2/h2作为参考高。
[0057] 在确定出参考宽高之后,终端可以根据所述参考宽高和各帧图像的目标位置信息,确定各帧图像的参考区域。在本公开实施例中,仅需要保证参考区域包括目标位置信息对应的区域,且参考区域的宽高为参考宽高即可,对其他方面不做限制。在一个示例中,可以将目标位置信息的左上角坐标(或者右下角坐标)作为参考区域的左上角坐标(或者右下角坐标),将参考宽高作为参考区域的宽高。
[0058] 图4a、图4b、图4c和图4d分别示出参考区域的示例的示意图。在图4a、图4b、图4c和图4d中,实线表示目标位置信息对应的区域,虚线表示参考区域。
[0059] 终端在确定参考区域后可以对参考区域进行扩展,得到裁剪区域,从而进一步保证目标位置信息对应的识别对象的完整性。
[0060] 对参考区域进行扩展可以是将参考区域的边界向预定方向扩展预定值。在一个示例中,终端可以将参考区域左上角的坐标减少F%(x轴坐标和y轴坐标分别减少F%)作为裁剪区域的左上角的坐标,右下角的坐标增加F%(x轴坐标和y轴坐标分别增加F%)作为裁剪区域的右上角的坐标。其中,F可以根据需要设置,例如可以F可以处于10至20之间。图4e示出在图4a基础上裁剪区域的示例的示意图。
[0061] 步骤S132,将所述横版视频的所有图像划分为多个帧集合,每个帧集合中的图像是时间连续的,每个帧集合中图像的数量由所述帧率确定,且相邻的帧集合中前一帧集合的最后一帧图像与后一帧集合的第一帧图像是时间连续的。
[0062] 帧率表示每秒的帧数。终端可以将该帧数确定为一个帧集合包含的图像的数量。在一个帧集合中,各图像是时间连续的,且相邻的帧集合中前一帧集合的最后一帧图像与后一帧集合的第一帧图像是时间连续的。
[0063] 在一个示例中,帧率为25帧/秒,终端可以确定一个帧集合包括25帧图像。终端从横版视频的第一帧图像开始,按照时间顺序,每25帧图像划分为一个帧集合。
[0064] 步骤S133,针对每个帧集合,确定该帧集合中各帧图像的裁剪区域的位置信息的平均值。
[0065] 在一个示例中,终端可以将一个帧集合中各图像的裁剪区域的左上角(或者右下角等)的坐标取平均值(x轴坐标和y轴坐标分别取平均值),将该坐标平均值作为该帧集合中各帧图像的裁剪区域的位置信息的平均值。
[0066] 步骤S134,根据相邻帧集合的裁剪区域的位置信息的平均值之间的差距,将所述横版视频划分成视频段。
[0067] 当相邻帧集合的裁剪区域的位置信息的平均值之间的差距较大时,表明裁剪区域相对于横版视频的图像的位置发生了较大变化,例如人物从左侧跑到了右侧,人物从高空落到了地面等,此时需要对视频进行分段处理,以在竖版视频中追踪人物。
[0068] 在一个示例中,相邻帧集合的裁剪区域的位置信息中的x轴(或者y轴)的坐标变化幅度大于10%时,可以确定这两个相邻帧集合属于两段。
[0069] 在步骤S14中,终端将横版视频划分成视频段之后,可以通过FFmpeg对各视频段进行裁剪、合并,得到竖版视频。
[0070] FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。
[0071] 在通过FFmpeg对各视频段进行裁剪时,可以从各帧图像中将裁剪区域裁剪出来。之后,通过FFmpeg将裁剪出来的裁剪区域合并在一起。同时,FFmpeg可以将横版视频的帧率和码率分别设置为合并之后的视频的帧率和码率,得到竖版视频。
[0072] 图5示出根据本公开一实施例的视频转换装置的框图。如图5所示,该装置50可包括:
[0073] 分析模块51,用于通过OpenCV对横版视频进行逐帧分析,得到每帧图像中各识别对象的位置信息;
[0074] 清洗模块52,用于对各帧图像的位置信息分别进行数据清洗,得到各帧图像的目标位置信息;
[0075] 划分模块53,用于根据各帧图像的目标位置信息,将所述横版视频划分成视频段;
[0076] 裁剪模块54,用于通过FFmpeg对各视频段进行裁剪、合并,得到竖版视频。
[0077] 在本公开实施例中,基于OpenCV的分析结果,将横版视频划分成段,通过FFmpeg对各视频段进行裁剪和合并,得到竖版视频,通过使用OpenCV和FFmpeg替代了人工分段、裁剪和合成的操作,实现了横版视频自动转换为竖版视频,提升了横版视频转换为竖版视频的效率。
[0078] 在一种可能的实现方式中,所述清洗模块52具体可用于:
[0079] 针对每帧图像中每个识别对象,当该识别对象满足以下一个或多个条件中的任意一个时,删除该识别对象的位置信息:
[0080] 该识别对象的位置信息不在指定范围内;
[0081] 该识别对象的识别准确度小于第一阈值;
[0082] 该识别对象的位置信息与前一帧图像的目标位置信息的偏差大于第二阈值;
[0083] 该帧图像中存在区域面积大于或者等于该识别对象的区域面积的识别对象,所述区域面积是识别对象的位置信息对应的面积;
[0084] 针对每帧图像,将该帧图像剩下的位置信息,作为该帧图像的目标位置信息。
[0085] 在一种可能的实现方式中,所述分析模块51还可用于:
[0086] 在通过OpenCV对横版视频进行逐帧分析时,得到每帧图像中各识别对象的识别准确度。
[0087] 在一种可能的实现方式中,所述装置50还可包括:
[0088] 获取模块,用于获取所述横版视频的宽高比、帧率和码率,作为竖版视频的属性值。
[0089] 在一种可能的实现方式中,所述划分模块53具体可用于:
[0090] 根据各帧图像的目标位置信息,确定各帧图像的裁剪区域;
[0091] 将所述横版视频的所有图像划分为多个帧集合,每个帧集合中的图像是时间连续的,每个帧集合中图像的数量由所述帧率确定,且相邻的帧集合中前一帧集合的最后一帧图像与后一帧集合的第一帧图像是时间连续的;
[0092] 针对每个帧集合,确定该帧集合中各帧图像的裁剪区域的位置信息的平均值;
[0093] 根据相邻帧集合的裁剪区域的位置信息的平均值之间的差距,将所述横版视频划分成视频段。
[0094] 在一种可能的实现方式中,所述划分模块53还可用于:
[0095] 从各帧图像的目标位置信息中,选取对应区域面积最大的目标位置信息;
[0096] 根据选取出的目标位置信息和所述宽高比,确定参考宽高;
[0097] 根据所述参考宽高和各帧图像的目标位置信息,确定各帧图像的参考区域;
[0098] 对各帧图像的参考区域进行扩展,得到各帧图像的裁剪区域。
[0099] 本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0100] 本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0101] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0102] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0103] 在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0104] 内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
[0105] 计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0106] 还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0107] 本领域技术人员应明白,本公开的实施例可提供为方法、系统或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0108] 以上所述仅为本公开的实施例而已,并不用于限制本公开。对于本领域技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的权利要求范围之内。