APP下载

基于深度学习技术的智能化无人机视觉系统设计研究

2020-01-25苏佳媛

工业设计 2020年12期

苏佳媛

关键词:深度学习技术;智能化无人机;视觉系统设计

1 相关概念概述

1.1 深度学习技术

深度学习技术的全称是Deep Learning,在19 世纪90 年代末逐渐成为了人工智能的热门研究领域,它是机器学习中的重要组成部分,主要是通过神经网络来形成一个较为完善的机器学习模式,结合底层组合特性来实现更高的属性类别表示,这样一来所产生的数据信息就会以分布式特点的形式体现出来[1]。在深度学习之中最为关键的模型结构便是神经网络,由此能够看出深度学习的本质在于堆叠一个又一个神经网络,让神经网络输入至输出最长路径长度得以提升,进而构建一个完善的函数关系。深度学习技术能够自动学习要建模数据的潜在分布的多层表达,其核心技术是监督和非监督学习算法,通过这种监督和非监督学习算法自动地学习到不同数据的多种特征,更好地表达数据。

1.2 智能化无人机视觉系统

智能化无人机视觉系统主要是指在该系统之中能够实现自主飞行目的,充分摆脱相关技术人员的控制,体现出“无人”这一基本特征。同时智能化无人机视觉系统并不单单意味着对自身进行智能化处理,在物联网之中同样能够产生至关重要的作用,为相关通信提供传播媒介方面的支持。智能化无人机视觉系统主要是以深度学习为技术基础,包含了上位机以及无人机飞行器这两个部分,具体如图1 所示。

在无人机飞行器之中,主要包含了软件以及硬件,其中硬件是由机载运动相机以及无人机飞行器这两个模块,无人机通过数传电台来和地面站就所采集的数据信息进行交流与共享,而机载运动相机则通过自身所具备的无线传导功能来和地面站建立联系[2]。为了有效避免紧急情况产生而引发的无人机失控现象,技术人员会在智能化无人机之中添加一个遥控接收机这一装备,以此来让地面站能够通过遥控器的使用来实现对无人机的接管。在无人机云台之中会挂载一个具备较强专业性能的运动相机,无人机飞行控制模块能够利用云台所提供的功能来对相机的实际拍摄角度以及拍摄姿势进行合理地调整。而在无人机飞行器中,主要是采取了RT-Thread 这一实时操作系统软件,并且以此为基础将原有的神经网络库以及机器视觉库相关数据信息进行了移植,以此来完成视觉应用平台的搭建,能够给后续视觉应用开发奠定坚实的理论基础。

在智能化无人机视觉系统之中,主要是将平板设备当做上位机,可以有效操作无人机以及机载运动相机,并且具备目标检测以及图像处理这方面的功能。上位机主要是通过数传电台来和无人机进行通信,所遵循的通信协议为MAVLink 协议。上位机的地面站软件能够对相继的拍摄进行全方位地控制,接受相机所拍摄的图像并对其进行处理。

2 基于深度学习技术智能化无人机视觉系统设计思路

2.1 搭建无人机硬件平台

本次研究主要采取了开源Pix Hawk 飞控拼装制作而成的无人机,主要包括了机载运动相机以及四旋翼无人机,其中四旋翼无人机主要是将Pix Hawk 作为核心,通过STM32F103 以及STM32F247 为协助控制器以及主要控制器,其具体参数如表1所示。

相机主要是在挂载于四旋翼无人机云台下方,该搭建无人机硬件云台能够适当调整翻滚角度,进而直接在地面总站台对相机进行有效地控制,其主要参数如表2 所示。

2.2 构建无人机实时操作系统

