Matlab final project === 大一下 - Carrson Fung - Engineering Mathematics: Linear Algebra :::success [TOC] ::: ### 路徑的小問題 :::danger 在main.m的最下方有教你如何顯示圖案,但在指令視窗只會讀取他所在目錄的資料,所以會讀不到你指定的檔案名稱,所以要把imgdata裡的東西抓到code資料夾或是code裡的程式碼抓到imgdata資料才能在指令視窗正常讀取,但main.m已經處理好這個問題了,跑main.m時不會有問題 ::: ### main.m :::info 不用寫,在main.m的最下方有教你如何顯示圖案 ::: :::warning 以下是main.m在幹嘛的解釋,不想了解可跳過 **Initialize and constant configure** 清空加關閉所有視窗,調整路徑使得main.m可以取得imgdata的資料 **please set parameters yourself** 你可以根據你自己喜歡調整除了start_ID跟im_size以外的參數數值 p_all是指只取幾個百分比的eigenvector來做影像辨識 **Processing training data** 透過`load_set`函數把指定範圍的資料轉成column vector存進G矩陣 G_avg計算出指定範圍的資料的平均column vector 接著將G矩陣做一些運算,把G裡面的資料平均值化為0 接著使用`comp_eig`將數值傳給v,u,ht(類似PCA) **Face identification** 設定了信躁比範圍,在這個範圍做人臉辨識的模擬,每張圖片會跑多次來獲得更穩定的結果,在中間有加入不同的信躁比,模擬不同條件下的人臉辨識結果,在這段程式碼中間有做了資料去中心化,使資料的平均值是0,接著將測試圖片(A)加入噪音然後使用`min_norm`來找出,試著從圖像資料裡面找出我原來給的測試圖片(A),接著程式碼會檢查找出的圖像是否正確,接著會計算當前信躁比的錯誤率 **Plot figure PDvsSNR figure** 繪製錯誤率(miss probability)隨著信噪比(SNR)變化,圖預期的樣子在簡報裡面有 ::: ### load_img.m :::info 不用寫,注意在測試圖片的時候要把imgdata抓到同個資料夾就是了 ::: ### load_set.m :::info 只要把指定範圍begin_ID,end_ID的檔案用`load_img`函數讀進去G矩陣即可,G矩陣的大小是(vec_length)x(end_ID-begin_ID+1) ::: ### comp_eig.m :::info R矩陣(correlation matrix)是為了找到最好的座標軸,照著講義的公式求解 R = G^T^ x G, G是data matrix,大小是(training_set_size) x (training_set_size) p是要取特定%數的eigenvectors(預設是1,0.1,0.01也就是p_all) u是右奇異矩陣,大小是(training_set_size) x (training_set_size) v是左奇異矩陣,大小是(128x128) x (training_set_size),這裡用了一種特殊的求法,在簡報裡有提到,可以去簡報研究一下或參考PCA跟SVD的關係 ht是係數矩陣,這個矩陣就是你將原始數據投影到eigenspace後的矩陣,大小是(p x training_set_size) x (training_set_size) ::: ### min_norm.m :::info 把I(測試圖像矩陣),v(左奇異矩陣),ht(投影後資料矩陣)傳入後,從ht矩陣裡面找出與I(測試圖像矩陣)有最小距離的資料並回傳位置和距離值,注意當p不等於1時,矩陣大小需要調整 ::: ### project原理 :::info 目前還沒有想寫的意思,阿上面的原理有可能有寫錯,因為我其實也沒有完全懂 :::
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up