當前位置:
首頁 > 新聞 > 造福社會工科生:如何用機器學習打造空氣檢測APP?

造福社會工科生:如何用機器學習打造空氣檢測APP?

選自medium,作者:Prerna Khanna、Tanmay Srivastava、Kanishk Jeet,機器之心編譯,參與:高璇、淑婷。


大城市的空氣污染早已不稀奇,「立霾」都被調侃為一個節氣。為提高大家對空氣污染的意識,提高環境保護的覺悟,來自印度的幾個小哥哥利用機器學習設計了一款 APP 來檢測空氣質量。

像德里這樣的大城市可能會遭受空氣污染,尤其在冬季。如「清晨寒冷的德里,空氣質量依然很糟糕」這樣的標題常會出現在報紙頭條。冬季空氣質量差會導致霧霾產生,這會限制市民的戶外活動,誘發健康問題。

造福社會工科生:如何用機器學習打造空氣檢測APP?

打開今日頭條,查看更多圖片

使用手機評估 PM 2.5

作為工科生,我們努力用科技造福社會。解決空氣污染問題的關鍵第一步是讓市民能夠自己監測空氣質量。

這可以通過污染感測器實現,但是大規模部署該感測器成本高昂。我們的目標是設計一個可靠、價格公道的空氣質量評估解決方案,讓每個人可以直接用智能手機實現。

《Particle Pollution Estimation Based on Image Analysis》等研究表明,通過使用相機圖像,可以有效地利用機器學習來評估空氣質量,儘管以前的研究通常局限於靜態相機的圖像。

我們的目標是開發基於 Android 的移動應用程序,利用智能手機相機圖像提供本地的實時空氣質量評估。來自 Marconi Society 的 Celestini Project India 給了我們很大的啟發,並為我們提供了在德里印度理工學院(IIT Delhi)實習的機會,以及開發所需的資源。

應用程序運行 demo

我們研究的重點是用「PM 2.5」(直徑不大於 2.5 微米的顆粒)來預測空氣質量。為了將結果可視化,我們預測 PM 2.5 值並將其映射到顏色漸變的空氣質量指數(AQI)表中。這是每個國家政府制定的標準,然後根據 AQI 值預警。

使用 TensorFlow Lite 預測空氣質量

我們開發的應用程序從手機相機收集圖像,然後在設備上利用 Tensorflow Lite 處理圖像,得到 AQI 估計。在開發應用程序之前,我們在雲上訓練了 AQI 評估模型。在 Android 應用程序中,使用 Firebase ML Kit 能自動下載該模型。

下面將詳細描述該系統:

  • 移動應用程序。用於獲取圖像和預測 AQI 值。應用程序可以在手機上處理圖像。
  • TensorFlow Lite 用低精度的數據類型進行計算(當帶寬受限時,對下載速度有優勢),用訓練好的機器學習模型在手機上進行推理。
  • Firebase。從圖像中提取的參數(如下圖所示)將發送到 Firebase。每當新用戶使用該 APP 時,都會為其創建一個唯一的 ID。這可以用於以後為不同地理位置的用戶定製機器學習模型。
  • Amazon EC2。我們使用這些參數和來自地理位置的 PM 值訓練當前模型。
  • ML Kit。訓練好的模型被託管至 ML Kit 上,並自動載入到設備上,然後使用 TensorFlow Lite 運行。

造福社會工科生:如何用機器學習打造空氣檢測APP?

兩個模型

下面將介紹關於如何分析圖像以預測 AQI 的更多細節。我們訓練了兩個基於圖像的機器學習模型來構建應用程序:第一個模型根據用戶上傳照片的特徵預測 AQI,第二個模型過濾掉不包含天空區域的圖像。

AQI 模型

我們利用以下特徵根據用戶照片預測 AQI。這些特徵通過傳統的圖像處理技術提取,然後由線性模型結合。第二個模型(稍後討論)直接處理圖像,這在深度學習中很常見。

傳輸:描述場景衰減和經過空氣粒子反射後進入手機攝像頭的光量。公式如下:

造福社會工科生:如何用機器學習打造空氣檢測APP?

其中 I 是觀察到的模糊圖像,t 是從場景到相機的傳輸,J 是場景亮度,A 是 airlight 顏色矢量。

利用暗通道的概念發現了單個模糊圖像的傳輸,暗通道假設所有室外圖像中至少有一個顏色通道存在為零或極低的像素。對於無霧圖像 J,暗通道是:

造福社會工科生:如何用機器學習打造空氣檢測APP?

其中 Jc 是 J 的顏色通道之一,Ω(x) 是集中在 x 附近的局部圖像塊。利用天空或最亮區域可以估計出 airlight,所以可以得到傳輸:

造福社會工科生:如何用機器學習打造空氣檢測APP?

其中 Ic(y)/A 是由 airlight A 歸一化的模糊圖像,右邊第二項是歸一化模糊圖像的暗通道。

天空藍度:此特徵有點類似於我們觀察天空來判斷污染。如果天空是灰色的,我們認為今天空氣質量差。藍度估計利用 RGB 分割來估算。

天空梯度:天空可能因雲層覆蓋而呈現灰色,因此考慮到這種可能性,我們加入該項特徵。通過製作天空區域的掩模來計算梯度,然後計算該區域的拉普拉斯運算元。

