人臉檢測演算法 學習OpenCV看原始碼檔案

2021-09-04 04:37:02 字數 1531 閱讀 7081

方法3基於adaboost演算法的人臉檢測

2023年viola和jones引入積分圖的概念,提出了基於haar-like特徵、級聯結構的adaboost演算法,成功應用於模式識別領域,實現了實時人臉檢測,使人臉檢測技術取得了突破性進展。為適應背景的複雜性,研究者提出了將膚色等人臉特徵和adaboost演算法相結合的人臉檢測新演算法。演算法首先結合人臉特徵,利用人臉特徵確定人臉的大致方向,然後用級聯結構的adaboost演算法進行驗證。下圖為該演算法的人臉檢測流程圖

第一步:膚色區域檢測

膚色的差別主要是亮度的差別而非我們表面認知的色彩差別,因此檢測膚色區域時極容易受光照的影響,採用ycbcr色彩空間,可以使膚色有較好的聚類性。

第二步:人臉候選區域分割

在ycbcr色彩空間中,眼睛與**的cb和cr分量有很大的差異,眼睛的灰度值相對較低,y分量集中分布在(0,120)內,而且眼睛的cb分量普遍比cr分量的值高,由此將眼睛的色彩和亮度對映結合起來就能檢測出眼睛區域的大小和位置。多數情況下嘴巴的方向和人臉的方向一致,具有很強的穩定性,嘴巴檢測的情況類似眼睛的檢測,此時cb比cr分量的值高很多,也就是說,嘴巴相對眼睛更容易檢測到。最後根據人體學特徵,根據人臉各部件的大體位置很容易確定人臉候選區域。

第三步:人臉候選區域分類

這一步利用adaboost演算法,通過對人臉候選區域進行積分圖計算,快速計算harr-like特徵,利用adaboost演算法將harr-like特徵生成的弱分類器疊加成為強分類器,再將多個強分類器級聯**臉檢測分類器。

方法4 基於面部雙眼結構特徵的人臉檢測

首先在原始灰度影象上計算各畫素點的梯度方向對稱性,然後以梯度方向對稱性高的點為特徵點,並進一步組合成特徵塊,通過一種簡單的抑制方法,濾去大部分孤立的非人臉部件的特徵點,再運用一定的規則對各個特徵塊進行組合得到候選人臉區域最後對候選人臉進行人臉部件的驗證,剔除假臉,得到真正的人臉區域。

第一步:梯度方向對稱分布特徵點的提取

第二步:雙眼特徵塊的提取

第三步:人眼的驗證

opencv3源**資料夾sources:

• cmake: 包含生成工程專案時cmake 的依賴檔案,只能用於搜尋第三方庫,普通開發者不需要關心這個資料夾的內容。

• data: 包含 opencv 庫及範例中用到的資源檔案

• doc: 包含生成文件所需的原始檔及輔助指令碼

• include: 包含入口標頭檔案。opencv子資料夾中是c語言風格的api。opencv 2 子資料夾中只有乙個 opencv.hpp 檔案,這是 opencv 2 及 opencv 3 推薦使用的標頭檔案

• modules:演算法模組的源**。研究演算法的同學 學習的重點!!!

• platforms: 包含交叉編譯所需的工具鏈及額外的**,交叉編譯指的是在乙個作業系統中編譯供另乙個系統使用的檔案。

• samples:演算法用法示例資料夾

人臉檢測演算法

人臉識別各 參考 知乎乙個欄目 首先介紹一下常用人臉檢測的常用資料庫 每張影象的人臉數量偏少,平均1.8人臉 圖,絕大多數影象都只有一人臉 資料集完全公開,published methods通常都有 大部分都開源 且可以復現,可靠性高 unpublished methods沒有 沒有 無法確認它們的...

人臉檢測演算法

人臉識別各 參考 知乎乙個欄目 首先介紹一下常用人臉檢測的常用資料庫 fddb和wider face fddb總共2845張影象,5171張,人臉非約束環境,人臉的難度較大,有面部表情,雙下巴,光照變化,穿戴,誇張髮型,遮擋等難點,是目標最常用的資料庫。有以下特點 wider face wider ...

opencv自帶人臉檢測演算法對比

今天把opencv自帶的幾個frontface檢測器做了乙個效果比較 frontface檢測器如下 haarcascade frontalface alt.xml haarcascade frontalface alt tree.xml haarcascade frontalface alt2.xm...