1. 程式人生 > >Edge Computing Application: Real-Time Face Recognition Based on Cloudlet

Edge Computing Application: Real-Time Face Recognition Based on Cloudlet

A mobile-cloud architecture provides a practical platform for performing face recognition on a mobile device. Firstly, even though CPU, memory in mobile phones have been greatly improved, resources demanding applications like face recognition still cannot run on mobile phones. Besides, if send face images to clouds, network latency will not be accepted. However, cloudlet provides an accelerator for face recognition and lessens compute burden on mobile phones which have limited computational capabilities and battery life.

I、Background

人臉檢測和識別在日常生活中的應用日漸廣泛,例如:安全監控,人臉識別登入,刷臉支付等。隨著智慧手機的發展,手機APP成為了人臉識別使用最廣泛的地方。在過去的十幾年間,智慧手機經歷了一段飛速發展的時期,觸屏顯示器的使用、從單核處理器到多和處理器、儲存從幾百M擴充套件到幾百G,這些技術的提高和進步使得智慧手機可以執行更加複雜的應用。然而即使如此這樣,智慧手機的計算和儲存能力仍然有限,再加上有限的電池電量,所以一些計算密集型的應用仍然不能在手機上執行,例如:實施人臉檢測和識別。其中一種解決方案就是基於雲端的方法,將計算密集的部分放到雲端執行,然後將結果返回手機。

基於雲端的實時的人臉識別存在以下問題:移動端需要將拍攝整個圖片傳送到雲端。由於雲伺服器一般部署在網路的中心,所以由於網路頻寬的限制和與伺服器的距離,此操作會有一定的延遲,這就與實時的人臉識別這一目標相違背。儘管可以在手機上完成人臉的檢測,然後將檢測的人臉傳送到雲端,但是在一些複雜的圖片中或者在對精度要求非常高的條件下,這種方案也是不可行的。

II、Face Recognition

人臉識別包括三部分:人臉檢測,特徵向量對映,資料庫搜尋。

1、Face Detection

人臉檢測是將有效資訊也就是人臉資訊從原始影象中提取出來。這一步並不涉及人臉資料庫,所以可以將該步驟與後續的步驟分離開來放到任何具有足夠計算能力的平臺上執行。這就使得我們可以使用cloudlet來進行人臉檢測。特徵臉可以用主權分析法獲得(PCA)。使用PCA我們可以在不丟失特徵的前提下大大的減少資訊量。

2、Projection

儘管經過人臉檢測,我們已經將人臉從背景中提取出來了,但是對於人臉識別來說,此時的圖片仍然包含一些多於的資訊。為了進一步減少資訊量,我們可以使用特徵臉的方法將檢測到的人臉對映成一個特徵臉來產生一個特徵向量,這樣可以與候選人臉匹配時減少計算量。

3、Database Search

最後一步是,在人臉資料庫中匹配得到的特徵臉,將最相近的匹配結果返回給手機。

III、The Cloudlet-Based Face Recognition

儘管智慧手機的計算和儲存能力在過去的幾年中不斷進步,但是它們在計算速度,記憶體,儲存,電池和網路頻寬等方面的能力依然十分有限。對一些延遲敏感和要求實時性的應用,為了提高使用者體驗我們應該儘可能的減少程式的響應時間。雲端計算雖然非常強大,但由於其位於網路中心,所以與雲伺服器通訊有較大的延遲。所以Cloudlet的引入既可以解決移動裝置計算和儲存不足的問題,還不會引起難以忍受的網路延遲。關於Cloudlet的介紹可以參考之前的部落格:Types of Edge Computing Implementations——邊緣計算的實現 Cloudlet可以看做是低配版的雲伺服器,它有強大的計算和儲存能力,並且位於網路的邊緣,移動裝置可以經過一跳就到達Cloudlet伺服器。加入Cloudlet後的系統架構圖如下圖所示:

Cloudlet可以提供一下三種方式來減少響應時間:

  • 利於Cloudlet強大的計算能力,可以對資料進行預處理,從而減少上傳到雲端的資料量,資料量下降了,響應時間自然也下降了。

  • 利用Cloudlet強大的儲存能力,將雲伺服器中的一部分資料快取在Cloudlet中,例如:那些經常訪問的資料,這樣,移動裝置可以直接從Cloudlet中獲取所需的資料而不必每次都訪問雲端。

  • Cloudlet可以同時為多臺移動裝置服務,為了最高效率的利用雲伺服器,Cloudlet可以根據每個雲伺服器當前的負載狀態動態的將不同的任務分配到不同的雲伺服器上,實現負載的平衡。

在人臉識別應用中,移動裝置可以將拍攝的整張圖片傳送到Cloudlet,Cloudlet對影象進行預處理,首先進行第一步人臉檢測,然後再進行對映得到特徵向量,然後將特徵向量傳送到雲端資料庫進行匹配。另外,Cloudlet還可以將一部分人臉資料庫快取在本地,這樣就可以直接在Cloudlet中完成整個人臉識別過程。最後,在多臺裝置同時訪問Cloudlet時,Cloudlet可以根據雲伺服器的執行狀況將請求傳送到不同的雲伺服器上實現負載平衡。

參考論文:Powers N, Alling A, Osolinsky K, et al. The Cloudlet Accelerator: Bringing Mobile-Cloud Face Recognition into Real-Time[C]// IEEE GLOBECOM Workshops. IEEE, 2015:1-7.