智能手机也可以当空气质量监测仪?来自几个工科生的操作指南

针对空气质量的检测问题,印度理工学院的一个团队,在云端训练一个 AQI 估算模型,利用手机拍照就能获悉空气质量,有效的掌握雾霾天气的信息。

撰文 |  Prerna Khanna 等,印度理工学院

编译 | 小胡桃,黑胡桃实验室

本文授权转载自公众号「黑胡桃实验室」ID: blackwanutlabs ,感谢作者和译者的付出!

你知不知道,有一种咳嗽叫做「雾霾咳」?还有一种色系叫做「雾霾色」?在雾霾里挣扎久了,大家也在无奈中调侃起这令人头疼的空气质量。 

除了国内北京、兰州、成都等城市连年受到空气污染的困扰之外,国外像印度德里 ( Delhi ) 、韩国首尔、泰国清迈等城市也都面临严重的空气污染问题,尤其是在冬天。 

冬天由于空气污染,人们不仅的活动被限制,还会出现健康问题。据媒体报道称,在全世界范围内,空气污染的致死人数达到 880  万。 

全球空气污染问题严峻,而解决空气污染的第一步,是让人们能够监测自己所呼吸的空气质量。 

虽然监测空气质量可以用污染传感器来完成,但是大规模的部署成本很高。来自印度理工学院的学生团队设计了一个可靠又便宜的空气质量评估解决方案,让人们用智能手机就可监测。 

使用移动设备进行 PM 2.5 估计

​基于手机照片实时分析空气质量

在之前的研究中,虽然证明了机器学习可以有效地利用相机图像来评估空气质量,但是通常局限于一些静态摄像机的图像。 

来自印度的学生团队希望可以通过手机拍摄的图片,在基于安卓的手机应用上提供本地实时的空气质量评估。 

他们选择了以 PM 2.5 和直径更小的颗粒物为目标作为空气质量评估的标准。为了可视化结果,将 PM 2.5 预测值映射到颜色梯度空气质量指数(AQI)表上,这是各国政府规定的标准尺度。然后相应的污染警告会根据 AQI 值显示出来。 

​使用 TensorFlow Lite 预测空气质量 

具体的步骤是,应用程序从手机摄像头收集图像,然后 Tensorflow Lite 在设备上处理它们,以提供 AQI 预测值。在开发应用程序之前,他们在云端训练了一个 AQI 估算模型。在 Android 应用程序中可以使用 Firebase ML Kit 自动下载该模型。 

该系统包含了以下几个部分: 

1. 移动应用程序:用于捕获图像和预测 AQI 等级,该应用程序可在设备上处理图像。 

2. TensorFlow Lite:用于使用训练好的模型进行预测,并且它本身是一个很小的二进制文件 (这在带宽有限时对于下载速度很重要)。 

3. Firebase:从图像中提取的参数(如下所述)被发送到 Firebase。每个新用户使用该应用时,都会为其创建唯一的 ID. 这可以用于之后为不同地理位置定制机器学习模型。 

4. 亚马逊 EC2:在亚马逊 EC2 上使用各种地理位置的参数以及 PM 值来训练模型。 

5. ML Kit:将训练好的模型托管在 ML Kit 上,并且自动加载到设备上,然后使用 TensorFlow Lite 运行。 

​两种模型 

他们训练了两个基于图像的机器学习模型: 使用用户上传照片的特征预测 AQI 和过滤掉没有天际线的图像 。

AQI 模型 

根据用户照片,他们使用以下特征来预测 AQI:这些特征通过传统的图像处理技术提取,并通过线性模型进行组合。第二个模型(稍后讨论)直接使用图像。 

传输:描述场景衰减和空气粒子反射后进入手机摄像头的光量。它可以用这个等式来描述: 

其中 I 是观察到的模糊图像,t 是从场景到相机的传输,J 是场景辐射度,A 是空气颜色矢量。 

利用暗通道的概念,在所有室外图像中,假设一个颜色通道中至少存在一些零强度或非常低强度的像素,从而发现了单个模糊图像的传输。对于无雾图像 J,暗通道是: 

其中 Jc 是 J 的颜色通道之一,而 Ω(x)是以 x 为中心的局部补丁。可以从天空或最亮区域估计空气光,因此可以通过以下方式获得传输: 

