新聞中心
近幾年來(lái),興起了一股人工智能熱潮,讓人們見(jiàn)到了AI的能力和強(qiáng)大,比如圖像識(shí)別,語(yǔ)音識(shí)別,機(jī)器翻譯,無(wú)人駕駛等等。總體來(lái)說(shuō),AI的門檻還是比較高,不僅要學(xué)會(huì)使用框架實(shí)現(xiàn),更重要的是,需要有一定的數(shù)學(xué)基礎(chǔ),如線性代數(shù),矩陣,微積分等。

創(chuàng)新互聯(lián)服務(wù)項(xiàng)目包括廣州網(wǎng)站建設(shè)、廣州網(wǎng)站制作、廣州網(wǎng)頁(yè)制作以及廣州網(wǎng)絡(luò)營(yíng)銷策劃等。多年來(lái),我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢(shì)、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,廣州網(wǎng)站推廣取得了明顯的社會(huì)效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到廣州省份的部分城市,未來(lái)相信會(huì)繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
幸慶的是,國(guó)內(nèi)外許多大神都已經(jīng)給我們?cè)旌谩拜喿印保覀兛梢灾苯觼?lái)使用某些模型。今天就和大家交流下如何實(shí)現(xiàn)一個(gè)簡(jiǎn)易版的人臉對(duì)比,非常有趣!
整體思路:
- 預(yù)先導(dǎo)入所需要的人臉識(shí)別模型
- 遍歷循環(huán)識(shí)別文件夾里面的圖片,讓模型“記住”人物的樣子
- 輸入一張新的圖像,與前一步文件夾里面的圖片比對(duì),返回最接近的結(jié)果
使用到的第三方模塊和模型:
模塊:os,dlib,glob,numpy
模型:人臉關(guān)鍵點(diǎn)檢測(cè)器,人臉識(shí)別模型
1.導(dǎo)入需要的模塊和模型
這里解釋一下兩個(gè)dat文件:
它們的本質(zhì)是參數(shù)值(即神經(jīng)網(wǎng)絡(luò)的權(quán)重)。人臉識(shí)別算是深度學(xué)習(xí)的一個(gè)應(yīng)用,事先需要經(jīng)過(guò)大量的人臉圖像來(lái)訓(xùn)練。所以一開(kāi)始我們需要去設(shè)計(jì)一個(gè)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),來(lái)“記住”人類的臉。
對(duì)于神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō),即便是同樣的結(jié)構(gòu),不同的參數(shù)也會(huì)導(dǎo)致識(shí)別的東西不一樣。在這里,這兩個(gè)參數(shù)文件就對(duì)應(yīng)了不同的功能(它們對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)也不同):
shape_predictor.dat這個(gè)是為了檢測(cè)人臉的關(guān)鍵點(diǎn),比如眼睛,嘴巴等等;dlib_face_recognition.dat是在前面檢測(cè)關(guān)鍵點(diǎn)的基礎(chǔ)上,生成人臉的特征值。
所以后面使用dlib模塊的時(shí)候,其實(shí)就是相當(dāng)于,調(diào)用了某個(gè)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),再把預(yù)先訓(xùn)練好的參數(shù)傳給我們調(diào)用的神經(jīng)網(wǎng)絡(luò)。順便提一下,在深度學(xué)習(xí)領(lǐng)域中,往往動(dòng)不動(dòng)會(huì)訓(xùn)練出一個(gè)上百M(fèi)的參數(shù)模型出來(lái),是很正常的事。
2.對(duì)訓(xùn)練集進(jìn)行識(shí)別
在這一步中,我們要完成的是,對(duì)圖片文件夾里面的人物圖像,計(jì)算他們的人臉特征,并放到一個(gè)列表里面,為了后面可以和新的圖像進(jìn)行一個(gè)距離計(jì)算。關(guān)鍵地方會(huì)加上注釋,應(yīng)該不難理解,具體實(shí)現(xiàn)為:
當(dāng)你做完這一步之后,輸出列表descriptors看一下,可以看到類似這樣的數(shù)組,每一個(gè)數(shù)組代表的就是每一張圖片的特征量(128維)。然后我們可以使用L2范式(歐式距離),來(lái)計(jì)算兩者間的距離。
舉個(gè)例子,比如經(jīng)過(guò)計(jì)算后,A的特征值是[x1,x2,x3],B的特征值是[y1,y2,y3], C的特征值是[z1,z2,z3],
那么由于A和B更接近,所以會(huì)認(rèn)為A和B更像。想象一下極端情況,如果是同一個(gè)人的兩張不同照片,那么它們的特征值是不是應(yīng)該會(huì)幾乎接近呢?知道了這一點(diǎn),就可以繼續(xù)往下走了。
3.處理待對(duì)比的圖片
其實(shí)是同樣的道理,如法炮制,目的就是算出一個(gè)特征值出來(lái),所以和第二步差不多。然后再順便計(jì)算出新圖片和第二步中每一張圖片的距離,再合成一個(gè)字典類型,排個(gè)序,選出最小值,搞定收工!
4.運(yùn)行看一下
這里我用了一張“斷水流大師兄”林國(guó)斌的照片,識(shí)別的結(jié)果是,果然,是最接近黎明了(嘻嘻,我愛(ài)黎明)。但如果你事先在訓(xùn)練圖像集里面有放入林國(guó)斌的照片,那么出來(lái)的結(jié)果就是林國(guó)斌了。
為什么是黎明呢?我們看一下輸入圖片里的人物***與每個(gè)明星的距離,輸出打印一下:
沒(méi)錯(cuò),他和黎明的距離是最小的,所以和他也最像了!
Python就是這么有趣好玩,可以玩爬蟲,探秘?cái)?shù)據(jù)分析,量化金融來(lái)賺錢,也可以來(lái)撩妹子做自動(dòng)化工作,機(jī)器學(xué)習(xí)領(lǐng)域就更好了,人臉識(shí)別,自然語(yǔ)言處理,數(shù)據(jù)預(yù)測(cè)和挖掘! 【責(zé)任編輯: 龐桂玉 TEL:(010)68476606】
當(dāng)前文章:用Python實(shí)現(xiàn)一個(gè)簡(jiǎn)單的人臉識(shí)別,原來(lái)我和這個(gè)明星如此相似
網(wǎng)站鏈接:http://m.5511xx.com/article/cosecph.html


咨詢
建站咨詢
