一种跨终端图片传输方法及系统

文档序号:26005411发布日期:2021-07-23 21:23阅读:194来源:国知局
一种跨终端图片传输方法及系统

本公开涉及数据传输技术领域,特别涉及一种跨终端图片传输方法及系统。



背景技术:

本部分的陈述仅仅是提供了与本公开相关的背景技术,并不必然构成现有技术。

ros(robotoperatingsystem,机器人操作系统)已经被广泛地应用在机器人开发中,为机器人的各种程序提供通信框架、依赖包。利用ros框架可以高效地控制机器人各个部件并运行各种机器人算法。ros支持多编程语言,实现不同编程语言脚本之间的高效通信,支持最好的两种编程语言是python和c++,程序作为ros节点在机器人中运行。未来若干年ros仍会是机器人开发的主流框架。深度学习是广泛地应用于物品识别、人脸识别、图像分割、人体追踪等诸多计算机视觉问题的新兴方法。大部分深度学习程序需要较高的算力,通常在具有高性能显卡的服务器上运行,无法在机器人本体上运行。

将物品识别、人脸识别、图像分割、人体追踪等深度学习程序应用到基于ros的机器人上成为了重要的开发需求,要实现这一目的,则需要保证服务器上的深度学习程序能够从机器人本体的ros数据流中低延迟地获得实时图片数据。

发明人发现,ros本身支持节点之间的跨终端数据传输,但是很多基于python3的深度学习程序与ros兼容性差,python3的深度学习程序难以直接通过ros通信方式从ros数据流获取实时图片。这主要有以下几个原因:(1)目前最流行的ros版本中原生支持的python版本是python2,而python3的很多包无法与ros完美适配,甚至直接无法运行;(2)基于python3的深度学习一般程序复杂且依赖较多,重构成python2的程序很困难;(3)在ros框架中各个python节点公用同一个运行环境,难以实现环境保护;而深度学习程序通常需要的运行依赖多种多样且版本不同,需要对不同深度学习程序进行环境保护。以上三点对服务器端的深度学习程序应用到基于ros的机器人上带来了极大的困难。



技术实现要素:

为了解决现有技术的不足,本公开提供了一种跨终端图片传输方法及系统,提出了图片错位储存方式和图片错位读取方式,可以避免高速数据传输过程中出现文件读写冲突,并使得文件的读与写在不同进程中并行运行,从而保证了最终的低延迟传输。

为了实现上述目的,本公开采用如下技术方案:

本公开第一方面提供了一种跨终端图片传输方法。

一种跨终端图片传输方法,应用于第一终端和第二终端,第一终端搭载有机器人操作系统,第二终端搭载有预设深度学习网络模型,包括以下步骤:

第二终端上的数据转发节点依据图片错位储存方式实时从机器人操作系统的数据流中向交换空间中储存图片,预设深度学习网络模型的深度学习程序依据图片错位读取方式从交换空间读取图片并处理。

作为进一步的限定,图片错位储存方式和图片错位读取方式动态地维护交换空间中的两张图片以及保证图片的实时性,如果交换空间中当前只存在一张图片,则数据转发节点依据图片错位储存方式从机器人操作系统的实时数据流中捕获并保存成另一张缺失的图片,实现图片更新,如果交换空间中当前存在两张图片,则深度学习程序依据图片错位读取方式读取其中一张图片并处理,且相邻两次循环读取并处理不同的图片,深度学习网络模型每处理完一张图片,就删掉该图片,为接收新图片做准备。

作为进一步的限定,错位储存方式中,第一图片和第二图片中同一时刻只有一张图片被储存,另一张图片不会被数据转发节点处理;错位读取方式中,第一图片和第二图片中同一时刻只有一张图片被读取并处理,另一张图片不会被深度学习程序处理;并且保证同一时刻数据转发节点与深度学习程序不会处理同一张图片。

作为进一步的限定,数据转发节点运行过程中首先检索当前时刻交换空间内的图片个数和图片名称;

如果交换空间中同时存在第一图片和和第二图片两张图片,数据转发节点不作处理,继续循环执行步骤第一步;否则向下执行;

