摘要:最近有合作公司的項目需要服務端人臉識別的開發,于是就用了公司的人臉識別開發,由于之前對服務端開發介紹的資料比較少,正好這次又做了這個項目,花了幾天的開發,這里就簡單分享一下個人的見解。
最近有合作公司的項目需要服務端人臉識別的開發,于是就用了公司的人臉識別SDK開發,由于之前對服務端開發介紹的資料比較少,正好這次又做了這個項目,花了幾天的開發,這里就簡單分享一下個人的見解。
影響性能的幾個關鍵點 1、人臉檢測人臉檢測接口就是可以把一張圖片的人臉照片圖, 經過FaceEngine的處理,檢測出人人臉框信息。檢測模式有兩種,image模式和video模式,image模式對于人臉檢測準確率比較高,但性能沒有video模式高。video模式適用于在視頻流模式下,在視頻流模式有更快的處理性能和更好的人臉框穩定性。Video模式下,處理一幀圖片在10毫秒內,所以在30幀的視頻中,可以輕松的對每幀進行人臉檢測。
2、特征提取特征提取是在檢測出人臉框的基礎上,尋找出該人臉最具特別性的描述,該描述可被傳輸和保存,在ArcFace2.0中,一個特征占用1032字節,特征提取要花100-150毫秒,所以每幀都做特征提取是不可行的,但借助TrackID,可以做到一張人臉只要提取一次人臉特征。
人臉比對即特征比對,對兩張人臉照片圖分別提取特征,然后進行比較,獲取相似度。該比對的時間是微妙級的,但在實際的應用過程中,往往是幾千個特征甚至幾萬個特征進行比對,所以處理時間要成倍的增加。假設處理一個特征需要3微妙,那么在5萬的特征庫中進行比較,時間就是3*50000=150毫秒
無感是永遠的痛
人臉識別經常用在一些實時性比較高的場合,比如門禁這類系統,客戶往往要求我們要“無感”通過。這些實時性高的系統,通常利用網絡傳輸視頻流,服務器來處理再反饋結果,如果沒有在網絡,內存,CPU上做足夠的優化,往往帶來的就是延遲高,響應慢。
光看上面文字,大家可能沒什么印象。咱們還是來一張圖,一起來直觀的感受一下耗時分析
咱們來算算,假設100個設備,每秒鐘30幀的照片,每幀100K,那么每秒鐘有多少流量?每分鐘有多少?每天呢?
按照標準的算法,每個設備每秒鐘流量:1*30幀*100KB=3MB
換算到分的話3MB*60秒=16MB/分
1天的話16MB*60分鐘*24小時=23040MB/天
100個設備的話23040MB*100=2T/天,也就是每天有T級別流量
哇,這么一算,一般的服務器和網絡怎么受得了
老規矩,咱們看圖來分析下現狀
如上圖,照片實時上傳到服務器,服務器人臉檢測和特征提取,服務器特征比對,排序,結果輸出。
全部交給服務器處理,服務器壓力太了,讓客戶端分擔點吧 。
優化后...
把人臉檢測和特征提取全放客戶端,客戶端每次上傳人臉特征,服務端做特征比對、排序,結果輸出。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/74124.html
摘要:引言使用了免費的人臉識別算法,感覺還是很不錯的,但是初次接觸的話會對一些接口的參數有些疑問的。這里分享一下我對一些參數的驗證結果這里以版本為例,基本一樣,希望能更好的幫助各位接入虹軟的人臉識別算法。 引言 使用了免費的人臉識別算法,感覺還是很不錯的,但是初次接觸的話會對一些接口的參數有些疑問的。這里分享一下我對一些參數的驗證結果(這里以windows版本為例,linux、android...
閱讀 3735·2021-11-22 13:52
閱讀 3615·2019-12-27 12:20
閱讀 2392·2019-08-30 15:55
閱讀 2148·2019-08-30 15:44
閱讀 2265·2019-08-30 13:16
閱讀 579·2019-08-28 18:19
閱讀 1890·2019-08-26 11:58
閱讀 3443·2019-08-26 11:47