熵,RMS 對比度:這些特徵告訴我們圖像中包含的細節。如果有空氣污染,圖像會丟失細節。RMS 對比度被定義為圖像像素強度的標準差。RMS 對比度的等式如下:

造福社會工科生:如何用機器學習打造空氣檢測APP?

式中,Iij 是大小為 MxN 的圖像像素 (i,j) 處的強度,avg(I) 是圖像所有像素的平均強度。因此,對比度和 PM 2.5 成反比關係。可使用以下公式估算熵:

造福社會工科生:如何用機器學習打造空氣檢測APP?

其中 pi 是像素強度等於 i 的概率,M 是圖像的最大強度。隨著 PM 濃度增加,圖像逐漸失去其細節,並且圖像熵降低。因此,它與 PM 2.5 成反比關係。

濕度:通過研究可知,空氣越潮濕,污染程度越高,因為 PM 2.5 會吸收水分並降低能見度。

造福社會工科生:如何用機器學習打造空氣檢測APP?

Skyline 模型

最開始發布應用程序時,人們好奇它是否能夠用來預測室內外的 AQI。我們的模型能夠預測圖像是否包含至少 50%的天空區域,並且通過二元分類器接受超過 50% 的圖像。

我們利用遷移學習創建了這個分類器,並使用 TensorFlow Hub 在我們標記的數據集上重新訓練了模型。數據集由兩類組成:500 張天空區域為 50% 的圖像,540 張不包含天空區域(或低於 50%)的圖像。這些圖像的場景包括房間、辦公室、花園、室外等。我們使用 MobileNet 0.50 架構並在 100 個未見過的樣本上進行測試,準確率達 95%。TF for Poets 有助於圖像再訓練。

再訓練模型的混淆矩陣如下:

造福社會工科生:如何用機器學習打造空氣檢測APP?

造福社會工科生:如何用機器學習打造空氣檢測APP?

左:天空區域大於 50% 的圖像。右:天空區域小於 50% 的圖像。

為每個用戶自定義模型

我們意識到每個用戶都需要自定義的 ML 模型,因為每個智能手機的相機規格不同,為了訓練這樣的模型,我們收集了每個用戶的圖像。

我們決定結合兩個模型的結果,其中一個是基於圖像的模型,一個是使用氣象參數的時間模型。在基於圖像的機器學習模型進行訓練時,使用氣象參數的時間模型有助於實現更高的推理精度,為用戶提供一定結果。而基於圖像的機器學習模型幫助我們為特定用戶自定義模型;從而通過減少估計誤差,提高推理精度。

為每個用戶創建一個小型訓練數據集,需要從 7 張圖像中提取特徵並用於訓練。圖像必須是連續 7 天的,其中一半的圖像包含天空,沒有太陽或其它直接光源。從圖像中提取特徵後,利用特徵訓練回歸模型。該模型是線性的,因為所有圖像特徵或多或少與 PM 2.5 值成線性比例。

在創建訓練數據集和模型之後,再創建用於測試的第二組圖像。一旦數據集具有 7 天的圖像特徵,測試就開始了。如果 7 天的訓練 RMSE 小於 5,則模型將被凍結並發送到 ML Kit,ML Kit 可以從應用程序中下載。如果 RMSE 不小於 5,則會收集更多的訓練數據。

造福社會工科生:如何用機器學習打造空氣檢測APP?

圖像特徵與 PM 2.5 的關係

氣象參數

此外,我們還利用氣象數據,用時間模型基於最近位置的歷史 AQI 來預測 AQI,時間模型補充了基於圖像的模型,提高了推斷的準確性。我們從 2015 年至 2017 年的政府網站收集了德里的氣象數據集,利用 LASSO 優化進行嶺回歸,選擇影響 PM 2.5 水平的關鍵參數。選擇的關鍵參數是:前一小時的 PM 2.5 濃度,各種氣體的濃度,如二氧化氮、二氧化硫、臭氧和露點。然後將數據分開進行訓練和測試。我們使用 2015 年 1 月至 2017 年 1 月的數據進行訓練。使用 2017 年 1 月至 2017 年 6 月的數據進行測試。我們在數據集上的準確率達到了 90%。

造福社會工科生:如何用機器學習打造空氣檢測APP?

折線圖表示 21 天內 3 個模型給出的 RMS 誤差值

以下代碼有助於我們在 Android 上使用 TFLite。下一個挑戰是為每個用戶託管基於自適應圖像創建的模型。為了解決這個問題,我們通過 Firebase ML Kit 找到了一個有趣的解決方案。它允許自定義和自適應的 ML 模型託管在雲端和設備上。

代碼地址:https://codelabs.developers.google.com/codelabs/tensorflow-for-poets-2-tflite/#0

展望未來

我們打算在未來對此應用進行以下改進:

  • 生成夜間拍攝照片的結果。
  • 擴展到其它城市。
  • 使模型在各種天氣條件下都具有魯棒性。
  • 我們開展這個項目的目的是提高人們對污染的意識。我們希望隨著時間的推移,大家都能積極採取措施,共同提高空氣質量。
  • Air Cognizer 應用程序可以從 Play 商店中搜索獲得。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

ICLR 2019 | 與膠囊網路異曲同工:Bengio等提出四元數循環神經網路
盛況堪比iPhone發布會,IBM Think 2019亮點有哪些?

TAG:機器之心 |