⑴ 想問一下有沒有比較方便的人臉識別演算法,求推薦
主流的人臉識別技術基本上可以歸結為三類,即:基於幾何特徵的方法、基於模板的方法和基於模型的方法。
1. 基於幾何特徵的方法是最早、最傳統的方法,通常需要和其他演算法結合才能有比較好的效果;
2. 基於模板的方法可以分為基於相關匹配的方法、特徵臉方法、線性判別分析方法、奇異值分解方法、神經網路方法、動態連接匹配方法等。
3. 基於模型的方法則有基於隱馬爾柯夫模型,主動形狀模型和主動外觀模型的方法等。
1. 基於幾何特徵的方法
人臉由眼睛、鼻子、嘴巴、下巴等部件構成,正因為這些部件的形狀、大小和結構上的各種差異才使得世界上每個人臉千差萬別,因此對這些部件的形狀和結構關系的幾何描述,可以做為人臉識別的重要特徵。幾何特徵最早是用於人臉側面輪廓的描述與識別,首先根據側面輪廓曲線確定若干顯著點,並由這些顯著點導出一組用於識別的特徵度量如距離、角度等。Jia 等由正麵灰度圖中線附近的積分投影模擬側面輪廓圖是一種很有新意的方法。
採用幾何特徵進行正面人臉識別一般是通過提取人眼、口、鼻等重要特徵點的位置和眼睛等重要器官的幾何形狀作為分類特徵,但Roder對幾何特徵提取的精確性進行了實驗性的研究,結果不容樂觀。
可變形模板法可以視為幾何特徵方法的一種改進,其基本思想是 :設計一個參數可調的器官模型 (即可變形模板),定義一個能量函數,通過調整模型參數使能量函數最小化,此時的模型參數即做為該器官的幾何特徵。
這種方法思想很好,但是存在兩個問題,一是能量函數中各種代價的加權系數只能由經驗確定,難以推廣,二是能量函數優化過程十分耗時,難以實際應用。 基於參數的人臉表示可以實現對人臉顯著特徵的一個高效描述,但它需要大量的前處理和精細的參數選擇。同時,採用一般幾何特徵只描述了部件的基本形狀與結構關系,忽略了局部細微特徵,造成部分信息的丟失,更適合於做粗分類,而且目前已有的特徵點檢測技術在精確率上還遠不能滿足要求,計算量也較大。
2. 局部特徵分析方法(Local Face Analysis)
主元子空間的表示是緊湊的,特徵維數大大降低,但它是非局部化的,其核函數的支集擴展在整個坐標空間中,同時它是非拓撲的,某個軸投影後臨近的點與原圖像空間中點的臨近性沒有任何關系,而局部性和拓撲性對模式分析和分割是理想的特性,似乎這更符合神經信息處理的機制,因此尋找具有這種特性的表達十分重要。基於這種考慮,Atick提出基於局部特徵的人臉特徵提取與識別方法。這種方法在實際應用取得了很好的效果,它構成了FaceIt人臉識別軟體的基礎。
3. 特徵臉方法(Eigenface或PCA)
特徵臉方法是90年代初期由Turk和Pentland提出的目前最流行的演算法之一,具有簡單有效的特點, 也稱為基於主成分分析(principal component analysis,簡稱PCA)的人臉識別方法。
特徵子臉技術的基本思想是:從統計的觀點,尋找人臉圖像分布的基本元素,即人臉圖像樣本集協方差矩陣的特徵向量,以此近似地表徵人臉圖像。這些特徵向量稱為特徵臉(Eigenface)。
實際上,特徵臉反映了隱含在人臉樣本集合內部的信息和人臉的結構關系。將眼睛、面頰、下頜的樣本集協方差矩陣的特徵向量稱為特徵眼、特徵頜和特徵唇,統稱特徵子臉。特徵子臉在相應的圖像空間中生成子空間,稱為子臉空間。計算出測試圖像窗口在子臉空間的投影距離,若窗口圖像滿足閾值比較條件,則判斷其為人臉。
基於特徵分析的方法,也就是將人臉基準點的相對比率和其它描述人臉臉部特徵的形狀參數或類別參數等一起構成識別特徵向量,這種基於整體臉的識別不僅保留了人臉部件之間的拓撲關系,而且也保留了各部件本身的信息,而基於部件的識別則是通過提取出局部輪廓信息及灰度信息來設計具體識別演算法。現在Eigenface(PCA)演算法已經與經典的模板匹配演算法一起成為測試人臉識別系統性能的基準演算法;而自1991年特徵臉技術誕生以來,研究者對其進行了各種各樣的實驗和理論分析,FERET'96測試結果也表明,改進的特徵臉演算法是主流的人臉識別技術,也是具有最好性能的識別方法之一。
該方法是先確定眼虹膜、鼻翼、嘴角等面像五官輪廓的大小、位置、距離等屬性,然後再計算出它們的幾何特徵量,而這些特徵量形成一描述該面像的特徵向量。其技術的核心實際為「局部人體特徵分析」和「圖形/神經識別演算法。」這種演算法是利用人體面部各器官及特徵部位的方法。如對應幾何關系多數據形成識別參數與資料庫中所有的原始參數進行比較、判斷與確認。Turk和Pentland提出特徵臉的方法,它根據一組人臉訓練圖像構造主元子空間,由於主元具有臉的形狀,也稱為特徵臉 ,識別時將測試 圖像投影到主元子空間上,得到一組投影系數,和各個已知人的人臉圖像比較進行識別。Pentland等報告了相當好的結果,在 200個人的 3000幅圖像中得到 95%的正確識別率,在FERET資料庫上對 150幅正面人臉象只有一個誤識別。但系統在進行特徵臉方法之前需要作大量預處理工作如歸一化等。
在傳統特徵臉的基礎上,研究者注意到特徵值大的特徵向量 (即特徵臉 )並不一定是分類性能好的方向,據此發展了多種特徵 (子空間 )選擇方法,如Peng的雙子空間方法、Weng的線性歧義分析方法、Belhumeur的FisherFace方法等。事實上,特徵臉方法是一種顯式主元分析人臉建模,一些線性自聯想、線性壓縮型BP網則為隱式的主元分析方法,它們都是把人臉表示為一些向量的加權和,這些向量是訓練集叉積陣的主特徵向量,Valentin對此作了詳細討論。總之,特徵臉方法是一種簡單、快速、實用的基於變換系數特徵的演算法,但由於它在本質上依賴於訓練集和測試集圖像的灰度相關性,而且要求測試圖像與訓練集比較像,所以它有著很大的局限性。
基於KL 變換的特徵人臉識別方法
基本原理:
KL變換是圖象壓縮中的一種最優正交變換,人們將它用於統計特徵提取,從而形成了子空間法模式識別的基礎,若將KL變換用於人臉識別,則需假設人臉處於低維線性空間,且不同人臉具有可分性,由於高維圖象空間KL變換後可得到一組新的正交基,因此可通過保留部分正交基,以生成低維人臉空間,而低維空間的基則是通過分析人臉訓練樣本集的統計特性來獲得,KL變換的生成矩陣可以是訓練樣本集的總體散布矩陣,也可以是訓練樣本集的類間散布矩陣,即可採用同一人的數張圖象的平均來進行訓練,這樣可在一定程度上消除光線等的干擾,且計算量也得到減少,而識別率不會下降。
4. 基於彈性模型的方法
Lades等人針對畸變不變性的物體識別提出了動態鏈接模型 (DLA),將物體用稀疏圖形來描述 (見下圖),其頂點用局部能量譜的多尺度描述來標記,邊則表示拓撲連接關系並用幾何距離來標記,然後應用塑性圖形匹配技術來尋找最近的已知圖形。Wiscott等人在此基礎上作了改進,用FERET圖像庫做實驗,用 300幅人臉圖像和另外 300幅圖像作比較,准確率達到 97.3%。此方法的缺點是計算量非常巨大 。
Nastar將人臉圖像 (Ⅰ ) (x,y)建模為可變形的 3D網格表面 (x,y,I(x,y) ) (如下圖所示 ),從而將人臉匹配問題轉化為可變形曲面的彈性匹配問題。利用有限元分析的方法進行曲面變形,並根據變形的情況判斷兩張圖片是否為同一個人。這種方法的特點在於將空間 (x,y)和灰度I(x,y)放在了一個 3D空間中同時考慮,實驗表明識別結果明顯優於特徵臉方法。
Lanitis等提出靈活表現模型方法,通過自動定位人臉的顯著特徵點將人臉編碼為 83個模型參數,並利用辨別分析的方法進行基於形狀信息的人臉識別。彈性圖匹配技術是一種基於幾何特徵和對灰度分布信息進行小波紋理分析相結合的識別演算法,由於該演算法較好的利用了人臉的結構和灰度分布信息,而且還具有自動精確定位面部特徵點的功能,因而具有良好的識別效果,適應性強識別率較高,該技術在FERET測試中若干指標名列前茅,其缺點是時間復雜度高,速度較慢,實現復雜。
5. 神經網路方法(Neural Networks)
人工神經網路是一種非線性動力學系統,具有良好的自組織、自適應能力。目前神經網路方法在人臉識別中的研究方興未艾。Valentin提出一種方法,首先提取人臉的 50個主元,然後用自相關神經網路將它映射到 5維空間中,再用一個普通的多層感知器進行判別,對一些簡單的測試圖像效果較好;Intrator等提出了一種混合型神經網路來進行人臉識別,其中非監督神經網路用於特徵提取,而監督神經網路用於分類。Lee等將人臉的特點用六條規則描述,然後根據這六條規則進行五官的定位,將五官之間的幾何距離輸入模糊神經網路進行識別,效果較一般的基於歐氏距離的方法有較大改善,Laurence等採用卷積神經網路方法進行人臉識別,由於卷積神經網路中集成了相鄰像素之間的相關性知識,從而在一定程度上獲得了對圖像平移、旋轉和局部變形的不變性,因此得到非常理想的識別結果,Lin等提出了基於概率決策的神經網路方法 (PDBNN),其主要思想是採用虛擬 (正反例 )樣本進行強化和反強化學習,從而得到較為理想的概率估計結果,並採用模塊化的網路結構 (OCON)加快網路的學習。這種方法在人臉檢測、人臉定位和人臉識別的各個步驟上都得到了較好的應用,其它研究還有 :Dai等提出用Hopfield網路進行低解析度人臉聯想與識別,Gutta等提出將RBF與樹型分類器結合起來進行人臉識別的混合分類器模型,Phillips等人將MatchingPursuit濾波器用於人臉識別,國內則採用統計學習理論中的支撐向量機進行人臉分類。
神經網路方法在人臉識別上的應用比起前述幾類方法來有一定的優勢,因為對人臉識別的許多規律或規則進行顯性的描述是相當困難的,而神經網路方法則可以通過學習的過程獲得對這些規律和規則的隱性表達,它的適應性更強,一般也比較容易實現。因此人工神經網路識別速度快,但識別率低 。而神經網路方法通常需要將人臉作為一個一維向量輸入,因此輸入節點龐大,其識別重要的一個目標就是降維處理。
PCA的演算法描述:利用主元分析法 (即 Principle Component Analysis,簡稱 PCA)進行識別是由 Anderson和 Kohonen提出的。由於 PCA在將高維向量向低維向量轉化時,使低維向量各分量的方差最大,且各分量互不相關,因此可以達到最優的特徵抽取。
⑵ OCR文字識別用的是什麼演算法
OCR文字識別用的是什麼演算法,解答如下OCR演算法,即字元識別演算法,是專門針對字元識別和檢測的一種有效的圖像處理演算法。
常用的OCR文字識別軟體有,很多,像ABBYY FineReader、漢王OCR、Scancard、捷速ocr、尚書和紫光等等,文字識別軟體我自己也使用過好幾款,不過綜合下來還是ABBYY FineReader最好用,識別率比較高,直接將圖片上的文字轉換為word,其他的都是講圖片文字轉換成txt文本的,所以就方便而言,FineReader的比較好用一點,操作也是,其他的操作有點麻煩。望採納。
⑶ 人臉識別技術的核心演算法是什麼
人臉識別核心演算法包括檢測定位、建模、紋理變換、表情變換、模型統計訓練、識別匹配等關鍵步驟,其中最關鍵的技術包括兩部分:人臉檢測(Face Detect)和人臉識別(Face Identification)。
檢測技術核心稱為:迭代動態局部特徵分析(SDLFA),它是以國際通用的局域特徵分析(LFA)和動態局域特徵分析(DLFA)為基礎,並且針對現實業務場景進行了全面的演算法增強及結果優化,識別技術核心稱為:實時面部特徵匹配(RFFM),其識別特徵數據緊湊,特徵演算法准確高效,是國際國內獨創性的識別技術。
⑷ OCR文字識別用的是什麼演算法
首先OCR是模式識別的一個領域,所以整體過程也就是模式識別的過程。其過程整體來說可以分為以下幾個步驟:
預處理:對包含文字的圖像進行處理以便後續進行特徵提取、學習。這個過程的主要目的是減少圖像中的無用信息,以便方便後面的處理。在這個步驟通常有:灰度化(如果是彩色圖像)、降噪、二值化、字元切分以及歸一化這些子步驟。經過二值化後,圖像只剩下兩種顏色,即黑和白,其中一個是圖像背景,另一個顏色就是要識別的文字了。降噪在這個階段非常重要,降噪演算法的好壞對特徵提取的影響很大。字元切分則是將圖像中的文字分割成單個文字——識別的時候是一個字一個字識別的。如果文字行有傾斜的話往往還要進行傾斜校正。歸一化則是將單個的文字圖像規整到同樣的尺寸,在同一個規格下,才能應用統一的演算法。
特徵提取和降維:特徵是用來識別文字的關鍵信息,每個不同的文字都能通過特徵來和其他文字進行區分。對於數字和英文字母來說,這個特徵提取是比較容易的,因為數字只有10個,英文字母只有52個,都是小字元集。對於漢字來說,特徵提取比較困難,因為首先漢字是大字元集,國標中光是最常用的第一級漢字就有3755個;第二個漢字結構復雜,形近字多。在確定了使用何種特徵後,視情況而定,還有可能要進行特徵降維,這種情況就是如果特徵的維數太高(特徵一般用一個向量表示,維數即該向量的分量數),分類器的效率會受到很大的影響,為了提高識別速率,往往就要進行降維,這個過程也很重要,既要降低維數吧,又得使得減少維數後的特徵向量還保留了足夠的信息量(以區分不同的文字)。
分類器設計、訓練和實際識別:分類器是用來進行識別的,就是對於第二步,你對一個文字圖像,提取出特徵給,丟給分類器,分類器就對其進行分類,告訴你這個特徵該識別成哪個文字。在進行實際識別前,往往還要對分類器進行訓練,這是一個監督學習的案例。成熟的分類器也很多,什麼svm,kn,神經網路etc。我當時不知天高地厚用經典bp神經網路去學習,結果……呵呵……
後處理:後處理是用來對分類結果進行優化的,第一個,分類器的分類有時候不一定是完全正確的(實際上也做不到完全正確),比如對漢字的識別,由於漢字中形近字的存在,很容易將一個字識別成其形近字。後處理中可以去解決這個問題,比如通過語言模型來進行校正——如果分類器將「在哪裡」識別成「存哪裡」,通過語言模型會發現「存哪裡」是錯誤的,然後進行校正。第二個,OCR的識別圖像往往是有大量文字的,而且這些文字存在排版、字體大小等復雜情況,後處理中可以嘗試去對識別結果進行格式化,比如按照圖像中的排版排列什麼的,舉個栗子,一張圖像,其左半部分的文字和右半部分的文字毫無關系,而在字元切分過程中,往往是按行切分的,那麼識別結果中左半部分的第一行後面會跟著右半部分的第一行諸如此類。
OCR的大致內容差不多就是這樣。
⑸ 簡單數字識別(knn演算法)
knn演算法,即k-NearestNeighbor,後面的nn意思是最近鄰的意思,前面的k是前k個的意思,就是找到前k個離得最近的元素
離得最近這個詞具體實現有很多種,我使用的是歐式幾何中的距離公式
二維中兩點x(x1,y1),y(x2,y2)間距離公式為sqrt( (x1-x2)^2+(y1-y2)^2 )
推廣到n維就是
x(x1,x2, … ,xn),y(y1,y2, … ,yn)
sqrt [ ∑( x[i] - y[i] )^2 ] (i=1,2, … ,n)
knn演算法是要計算距離的,也就是數字之間的運算,而圖像是png,jpg這種格式,並不是數字也不能直接參與運算,所以我們需要進行一下轉換
如圖所示一個數字8,首先要確定的是這一步我做的是一個最簡單的轉換,因為我假定背景和圖之間是沒有雜物的,而且整個圖只有一個數字(0-9)如果遇到其他情況,比如背景色不純或者有其他干擾圖像需要重新設計轉換函數
接下來就是最簡單的轉換,將圖片白色部分(背景)變0,有圖像的部分變1。轉換後的大小要合適,太小會影響識別准確度,太大會增加計算量。所以我用的是書上的32*32,轉換後結果如圖所示
這樣一來,圖片就變成了能進行計算的數字了。
接下來我們需要創建一個庫,這個庫裡面存著0-9這些數字的各種類似上圖的實例。因為我們待識別的圖像要進行對比,選出前k個最近的,比較的對象就是我們的庫。假定庫中有0-9十個數字,每個數字各有100個這種由0和1表示的實例,那麼我們就有了一共1000個實例。
最後一步就是進行對比,利用開頭說的歐式幾何距離計算公式,首先這個32*32的方陣要轉換成一個1*1024的1024維坐標表示,然後拿這個待識別的圖像和庫中的1000個實例進行距離計算,選出前k個距離最近的。比如50個,這50個裡面出現次數最多的數字除以50就是結果數字的概率。比如50個裡面數字8出現40次,那麼待識別數字是8的可能性就是40/50 = 80%
個人理解:
只能識別單個數字,背景不能有干擾。如果想多數字識別或者背景有干擾需要針對具體情況考慮具體的圖像轉01的方法。
數字識別非常依賴庫中的圖像,庫中的圖像的樣子嚴重影響圖像的識別(因為我們是和庫中的一一對比找出距離最近的前k個),所以數字的粗細,高低,胖瘦等待都是決定性因素,建庫時一定全面考慮數字的可能樣子
計算量比較大,待識別圖像要和庫中所有實例一一計算,如果使用32*32,就已經是1024維了。如果庫中有1000個,那就是1024維向量之間的1000次計算,圖像更清晰,庫更豐富只會使計算量更大
對於其他可以直接計算距離的數值型問題,可以用歐式距離,也可以用其他能代表距離的計算公式,對於非數值型的問題需要進行合適的轉換,轉換方式很重要,我覺得首先信息不能丟失,其次要精確不能模糊,要實現圖片轉換前後是一對一的關系
參考資料:機器學習實戰 [美] Peter Harrington 人民郵電出版社
python源碼
import numpy
import os
from PIL import Image
import heapq
from collections import Counter
def pictureconvert(filename1,filename2,size=(32,32)):
#filename1待識別圖像,filename2 待識別圖像轉換為01txt文件輸出,size圖像大小,默認32*32
image_file = Image.open(filename1)
image_file = image_file.resize(size)
width,height = image_file.size
f1 = open(filename1,'r')
f2 = open(filename2,'w')
for i in range(height):
for j in range(width):
pixel = image_file.getpixel((j,i))
pixel = pixel[0] + pixel[1] + pixel[2]
if(pixel == 0):
pixel = 0
elif(pixel != 765 and pixel != 0):
pixel = 1
# 0代表黑色(無圖像),255代表白色(有圖像)
# 0/255 = 0,255/255 = 1
f2.write(str(pixel))
if(j == width-1):
f2.write('\n')
f1.close()
f2.close()
def imgvector(filename):
#filename將待識別圖像的01txt文件轉換為向量
vector = numpy.zeros((1,1024),numpy.int)
with open(filename) as f:
for i in range(0,32):
linestr = f.readline()
for j in range(0,32):
vector[0,32*i+j] = int(linestr[j])
return vector
def compare(filename1,filename2):
#compare直接讀取資源庫識別
#filename1資源庫目錄,filename2 待識別圖像01txt文檔路徑
trainingfilelist = os.listdir(filename1)
m = len(trainingfilelist)
labelvector = []
trainingmatrix = numpy.zeros((m, 1024), numpy.int8)
for i in range(0,m):
filenamestr = trainingfilelist[i]
filestr = filenamestr.split('.')[0]
classnumber = int(filestr.split('_')[0])
labelvector.append(classnumber)
trainingmatrix[i,:] = imgvector(filename1 + '/' + filenamestr)
textvector = imgvector(filename2)
resultdistance = numpy.zeros((1,m))
result = []
for i in range(0,m):
resultdistance[0,i] = numpy.vdot(textvector[0],trainingmatrix[i])
resultindices = heapq.nlargest(50,range(0,len(resultdistance[0])),resultdistance[0].take)
for i in resultindices:
result.append(labelvector[i])
number = Counter(result).most_common(1)
print('此數字是',number[0][0],'的可能性是','%.2f%%' % ((number[0][1]/len(result))*100))
def distinguish(filename1,filename2,filename3,size=(32,32)):
# filename1 png,jpg等格式原始圖像路徑,filename2 原始圖像轉換成01txt文件路徑,filename3 資源庫路徑
pictureconvert(filename1,filename2,size)
compare(filename3,filename2)
url1 = "/Users/wang/Desktop/number.png"
url2 = "/Users/wang/Desktop/number.txt"
traininglibrary = "/Users/wang/Documents/trainingDigits"
distinguish(url1,url2,traininglibrary)
⑹ 人臉識別演算法的分類
人臉識別法主要集中在二維圖像方面,二維人臉識別主要利用分布在人臉上從低到高80個節點或標點,通過測量眼睛、顴骨、下巴等之間的間距來進行身份認證。人臉識別演算法主要有:
1.基於模板匹配的方法:模板分為二維模板和三維模板,核心思想:利用人的臉部特徵規律建立一個立體可調的模型框架,在定位出人的臉部位置後用模型框架定位和調整人的臉部特徵部位,解決人臉識別過程中的觀察角度、遮擋和表情變化等因素影響。
2.基於奇異值特徵方法:人臉圖像矩陣的奇異值特徵反映了圖像的本質屬性,可以利用它來進行分類識別。
3.子空間分析法:因其具有描述性強、計算代價小、易實現及可分性好等特點,被廣泛地應用於人臉特徵提取,成為了當前人臉識別的主流方法之一。
4.局部保持投影(Locality Preserving Projections,LPP)是一種新的子空間分析方法,它是非線性方法Laplacian Eigen map的線性近似,既解決了PCA等傳統線性方法難以保持原始數據非線性流形的缺點,又解決了非線性方法難以獲得新樣本點低維投影的缺點。
5.主成分分析(PCA)
PCA模式識別領域一種重要的方法,已被廣泛地應用於人臉識別演算法中,基於PCA人臉識別系統在應用中面臨著一個重要障礙:增量學習問題。增量PCA演算法由新增樣本重構最為重要 PCS,但該方法隨著樣本的增加, 需要不斷舍棄一些不重要PC,以維持子空間維數不變, 因而該方法精度稍差。
6.其他方法:彈性匹配方法、特徵臉法(基於KL變換)、人工神經網路法、支持向量機法、基於積分圖像特徵法(adaboost學習)、基於概率模型法。 二維人臉識別方法的最大不足是在面臨姿態、光照條件不同、表情變化以及臉部化妝等方面較為脆弱,識別的准確度受到很大限制,而這些都是人臉在自然狀態下會隨時表現出來的。三維人臉識別可以極大的提高識別精度,真正的三維人臉識別是利用深度圖像進行研究,自90年代初期開始,已經有了一定的進展。三維人臉識別方法有:
1.基於圖像特徵的方法:採取了從3D結構中分離出姿態的演算法。首先匹配人臉整體的尺寸輪廓和三維空間方向;然後,在保持姿態固定的情況下,去作臉部不同特徵點(這些特徵點是人工的鑒別出來)的局部匹配。
2.基於模型可變參數的方法:使用將通用人臉模型的3D變形和基於距離映射的矩陣迭代最小相結合,去恢復頭部姿態和3D人臉。隨著模型形變的關聯關系的改變不斷更新姿態參數,重復此過程直到最小化尺度達到要求。基於模型可變參數的方法與基於圖像特徵的方法的最大區別在於:後者在人臉姿態每變化一次後,需要重新搜索特徵點的坐標,而前者只需調整3D變形模型的參數。
⑺ 指紋識別演算法都有哪些,最先進的是什麼演算法
現在國內外大都採用基於細節特徵點的指紋識別技術,即採用基於圖像處理的指紋識別演算法,有兩種比較有代表性的。一種是基於方向濾波增強,並在指紋細化圖上提取特徵點的演算法,另一種是直接從指紋灰度圖上提取特徵點的演算法。難題在於有些演算法會由於指紋圖像的噪音、皮膚彈性引起的非線性形變等多方面因素,導致在識別過程中出現誤差,影響識別率等[1-2]
指紋演算法存在的難題與方向
指紋圖像預處理:預處理的目的是改善輸入指紋圖像的質量,以提高特徵提取的准確性。本文採用灰度分割法對指紋圖像進行分割。利用中值濾波去噪。通過自適應二值化的方法處理指紋圖像,最後再對圖像進行細化處理並去除毛刺,斷裂等干擾。
指紋圖像特徵提取:對指紋圖像的特徵點進行提取。由於經過預處理後的細化圖像上存在大量的偽特徵點,這些偽特徵點的存在,不但使匹配的速度大大降低,還使指紋識別性能急劇下降,造成識別系統的誤拒率和誤識率的上升。因此在進行指紋匹配之前,應盡可能將偽特徵點去除,針對提取出的指紋細節特徵點含有大量的偽特徵點這一問題,提出了一種邊緣信息判別法,有效地去除了邊界偽特徵點,再根據脊線結構特性去除其毛刺和短脊等偽特徵點,明顯的減少了偽特徵點。
指紋匹配:對指紋圖像的匹配演算法進行研究。特徵匹配是識別系統的關鍵環節,匹配演算法的好壞直接影響識別的性能、速度和效率。為了克服指紋圖像非線性形變的影響,採用基於結構特徵的點匹配演算法,對校準後的點集進行匹配,匹配的特徵點個數在兩個點集中所佔比例大約百分之六十五的范圍內就可判為匹配成功。
⑻ 人臉識別的識別演算法
人臉識別的基本方法
人臉識別的方法很多,以下介紹一些主要的人臉識別方法。
(1)幾何特徵的人臉識別方法
幾何特徵可以是眼、鼻、嘴等的形狀和它們之間的幾何關系(如相互之間的距離)。這些演算法識別速度快,需要的內存小,但識別率較低。
(2)基於特徵臉(PCA)的人臉識別方法
特徵臉方法是基於KL變換的人臉識別方法,KL變換是圖像壓縮的一種最優正交變換。高維的圖像空間經過KL變換後得到一組新的正交基,保留其中重要的正交基,由這些基可以張成低維線性空間。如果假設人臉在這些低維線性空間的投影具有可分性,就可以將這些投影用作識別的特徵矢量,這就是特徵臉方法的基本思想。這些方法需要較多的訓練樣本,而且完全是基於圖像灰度的統計特性的。目前有一些改進型的特徵臉方法。
(3)神經網路的人臉識別方法
神經網路的輸入可以是降低解析度的人臉圖像、局部區域的自相關函數、局部紋理的二階矩等。這類方法同樣需要較多的樣本進行訓練,而在許多應用中,樣本數量是很有限的。
(4)彈性圖匹配的人臉識別方法
彈性圖匹配法在二維的空間中定義了一種對於通常的人臉變形具有一定的不變性的距離,並採用屬性拓撲圖來代表人臉,拓撲圖的任一頂點均包含一特徵向量,用來記錄人臉在該頂點位置附近的信息。該方法結合了灰度特性和幾何因素,在比對時可以允許圖像存在彈性形變,在克服表情變化對識別的影響方面收到了較好的效果,同時對於單個人也不再需要多個樣本進行訓練。
(5)線段Hausdorff 距離(LHD) 的人臉識別方法
心理學的研究表明,人類在識別輪廓圖(比如漫畫)的速度和准確度上絲毫不比識別灰度圖差。LHD是基於從人臉灰度圖像中提取出來的線段圖的,它定義的是兩個線段集之間的距離,與眾不同的是,LHD並不建立不同線段集之間線段的一一對應關系,因此它更能適應線段圖之間的微小變化。實驗結果表明,LHD在不同光照條件下和不同姿態情況下都有非常出色的表現,但是它在大表情的情況下識別效果不好。
(6)支持向量機(SVM) 的人臉識別方法
近年來,支持向量機是統計模式識別領域的一個新的熱點,它試圖使得學習機在經驗風險和泛化能力上達到一種妥協,從而提高學習機的性能。支持向量機主要解決的是一個2分類問題,它的基本思想是試圖把一個低維的線性不可分的問題轉化成一個高維的線性可分的問題。通常的實驗結果表明SVM有較好的識別率,但是它需要大量的訓練樣本(每類300個),這在實際應用中往往是不現實的。而且支持向量機訓練時間長,方法實現復雜,該函數的取法沒有統一的理論。
人臉識別的方法很多,當前的一個研究方向是多方法的融合,以提高識別率。
在人臉識別中,第一類的變化是應該放大而作為區分個體的標準的,而第二類的變化應該消除,因為它們可以代表同一個個體。通常稱第一類變化為類間變化,而稱第二類變化為類內變化。對於人臉,類內變化往往大於類間變化,從而使在受類內變化干擾的情況下利用類間變化區分個體變得異常困難。正是基於上述原因,一直到21 世紀初,國外才開始出現人臉識別的商用,但由於人臉識別演算法非常復雜,只能採用龐大的伺服器,基於強大的計算機平台。
如果可以的話,可以Te一下colorreco,更好的技術解答。
⑼ 人工神經網路目標檢測識別演算法分類
1、基於區域建議的目標檢測和識別演算法
2、基於回歸的目標檢測和識別演算法
3、基於收索的目標檢測和識別演算法