版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第8章人臉識(shí)別:機(jī)器也認(rèn)識(shí)你
課后習(xí)題答案
一、考考你
1.一個(gè)完整的人臉識(shí)別系統(tǒng)主要包含人臉圖像采集和檢測(cè)、B、人臉圖像特征提取
和人臉識(shí)別四個(gè)部分。
A.人臉?lè)诸惼鰾.人臉圖像預(yù)處理
C.人臉數(shù)據(jù)獲取D.人臉模型訓(xùn)練
2.刷臉支付比傳統(tǒng)密碼支付的突出優(yōu)勢(shì)是」
A.更快捷方便B.更安全
C.更容易實(shí)現(xiàn)D.成本更低
3.OpenCV庫(kù)主要應(yīng)用A領(lǐng)域的人工智能開(kāi)發(fā)。
A.計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)B.人臉識(shí)別
C.深度神經(jīng)網(wǎng)絡(luò)D.圖像處理
4.下列OPenCV的哪個(gè)函數(shù)可定義一個(gè)人臉檢測(cè)器4。
A.CascadeClassifier()B.detectMultiScale()
C.predict()D.LBPHFaceRecognizejCreate()
5.關(guān)于百度PaddleHub錯(cuò)誤的說(shuō)法是D。
A.它是一個(gè)預(yù)訓(xùn)練模型管理工具,支持一鍵預(yù)測(cè)
B.它涵蓋了圖像分類、目標(biāo)檢測(cè)、詞法和情感分析等許多主流模型
C.它有不同的版本,用戶在安裝時(shí)可以指定具體的版本
D.它的使用要有PaddlePaddle的支持
二、亮一亮
1.人臉識(shí)別驗(yàn)證與傳統(tǒng)密碼驗(yàn)證相比它有哪些優(yōu)勢(shì)?
參考答案:
人臉識(shí)別驗(yàn)證是利用人臉視覺(jué)特征信息進(jìn)行身份鑒別的計(jì)算機(jī)技術(shù),具備自然性、非強(qiáng)
制性和非接觸性等特點(diǎn),而且人臉識(shí)別利用的是人臉的獨(dú)一無(wú)二特性,不易被復(fù)制,識(shí)別率
高,安全性高。
2.簡(jiǎn)述如何使用OPenCV提供的人臉?lè)诸惼鱽?lái)檢測(cè)人臉。
參考答案:
人臉檢測(cè)是在提取人臉特征的基礎(chǔ)上進(jìn)行,0PenCV中支持Haar和LBP特征的分類器,
我們以Haar分類器為例介紹人臉檢測(cè)的步驟:
1)使用以下命令安裝Pylhon版本的OPenCV第三方庫(kù)OPenCV-Python:pip?install
opencv-python,安裝好OPenCV-Python后,就會(huì)在Python的第三方模塊文件夾Site-PaCkageS
下有一個(gè)新的文件夾cv2,在cv2∕data∕下保存了許多用于檢測(cè)人臉、眼睛、微笑等訓(xùn)練好的
分類器,這些分類器以XML文件的形式存儲(chǔ),如下圖所示:
>Ienovo>APPDdta>Local>Programs>Python>PylhOn37>Lib>4te*pa<kage?>cv2>data
的擔(dān)大小
_PyCaChe_2021/1/2321:49文4較
B_in?t_.py2O2I/1/?3?I49IetBtaimPyChann...1KB
?haaκastadeeyeJtml2021/1/232Γ49XML334KB
,hMi<awade_eye_tree.eyegla$se^xml2021/1/2321:49XMl文檔588KB
/haarcascadefrontaketfMexml2021/1/2321:49XML文檔402KB
?haartawadefιontakatfa<eextendedj<ml2021/1/2321:49XML文檔374KB
"haarc?uadefrontatfacealtxml2021/1/2321:49XML女秘661KB
?h?wrca?ade_hontalfate_altUcejcml2021/1/2321:49XML-2627KB
"h<Mrc<κc<!defιontdlf<κcdlt2aml2021/1/232149XML文檔S28KB
?hadrcascadeJiontdlfdtedefaultj(ml2021/1/232149XMl3Q?909KB
?haarcascddefulltχχiyjcml2021/1/2321:49XML466KB
"haartawade∣cfteye2split?xml2021/1/2321:49XMt文檔191KB
?haar<a$tdde_icence_plate_nj$_16sta<}e?j<ml2021/1/2321:49XMl文檔47KB
?haarcA?cadeIowetbodyjcml2021/1/2321:49XMLg387KB
?hβar<astadepιofiIefacexml2021/1/2321:49XMl文襠810KB
"hwrt?scaderighteye_2$pits.xml2021/1/2321:49XMl文襠192KB
?haarcawadejussianplatenumbcf.xml2021/1/2321:49XMI鴻74KB
Shaaκastddesmilej<ml2021/1/2321:49XML文檔185KB
?haar<iKCade_UPPefbOdyxml2021∕!∕2321:49XMl文檔768KB
2)Haar特征分為三類:邊緣特征、線性特征、中心特征和對(duì)角線特征,一起組合成
特征模板。Haar特征分類器的基本工作原理是:用一個(gè)子窗口在待檢測(cè)的圖片窗口中不斷
的移位滑動(dòng),子窗口每到一個(gè)位置,就會(huì)計(jì)算出該區(qū)域的Haar特征,然后用我們訓(xùn)練好的
級(jí)聯(lián)分類器對(duì)該特征進(jìn)行篩選,一旦該特征通過(guò)了所有強(qiáng)分類器的篩選,則判定該區(qū)域?yàn)槿?/p>
臉。
三、幫幫我
1.人臉關(guān)鍵點(diǎn)提取是人臉識(shí)別的基礎(chǔ),請(qǐng)基于百度智能云開(kāi)放接口編程實(shí)現(xiàn)人臉關(guān)鍵點(diǎn)
提取并可視化效果,如下圖8.24所示。
圖8.24人臉原圖(左圖)及人臉關(guān)鍵點(diǎn)可視化(右圖)
提示:
1)將請(qǐng)求的圖片經(jīng)Base64編碼處理形成字符串。
2)在百度智能云上創(chuàng)建人臉識(shí)別應(yīng)用,基于應(yīng)用的APlKey和SeCretKey這兩個(gè)值來(lái)
獲取訪問(wèn)令牌access」Oken。
3)將圖片數(shù)據(jù)、圖片類型、面域等請(qǐng)求參數(shù)發(fā)送給人臉關(guān)鍵點(diǎn)服務(wù)URL,返回識(shí)別結(jié)
果。
4)解析識(shí)別結(jié)果,并將關(guān)鍵點(diǎn)坐標(biāo)以圓點(diǎn)的形式標(biāo)記在人臉的相應(yīng)位置。具體實(shí)現(xiàn)方
法可參考百度智能云官方說(shuō)明文檔:https://cloud.baidu.eom/doc/FACE/s/yk37du4to
參考答案:
importrequests
importcv2
importbase64
#獲取訪問(wèn)令牌access_token
ClientJd士你的AK'
Client.secret=,你的SK'
#ClientJd為你在官網(wǎng)獲取的AK,client.secret為你在官網(wǎng)獲取的SK
host='https:〃/OaUth/2.0/token?granUyPe=CIient_credentials&client_id='\
+client_id+*&client_secret-+client_secret
response=requests.get(host)
ifresponse:
,
access-token=response.json()[access-token'J
#圖片base64轉(zhuǎn)換
image_path=,face.jpg,
withopen(image_path,,rb,)asf:
image=f.read()
image_base64=str(base64.b64encode(image),encoding=,utf-8,)
#獲取人臉關(guān)鍵點(diǎn)
request_url=πhttps√∕∕rest∕2.0∕face∕v3∕detectπ
imageb64=image_base64
params=
”{\"image\":\"“+imageb64+“\",\"image」ype\":\"BASE64\",\"face_field\":\"facesIwpe,landmark\"}
access_token
,24.71d47eb914d09efc8c73i37ecl9cflld.2592000.l626017955.282335-2436006Γ
request_url=request_url+ZaccessJoken="+access_token
headers={,content-type':'applicatioMSOn'}
response=requests.post(request_url,data=params,headers=headers)
print('response:*,response)
ifresponse:
result=response.json()
print(,result:',result)
Iandmarks=result[,result,][,facejist,][θ][,landmark72,]
#在原始圖片上標(biāo)記關(guān)鍵點(diǎn)
img=cv2,imread(image_path)
foriinrange(0,72):
x=int(landmarks[i][,x,])
y=int(landmarks[i][,y,])
cv2.circle(img=img,center=(x,y),radius=2,color=(0,255,0),thickness=-1)
cv2.imshow(,landmarkFace,,img)
cv2.waitKey(0)
cv2.destroyAHWindows()
UIandmarkFace—□×
2.設(shè)計(jì)一個(gè)人臉驗(yàn)證系統(tǒng),與現(xiàn)有的人臉庫(kù)進(jìn)行比對(duì),來(lái)驗(yàn)證攝像頭前的人是否為合法
用戶。
參考答案:
#步驟1、人臉檢測(cè)
#打開(kāi)攝像頭,監(jiān)測(cè)人臉
importcv2ascv
defface_detect(frame):
#圖片轉(zhuǎn)灰度
img_gray=cv.cvtColor(frame,cv.COLOR_BGR2GRAY)
#加載人臉?lè)诸愖R(shí)別器,這里的文件路徑是筆者個(gè)人路徑,讀者需要相應(yīng)替換
face_detector=
,
cv.CascadeClassifier(D√anaconda3∕Lib∕site-packages∕cv2∕data∕haarcascade-frontaiface-default.x
mΓ)
faces=face_detector.detectMultiScale(img_gray)
forx,y,w,hinfaces:
cv.rectangle(frame,(x,y),(x+w,y+h),color=(0,255,0),thickness=1)
cv.imshow("detectingM,frame)
if_name_=='_main_,:
#讀取攝像頭中的圖像,獲取圖像grabbed為true
cap=cv.VideoCapture(O)
whileTrue:
grabbed,img=cap.read()
ifgrabbed:
print(πframe:",img.shape)
else:
break
face_detect(img)
iford('q,)==cv.waitKey(10):
break
cv.destroyAΠWindows()
cap.release()
■'detecting
#步驟2、人臉采集
importcv2ascv
defface_collect(face_id,username):
print('?n正在初始化臉部識(shí)別,請(qǐng)保持在攝像頭前面...,)
count=0
filename=,π'
#讀取內(nèi)置攝像頭中的圖像,獲取圖像grabbed為true
cap=cv.VideoCapture(O)
#加載人臉?lè)诸愖R(shí)別器這里的文件路徑是筆者個(gè)人路徑,讀者需要相應(yīng)替換
face_detector=
,
cv.CascadeClassifier(D√anaconda3∕Lib∕site-packages∕cv2∕data∕haarcascade-frontalface-defaull.x
ml,)
whileTrue:
grabbed,img=cap.read()
ifgrabbed:
print(πframe:",img.shape)
else:
break
#圖片轉(zhuǎn)灰度
img_gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
faces=face_detector.detectMultiScale(img_gray)
forx,y,w,hinfaces:
cv.rectangle(img,(x,y),(x+w,y+h),color=(0,255,0),thickness=1)
count+=1
#保存圖像的路徑,讀者可根據(jù)需要修改
filename="D:/face_data/r,+username+,'.π÷str(face_id)+,.'+str(count)+
,?jpg,
print(filename)
cv.imwrite(filename,img_gray[y:y+h,x:x+WD
cv.imshow("detecting",img)
iford('q,)==cv.waitKey(20):
break
elifcount>100:
break
cv.destroyAlIWindows()
cap.release()
if_name_=='_main_,:
userjd=input('?n輸入用戶ID,從0開(kāi)始遞增:')
user_name=input('?n輸入用戶英文名
face_collect(user_id,user_name)
采集過(guò)程和圖像保存結(jié)果如下:
輸入用戶1D,從0開(kāi)始遞增:0
輸入用戶英文名:Shaoshizhi
正在初始化臉部識(shí)別,請(qǐng)保持在攝像頭前面...
frame:(480,640,3)
D:,face_data/shaoshizhi.0.1.jpg
D:∕face-data∕shaoshizhi.0.2.jpg
frame:^480,640,3)
D:face_data/shaoshizhi.0.3.jpg
frame:(480,640,3)
D:/face_data'shaoshizhi.0.4.jpg
D:face_datashaoshizhi.0.5.jpg
frame:(480,640,3)
D:∕face.data∕shaoshizhi.0.6.jpg
frame:?480,640,3)
D:∕face-data∕shaoshizhi.0.7.jpg
t<κr.<te<4
th?o<hUhL02jt?*>?H∕hlX).JjUwxhirhiA41?h?Mhi∕MQ5J*tMKMhMv.06.jUMOtMt?iO.7JUMMhiZhLoAI
P9P9pgpgpgpαpg
JPQgagJpgjPgjPg
#3、人臉訓(xùn)練
importnumpyasnp
fromPILimportImage
importos
importcv2ascv
defface_training():
Print(”人臉訓(xùn)練,請(qǐng)耐心等待?.J)
#人臉圖片路徑,同步驟2保存的人臉圖片的路徑
face_path='D:/face_data/'
#opencv-contrib-python包中的函數(shù)
recognizer=cv.face.LBPHFaceRecognizer_create()
#載入人臉?lè)诸惼鬟@里的文件路徑是筆者個(gè)人路徑,讀者需要相應(yīng)替換
face_detector=
cv.CascadeClassifier(MD:/anaconda3/Lib/site-packages/cv2/data/haarcascade_frontalface_default.x
ml”)
image_paths=[os.path.join(face_path,f)forfinos.listdir(face_path)]
face_samples=[]
ids=[]
forimagePathinimage_paths:
img_gray=Image.open(imagePath).convert(,L,)
img_numpy=np.array(img_gray,,uint8,)
#圖片的命名方式xx.id.num.ext(xx為任意英文標(biāo)識(shí),id是標(biāo)簽,同類人臉
id相同,num一般為該類圖片的計(jì)數(shù),ext為圖片后綴)
#文件名中關(guān)鍵就是id,作為有監(jiān)督學(xué)習(xí),id就是用于分類
user_id=int(os.path.split(imagePath)[-1].sρlit(',.',)[1])
print(user_id,,'",imagePath)
faces=face_detector.detectMultiScale(img_numpy)
forx,y,w,hinfaces:
face_samples.append(img_numpy[y:y+h,x:x+w])
ids.append(user_id)
recognizer.train(face_samples,np.array(ids))
#保存訓(xùn)練信息,路徑讀者可根據(jù)需要修改
,
recognizer.write(D√face-trainer∕trainer.ymΓ)
print("{0}facestrained.ExitingProgramπ.format(len(np.unique(ids))))
if—name—==,—main—':
face_training()
人臉訓(xùn)練,請(qǐng)耐心等待...
0D:/face__data/shaoshizhi.0.1.jpg
0D:/face_data/shaoshizhi.0.10.jpg
0D:/face_data/shaoshizhi.0.11.jpg
0D:/face_data/shaoshizhi.0.12.jpg
0D:/face-data/shaoshizhi.0.13.jpg
0D:/face_data/shaoshizhi.0.14.jpg
0D:/face_data/shaoshizhi.0.15.jpg
0D:/face_data/shaoshizhi.0.16.jpg
0D:/face_data/shaoshizhi.0.17.jpg
0D:/face_data/shaoshizhi.0.18.jpg
1D:/face_data/zhanghongqin.1.31.jpg
1D:/face_data/zhanghongqin.1.32.jpg
1D:/face-,data/Zhanghongqin.1.4.jpg
1D:∕face-data∕zhanghongqin.1.5.jpg
1D:/face-data∕zhanghongqin.1.6.jpg
1D:∕face-data/zhanghongqin.1.7.jpg
1D:/face_data/zhanghongqin.1.8.jpg
1D:/face_data/zhanghongqin.1.9.jpg
2facestrained.ExitingProgram
#步驟4、人臉識(shí)別
#從視頻中識(shí)別人臉
importcv2ascv
defface_recognition():
recognizer=cv.face.LBPHFaceRecognizer_create()
#讀取訓(xùn)練數(shù)據(jù),路徑同步驟3訓(xùn)練文件的保存路徑
recognizer.read('D√face-trainer∕trainer.ymΓ)
#載入人臉?lè)诸惼鬟@里的文件路徑是筆者個(gè)人路徑,讀
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國(guó)旗下講話少年強(qiáng)3篇
- 關(guān)于婦女節(jié)日記(范文15篇)
- 天英學(xué)校家政服務(wù)員(初級(jí))理論練習(xí)試題附答案
- 2024-2025學(xué)年上海市浦東新區(qū)上南中學(xué)南校九年級(jí)(上)月考數(shù)學(xué)試卷(10月份)(含解析)
- 語(yǔ)文統(tǒng)編版(2024)一年級(jí)上冊(cè)漢語(yǔ)拼音-⑦z c s 教案
- 高中英語(yǔ)語(yǔ)法填空切莫忽視這六方面
- 高中英語(yǔ)語(yǔ)法講解與練習(xí)之動(dòng)名詞
- 高中英語(yǔ)語(yǔ)法-獨(dú)立主格結(jié)構(gòu)
- 第3章 基礎(chǔ)營(yíng)養(yǎng)素課件
- 會(huì)計(jì)數(shù)據(jù)分析 TestBank Richardson1e-Chapter05-TB-AnswerKey
- 送貨單電子模板
- 解讀財(cái)稅[2012]38號(hào)
- CAD公開(kāi)課教案
- 初一上冊(cè)整式化簡(jiǎn)求值60題(含答案)
- 資產(chǎn)負(fù)債表和利潤(rùn)表表格
- 旅客地道施組
- 電梯基坑土石方開(kāi)挖施工方案
- 二年級(jí)體育教案-爬越80-100厘米高的橫向跳箱全國(guó)通用
- 高壓電纜敷設(shè)施工方案(共8頁(yè))
- 橋梁施工加固技術(shù)規(guī)范
- 《會(huì)議攝影怎樣拍出彩?》PPT課件
評(píng)論
0/150
提交評(píng)論