人臉檢測(cè)Integral Image思想在流式指標(biāo)計(jì)算的應(yīng)用實(shí)踐

前言

2002年P(guān)aul Viola等人在《Robust Real-time Object Detection》利用積分圖算法,將矩形內(nèi)像素值累加簡(jiǎn)化為四個(gè)點(diǎn)的加減座柱,大大提升訓(xùn)練與檢測(cè)速度晰骑,從而實(shí)現(xiàn)實(shí)時(shí)人臉檢測(cè)。筆者嘗試將該算法思路引入易盾反作弊指標(biāo)計(jì)算趟济,規(guī)避隱含的大量重復(fù)計(jì)算戴差,用空間換時(shí)間的方法提升計(jì)算速度送爸。同時(shí),本文提出一種基于動(dòng)態(tài)時(shí)間系數(shù)的方案,量化時(shí)間與空間的收益比碱璃,實(shí)現(xiàn)性能與空間的Tradeoff弄痹。

人臉檢測(cè)的積分圖計(jì)算

該論文利用Adaboost算法將多個(gè)若分類(lèi)器組合成強(qiáng)分類(lèi)器饭入,每個(gè)迭代需要選擇當(dāng)前誤差最小的弱分類(lèi)器嵌器。假設(shè)圖片窗口為24*24,那么一共有45396個(gè)潛在的haar-like特征值谐丢。每個(gè)特征值的生成爽航,需要計(jì)算矩形范圍內(nèi)所有像素之和。

早在2001年乾忱,SIFT算法尚未發(fā)展成熟讥珍,神經(jīng)網(wǎng)絡(luò)還處于比較寂靜的時(shí)期,當(dāng)時(shí)人臉檢測(cè)算法最大的難度是實(shí)時(shí)計(jì)算窄瘟。為了能夠快速的計(jì)算Haar-like特征數(shù)據(jù)衷佃,Paul Viola等人提出Intergreted Image算法,將矩形內(nèi)所有像素之和簡(jiǎn)化為四個(gè)點(diǎn)的加減蹄葱。

image.png

對(duì)于小圖片而言氏义,求累加值比較快。但是图云,如果圖片比較大惯悠,且每次迭代選擇最優(yōu)分類(lèi)器時(shí)都要計(jì)算矩形和,計(jì)算量將非常大竣况。積分圖顧名思義就是將圖像做一層積分變換克婶。對(duì)于點(diǎn)(x,y)的積分值ii(x,y),等于點(diǎn)(1,1)到點(diǎn)(x,y)矩形范圍內(nèi)的像素值累加丹泉。如圖所示情萤,矩形A的像素之和,等于A+D-B-C摹恨。

指標(biāo)計(jì)算的數(shù)學(xué)模型

實(shí)時(shí)統(tǒng)計(jì)的各維度用戶指標(biāo)數(shù)據(jù)紫岩,最常見(jiàn)的分為:求累加值、去重計(jì)數(shù)睬塌。

求累加值計(jì)算類(lèi)型泉蝌,就是計(jì)算某個(gè)時(shí)間窗口內(nèi)的數(shù)值累加,比如計(jì)算最近一周內(nèi)每個(gè)用戶的消費(fèi)金額總和揩晴。為了簡(jiǎn)化計(jì)算模型勋陪,我們將一個(gè)指標(biāo)計(jì)算窗口分為10個(gè)步長(zhǎng),對(duì)于一個(gè)窗口的求值轉(zhuǎn)化為為最近10個(gè)步長(zhǎng)數(shù)據(jù)累加硫兰。

image.png

去重計(jì)算計(jì)算類(lèi)型诅愚,統(tǒng)計(jì)某個(gè)維度的下高頻統(tǒng)計(jì),比如某個(gè)用戶一周切換ip的個(gè)數(shù)。簡(jiǎn)單理解违孝,就是把最近一周時(shí)間內(nèi)的ip都存下來(lái)刹前,然后去重計(jì)數(shù)。

image.png

積分圖思想引入指標(biāo)計(jì)算

去重累加基本可以完全套用原始積分圖的思想雌桑,將二維降為一位喇喉,原始數(shù)據(jù)的求累加操作轉(zhuǎn)化為兩個(gè)數(shù)的減法。如下圖所示校坑,原需要累加10次拣技,使用積分圖只要減一次,大大降低了計(jì)算次數(shù)耍目。