如果交换空间中没有图片,那么数据转发节点在交换空间中连续保存两张实时数据流中的图片,按顺序保存为第一图片和第二图片,继续循环执行第一步;否则向下执行;

如果图片个数为1,且交换空间中当前存在的图片是第一图片,则此刻数据转发节点在机器人操作系统的实时数据流中读取一张图片,并在交换空间中保存图片为第二图片;

如果图片个数为1,且交换空间中当前存在的图片是第二图片,则数据转发节点保存图片为第一图片,接下来继续循环执行第一步,即检索当前时刻交换空间内的图片个数和图片名称。

作为进一步的限定,深度学习程序运行过程中首先检索当前时刻交换空间内的图片个数和图片名称;

如果交换空间中同时存在第一图片和第二图片时,深度学习程序执行下一步;否则不作处理,继续循环执行第一步;

如果此次是第一次运行循环读取图片,则深度学习程序删除交换空间中的第一图片和第二图片,继续循环执行第一步;否则,向下执行下一步;

如果上次深度学习程序处理的图片为第一图片,则读取交换空间中的第二图片;如果上次深度学习程序处理的图片为第二图片或者此时是第一次处理图片,则读取交换空间中的第一图片,接下来向下执行下一步;

深度学习模型处理读取到的图片,接下来向下执行下一步;

深度学习程序在交换空间中删除此次处理的图片,继续循环执行第一步,即检索当前时刻交换空间内的图片个数和图片名称。

作为进一步的限定,数据转发节点和深度学习程序均完成启动时,交换空间的图片个数为零,此时深度学习程序根据错位读取方式不读取图片,数据转发节点根据错位储存方式读取实时机器人操作系统数据流,依次写入第一图片和第二图片;

完成上一步后,交换空间中同时存在第一图片和第二图片,此时,由于图片写入的过程为先创建空文件再填写内容,深度学习程序检测到第二图片但其不一定完全写入结束,深度学习程序根据错位读取方式读取第一图片并在处理完成以后将其删除;数据转发节点若未完成第二图片的写入则继续写入,写入完成后等待深度网络模型对第一图片处理完成;

此时交换空间中只存在第二图片,此时深度学习程序根据错位读取方式不读取图片;数据转发节点根据错位储存方式读取实时机器人操作系统的数据流,开始写入第一图片;

完成上一步后,交换空间中同时存在第一图片和第二图片,此时,由于图片写入的过程为先创建空文件再填写内容,深度学习程序检测到第一图片但其不一定完全写入结束,深度学习程序根据错位读取方式读取第二图片并在处理完成以后将其删除;数据转发节点若未完成第一图片写入则继续写入,写入完成后等待深度网络模型对第二图片处理完成;

经过上一步后,交换空间中只存在第一图片,此时深度学习程序根据错位读取方式不读取图片;数据转发节点根据错位储存方式读取实时机器人操作系统的数据流,开始写入第二图片;

返回交换空间中同时存在第一图片和第二图片时的步骤,循环执行。

作为进一步的限定,数据转发节点与深度学习程序独立地并行运行,两者在运行依赖和代码两个层面上不相关联,深度学习程序可以任意配置对应的python环境。

作为进一步的限定,数据转发节点基于机器人操作系统中的python2环境,且机器人操作系统中所有python节点公用该python2环境,深度学习程序基于python3环境,两种环境相互隔离,互不影响。

本公开第二方面提供了一种跨终端图片传输系统。

一种跨终端图片传输系统,包括:第一终端和第二终端,第一终端搭载有机器人操作系统,第二终端搭载有预设深度学习网络模型;

第二终端上的数据转发节点依据图片错位储存方式实时从机器人操作系统的数据流中向交换空间中储存图片,预设深度学习网络模型的深度学习程序依据图片错位读取方式从交换空间读取图片并处理。

与现有技术相比,本公开的有益效果是:

1、本申请所述的方法或系统,可以实现将ros数据流中的实时图片低延迟地传输到深度学习程序中,本申请提出的图片错位储存方式和图片错位读取方式可以避免高速数据传输过程中出现文件读写冲突,并使得文件的读与写在不同进程中并行运行,从而保证最终的低延迟传输。

