【周末创客】在家搭一套大气环境实时预测系统可好?

本文转载自:PYNQ开源社区微信公众号

感兴趣者可与 pynq_china@xilinx.com 联系,共同合作拓展项目。

过完秋高气爽季节,在北方又开始出现空气质量变差的情况。对于空气质量该如何进行预测并指导防护呢。西班牙萨拉戈萨大学(University of Zaragoza)的同学在OpenHW2020欧洲区的比赛中,在PYNQ-Z2平台实现了用QNN对16个气体传感器数据融合并用于对大气环境实时预测的方案。详细步骤请点击:https://github.com/eneriz-daniel/sensorialfusionQNNs

1. 数据处理

训练所用的输入数据为16个传感器的信号关于时间的序列,目标为预测空气中CH4和C2H4的浓度。如下图,曲线表示的是16个传感器随着时间的变化,蓝色和黄色面积表示CH4和C2H4的浓度随时间的变化。

由于数据在时间上的动态变化不能够进行学习,所以作者先将数据进行了滤波和归一化,保证了数据是双射的。

2. 模型训练

作者Daniel Enériz Orta使用UCL的数据集进行模型训练(相当有用的数据集,可以在项目github中获得链接),使用的神经网络结构很简单,只有两个隐藏层。

作者进行初步的训练之后,将模型进行12-3定点数的量化,最终的训练结果如下图,准确率达到了98%

3. Overlay设计

由于全链接的神经网络可以直接表示成矩阵的乘法,所以可以很容易地使用HLS实现并优化这个算法。硬件资源的利用率见下图。


该设计不仅仅也已经打包成了IP,很方便的融入PYNQ框架中,在Jupyter Notebook上即可绘制和显示预测结果。下面图中涂色的部分表示实际的分子浓度,折线表示FPGA预测的气体浓度。

最新文章