发明内容
本公开的目的在于提供一种目标物体自动标注方法与目标物体自动标注装置,用于至少在一定程度上克服由于相关技术的限制和缺陷而导致的激光点云标注框在移动时产生不符合直觉和常识的偏移问题。
根据本公开实施例的第一方面,提供一种目标物体自动标注方法,包括:根据第一点云数据中目标物体在第一投影面的第一投影确定第一标注框;获取所述第一标注框内的第二点云数据;根据所述第二点云数据中目标物体在第二投影面的第二投影和在第三投影面的第三投影确定第二标注框和第三标注框;根据所述第一标注框、所述第二标注框和所述第三标注框确定所述目标物体的最小包围盒坐标;根据所述最小包围盒坐标在所述第一点云数据中显示所述目标物体的最小包围盒。
在本公开的一种示例性实施例中,所述第一投影面为地平面,所述第二投影面垂直于所述第一投影面,所述第三投影面垂直于所述第一投影面和所述第二投影面。
在本公开的一种示例性实施例中,还包括:响应最小包围盒平移指令,基于所述第一投影面平移所述最小包围盒。
在本公开的一种示例性实施例中,还包括:响应最小包围盒旋转指令,基于所述第一投影面的法线旋转所述最小包围盒。
在本公开的一种示例性实施例中,还包括:响应最小包围盒调整指令,更新所述第一标注框、所述第二标注框、所述第三标注框中至少两个的尺寸。
在本公开的一种示例性实施例中,所述显示所述目标物体的最小包围盒包括:通过立体形态显示所述目标物体与包围所述目标物体的所述最小包围盒;通过平面形态显示所述目标物体的俯视图及所述第一标注框、所述目标物体的主视图或后视图及所述第二标注框、所述目标物体的左视图或右视图及所述第三标注框。
在本公开的一种示例性实施例中,所述根据所述第二点云数据中目标物体在第二投影面的第二投影和在第三投影面的第三投影确定第二标注框和第三标注框包括:根据所述第二点云数据中目标物体的高度信息确定所述第二投影和所述第三投影,所述高度信息来自于激光射线投射。
在本公开的一种示例性实施例中,所述目标物体自动标注方法基于浏览器实现,所述第一点云数据通过浏览器显示,所述最小包围盒、所述第一标注框、所述第二标注框、所述第三标注框分别通过不同的浏览器窗口显示。
根据本公开实施例的第二方面,提供一种目标物体自动标注装置,包括:基准框确定模块,设置为根据第一点云数据中目标物体在第一投影面的第一投影确定第一标注框;点云块获取模块,设置为获取所述第一标注框内的第二点云数据;从属框确定模块,设置为根据所述第二点云数据中目标物体在第二投影面的第二投影和在第三投影面的第三投影确定第二标注框和第三标注框;最小包围盒确定模块,设置为根据所述第一标注框、所述第二标注框和所述第三标注框确定所述目标物体的最小包围盒坐标;立体标注模块,设置为根据所述最小包围盒坐标在所述第一点云数据中显示所述目标物体的最小包围盒。
根据本公开的第三方面,提供一种电子设备,包括:存储器;以及耦合到所述存储器的处理器,所述处理器被配置为基于存储在所述存储器中的指令,执行如上述任意一项所述的方法。
根据本公开的第四方面,提供一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现如上述任意一项所述的目标物体自动标注方法。
本公开实施例根据激光点云在第一投影面的投影确定第一标注框,进而确定第二标注框、第三标注框、最小包围盒,可以生成并显示基于第一投影面的最小包围盒来标注目标物体,实现对目标物体的自动贴边的同时也能保证该最小包围盒实现基于第一投影面的平移、基于第一投影面的法线的旋转,从而避免相关技术中用户调节最小包围盒导致的标注框不稳定偏移的问题,在激光点云中同时实现目标物体的自动贴边标注和基于单平面平移、旋转。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本公开的各方面变得模糊。
此外,附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
下面结合附图对本公开示例实施方式进行详细说明。
图1示意性示出本公开示例性实施例中目标物体自动标注方法的流程图。参考图1,目标物体自动标注方法100可以包括:
步骤S102,根据第一点云数据中目标物体在第一投影面的第一投影确定第一标注框;
步骤S104,获取所述第一标注框内的第二点云数据;
步骤S106,根据所述第二点云数据中目标物体在第二投影面的第二投影和在第三投影面的第三投影确定第二标注框和第三标注框;
步骤S108,根据所述第一标注框、所述第二标注框和所述第三标注框确定所述目标物体的最小包围盒坐标;
步骤S110,根据所述最小包围盒坐标在所述第一点云数据中显示所述目标物体的最小包围盒。
本公开实施例根据激光点云在第一投影面的投影确定第一标注框,进而确定第二标注框、第三标注框、最小包围盒,可以生成并显示基于第一投影面的最小包围盒来标注目标物体,实现对目标物体的自动贴边的同时也能保证该最小包围盒实现基于第一投影面的平移、基于第一投影面的法线的旋转,从而避免相关技术中用户调节最小包围盒导致的标注框不稳定偏移的问题,在激光点云中同时实现目标物体的自动贴边标注和标注结果基于单平面平移、旋转。
下面,对目标物体自动标注方法100的各步骤进行详细说明。
在一个实施例中,本公开实施例的方法通过安装在浏览器上的一个插件执行,当用户对浏览器进行操作(例如勾选“自动贴边”复选框)时启动插件执行本公开实施例的方法,该插件获取浏览器中的第一点云数据,对第一点云数据进行处理并自动生成目标物体的最小包围框,将该最小包围框与第一点云数据一同显示在浏览器中。
在步骤S102,根据第一点云数据中目标物体在第一投影面的第一投影确定第一标注框。
在本公开实施例中,待标注的目标物体既可以为用户通过多种方式(点选、框选、输入编号等)选择的物体,也可以为根据第一点云数据的高度信息确定的第一点云数据中的全部物体。
在一个实施例中,获取待标注的激光点云数据后,首先可以根据点云携带的高度信息确定待标注的目标物体的方位,该高度信息例如通过激光射线投射形成。例如,当一个区域的高度信息超过预设阈值,可以判断该区域存在待标注的目标物体,进而基于第一投影面获取该目标物体的俯视图。
本公开实施例的场景是在浏览器上对激光雷达点云数据进行标注,可以采用Three.js显示激光点云数据并进行自动标注。Three.js是一款运行在浏览器中的三维引擎,可以用于创建各种三维场景,包括摄影机、光影、材质等各种对象。Three.js采用的是右手坐标系,XY轴面为俯视面,YZ轴面为正视面,XZ轴面为侧视面。在本公开实施例中,该第一投影面例如为俯视面,即XY轴面、地平面。
基于第一投影面确定目标物体对应的第一标注框的方式例如可以为根据高度信息确定:确定第一投影面上目标物体对应的第一投影的最大/最小的X轴坐标和最大/最小的Y轴坐标,从而根据这四个坐标生成基于第一投影面的第一标注框。
以上方法仅为示例,在实际情况中,第一标注框也可以为多边形、圆形或其他形状,本公开对此不作特殊限制。
在步骤S104,获取所述第一标注框内的第二点云数据。
当基于步骤S102生成的第一标注框为矩形时,第一标注框对应的点云信息覆盖了目标物体在第一投影面上基于地平面的一个四棱柱区域,为接下来进行正视面、侧视面的确定提供了基础,也成为进行平移、旋转等操作的基础。
因此,在步骤S104,可以截取第一标注框基于地平面截取的四棱柱区域的激光点云信息作为第二点云数据,该第二点云数据包括该目标物体的全部点云信息。可以理解的是,当第一标注框为多边形或者圆形时,第二点云数据对应的区域可以为多边形棱柱、圆柱或者其他形状。
在步骤S106,根据所述第二点云数据中目标物体在第二投影面的第二投影和在第三投影面的第三投影确定第二标注框和第三标注框。
在本公开实施例中,第二投影面垂直于第一投影面,例如为YZ轴面;第三投影面垂直于第一投影面和第二投影面,例如为XZ轴面。
接下来,可以基于第二投影面(正视面、YZ轴面)获取该第二点云数据在第一投影面的法线(即Z轴)上的最大高度,从而结合第一标注框在Y轴上的最大、最小坐标生成标注目标物体正视面的第二标注框,该第二标注框标注贴合目标物体的最大宽度和最大高度生成。
同理,可以基于第三投影面(侧视面、XZ轴面)获取该第二点云数据在第一投影面的法线(即Z轴)上的最大高度,从而结合第一标注框在X轴上的最大、最小坐标生成标注目标物体侧视面的第三标注框,该第三标注框标注贴合目标物体的最大厚度和最大高度生成。
在步骤S108,根据所述第一标注框、所述第二标注框和所述第三标注框确定所述目标物体的最小包围盒坐标。
由于三个标注框分别依据三个相互垂直的投影面生成,且任意两个标注框均存在两个重合的坐标点,因此,基于这三个标注框可以形成对目标物体的最小包围盒。该最小包围盒例如为长方体或正方体,贴合目标物体的最大宽度、厚度、高度形成。
该最小包围盒的坐标例如可以包括八个角点坐标和一个几何中心点坐标。八个角点坐标包括第一标注框的四个坐标,和第二标注框远离第一投影面的两个坐标、第三标注框远离第一投影面的两个坐标。几何中心坐标根据第一标注框的几何中心坐标和第二标注框/第三标注框的高度坐标的一半生成。
通过确定最小包围盒坐标,可以在后续的旋转、平移操作中始终保持最小包围盒在垂直于第一投影面的轴上的稳定。
在步骤S110,根据所述最小包围盒坐标在所述第一点云数据中显示所述目标物体的最小包围盒。
确定最小包围盒坐标后,可以根据最小包围和坐标生成具有颜色区分度的长方体框或正方体框形的最小包围盒,并将该最小包围盒显示在原始激光点云数据(即第一点云数据、全景视图)中。由于该最小包围盒是基于稳定的坐标系生成,无论是旋转还是平移,均能够保持与目标物体的绝对贴合,不会在显示方式变化时发生偏移。
在一个实施例中,可以同时显示目标物体和其最小包围盒的立体状态,并同时以平面形态显示第一标注框和目标物体的俯视图、第二标注框和目标物体的正视图、第三标注框和目标物体的侧视图。
图2是本公开一个实施例中最小包围盒的示意图。
参考图2,可以在浏览器中显示自动贴边功能复选框21,在用户没有点选该复选框时,允许用户手动在立体空间中标注目标物体;在用户点选该复选框时,自动将激光点云信息基于第一投影面(地平面、XY轴面)显示,并自动生成最小包围盒22和目标物体23。在分视图中显示第一标注框221和目标物体的俯视图231、第二标注框222和目标物体的正视图232、第三标注框223和目标物体的侧视图233。
显示第二标注框222和第三标注框223是为了方便用户对标注框的高度进行人工调节。例如,如果用户觉得最小包围盒22的高度不够贴合目标物体,则可以通过手动调整第二标注框222或者第三标注框223的上边沿(如图3所示)来实现对最小包围盒22、第二标注框222、第三标注框223的同时调节。
或者,当用户觉得第一标注框221的长宽不够贴合目标物体,也可以手动调节第一标注框211的左边沿/右边沿,或者第一标注框221的上边沿/下边沿,从而,使第二标注框221的宽度和最小包围盒22自动发生改变,或者使第三标注框223的宽度和最小包围盒22自动改变。
以上用户对各标注框边沿的调整方式既可以为使用鼠标或触控方式直接拖拽、使用键盘上下左右键直接微调,也可以为点击各边沿并输入偏移量数字,或者直接修改各角点坐标,本公开对此不作特殊限制。
无论用户使用何种最小包围盒调整指令,最小包围盒22及显示的第一标注框221、第二标注框222、第三标注框223均联动调整,更新第一标注框221、第二标注框222、第三标注框22中至少两者的尺寸。
图4是本公开另一个实施例中对最小包围盒进行平移操作的示意图。
参考图4,可以响应最小包围盒平移指令,基于第一投影面平移最小包围盒22。
最小包围盒平移指令例如为鼠标或触控拖拽、键盘上下左右键信号、直接修改最小包围盒22的几何中心坐标等。最小包围盒平移指令可以控制最小包围盒向XY轴平面的各方向移动,且高度不变,各边尺寸不变。
由于最小包围盒22基于第一标注框221生成,且第一标注框221的四个角点坐标均基于第一投影面生成,在Z轴的高度均为零,因此,无论怎样修改最小包围盒22的平移尺寸和平移方向,最小包围盒22始终贴合第一投影面(地平面),能够实现基于第一投影面的平移,不会“飞”起来,或者“埋”入地表面,从而给用户带来更直观准确的操作感受,提高最小包围盒22的操作便捷度和标注准确度。
图5是本公开另一个实施例中对最小包围盒进行旋转操作的示意图。
参考图5,可以响应最小包围盒旋转指令,基于第一投影面的法线旋转最小包围盒22。
最小包围盒旋转指令例如为鼠标或触控拖拽、直接修改第一标注框221的轴角度或任意角点坐标等。最小包围盒旋转指令可以控制最小包围盒延垂直于第一投影面的法线(Z轴)旋转,且高度不变,各边尺寸不变。
由于最小包围盒22基于第一标注框221生成,且第一标注框221的四个角点坐标均基于第一投影面生成,在Z轴的高度均为零,因此,无论怎样修改最小包围盒22的旋转角度,最小包围盒22始终贴合第一投影面(地平面),能够实现基于第一投影面的旋转,不会“飞”起来,或者“埋”入地表面,从而给用户带来更直观准确的操作感受,提高最小包围盒22的操作便捷度和标注准确度。
图6A~图6D是本公开实施例在实际操作中的效果示意图。
参考图6A~图6D,本公开一个实施例中,第一点云数据以及显示在第一点云数据中的目标物体和自动生成的目标物体的最小包围盒均通过浏览器显示。即,用户可以通过浏览器获取第一点云数据,通过对浏览器进行操作(例如勾选“自动贴边”复选框)来实现自动对第一点云数据中的目标物体生成最小包围盒并显示。此外,用户可以在浏览器上操作该最小包围盒,实现对该最小包围盒的平移、旋转、尺寸修改等操作。
在本公开实施例中,目标物体的最小包围盒、第一标注框、第二标注框、第三标注框分别显示在不同的浏览器窗口中,或者,分别显示在浏览器一个窗口的不同区域中。显示目标物体的最小包围盒、第一标注框、第二标注框、第三标注框时,可以将最小包围盒与目标物体的立体点云数据一同显示,将第一标注框与目标物体的俯视图点云数据一同显示,将第二标注框与目标物体的后视图或主视图点云数据一同显示,将第三标注框与目标物体的俯视图(左视图或右视图)点云数据一同显示,如图6A~图6D所示。
在图6A左侧61区域显示的是目标物体及其最小包围盒的立体形态,图6A右侧62区域显示的基于目标物体的俯视图生成的第一标注框以及该目标物体的俯视图,在63区域显示的是基于目标物体的后视图或主视图生成的第二标注框以及该目标物体的后视图或主视图,在64区域显示的是基于目标物体的侧视图生成的第三标注框以及该目标物体的侧视图(左视图或右视图)。生成第二标注框和第三标注框时,自动根据第一标注框对应区域的第一点云信息的高度信息确定第二标注框和第三标注框的高度。
图6B显示用户勾选“自动贴边”选项框后,自动生成第一点云数据在当前视图中的其他未被标注的目标物体的最小包围盒,以及该目标物体的俯视图及第一标注框、后视图及第二标注框、侧视图及第三标注框。在一个实施例中,也可以自动生成第一点云数据中全部物体的最小包围盒。
图6C显示当用户对目标物体的最小包围盒进行平移操作时,只能基于俯视面(地平面/第一投影面)进行平移。最小包围盒不会“飘”在空中。
图6D显示当用户目标物体的最小包围盒进行平移操作时,只能基于俯视面(地平面/第一投影面)的法线(即垂直于地面的轴)进行旋转。最小包围盒不会“飘”在空中。
综上所述,本公开实施例提供的基于浏览器的激光点云中的目标物体自动标注方法,通过自动捕捉目标物体,自动获取目标物体在第一投影面的第一标注框,进而贴边生成目标物体的最小包围盒,可以极大地节省人工标注的时间成本,提高激光点云中目标物体标注的准确度。同时,由于该最小包围盒基于第一投影面形成,可以在修改最小包围盒尺寸、平移最小包围盒、旋转最小包围盒时,保证最小包围盒始终贴合第一投影面显示,不会发生不符合直觉和常识的标注框偏移。
对应于上述方法实施例,本公开还提供一种目标物体自动标注装置,可以用于执行上述方法实施例。
图7示意性示出本公开一个示例性实施例中一种目标物体自动标注装置的方框图。
参考图7,目标物体自动标注装置700可以包括:
基准框确定模块702,设置为根据第一点云数据中目标物体在第一投影面的第一投影确定第一标注框;
点云块获取模块704,设置为获取所述第一标注框内的第二点云数据;
从属框确定模块706,设置为根据所述第二点云数据中目标物体在第二投影面的第二投影和在第三投影面的第三投影确定第二标注框和第三标注框;
最小包围盒确定模块708,设置为根据所述第一标注框、所述第二标注框和所述第三标注框确定所述目标物体的最小包围盒坐标;
立体标注模块710,设置为根据所述最小包围盒坐标在所述第一点云数据中显示所述目标物体的最小包围盒。
在本公开的一种示例性实施例中,所述第一投影面为地平面,所述第二投影面垂直于所述第一投影面,所述第三投影面垂直于所述第一投影面和所述第二投影面。
在本公开的一种示例性实施例中,还包括平移模块712,设置为:响应最小包围盒平移指令,基于所述第一投影面平移所述最小包围盒。
在本公开的一种示例性实施例中,还包括旋转模块714,设置为:响应最小包围盒旋转指令,基于所述第一投影面的法线旋转所述最小包围盒。
在本公开的一种示例性实施例中,还包括调整模块716,设置为:响应最小包围盒调整指令,更新所述第一标注框、所述第二标注框、所述第三标注框中至少两个的尺寸。
在本公开的一种示例性实施例中,立体标注模块710设置为通过立体形态显示所述目标物体与包围所述目标物体的所述最小包围盒;通过平面形态显示所述第一标注框、所述第二标注框、所述第三标注框。
在本公开的一种示例性实施例中,从属框确定模块706设置为根据所述第二点云数据中目标物体的高度信息确定所述第二投影和所述第三投影,所述高度信息来自于激光射线投射。
由于装置700的各功能已在其对应的方法实施例中予以详细说明,本公开于此不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为***、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“***”。
下面参照图8来描述根据本发明的这种实施方式的电子设备800。图8显示的电子设备800仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,电子设备800以通用计算设备的形式表现。电子设备800的组件可以包括但不限于:上述至少一个处理单元810、上述至少一个存储单元820、连接不同***组件(包括存储单元820和处理单元810)的总线830。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元810执行,使得所述处理单元810执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元810可以执行如图1中所示的步骤。
存储单元820可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)8201和/或高速缓存存储单元8202,还可以进一步包括只读存储单元(ROM)8203。
存储单元820还可以包括具有一组(至少一个)程序模块8205的程序/实用工具8204,这样的程序模块8205包括但不限于:操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线830可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、***总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备800也可以与一个或多个外部设备900(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备800交互的设备通信,和/或与使得该电子设备800能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口850进行。并且,电子设备800还可以通过网络适配器860与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器860通过总线830与电子设备800的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备800使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
根据本发明的实施方式的用于实现上述方法的程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和构思由权利要求指出。