OpenCV 人臉跟蹤預習資料

簡介

? OpenCV是一個基于BSD許可開源發(fā)行的跨平臺計算機視覺庫魔种。擁有C++惊奇,Python和Java接口,并且支持Windows, Linux, Mac OS, iOS 和 Android系統(tǒng)跟啤。實現(xiàn)了圖像處理和計算機視覺方面的很多通用算法。

模塊 功能
Core 核心基礎模塊熬甫,定義了被所有其他模塊和基本數(shù)據(jù)結構(包括重要的多維數(shù)組Mat)使用的基本函數(shù)、底層數(shù)據(jù)結構和算法函數(shù)
Imgproc 圖像處理模塊蔓罚,包括:濾波椿肩、高斯模糊、形態(tài)學處理豺谈、幾何變換郑象、顏色空間轉換及直方圖計算等
Highgui 高層用戶交互模塊,包括:GUI茬末、圖像與視頻I\O等
Video 視頻分析,厂榛,運動分析及目標跟蹤。
Calib3d 3D模塊丽惭,包括:攝像機標定击奶、立體匹配、3D重建等
Features2d 二維特征檢測與描述模塊责掏,包括:圖像特征檢測柜砾、描述、匹配等
Objdetect 目標檢測模塊换衬,如:人臉檢測等
MI 機器學習模塊痰驱,包括:支持向量機证芭、神經網(wǎng)絡等
Flann 最近鄰開源庫。包含一系列查找算法担映,自動選取最快算法的機制废士。
Imgcodecs 圖像編解碼模塊,圖像文件的讀寫操作
Photo 圖像計算(處理)模塊蝇完,圖像修復及去噪湃密。
Shape 形狀匹配算法模塊。描述形狀四敞、比較形狀
Stitching 圖像拼接
Superres 超分辨率模塊
Videoio 視頻讀寫模塊泛源,視頻文件包括攝像頭的輸入。
Videostab 解決拍攝的視頻穩(wěn)定
Dnn 深度神經網(wǎng)絡
contrib 可以引入額外模塊

LBP

LBP(Local Binary Pattern忿危,局部二值模式)是一種用來描述圖像局部紋理特征的算子,具有多分辨率达箍、灰度尺度不變、旋轉不變等特性铺厨。主要用于特征提取中的紋理提取缎玫。

LBP的核心思想就是:以中心像素的灰度值作為閾值,與他的領域相比較得到相對應的二進制碼來表示局部紋理特征解滓。

lbp.jpg

基本LBP

原始的LBP算子定義為在3*3的窗口內赃磨,處理83這個像素點的lbp值:

? 將83與包圍83的8個位置進行比較。如果大于83則取值為1洼裤,否則為0,然后將這些數(shù)據(jù)順時針組合在一起邻辉,這樣的到一個01111100,即:0x7C(124)。這就是83位置的lbp值腮鞍。順序并無硬性要求值骇,只要在同一處理中保持相同的順序即可。提取的LBP算子在每個像素點都可以得到一個LBP值移国,對一幅圖像提取其原始的LBP算子之后吱瘩,得到的原始LBP特征依然是“一幅圖片”(記錄的是每個像素點的LBP值)這種圖片稱之為lbp圖譜。

/**
 * 原始lbp:應該是3x3的src(先不管3x3)
 * src: 原圖
 * dst: 計算出的lbp圖譜
 *
*/
void processLBP(Mat src, Mat &dst){
    // 循環(huán)處理圖像數(shù)據(jù)
    for(int i=1; i < src.rows-1;i++) {
        for(int j=1;j < src.cols-1;j++) {
            uchar lbp = 0;
            uchar center = src.at<uchar>(i,j);
            //取出對應 高迹缀、寬位置的像素 與 中心點位置進行比較
            if(src.at<uchar>(i-1,j-1)>center) { lbp += 1 << 7;}
            if(src.at<uchar>(i-1,j  )>center) { lbp += 1 << 6;}
            if(src.at<uchar>(i-1,j+1)>center) { lbp += 1 << 5;}
            if(src.at<uchar>(i  ,j+1)>center) { lbp += 1 << 4;}
            if(src.at<uchar>(i+1,j+1)>center) { lbp += 1 << 3;}
            if(src.at<uchar>(i+1,j  )>center) { lbp += 1 << 2;}
            if(src.at<uchar>(i+1,j-1)>center) { lbp += 1 << 1;}
            if(src.at<uchar>(i  ,j-1)>center) { lbp += 1 << 0;}
            dst.at<uchar>(i-1,j-1) = lbp;
        }
    }
}
//讀取一張圖片
Mat img = imread("/path/x.png");
cvtColor(img, img, COLOR_BGR2GRAY);
//計算lbp圖譜
Mat lbp = Mat(img.rows-2, img.cols-2,CV_8UC1);
processLBP(img,lbp);

從lBP定義可以看出LBP是灰度不變的使碾,簡單來說就是對圖像的灰度值根據(jù)一個系數(shù)X進行修改,得出的LBP值不變祝懂。

圓形LBP

? 基本的 LBP算子的最大缺陷在于它只覆蓋了一個固定3x3范圍內的小區(qū)域票摇,為了滿足不同尺寸的需要,并達到灰度和旋轉不變性的要求嫂易,對 LBP 算子進行了改進兄朋,將 3×3鄰域擴展到任意鄰域,并用圓形鄰域代替了正方形鄰域。以某個像素點為中心颅和,以一個任意大小半徑R畫一個圓傅事,將落在圓內的P個像素與中心點像素比較得到LBP算子。