2、本申请所述的方法或系统,具有高度的通用性,能够应用于运行环境不同的各种深度学习程序,且深度学习的python3环境不会与ros的python2环境产生冲突,在本申请中,ros转发节点与深度学习程序独立地并行运行,在运行依赖到代码层面上两个程序都毫无关联,使得深度学习程序可以任意配置对应的python环境;通过结合anaconda即可隔离开不同深度学习网络模型的环境来保证不同深度学习程序和ros转发节点同时开启时环境依赖没有任何的冲突。

3、本申请所述的方法或系统,具有较强的易用性,无需进行代码重构或者依赖包的重编译等复杂过程,仅仅需要向深度学习程序加入额外的文件读写代码和对图片错位读取规则的实现即可完成对原有深度学习程序的封装,对原有深度学习程序改动小,易于部署;此外,本申请易于使用,无需关心ros转发节点和封装后的深度学习程序的启动顺序。

本公开附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。

附图说明

构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。

图1为本公开实施例1提供的ros数据流向基于python3的深度学习程序传输图片的方法流程示意图。

图2为本公开实施例1提供的常规深度学习程序的流程示意图。

图3为本公开实施例1提供的图片错位储存规则流程示意图。

图4为本公开实施例1提供的图片错位读取规则流程示意图。

图5为本公开实施例1提供的在运行时的状态变化示意图。

具体实施方式

下面结合附图与实施例对本公开作进一步说明。

应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。

实施例1:

如图1-图5所示,本公开实施例1提供了一种ros数据流向基于python3的深度学习程序高速跨终端传输图片的方法。该方法可以实现将机器人本体计算机上ros图片数据流与服务器上的深度学习程序低延迟地跨终端传输图片;可以实现保护深度学习的python3环境不与ros的公用python2环境产生任何冲突,能够应用于运行环境不同的各种深度学习程序,具有很高的通用性;可以实现在对深度学习程序改动较小的情况下完成本方法的部署,无需代码重构,无需关心启动顺序,易于部署和使用。

本实施例的方法采用基于硬盘的图片储存与读取的方式来解决ros中的数据流与不使用ros的深度学习程序的图片传输问题、ros的公用python2运行环境与深度学习的python3环境的冲突问题。并且本实施例通过提出的图片错位储存规则和图片错位读取规则来保证基于硬盘的图片储存与读取的严格时序,从而解决高速读写文件时的冲突问题与读写时间间隔难以把控的问题,最终实现图片数据的低延迟高速传输。

本实施例的总流程图如图1所示。本实施例首先建立了一个新的空文件夹作为交换空间,用于图片的读写。在此基础上,本实施例建立了一个ros转发节点并封装了深度学习代码。

如图1左侧所示,ros转发节点首先对ros数据流进行初始化以便能随时获得机器人本体中的实时图片数据,之后依据本实施例提出的图片错位储存规则不断地从实时的ros数据流中向交换空间中储存图片。

此外,如图1右侧所示,本方法对需要调用ros图片数据流的深度学习程序进行了封装。常规的深度学习程序流程如图2所示,本实施例所述的方法在完整的深度学习程序的流程的基础上加入了依据图片错位读取规则调用深度学习模型的代码。本方法在深度学习程序中添加的代码仅涉及文件读写与判断,属于非功能代码不会对原有代码或者依赖产生影响。

从图1总流程图中可以看出,本实施例所述的方法的核心是图片错位储存规则和图片错位读取规则,两种规则分别部署在ros转发节点和封装的深度学习程序中通过相互配合实现对交换空间的有序读写,从而实现图片低延迟地从ros转发节点传输到深度学习程序。错位储存规则和错位读取规则赋予交换空间双重作用,一是提供以硬盘文件为形式的数据传输通道,二是提供ros转发节点和封装后的深度学习程序各自读写启停的标志信号。

因此,下面针对图片错位储存规则、图片错位读取规则以及图片传输方法的启动方式与原理分析三个方面做详细的说明。

s1:图片错位储存规则

图片错位储存规则的流程如图3所示,为了让深度学习程序高速地调用ros数据流中的图片,图片错位储存规则负责图片转发的写入逻辑,此规则可以保证当交换空间中动态地维持1.jpg和2.jpg两张图片以及图片的实时性。如果交换空间中当前只存在一张图片(比如1.jpg),则规则会及时从ros实时数据流中捕获并保存成另一张缺失的图片(比如2.jpg)。

