基于嵌入式平台与深度学习的智能气象监测仪器设计方案

一、 概述

以目前常见移动设备的存储和计算能力,是不可能实现在移动端进行模型训练的。但是如果在服务端利用海量的数据和计算资源训练好模型,然后将训练好的模型部署到移动端,只利用移动端的计算能力来进行推理,将分别发挥两项技术最优的性能,也是人工智能算法落地的趋势。
若按传统方式直接采集图像数据上传云端进行处理,既面临图像数据的安全性问题,又对通信带宽有较大的要求,且一旦终端数量大时,会为云端处理图像的服务器带来很大的压力,而本项目是在本地处理数据,数据没有上云的过程,就可以保证用户的信息安全,免除不必要的麻烦。且经过嵌入式的前级处理,就可以只传输有价值的信息,而非原始的大容量视频,能够有效减少传输带宽以及后端部署服务器的计算量及存储量,让系统的整体架构变得更加轻便。
本项目基于MTK主控,现将训练好的模型部署在MTK嵌入式平台上,使主控一边将摄像头的视频采集回来进行实时的处理,一边与协处理器(单片机端)进行数据通信,协处理器先将传统的传感器数据采集计算整理好后再与MTK主控进行通信,这不仅节约了MTK的接口,也节省了一部分算力。使MTK性能更多的用在图像的实时处理与人机交互的功能上。
Android是大部分物联网设备未来的内在系统,而TensorFlow又是业内标准的训练框架,这两个系统的整合将会产生巨大的化学反应。

二、 整体框架

在AI部分,首先需要搭建相应的人工智能学习网络,完成数据集的搜集,并对模型进行训练,在过程中不断优化算法、调节参数,得到需求的模型并将其移植到嵌入式平台上。
而嵌入式端的任务,既需要对传统参数完成采集,利用有限的接口挂载多种多样的传感器。也需要对实时视频进行前级处理(切片、滤波等)并将处理好的图片放在移植好的模型上进行识别,最终将识别后的结果通过一定的方式呈现出来,实现较好的人机交互体验。
在这里插入图片描述

三、人工智能部分:

本项目采用谷歌TensorFlow作为学习的基础框架,选择本框架而不是caffe、Theano、Torch、CNTK等框架的理由如下:
1.可用性:TensorFlow 工作流程相对容易,API 稳定,兼容性好,并且 TensorFlow 与 Numpy 完美结合,这使大多数精通 Python 数据科学家很容易上手。与其他一些库不同,TensorFlow 不需要任何编译时间, 这允许你可以更快地迭代想法。在TensorFlow 之上已经建立了多个高级 API,例如Keras 和 SkFlow,这给用户使用TensorFlow 带来了极大的好处。
2.灵活性:TensorFlow 能够在各种类型的机器上运行,从超级计算机到嵌入式系统。它的分布式架构使大量数据集的模型训练不需要太多的时间。TensorFlow 可以同时在多个CPU,GPU 或者两者混合运行。
3.运行效率:自 TensorFlow 第一次发布以来,开发团队花费了大量的时间和努力 来改进TensorFlow 的大部分的实现代码。 随着越来越多的开发人员努力,TensorFlow 的效率不断提高。
4.支持:TensorFlow 由谷歌提供支持,谷歌投入了大量精力开发 TensorFlow,它希望 TensorFlow 成为机器学习研究人员和开发人员的通用语言。此外,谷歌在自己的日常工作中也使用 TensorFlow,并且持续对其提供支持,在 TensorFlow 周围形成了 一个强大的社区。谷歌已经在 TensorFlow 上发布了多个预先训练好的机器学习模型,他们可以自由使用。

四、 嵌入式部分

4.1安卓主控

  • TensorFlow Lite加Android8.1:
    目前嵌入式设备的智能框架是 TensorFlow Lite相对比较成熟的,TensorFlow Lite 的目标是移动和嵌入式设备,它赋予了这些设备在终端本地运行机器学习模型的能力,从而不再需要向云端服务器发送数据。TensorFlow Lite可以与Android 8.1中发布的神经网络API完美配合,即便在没有硬件加速时也能调用CPU处理,确保模型在不同设备上的运行。
    但是目前此框架还处于比较初始的阶段,仅有少量模型面世,且支持安卓8.1的处理器成本相对较高。
  • MTK8735+opencv+ TensorFlow:
    首先MTK8735是联发科的4核64位物联网方案LTE芯片,核心板价格相对于专门的人工智能硬件低很多,使用灵活,通过OPENCV的前级处理,能较好的完成图像视频切片、图像滤波识别等功能,且搭载安卓系统,人机交互便捷。综合考虑是目前气象识别需求的最佳方案。

4.2协处理器

采用STM32作为本系统的协处理器,STM32具有接口齐全、实时性好、成本低、开发便捷等优点,故选用本单片机作为本系统的协处理器。

五、 人机交互

直接开发安卓APP与用户进行交互,或将数据打包上传服务器,并通过PC软件,安卓软件,或浏览器Html5跨平台等方式进行展示。
软件应具有以下功能:

  1. 登陆鉴权
  2. 历史备份
  3. 数据可视化展示
  4. 数据趋势分析
  5. 展示传感器及摄像头工作状态
  6. 故障报警

猜你喜欢

转载自blog.csdn.net/qq_38470434/article/details/106085814