论文部分内容阅读
从2012年开始,深度卷积神经网络极大促进了计算机视觉算法的发展,而为了达到更好的性能,研究人员设计的卷积神经网络模型越来越大,从Alex Net到VGG、Google Net、Res Net等。由于隐私或者网络等原因,不能将嵌入式或移动平台上的数据发送到端服务器,因此在嵌入式平台上部署运行卷积神经网络模型成为一种新的发展趋势。而这些参数量、计算量很大的卷积神经网络不适用于计算资源比较有限的嵌入式平台。所以出现了一些专门为嵌入式移动平台设计的轻量化卷积神经网络如Mobile Net、Shuffle Net、Squeeze Net等。然而这些轻量化卷积神经网络是在桌面平台上训练的,如果直接将这些轻量化卷积神经网络运行在嵌入式平台上,其性能不高。所以本文设计实现了一个深度卷积神经网络的嵌入式推理部署框架来解决这个问题。本文设计实现了一个适用于ARM CPU嵌入式平台的深度卷积神经网络嵌入式推理框架,整个框架主要包含四个组件:模型转换组件Convertor、运行时Runtime、网络基础组件(Net、Layer、Blob等)、加速组件Accelerator。本文通过理论和实验,分析出轻量化卷积神经网络在嵌入式平台上的推理过程中的性能瓶颈,并且针对1×1标准卷积和3×3深度可分离卷积设计了相应的优化算法,提升这些网络层的推理性能。还设计了一个内存池算法来解决卷积神经网络轻量推理模式(推理过程中释放掉以后不会用到的特征图内存)引入的频繁内存分配和释放问题,提升了整个框架的性能。最后在Firefly-RK3399开发板上通过实验测试了本文所设计实现的卷积神经网络推理框架。实验结果表明,我们的1×1卷积优化算法相比于未优化前有着大约70%—90%的性能提升,3×3深度可分离卷积优化算法在计算量大且CPU算力弱的情况下也有50%左右的性能提升。而我们的内存池算法在轻量推理模式的配合下可以在不损失推理性能的前提下降低推理过程中的内存占用。