image.png

求累加值可以用數(shù)據(jù)公式概況

image.png

再進(jìn)一步解釋?zhuān)瑃+1計(jì)算結(jié)果result(t+1)其實(shí)可以分解為t時(shí)刻計(jì)算的結(jié)果result(t) + g(t+1)-g(t-9)膏斤,是不是很熟悉,其實(shí)就是動(dòng)態(tài)規(guī)劃邪驮,將本次計(jì)算的結(jié)果直接帶入下一次的迭代計(jì)算省掉重復(fù)計(jì)算莫辨。近幾年神經(jīng)網(wǎng)絡(luò)很火熱,訓(xùn)練時(shí)用到的反向傳播算法毅访,本質(zhì)上也是一個(gè)意思沮榜,就是把t次迭代求導(dǎo)梯度計(jì)算的結(jié)果,作為中間結(jié)果直接帶入到下一層迭代計(jì)算俺抽。

image.png

去重計(jì)數(shù)的如何解決敞映?

由于去重計(jì)算不想簡(jiǎn)單的累加,需要把多個(gè)集合的數(shù)據(jù)合并磷斧,返回集合的大小振愿。由于步長(zhǎng)間可能有重讀數(shù)據(jù),不能簡(jiǎn)單轉(zhuǎn)換為兩個(gè)點(diǎn)的減法弛饭。于是我們想出一個(gè)改進(jìn)方案冕末,對(duì)于每個(gè)步長(zhǎng)第一個(gè)數(shù)據(jù),去合并前面10各步長(zhǎng)的集合侣颂,標(biāo)記為tmp_result档桃,并將其過(guò)期時(shí)間設(shè)置為一個(gè)步長(zhǎng)。如果步長(zhǎng)內(nèi)后續(xù)有數(shù)據(jù)過(guò)來(lái)憔晒,那么直接把數(shù)據(jù)加到tmp_result,并返回改set的size藻肄,不在需要sunion每個(gè)步長(zhǎng)集合。合并所有步長(zhǎng)操作算法復(fù)雜度是O(n)拒担,往一個(gè)集合里面加一個(gè)數(shù)據(jù)的算法復(fù)雜度是O(1)嘹屯,因此該優(yōu)化方案將計(jì)算整體算法復(fù)雜度從O(n)降到O(1)。

image.png

內(nèi)存與性能的Tradeoff

原始優(yōu)化方案从撼,臨時(shí)set有效期時(shí)間為步長(zhǎng)t州弟,預(yù)期內(nèi)存使用漲一倍。

1.可以考慮有效期時(shí)間,在步長(zhǎng)基礎(chǔ)上乘以一個(gè)系數(shù) ratio 婆翔,0 < ratio <= 1拯杠, expiredtime = ratio * t。每次sunionstore重新設(shè)置相對(duì)過(guò)期時(shí)間啃奴。

2.因此正常情況下潭陪,預(yù)計(jì)內(nèi)存增長(zhǎng)ratio倍,這樣可以調(diào)整ratio大小纺腊,量化犧牲多大內(nèi)存換取多大的rt收益畔咧。ratio可以設(shè)置在配置文件里面茎芭,上線初期可以設(shè)置小一點(diǎn)揖膜,比如0.1,根據(jù)內(nèi)存增長(zhǎng)情況調(diào)整大小梅桩。

3.ratio越大對(duì)內(nèi)存占用越大壹粟, 預(yù)計(jì)rt減少約明顯。那么就要找到合適的系數(shù)ratio宿百,讓內(nèi)存增長(zhǎng)在合理范圍內(nèi)趁仙,同時(shí)獲取比較好的rt收益。

根據(jù)經(jīng)線上經(jīng)驗(yàn)數(shù)據(jù)數(shù)據(jù)量較大時(shí)一次sunion時(shí)間大概50ms垦页,一個(gè)正常情況的時(shí)間大概2ms雀费,可以計(jì)算平均rt和ratio的關(guān)系式,N為一個(gè)步長(zhǎng)內(nèi)的總數(shù)據(jù)量痊焊。

image.png