圓形lbp.png

旋轉不變LBP

? LBP 算子是灰度不變的峡扩,但卻不是旋轉不變的蹭越,圖像的旋轉就會得到不同的 LBP值。

旋轉.png

為了解決這個問題教届,將 LBP算子進行了擴展具有旋轉不變性响鹃。LBP的旋轉不變模式,即不斷旋轉圓形鄰域得到一系列初始定義的 LBP值案训,取其最小值作為該鄰域的 LBP 值。

旋轉不變.png

首先獲得LBP值為: 11100001 (255),進過旋轉分別得到8中不同的LBP值城舞,最終得到的具有旋轉不變性的 LBP值為 15。

等價LBP

? 對于半徑為R的圓形區(qū)域內含有P個采樣點的LBP算子將會產生2^P(0和1的排列組合)種模式。隨著鄰域集內采樣點數(shù)的增加,二進制模式的種類是以指數(shù)形式增加的。這么多的二進制模式導致在人臉檢測時候LBP模式統(tǒng)計直方圖過于稀疏(見下面檢測原理部分)。因此需要對原始的LBP模式進行降維透葛,也就是減少數(shù)據(jù)量繁调。

? 等價模式(均勻模式)就是解決這個問題的奕翔。在實際圖像中捻艳,絕大多數(shù)LBP模式最多只包含兩次從1到0或從0到1的跳變。因此拳锚,等價模式定義為:當某個LBP所對應的循環(huán)二進制數(shù)從0到1或從1到0最多有兩次跳變時匾荆,該LBP所對應的二進制就稱為一個等價模式類,除等價模式類以外的模式都歸為另一類杆烁,稱為混合模式類牙丽。

? 00000000(0次跳變),00000111(1次從0到1的跳變)兔魂,10001111(1到0烤芦,0到1,兩次跳變)是等價模式類析校。

? 10010111(共四次跳變)是混合模式類构罗。

? 通過這樣的改進,二進制模式數(shù)量由原來的2^P種減少為 P* ( P-1)+2種智玻。

比如:3x3的8采樣本來有256種遂唧,現(xiàn)在變成58(等價模式)+1種(混合模式)。即本來lbp值為0-255吊奢,也就是256種結果盖彭,轉化為了59種。混合模式編碼為0召边,等價模式根據(jù)值大小編碼為1—58铺呵。

00000000 : 1

00000001 : 2

00000010 : 3

00000101 : 0 (跳變3次)

檢測原理

? 將一幅圖片劃分為若干的子區(qū)域,對每個子區(qū)域內的每個像素點都提取LBP特征掌实,然后陪蜻,在每個子區(qū)域內建立LBPH(LBP特征的統(tǒng)計直方圖)。 每個子區(qū)域就可以用一個統(tǒng)計直方圖來進行描述贱鼻;整個圖片就由若干個統(tǒng)計直方圖組成 之后宴卖,將圖片和人臉的直方圖進行相似性比較。

直方圖:

把圖片的亮度分為0到255共256個數(shù)值邻悬,數(shù)值越大症昏,代表的亮度越高。其中0代表純黑色的最暗區(qū)域父丰,255表示最亮的純白色肝谭,而中間的數(shù)字就是不同亮度的灰色。用橫軸代表0-255的亮度數(shù)值蛾扇。豎軸代表照片中對應亮度的像素數(shù)量攘烛,這個函數(shù)圖像就被稱為直方圖。

簡單來說镀首,圖像的直方圖是用來表現(xiàn)圖像中亮度分布的情況,給出的是圖像中某個亮度或者某個范圍亮度下共有幾個像素

直方圖.jpg

參考:
https://www.cnblogs.com/nsnow/p/4461998.html
https://www.cnblogs.com/lxy2017/p/3927280.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末坟漱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子更哄,更是在濱河造成了極大的恐慌芋齿,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件成翩,死亡現(xiàn)場離奇詭異觅捆,居然都是意外死亡,警方通過查閱死者的電腦和手機麻敌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門栅炒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人术羔,你說我怎么就攤上這事职辅。” “怎么了聂示?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長簇秒。 經常有香客問我鱼喉,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任扛禽,我火速辦了婚禮锋边,結果婚禮上,老公的妹妹穿的比我還像新娘编曼。我一直安慰自己豆巨,他們只是感情好,可當我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布掐场。 她就那樣靜靜地躺著往扔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪熊户。 梳的紋絲不亂的頭發(fā)上萍膛,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天,我揣著相機與錄音嚷堡,去河邊找鬼蝗罗。 笑死,一個胖子當著我的面吹牛蝌戒,可吹牛的內容都是我干的串塑。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼北苟,長吁一口氣:“原來是場噩夢啊……” “哼桩匪!你這毒婦竟也來了?” 一聲冷哼從身側響起粹淋,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤吸祟,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后桃移,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體屋匕,經...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年借杰,在試婚紗的時候發(fā)現(xiàn)自己被綠了过吻。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡蔗衡,死狀恐怖纤虽,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情绞惦,我是刑警寧澤逼纸,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站济蝉,受9級特大地震影響杰刽,放射性物質發(fā)生泄漏菠发。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一贺嫂、第九天 我趴在偏房一處隱蔽的房頂上張望滓鸠。 院中可真熱鬧,春花似錦第喳、人聲如沸糜俗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽悠抹。三九已至,卻和暖如春渔工,著一層夾襖步出監(jiān)牢的瞬間锌钮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工引矩, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留梁丘,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓旺韭,卻偏偏與公主長得像氛谜,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子区端,可洞房花燭夜當晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內容