深度學習技術如何用於密集人羣計數

CNN算法使用基於密度的估計算法來保留空間信息以便在局部和整體進行計數,同時,CNN也可以準確地提取全局和局部特徵。影響人羣計數的因素主要包括:遮擋物、密度差異、透視扭曲和相機角度。

Kesari討論了三種商業案例:大型商場的人羣數量、從照片中統計南極企鵝的數量以及顯微鏡圖像中的生物細胞數量。企鵝數量統計的數據來源於超過100個攝像頭在16個不同的場景中歷經一年時間拍攝的圖像。研究人員使用了開源工具Crowd-sourced annotations對圖像中的企鵝進行了標註。

InfoQ邀請了Kesari對他大會期間的講話進行了採訪,深入地討論了深度學習技術如何被用於密集人羣計數的案例。

InfoQ:您能談一下什麼是深度學習,以及它與傳統機器學習的區別嗎?

Ganes Kesari:機器學習(ML)的目的是讓程序學習如何去解決問題,而不是簡單地執行預定的邏輯。通過這種學習,程序可以在未見過的場景下獲得預期的輸出。例如,通過對過去六個月股票數據的分析可以預測明天的股價。或者判斷下個月是否會有大的波動。

當深度學習被歸入機器學習方法的大家庭中時,它與傳統機器學習方法是有很大區別的。拿一個人臉檢測系統舉例。使用傳統的機器學習方法,我們可以識別並提取關鍵特徵(眼鏡、鼻子和下巴等)。然後讓軟件只對這些關鍵部位的特徵進行誇身份的匹配。

但是在深度學習中,我們向模型展示數百張只有身份信息標註的人臉圖像,然後讓機器明白真正獨一無二的點是什麼(面頰的曲率或者其他人類無法注意到的細微的部分)。機器會決定哪些屬性對於人臉識別是足夠重要的(這一過程也稱爲特徵檢測),並且整個數據流經模型的過程會迭代成百數千次(稱爲Epoch)。

深度學習技術使得機器學習在過去的十年大規模的席捲全球,尤其是在圖像、視頻和音頻領域有效地解決了大量的問題。它被用於結構化的數據處理,並且已經與我們的生活息息相關,例如Facebook的好友推薦以及很多新聞推送程序的文章推薦系統。

InfoQ:您能簡要介紹一下人羣計數案例以及你們在該方面使用的算法和技術嗎?

Kesari:人羣計數可以被廣泛地用於多種實際場景,例如統計人羣、動物、物體或其他實體的數量。我們展示了其中的三種案例:

  • 統計人數:人羣計數在零售行業有巨大的潛力,它可以有效地分析零售店中的顧客數量、預測銷售情況估計營銷活動的成功。
  • 統計企鵝數量:南極的研究人員正在研究全球氣候變暖以及人類活動對企鵝數量的影響。得益於人羣計數算法,數百萬張通過隱藏式相機捕捉到的圖像都可以用於統計數量。
  • 統計生物細胞數量:藥物特性描述是新藥研發過程中的關鍵步驟,科學家需要通過對顯微圖像分析得到不同類型細胞的數量。這一痛苦地手動過程可以被自動化的計數算法所代替。

在人羣計數方面有一些已發表的工作。傳統算法使用基於檢測的方法,例如,通過掃描圖像來識別人羣或他們的頭。通過在所有匹配的目標周圍繪製邊界框來預測總數。

上述的這類方法會被很多不利因素影響:1)被遮擋或者背對攝像頭的人數無法被統計,2)透視扭曲或前後位置的人臉大小不一致,3)在同一幅圖中,人羣密度的分佈不均勻(例如有些區域人羣密度異常地高),4)針對不同攝像機角度的模型需要獨立地訓練。

基於密度的算法通過將不同大小的人近似爲不同的簇,可以解決上述的這些挑戰。已發表的論文中的實驗證明了這種算法的優越性,這些實驗使用了一些主流框架,例如級聯CNN、多列CNN等。

InfoQ:您能簡述一下級聯卷積神經網絡(Cascade CNN)爲何有助於解決人羣計數這類問題的嗎?

Kesari:我們使用了級聯CNN模型解決上述的三種案例中遇到的多種不利因素。級聯CNN結構的兩個關鍵階段是:1)第一階段也稱爲“高層級先驗階段”,這一階段在大範圍內給出整張圖像人數的粗略估計。2)第二階段進行密度估計,同時使用前一階段的結果生成更加細粒度的密度圖。(如下圖所示)

這些密度圖可以幫助預測圖像中目標的數量。級聯CNN的結構可以無差別地用於統計人、動物甚至是具有自定義外形的實體的數量。更多的技術細節可以參閱論文原文:https://arxiv.org/pdf/1707.09605.pdf

InfoQ:您能更詳細地討論一下企鵝跟蹤案例中的技術細節嗎?你們都遇到了什麼樣的挑戰以及其解決方案?

Kesari:當然。在這個案例中,我們需要對不同時間點拍攝的企鵝圖像數量進行統計。這是一項由牛津大學提出的項目,Penguin watch 網站發佈了這個項目的衆包以獲取數據的標註。世界各地的志願者們對這個數千張圖像進行了標註以幫助我們的模型學習企鵝看起來究竟是什麼樣的。現在,這個項目的挑戰是模型需要對不同曝光率下的企鵝照片進行識別,一些圖片中企鵝是高密度聚集的,一些圖片中企鵝是很難被發現的。

Gramener 與微軟AI地球進行了合作來解決這個挑戰。我們使用了Pytorch來建立級聯CNN框架。在選取Adam優化器的情況下,我們使用了很低的學習率和動量。我們使用均值絕對誤差(MAE)和均方誤差(MSE)。我們在配備了V100的NC6 V3上訓練了3-4天共200個epoch。最終模型的MAE約等於10,我們將模型配置爲了微軟地球AI的一個API。

InfoQ:在您的報告中提到了生物細胞數量案例。這和其他AI模型有什麼不同嗎?

Kesari:我們爲製藥客戶提供了生物細胞計數問題的解決方案。雖然程序的技術部分使用了與企鵝類似的模型結構,但是在一些細節方面有幾點不同。首先,數據量爲數百級,這與人或企鵝可用的數萬或數十萬級的標記數據不同。大多數標註工作必須從頭開始,以使機器可以理解。

另一方面,細胞的形狀使得這一問題更難處理。任何看起來接近圓形的東西都有可能被認爲是相同的細胞類型。儘管這對人類來說是一種主觀的意見,對機器而言這是非常具有挑戰性的。並且,顯微圖像具有無法計數的無關部分,因此我們必須進行異常值檢測以排除這些區域。

爲了使這個方法可行,模型的結果必須經過審覈並可以通過人爲糾正。一個很大的挑戰是找到從密度圖統計的每個形狀的想座標(x,y)。我們使用輪廓檢測方法來找到模型統計的細胞,然後將它們顯示在UI上以供進一步手動糾錯。

InfoQ:關於您項目中的更多細節,讀者們應該如何在自己的開發環境中嘗試呢?

Kesari:我們和微軟AI地球的大部分工作都使用了開放API和筆記的形式公開,以方便NGO和研究人員直接重用模型。關於企鵝計數的項目還沒有產品化,但是在物種分類方面有其他類似的深度學習工作。

我們最近剛完成了一個開源數據科學平臺——Gramex。這個可視化分析平臺包括數據處理庫、計算組件庫、可視化圖表庫,它可以幫助使用者快速高效建立數據應用。

查看英文鏈接Convolutional Neural Network Deep Learning Techniques for Crowd Counting

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章