在智能化无人机之中,所采取的实时操作系统主要是RTThread系统(Real-Time Thread),属于嵌入式实时多线程操作系统的范畴。构建的无人机实时操作系統具备较为分明的架构以及较高的模块化程度,相关技术人员能够较为轻易地对其进行剪裁。与市场中应用较为广泛的Linux 系统相比,RT-Thred 系统有着较高的实时性,较小的体积以及功耗,不会耗费大量的成本,且占用资源相对较小,启动速度更快,十分契合无人机应用于各类资源受限的环境之下[3]。并且RT-Thread 不单单能够应用于较为低端的MCU 之中,也能够应用于ARM9、ARM11 以及ARMCortex-A 系列级别的应用处理器之中。其实际结构如2 所示。

从上图中能够得知,这一系统的核心部分在于内核层,主要包含了内存管理、邮箱、多线程调度、定时器、消息队列等功能;libcpu / BSP 主要是指硬件抽象层,主要包含了CPU 移植以及外设驱动。将RT-Thread 操作系统应用于无人机操作系统之中,主要有着以下几个方面的优点:一是属于硬实时系统的范畴,能够充分迎合无人机在实时性方面的需求[4] ;二是能够对系统的功耗进行最大地减少,具备自动化功耗控制这一功能;三是其网络协议栈较为丰富,当前能够支持商场中的4G、5G 移动通信;四是多媒体软件包数量众多,处理相关图像信息更为便捷;五是提供了数量众多的云SDK,和物联网有着密切的联系,使得云计算技术能够有效应用于无人机之中。

2.3 提供深度学习技术支持

无人机所使用的深度学习框架应该对无人机硬件具有较好的优化,同时尽可能地减少第三方的依赖,同时又要尽可能支持主流的网络和模型。据此,移植移动端已有的深度学习框架是比较合适的选择。本文通过移植腾讯的 ncnn 神经网络计算框架到RT-Thread 操作系统,为无人机提供深度学习支持。ncnn 从设计上考虑移动端的部署和应用,并且具有良好的跨平台性,无任何第三方库依赖,不依赖 BLAS 等计算框架。ncnn 满足具有以下优点,使其能作为智能化无人机深度学习支持平台:(1) 支持大部分常用的 CNN 网络,如主流的 VGG、Goog Le Net、Resnet、Squeeze Net、YOLO。(2) 纯 C++ 实现。通常深度学习框架会依赖 BLAS 和 LAPACK 等计算库,而后者部分代码往往使用Fortran 语言编写,难以移植。(3) ARM NEON 汇编优化。NEON是 ARM Cortex-A 系列芯片中的一种 SIMD 指令集,在单个 CPU指令周期完成多组数据的运算。目前无人机设备常用ARM 芯片,使用 NEON 指令集实现卷积层、全连接层、池化层等大部分CNN 的关键层,能有效地提升计算性能。(4) 通常卷积层在计算卷积时,为利用优化过的高效的通用矩阵乘法函数(GeneralMatrix Multiplication),会将一个 H × W × C 的特征图拆分重组为 N 个 K2 × C 维向量,即一个(K2C)× N 的矩阵,其中 K 为卷积核的长宽,同时将 D 个 K × K × C 的卷积核重组为一个 D×(K2C)的矩阵。两个矩阵通过一个矩阵乘法得到一个输出矩阵,再改变为相应输出的形状,得到输出张量,即完成出一个卷积层的计算。这种计算卷积的方法会造成大量的数据冗余[5]。在ncnn 中卷积层采用原始的滑动窗口卷积实现,然后进行优化,避免在中间计算过程构造出较大的矩阵,减少内存占用。(5) 整体库体积较小,低于 500KB。无人机系统通常存储空间有限,如Pixhawk 仅提供 2MB 大小的闪存用于存储程序,而 Ardupilot 提供的 Pixhawk 飞控固件仅 1.1MB,较小的第三方神经网络库可以尽量降低对存储空间的要求。

3 结语

综上所述,传统无人机视觉系统中存在着一定的弊端,无法深入处理所获取的各类数据信息,因此本次研究引入了深度学习技术,在无人机视觉系统中移植了ncnn 作为其深度学习的主要框架,能够有效解决这类问题,并且维持无人机的稳定飞行,有效提升无人机执行相关任务的质量及效率,值得大力推广。