科普人臉識(shí)別算法及系統(tǒng)
人臉識(shí)別的目標(biāo)
總結(jié)兩點(diǎn),第一,認(rèn)出同一個(gè)人,不管你的狀態(tài)怎么變,都能知道你就是你。第二、區(qū)分不同的人,可能這兩個(gè)人長(zhǎng)得很像,或者兩個(gè)人都化妝了,但不管狀態(tài)怎么變化,人臉識(shí)別都能知道這是兩個(gè)不同的人。
人臉識(shí)別本身是作為生物識(shí)別技術(shù)的一種,主要是提供身份認(rèn)證的手段,從精度上來講,人臉識(shí)別并不是最高的。人臉識(shí)別受到很多其他條件的影響,比如說光照。人臉識(shí)別的好處在于一般不需要用戶做太多的配合,現(xiàn)在各個(gè)地方的監(jiān)控?cái)z像頭,包括電腦的攝像頭、手機(jī)各種視頻輸入設(shè)備,照相設(shè)備已經(jīng)非常非常的普及,用這種可見光的設(shè)備就可以做人臉識(shí)別。所以在引入人臉識(shí)別的時(shí)候可能新增加的投資是非常少的,這是它的優(yōu)勢(shì)。
人臉識(shí)別的流程
人臉識(shí)別的核心流程,所謂核心流程就是不管在什么樣的人臉識(shí)別系統(tǒng)里面基本上都有這個(gè)流程。首先人臉檢測(cè),第二步做人臉對(duì)齊,第三步做特征提取,這是對(duì)每一張照片都要做的這三步,當(dāng)要去做比對(duì)的時(shí)候就把提取的特征做比對(duì),然后確定這兩個(gè)臉是不是屬于同一個(gè)人。
人臉檢測(cè)
人臉檢測(cè)即判斷一個(gè)大的場(chǎng)景中是否有人臉,并且要找到這個(gè)人臉的位置把它切出來。它是屬于物體檢測(cè)技術(shù)的一種,是整個(gè)人臉感知任務(wù)的基礎(chǔ)。人臉檢測(cè)的基本方法就是在圖象金字塔上滑動(dòng)窗口,用分類器選擇候選窗口,用回歸模型進(jìn)行位置修正。
上面畫的三個(gè)窗口,一個(gè)是0.3倍、0.6倍、1.0倍,當(dāng)人臉位置不定,大小無法識(shí)別時(shí)可采用此技術(shù),讓這個(gè)圖本身變得大小不同,而滑動(dòng)窗口的大小相同。深度網(wǎng)絡(luò)一般輸入的圖象大小是固定的,那么前面的滑動(dòng)窗口基本上也是固定的。為了讓固定的滑動(dòng)窗口能夠覆蓋不同的范圍的話,就對(duì)整個(gè)圖的大小進(jìn)行縮放,取不同的比例。這邊畫0.3、0.6、1.0只是舉例,實(shí)際用的時(shí)候還可以有很多其他不同的倍數(shù)。
分類器是指看滑動(dòng)窗口每一個(gè)滑到的位置去判斷是否是人臉,因?yàn)榛瑒?dòng)窗口滑動(dòng)到的位置有可能不包含整個(gè)人臉,或者說它比整個(gè)人臉大一點(diǎn)。為了找到的人臉能夠更加精確,把滑動(dòng)窗口放到回歸模型里,即可幫助修正人臉檢測(cè)的精確度。
輸入的是滑動(dòng)窗口,輸出時(shí)如果里面有人臉,應(yīng)該向哪邊修正,以及它需要修正多少,所以Δx, Δy, Δw, Δh,就是它的坐標(biāo)以及它的寬和高大概修正多少。有了修正的量和用分類器確定它是人臉的窗口以后,把這兩個(gè)結(jié)合在一起,就能得到一個(gè)比較精確的人臉位置。
以上是人臉檢測(cè)的流程,同時(shí)也可適用于其他的物體檢測(cè)
人臉檢測(cè)的評(píng)價(jià)指標(biāo)
不管什么樣的模型都是分速度和精度兩個(gè)方面
一、速度
(1)速度是指定分辨率下的檢測(cè)速度
之所以指定分辨率,是因?yàn)榛瑒?dòng)窗口每滑到一個(gè)位置都要做一次分類和回歸的判斷,所以當(dāng)圖越大,需要做檢測(cè)判斷的窗口數(shù)可能就越多,整個(gè)人臉檢測(cè)花的時(shí)間就越長(zhǎng)。
因此評(píng)價(jià)一個(gè)算法或者模型的好壞,就得在固定的分辨率下面去看它的檢測(cè)速度到底是多少。一般來說這個(gè)檢測(cè)速度會(huì)是什么樣的值,可能就是做一張圖的人臉檢測(cè)所花費(fèi)的時(shí)間,比如說100毫秒、200毫秒還是50毫秒、30毫秒之類的。
另外一種表示速度的方法就是多少fps,現(xiàn)在一般的網(wǎng)絡(luò)攝像頭往往是25fps或者30fps,意思是每秒鐘能處理多少張圖,用fps的好處可以判斷人臉檢測(cè)是否可以做到實(shí)時(shí)檢測(cè),只要人臉檢測(cè)的fps數(shù)大于攝像頭的fps數(shù)就能夠做到實(shí)時(shí),否則就做不到。
(2)速度是否受統(tǒng)一個(gè)畫面中的人臉個(gè)數(shù)影響
從我們實(shí)際操作來說,大部分來說是不受影響的,因?yàn)橹饕鞘芑瑒?dòng)窗口的次數(shù)影響,命中的次數(shù)倒不是特別重,但是稍微有那么一點(diǎn)影響。
二、精度
精度,基本上用召回率、誤檢率、ROC曲線這些來判定。召回率即指這張照片是人臉,真正的模型判斷出來是人臉這個(gè)比例,誤檢率、負(fù)樣本錯(cuò)誤率即指這張照片不是人臉,但是誤判斷成人臉的比例。
ACC精度
ACC計(jì)算方法是正確的樣本數(shù)除以總的樣本數(shù),比如說拿一萬張照片去做人臉檢測(cè),這一萬張照片里面有的是有人臉的,有的是沒有人臉的。然后判斷對(duì)的比例是多少。
但是這個(gè)精度存在一個(gè)問題,如果用它去判斷,它對(duì)于正負(fù)樣本的比例是完全無關(guān)的,即他不關(guān)心在正樣本里面正確率是多少,在負(fù)樣本里面正確率是多少,只關(guān)心總的。當(dāng)此模型精確度是90%時(shí),別人不知道在正負(fù)樣本上面區(qū)別是多少。包括分類,包括回歸,一般來說分類模型,會(huì)先用一個(gè)回歸得到一個(gè)所謂置信度,置信度大于多少數(shù)值時(shí)認(rèn)為他是,然后置信度小于同一個(gè)數(shù)值時(shí)認(rèn)為他不是。
ACC統(tǒng)計(jì)模型是可調(diào)節(jié)的,即調(diào)整置信度,精度就會(huì)變化。
所以ACC值本身受樣本的比例影響很大,所以用它來表征一個(gè)模型的好壞的話有點(diǎn)問題,當(dāng)測(cè)試指標(biāo)說達(dá)到了百分之九十九點(diǎn)幾,單看這個(gè)值,是比較容易受騙或者說這個(gè)統(tǒng)計(jì)是有偏的。為了解決這個(gè)問題,一般現(xiàn)在會(huì)用一個(gè)叫做ROC的曲線來表征這個(gè)模型的精度
ROC受試者工作特征曲線
橫坐標(biāo):FPR(False Positive Rate)即負(fù)樣本錯(cuò)誤率
縱坐標(biāo):TPR(True Positive Rate)即正樣本正確率
可以區(qū)分算法在正樣本和負(fù)樣本上的性能,并且曲線形狀與正負(fù)樣本比例無關(guān)。
ROC(Receiver Operating Characteristic)曲線就是把橫坐標(biāo)、縱坐標(biāo)用這個(gè)負(fù)樣本錯(cuò)誤率和正樣本正確率兩個(gè)標(biāo)出來,這樣的話同一個(gè)模型在這個(gè)圖上面看到的不是一個(gè)點(diǎn),或者說不是一個(gè)單一的數(shù)據(jù),而是一條線。這條線即置信度的閾值,你調(diào)的越高就越嚴(yán)格,越低就越不嚴(yán)格。在這個(gè)上面的話就能反應(yīng)出這個(gè)置信度的閾值的變化對(duì)它的影響。
以后大家最好不要直接問說你的精度是多少,而是看ROC曲線,這樣更容易判斷模型的能力到底怎么樣。
人臉對(duì)齊
人臉對(duì)齊的目的使人臉紋理盡可能調(diào)整到標(biāo)準(zhǔn)位置,降低人臉識(shí)別器的難度。
為了用人為的方式降低它的難度,就可以先把它做對(duì)齊,就是讓檢測(cè)到這個(gè)人的眼睛、鼻子、嘴巴全部歸到同一個(gè)位置去,這樣的話模型在比對(duì)的時(shí)候,就只要找同樣位置附近,互相是不是相同還是相近,還是有很大不同。所以就是會(huì)做對(duì)齊的這么一步,這一步的話,我們現(xiàn)在常用的做法就是二維的做法,就是到這個(gè)圖里面去找到關(guān)鍵特征點(diǎn),一般現(xiàn)在就是五點(diǎn)的、十九點(diǎn)的,六十幾個(gè)點(diǎn),八十幾個(gè)點(diǎn)的各種都有。但人臉識(shí)別的話五個(gè)基本上就夠了。
這五個(gè)點(diǎn)之外的其他點(diǎn)的圖象,可以認(rèn)為它是做一個(gè)類似于插值的運(yùn)算,然后把它貼到那個(gè)位置去,做完了以后,就可以送到后面的人臉識(shí)別器里面去做識(shí)別了。這個(gè)是一般的做法,還有更前沿的做法,有的研究機(jī)構(gòu)在使用所謂的3D人臉對(duì)齊,就是我告訴你說一張正臉是什么樣子的,比如旋轉(zhuǎn)45度的時(shí)候長(zhǎng)什么樣子,那么用這種圖給他訓(xùn)練過了以后,他就知道我看到一張向左右旋轉(zhuǎn)了45度這張圖,大概轉(zhuǎn)正了以后有很大可能性是什么樣子的,這個(gè)模型能去猜。
人臉特征提取算法
以前的傳統(tǒng)方法是所謂的局部紋理模型,全局紋理模型,形狀回歸模型之類的這些都有?,F(xiàn)在比較流行的就是用深度的卷積神經(jīng)網(wǎng)絡(luò)或者循環(huán)神經(jīng)網(wǎng)絡(luò),或者3DMM參數(shù)的卷積神經(jīng)網(wǎng)絡(luò)。所謂3DMM參數(shù)的話就是有三維的信息在里面,然后有級(jí)聯(lián)的深度神經(jīng)網(wǎng)絡(luò)。
級(jí)聯(lián)的深度神經(jīng)網(wǎng)絡(luò),即拿到人臉,首先要推測(cè)五個(gè)點(diǎn)的位置,如果用一個(gè)單一的模型一次就要做到這一點(diǎn)的話,這個(gè)模型會(huì)需要很復(fù)雜。
但是怎么能夠降低這個(gè)模型的復(fù)雜程度呢?
即做多次輸入,第一次輸入這個(gè)網(wǎng)絡(luò)以后先做一次推測(cè),這個(gè)推測(cè)是一個(gè)可接受的不那么精確的推測(cè),大概知道人臉的五個(gè)點(diǎn)在哪。然后把這五個(gè)點(diǎn)和那張?jiān)瓐D放到第二個(gè)網(wǎng)絡(luò)里面去,得到大概的修正量,有了一個(gè)基礎(chǔ)五個(gè)點(diǎn)以后再求修正量的話會(huì)比直接從原圖上面找精確的五個(gè)點(diǎn)要稍微容易一些。所以用這種逐步求精的方式用多個(gè)網(wǎng)絡(luò)級(jí)聯(lián)在一起就能夠做到一個(gè)速度跟精度的比較好的平衡,實(shí)際現(xiàn)在做的時(shí)候基本上用兩層就大概差不多了。
人臉特征點(diǎn)提取的評(píng)價(jià)指標(biāo)
NRMSE(Normalized Root Mean Square Error)即歸一化均方根誤差
用于衡量各個(gè)特征點(diǎn)坐標(biāo)與標(biāo)注坐標(biāo)的差距。
精度
為了能夠讓不同大小的人臉也能夠放在一起互相比較,采用統(tǒng)計(jì)學(xué)上叫做歸一化均方根誤差。舉個(gè)栗子:我們?cè)诩埳袭嬑鍌€(gè)點(diǎn),然后讓機(jī)器來說這五個(gè)點(diǎn)的相互距離,所給出的數(shù)值越接近真實(shí)距離,則說明預(yù)測(cè)越精準(zhǔn)。一般來說預(yù)測(cè)的數(shù)值一定會(huì)有些偏差,那么怎么表述這個(gè)精度值呢?我們通常就用距離的平均值或者均方根值來表達(dá)。然而問題來了,相同的機(jī)器預(yù)測(cè)不同大小的圖像,精度值會(huì)顯得不同,因?yàn)樵酱蟮膱D誤差的絕對(duì)值會(huì)越高。換到不同大小的人臉道理也是一樣。因此,我們的解決辦法是把人臉本來的尺寸數(shù)值考慮進(jìn)去,一般分母是人的雙眼距離或者人臉的對(duì)角線距離,再用距離差值除以雙眼之間的距離,或者是除以人臉的對(duì)角線,這樣的話就可以得到一個(gè)基本上不隨著人臉大小而變化的一個(gè)值,用它來評(píng)測(cè)。
人臉比對(duì)
(1)目的:即判斷已經(jīng)對(duì)齊好的兩張人臉,是否屬于同一個(gè)人
(2)難點(diǎn):同一張人臉在不同狀況下會(huì)呈現(xiàn)不同的狀態(tài),比如說特別受光照、煙霧、化妝等等的影響。第二個(gè)就是映射到二維照片上的不同參數(shù)造成的,所謂映射到二維參數(shù)上就是說本來人臉長(zhǎng)這樣,拍攝設(shè)備去拍的時(shí)候,跟他呈現(xiàn)的角度,離他的距離,對(duì)焦是否準(zhǔn)確,拍攝視角等等光線積淀這個(gè)都有影響,會(huì)讓同一個(gè)人臉產(chǎn)生出不同的狀態(tài)。第三就是年齡和整容的影響。
人臉比對(duì)的方法
(1)傳統(tǒng)方法
1、由人工去抽取一些特征HOG、SIFT、小波變換等,抽取的這種特征一般來說可能是要固定參數(shù),即不需要訓(xùn)練,不需要學(xué)習(xí),使用一套固定的算法,再對(duì)這個(gè)特征進(jìn)行比較。
(2)深度方法
主流的方法就是深度的方法,即深度卷積神經(jīng)網(wǎng)絡(luò),這個(gè)網(wǎng)絡(luò)一般來說是用DCNN去代替前面的那些特征抽取方法,即把一張圖上面,一個(gè)人臉上面的一些各個(gè)不同的特征弄出來,DCNN里面有很多參數(shù),這個(gè)參數(shù)是學(xué)出來的,不是人告訴他的,學(xué)出來的話相當(dāng)于能比人總結(jié)出來的這些會(huì)更好。
然后得到的一組特征一般現(xiàn)在的維度可能是128維、256維或者512維、1024維,然后做對(duì)比. 判斷特征向量之間的距離,一般使用歐氏距離或余弦相似度。
人臉比對(duì)的評(píng)價(jià)指標(biāo)同樣分為速度與精度,速度包括單張人臉特征向量計(jì)算時(shí)間和比對(duì)速度。精度包括ACC和ROC。由于前面已介紹過,這里著重介紹一下比對(duì)速度。
普通比對(duì)是一個(gè)簡(jiǎn)單的運(yùn)算,是做兩個(gè)點(diǎn)的距離,可能只需要去做一次內(nèi)積,就是兩個(gè)向量的內(nèi)積,但當(dāng)人臉識(shí)別遇到1:N對(duì)比時(shí),當(dāng)那個(gè)N庫很大的時(shí)候,拿到一張照片要去N庫里面做搜索的時(shí)候,搜索的次數(shù)會(huì)非常多,比如N庫一百萬,可能要搜索一百萬次,一百萬次的話就相當(dāng)于要做一百萬次的比對(duì),這個(gè)時(shí)候的話對(duì)于總時(shí)間還是有要求的,所以就會(huì)有各種各樣的技術(shù)對(duì)這種比對(duì)進(jìn)行加速。
人臉識(shí)別相關(guān)的其他的算法
主要有人臉追蹤、質(zhì)量評(píng)估、活體識(shí)別。
● 人臉追蹤
在監(jiān)控等視頻人臉識(shí)別的場(chǎng)景下,如果對(duì)走過的同一個(gè)人的每一幀都執(zhí)行整套人臉識(shí)別流程,不僅浪費(fèi)計(jì)算資源,而且有可能因?yàn)橐恍┑唾|(zhì)量的幀造成誤識(shí)別,所以有必要判斷哪些人臉是屬于同一個(gè)人的。并挑選出合適的照片做識(shí)別,大大提升模型的整體性能。
現(xiàn)在不止人臉追蹤,還有各種各樣不同的物體追蹤或者是車輛追蹤等等,都會(huì)使用到追蹤算法,此類算法不依賴于或不會(huì)一直依賴于檢測(cè)。例如在最開始檢測(cè)到一個(gè)物體后,接下來就完全不檢測(cè)了,只通過追蹤算法去做。同時(shí)為了做到非常高精度,為了做到不丟失,每一次的追蹤花的時(shí)間是比較多的。
為防止追蹤到的人臉和人臉識(shí)別器范圍不吻合,一般來說還是會(huì)拿人臉檢測(cè)器做一次檢測(cè),這種檢測(cè)方法是依賴于人臉檢測(cè)做的比較輕量化的追蹤,在某些場(chǎng)景下,可以做到一個(gè)速度和質(zhì)量上面的一個(gè)平衡。
這種檢測(cè)方法叫做Tracking by Detection,即每一幀仍然去做人臉檢測(cè),檢測(cè)到人臉以后,根據(jù)每一個(gè)人臉的四個(gè)值,即他的坐標(biāo)位置,他的寬、高,去比較前后兩幀的人臉的位置和大小,大概可以推測(cè)出這兩個(gè)人臉到底是不是屬于同一個(gè)移動(dòng)物體。
● 可選的間隔全畫面檢測(cè)
是指當(dāng)去做Tracking by Detection的時(shí)候,前后兩幀,一種做法是都做全畫面的檢測(cè),所謂全畫面檢測(cè)即把全畫面全部掃一遍,但是此方法耗時(shí)嚴(yán)重,因此有時(shí)會(huì)采用另一種方法,間隔幾幀做一次全畫面,一般預(yù)測(cè)一個(gè)下一幀,位置變化不會(huì)太多,只要把前一幀的位置上下左右稍微擴(kuò)大一點(diǎn),再去檢測(cè)一次,往往大概率機(jī)會(huì)是可以檢測(cè)到,大多數(shù)的幀可以跳。
為什么一定要間隔幾幀再做一次全畫面檢測(cè)呢?
是為防止有新的物體進(jìn)來,如果只根據(jù)前一個(gè)物體的位置來找的話,可能有新的物體進(jìn)來的時(shí)候就沒檢測(cè)到,防止這種情況的話可以隔個(gè)五幀、十幀再去做一次全畫面檢測(cè)。
● 人臉質(zhì)量評(píng)估
由于人臉識(shí)別器訓(xùn)練數(shù)據(jù)等的限制,不可能對(duì)所有狀態(tài)下的人臉性能都很好,質(zhì)量評(píng)估會(huì)判斷檢測(cè)出來的人臉與識(shí)別器特性的吻合程度,只選取吻合程度高的人臉?biāo)腿プ鲎R(shí)別,提高系統(tǒng)的整體性能。
人臉質(zhì)量評(píng)估包含以下4要素
① 人臉的大小,選用太小的臉做識(shí)別效果會(huì)大打折扣。
② 人臉姿態(tài),就是指三個(gè)軸方向的旋轉(zhuǎn)角度,一般來說跟識(shí)別器訓(xùn)練用的數(shù)據(jù)有關(guān)。如果訓(xùn)練的時(shí)候大部分用的是姿態(tài)不太大的人臉的話,在真正做識(shí)別的時(shí)候也最好不要挑那種偏轉(zhuǎn)很大的,否則會(huì)不適用。
③ 模糊程度,此要素很重要,如果照片已經(jīng)丟失掉信息了,再做識(shí)別會(huì)存在問題。
④ 遮擋,如果眼睛、鼻子等被蓋住了,這塊的特征就無法拿到,或者說拿到的是錯(cuò)的,是一個(gè)遮擋物的特征,對(duì)后面的識(shí)別有影響。如果能判斷出來是被遮擋的,然后棄用,或者做一些特殊處理,例如不把它放到識(shí)別模型里面去。
● 活體識(shí)別
這是所有的人臉識(shí)別系統(tǒng)都會(huì)遇到的問題,只識(shí)別人臉的話,照片也可以蒙混過關(guān)。為了讓系統(tǒng)不被攻擊就會(huì)去做一些判斷,這個(gè)到底是一個(gè)真臉還是假臉。
基本上目前的方法大概有三種:
① 傳統(tǒng)的動(dòng)態(tài)識(shí)別,很多銀行的取款機(jī)會(huì)有這種要求用戶做一些配合,例如讓用戶眨眼、轉(zhuǎn)頭,以此來判斷用戶是不是根據(jù)眨眼、轉(zhuǎn)頭做了同樣的配合。因此動(dòng)態(tài)識(shí)別存在一個(gè)問題,即需要用戶的配合較多,這樣用戶使用體驗(yàn)會(huì)有點(diǎn)不好。
② 靜態(tài)識(shí)別,即不根據(jù)動(dòng)作來判斷,只是根據(jù)這個(gè)照片本身來判斷是否是真實(shí)人臉,還是一個(gè)假臉。它的根據(jù)是一般現(xiàn)在用的攻擊的手段,是比較方便的,例如拿手機(jī),或者是拿一個(gè)顯示屏,就用屏幕做攻擊。
這種屏幕的發(fā)光能力跟實(shí)際的光照條件下面人臉的發(fā)光能力是不一樣的,例如顯示器有1600萬發(fā)色數(shù),是無法做到可見光的發(fā)光能力,即全部是連續(xù)的所有的波段都能發(fā)出來。因此當(dāng)再對(duì)這種屏幕做拍攝時(shí),和真正自然環(huán)境下面的一次成像對(duì)比,人眼也能看出來會(huì)有一些變化,會(huì)有一些不自然。通過這種不自然放到一個(gè)模型里面訓(xùn)練過以后,還是可以根據(jù)這種細(xì)微的差別判斷出來到底是不是真臉。
③ 立體識(shí)別,如果用兩個(gè)攝像機(jī)或者一個(gè)帶深度信息的攝像機(jī),就能知道拍到的各個(gè)點(diǎn)離攝像機(jī)的距離是多少,相當(dāng)于對(duì)人物做3D成像,這樣用一個(gè)屏幕去拍攝,屏幕肯定是個(gè)平面,意識(shí)到是一個(gè)平面的,平面的肯定不是一個(gè)真的人。這個(gè)就是用立體的識(shí)別方式去排除平面人臉。
人臉識(shí)別的系統(tǒng)構(gòu)成
首先做一個(gè)分類,從對(duì)比形式來看,有1:1的識(shí)別系統(tǒng),1:N的識(shí)別系統(tǒng);從對(duì)比的對(duì)象來看,有照片的比對(duì)系統(tǒng)以及視頻的比對(duì)系統(tǒng);按部署形式的話,有私有部署,有云部署或者移動(dòng)設(shè)備部署。
照片1:1的識(shí)別系統(tǒng)
1:1的識(shí)別系統(tǒng)最簡(jiǎn)單,拿兩張照片,每一張照片去生成一個(gè)特征向量,然后去比一下這兩個(gè)特征向量是不是同一個(gè)人,就可以識(shí)別了。
照片1:N的識(shí)別系統(tǒng)
1:N的識(shí)別系統(tǒng),即判斷照片素材在不在一個(gè)樣本庫里。此樣本庫是預(yù)先準(zhǔn)備好的,可能會(huì)有白名單或者黑名單,里面有每個(gè)人的一張照片,拿這張照片生成了一系列的特征向量。這個(gè)作為一個(gè)樣本庫,用上傳的照片跟樣本庫里面的所有的特征去比,看跟哪個(gè)最像,就認(rèn)為他是這個(gè)人,這個(gè)是1:N的識(shí)別系統(tǒng)。
視頻1:1的識(shí)別系統(tǒng)
視頻1:1識(shí)別系統(tǒng),和照片的1:1系統(tǒng)類似,但是比對(duì)的對(duì)象不是照片,而是視頻流。拿到視頻流以后會(huì)做檢測(cè),做追蹤,做質(zhì)量評(píng)估,等拿到合適的照片以后才去做比對(duì)。
視頻1:N的識(shí)別系統(tǒng)
視頻1:N適配系統(tǒng)和1:N照片的系統(tǒng)類似,只不過拿來做識(shí)別的是視頻流,同樣也是要做檢測(cè)、追蹤、質(zhì)量評(píng)估。
一般所謂系統(tǒng)構(gòu)成不一定是人臉識(shí)別系統(tǒng),各種AI系統(tǒng)大概都會(huì)如此。首先是計(jì)算資源層,在CPU或GPU上運(yùn)行,在GPU上運(yùn)行可能還有CUDA,CUDN等的支持。
其次是運(yùn)算工具層,包括深度學(xué)習(xí)前向網(wǎng)絡(luò)運(yùn)算庫、矩陣運(yùn)算庫和圖象處理工具庫。由于不可能每一個(gè)做算法的人都自己去寫數(shù)據(jù)運(yùn)算,因此都會(huì)用一些已有的數(shù)據(jù)運(yùn)算庫,例如TensorFlow或者M(jìn)XNET或者Caffe等都會(huì)提供,或者自己寫一套也是可以。