matlab實現人臉識別(數學基礎原理)
事實上關鍵點在於幾點要求,而且由於只需要實現數學原理,所以要求其實比較簡單。
(1)通過採集給出人臉特徵基準矩陣,給出具體的基準矩陣Ax(每一 個人都有一個基準矩陣,給出至少10人的基準矩陣)。提示∶矩陣Ax中,每一行表示一個人臉區域特徵向量(10個區域),每一列表示一個區域特徵(22個特徵),特徵值範圍1-100(可以隨機生成)。(A1,A2,…A10,)
(2)隨機採集到某一個人的人臉影像,提取該人的人臉特徵(可以通過假設給出),給出一個具體的需要判斷的示例矩陣B,要求判斷B與Ax 中哪一個人的人臉特徵相似?
(3)關鍵計算1∶計算和判斷人臉特徵的相似度,規則是∶左耳、右耳的特徵的特徵值誤差範圍是20%,左臉、右臉的誤差範圍是10%,其他特徵的誤差範圍是3%;如果特徵值在誤差範圍內都認為是相似的。提示∶運用矩陣減法運算、矩陣邏輯比較運算,相似時為真true用1表示,不相似時為假false用0表示。
(4)關鍵計算2∶計算和判斷人臉區域的相似度,規則是每一個區域的22個特徵中,80%以上特徵相似就認為區域相似。提示∶運用向量計算
matlab:
B=randi(100,10,22); #需要判斷的矩陣
B1=B;
flag=1;
for i=1:10
A=randi(100,10,22); #隨機生成的基準矩陣
C=abs(A-B1)./A;
disp(C) #檢驗程式正確性的輸出
for j=1:10 #分行
for k=1:22 #分列
if i<7
if C(j,k)<=0.03
B(j,k)=1;
else
B(j,k)=0;
end
elseif (6<i)&&(i<9)
if C(j,k)<=0.2
B(j,k)=1;
else
B(j,k)=0;
end
else
if C(j,k)<=0.1
B(j,k)=1;
else
B(j,k)=0;
end
end
end
end
disp(B)
sp=sum(B,2); #按行相加,列不變
for n=1:10
if sp(n)>17
sp(n)=1;
end
end
if sum(sp)>9
flag=0; #哨兵變數
fprintf("識別成功!B與第%d個矩陣相符\n", i)
end
end
if flag==1
fprintf("識別失敗")
end
事實上由於剛開始接觸matlab,不太熟悉,程式碼一開始使用python寫的,之後改進成matlab程式碼。python的numpy和matlab語法還是有一些地方有差別的,尤其是矩陣的除法和矩陣的點除。
python:
import numpy as np
B=np.random.randint(0,100,size=[10,22])
B1=np.copy(B)
flag=1
for i in range(10):
A=np.random.randint(0,100,size=[10,22])
C=np.around(abs(A-B1)/A,2)
for j in range(10):
for k in range(22):
if i<6:
if C[j,k]<=0.9:
B[j,k]=1
else:
B[j,k]=0
elif 5<i<8:
if C[j,k]<=0.9:
B[j,k]=1
else:
B[j,k]=0
else:
if C[j,k]<=0.9:
B[j,k]=1
else:
B[j,k]=0
print(B)
cnt=0
D=np.sum(B,axis=1)
for n in range(10):
if D[n]>15:
cnt+=1
if cnt>9:
flag=0
print("識別成功!B與第%d個矩陣相符"%(i+1))
if flag==True:
print("識別失敗")
相關文章
- 基於Android平臺實現人臉識別Android
- 機器學習實戰-SVM模型實現人臉識別機器學習模型
- 基於mtcnn/facenet/tensorflow實現人臉識別登入系統CNN
- 基於二哈實現多人人臉學習和識別
- 【Linux學習】OpenCV+ROS 實現人臉識別(Ubantu16.04)LinuxOpenCVROS
- [OpenCV實戰]1 基於深度學習識別人臉性別和年齡OpenCV深度學習
- 如何用Excel 9步實現CNN人臉識別ExcelCNN
- UCloud發力AI線上服務 UAI-SERVICE“零基礎”實現人臉表情識別CloudAI
- 支小蜜人臉識別消費系統助力學校食堂實現“刷臉吃飯”
- 基於開源模型搭建實時人臉識別系統(四):人臉質量模型
- 基於開源模型搭建實時人臉識別系統(五):人臉跟蹤模型
- opencv 人臉識別OpenCV
- 淺談意圖識別各種實現&數學原理
- 【ROS】OpenCV+ROS 實現人臉識別(Ubantu16.04)ROSOpenCV
- 手把手教你實現人臉識別,有手就行
- 64行程式碼實現簡單人臉識別行程
- 虹軟人臉識別ArcSoft3.0NodeJs 版本實現NodeJS
- Python實現人臉識別功能,face_recognition的使用 | 機器學習Python機器學習
- 為人臉識別技術提供AI基礎資料服務支援AI
- 人臉檢測識別,人臉檢測,人臉識別,離線檢測,C#原始碼C#原始碼
- 【opencv3】 svm實現手寫體與人臉識別OpenCV
- 妙招:使用Python實現圖片在人臉識別並顯示Python
- 深入淺出人臉識別原理
- 人臉識別之特徵臉方法(Eigenface)特徵
- Mars演算法實踐——人臉識別演算法
- 人臉識別檢測專案實戰
- 基於MATLAB公式識別Matlab公式
- C#人臉識別入門篇-STEP BY STEP人臉識別--入門篇C#
- 智慧人臉識別門禁系統開發,人臉識別開鎖流程
- 基於膚色模型的人臉識別FPGA實現,包含tb測試檔案和MATLAB輔助驗證模型FPGAMatlab
- 前端人臉識別--兩張臉相似度前端
- 【專案】Python人臉識別(GUI介面)—— 基於pyopencvPythonGUIOpenCV
- python—呼叫API人臉識別PythonAPI
- 基於MATLAB的指紋識別演算法模擬實現Matlab演算法
- python ubuntu dlib人臉識別3-人臉對齊PythonUbuntu
- 人臉活體檢測人臉識別:眨眼+張口
- 手把手教你運用深度學習構建影片人臉識別模型(Python實現)深度學習模型Python
- 人臉識別之Python DLib庫進行人臉關鍵點識別Python