如下圖所示盏袄,選擇性?xún)r(jià)比最高的elbow point,用相對(duì)比較小的raio獲取比較大的性能提升薄啥。對(duì)N=100來(lái)說(shuō)辕羽,raion等于0.1已經(jīng)有比較好的預(yù)期。如果對(duì)rt有一定的性能要求垄惧,也可以根據(jù)具體的目的來(lái)確定ratio系數(shù)大小刁愿。

image.png

有幾個(gè)好處:

1.正常情況下數(shù)據(jù)比較稀疏,臨時(shí)數(shù)據(jù)不需要存太長(zhǎng)時(shí)間

2.被刷或者壓測(cè)的時(shí)候到逊,一般數(shù)據(jù)會(huì)在短時(shí)間內(nèi)集中過(guò)來(lái)铣口,臨時(shí)數(shù)據(jù)較小的過(guò)期時(shí)間也夠用了

3.ratio的值可以根據(jù)redis內(nèi)存容量的情況調(diào)整,以達(dá)到靈活折中效果

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末觉壶,一起剝皮案震驚了整個(gè)濱河市脑题,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌掰曾,老刑警劉巖旭蠕,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡掏熬,警方通過(guò)查閱死者的電腦和手機(jī)佑稠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)旗芬,“玉大人舌胶,你說(shuō)我怎么就攤上這事〈裕” “怎么了幔嫂?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)誊薄。 經(jīng)常有香客問(wèn)我履恩,道長(zhǎng),這世上最難降的妖魔是什么呢蔫? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任切心,我火速辦了婚禮,結(jié)果婚禮上片吊,老公的妹妹穿的比我還像新娘绽昏。我一直安慰自己,他們只是感情好俏脊,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布全谤。 她就那樣靜靜地躺著,像睡著了一般爷贫。 火紅的嫁衣襯著肌膚如雪认然。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,165評(píng)論 1 299
  • 那天沸久,我揣著相機(jī)與錄音季眷,去河邊找鬼。 笑死卷胯,一個(gè)胖子當(dāng)著我的面吹牛子刮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窑睁,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼挺峡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了担钮?” 一聲冷哼從身側(cè)響起橱赠,我...
    開(kāi)封第一講書(shū)人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎箫津,沒(méi)想到半個(gè)月后狭姨,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體宰啦,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年饼拍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了赡模。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡师抄,死狀恐怖漓柑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情叨吮,我是刑警寧澤辆布,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站茶鉴,受9級(jí)特大地震影響锋玲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蛤铜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一嫩絮、第九天 我趴在偏房一處隱蔽的房頂上張望丛肢。 院中可真熱鬧围肥,春花似錦、人聲如沸蜂怎。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)杠步。三九已至氢伟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間幽歼,已是汗流浹背朵锣。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留甸私,地道東北人诚些。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像皇型,于是被迫代替她去往敵國(guó)和親诬烹。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,097評(píng)論 1 32
  • 前一節(jié)OpenCV For iOS(四-上): 人臉檢測(cè)及分類(lèi)器的訓(xùn)練說(shuō)到分類(lèi)器使用的 LBP Haar,這里補(bǔ)充...
    hehtao閱讀 2,503評(píng)論 0 3
  • 一. 增強(qiáng)學(xué)習(xí)簡(jiǎn)介 1.1 什么是增強(qiáng)學(xué)習(xí)弃鸦? 機(jī)器學(xué)習(xí)的算法可以分為三類(lèi):監(jiān)督學(xué)習(xí)绞吁,非監(jiān)督學(xué)習(xí)和增強(qiáng)學(xué)習(xí)。 增強(qiáng)學(xué)...
    阿阿阿阿毛閱讀 31,148評(píng)論 0 25
  • 對(duì)角線特征在原始的論文中沒(méi)有使用唬格。 即家破,將矩形區(qū)域內(nèi)的紫色區(qū)域數(shù)字之和減去青色區(qū)域內(nèi)數(shù)字之和颜说,得到的就是特征值:[...
    weduoo閱讀 1,337評(píng)論 0 0
  • 1.生涯規(guī)劃教材校對(duì)后給出版社排版2—— 2.美育材料1: 3.本學(xué)期總結(jié)3 小確幸: 成就感 幸福感
    子淇的自由天空閱讀 144評(píng)論 0 0