将指令序列映射成图像的方法及系统转让专利

申请号 : CN201910380419.7

文献号 : CN110288673A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒙山严方林

申请人 : 深圳大学

摘要 :

本发明公开了一种将指令序列映射成图像的方法及系统,通过将指令序列列表化得到指令列表,再从列表中遍历各条指令,并将各指令进行类型编码,并根据指令类型编码对各指令进行二进制编码,最后根据预设的指令转换参数映射表将指令列表映射为N×N的二值图像表示的指令图像。通过本发明能够将指令序列映射成以设定尺寸的二值图像表示的指令图像,如此可以通过编码的方法赋予更多的信息,构建文本所对应的指令图像数据集,为将文本指令序列用于神经网络学习的图像数据集构建提供了一种解决方案。本发明还给出了切实可行的提高映射鲁棒性及相应的反映射方法。本发明可解决基于数据驱动的无人机指令序列生成方法中进行构建神经网络训练时所需的训练集构建问题。

权利要求 :

1.一种将指令序列映射成图像的方法,其特征在于,包括如下步骤:

读取指令序列并将其列表化得到指令列表,同时初始化指令图像,令指令图像映射成尺寸为N×N的二值图像;

遍历所述列表中的各条指令,根据各条指令的类型将遍历到的各条指令进行类型编码,然后根据各条指令的类型编码将各条指令进行二进制编码,以二进制编码表示各条指令;

定位各条指令的二进制编码中值为1的元素,并根据预设的指令转换参数映射表,将预设的N×N数组中与各条指令的二进制编码中值为1的元素对应的元素的值置为1,将预设的N×N数组中的其余元素的值置为0;

当所有指令遍历完毕后,将得到的N×N数组规范化,并通过预设图像写入函数将规范化后的数据以图像格式保存,得到与所述指令序列对应的以尺寸为N×N的二值图像表示的指令图像。

2.如权利要求1所述的将指令序列映射成图像的方法,其特征在于,所述指令序列中指令的数量最大限制为32条,所述N的值为32。

3.如权利要求1所述的将指令序列映射成图像的方法,其特征在于,所述指令序列中指令的数量最大限制为32条,所述N的值为128。

4.一种将指令图像映射成指令序列的方法,其特征在于,包括:

对通过如权利要求1至3中任一所述的将指令序列映射成图像的方法获得的指令图像进行逆向运算,得到与所述指令图像对应的指令序列。

5.如权利要求4所述的将指令图像映射成指令序列的方法,其特征在于,当所述指令序列中指令的数量最大限制为32条,所述N的值为128时,在执行所述逆向运算之前,先将通过所述将指令序列映射成图像的方法获得的以尺寸为128×128的二值图像表示的指令图像,缩小为以尺寸为32×32的二值图像表示的指令图像,然后再对所述以尺寸为32×32的二值图像表示的指令图像进行所述逆向运算;

将以尺寸为128×128的二值图像表示的指令图像,缩小为以尺寸为32×32的二值图像表示的指令图像的方法包括:将所述以尺寸为128×128的二值图像中的各像素,以每个4×4尺寸像素阵列为一个单元,构建32×32单元阵列,所述32×32单元阵列中的单元与所述尺寸为32×32的二值图像中位置相同的像素相对应;

统计所述32×32单元阵列中每个单元的16个像素中像素值为1的像素的数量,并将像素值为1的像素的数量大于设定阈值的单元所对应的所述尺寸为32×32的二值图像中的像素的值置为1,将像素值为1的像素的数量不大于所述设定阈值的单元所对应的所述尺寸为

32×32的二值图像中的像素的值置为0。

6.一种将指令序列映射成图像的系统,其特征在于,包括:

指令序列读取模块,用于读取指令序列并将其列表化得到指令列表,同时初始化指令图像,令指令图像映射成尺寸为N×N的二值图像;

指令遍历模块,用于遍历所述列表中的各条指令,根据各条指令的类型将遍历到的各条指令进行类型编码,然后根据各条指令的类型编码将各条指令进行二进制编码,以二进制编码表示各条指令;

