人工智能是怎么進(jìn)行人臉識(shí)別的?
大學(xué)課題,要做5分鐘的簡短介紹,人工智能在人臉識(shí)別上的 實(shí)現(xiàn)方式(求咨詢,不用告訴特別的仔細(xì)原理) ai大體是怎么樣的學(xué)習(xí)就行了
我們使用機(jī)器學(xué)習(xí)的方法完成人臉檢測,首先需要大量的正樣本圖像(面部圖像)和負(fù)樣本圖像(不含面部的圖像)來訓(xùn)練分類器。我們需要從其中提取特征。下圖中的 Haar 特征會(huì)被使用,就像我們的卷積核,每一個(gè)特征是一個(gè)值,這個(gè)值等于黑色矩形中的像素值之后減去白色矩形中的像素值之和。
Haar特征值反映了圖像的灰度變化情況。例如:臉部的一些特征能由矩形特征簡單的描述,眼睛要比臉頰顏色要深,鼻梁兩側(cè)比鼻梁顏色要深,嘴巴比周圍顏色要深等。
Haar特征可用于于圖像任意位置,大小也可以任意改變,所以矩形特征值是矩形模版類別、矩形位置和矩形大小這三個(gè)因素的函數(shù)。故類別、大小和位置的變化,使得很小的檢測窗口含有非常多的矩形特征。
得到圖像的特征后,訓(xùn)練一個(gè)決策樹構(gòu)建的adaboost級(jí)聯(lián)決策器來識(shí)別是否為人臉。
OpenCV中自帶已訓(xùn)練好的檢測器,包括面部,眼睛,貓臉等,都保存在XML文件中,我們可以通過以下程序找到他們:
找到的文件如下所示:
那我們就利用這些文件來識(shí)別人臉,眼睛等。檢測流程如下:
讀取圖片,并轉(zhuǎn)換成灰度圖實(shí)例化人臉和眼睛檢測的分類器對(duì)象# 實(shí)例化級(jí)聯(lián)分類器 classifier =cv.CascadeClassifier( "haarcascade_frontalface_default.xml" ) # 加載分類器 classifier.load('haarcascade_frontalface_default.xml')進(jìn)行人臉和眼睛的檢測rect = classifier.detectMultiScale(gray, scaleFactor, minNeighbors, minSize,maxsize)參數(shù):Gray: 要進(jìn)行檢測的人臉圖像scaleFactor: 前后兩次掃描中,搜索窗口的比例系數(shù)minneighbors:目標(biāo)至少被檢測到minNeighbors次才會(huì)被認(rèn)為是目標(biāo)minsize和maxsize: 目標(biāo)的最小尺寸和最大尺寸將檢測結(jié)果繪制出來就可以了。主程序如下所示:
結(jié)果:
我們也可在視頻中對(duì)人臉進(jìn)行檢測:
opencv中人臉識(shí)別的流程是:
1. 讀取圖片,并轉(zhuǎn)換成灰度圖,
2.實(shí)例化人臉和眼睛檢測的分類器對(duì)象
3. 進(jìn)行人臉和眼睛的檢測
4. 將檢測結(jié)果繪制出來就可以了。
我們也可以在視頻中進(jìn)行人臉識(shí)別。