具体过程说明如下所示:

(1)检索当前时刻交换空间内的图片个数和图片名称。

(2)如果交换空间中同时存在1.jpg和和2.jpg两张图片,不作处理,继续循环执行步骤(1);否则向下执行(3)。

(3)如果交换空间中没有图片(这种情况出现在刚开启ros转发节点或刚开启深度学习程序时),那么在交换空间中连续保存两张实时数据流中的图片,按顺序保存为1.jpg和2.jpg,继续循环执行步骤(1);否则向下执行(4)。

(4)如果图片个数为1,且交换空间中当前存在的图片是1.jpg,则此刻在ros实时数据流中读取一张图片,并在交换空间中保存图片为2.jpg;如果图片个数为1,且交换空间中当前存在的图片是2.jpg,则保存图片为1.jpg。接下来继续循环执行步骤(1)。

上述错位储存规则保证1.jpg和2.jpg中同一时刻只有一张图片被储存,另一张图片不会被ros转发节点处理,为其他程序并行读取另一张图片提供了的可能。此外,实时的图片检索保证了交换空间内缺失某张图片后能够及时补充。

s2:图片错位读取规则

图片错位读取规则的流程如图4所示,它与图片错位储存规则相互配合,将储存到交换空间中的图片按严格的逻辑读取到深度学习程序中作为模型输入。在此规则下,只有交换空间中1.jpg和2.jpg两张图片同时存在时才开始读取图片,且相邻两次循环处理不同的图片。深度学习每处理完一张图片,就删掉该图片。

具体过程说明如下所示:

(1)检索当前时刻交换空间内的图片个数和图片名称。

(2)如果交换空间中同时存在1.jpg和和2.jpg两张图片,那么向下执行(3);否则不作处理,继续循环执行步骤(1)。

(3)如果此次是第一次运行循环读取图片,则删除交换空间中的1.jpg和2.jpg两张图片,继续循环执行步骤(1);否则,向下执行(4)。

(4)如果上次深度学习处理图片名为1.jpg,则读取交换空间中的2.jpg文件;如果上次深度学习处理图片名为2.jpg或者此时是第一次处理图片,则读取交换空间中的1.jpg文件,接下来向下执行(5)。

(5)深度学习模型处理读取到的图片,接下来向下执行(6)。

(6)在交换空间中删除此次处理的图片,继续循环执行步骤(1)。

在上述规则中,相邻两次循环处理不同的图片是避免高速读写状态下的读写冲突的关键。

下面以其中一种情况为例,分析避免读写冲突的过程:

比如,当深度学习函数处理完1.jpg以后立即删除1.jpg,此时ros转发节点立即将ros数据流实时的图片重新写入被删除的1.jpg。图片的写入的过程分为写入空文件和内容填写两个步骤,高速读写的情况下检测到文件名存在并不意味着已经写入完成。为了防止ros转发节点还未对1.jpg写入完成,图片错位读取规则下一次处理时会读取并处理2.jpg,留给1.jpg足够的写入时间。由于深度学习模型调用需要的时间远大于文件读写,因此在调用深度学习处理2.jpg时,1.jpg能够利用这段时间被彻底写入完成。

此外,图片错位读取规则中的删除已处理文件步骤承担了赋予ros转发节点开始写入的标志信号和通过控制图片数目让深度学习程序停止读取图片两个作用。在第一次运行循环读取图片时,删除1.jpg和2.jpg是为了防止ros转发节点首次读取图片后到开启深度学习程序时间间隔太长导致的延迟,从而实现启动时的自调整,让使用者无需关心ros转发节点与深度学习程序的启动顺序。

图片错位读取规则提供的严格逻辑在高速读写过程中能够有效地避免两个程序的读写冲突,从而提高读写速度降低延迟。

s3:图片传输方法的启动方式与原理分析

使用本实施例的方法只需要两步,第一步清空交换空间内所有图片;第二步开启ros转发节点和封装后的深度学习程序(无需关心启动顺序)。