定位赋值模块,用于定位各条指令的二进制编码中值为1的元素,并根据预设的指令转换参数映射表,将预设的N×N数组中与各条指令的二进制编码中值为1的元素对应的元素的值置为1,将预设的N×N数组中的其余元素的值置为0;

数据规范化及图像保存模块,用于当所有指令遍历完毕后,将得到的N×N数组规范化,并通过预设图像写入函数将规范化后的数据以图像格式保存,得到与所述指令序列对应的以尺寸为N×N的二值图像表示的指令图像。

7.如权利要求6所述的将指令序列映射成图像的系统,其特征在于,所述指令序列中指令的数量最大限制为32条,所述N的值为32。

8.如权利要求6所述的将指令序列映射成图像的系统,其特征在于,所述指令序列中指令的数量最大限制为32条,所述N的值为128。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至5中任一所述的方法。

10.一种电子装置,其特征在于,包括存储器、处理器及存储在所述存储器中并可在所述处理器中运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1至5中任一所述的方法。

说明书 :

将指令序列映射成图像的方法及系统

技术领域

[0001] 本发明涉及数据处理技术,尤其涉及一种将指令序列映射成图像的方法及 系统,以及将指令图像映射成指令序列的方法。

背景技术

[0002] 目前的教育器具越来越高度集成化,用户可以通过在教育器具提供的终端 界面进行可视化操作,操作结果将会以控制指令的方式传输到教育器具装置, 教育器具装置再根据接收到的操作控制指令进行相应的场景操作。亦即可使用 代码指令进行嵌入式设备的操作的教育设备将会越来越多。

发明内容

