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