在启动之后,ros转发节点和深度学习程序独立地并行运行,根据本实施例提出的图片储存规则和图片读取规则,运行过程中的ros转发节点、深度学习程序以及交换空间的状态变化时序如图5所示(以ros转发节点和深度学习程序均开启完毕时的状态为时序1)。从图5中可以看出启动本实施例的方法以后,在严格的图片储存、读取规则的控制下,总共有五种执行状态,并循环切换,本实施例对这五种状态分别说明:

(1)ros转发节点和深度学习程序均完成启动时,交换空间图片个数为0,此时深度学习程序根据错位读取规则不读取图片;ros转发节点根据错位储存规则读取实时ros数据流,依次写入1.jpg和2.jpg;

(2)经过时序1,交换空间中同时存在1.jpg和2.jpg,此时,由于图片写入的过程为先创建空文件再填写内容,深度学习程序检测到2.jpg但其不一定完全写入结束,深度学习程序根据错位读取规则处理1.jpg并在处理完成以后将其删除;ros转发节点若未完成2.jpg写入则继续写入,写入完成后等待(由于深度学习计算量较大,图片读取和深度学习模型处理时间之和一定大于图片写入时间,因此能够保证2.jpg能在1.jpg处理完成前彻底写入完成);

(3)经过时序2,交换空间中只存在2.jpg,此时深度学习程序根据错位读取规则不读取图片;ros转发节点根据错位储存规则读取实时ros数据流,开始写入1.jpg;

(4)经过时序3,交换空间中同时存在1.jpg和2.jpg,此时,由于图片写入的过程为先创建空文件再填写内容,深度学习程序检测到1.jpg但其不一定完全写入结束,深度学习程序根据错位规则处理2.jpg并在处理完成以后将其删除;ros转发节点若未完成1.jpg写入则继续写入,写入完成后等待;

(5)经过时序4,交换空间中只存在1.jpg,此时深度学习程序根据错位读取规则不读取图片;ros转发节点根据错位储存规则读取实时ros数据流,开始写入2.jpg;

(6)跳入到时序2,循环执行。

结合执行状态的变换时序以及图片错位读取、储存规则可以看出,在本实施例中,ros转发节点在向深度学习程序传输图片时通过以下几个方面来最大程度地缩小图片传输过程中的延迟,最终将传输延迟降低到接近深度学习模型处理所必须的时间:(1)通过错位规则可以有效的避免读写冲突,规定了严格逻辑;(2)图片的读取与储存操作完全并行进行,读取某张图片时写入另一张图片,减少读写切换的耗时;(3)本实施例的方法充分利用错位规则以及深度学习模型执行的时间,来保证图片的完全写入。

在本实施例中,ros转发节点与深度学习程序独立地并行运行,二者在运行依赖和代码两个层面上都毫无关联,使得深度学习程序可以任意配置对应的python环境。ros转发节点是基于ros中的python2环境,且ros中所有python节点公用该python2环境。而深度学习程序大部分为python3环境且不同的深度学习程序依赖的包、版本都可能不同。

因此,本实施例的方法通过以下几个方面来保证适用于依赖不同运行环境的深度学习程序,从而具有高度的通用性与易用性:(1)可以通过结合anaconda隔离开不同深度学习程序的环境来保证不同深度学习程序和ros转发节点同时开启时环境依赖没有任何的冲突,也使得本实施例方法可以应用于依赖多样的不同深度学习程序(2)无需面临python3与ros的兼容性差的问题(3)无需进行代码重构或者依赖包的重编译等复杂过程,仅仅需要向深度学习程序加入额外的文件读写和对图片错位读取规则的代码,对原有深度学习程序改动小,本实施例的方法易于部署。

本部分以物品识别背景为例,进一步说明本实施例的应用与实施过程。

假设物品识别模型使用python3编写的m2det深度学习物品识别模型,该模型在服务器上运行,其运行需依赖pytorch0.4.1和opencv-python等包。假设机器人本体控制相机的ros节点将实时的捕获图片发布到/camera_color_raw话题上。