其中 Ic(y)/A 是由空气光 A 归一化的模糊图像,右边的第二项是标准化模糊图像的暗通道。 

天空的颜色:如果天空是灰色的,我们认为它是空气受污染的一天。可以使用 RGB 分割估计蓝色。 

天空的渐变:考虑到由于云层覆盖,天空可能会显得灰暗,因此将此特征纳入其中。通过制作天空区域的掩模然后计算该区域的拉普拉斯算子来计算梯度。 

熵,RMS  对比度:这些特征表明图像中包含的细节。如果是污染天气,图像会丢失它的细节。RMS 对比度被定义为图像像素强度的标准偏差。以下是 RMS 对比度的等式: 

其中 Iij 是尺寸为 M×N 的图像的(i,j)像素处的亮度, avg(I)是图像中所有像素的平均亮度。因此,对比度与 PM 2.5 成反比关系。为了估算熵,使用以下等式: 

其中 pi 是像素强度等于 i 的概率,M 是图像的最大亮度。随着 PM 浓度增加,图像的细节逐渐丢失,图像熵降低。因此,它与 PM 2.5 呈反比关系。 

湿度:通过研究得出的结论为:在潮湿的日子里,污染程度会上升,因为 PM 2.5 会吸收水分并降低能见度。

天际线模型 

用户能否用该应用程序像预测房屋外的 AQI 一样来预测房间内的 AQI? 

如果图像中包含至少 50% 的天际线,该模型便可对其进行预测,并且将通过使用二元分类器接受天际线图像。 

他们使用 Transfer Learning (迁移学习) 创建了这个分类器,并使用 TensorFlow Hub 在他们的标记数据集上重新训练模型。数据集由 2 个类组成:500 个带有 50% 天际线的图像,540 个不包含天际线(或不到 50% 的天际线)的图像,包括房间,办公室,花园,室外场景等。然后使用 MobileNet 0.50 架构,在测试看不见的 100 个样品时,实现了 95% 的准确度。其中,TF for Poets 为图像再训练提供了帮助。 

再训练模型的混淆矩阵如下: 

  左图:天际线大于 50% 的图像。右图天际线小于 50% 的图像

​用户的自定义模型 

因为每个智能手机的相机规格都有所不同,所以每个用户都需要一个定制的机器学习模型。 为了训练这样的模型,他们收集了每个用户的图像。 

他们决定将基于图像的模型和使用气象参数的时间模型相结合。使用气象参数的时间模型有助于获得更高的推理精度,并在训练基于图像的机器学习模型时为用户提供一些结果,而基于图像的机器学习模型有助于我们为特定用户定制模型,从而通过减少预测误差来提高推理精度。 

为了给每个用户创建一个小的训练数据集,他们 7 个图像中提取特征进行训练。图像必须是连续的 7 天拍摄,其中一半覆盖天空,并且没有直接的光源,例如太阳。从图像中提取特征后,它们用于训练回归模型。该模型是线性的,因为所有图像特征或多或少都与 PM 2.5 值成线性比例。 

创建了训练数据集和模型之后,将创建用于测试的第二组图像。一旦数据集具有 7 天不同的图像特征,测试便开始了。如果训练 RMSE 少于 5 天,则模型将被冻结并发送到 ML Kit,后者将在应用程序中下载。如果  RMSE 不小于 5 天,则收集更多的训练数据。 

图像特征与 PM 2.5 的关系

​气象参数 

为了提高推断准确性,他们还利用气象数据的时间模型,基于最近位置的历史 AQI 以及基于图像模型的时间模型补充来预测 AQI。 

团队从 2015 年至 2017 年的印度政府网站上收集了德里的气象数据集,并使用 LASSO 优化进行岭回归,以选择影响 PM 2.5 水平的关键参数。 

选择出的关键参数是:前一小时的 PM 2.5 浓度,各种气体的浓度,如 NO2,SO2,O3 和露点。然后分别对这些数据进行训练和测试。其数据集的准确率达到了 90%。 

线图表示 3 个模型在 21 天的时间段内给出的 RMS 误差值 

下一个挑战是为每个用户托管基于自适应图像的模型。为此,他们使用了 Firebase ML Kit 的一个解决方案。它允许自定义和自适应 ML 模型被托管在云端和设备上。 

这个简单但有效的系统,对雾霾的检测或治理能走多远呢?就让我们期待他们更深入的探索和改进吧!