[0003] 本发明主要目的在于,提供一种将指令序列映射成图像的方法及系统,以 及将指令图像映射成指令序列的方法,以为将文本指令序列用于神经网络学习 的图像数据集构建提供一种解决方案。
[0004] 本发明是通过如下技术方案实现的:
[0005] 一种将指令序列映射成图像的方法,包括如下步骤:
[0006] 读取指令序列并将其列表化得到指令列表,同时初始化指令图像,令指令 图像映射成尺寸为N×N的二值图像;
[0007] 遍历所述列表中的各条指令,根据各条指令的类型将遍历到的各条指令进 行类型编码,然后根据各条指令的类型编码将各条指令进行二进制编码,以二 进制编码表示各条指令;
[0008] 定位各条指令的二进制编码中值为1的元素,并根据预设的指令转换参数 映射表,将预设的N×N数组中与各条指令的二进制编码中值为1的元素对应的 元素的值置为1,将预设的N×N数组中的其余元素的值置为0;
[0009] 当所有指令遍历完毕后,将得到的N×N数组规范化,并通过预设图像写入 函数将规范化后的数据以图像格式保存,得到与所述指令序列对应的以尺寸为N ×N的二值图像表示的指令图像。
[0010] 进一步地,所述指令序列中指令的数量最大限制为32条,所述N的值为32。
[0011] 进一步地,所述指令序列中指令的数量最大限制为32条,所述N的值为128。
[0012] 一种将指令图像映射成指令序列的方法,包括:
[0013] 对通过如上所述的将指令序列映射成图像的方法获得的指令图像进行逆向 运算,得到与所述指令图像对应的指令序列。
[0014] 进一步地,当所述指令序列中指令的数量最大限制为32条,所述N的值为 128时,在执行所述逆向运算之前,先将通过所述将指令序列映射成图像的方法 获得的以尺寸为128×128的二值图像表示的指令图像,缩小为以尺寸为32×32 的二值图像表示的指令图像,然后再对所述以尺寸为32×32的二值图像表示的 指令图像进行所述逆向运算;
[0015] 将以尺寸为128×128的二值图像表示的指令图像,缩小为以尺寸为32×32 的二值图像表示的指令图像的方法包括:
[0016] 将所述以尺寸为128×128的二值图像中的各像素,以每个4×4尺寸像素 阵列为一个单元,构建32×32单元阵列,所述32×32单元阵列中的单元与所 述尺寸为32×32的二值图像中位置相同的像素相对应;
[0017] 统计所述32×32单元阵列中每个单元的16个像素中像素值为1的像素的 数量,并将像素值为1的像素的数量大于设定阈值的单元所对应的所述尺寸为 32×32的二值图像中的像素的值置为1,将像素值为1的像素的数量不大于所 述设定阈值的单元所对应的所述尺寸为32×32的二值图像中的像素的值置为0。
[0018] 一种将指令序列映射成图像的系统,包括:
[0019] 指令序列读取模块,用于读取指令序列并将其列表化得到指令列表,同时 初始化指令图像,令指令图像映射成尺寸为N×N的二值图像;
[0020] 指令遍历模块,用于遍历所述列表中的各条指令,根据各条指令的类型将 遍历到的各条指令进行类型编码,然后根据各条指令的类型编码将各条指令进 行二进制编码,以二进制编码表示各条指令;
[0021] 定位赋值模块,用于定位各条指令的二进制编码中值为1的元素,并根据 预设的指令转换参数映射表,将预设的N×N数组中与各条指令的二进制编码中 值为1的元素对应的元素的值置为1,将预设的N×N数组中的其余元素的值置 为0;
[0022] 数据规范化及图像保存模块,用于当所有指令遍历完毕后,将得到的N×N 数组规范化,并通过预设图像写入函数将规范化后的数据以图像格式保存,得 到与所述指令序列对应的以尺寸为N×N的二值图像表示的指令图像。
[0023] 进一步地,所述指令序列中指令的数量最大限制为32条,所述N的值为32。
[0024] 进一步地,所述指令序列中指令的数量最大限制为32条,所述N的值为128。
[0025] 一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处 理器执行时,实现如上所述的将指令序列映射成图像的方法或如上所述的将指 令图像映射成指令序列的方法。
[0026] 一种电子装置,包括存储器、处理器及存储在所述存储器中并可在所述处 理器中运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述 的将指令序列映射成图像的方法或如上所述的将指令图像映射成指令序列的方 法。
[0027] 与现有技术相比,本发明通过将指令序列列表化得到指令列表,再从列表 中遍历各条指令,并将各指令进行类型编码,并根据指令类型编码对各指令进 行二进制编码,最后根据预设的指令转换参数映射表将指令列表映射为N×N的 二值图像表示的指令图像。通过本发明能够将指令序列映射成以设定尺寸的二 值图像表示的指令图像,如此可以通过编码的方法赋予更多的信息,构建文本 所对应的指令图像数据集,为将文本指令序列用于神经网络学习的图像数据集 构建提供了一种解决方案。本发明还给出了切实可行的提高映射鲁棒性及相应 的反映射方法。本发明可解决基于数据驱动的无人机指令序列生成方法中进行 构建神经网络训练时所需的训练集构建问题。

附图说明

[0028] 图1是本发明实施例将指令序列映射成图像的方法的流程示意图;
[0029] 图2是将1×1尺寸像素点以4×4尺寸像素点替换的示意图;
[0030] 图3是将以尺寸为128×128的二值图像表示的指令图像进行反映射的过程 示意图;
[0031] 图4是指令序列到指令图像的映射结果示例。
[0032] 图5是本发明实施例将指令序列映射成图像的系统的组成原理示意图;

具体实施方式

