技术领域
[0001] 本
发明实施例涉及数据处理技术领域,尤其涉及一种数据处理方法、设备以及无人机。
背景技术
[0002] 随着微
电子技术的发展,
硬件系统的计算能
力得到了很大提升。
人工智能技术再次成为了研究热点。其中,
人工神经网络作为人工智能的
基础,在信息领域,工程领域,经济领域都有很好的应用前景,尤其可应用于
图像识别,
语音识别等方面。其中,以图像识别应用为例,目前运行人工神经网络的硬件平台包括运算资源和存储系统,存储系统保存有人工神经网络参数和待识别的图像,在识别图像时,运算资源通过总线读取存储系统中存储的人工神经网络参数和待识别的图像,据此进行卷积运算,而且这种运算往往需要
迭代多次,需要频繁读存储系统,因此会占用非常高的存储系统带宽。
发明内容
[0003] 本发明实施例提供一种数据处理方法、设备以及无人机,用于减少神经网络参数占用的存储空间,减少读取神经网络参数时占用的系统带宽。
[0004] 第一方面,本发明实施例提供一种数据处理方法,包括:
[0005] 从
存储器中读取经压缩的神经网络参数;
[0006] 对所述经压缩的神经网络参数进行解压,以生成解压后的神经网络参数;以及[0007] 根据所述解压后的神经网络参数对待处理数据进行处理。
[0008] 第二方面,本发明实施例提供一种数据处理设备,包括:存储器和处理器,所述存储器与所述处理器通过通信总线连接;
[0009] 所述处理器,用于从所述存储器中读取经压缩的神经网络参数;对所述经压缩的神经网络参数进行解压,以生成解压后的神经网络参数;以及根据所述解压后的神经网络参数对待处理数据进行处理。
[0010] 第三方面,本发明实施例提供一种无人机,包括:
机身、
云台以及成像装置,所述成像装置通过所述云台与所述机身连接,所述机身包括多个机臂,每个所述机臂用于承载
电机和螺旋桨,所述螺旋桨在所述电机作用下驱动所述无人机飞行;
[0011] 所述机身内包括存储器和处理器,所述存储器和所述处理器通过通信总线连接;
[0012] 所述处理器,用于从所述存储器中读取经压缩的神经网络参数;对所述经压缩的神经网络参数进行解压,以生成解压后的神经网络参数;以及根据所述解压后的神经网络参数对所述成像装置拍摄的图像数据进行处理。
[0013] 第四方面,本发明实施例提供一种数据处理设备,包括:存储器和处理器;
[0014] 所述存储器,用于存储程序代码。
[0015] 所述处理器,调用所述程序代码,当程序代码被执行时,用于执行如本发明实施例第一方面所述的数据处理方法。
[0016] 第五方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有
计算机程序,所述计算机程序包含至少一段代码,所述至少一段代码可由计算机执行,以控制所述计算机执行本发明实施例第一方面所述的数据处理方法。
[0017] 第六方面,本发明实施例提供一种计算机程序,当所述计算机程序被计算机执行时,用于实现本发明实施例第一方面所述的数据处理方法。
[0018] 本发明实施例提供的数据处理方法、设备以及无人机,通过从存储器中读取经压缩的神经网络参数,再对所述经压缩的神经网络参数进行解压,然后根据所述解压后的神经网络参数对待处理数据进行处理。由于神经网络参数是由经压缩后的形式存储在存储器中,减少了神经网络参数占用的存储空间,减少了存储器的
访问压力,减少了读取存储器时占用的带宽。
附图说明
[0019] 为了更清楚地说明本发明实施例或
现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0020] 图1是根据本发明的实施例的无人飞行系统的示意性架构图;
[0021] 图2为本发明一实施例提供的数据处理方法的
流程图;
[0022] 图3为本发明一实施例提供的获取经压缩的神经网络参数的示意图;
[0023] 图4为本发明一实施例提供的卷积运算的示意图;
[0024] 图5为本发明一实施例提供的数据处理过程的示意图;
[0025] 图6为本发明另一实施例提供的数据处理过程的示意图;
[0026] 图7为本发明一实施例提供的数据处理设备的结构示意图;
[0027] 图8为本发明一实施例提供的无人机的结构示意图。
具体实施方式
[0028] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0029] 本发明的实施例提供了数据处理方法、设备以及无人机。其中无人机例如可以是旋翼
飞行器(rotorcraft),例如,由多个推动装置通过空气推动的多旋翼飞行器,本发明的实施例并不限于此。
[0030] 图1是根据本发明的实施例的无人飞行系统的示意性架构图。本实施例以旋翼
无人飞行器为例进行说明。
[0031] 无人飞行系统100可以包括无人飞行器110、云台120、显示设备130和控制装置140。其中,无人飞行器110可以包括动力系统150、
飞行控制系统160和
机架。无人飞行器110可以与控制装置140和显示设备130进行无线通信。
[0032] 机架可以包括机身和
脚架(也称为
起落架)。机身可以包括中心架以及与中心架连接的一个或多个机臂,一个或多个机臂呈
辐射状从中心架延伸出。脚架与机身连接,用于在无人飞行器110着陆时起
支撑作用。
[0033] 动力系统150可以包括一个或多个电子调速器(简称为电调)151、一个或多个螺旋桨153以及与一个或多个螺旋桨153相对应的一个或多个电机152,其中电机152连接在电子调速器151与螺旋桨153之间,电机152和螺旋桨153设置在无人飞行器110的机臂上;电子调速器151用于接收飞行控制系统160产生的驱动
信号,并根据驱动信号提供驱动
电流给电机152,以控制电机152的转速。电机152用于驱动螺旋桨旋转,从而为无人飞行器110的飞行提供动力,该动力使得无人飞行器110能够实现一个或多个
自由度的运动。在某些实施例中,无人飞行器110可以围绕一个或多个旋
转轴旋转。例如,上述
旋转轴可以包括
横滚轴、
偏航轴和
俯仰轴。应理解,电机152可以是直流电机,也可以交流电机。另外,电机152可以是无刷电机,也可以是有刷电机。
[0034] 飞行控制系统160可以包括飞行
控制器161和传感系统162。传感系统162用于测量无人飞行器的
姿态信息,即无人飞行器110在空间的
位置信息和状态信息,例如,三维位置、三维
角度、三维速度、三维
加速度和三维
角速度等。传感系统162例如可以包括
陀螺仪、超声
传感器、
电子罗盘、惯性测量单元(Inertial Measurement Unit,IMU)、视觉传感器、全球导航卫
星系统和气压计等传感器中的至少一种。例如,全球导航卫星系统可以是全球
定位系统(Global Positioning System,GPS)。飞行控制器161用于控制无人飞行器110的飞行,例如,可以根据传感系统162测量的姿态信息控制无人飞行器110的飞行。应理解,飞行控制器161可以按照预先编好的程序指令对无人飞行器110进行控制,也可以通过响应来自控制装置140的一个或多个控制指令对无人飞行器110进行控制。
[0035] 云台120可以包括电机122。云台用于携带成像装置123或者麦克
风(图中未示出)。飞行控制器161可以通过电机122控制云台120的运动。可选地,作为另一实施例,云台120还可以包括控制器,用于通过控制电机122来控制云台120的运动。应理解,云台120可以独立于无人飞行器110,也可以为无人飞行器110的一部分。应理解,电机122可以是直流电机,也可以是交流电机。另外,电机122可以是无刷电机,也可以是有刷电机。还应理解,云台可以位于无人飞行器的顶部,也可以位于无人飞行器的底部。
[0036] 成像装置123例如可以是
照相机或摄像机等用于捕获图像的设备,成像装置123可以与飞行控制器通信,并在飞行控制器的控制下进行拍摄。本实施例的成像装置123至少包括感光元件,该感光元件例如为互补金属
氧化物
半导体(Complementary Metal Oxide Semiconductor,CMOS)传感器或电荷耦合元件(Charge-coupled Device,CCD)传感器。
[0037] 显示设备130位于无人飞行系统100的地面端,可以通过无线方式与无人飞行器110进行通信,并且可以用于显示无人飞行器110的姿态信息。另外,还可以在显示设备130上显示成像装置拍摄的图像。应理解,显示设备130可以是独立的设备,也可以集成在控制装置140中。
[0038] 控制装置140位于无人飞行系统100的地面端,可以通过无线方式与无人飞行器110进行通信,用于对无人飞行器110进行远程操纵。
[0039] 图2为本发明一实施例提供的数据处理方法的流程图,如图2所示,本实施例的方法可以应用于电子设备中,该电子设备例如可以是无人机、手机、
平板电脑、
数码相机、个人电脑等,下面以电子设备是无人机为例进行说明,本实施例的方法可以包括:
[0040] S201、从存储器中读取经压缩的神经网络参数。
[0041] S202、对所述经压缩的神经网络参数进行解压,以生成解压后的神经网络参数。
[0042] S203、根据所述解压后的神经网络参数对待处理数据进行处理。
[0043] 本实施例中,无人机的存储器中存储有经压缩的神经网络参数。当无人机对待处理数据进行处理时,无人机从该存储器中读取经压缩的神经网络参数,由于获取到的神经网络参数是经压缩的,所以无人机还需要对经压缩的神经网络参数进行解压处理,以生成解压后的神经网络参数。然后无人机根据该解压后的神经网络参数对待处理数据进行处理。
[0044] 其中,上述的神经网络可以是
卷积神经网络,或者,循环神经网络,或者,
深度神经网络。需要说明的是,本实施例的神经网络不限于此。
[0045] 可选地,所述神经网络参数包括:神经网络的权重和偏移量。需要说明的是,本实施例的神经网络参数不限于此。
[0046] 例如:压缩前的神经网络参数为100MB,而经压缩的神经网络参数为60MB,从而可以减少40MB的存储空间。假设每秒钟从存储器中读取30次神经网络参数,则从存储器中获取压缩前的神经网络参数占用带宽为100MB*8*30=24Gbps;从存储器中获取经压缩的神经网络参数占用带宽为60MB*8*30=14.4Gbps,每秒钟可节省将近10Gbps的带宽。
[0047] 可选地,所述待处理数据可以为图像数据或者可以为音频数据。以无人机为例,图像数据可以是无人机机载的成像装置拍摄获得的,音频数据可以是无人机机载的麦克风采集获得的。
[0048] 本实施例,通过从存储器中读取经压缩的神经网络参数,再对所述经压缩的神经网络参数进行解压,然后根据所述解压后的神经网络参数对待处理数据进行处理。由于神经网络参数是由经压缩后的形式存储在存储器中,减少了神经网络参数占用的存储空间,减少了存储器的访问压力,减少了读取存储器时占用的带宽。
[0049] 在一些实施例中,在执行上述方案之前,如图3所示,无人机还获取样本数据,根据该样本数据训练得到神经网络参数,然后对该神经网络参数进行压缩处理,获取上述经压缩的神经网络参数,再将经压缩的神经网络参数写入上述的存储器中。
[0050] 例如:可以获取大量的样本数量,根据大量的样本数据训练得到神经网络参数。该神经网络参数例如可用于图像识别,例如用于区分猫,狗,
牛,羊等动物,在获取该神经网络参数时,需要获取大量的猫、狗、牛、羊等图像数据,对这些猫、狗、牛、羊等图像数据进行训练获取到神经网络参数。相应地,上述S103获得的处理结果例如为识别是猫或狗或牛或羊等动物。
[0051] 其中,获取样本数据并根据该样本数据训练得到神经网络参数也可以由除无人机之外的其它电子设备(例如
服务器、个人电脑等)来完成。然后无人机从其它电子设备中获取到神经网络参数,再对该神经网络参数进行压缩处理,获取上述经压缩的神经网络参数,再将经压缩的神经网络参数写入上述的存储器中。其中,训练得到的神经网络参数的数据量从几KB到几百MB都有可能。
[0052] 在一些实施例中,无人机在对所述神经网络参数进行压缩处理,获取所述经压缩的神经网络参数的一种可能的实现方式为:采用
无损压缩算法,对所述神经网络参数进行压缩处理,获取所述经压缩的神经网络参数。其中,无损压缩算法例如可以是霍夫曼编码或算术编码压缩算法。通过无损压缩算法,可以保证经压缩后的神经网络参数没有损失,解压后的神经网络参数与压缩前的神经网络参数完全相同。
[0053] 在一些实施例中,无人机在对所述神经网络参数进行压缩处理,获取所述经压缩的神经网络参数的另一种可能的实现方式为:采用压缩率大于预设压缩率的
有损压缩算法,对所述神经网络参数进行压缩处理,获取所述经压缩的神经网络参数。其中,预设压缩率根据实际应用场景而定,通过压缩率较高的压缩算法,可以尽可能减少经压缩后的神经网络参数的数据量和占用的存储空间。
[0054] 在一些实施例中,当神经网络为卷积神经网络时,上述S103的一种可能的实现方式为:根据所述解压后的神经网络参数对待处理数据进行卷积运算以及
池化运算。
[0055] 以神经网络参数包括:神经网络的权重和偏移量,待处理数据是图像数据为例,如图4所示,对卷积运算进行描述:
[0056] X0~Xn是图像数据中的所有
像素点,每一个像素点和一个权重系数W1,i相乘,再累加,然后再加上偏移量B1,得到Y1。同样的,每个像素和另外一组权重系数W2,i相乘再累加,然后再加上偏移量B2,得到Y2,以此类推,此处不再赘述。上述过程也可以用公式表示为:
[0057]
[0058] 其中,上述的运算过程可能需要迭代多次,由X0~Xn通过上述公式获得Y01~Yn1,为第一次迭代过程;将Y01~Yn1作为X0~Xn通过上述公式计算获得Y02~Yn2,为第二次迭代过程;以此类推。
[0059] 其中,池化运算的具体实现过程可以参见现有技术中的相关描述,此处不再赘述。
[0060] 在一些实施例中,待处理数据与经压缩的神经网络参数存储在同一存储器中,该同一存储器例如为内存或者闪存。如图5所示,以内存为例,训练得到的神经网络参数经压缩后存储在内存中,而且内存中还存储有待处理数据,因此,本实施例可以从内存中读取经压缩的神经网络参数和待处理数据,对经压缩的神经网络参数进行解压,以生成解压后的神经网络参数;然后根据解压后的神经网络参数对待处理数据进行处理,其中图5以卷积运算和池化运算为例,但并不限于此。由于本实施例经压缩的神经网络参数的数据量少,减少了占用的内存空间,每次从内存中读取经压缩的神经网络参数可以减少占用的内存带宽,提高了系统运行性能。
[0061] 可选地,在根据所述解压后的神经网络参数对待处理数据进行处理,获得数据处理结果之后,还将数据处理结果写入所述存储器中。
[0062] 在一些实施例中,待处理数据与经压缩的神经网络参数存储在不同的存储器中。如图6所示,训练得到的神经网络参数经压缩后存储在静态
随机存取存储器(Static Random-Access Memory,SRAM)中,而待处理数据存储在内存中,因此,本实施例可以从静态随机存取存储器中读取经压缩的神经网络参数以及从内存中读取待处理数据,对经压缩的神经网络参数进行解压,以生成解压后的神经网络参数;然后根据解压后的神经网络参数对待处理数据进行处理。由于本实施例经压缩的神经网络参数的数据量少、减少了占用静态随机存取存储器的空间。
[0063] 本发明实施例中还提供了一种计算机存储介质,该计算机存储介质中存储有程序指令,所述程序执行时可包括如上述各方法实施例中的数据处理方法的部分或全部步骤。
[0064] 图7为本发明一实施例提供的数据处理设备的结构示意图,如图7所示,本实施例的数据处理设备700可以包括:存储器701和处理器702,所述存储器701与所述处理器702通过通信总线连接。
[0065] 所述存储器701,用于存储经压缩的神经网络参数。
[0066] 所述处理器702,用于从所述存储器701中读取经压缩的神经网络参数;对所述经压缩的神经网络参数进行解压,以生成解压后的神经网络参数;以及根据所述解压后的神经网络参数对待处理数据进行处理。
[0067] 在一些实施例中,所述处理器702,还用于从存储器701中读取经压缩的神经网络参数之前,获取样本数据;根据所述样本数据训练得到神经网络参数;对所述神经网络参数进行压缩处理,获取所述经压缩的神经网络参数;将所述经压缩的神经网络参数写入所述存储器701。
[0068] 在一些实施例中,所述处理器702,具体用于:采用无损压缩算法,对所述神经网络参数进行压缩处理,获取所述经压缩的神经网络参数。
[0069] 在一些实施例中,所述处理器702,具体用于:采用压缩率大于预设压缩率的有损压缩算法,对所述神经网络参数进行压缩处理,获取所述经压缩的神经网络参数。
[0070] 在一些实施例中,所述神经网络为卷积神经网络;
[0071] 所述处理器702,具体用于:根据所述解压后的神经网络参数对待处理数据进行卷积运算以及池化运算。
[0072] 在一些实施例中,所述神经网络参数包括:神经网络的权重和偏移量。
[0073] 在一些实施例中,所述处理器702,还用于在根据所述解压后的神经网络参数对待处理数据进行处理之前,从所述存储器701中读取所述待处理数据。
[0074] 在一些实施例中,所述处理器702,还用于在根据所述解压后的神经网络参数对所述待处理数据进行处理之后,将数据处理结果写入所述存储器701中。
[0075] 在一些实施例中,所述存储器701为静态随机存取存储器。
[0076] 在一些实施例中,所述存储器701为内存或者闪存。
[0077] 在一些实施例中,所述待处理数据为图像数据或者音频数据。
[0078] 本实施例的数据处理设备,可以用于执行本
说明书上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0079] 图8为本发明一实施例提供的无人机的结构示意图,如图8所示,本实施例的无人机800可以包括:机身801、云台802以及成像装置803,所述成像装置803通过所述云台802与所述机身801连接,所述机身801包括多个机臂8011,每个所述机臂8011用于承载电机和螺旋桨,所述螺旋桨在所述电机作用下驱动所述无人机800飞行。其中,电机和螺旋桨在图8中未示出,可以参见图1中所示。
[0080] 所述机身801内包括存储器8012和处理器8013,所述存储器8012和所述处理器8013通过通信总线连接。
[0081] 所述处理器8013,用于从所述存储器8012中读取经压缩的神经网络参数;对所述经压缩的神经网络参数进行解压,以生成解压后的神经网络参数;以及根据所述解压后的神经网络参数对所述成像装置803拍摄的图像数据进行处理。
[0082] 在一些实施例中,所述处理器8013,还用于从存储器8012中读取经压缩的神经网络参数之前,获取样本数据;根据所述样本数据训练得到神经网络参数;对所述神经网络参数进行压缩处理,获取所述经压缩的神经网络参数;将所述经压缩的神经网络参数写入所述存储器8012。
[0083] 在一些实施例中,所述处理器8013,具体用于:采用无损压缩算法,对所述神经网络参数进行压缩处理,获取所述经压缩的神经网络参数。
[0084] 在一些实施例中,所述处理器8013,具体用于:采用压缩率大于预设压缩率的有损压缩算法,对所述神经网络参数进行压缩处理,获取所述经压缩的神经网络参数。
[0085] 在一些实施例中,所述神经网络为卷积神经网络;
[0086] 所述处理器8013,具体用于:根据所述解压后的神经网络参数对待处理数据进行卷积运算以及池化运算。
[0087] 在一些实施例中,所述神经网络参数包括:神经网络的权重和偏移量。
[0088] 在一些实施例中,所述处理器8013,还用于在根据所述解压后的神经网络参数对待处理数据进行处理之前,从所述存储器8012中读取所述待处理数据。
[0089] 在一些实施例中,所述处理器8013,还用于在根据所述解压后的神经网络参数对所述待处理数据进行处理之后,将数据处理结果写入所述存储器8012中。
[0090] 在一些实施例中,所述存储器8012为静态随机存取存储器。
[0091] 在一些实施例中,所述存储器8012为内存或者闪存。
[0092] 在一些实施例中,本实施例的无人机800还包括麦克风804,所述麦克风804搭载在所述机身801上;
[0093] 所述处理器8013,还用于根据所述解压后的神经网络参数对所述麦克风804采集的音频数据进行处理。
[0094] 可选地,麦克风804可以通过云台802搭载在机身801上,也可以无需通过云台802而是直接搭载在机身801上。
[0095] 本实施例的无人机,可以用于执行本说明书上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0096] 本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读内存(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0097] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行
修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。