ros框架中的python环境是python2的,无法将m2det物品识别程序直接加入ros框架,也就意味着物品识别程序无法直接使用机器人本体中/camera_color_raw话题上的实时图片。在这种情况下,使用本实施例的方法可以使得m2det物品识别程序能够高速且低延迟地跨终端调用机器人本体中/camera_color_raw话题上的实时图片数据,且能够任意配置m2det物品识别程序的依赖,使其运行环境与ros本身的python2环境隔离。

根据图1的主流程图,首先新建一个空的文件夹作为交换空间。

根据图1的左侧的流程编写ros转发节点。ros转发节点是基于ros编写的,将/camera_color_raw话题上的实时图片根据图片错位储存规则写入到交换空间中。ros转发节点用python2编写。编写ros转发节点首先要利用ros框架将ros数据流进行初始化,该初始化主要把包括节点注册、话题订阅等过程,该过程与常规的ros订阅器的初始化过程一致。在ros数据流初始化完成以后,即可循环地依据图片错位储存规则向交换空间保存图片。图片错位储存规则是ros转发节点的核心,它为整个图片传输过程提供了严格的写入逻辑。图片错位储存规则具体内容如下所示:

(1)检索当前时刻交换空间内的图片个数和图片名称;

(2)如果交换空间中同时存在1.jpg和和2.jpg两张图片,不作处理,继续循环执行步骤(1);否则向下执行(3);

(3)如果交换空间中没有图片(这种情况出现在刚开启ros转发节点或刚开启深度学习程序时),那么在交换空间中连续保存两张实时数据流中的图片,按顺序保存为1.jpg和2.jpg,继续循环执行步骤(1);否则向下执行(4);

(4)如果图片个数为1,且交换空间中当前存在的图片是1.jpg,则此刻在ros实时数据流中读取一张图片,并在交换空间中保存图片为2.jpg;如果图片个数为1,且交换空间中当前存在的图片是2.jpg,则保存图片为1.jpg。接下来继续循环执行步骤(1);

将上述图片错位储存规则编写成具体代码的形式,并在ros转发节点中循环执行即可完成ros转发节点的编写。

根据图1的右侧的流程封装m2det物品识别程序。大部分的深度学习程序的代码流程如图2所示,本实施例的方法在保证深度学习程序原本流程不变的前提下,使用图片错位读取规则循环地调用深度学习模型,实现对深度学习程序的封装。因此,图片错位读取规则是封装深度学习程序的核心,为ros数据流向深度学习程序高速跨终端传输图片提供了严格的读取逻辑。

图片错位读取规则具体内容如下所示:

(1)检索当前时刻交换空间内的图片个数和图片名称。

(2)如果交换空间中同时存在1.jpg和和2.jpg两张图片,那么向下执行(3);否则不作处理,继续循环执行步骤(1)。

(3)如果此次是第一次运行循环读取图片,则删除交换空间中的1.jpg和2.jpg两张图片,继续循环执行步骤(1);否则,向下执行(4)。

(4)如果上次深度学习处理图片名为1.jpg,则读取交换空间中的2.jpg文件;如果上次深度学习处理图片名为2.jpg或者此时是第一次处理图片,则读取交换空间中的1.jpg文件,接下来向下执行(5)。

(5)将读取的图片传输给深度学习模型处理。接下来向下执行(6)。

(6)在交换空间中删除此次处理的图片,继续循环执行步骤(1)。

将上述图片错位读取规则以具体代码的形式加入到深度学习程序中,即可实现对深度学习程序的封装。由于封装后的深度学习程序完全保持独立,因此可以利用anaconda配置深度学习的python环境依赖。

在使用本实施例的方法时只需要分别启动ros转发节点和封装后的深度学习程序即可,无需关注启动顺序。

实施例2:

本公开实施例2提供了一种跨终端图片传输系统,包括:第一终端和第二终端,第一终端搭载有机器人操作系统,第二终端搭载有预设深度学习网络模型;

第二终端上的数据转发节点依据图片错位储存方式实时从机器人操作系统的数据流中向交换空间中储存图片,预设深度学习网络模型的深度学习程序依据图片错位读取方式从交换空间读取图片并处理。

所述系统的工作方法与实施例1提供的方法相同,这里不再赘述。

本领域内的技术人员应明白,本公开的实施例可提供为方法、系统、或计算机程序产品。因此,本公开可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1