[0033] 为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附 图,对本发明作进一步详细说明。
[0034] 如图1所示,本发明第一实施例提供的将指令序列映射成图像的方法,包 括如下步骤:
[0035] 步骤S1:读取指令序列并将其列表化得到指令列表,同时初始化指令图像, 令指令图像映射成尺寸为N×N的二值图像;
[0036] 步骤S2:遍历列表中的各条指令,根据各条指令的类型将遍历到的各条指 令进行类型编码,然后根据各条指令的类型编码将各条指令进行二进制编码, 以二进制编码表示各条指令;
[0037] 步骤S3:定位各条指令的二进制编码中值为1的元素,并根据预设的指令 转换参数映射表,将预设的N×N数组中与各条指令的二进制编码中值为1的元 素对应的元素的值置为1,将预设的N×N数组中的其余元素的值置为0;
[0038] 步骤S4:当所有指令遍历完毕后,将得到的N×N数组规范化,并通过预设 图像写入函数将规范化后的数据以图像格式保存,得到与指令序列对应的以尺 寸为N×N的二值图像表示的指令图像。
[0039] 可限定指令序列中指令的数量最大限制为32条,这时N的值为32。对于图 像映射,为提高鲁棒性,可以将指令序列映射成以尺寸为128×128的二值图像 表示的指令图像,同样将指令序列中指令的数量最大限制为32条,这时N的值 为128。此时,如图2所示,可以使用4×4尺寸像素点来代替原来的1×1尺寸像 素点,将原来尺寸为32×32的二值图像变成尺寸为128×128的二值图像。
[0040] 下面以Tello无人机的控制指令为例进行技术方案描述。Tello无人机控制 指令指的是控制Tello的SDK所包含的控制命令,其主要用于操控Tello的各 种飞行动作,表1-1为控制指令的详述。
[0041] 表1-1 Tello的控制指令
[0042]
[0043]
[0044] 其中上述的控制指令又可分为不带参数的命令与带参数的命令。例如不带 参数的命令有用于控制Tello进入SDK模式的“command”命令,用于控制Tello 进行自动起飞模式的“takeoff”命令,用于控制Tello进入自动降落模式的“land” 命令等。而对于带参数的命令,则有用于控制Tello进入向上飞行模式的“upx” 命令,用于Tello进入向下飞行模式的“downx”命令,用于控制Tello进入向 前飞行模式的“forward x”命令,及用于Tello进入向后飞行模式的“backx” 命令等等,其中x指代的取值为20厘米到500厘米中的值。上述提及的这些命 令也是要使人工智能方法通过数据驱动学习自动生成的目标。本发明中指令序 列指的是多条命令的组合。对于Tello的控制指令序列,组合时需要注意的地 方是“command”命令始终位于序列的开头位置,序列始终以命令“land”来 结束。表1-2是五组不同的指令序列实例示意。
[0045] 表1-2不同指令序列实例示意
[0046]
[0047] 假设将每一组指令序列的最大限度限制为32条指令,从而将指令序列映射 成尺寸大小为32×32的二值图像,每一行代表一条命令所携带的信息,没有指令 序列信息的行默认为零,由于考虑到在指令序列中“command”,“takeoff” 与“land”指令是必须的,所以在转换时可不予以考虑,由此可将第一行,第 二行置零,并将指令读取完毕的最后一行置零。因此只对指令序列中的“up”, “down”“,forward”,“back”及其所带参数进行编码。对指令进行类型编 码,使用一个字节表示,二进制中的每一位代表一个像素值,0x03代表“up” 指令,0x04代表“down”指令,0x05代表“forward”指令,0x06代表“back” 指令,携带的参数使用两个字节表示,见表1-3。将指令映射成的图像统称为 “command_img”,其指令映射结果示例如图4所示。
[0048] 表1-3指令转换参数表
[0049]
[0050] 本发明第二实施例还提供了一种将指令图像映射成指令序列的方法,该方 法即是将上述的指令图像进行反映射处理,其中反映射处理是对指令序列进行 图像映射的逆向过程。将上述的指令图像进行反映射处理后可得到对应的指令 序列。该将指令图像映射成指令序列的方法包括:对通过如上的将指令序列映 射成图像的方法获得的指令图像进行逆向运算,得到与指令图像对应的指令序 列。其算法的基本流程简述为,首先读取指令图像,将其二值化为32×32大小 的数组,然后逐行处理,每行4字节,对应字节的含义如表1-3,每行处理完毕 后将所得转换结果写入到所创建的指令序列文本中,直至数组处理完毕,得到 与指令图像对应的指令序列。
[0051] 当指令序列中指令的数量最大限制为32条,N的值为128时,在执行逆向 运算之前,先将通过将指令序列映射成图像的方法获得的以尺寸为128×128的 二值图像表示的指令图像,缩小为以尺寸为32×32的二值图像表示的指令图像, 然后再对以尺寸为32×32的二值图像表示的指令图像进行逆向运算。
[0052] 如图3所示,将以尺寸为128×128的二值图像3表示的指令图像,缩小为 以尺寸为32×32的二值图像2表示的指令图像的方法包括:
[0053] 首先,将以尺寸为128×128的二值图像3中的各像素,以每个4×4尺寸 像素阵列为一个单元4,构建32×32单元阵列,32×32单元阵列中的单元4与 尺寸为32×32的二值图像2中位置相同的像素相对应。
[0054] 然后,统计32×32单元阵列中每个单元4的16个像素中像素值为1的像 素的数量,并将像素值为1的像素的数量大于设定阈值的单元4所对应的尺寸 为32×32的二值图像2中的像素的值置为1,将像素值为1的像素的数量不大 于设定阈值的单元4所对应的尺寸为32×32的二值图像2中的像素的值置为0。 可先使用4×4尺寸像素的滑动窗口对尺寸为128×128的二值图像3中的各单 元4进行滑动判别,判别规则可以根据实际需求而定,例如可以是以单元4内 黑色像素点的数量大于设定阈值时(如附图3中左上角的单元4),将这个单元 4的16个像素点归纳为一个黑像素点(附图中黑色圆点,值为0),而小于设 定阈值时(如附图3中右下角的单元4),则将这个单元4的16个像素点归纳 为白像素点(附图中白色圆点,值为1),从而将以尺寸为128×128的二值图 像3表示的指令图像,缩小为以尺寸为32×
32的二值图像2表示的指令图像。 该以尺寸为32×32的二值图像2表示的指令图像再经由上述的反映射算法处理 完成图像反映射得到对应的指令序列1。
[0055] 基于上述将指令序列映射成图像的方法,本发明第三实施例还提供了一种 将指令序列映射成图像的系统,如图5所示,该系统包括:
[0056] 指令序列读取模块5,用于读取指令序列并将其列表化得到指令列表,同时 初始化指令图像,令指令图像映射成尺寸为N×N的二值图像;
[0057] 指令遍历模块6,用于遍历列表中的各条指令,根据各条指令的类型将遍历 到的各条指令进行类型编码,然后根据各条指令的类型编码将各条指令进行二 进制编码,以二进制编码表示各条指令;
[0058] 定位赋值模块7,用于定位各条指令的二进制编码中值为1的元素,并根据 预设的指令转换参数映射表,将预设的N×N数组中与各条指令的二进制编码中 值为1的元素对应的元素的值置为1,将预设的N×N数组中的其余元素的值置 为0;
[0059] 数据规范化及图像保存模块8,用于当所有指令遍历完毕后,将得到的N× N数组规范化,并通过预设图像写入函数将规范化后的数据以图像格式保存,得 到与指令序列对应的以尺寸为N×N的二值图像表示的指令图像。
[0060] 本实施例中,指令序列中指令的数量最大限制为32条,N的值为32。或者 指令序列中指令的数量最大限制为32条,N的值为128。
[0061] 该系统中各模块与上述将指令序列映射成图像的方法中的各步骤一一对应, 用于执行各自对应的步骤,其具体工作原理可参考上述将指令序列映射成图像 的方法中对各步骤的描述,在此不做赘述。
[0062] 本发明可以应用于将STEAM教育课堂中无人机或者是机器人等指令操控教 具的示教操作过程中产生的指令图像化,用于构建对抗神经网络学习所需的数 据集,还可应用于将文本序列图像化,用于信息安全处理。
[0063] 本发明第四实施例还提供了一种计算机可读存储介质,其上存储有计算机 程序,计算机程序被处理器执行时,实现如上的将指令序列映射成图像的方法 或如上的将指令图像映射成指令序列的方法。该计算机可存储介质还可以是U 盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、RAM、磁碟或者光盘等 各种可以存储程序代码的介质。
[0064] 本发明第五实施例还提供了一种电子装置,该电子装置包括存储器、处理 器及存储在存储器中并可在处理器中运行的计算机程序,处理器执行计算机程 序时,实现如上的将指令序列映射成图像的方法或如上的将指令图像映射成指 令序列的方法。
[0065] 上述实施例仅为优选实施例,并不用以限制本发明的保护范围,在本发明 的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的 保护范围之内。