中 華 大 學 碩 士 論 文
人臉偵測於數位相框之應用 Face detection for digital photo frame
系 所 別:資訊工程學系碩士班 學號姓名:E09302004 陳 駿 賢 指導教授:鄭 芳 炫 教授
中 華 民 國 九十九 年 八 月
摘要
人臉偵測方法已經研究許久,迄今已有十幾年,已有各式各樣的方法被提出,例 如特徵基礎、 利用膚色切割判斷的方法、類神經網路判別方法...等。早期的研究大 多是使用電腦,應用上也只有在電腦的影像處理上,近幾年消費性產品使用的單晶片 運算速度大大提升,讓原本只能在電腦上運算的人臉偵測演算法,可以應用到隨身型 的產品上面,例如數位相機等。消費性產品由於價格因素,記憶體空間有限,運算速 度也不夠好,程式存放空間不足,無法將複雜的人臉偵測演算法整合到產品中銷售。
本論文即針對記憶體空間不足,程式存放空間不足,又需要做到人臉偵測的消費性產 品提供一個可行的方法。
本論文先對影像積分、特徵分析、Adaboost 與層疊分類器膚色判斷等方法做出 分析與研究,進而整合。首先以膚色分析來減少圖片運算量,並以影像積分、特徵分 析、Adaboost 與層疊分類器的結合針對膚色判定後的位置進行人臉資料庫的比對,
進而確定人臉位置。本論文也使用相同方式將人臉資料庫簡化,利用相似特徵臉孔合 併,以加速了人臉偵測的處理,並達到減少記憶體與程式存放空間的使用,達到可以 使用人臉偵測的功能且不需要增加額外的成本目的。驗證部分先針對提出的方式以電 腦平台實做,並與 OpenCV 的人臉偵測比較,最後再使用數位相框,將本論文的方法 實際應用到數位相框的拉近特效中!
關鍵字: 數位相框,膚色分析,人臉偵測。
ABSTRACT
Face detection has been studied for a variety of applications. Computer recognition of face detection in digital images has been put to use in security monitoring, digital cameras to name a few. In this project, a prototype algorithm for automating the detection of human faces in digital photographs was developed and can serve as an introduction for future work in detecting people in images.
The skin detection is performed using a skin filter which relies on color and texture information. The face detection is performed on a grayscale image containing only the detected skin areas. A combination of skin color, rectangle feature and cascade classifier are used to extract face features that would be easier to detect a human face in image. We can reduce both the computational complexity and the memory usage, and make the face detection algorithm put in to low cost digital photo frame.
Keywords: Digital photo frame, skin color analysis, face detection.
致謝
首先,我要先感謝我的指導老師 --- 鄭芳炫老師。在修改論文以及指導我報告 的時候孜孜不倦的為我做出許多的建議以及修改,讓我這份七零八落的研究最後終於 提升到可以稱之為“論文”的水準;老師為了我的論文花了相當多的心思及時間,因 此我想要在這篇致謝裡再度表達我的感謝之意,感謝我的老師為我付出的心血。
最後,我想要感謝我的家人。由於我是在職進修,進修期間歷經了結婚,生子,等 人生大事,工作之餘要兼顧課業,尤其在園區上班,工作壓力大工作時間長。還好有 我的家人默默支持我,我爸媽,老婆,在背後支持,讓我可以打起精神將論文完成,真 的很感謝家人的幫忙與支持,讓我可以完成我的人生目標。
目錄
摘要 ...II ABSTRACT ...III 致謝 ...IV 目錄 ... V 圖目錄 ...VII 表目錄 ...VIII
第一章 序論 ... 1
1.1 動機與目的 ... 1
1.2 論文架構 ... 3
第二章 數位相框系統架構簡介 ... 4
2.1 數位相框系統介紹 ... 4
2.2 系統處理流程介紹 ... 5
第三章 人臉位置尋找相關研究 ... 6
3.1 即時人臉演算法分析 ... 6
3.1.1 影像積分 ... 6
3.1.2 特徵區分 ... 8
3.1.3 Ada-Boost ... 10
3.1.4 層疊分類器 ... 13
3.2 膚色範圍 ... 14
3.3 其他相關研究 ... 17
第四章 人臉偵測方法與系統應用 ...18
4.1 程式流程 ... 18
4.2 膚色範圍判定 ... 20
4.3 臉部特徵分析 ... 23
4.4 膚色與特徵權重加總計算 ... 25
4.5 利用單一資料庫的臉部偵測 ... 27
4.6 不同大小人臉的偵測 ... 29
4.7 資料庫的建立 ... 29
4.8 記憶體與資料庫大小需求分析 ... 30
第五章 實驗與應用...32
5.1 實驗的方法 ... 32
5.2 人臉位置偵測的正確性實驗 ... 32
5.3 比較結果整理 ... 34
5.4 相框實際應用 ... 37
第六章 結論與未來展望 ...40
參考文獻 ...41
圖目錄
圖 1 數位相框系統架構圖 ...5
圖 2 影像加總示意圖...7
圖 3 灰色區域計算示意圖 ...7
圖 4 特徵圖 ...8
圖 5 特徵應用於人臉辨識上 ...9
圖 6 Adaboost 範例 ...12
圖 7 Cascade classifier ...13
圖 8 橫向與縱向特徵統計 ...17
圖 9 利用膚色特徵計算權重 ...18
圖 10 10x10 遮罩與人臉資料庫比對流程 ...19
圖 11 原始圖檔...20
圖 12 較大權值範圍二值化 ...21
圖 13 經過膚色分析轉換後 ...21
圖 14 膚色判斷結果...22
圖 15 邊緣分析 ...23
圖 16 3x3 分割區塊示意圖 ...23
圖 17 4x4 分割區塊示意圖 ...24
圖 18 5x5 分割區塊示意圖 ...24
圖 19 輸入樣本 ...27
圖 20 臉部位置分析...27
圖 21 偵測顯示結果...28
圖 22 比較本演算法與 OpenCV 計結果長方圖 ...33
圖 23 Open CV 執行結果...36
圖 24 本論文執行結果...36
圖 25 數位相框完整平台 ...37
圖 26 相框硬體電路部份 ...38
圖 27 原始圖檔 ...39
圖 28 人臉位置偵測後拉近 ...39
表目錄
表格 1 等級區分結果表...28
表格 2 人臉辨識比較統計參考指標...32
表格 3 本論文與 OpenCV 基本指標比較表 ...34
表格 4 本演算法與 OpenCV 於數位相框應用上比較表...35
第一章 序論 1.1 動機與目的
人臉偵測方法已經研究許久,迄今已有十幾年,已有各式各樣的方法被提 出,例如特徵基礎、 利用膚色切割判斷的方法、類神經網路判別方法...等。
近幾年,因為製程的提升,單晶片產品的運算速度也大大的增加,讓原本只 能在電腦上運算的人臉偵測演算法,可以應用到隨身型的產品上面,例如數位相 機。早期的數位相機因為 CPU 運算速度慢,記憶體空間有限,無法做到很好的即 時人臉偵測,現在的數位相機,已經有辦法把人臉偵測做的很好了,而人臉偵測 演算法也在各家大廠的努力下,辨識率越來越高,但是數位相框的人臉偵測有包 含了移動偵測,大大的簡化了人臉偵測的複雜度,也大大的提高了人臉偵測的準 確率。
說到數位相機,就會想到最近市面上興起的數位相框產品,原本相機拍出來 的底片,需要經過沖洗,才能產生出照片,讓使用者收藏,但是數位相機的崛起,
造成了使用者不需要去沖洗照片,就可以在電腦上直接瀏覽,甚至放上網路相簿 或是部落格上分享,但如果要放在桌面上,就需要數位相框了。數位相框的產品 功能日漸強大,從早期單張撥放,衍伸至撥放含有轉場特效,甚至可以與音樂同 時撥放做展示效果,直到現在甚至還有裸視 3D 的數位相框的出現。
數位相框的基本架構,是否可以做到人臉偵測,甚至在轉場特效中,導入人 臉偵測的拉近特效 ? 答案是可以的,但是數位相框現有產品仍處於低價市場,
價格要夠低,才會有人願意購買,所以在成本考量上,單晶片的運算速度與記憶 體都不能太高,而且輸入只是單張圖片,無法加入移動偵測,導致即時人臉偵測 很難做到。
本篇論文針對現在市面上的數位相框,提供了一個很好的解決方式,借此方 式可以節省運算速度與記憶體的使用,並使數位相框能做到更多華麗的人臉特 效。
都只有應用在電腦上,由比較快速的電腦來處理影像的後處理。並無考慮到由速 度較慢的 DSP 或是 8051 等來做後處理。
因為在電腦上執行,所以演算法上面對速度並無太大的考量,但如果影像後 置處理部份必須要應用在數位像框產品上面,就需要考慮到處理的速度。
就此部分,我們以現行的照片修補方式提出加快速度的處理方式,以期應用在數 位像框的產品上。
以下我們列舉一些可以應用於數位像框上的基本處理,這些處理如果有被應 用到數位像框中,可使像框顯示照片更加完美,拍攝出來的照片也不需要刻意做 後處理,就可以完美的呈現。例如:
人臉位置尋找
紅眼消除
膚色化妝
喜好色調整
上述所敘述之處理都需在人臉位置尋找之後才能完成。人臉偵測方法已經研 究許久,迄今已有十幾年,已有各式各樣的方法被提出,例如特徵基礎[1] 、 利 用膚色切割判斷的方法、類神經網路[10] 等。 近幾年,電腦上的應用多以 Open CV[9]為主, Open CV 的應用架構在以強健性的即時人臉偵測[2]演算法上,但 是電腦上不需要考慮記憶體與計算複雜度,因為現在的電腦夠快,記憶體夠便宜。
在數位像框的實際的應用上並無如此大的記憶體與如此快的運算速度。 雖然 Open CV 也可以簡化後,以最小的影像尺寸做運算,但是實際實驗後,如果影 像大小小於 320x240,將會容易造成辨識錯誤,且也可能造成無法找到太小的人 臉。 但是如果使用 320x240 做基礎,又會造成記憶體使用變大,運算量也增加 的缺點。
故本論文就上述之臉部位置尋找,減少記憶體使用量與加快搜尋為重點,以 期達到快速運算效果,並可應用於數位像框上。
1.2 論文架構
本論文中將討論最普遍的人臉偵測演算法,先從 Paul Viola 與 Michael Jones 所探討的:強健性即時人臉偵測(Robust Real-Time Face detection[2])一文中所記
述的方式討論,並依照其需要使用大部分記憶體與大量運算部分做出簡化,以期
節省處理時間,加快運算速度,並且可以偵測到大部分臉部位置為重點。
首先會探討強健性即時人臉偵測演算法的優缺點,並探討其他有關色彩判斷 膚色位置,以找到人臉的演算法之研究,並將此兩種優點結合後,提出新的演算 架構, 在電腦上實做後,與 Open CV 的演算法比較,就影像大小,速度做出種 種比較。 比較後會針對記憶體使用量做探討。最後將本論文之演算架構在數位 像框上應用,依照取得之人臉位置,做出人像拉進特效,並展示結果!
本篇論文架構如下:第二章,我們針對數位相框的系統架構與流程做分析與 介紹;第三章,我們將會探討人臉偵測相關的演算法;第四章,我們會針對本論 文提出的方法做詳細的介紹;第五章,針對提出的方法做實驗並與 OpenCV 的人 臉偵測做比較。實驗後將方法實際應用到市面量產的相框中。最後第六章介紹此 論文的結論與未來展望。
第二章 數位相框系統架構簡介
一般數位像框與電腦架構基本上都相似,近期數位像框已經朝向嵌入式系統 架構潮流前進,免費的 Linux 擁有強大的開放原始程式,且已經漸漸成為數位像 框與其他多媒體產品的主流系統。
嵌入式系統架構已經有多工與多程序在系統中並行的觀念。系統如果處理 速度不夠快速,會對此消費性產品造成使用上的不方便性,進而影響到銷售量。
所以快速的演算法對像框來說是很重要。
2.1 數位相框系統介紹
相框的組成不外乎所看到的數位面板,與外殼,遙控器等。使用者可以將儲 存媒體,如 SD 卡,USB 隨身碟等放入像框中,使數位像框撥放出使用者想撥放 的照片。
所以說,像框與電腦一樣有五大單元,輸出/輸入/中央處理/記憶體/運算邏 輯。如下圖 1 所示, 我們最後要實做的系統使用晶片為 Cheertek CT956E 。 此 晶片內部為兩個 Leon one 晶片,分別用來處理影像與聲音,此 IC 內部含有許多 基本的影像處理技術,包含影像縮放 ,Gamma 修正,面板畫面輸出時的邊緣強 化等。
此論文實做系統將使用此晶片,加上 16M bits SPI flash (ROM) , 64M bits DRAM , 800x600 顯示面板與其他週邊元件組成, 基本的影像輸入,將由 USB 或 SD/MMC/MS 讀卡機讀入,並於系統中做處理後輸出。臉部偵測後的顯示方 式將由相框做出臉部拉近動作即為完成!
圖 1 數位相框系統架構圖
2.2 系統處理流程介紹
一般來說,程式存放在唯讀記憶體中,程式啟動後,由中央處理單元將程式 讀入記憶體中運作。程式在系統中運作時會去偵測輸入端是否有物件插入,或是 有按鍵輸入,再依照輸入的控制做使用者操作介面與畫面的處理,處理後由系統 硬體影像縮放功能調整畫面輸出大小後,於數位面板上輸出。
故系統主要處理都在於資料的搬移,經分析,最慢的為儲存裝置到記憶體 中,其次為記憶體與中央處理單元處理間的讀取寫入。
如果再記憶體存取次數過多,就會造成系統速度減慢,進而影響到效能。所 以如果可以在執行後處理時儘量減少記憶體的讀取與寫入,就可以在影響到效能 最小的情況下完成。
但是所有的後處理演算都是針對整張圖片做運算,以數位顯示液晶面板的解 析度 800 x 600 來說,就有 48 萬點,若每個點有 3 個 BYTE(RGB)組成,光讀取 就需要花上不少時間,若做完處理後再寫入,將會浪費更多時間。
故此篇論文希望可以在一次讀取與一次寫入中完成所有後處理運算。如此一 來可以節省記憶體與運算時間。加快處理人臉位置部分,甚至在未來可以一併處 理臉部的化妝,邊緣強化,消除紅眼等特效!
第三章 人臉位置尋找相關研究
人臉偵測之研究已經存在許久,若以現在最準確的演算法來分析,並加以修 改後,使用在數位像框平台上,是此篇論文的重點。
先就常用的人臉偵測演算法來討論,以下討論 Paul Viola 與 Michael Jones 所 探討的:強健性即時人臉偵測(Robust Real-Time Face detection[2])與色彩空間尋 找人臉 兩種。 以下討論皆為其他人所做之研究,此論文會取其部分相關知識加 以應用在人臉判斷式中!
3.1 即時人臉演算法分析
Paul Viola 與 Michael Jones 所探討的:強健性即時人臉偵測(Robust Real-Time Face detection[2]) 為最近應用上最常見的演算法,也是最多人應用的演算法,所 以我們先就此演算法進行分析。另外此作者也有另一篇使用 Boosted
Cascade 進行簡單特徵的快速物件偵測(Rapid Object Detection Using a Boosted Cascade of Simple Features)討論,可以參考。
3.1.1 影像積分
所謂的影像積分的概念,如下圖 2 所示,點(x,y)位置的值為左上角所有灰色 方塊範圍內的像素值的加總。所以我們可以從(0,0)位置將灰階值加總計算後存在 矩陣 A(0,0)中,依此類推,A(100,100)則為(0,0)~(100,100)所有灰階值加總。我們 也可以將公式簡化,
故
A(0,0) = (0,0)的灰階值 A(0,1)=A(0,0)+(0,1)的灰階值 A(0,2)=A(0,1)+(0,2)的灰階值 依此類推
A(1,0)=A(0,0)+(1,0)的灰階值 A(2,0)=A(1,0)+(2,0)的灰階值 由此我們可以推導出
A(100,100) = A(99,99)-A(100,99)-A(99,100)+(100,100)的灰階值。
所以
A(x,y)=A(x-1,y-1)-A(x,y-1)-A(x-1,y)+(x,y)的灰階值。
圖 2 影像加總示意圖
圖
圖 3 灰色區域計算示意圖
上述影像加總求得 A(0,0)~A(x,y)的統計資料後,我們要計算圖 3 中,灰色 區域位置的影像灰階加總,只需要查表後做以下簡單的運算就可以知道:
Integer = A(20,20)-A(100,20)-A(20,100)+A(100,100)
如此一來要計算任何一個位置的灰階加總,不需要重頭計算一次,只需要做查表 運算既可。
3.1.2 特徵區分
有了影像積分值的定義以後,可以很容易的計算出每一個位置內灰階影像值 的總合,進而可以得到每一個定義範圍內的總合相減所得到的差值。所以對於每 一個選取範圍內的運算結果,就會產生對於選取範圍內的類似下圖 4 的特徵,
我們稱之為方形特徵(rectangle feature[2][24]),這些方形特徵的大小不固定,但 是白色的方塊一定和灰色的方塊一樣大。這些方塊會像過濾器一樣,在一張圖像 之間移動。而對於每一個方形特徵值的計算,就是將白色的影像積分值減掉灰色 方框影像積分的值。此種像素總合相減的差值所代表的特徵也稱為 Haar[8] 特 徵。這些特徵用於人臉的判斷如下圖 5 所示。
。
圖 4 特徵圖
圖 5 特徵應用於人臉辨識上
圖 5 所示之灰色與白色部分的計算,都是使用影像積分所產生的矩陣查表運 算。此方式可以節省許許多多的時間,相對的必須付出的代價就是浪費記憶體空 間。
3.1.3 Ada-Boost
Boosting 是一個將弱學習(weak learn)算法融合為強學習算法(strong)的方 法。Ada-Boost[3]算法本身是通過改變數據分布來實現的,它根據每次訓練集之 中每個樣本的分類是否正確,以及上次的總體分類的準確率,來確定每個樣本的 權值。將每次訓練得到的分類器最後融合起來,作為最後的決策分類器。
Ada-boost 是一個分類法的概念,簡單的說,分類系統以更新權重的方式來 降低錯誤率。以此用在經過訓練的樣板上面。 Boost 是一種常用來增進學習演算 法正確率的方法。使用 boost 分類器可以排除一些不必要的特徵,並將關鍵放在 關鍵的特徵上面。Ada-Boost 的理論由 Yoav Freund 與 Robert Schapire 於 1995 年提出,並且解決了當時許多在 boosting 實作上的困難。
以下簡單的介紹一下 Ada-boost 的演算法。
原始Ada-boost演算法的輸入為(x1,y1)...(xN,yN),每個x 屬於某個維度空間i 或是物件空間 X ,y 為i x 的類別名稱,屬於某一類別名稱集合Y ,i Y {1,1} 也就是僅將事件分為兩種。Ada-Boost重覆執行 t=1,……,T次弱學習或學習演 算法的基本事件。主要的目的就是要去維持分布以及在訓練集合中集合的權重。
Ada-boost 一個主要的概念是會保存訓練樣本機率分佈的資訊,令第 n 個樣 本在第 t 階段機率分佈的權重為dn(t)。在初始化的時候所有權重會設為等值,但 是經過每個訓練階段,被分類錯誤樣本的權重會增加,所以弱分類器被迫面對訓 練資料中那些比較難分類正確的樣本。
Ada-boost 訓練演算法流程如下:
首先我們定義:xi為第i筆輸入資料,i1,2,...N,其中xiX 為某維度空間 X 中特徵向量,y 為i x 標籤資訊,其中i yi Y {1,1}。
輸入:(x1,y1)...(xN,yN),與指定弱分類器數量T。
初始化: 初始化樣本權重d ,其中n d 表示第n個樣本權重。(d是一個機率分布,n 故
Nn t
dn 1
)
1 ( ),
dn(1) N1
,所有的n1,2,...N。
步驟 1. 使用樣本機率分布d(t)訓練弱分類器ht:X {1,1}。 步驟 2. 計算弱分類器h 加權誤差t
N n n t n
t n
t d y h x
1 )
( ( ( ))
。
步驟 3. 計算弱分類器權重 1 ) 2ln(
1
t t
t
。此方式讓分類叫好的分類器有較大
的權重。
步驟 4. 更新下一個樣本機率分布
t t t n
n Z
d( 1) d
) ( ),
exp(
) ( ),
exp(
i t i t
i t i t
x h y if
x h y if
t t
Zt 2 (1 ,意即隨著 正規化所選擇的分類器t h t 輸出:為一個強分類器H(x),
Tt tht x
sign x
H( ) ( 1 ( ))
如果每次的比較微弱的假設都稍微的比隨機好,這樣一來訓練誤差就會呈 現指數的形式下降。對於一些早期提出的 boosting 的方法也有相同的效果,不過 早期的演算法需要先知道最低的邊界,但在實際上,我們非常難獲得這個值。另 一方面來說 Ada-Boost 可以去適應每一個比較微弱的假設誤差率,這也就是其名 稱的由來,而 Boost 前的 ”Ada-”是適應性(adaptive)的縮寫。
以下我們舉例如下圖6 所示,來看看如何產生強健的分類器H(x)。假設一 空間中有10個特徵向量x(1~10),我們用y(1~10)來標示”+”與”-”。接下來透過第一個 弱分類器h 來分類選擇後,我們發現有三個”+”為誤差,故加權誤差1 1 0.3,且 可求得10.42。經過h 分類後,發現三個”+”分類錯誤,所以我們加重其比例。1 緊接著我們產生弱分類器h 來分類選擇卻又發現有三個”-”分類錯誤,故我們可2 以求得2 0.21、2 0.65。經過h 分類後,發現三個”-”分類錯誤,所以我們加2 重其比例。接下來我們產生弱分類器h 來分類選擇,卻又產生兩個”+”與一個”-”3 分類錯誤,故我們可以求得3 0.14、3 0.92。假設訓練到此為止,我們可以 產生出強健的分類器如下:
)) ( 92 . 0 ) ( 65 . 0 ) ( 42 . 0 ( )
(x sign h1 x h2 x h3 x
Hfinal
t 0
1
2
3
final
H
圖 6 Adaboost 範例
3.1.4 層疊分類器
層疊分類器(Cascade classifier)的判斷,就如下圖 7 所示:
圖 7 Cascade classifier
我們一開始將特徵分成好幾個分類器。最前面的分類器辨識率最低,但是可 以先篩選掉很大一部份不是人臉的圖片;接下來的分類器處理比較難處理一點處 理的事件,且篩選掉的圖片也不如第一個分類器多了;依此下去,直到最後一個 分類器為止。最後留下來的就會是我們想要的人臉的照片
然而應該要決定多少個分類器呢?這個問題決定於我們所設定的絕對錯誤 率(false positive rate)以及正確偵測率(detection rate)而定。所謂的絕對錯誤率就是 我們將人臉的圖片誤判成不是人臉的圖片的機率。而所謂的正確偵測率則是正確 找到人臉的準確率。通常這兩者之間會有妥協,如果我們想要達到比較高的正確 偵測率,那麼絕對錯誤率可能就會比較高一點;而如果想達到比較低的絕對錯誤 率,那麼正確率難免就會下降。
3.2 膚色範圍
有關膚色範圍的判定,以 RGB 色彩空間來看,很難針對膚色做出判定。因 為膚色範圍在 RGB 色彩空間中並非連續的,而是離散的方式呈現。所以,如果 要在一張影像中找出膚色範圍,我們必須要轉換色彩空間。正規化 RGB 方式是 一個很有效的判定方法。取得樣本圖片之後,對這些彩色圖片,由 RGB 彩色空 間轉換到 NCC(normalized color coordinates)彩色空間之中,RGB 色彩模型對於光 線強弱有相當的靈敏度。因此,我們將色系由 RGB 轉換到 NCC 空間。轉換公式 如下所示:
紅色像素轉換:
B G R r R
綠色像素轉換:
B G R g G
紅色像素的轉換,目的是在減少紅色系對亮度之依賴,同理,綠色像素的轉換,
目的是在減少綠色系對亮度之依賴。
在膚色統計範圍中,若 X 軸代表 r,Y 軸代表 g,我們則可以觀察到膚色的分佈 範圍將會相當的集中,其中 X 軸的範圍約在 0.25 到 0.65 之間,Y 軸的範圍約在 0.2 到 0.4 之間。
因此,利用兩個二次方程式即可定義出膚色的範圍F1(r)與F2(r):
2
1( ) 1.376 1.0743 0.1452 F r r r
2
2( ) 0.776 0.5601 0.1766 F r r r
由於白色(r=0.33 且 g=0.33)也會在定義的範圍中,所以加入下面的條件加以排 除。
2 2
( 0.33) ( 0.33) 0.0004 w r g
綜合以上的條件,即可定義出膚色的範圍
otherwise
w r F g r F g S if
0
0004 . 0
&
) (
&
) ( (
1 1 2
經過上述判斷處理之後, 發現大部分的膚色像素的確都可以被過濾出來,但 畫面中一些黃綠色系、白色系及藍色系的部份卻無法ㄧ併消除。為了改進上述所 提方法之缺失,使得膚色偵測結果符合我們的要求,我們將所提膚色偵測之數學 模型作了調整,並另外加入兩個判斷規則,讓實驗結果更為精確,調整如下:
otherwise
G R B G R w
r F g r F g S if
0
) 5 ) (
&
&
001 . 0
&
) (
&
) ( (
1
1 2上述式子之常數項係數改變,其目的是要使人臉膚色之統計範圍加大。w 的範 圍值也做了調整,以便移除更多接近白色的雜訊點。另外多加了兩項判斷式:
(1) R > G > B:因為彩色像素是由 R、G、B 三原色所組成,經由實驗分析,可以 發現膚色的像素值在一般情況下有 R > G > B 的規則;
(2) R–G >= 5 則是為了要排除非膚色像素之黃綠色系雜訊點。
增加上述兩判段可以讓取得的圖像範圍更加理想。
另外,如果將色彩空間由 RGB 轉換到 YUV 呢?YUV 的彩色空間主要是將 亮度分離開。RGB 與 YUV 互轉公式如下:
Y = 0.299R + 0.587G + 0.114B U = -0.147R - 0.289G + 0.436B V = 0.615R - 0.515G - 0.100B R = Y + 1.14V
G = Y - 0.39U - 0.58V B = Y + 2.03U
RGB 空間中,膚色受亮度的影響很大,膚色在 RGB 彩色空間中是離散的,
並非是連續的,如此一來我們很難將膚色分離出來。除了上述的 NCC 空間的轉 換,若是轉換成 YUV 彩色空間是否會比較好判斷呢?如果把 RGB 轉為 YUV 空 間的話,我們可以忽略亮度的影響,因為 YUV 空間受亮度影響很小,膚色會產 生很好的聚集。所以若將三維的空間轉換成 UV 二維的空間,膚色範圍就比較容
易可以規範出來。根據經驗與實驗,我們可以得知膚色範圍可以有以下的定義:
77<U<127 133<V<173
如此一來我們就可以在 YUV 彩色空間中定義出膚色的連續範圍,並加以判 斷與偵測。
有關膚色與人臉辨識相關的討論也有許多,例如利用色彩的人臉偵測(Face Detection in Color Images)[7],延伸類似 Haar 特徵的物件快速偵測(An extended set of Haar-like features for rapid object detection)[8],利用量化膚色範圍結合小波分析 之人臉偵測(Face Detection Using Quantized Skin Color Regions Merging and Wavelet Packet Analysis[25]),使用膚色比例前處理之即時性人臉偵測系統[13]...
等,這些討論的提出足以證明了膚色判斷的確可以增加人臉辨識判斷的速度。
本論文因為需要在相框上實做,考量到相框本身都是基於 YUV 的色彩空間 處理與存放於記憶體中,所以我們可以省略 RGB 與 YUV 空間轉換的運算,直 接就可以針對記憶體中的圖像做膚色判斷的處理!
3.3 其他相關研究
人臉特徵研究與辨識,有許多前人的研究可以參考,如本論文文獻探討部分 所列出來的各篇研究,都是很好的參考依據,可以藉由加以改良。
人臉偵測尚有許多研究可以應用,例如 :可借由統計的方式,得出橫向軸與縱 向軸部分每一個累加得到的膚色值,加總後會有如下圖 8 的表示結果
圖 8 橫向與縱向特徵統計
以此方式就可以很容易知道臉部座標位置,只需要在此位置附近尋找,就可 以很容易找到人臉。此方法也可大大減少搜尋人臉部位置的時間,只要針對比較 特別的座標軸做處理就可以得到正確人臉位置!
第四章 人臉偵測方法與系統應用
基本上我們先在 PC 上面使用 Virsual C++ 先驗證使用的方法是否有效,並 且實際上與 Open CV 做比較,確定節省了記憶體,整體效能也不比 Open CV 差,
辨識正確律反而高些!
確定方法後,實際應用於數位相框上。使像框可以做到針對人臉的動態拉近的 效果。
4.1 程式流程
本論文所使用的方法為結合膚色範圍偵測並使用特徵區分與層疊式分類器 的判斷後,修改部分偵測人臉的流程,使流程可以儘量在一次的掃描判斷後,將 每一個區塊的權重計算出來,並將資料濃縮為 1~4 種特徵,借以減少記憶體使 用,並加快比對速度,以期達到節省記憶體使用且可以使用在數位像框上的目的。
以下先由運用的方法與系統流程圖來做介紹。
首先我們會針對整張影像以 6x6 為一個區塊為單位,計算出膚色的權重後,
放到特徵矩陣 Feature[x][y]中,如下方流程圖 9 所示:
圖 9 利用膚色特徵計算權重
當權重都已經計算完成後,依照權重大小區分為 1~4 個等級,在將轉換後的
資料存回特徵矩陣中,以 10x10 的遮罩與建立好的人臉資料庫中的人臉資料做比 對。比對流程如下圖 10:
圖 10 10x10 遮罩與人臉資料庫比對流程
4.2 膚色範圍判定
首先,我們針對每一張圖片的顏色做出分析與區隔,依照類似 3.2 章節所描 述之方法,但是我們系統所採用的為 YUV420 與 YUV422 模式,所以系統不需 要花多餘的時間將 RGB 轉換為 YUV,只需要直接將記憶體中的資料做判斷就可 以了,所以利用 YUV 空間來判斷膚色範圍。
判斷 Y 與 U 與 V 的關係,設定範圍定義出膚色的區域。
我們設定不同範圍有不同的權重,經實驗後,得到結果如下:
(Y<75) && (U>120 && U<140) && (V>120 && V<140) = 6
此定義針對膚色較暗處給予較高權值,此範圍針對眼睛與眼睛周圍部份,權值較 高可以在膚色範圍中將明暗不同的位置凸顯出來。
(Y>60 && Y<245) && (U>80 && U<140) && (V>130 && V<170) = 1
此部分為大部分的膚色範圍,加權後可以將此區塊區分為膚色或是非膚色範圍。
Otherwise 非膚色範圍 = -1。
我們使用一張有背景的圖片如圖 11 做上述的驗證,此時我們不需設定權 重,只需要將不同判斷顯示出來說明既可。
圖 11 原始圖檔
上述圖片後經過較大權重判斷方式,符合判斷式條件者為 1,其餘為 0,將 圖片二值化。處理後可以明顯看到臉部特徵有落到白色區塊內,如眼睛、鼻子與 嘴巴部位。如下圖 12 所示:
圖 12 較大權值範圍二值化
接著利用較小權重判斷方式判斷,符合判斷式條件者為 1,其餘為 0,將圖 片二值化。處理後可以明顯看到白色區塊為膚色的範圍,如圖 13 所示。
最後依照上述兩個判斷方式結合,處理結果較大權重以紅色表示,較小權重 以白色做表示,產生結果如下圖 14 所示。如此一來可以很明顯看到,整個臉部 包含五官部位都可以很清楚被判別出。
如此一來,我們就可以針對判斷出來的區域,做臉部邊緣與特徵分析,進而 可以與人臉資料庫比對找出正確的人臉位置!
圖 14 膚色判斷結果
4.3 臉部特徵分析
由 4.2 章節所描述的膚色範圍取得後,針對範圍內做邊緣分析,用以得到特 徵值,結果如下圖 15 所示:
圖 15 邊緣分析
透過邊緣分析,我們可以得出另一個權重值,用以判斷是否為臉部的五官特 徵,然後再把所有權重相加後,放入 Feature [x][y]中,以便在後續化簡分析中使 用。
於本論文中,將輸入影像以 6x6 的區塊做切割處理,所以我們就針對此 6x6 的區塊做特徵的權重判斷。參考第三章所討論的做法,影像積分,Haar 特徵判 斷,再依照是否有特徵給出權重 0~30。依照每一個 6x6 區塊中的更小分割區塊 判斷,以 3x3 分析,在 6x6 的區塊中可以分割出 16 個分割區塊,如下圖 16 所示,
依此類推。4x4 分析,在 6x6 的區塊中就可以分割出 9 個分割區塊,如下圖 17 所示。5x5 分析就可以區分出 4 個分割區塊,如下圖 18 所示。
圖 16 3x3 分割區塊示意圖
圖 17 4x4 分割區塊示意圖
圖 18 5x5 分割區塊示意圖
最後所有分割區塊總數會有 30 個,每一個分割區塊中,若有特徵就給 1 分,
最高總分為 30 分。
4.4 膚色與特徵權重加總計算
首先我們定義每一個基礎區塊為 6x6 的方塊,在 6x6 的方塊中做處理,計算 出每一個方塊的權重後,將權重區分為 1~4 個等級,然後再將區分等級後的組合,
以 10x10 的遮罩來與資料庫中的人臉做比較,借以確定人臉位置。
以下敘述一下 6x6 的區塊內權重的計算方法:
1. 依照 4.2 節所描述之膚色判斷方式,在 6x6 的方塊內,先將膚色範圍內的每 一個點做加權計算。因為膚色範圍如果過於狹隘,會造成膚色範圍內的眼睛 相關位置無法判別,所以會有黑色與白色附近顏色的加權。我們不做眼球顏 色判別,但是眼睛周圍就會有陰影可供判定。所以確定為膚色加權為 1 分,
黑色與白色附近顏色加權為 6 分,其他顏色為-1 分。總數相加後最高分為 36 x 6 = 216。最低分當然就是 0 分。
2. 上述分數超過 60 分,我們就針對此區塊做 4.3 節所描述之特徵的權重判斷。
利用 6x6 區塊,再依照是否有特徵給出權重 0~30。然後就是在此 6x6 分割區 塊中判定是否有特徵存在。如此一來總共會有 30 個分割區塊,總分為 30 分,
故最高分會達到 246 分。
3. 依照權重區分為 1~4 種不同的等級:
等級 1: 權重 20~49 等級 2: 權重 50~89 等級 3: 權重 90~149 等級 4: 權重 150~250
4. 資料庫也是利用上述權重計算方式建立,我們定義了一種可以將相似資料庫 相加的方式,此方式可以讓一組資料庫更簡化,並可以對比出更多的人臉。
資料庫建立前,算出整張圖的特徵權重,先用既有資料庫來做比對,然後找 出一組最接近的資料庫做相加,產生出的等級就會增加到 7 種,定義如下:
等級 0: 權重 20 以下 等級 1~4 與上述分類相同
等級 5: 如果第一次與第二次不同,但分別為 1 與 2 則改變等級為 5。
等級 6: 如果第一次與第二次不同,但分別為 2 與 3 則改變等級為 6。
等級 7: 如果第一次與第二次不同,但分別為 3 與 4 則改變等級為 7。
我們在資料庫的建立上,多出了三個等級,此三個等級與原本設定的 1~4 個等級定義的權重範圍有所重疊。要如何產生此三個等級,就需要由兩個相似的 人臉資料庫重疊來產生。假設有一個區塊等級為 1,我們可以知道,此區塊的權 重落在 20~49 之間。若另一相似人臉的同一位置區塊等級為 2,權重落在 50~89 之間,系統會自動將此區塊的等級設定為 5,所以我們可以知道等級 5 的判定範 圍容忍度更大,等於權重落在 20~89 之間。等級 6~7 依此類推,可以得知等級 6 為等級 2 與等級 3 相加,等級 7 為等級 3 與等級 4 相加。經過此轉換後所產生的 人臉資料庫,同一區塊的判斷,將會有更大的容許範圍。簡單的說,兩張近似人 臉所產生的資料庫為同一個,此資料庫會有更大的容許範圍,意即可以判斷出更 多的人臉。
由上述描述,我們可以轉換為公式表示如下:
輸入一個區塊影像 (x,y),...,(x6,y6) 定義 (xi,yi)於膚色範圍 S = 1
定義 (xi,yi)於較暗與較亮的膚色範圍 B = 6 定義 (xi,yi)非膚色 N = -1
定義 (x,y),...,(x6,y6) 方塊內的分割區塊權重加總 E 權重加總:
6
1
) , ( ) , ( ) , (
i
i y i x N i y i X B i y i x S wt
E wt wt then wt
if 60
依照權重等級區分如下:
4 250
&
150
3 149
&
90
2 89
&
50
1 49
&
20
Level then
wt wt
if
Level then
wt wt
if
Level then
wt wt
if
Level then
wt wt
if
4.5 利用單一資料庫的臉部偵測
依照 4.4 節所述,於電腦實做,輸入圖片如下圖 19 所示。首先我們以 6x6 的 區塊,針對圖像做出分析,求出所有特徵值後化簡為 1~4 種等級,並存放在特徵 矩陣中。
接下來由自己判斷人臉位置,並針對人臉位置抓取 10x10 遮罩表格,建立在 資料庫中,如圖 20 所示。最後產生的人臉資料庫內容如下表格 1 所示。最後我 們依照得出的資料庫,與原圖比對,判斷臉部位置如下圖 21 所示。
圖 19 輸入樣本
表格 1 等級區分結果表
圖 21 偵測顯示結果
1 1 2 2 3 3 2 2 2 3 1 1 1 1 2 3 3 2 1 2 2 1 1 1 4 2 2 1 1 1 1 1 2 2 3 2 3 2 2 2 3 3 3 4 2 3 3 3 3 3 3 3 4 2 3 3 4 2 2 3 3 3 3 2 2 2 2 2 2 2 3 3 3 2 2 1 2 2 3 3 3 3 2 1 1 1 1 1 1 2 3 1 2 2 2 1 1 1 3 3
4.6 不同大小人臉的偵測
照片中的人臉永遠不是一定的大小,一張多人臉的圖片,也會有些人比較遠 有些人比較近。本論文提出之方式,如果以固定大小來判斷,很難針對不同大小 的人臉做出正確的判斷。但是如果圖片可以隨著判斷失敗後,漸漸縮小,重複判 斷,就可以針對不同大小的人臉,做出正確的判斷。
由於此相框針對圖片放大縮小有特定指令,且為硬體加速處理,所以不需要 擔心放大縮小所造成的時間浪費。我們針對 800x600 影像逐漸縮小,每次縮小為 原本圖像的 90%,直至大小接近 280x210,如果再小,我們就不予判斷。故由 800x600 縮小至 280x210 大約需要 10 次縮小。而因為圖像縮小,每次的判斷會 越來越快。我們的判斷簡單的說就是拿取時間換取記憶體空間。而在數位相框的 特效處理應用上,每張圖片換張時間約為 5 秒,在這段時間內做判斷處理已經是 相當足夠的!
4.7 資料庫的建立
以相同演算法於電腦上建立臉部資料庫,類似的圖片為 106 張,類似的人臉 資料會互相結合,以節省唯讀記憶體使用空間,故產生出 70 個人臉資料庫,訓 練的資料圖片並不與測試圖片相同,且為不同時間地點拍攝之圖片。
相似人臉資料結合,使用類似的臉部特徵圖片,若 A 圖所產生的特徵表與 B 圖產生的特徵表有 70%以上的相似度,可將兩者特徵結合,結合後會產生另一 個模糊化的人臉資料表,其內容就會多出 5~7 種等級,此表格會比原本 A 特徵 表格或是 B 特徵表格的辨識率更高。
基於此理由,我們的訓練資料庫基本上都會有兩個不同人臉特徵表結合為 一個人臉特徵表。所以由 106 張訓練資料來產生出 70 組人臉特徵表。此特徵表 應用上已經可以符合大部分的人臉圖片。
若訓練更多的人臉資料庫,將會提高辨識率!
4.8 記憶體與資料庫大小需求分析
數位像框實際應用上,會先將任意尺寸圖片縮小為面板解析度 800x600,然 後以 YUV 的色彩空間模式存放在記憶體空間中。我們增加了唯讀記憶體的使 用,原因在於存放我們產生的 70 組人臉資料庫。資料庫的使用上,我們在此實 做上,並未化簡,所以還是以 Byte 方式存放。70 組資料庫,每組使用 100 Byte 空間,故所增加的唯讀記憶體空間為 7 K Bytes。
隨機存取記憶體(RAM)的使用,我們需要設定特徵矩陣 Feature [133][100]。
因為尚未化簡,故我們使用了 13300Bytes。額外使用的部分例如:水平特徵加總 X_ALL[10]、垂直特徵加總 Y_ALL[10]、還有其他增加的約 90 Bytes。所以我們 總共使用記憶體部分為 13300+90 = 13390 Byte = 13.39K Bytes。
以現在的數位相框來說,系統硬體使用記憶體為 64M bits = 8M Byte、唯讀 記憶體使用為 32MBits=4MByte,所以增加的部分對原本系統而言,不足以造成 系統負擔。故不需增加額外的硬體成本。
反觀若以第三章所描述之 Robust Real-Time Face detection 方式應用在數位相 框上, 針對 800x600 有複雜背景的圖片做分析, Robust Real-Time Face detection 需要使用的基本記憶體為約為(800+1)x(600+1)x8 BYTE = 3851208 Bytes,總共會 增加使用記憶體為 3.85 Mbytes。以現在使用 8Mbyte 記憶體平台基礎來看,基本 記憶體使用率過高。需要增加記憶體至 128Mbit。
(市面上的記憶體比 64M 大的就是 128M)
以此證明所以我們所提出的方法就可以增加人臉放大的特效,且不需要增加 額外的成本!
本論文所實行的方法,雖有誤判率,但在數位像框的應用上,尚可接受,論 文討論的目的在於節省記憶體使用,與降低資料庫的大小,故可以證明,
A. 特徵判斷仍是人臉辨識最重要的一環。
B. 結合膚色範圍判斷,可以有效的降低誤判與加快判斷的速度。
C. 改變計算的流程與遮罩的應用可以減少記憶體的使用。
D. 近似人臉資料庫結合,可以減少資料庫的大小。
後續會介紹此論文的方法在數位像框上的實際應用,並完成針對人臉拉近的 特效!
第五章 實驗與應用 5.1 實驗的方法
採用訓練後的 70 組數據為基礎,針對一般旅遊照片,居家照片,室內,室 外,昏暗,背光等各式不同的場景照片,找出樣版約 200 張,有多人合照,單人 特寫等由 1~200 編號。由這些照片驗證是否可以正確判斷出人臉位置為依據,並 與 Open CV[9]的演算法做出正確率的比較。
我們採用六項參考性指標。做出比較 1. 正確人數
2. 誤判人數 3. 部分正確張數 4. 完全正確張數 5. 人數正確率 6. 總時間。
5.2 人臉位置偵測的正確性實驗
依上述六項參考指標,建立好表格如下表格 2 所示
表格 2 人臉辨識比較統計參考指標
分類 圖片 編號
解析度
相片 人數
正確 人數
誤判 人數
時間
部分正 確(張)
完全正 確(張)
人數正 確率
是否誤 判 室內 1 1500x1000 4 4 0 3.4 1 100 0 室內 2 1773x1182 7 7 0 5 1 100 0 室內 3 1500x1000 2 2 0 3.8 1 100 0
針對兩百張圖片,個別對於本論文與 OpenCV 做出統計,由於統計表格冗 長,故整理後如下圖 22 所示 :
0 50 100 150 200 250 300 350 400 450
相片人數 正確人數 誤判人數 時間 部分正確(張) 完全正確(張)
本演算法 OpenCV
圖 22 比較本演算法與 OpenCV 計結果長方圖
同樣以 200 張圖來做判斷,本演算法判斷後,完全正確為 130 張,完全正確辨 識率為 65%。
若是以我們使用在數位像框上來說,因為只有做出針對人臉拉近的特效,故 只要判斷出人臉,誤判少於 2 張就屬於正確來說:
部分正確 + 完全正確 – 大於兩張的誤判 42 + 130- 2 = 170
會增加到 170 張,辨識率為 85%
OpenCV 實驗後,完全正確只有 58 張,完全正確辨識率為 29%。
故只要判斷出人臉,誤判少於 2 張就屬於正確來說 : 部分正確 + 完全正確 – 大於兩張的誤判
125 + 58 - 62 = 121
會增加到 121 張,辨識率為 60%
5.3 比較結果整理
本實驗以兩百張圖為基礎,做出人臉辨識比較,我們設定重要指標為:
1. 完全正確 :找到照片中每個人的臉部位置(包含框錯位置) 2. 部分正確 :只找到部分的人臉
3. 誤判張數 :照片中有誤判非人臉位置的張數 4. 錯失偵測 :完全沒找到人臉
5. 誤判次數 :誤判到非人臉位置,以個數計算 6. 平均完成時間:判斷總時間 / 總張數
表格 3 就上述六項分析比較:表格內藍色部分為比較好的部分
表格 3 本論文與 OpenCV 基本指標比較表 Open CV 本論文
完全正確 164 139
部分正確 19 33
誤判張數 132 35
錯失偵測 17 28
誤判次數 407 44
平均完成時間 1.87 2.38
由上述表格分析,OpenCV 判斷出人臉的張數總共為 183 張,本論文提出方 法只有 172 張。OpenCV 平均處理時間明顯較短,本論文以時間換取記憶體空間,
所以平均完成時間比較長。但是以誤判部分來分析的話,OpenCV 因為沒有使用
膚色判斷,有些綠葉或是複雜背景處理上就比較差,誤判很高。本論文因為有經 過膚色判斷,所以明顯的降低了誤判率!!
但此論文是針對應用到數位相框產品為導向,所以只要可以判斷出人臉,並 且誤判張數不能超過 2 個,否則此應用常常會針對非人臉位置放大,就失去了數 為相框的意義了,所以我們多定義了一個可應用率的比較,可應用率的計算方式 如下:
(部分正確+完全正確–誤判>2) / 總張數
故更新如下表格 4 所示:藍色部分為比較好的部分!
表格 4 本演算法與 OpenCV 於數位相框應用上比較表
Open CV 本論文
總張數 200 200
完全正確 164 139
部分正確 19 33
誤判張數 132 35
錯失偵測 17 28
誤判次數 407 44
平均完成時間 1.87 2.38
誤判>2 62 2
可應用正確率 60% 85%
整體比較結果,我們可以知道,雖然 Open CV 速度有比較快,但是誤判率 較高,本論文提出方法雖然完全正確張數不及 OpenCV 且判斷速度慢上許多,但 是誤判較小。誤判多在應用上就會常常出現無法針對正確人臉位置拉進的缺點。
由於數位相框應用上,人臉偵測是使用在換圖的特效上,每張圖片換圖時間基本 為 5 秒,所以能在 5 秒內做出判斷已經足夠,即使超過 5 秒,只要不超過太多,
使用者也不容易發現。所以就記憶體使用與判斷出來的結果可應用正確率來說,
本論文提出之方法較為適用在數位像框應用上!
以下圖片的比較是我們在 PC 上實做兩者的比較。Open CV 執行結果如圖 23 所示,我們可以清楚看見,有兩個誤判的框。
圖 23 Open CV 執行結果
本論文執行結果如圖 24 所示,本論文加入了膚色判斷後,可以清楚判斷非 膚色的誤判,此外利用膚色範圍內的臉部特徵判斷,也排除了腿部的誤判!
圖 24 本論文執行結果
5.4 相框實際應用
針對像框的實做應用上,我們在硬體上使用了 Leon base 的 IC Cheertek CT956E 平台, 工作頻率 133Mhz ,DRAM 64M bit , 800x600 解析度面板,此產品使 用目前市面上銷售之機種實做。完整平台如下圖 25 所示:
圖 25 數位相框完整平台
有關內部硬體電路部份如圖 26 所示:
圖 26 相框硬體電路部份 A: 主要晶片 Cheertek IC 956E
B: DRAM 64M bit C: SPI Flash (ROM) D: 800x600 解析度面板
E: Nand Flash (ROM) 為相框內置存放空間,2G Byte,用來儲存照片,與電腦連 線可以當 Mass Storage 使用。
人臉偵測功能,顯示如圖 27 與 28 表示,圖 27 為原始圖檔,目前會由系統 轉換為 800x600 解析度,點對點輸出在畫面上,執行人臉偵測後,如圖 28 表示,
會針對人臉位置將畫面拉近(放大)。執行時間約 0.5~1sec 左右!
圖 27 原始圖檔
圖 28 人臉位置偵測後拉近
第六章 結論與未來展望
依照實驗數據分析,本論文提出的方式,完全正確比率比 Open CV 高出許 多,在應用上,雖然平均時間較 Open CV 高出 0.5 秒,但是在數位像框上,是可 以容許 0.5 秒的等待的,畢竟在撥放當中,每張圖片更換時間最小為三秒,但是 若誤判人臉位置比例高的話,就會造成拉近的部分,都不在臉上,所以本論文有 確實達到人臉偵測的效果。
本論文至今為止單純的把演算法做些許修改,但未針對複雜度與可重複計算 部分優化,若在未來有將此部分優化,將會讓整體速度提升更多。以現在的相框 應用上並不如此苛刻,所以我們只證明此方法確實可以達到我們的應用目的。
未來若優化時間後,可以多出許多時間,我們甚至可以針對人臉做出更多的 處理,例如:
1. 紅眼消除(此方式就可以針對紅眼部分,不會影響到其他位置)
2. 膚色化妝(演算法中間有做膚色介定,可以找出正確膚色位置,針對臉部處 理,其他不處理)
3. 臉部除皺(可以針對臉部做細紋的霧化處理,可以消除皺紋)此些項目都可以 在此論文的處理掃描過程中,一次解決。
相框的應用上已經越來越少了。以現在功能最多的相框來說,一般相框,只 需要做到圖片撥放就足夠,但是相機也增加了錄影功能,甚至可以做高解像 1080P 錄影,所以相框應該可以將相機產生出來的格式全部都可以撥放,才是好 相框。所以,未來相框應該可以結合無線,撥放部落格照片,甚至可以撥放 Youtube 或是影片,網路收音機也會是其中一項功能,所以相片來源越來越多,我們此功 能也可以結合相框,做到只撥放有人臉的照片,若結合特徵位置輸入,更可以做 到只撥放特定某人的照片等...希望在未來數位相框的功能將會更加的強大!
參考文獻
[1] Feature-Based Image Metamorphosis Siggraph '92 Thaddeus Beier Silicon Graphics Computer Systems 201 I Shoreline Blvd, Mountain View CA,Vol.26 Issue 2 (July 1992) table of contents,pp. 35-42, 1992
[2] Paul Viola, Michael Jones, Robust Real-Time Face Detetion, International Journal of Computer Vision, Vol. 57, No. 2, PP 137-154,2004.05.
[3] P. Viola and M. J. Jones, "Fast and Robust Classification using Asymmetric AdaBoost and a Detector Cascade," NIPS 14 , pp. 1311-1318, 2001.
[4]P. Viola and M. J. Jones, "Rapid Object Detection Using a Boosted Cascade of Simple Features," IEEE Computer Society Conference on Computer Vision and Pattern Recognition, Vol. 1, pp. 511-518, 2001.
[5] R. Lienhart, A. Kuranov and V. Pisarevsky, "Empirical Analysis of Detection Cascades of Boosted Classifiers for Rapid Object Detection", Lecture Notes in Computer Science.Vol. 2781,PP. 297-304,2003.09
[6] M. H. Yang and N. Ahuja, “Detecting Human Faces in Color Images,” Image and Vision Computing,Vol. 18,Issue 1, pp. 63-75, Oct. 1999.08.[7] R.L. Hsu, M.
Abdel-Mottaleb, and AK. Jain, "Face Detection in Color Images," IEEE Trans. Pattern Analysis and Machine Intelligence, Vol. 24, no. 5, pp. 696-706, 2002.
[8] R. Lienhart and J. Maydt, “An extended set of Haar-like features for rapid object detection”, IEEE ICIP 2002, Vol. 1, pp. 900-903, Sep. 2002.
[9] Intel’s Open source Computer Vision library, http://www.intel.com/technology/
computing/opencv/index.htm.
[10] H.A. Rowley, S. Baluja, and T. Kanade, “Neural Network-Based Face Detection”, IEEE Trans. PAMI, Vol. 20, pp. 22–38, 1998.
[11] K.K. Sung and T. Poggio, “Example-Based Learning for View-Based Human Face Detection”, IEEE Trans. PAMI, pp. 39-51, 1998.
[12] K. Sobottka and I. Pitas, “Extraction of facial regions and features using color and shape information”, in Proc. 13th International Conference on Pattern Recognition, pp.421-425, Vienna, Austria, Aug. 1996.
[13] 張榮勝,張文鐘,”使用膚色比例前處理之即時性人臉偵測系統”,交通大學電 信所碩士論文。National Chiao Tung University IR, 2007。
[14]Y. Freund and R.E. Schapire, "A decision-theoretic generalization of on-line learning and an application to boosting," Journal of Computer and System Sciences, vol.55, pp. 119-139, 1997.
[15]R. E. Schapire, "The Strength of Weak learnability," Machine Learning, Vol. 5, pp.
197-227, 1990.
[16]V. Perlibakas, "Distance measures for PCA-based face recognition", Pattern Recognition Letters vol. 25, pp.711 - 724, 2004.
[17] M. Turk and A. Penland, “Face recognition using eigenfaces,” in Proceedings of International Conference on Pattern Recognition, pp. 586-591, 1991.
[18]R. C. Gonzalez and R. E. Woods, “Digital Image Processing,” Second edition, Prentice Hall, 2002.
[19]N. Otsu, "A threshold selection method from gray-level histogram," IEEE Transactions on Systems, Man and Cybernetics, Vol. 9, No. 1, pp. 62-66, 1979.07.
[20]W. Niblack, “An Introduction to Digital Image Processing,” Prentice-Hall, Englewood Cliffs, New Jersey, pp. 115-116, 1986.
[21]J. Sauvola, M. Pietikainen, “Adaptive Document Image Binarization,” Pattern Recognition 33, pp.225-236, 2000.
[22]S. Jiazhen, S. E. Reichenbach, “Interpolation by asymmetric, two-dimensional cubic convolution,” IEEE International Conference on Image Processing, vol. 2, 2005.09.
[23]C. Garcia, and G. Tziritas. “Face Detection Using Quantized Skin Color Regions
Merging and Wavelet Packet Analysis,” in IEEE Transactions on Multimedia, vol. 1.
no. 3. September, pp. 264-277, 1999.
[24] U.J. Sung, D.K. Hyoung, H.A. Kwang and J.C. Myung,“Efficient Rectangle Feature Extraction for Real-Time Facial Expression Recognition Based on AdaBoost”
IEEE/RSJ Int. Conf. on Intelligent Robots and Systems 2005, pp. 1941-1946, 2005.
[25]楊煒達,”簡易方法之少量人臉辨識系統”,碩士論文93532003,資訊工程所,
國立中央大學,桃園(2007)。
[26]謝育書,”基於投影方法的人臉辨識之研究”,碩士論文,資訊工程所,國立 清華大學,新竹(2008)。