




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第8章人臉識別:機器也認識你
課后習題答案
一、考考你
1.一個完整的人臉識別系統(tǒng)主要包含人臉圖像采集和檢測、B、人臉圖像特征提取
和人臉識別四個部分。
A.人臉分類器B.人臉圖像預(yù)處理
C.人臉數(shù)據(jù)獲取D.人臉模型訓(xùn)練
2.刷臉支付比傳統(tǒng)密碼支付的突出優(yōu)勢是」
A.更快捷方便B.更安全
C.更容易實現(xiàn)D.成本更低
3.OpenCV庫主要應(yīng)用A領(lǐng)域的人工智能開發(fā)。
A.計算機視覺和機器學(xué)習B.人臉識別
C.深度神經(jīng)網(wǎng)絡(luò)D.圖像處理
4.下列OPenCV的哪個函數(shù)可定義一個人臉檢測器4。
A.CascadeClassifier()B.detectMultiScale()
C.predict()D.LBPHFaceRecognizejCreate()
5.關(guān)于百度PaddleHub錯誤的說法是D。
A.它是一個預(yù)訓(xùn)練模型管理工具,支持一鍵預(yù)測
B.它涵蓋了圖像分類、目標檢測、詞法和情感分析等許多主流模型
C.它有不同的版本,用戶在安裝時可以指定具體的版本
D.它的使用要有PaddlePaddle的支持
二、亮一亮
1.人臉識別驗證與傳統(tǒng)密碼驗證相比它有哪些優(yōu)勢?
參考答案:
人臉識別驗證是利用人臉視覺特征信息進行身份鑒別的計算機技術(shù),具備自然性、非強
制性和非接觸性等特點,而且人臉識別利用的是人臉的獨一無二特性,不易被復(fù)制,識別率
高,安全性高。
2.簡述如何使用OPenCV提供的人臉分類器來檢測人臉。
參考答案:
人臉檢測是在提取人臉特征的基礎(chǔ)上進行,0PenCV中支持Haar和LBP特征的分類器,
我們以Haar分類器為例介紹人臉檢測的步驟:
1)使用以下命令安裝Pylhon版本的OPenCV第三方庫OPenCV-Python:pip?install
opencv-python,安裝好OPenCV-Python后,就會在Python的第三方模塊文件夾Site-PaCkageS
下有一個新的文件夾cv2,在cv2∕data∕下保存了許多用于檢測人臉、眼睛、微笑等訓(xùn)練好的
分類器,這些分類器以XML文件的形式存儲,如下圖所示:
>Ienovo>APPDdta>Local>Programs>Python>PylhOn37>Lib>4te*pa<kage?>cv2>data
的擔大小
_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特征分為三類:邊緣特征、線性特征、中心特征和對角線特征,一起組合成
特征模板。Haar特征分類器的基本工作原理是:用一個子窗口在待檢測的圖片窗口中不斷
的移位滑動,子窗口每到一個位置,就會計算出該區(qū)域的Haar特征,然后用我們訓(xùn)練好的
級聯(lián)分類器對該特征進行篩選,一旦該特征通過了所有強分類器的篩選,則判定該區(qū)域為人
臉。
三、幫幫我
1.人臉關(guān)鍵點提取是人臉識別的基礎(chǔ),請基于百度智能云開放接口編程實現(xiàn)人臉關(guān)鍵點
提取并可視化效果,如下圖8.24所示。
圖8.24人臉原圖(左圖)及人臉關(guān)鍵點可視化(右圖)
提示:
1)將請求的圖片經(jīng)Base64編碼處理形成字符串。
2)在百度智能云上創(chuàng)建人臉識別應(yīng)用,基于應(yīng)用的APlKey和SeCretKey這兩個值來
獲取訪問令牌access」Oken。
3)將圖片數(shù)據(jù)、圖片類型、面域等請求參數(shù)發(fā)送給人臉關(guān)鍵點服務(wù)URL,返回識別結(jié)
果。
4)解析識別結(jié)果,并將關(guān)鍵點坐標以圓點的形式標記在人臉的相應(yīng)位置。具體實現(xiàn)方
法可參考百度智能云官方說明文檔:https://cloud.baidu.eom/doc/FACE/s/yk37du4to
參考答案:
importrequests
importcv2
importbase64
#獲取訪問令牌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)鍵點
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,]
#在原始圖片上標記關(guā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è)計一個人臉驗證系統(tǒng),與現(xiàn)有的人臉庫進行比對,來驗證攝像頭前的人是否為合法
用戶。
參考答案:
#步驟1、人臉檢測
#打開攝像頭,監(jiān)測人臉
importcv2ascv
defface_detect(frame):
#圖片轉(zhuǎn)灰度
img_gray=cv.cvtColor(frame,cv.COLOR_BGR2GRAY)
#加載人臉分類識別器,這里的文件路徑是筆者個人路徑,讀者需要相應(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正在初始化臉部識別,請保持在攝像頭前面...,)
count=0
filename=,π'
#讀取內(nèi)置攝像頭中的圖像,獲取圖像grabbed為true
cap=cv.VideoCapture(O)
#加載人臉分類識別器這里的文件路徑是筆者個人路徑,讀者需要相應(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開始遞增:')
user_name=input('?n輸入用戶英文名
face_collect(user_id,user_name)
采集過程和圖像保存結(jié)果如下:
輸入用戶1D,從0開始遞增:0
輸入用戶英文名:Shaoshizhi
正在初始化臉部識別,請保持在攝像頭前面...
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)練,請耐心等待?.J)
#人臉圖片路徑,同步驟2保存的人臉圖片的路徑
face_path='D:/face_data/'
#opencv-contrib-python包中的函數(shù)
recognizer=cv.face.LBPHFaceRecognizer_create()
#載入人臉分類器這里的文件路徑是筆者個人路徑,讀者需要相應(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為任意英文標識,id是標簽,同類人臉
id相同,num一般為該類圖片的計數(shù),ext為圖片后綴)
#文件名中關(guān)鍵就是id,作為有監(jiān)督學(xué)習,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)練,請耐心等待...
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、人臉識別
#從視頻中識別人臉
importcv2ascv
defface_recognition():
recognizer=cv.face.LBPHFaceRecognizer_create()
#讀取訓(xùn)練數(shù)據(jù),路徑同步驟3訓(xùn)練文件的保存路徑
recognizer.read('D√face-trainer∕trainer.ymΓ)
#載入人臉分類器這里的文件路徑是筆者個人路徑,讀
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 IEC 61196-1-112:2025 EN Coaxial communication cables - Part 1-112: Electrical test methods - Test for return loss and voltage standing wave ratio
- 工程項目分包合同
- 綠色能源項目投資風險防控協(xié)議書
- 現(xiàn)代商業(yè)房屋買賣合同
- 產(chǎn)品供貨合同范本(32篇)
- 離婚房產(chǎn)協(xié)議書
- 純?nèi)斯趧?wù)分包合同
- 環(huán)保設(shè)備銷售安裝維修服務(wù)合同
- 合伙人股份轉(zhuǎn)讓協(xié)議書
- 居間合同服務(wù)協(xié)議書
- 教學(xué)課件-電力系統(tǒng)的MATLAB-SIMULINK仿真與應(yīng)用(王晶)
- GB/T 26189.2-2024工作場所照明第2部分:室外作業(yè)場所的安全保障照明要求
- 新教科版一年級科學(xué)下冊第一單元《身邊的物體》全部課件(共7課時)
- 鹽城江蘇鹽城市住房和城鄉(xiāng)建設(shè)局直屬事業(yè)單位市政府投資工程集中建設(shè)管理中心招聘4人筆試歷年參考題庫附帶答案詳解
- 醫(yī)院教學(xué)秘書培訓(xùn)
- 2025江蘇常州西太湖科技產(chǎn)業(yè)園管委會事業(yè)單位招聘8人歷年高頻重點提升(共500題)附帶答案詳解
- 2025年北京控股集團有限公司招聘筆試參考題庫含答案解析
- 小學(xué)教室衛(wèi)生管理
- 信息技術(shù)必修一《數(shù)據(jù)與計算》第三章第三節(jié)《數(shù)據(jù)分析報告與應(yīng)用》說課稿
- 體育科學(xué)急救知識
- 工程項目建設(shè)流程
評論
0/150
提交評論