下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于Dragonboard410c的智能魔鏡設(shè)計(jì)(5)——通過(guò)人臉進(jìn)行用戶身份識(shí)別根據(jù)前面的設(shè)計(jì)方案,在設(shè)計(jì)的基于dragonboard410c的智能魔鏡中,需要根據(jù)超聲波檢測(cè)到有人靠近的時(shí)候,通過(guò)USB攝像頭采集人臉數(shù)據(jù),然后根據(jù)數(shù)據(jù)庫(kù)中的人臉數(shù)據(jù)進(jìn)行人臉匹配,識(shí)別用戶的身份,最終根據(jù)用戶身份顯示不同的消息和推送不同的內(nèi)容,這期blog將重點(diǎn)向大家介紹智能魔鏡中的人臉檢測(cè)和識(shí)別處理實(shí)現(xiàn)的原理和過(guò)程。需要進(jìn)行基于人臉的用戶身份識(shí)別,首先需要檢測(cè)出人臉,然后根據(jù)檢測(cè)出來(lái)的人臉與數(shù)據(jù)庫(kù)中的人臉進(jìn)行匹配,最終得出匹配度,根據(jù)匹配度確定該人臉的身份,這里將從這兩個(gè)方面來(lái)向大家介紹如何在智能魔鏡中實(shí)現(xiàn)人臉身份檢測(cè),其實(shí)在前面的一系列blog中已經(jīng)給大家介紹了人臉識(shí)別和檢測(cè)的實(shí)現(xiàn)方法,這里就在結(jié)合智能魔鏡代碼設(shè)計(jì)再向大家如何應(yīng)用前面已經(jīng)設(shè)計(jì)好的人臉檢測(cè)和識(shí)別的代碼,將其集中到智能魔鏡中的應(yīng)用中來(lái)。在基于USB攝像頭人臉識(shí)別的文章中已經(jīng)告訴了大家如使用Python和OpenCV來(lái)何構(gòu)建人臉檢測(cè)代碼,我們這里構(gòu)建了一個(gè)getFac.py文件,在該文件中通過(guò)getFac類(lèi)來(lái)實(shí)現(xiàn)人臉的檢測(cè),其實(shí)也就是對(duì)前面blog方法的一次封裝即可,具體代碼如下:
defgetface(self,device):
cap=cv2.VideoCapture(device)
faces=[]
num=self.maxFrames
while(True):
ret,img=cap.read()
ret,img=cap.read()
ret,img=cap.read()
ret,img=cap.read()
ifret==True:
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
faces=self.face_cascade.detectMultiScale(gray,1.3,5)
i=0
for(x,y,w,h)infaces:
face=img[y:y+h,x:x+w]
print("getfacesucessful")
cap.release()
cv2.imwrite('./temp.jpg',face)
returnTrue
num=num-1
ifnum==0:
print("getfacefailed")
cap.release()
returnFalse
else:
cap.release()
returnFalse
有了上述類(lèi),我們就可以檢測(cè)并且獲得人臉圖像,接下來(lái)我們需要利用檢測(cè)到的人臉圖像,與數(shù)據(jù)庫(kù)中的人臉圖像進(jìn)行匹配,實(shí)現(xiàn)人臉的識(shí)別,其方法和前面使用USB攝像頭進(jìn)行人臉識(shí)別文章--第二篇中的方法一樣,采用opencv提供的人臉識(shí)別接口來(lái)實(shí)現(xiàn),但是這里為了在魔鏡中調(diào)用,重寫(xiě)了前面blog的方法,構(gòu)建了一個(gè)peopleIdentification.py類(lèi)來(lái)實(shí)現(xiàn)魔鏡中的人臉身份檢測(cè),這里封裝了一個(gè)peopleDetected類(lèi)來(lái)實(shí)現(xiàn)人臉的身份識(shí)別,重新封裝后的代碼和前面代碼稍有差異,具體設(shè)計(jì)如下:
classpeopleDetected:
def__init__(self,trainImgPath):
self.threshold=6000
self.model=cv2.createFisherFaceRecognizer()
self.trainModel('./usrImg')
#loadalluserimgcreateTraintable
#imgPathisuserimgpath
deftrainModel(self,trainImgPath):
names=[]
lables=[]
userImgDir=os.listdir(trainImgPath)
#print(userImgDir)
forimgDirinuserImgDir:
print("userIDdiris:")
#print(imgDir)
format="%s/%s"
values=(trainImgPath,imgDir)
dirPath=format%values
#findcurrentuserimg
allimgPath=os.listdir(dirPath)
#print(allimgPath)
fornameinallimgPath:
names.append(dirPath+'/'+name)
lables.append(int(imgDir))
print("savesucessful:")
print(names)
print(lables)
#returnnames,lables
trainImg=[]
forimgloadPathinnames:
obj=cv2.resize(cv2.imread(imgloadPath,0),(400,500))
trainImg.append(obj)
self.model.train(trainImg,np.array(lables))
print(lables)
defgetPeopleID(self,faceImgPath):
faceImg=cv2.imread(faceImgPath,0)
face=cv2.resize(faceImg,(400,500))
result=self.model.predict(face)
predictID=result[0]
predictError=result[1]
print(predictID)
print(predictError)
#print(result)
ifpredictError>self.threshold:
return-1
else:
print("getpeopleID")
returnpredictID
defgetPeopleID2(self,faceImg):
face=cv2.resize(faceImg,(400,500))
result=self.model.predict(face)
predictID=result[0]
predictError=result[1]
#print(predictID)
#print(predictError)
#print(result)
ifpredictError>self.threshold:
return-1
else:
returnpredictID
有了這兩個(gè)類(lèi),我們就可以方便的構(gòu)建魔鏡的人臉身份識(shí)別子模塊了,這里我們只需要通過(guò)下面的代碼就可以使用人臉檢測(cè)和進(jìn)行人臉身份識(shí)別了:
GF=getFace()
rs=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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版購(gòu)銷(xiāo)簡(jiǎn)單的合同范本
- 2025年度建筑照明材料采購(gòu)合同范本3篇
- 杭州公司合作合同范本
- 2024酒店勞動(dòng)合同模板
- 2025年度GRC構(gòu)件生產(chǎn)與裝配安全責(zé)任合同3篇
- 影視作品海外發(fā)行與推廣2025年度合同2篇
- 二零二五年度跨區(qū)域LNG管道運(yùn)輸及倉(cāng)儲(chǔ)服務(wù)合同3篇
- 2025年度電機(jī)維修智能化改造升級(jí)合同3篇
- 2025年度電子元器件專(zhuān)用紙箱采購(gòu)與倉(cāng)儲(chǔ)管理合同3篇
- 2024珠寶首飾租賃與購(gòu)買(mǎi)合同
- TD/T 1060-2021 自然資源分等定級(jí)通則(正式版)
- 人教版二年級(jí)下冊(cè)口算題大全1000道可打印帶答案
- 《創(chuàng)傷失血性休克中國(guó)急診專(zhuān)家共識(shí)(2023)》解讀
- 倉(cāng)庫(kù)智能化建設(shè)方案
- 海外市場(chǎng)開(kāi)拓計(jì)劃
- 2024年度國(guó)家社會(huì)科學(xué)基金項(xiàng)目課題指南
- 供應(yīng)鏈組織架構(gòu)與職能設(shè)置
- 幼兒數(shù)學(xué)益智圖形連線題100題(含完整答案)
- 2024年九省聯(lián)考新高考 數(shù)學(xué)試卷(含答案解析)
- 紅色歷史研學(xué)旅行課程設(shè)計(jì)
- 如何避免護(hù)理患者投訴
評(píng)論
0/150
提交評(píng)論