ระบบจำหน้า Development of Face Recognition System_04_04_2011

54
การพัฒนาระบบรู ้จาใบหน้าบุคคล Development of Face Recognition System กฤติกา ศรีพงศ์สุข Krittka Sripongsuk ณัฏฐา ปัญญาพูนตระกูล Nuttha Panyapoontrakul ธนาวุฒิ โชติชนาภิบาล Thanawut Chotichanapibal โครงงานนี ้เป็นส่วนหนึ ่งของการศึกษาตามหลักสูตรวิทยาศาสตร์บัณฑิต สาขาวิทยาการคอมพิวเตอร์ คณะวิทยาศาสตร์ มหาวิทยาลัยศรีนครินทรวิโรฒ ปีการศึกษา .. 2553

Transcript of ระบบจำหน้า Development of Face Recognition System_04_04_2011

Page 1: ระบบจำหน้า Development of Face Recognition System_04_04_2011

การพฒนาระบบรจ าใบหนาบคคล Development of Face Recognition System

กฤตกา ศรพงศสข Krittka Sripongsuk

ณฏฐา ปญญาพนตระกล Nuttha Panyapoontrakul ธนาวฒ โชตชนาภบาล

Thanawut Chotichanapibal

โครงงานนเปนสวนหนงของการศกษาตามหลกสตรวทยาศาสตรบณฑต สาขาวทยาการคอมพวเตอร คณะวทยาศาสตร

มหาวทยาลยศรนครนทรวโรฒ ปการศกษา พ.ศ. 2553

Page 2: ระบบจำหน้า Development of Face Recognition System_04_04_2011

คณะวทยาศาสตร มหาวทยาลยศรนครนทรวโรฒ

ชอหวขอโครงงาน การพฒนาระบบรจ าใบหนาบคคล

(Development of Face Recognition System)

นกศกษา กฤตกา ศรพงศสข 50102010531 ณฏฐา ปญญาพนตระกล 50102010534 ธนาวฒ โชตชนาภบาล 50102010538

ปรญญา วทยาศาสตรบณฑต สาขาวชา วทยาการคอมพวเตอร อาจารยทปรกษาโครงงาน ประดษฐ มตราปยานรกษ

ลงชอ...............................................

(ประดษฐ มตราปยานรกษ) อาจารยทปรกษาโครงงาน

Page 3: ระบบจำหน้า Development of Face Recognition System_04_04_2011

I

บทคดยอ

ในโครงงานน เราไดพฒนาระบบรจ าใบหนาบคคล (Face recognition) ทท างานบนคอมพวเตอรสวนบคคลทมกลองเวบแคมตออย เทคนคการรจ าทใชในระบบน คอ เทคนค Eigen-face ซงการท างานของระบบสามารถแบงไดเปน 2 สวน คอ (1) ขนตอนการเรยนร (Training phase) ซงจะน าภาพใบหนาของบคคลทตองการจะรจ ามาท าการวเคราะหองคประกอบหลก (Principal Component Analysis: PCA) เพอใหได Eigenvector ทจะแทน Subspace หลงจากนน ขอมลภาพใบหนาหนงๆ จะแทนดวยจดใน Subspace และ (2) ขนตอนการรจ า (Working phase) ซงจะวเคราะหภาพใบหนาทดสอบของบคคลหนงๆ เพอหาวาตรงกบภาพใบหนาใดทไดเกบไวในขนตอนการเรยนร การรจ านจะท าไดโดย แปลงขอมลภาพใบหนาทดสอบใหอยบน subspace ทไดในขนตอนการเรยนร หลงจากนนจะท าการคนหาจดใน Subspace ทใกลทสดกบจดทแทนใบหนาทดสอบ นอกจากนระบบยงท าการค านวณหาคาความนาเชอถอของการรจ า ซงถาคานมคานอยกวาคาทก าหนดไว เราจะถอวาระบบไมสามารถรจ าภาพใบหนาทดสอบนนได

Page 4: ระบบจำหน้า Development of Face Recognition System_04_04_2011

II

Abstract

In this project we have developed a face recognition system on a personal computer that is associated with a digital camera (e.g. webcam). The approach implemented in this system is based on the Eigen-face technique. The algorithm can be divided into two different phases: (1) Training phase; which the face subspace are constructed by applying Principle Component Analysis (PCA) to a set of training images captured from enrolled users. Each face image is projected to represent as a point in the subspace. (2) Working phase; given the test image of a previously enrolled user, the recognizer will project the image to represent as a point in the subspace. Then a nearest-neighbor matching algorithm is used to find the closest point (i.e. the most similar enrolled image) in the trained database (subspace). The identity of the face corresponding to the closest point is the recognition result. Moreover we compute Normalized Cross Correlation (NCC) between the test image and the reconstructed image corresponding to the closest point. The value is used as the confidence measure of recognition.

Page 5: ระบบจำหน้า Development of Face Recognition System_04_04_2011

III

กตตกรรมประกาศ

การด าเนนงานโครงการนกวาทจะประสบผลส าเรจไดนน ทางคณะผจดท าไดรบค าแนะน าอนกอใหเกดประโยชนจากอาจารยหลายๆทาน ไมวาจะเปน

อาจารย ประดษฐ มตราปยานรกษ อาจารยทปรกษาโครงการ ซงคอยใหความร ชวยเหลอ และ ชแนะแนวทางในการด าเนนงานตางๆ รวมทงใหค าแนะน าในการด าเนนงานแตละขนตอนอยางละเอยด ทางคณะผจดท าขอขอบพระคณส าหรบความอนเคราะห มา ณ โอกาสน

ขอขอบพระคณ อาจารยทกทานในคณะวทยาศาสตร เอกวทยาการคอมพวเตอร ทคอยประสทธประสาทวชาความรตางๆ ท าใหพวกเราน ามาใชใหเกดประโยชนตอโครงการ รวมทงสามารถน าสงเหลานไปใชตอไดในอนาคตการท างานขางหนา

ขอบพระคณนายเฉลมพล เอกธระวาณช(พหนง) ทคอยอ านวยความสะดวกในการใชงานหองโปรเจคแกทางคณะผจดท า

ขอบคณรนพทใหค าแนะน าเกยวกบโครงการ ขอบคณเพอนๆ ทคอยชวยเหลอและใหก าลงใจเสมอมา และขอบคณนองๆทมสวนชวยใหโครงการนส าเรจ

ขอบคณครอบครวทใหการสนบสนน คอยอยเคยงขางไมวาจะเปนชวงเวลาทกขหรอสข เปนก าลงใจทส าคญทท าใหทกสงผานพนไปในทางทด

ขอบคณมหาวทยาลยศรนครนทรวโรฒ ทท าใหพวกเรามโอกาสไดมาเจอสงดๆในรวมหาวทยาลย

กฤตกา ศรพงศสข ณฏฐา ปญญาพนตระกล ธนาวฒ โชตชนาภบาล

Page 6: ระบบจำหน้า Development of Face Recognition System_04_04_2011

IV

สารบญ

หนา

บทคดยอ ............................................................................................................................................................ I Abstract ............................................................................................................................................................ II กตตกรรมประกาศ ...........................................................................................................................................III สารบญ ........................................................................................................................................................... IV บทท 1 บทน า .................................................................................................................................................... 1 1.1 ภมหลง .................................................................................................................................................... 1 1.2 ความส าคญของการวจย .......................................................................................................................... 3 1.3 ขอบเขตของโครงงาน ............................................................................................................................. 4 1.4 กรอบแนวคดการวจย .............................................................................................................................. 4

บทท 2 งานวจยทเกยวของและเครองมอทใช ................................................................................................... 5 2.1 งานวจยทเกยวของ .................................................................................................................................. 5 2.2 เครองมอทใชทงฮารดแวรและซอฟตแวร .............................................................................................. 7

บทท 3 การพฒนาระบบรจ าใบหนาบคคล ....................................................................................................... 8 3.1 โครงสรางของระบบ ............................................................................................................................... 8 3.2 ทฤษฎทเกยวของ ...................................................................................................................................10

3.2.1 ขอมลภาพ (Image) และเวกเตอรขอมล (Vector) ..........................................................................10 3.2.2 หลกการ Eigenfaces ......................................................................................................................11 3.2.3 การวเคราะหองคประกอบหลก (Principal Component Analysis, PCA) ......................................15 3.2.4 Face detection ................................................................................................................................16 3.2.5 Geometrical Normalization ...........................................................................................................17 3.2.6 คาความนาเชอถอ (Confidence measure) ......................................................................................18

3.3 ตวอยางโคด MATLAB ........................................................................................................................20 3.3.1 ขนตอนการเรยนร (Training phase) ..............................................................................................20 3.3.2 ขนตอนการรจ า ..............................................................................................................................22

3.4 โปรแกรมการรจ าใบหนาทพฒนาโดย Visual C++ และ OpenCV ......................................................24 3.4.1 OpenCV .........................................................................................................................................25 3.4.2 โครงสรางของโปรแกรม ...............................................................................................................25

Page 7: ระบบจำหน้า Development of Face Recognition System_04_04_2011

V

บทท 4 ผลการทดลอง .....................................................................................................................................31 4.1 ฐานขอมลภาพใบหนาบคคล ................................................................................................................31 4.2 ผลการทดลองระบบรจ าใบหนาบคคล .................................................................................................34 4.2.1 ผลการทดลองกบฐานขอมล COM-SWU .....................................................................................34 4.2.2 ผลการทดลองกบฐานขอมล AR ..................................................................................................35

4.3 ตวอยางการท างานของโปรแกรม .........................................................................................................36 4.3.1 ขนตอนในการเกบขอมลภาพใบหนา ............................................................................................36 4.3.2 ขนตอนในการเรยนรจากภาพใบหนาทอยในไฟล ........................................................................37 4.3.4 ขนตอนการรจ า ..............................................................................................................................39

บทท 5 สรป .....................................................................................................................................................42 บรรณานกรม ...................................................................................................................................................43

Page 8: ระบบจำหน้า Development of Face Recognition System_04_04_2011

VI

Page 9: ระบบจำหน้า Development of Face Recognition System_04_04_2011

1

บทท 1 บทน า

1.1 ภมหลง ระบบรจ าใบหนาบคคล (Face recognition system) คอ ระบบคอมพวเตอรทสามารถเรยนรภาพของ

ใบหนาบคคลหนงๆ เกบไวในฐานขอมล ซงกระท าในขนตอนของการเรยนร (Training phase) หลงจากนน ในขนตอนใชงาน (Working phase) เมอเราถายภาพของใบหนาบคคลทเคยบนทกไวในฐานขอมลแลว ระบบจะสามารถระบไดวาใบหนาในภาพนนเปนของบคคลใด ซงสามารถแสดงดวย Block diagram ดงรปท 1.1

รปท 1.1 Block diagram ของระบบรจ าใบหนาบคคล

ระบบรจ าใบหนาบคคล ถกน าไปประยกตใชอยางแพรหลาย เชน การคนหาผตองหาวาเปนอาชญากรทอยในฐานขอมลของต ารวจหรอไม การตรวจสอบวาบคคลทผานเขาออกบรเวณหนงๆ เชน สนามบนหรอสนามกฬา เปน

ผกอการรายหรอไม ตวอยางแสดงดงรปท 1.2

Page 10: ระบบจำหน้า Development of Face Recognition System_04_04_2011

2

รปท 1.2 การใช Face Recognition ในการตรวจสอบบคคลท จะเขาไปในสนามกฬาแหงชาต ในประเทศจน 1

ดวยแนวคดทคลายกน ระบบตรวจสอบใบหนาบคคล (Face verification) จะแตกตางจากระบบรจ า

ใบหนาบคคลในขนตอนของการใชงาน ซงแสดงดวย Block diagram ดงรปท 1.3 โดยระบบจะรลวงหนาวาบคคลทก าลงจะรจ าเปนใคร ระบบจะตองตรวจสอบวาภาพทถายเขามา ณ ขณะนนตรงกบภาพทเกบบนทกไวในฐานขอมลหรอไม ซงจะใหผลลพธออกเปน 2 กรณ คอ ใช หรอ ไมใช เทานน โดยทวไปแลววธทจะระบวาบคคลทจะเขามาตรวจสอบนนเปนใคร มกจะใชการปอนรหสทคยบอรด หรอใชบตรแมเหลก/RFID ในการระบตวตนกอนใหระบบตรวจสอบใบหนาวาถกตองหรอไม

รปท 1.3 Block diagram ของระบบตรวจสอบใบหนาบคคล

1 URL: http://english.cas.cn/Ne/CASE/200808/t20080815_18764.shtml, Online as November 2010

Page 11: ระบบจำหน้า Development of Face Recognition System_04_04_2011

3

ระบบตรวจสอบใบหนาบคคลน ถกน าไปประยกตใชอยางมากกบการควบคมการผานเขาออกบรเวณหนงๆ (Access control) ตวอยางของการประยกตใชระบบนแสดงดงรปท 1.4

รปท 1.4 ตวอยางระบบตรวจสอบใบหนาบคคลทหอพกแรงงานอพยพในสงคโปร2

ในโครงงานนมความมงหมายทจะพฒนาโปรแกรมรจ าใบหนาบคคล ซงสามารถท างานไดบนเครองคอมพวเตอรสวนบคคลทวไป ทมกลองดจตอล เชน เวบแคม ตออยดวย โดยเราจะเนนสวนของการสรางระบบ (Implementation) จากงานวจยทตพมพแลว

1.2 ความส าคญของการวจย การน าคอมพวเตอรมาใชในการรจ าใบหนามประโยชนมากมาย ซงปจจบนระบบการรจ าใบหนาทถก

น าไปใชในระบบรกษาความปลอดภยเปนทนยมมากขนในประเทศไทย แตระบบทใชกนอยยงตองซอซอฟตแวรทางดาน Face recognition จากตางประเทศอย และเนองจากซอฟตแวรเหลานมราคาคอนขางแพง ท าใหองคกรทมงบประมาณนอยแตจ าเปนตองใชระบบเหลานไมสามารถพฒนาระบบได ทางคณะผวจยไดเลงเหนถงความส าคญในสวนน จงไดท าการศกษาและพฒนาระบบรจ าใบหนาเพอน ามาตอยอดองคความร ซงอาจจะพฒนาตอไปเปนผลตภณฑในอนาคต

2 URL:http://www.xidtech.com/face_recognition.htm, Online as November 2010

Page 12: ระบบจำหน้า Development of Face Recognition System_04_04_2011

4

1.3 ขอบเขตของโครงงาน

ศกษาอลกอรทมส าหรบการรจ าใบหนาจากงานวจยทเผยแพรแลว โดยเนนวธการทใช Eigenface [Kirby1990], [Turk1991a] เปนหลก

ศกษาเทคนคทางดาน Computer Vision และ Machine Learning ทเกยวของเพอเปนพนฐานความร

พฒนาโปรแกรมรจ าใบหนาบคคล ซงสามารถท างานบนเครองคอมพวเตอรสวนบคคลทใชระบบปฏบตการวนโดวสและมกลองเวบแคมตออย

ทดลองและวดผลการท างาน (ความถกตองและเวลาทใชในการประมวลผล) ของโปรแกรมรจ าใบหนาบคคล

1.4 กรอบแนวคดการวจย

ทดลองพฒนาอลกอรทมการรจ าใบหนาโดยวธ Eigenface บนโปรแกรม MATLAB เพอทดสอบแนวคด (Proof-of-concept) และท าการทดสอบผลการท างานเบองตน

น าแนวคดจากขนตอนทแลวมาพฒนาเปนโปรแกรมทสามารถท างานไดบนระบบปฏบตการวนโดวส โดยจะพฒนาโดยใชภาษาโปรแกรม C++ และใช OpenCV เปนฐานในการพฒนา

ทดสอบประสทธภาพการท างานของโปรแกรมบนฐานขอมลใบหนาทใชกนอยางแพรหลาย เชน AR face database [Martinez1998] เปนตน รวมทงจดสรางฐานขอมลของตนเองเพอท าการทดสอบการท างานแบบ online

Page 13: ระบบจำหน้า Development of Face Recognition System_04_04_2011

5

บทท 2 งานวจยทเกยวของและเครองมอทใช

2.1 งานวจยทเกยวของ

ในปจจบนนระบบรจ าใบหนาบคคล [Toole2006], [Toole2008] สามารถรจ าภาพใบหนาจากฐานขอมลทมขนาดไมใหญมากนก ซงมการน าไปใชไดจรงในโปรแกรมจดการภาพส าหรบผใชทวไป (Consumer level photo) เชน โปรแกรม Picasa3 และโปรแกรม iPhoto4 เปนตน นอกจากน ระบบยงสามารถไปประยกตใชไดหลากหลาย เชน การปฏสมพนธระหวางมนษยและคอมพวเตอร (Human Computer Interaction), การยนยนตวตน (identity verification) [Kirovski2004],การลอคอนเขาสระบบคอมพวเตอร, การควบคมสทธในการใชงานคอมพวเตอรของบตร (parental controls) และการตดตามผปวย (patient monitoring) [Zhao2003] เปนตน

ยคแรกของการวจยและพฒนาระบบรจ าใบหนา อลกอรทมการรจ าใบหนาจะท าโดยการคนหาต าแหนงสวนทเปนคณสมบตเดนบนใบหนา อาท ตา จมก และปาก แลวท าการหาระยะทางระหวางคณสมบตเหลาน ตวอยางของงานวจยเหลาน เชน [Fischler1973], [Kanade1977] และ [Yuille1991] เปนตน

ในปจจบนนวธการทไดรบความนยมคอวธการเปรยบเทยบคาความสวาง (Intensity) ของพกเซล ในภาพใบหนาอางองกบภาพใบหนาทตองการรจ า โดยการเปรยบเทยบจะท าแบบพกเซลตอพกเซลในภาพทงสอง นอกจากนเพอท าใหขนาดของขอมลทตองประมวลผลมขนาดเลกลง ภาพใบหนาจะถกแปลงเปนคาสมประสทธของ subspace ทมขนาดเลกกวาขนาดของภาพ (lower dimensional subspaces) งานวจยในกลมเหลาน ไดแก Eigen-face [Kirby1990], [Turk1991a] ซงใชหลกการของ Principal Component Analysis (PCA), Fishers-faces [Moghaddam1997], Modular eigenspace [Moghaddam1997] รายละเอยดเพมเตมเกยวกบ PCA สามารถดไดท [Bishop2006] ส าหรบตวอยางของงานวจยทพฒนาตอยอดจากแนวคดขางตนมดงตอไปน

Independent Component Analysis (ICA) [Bartlett2002] Eigenspace-based adaptive approach [Wechsler2000] Multilinear (tensor) [Vasilescu2007] Subspace learning [Cai2007] Local distance functions [Frome2007]

3 http://en.wikipedia.org/wiki/Picasa 4 http://en.wikipedia.org/wiki/IPhoto

Page 14: ระบบจำหน้า Development of Face Recognition System_04_04_2011

6

Metric learning [Ramanan2009]

นอกจากน วธการทเรยกวา Active Appearance Models (AAM) [Cootes2001] ซงจะท าการหาแบบจ าลอง (Model) ทแทนภาพใบหนาบคคล โดยทแบบจ าลองนจะสามารถอธบายความหลากหลายของรปราง (Shape) และความหลากหลายของคาความสวางของพกเซลในภาพ (Appearance) ของใบหนาบคคลได ส าหรบงานวจยทพฒนาตอยอดจาก AAM ไดแก

3D Morphable Models [Blanz1999] งานของกลมวจยทมหาวทยาลย Carnegie Mellon ประเทศสหรฐอเมรกา

[Kanade2005],[Gross2006], [Matthews2007], [Ramnath2008] Component-based discriminative search [Liang2008]

ส าหรบอลกอรทมในการรจ าใบหนาบคคลแบบอนทไมไดใชการเปรยบเทยบภาพมดงตอไปน

งานวจยทใชวธการ Non-linear local transforms เชน local binary patterns สามารถดไดจาก [Ahonen2006], [Zhao2007], [Cao2010]

Elastic Bunch Graph Matching [Wiskott1997] Local feature analysis [Penev1996]

นอกจากนไดมนกวจยไดท าการสรางฐานขอมลใบหนาบคคลเพอชวยในการพฒนาและทดสอบ

อลกอรทม ซงภาพใบหนาในฐานขอมลจะมความหลากหลายในต าแหนงของใบหนาเทยบกบกลอง (Pose) และความแตกตางในสภาพแสงทท าการถายภาพใบหนา เชน FERET database [Phillips2000], CMU database [Sim2003] เปนตน แตอยางไรกตามอลกอรทมสวนใหญในปจจบนจะท างานไดถกตองแมนย ากบภาพใบหนาทถกถายจากดานหนา (Frontal view) และภายใตสภาพแสงทคอนขางคงท ส าหรบรายละเอยดเพมเตมเกยวกบฐานขอมลส าหรบการรจ าใบหนาสามารถดไดท [Phillips2000], [Sim2003], [Gross2005], [Huang2007], [Phillips2010]

งานวจยทอธบายขางตนนนจะท าการรจ าจากภาพถายของใบหนาบคคลเพยงภาพเดยว ในปจจบนนมการท าวจยเกยวกบการรจ าใบหนาบคคลจากภาพตอเนองทไดมาจากกลองวดโอ (Video based face recognition) ซงการประยกตใชงานในการคนหาใบหนาบคคลในภาพของระบบกลองวงจรปด ปญหาทส าคญทงานวจยเหลานตองแกปญหา คอ ปญหาเรองคณภาพของภาพซงจะมความละเอยดต า ตวอยางของงานวจยในกลมน ไดแก [Gorodnichy2005], [Krueger2003] นอกจากนงานวจยทางดานการรจ าใบหนาบคคลตางๆไดถกรวบรวมและเสนอใน [Chellappa1995], [Zhao2003], [Li2005] รวมทงเวบไซตส าหรบการรจ าใบหนาท URL: http://www.face-rec.org/

Page 15: ระบบจำหน้า Development of Face Recognition System_04_04_2011

7

2.2 เครองมอทใชทงฮารดแวรและซอฟตแวร 2.2.1 เครองมอดานฮารดแวร

คอมพวเตอรสวนบคคล (Personal Computer, PC) ทมสมรรถนะสงโดยเฉพาะความสามารถทางดานการแสดงผล

กลองวดโอ เชน Webcam ทมคณภาพสง (ควรจะมความละเอยด 5 ลานพกเซลขนไป) 2.2.2 เครองมอดานซอฟตแวร

CMake เปนโปรแกรมทใชส าหรบการสรางไฟลตางๆ ขนมาเพอทจะน ามาใชในการพฒนา

โปรแกรม บนแพลตฟอรมใดๆกได ขนอยกบเราวาเราตองการทจะพฒนาบนแพลตฟอรมใด โดยทตว CMake จะจดการ Environments ตางๆ ทส าคญส าหรบแตละแพลตฟอรมมาให เชน แพลตฟอรม Visual Studio 2008 บนระบบปฏบตการ Microsoft Window หรอ Xcode บนระบบปฏบตการ MacOS Microsoft Visual C++ 2008

เปนเครองมอทท าหนาทเปน C/C++ compiler และ linker รวมทงสวนสนบสนนการพฒนาโปรแกรม (Integrated Development Environment, IDE) Open Source Computer Vision (OpenCV) 2.1

เปน Library ทเปน open source ในภาษา C++ ทใชส าหรบการพฒนาโปรแกรมทเกยวของกบ Image Processing และ Computer Vision สามารถน ามาใชรวมกบโปรแกรม Visual C++ ซงในการน ามาใชรวมกนนนเราจ าเปนตองตงคาใหกบโปรแกรม Visual C++ กอน เพอระบต าแหนงของ Library ของ OpenCV ต าแหนงของไฟลทตองใชในโปรแกรม และต าแหนงของ Source File

Page 16: ระบบจำหน้า Development of Face Recognition System_04_04_2011

8

บทท 3

การพฒนาระบบรจ าใบหนาบคคล

ในบทนเราจะกลาวถงโครงสรางของระบบการรจ าใบหนาบคคล หลงจากนนเราจะอธบายหลกการและทฤษฏทเกยวของกบวธการรจ าใบหนาบคคลทใชในระบบ กลาวโดยเฉพาะ คอ เทคนค Eigenfaces และในตอนทายของบทเราจะอธบายโครงสรางของโปรแกรมรจ าใบหนาทพฒนาขนเพอพสจนแนวคด (Proof –of-concept) โดยใชโปรแกรม MATLAB

3.1 โครงสรางของระบบ ในกระบวนการรจ าใบหนาจ าเปนทจะตองใหระบบนนท าการเกบและเรยนรภาพใบหนาของบคคล

ทตองการจะรจ ากอนไวเปนฐานขอมลภาพกอน หลงจากนนเมอเราตองการระบวาบคคลหนงๆ เปนใคร สามารถท าไดโดยใชภาพทถายไดขณะนนมาเปรยบเทยบเพอหาภาพทเหมอนทสดทอยในฐานขอมลภาพดงกลาว การท างานของระบบสามารถแบงเปนขนตอนได 2 สวน แสดงดงรปท 3.1 และสามารถอธบายไดดงน

รปท 3.1 แสดงกระบวนการการรจ าใบหนาบคคล

Page 17: ระบบจำหน้า Development of Face Recognition System_04_04_2011

9

1. ขนตอนการเรยนร (Training phase) อนพทของขนตอนน คอ ชดของขอมลภาพใบหนาบคคลทตองการใหระบบรจ า (Enrolled images)

ซงแตละภาพเราจะตองเกบขอมลของบคคลนนๆ (เชน ชอ) ไวคดวยกน และเพอใหระบบเสถยรตอความหลากหลายของภาพใบหนา เราจะมภาพเรยนรมากกวา 1 ภาพส าหรบบคคลหนงๆ สวนเอาทพทของขนตอนน คอ รปแบบการแทน (Representation) ของชดขอมลภาพใบหนาดงกลาว ซงสามารถใชในการเปรยบเทยบภาพไดอยางมประสทธภาพ กลาวโดยเฉพาะเราจะค านวณหา subspace ทแทนขอมลภาพเรยนรทงหมด

การท างานในสวนนเรมตนโดยอลกอรทมส าหรบคนหาใบหนา (Face detection) จะท าการระบต าแหนงของใบหนาและตาทงสองในภาพ หลงจากนนระบบจะท าการ Normalize ขอมลภาพใบหนา ซงท าไดโดยดงภาพเฉพาะบรเวณใบหนาออกมา แลวแปลงใหเปนภาพขนาดทเทากน (เชน 100x140 พกเซล) โดยทต าแหนงของตาในภาพทงหมดจะตรงกน แลวปรบสภาพแสงใหคงท จากนนขอมลภาพทผานขนตอน Normalization แลว จะถกน าไปผานการวเคราะหองคประกอบหลก (Principal Component Analysis, PCA) ซงจะไดภาพใบหนาเฉลย (Mean image) และชดของใบหนาไอเกน (Eigenface images) ซงแปลงมาจาก Eigenvectors ทค านวณได หลงจากนนภาพใบหนาเรยนรหนงๆจะผานขนตอน subspace projection ซงจะท าการแปลงภาพใหเปนจดใน subspace โดยการหาสมประสทธทเหมาะสมในการแทน Eigenfaces พรอมทงท าการค านวณหาภาพสรางกลบ (Reconstructed image)

2. ขนตอนการรจ า (Working phase)

จากภาพใบหนาทดสอบหนงๆ (Test image) ระบบจะท าการระบต าแหนงของใบหนาและตาในภาพหลงจากนนจะท าการ Normalize เชนเดยวกบขนตอนการเรยนร เพอใหไดภาพขนาดเดยวกบภาพเรยนร หลงจากนนเราจะท าการแปลงภาพนใหเปนจดหนงๆบน subspace และอลกอรทมหาจดทใกลทสด (Nearest neighbor matching) จะท าการคนหาจดทแทนภาพเรยนรทใกลทสดกบจดทแทนภาพทดสอบ ผลลพธของการรจ ากคอขอมลชอบคคลทเกบไวคกบภาพใบหนาเรยนรดงกลาว นอกจากนเราจะค านวณหาคา Normalized Cross Correlation (NCC) ระหวางภาพใบหนาทดสอบกบภาพสรางกลบ (Reconstructed image) ของภาพเรยนรดงกลาว และคานจะถกน าไปใชเปนคาความนาเชอถอของการรจ า โดยถาคาดงกลาวยงมากจะแสดงวาการรจ านนยงนาเชอถอ โดยทวไปเราจะยอมรบวาระบบสามารถรจ าได เมอคา NCC นมคามากกวา 0.8 มฉะนนแลวเราจะถอวาระบบไมสามารถรจ าภาพใบหนาทดสอบดงกลาวได

Page 18: ระบบจำหน้า Development of Face Recognition System_04_04_2011

10

3.2 ทฤษฎทเกยวของ 3.2.1 ขอมลภาพ (Image) และเวกเตอรขอมล (Vector)

โดยทวไปแลวขอมลภาพในคอมพวเตอรจะถกเกบอยในรปแบบของอารเรย 2 มต ดงรปท 3.2โดยทจ านวนแถว M คอ ความสงของภาพ และจ านวนคอลมน N คอ ความกวางของภาพ โดยทแตละ element ของอารเรย จะเรยกวาพกเซล โดยทต าแหนง (x,y) ของพกเซล คอคา column index และ row index ตามล าดบ ขอมลของแตละ element คอ คาความสวาง (intensity) ซงโดยทวไปคาความสวางของแตละพกเซลทเปนไปไดนน จะมคาอยระหวาง 0-255

ขอมลภาพ 2 มต I ขนาดกวางและสงเทากบ N และ M พกเซล สามารถแทนใหอยในรปของเวกเตอร X ขนาด NxM มต ไดโดยน าคาความสวางของแตละพกเซลมาเรยงตอกน โดยจะเรยงจากซายไปขวาและจากบนลงลาง ดงรปท 3.2

รปท 3.2 แสดงขอมลภาพแบบอารเรยและเวกเตอร

Page 19: ระบบจำหน้า Development of Face Recognition System_04_04_2011

11

3.2.2 หลกการ Eigenfaces แนวคดของเทคนคการรจ าใบหนาบคคล Eigenfaces อยบนหลกการขอสงเกตของ Kirby และ

Sirowich [Kirby1990] ทกลาววาเวกเตอรภาพใบหนา X สามารถบบอด (compress) และสรางกลบ (reconstruct) ได โดยการใชเวกเตอรภาพใบหนาเฉลย (Mean Image) หรอ Xm บวกกบชดของภาพ u0 u1 … uL-1 มาค านวณ ดงสมการท 3.1

i

L

i

im a uxx

1

0

~ (3.1)

ตวอยางของภาพ u0 u1 … uL-1 แสดงดงรปท 3.3 สามารถค านวณไดจากชดของภาพเรยนร (Training

images) โดยใชการวเคราะหองคประกอบหลก (Principal Component Analysis, PCA) ในเวลาตอมา Turk และ Pentland [Turk1991a] น าแนวคดดงกลาวไปใชในการรจ าใบหนา โดยใชการเปรยบเทยบคาสมประสทธ a0 a1 … aL-1 ในสมการท 3.1

(a) (b) (c) (d)

รปท 3.3 แสดงโมเดลภาพใบหนาโดยใชหลกการ Eigenfaces (a) ภาพอนพท

(b) ชดภาพ Eigenfaces (c) ภาพสรางกลบโดยการโปรเจกตลงบน subspace และบบอด (d) ภาพสรางกลบโดยใช JPEG

ค าอธบายของหลกการ Eigenfaces ในรายงานเลมนสามารถแบงไดเปน 2 สวนตามขนตอนการ

เรยนร และขนตอนรจ า ไดดงน

Page 20: ระบบจำหน้า Development of Face Recognition System_04_04_2011

12

ขนตอนการเรยนร (Training Phase)

(a) (b) (c) รปท 3.4 แสดงขนตอนการเกบถาพเรยนร (a) ภาพใบหนา (Enroll image)

(b) ภาพในขนตอน Face detection (c) ภาพทผานกระบวนการ Normalization ในขนตอนน เราจะน าภาพเรยนร ดงตวอยางรปท 3.4(a)ไปผานกระบวนการ Face detection ซงจะ

ท าใหไดต าแหนงของใบหนา และดวงตาในภาพ ดงตวอยางรปท 3.4(b) หลงจากนนขอมลภาพเฉพาะบรเวณใบหนาจะถกดงออกมาและผานกระบวนการ Normalization เพอใหไดภาพขนาด 100x140 พกเซล ดงตวอยางรปท 3.4(c) แลวแปลงเปนเวกเตอร ภาพเรยนรทกภาพ (สมมตวาม L ภาพ) จะผานกระบวนการดงกลาว เพอท าใหเราไดชดของเวกเตอรภาพเรยนร {Xi; i=0,…, L-1} โดยสมมตวา แตละเวกเตอรมขนาด P มต (เทากบขนาดของภาพ) หลงจากนนเราจะท าการค านวณหาภาพใบหนาเฉลย (Mean image) ไดดงสมการ

1

0

1 L

i

imL

xx (3.2)

และค านวณหา Covariance Matrix (C) ดงสมการท 3.3

)()(1 1

0

mi

L

i

T

miL

xxxxC

(3.3)

หลงจากนนเราสามารถท าการวเคระหแยกสวนคาไอเกน (Eigenvalues Decomposition) กบเมรกซ

C ไดดงน

T

ii

L

i

i

T uuUU

1

0

C (3.4)

Page 21: ระบบจำหน้า Development of Face Recognition System_04_04_2011

13

โดยท i คอ Eigenvalues ของเมรกซ C โดย Eigenvalues นนจะเรยงจากมากไปนอย และ iu คอ Eigenvectors ซงชดของ Eigenvectors iu น เรยกวา Eigenfaces

รปท 3.4 แสดงการโปรเจกภาพลงบน subspace คณสมบตทส าคญของการวเคราะหแยกสวนดงกลาว คอ คาสมประสทธทเหมาะสม (optimal coefficients) ai ส าหรบภาพใบหนา X ใดๆ ซงคา Coefficients สามารถค านวณได ดงสมการท 3.5

imi u).( xxa (3.5) นอกจากนเราสามารถลดจ านวน Eigenvectors ทใชในสมการท 3.1 เหลอเพยง M ซงมคานอยกวา L

โดยทการประมาณภาพใบหนา x ดวยสมการท 3.1 เทยบเทากบการโปรเจคเวกเตอรลงใน subspace F เพอใหไดเวกเตอร X ดงรปท 3.4

ขอดทส าคญของเทคนค Eigenfaces คอ การเปรยบเทยบภาพใบหนาทดสอบ X กบภาพใบหนาเรยนรหนงๆ Xk (ซงเปนการเปรยบเทยบเวกเตอร P มต) เทยบเทากบการเปรยบเทยบ Coefficients ทค านวณไดจากภาพ ดงสมการท 3.6

kk aaxx (3.6) โดยท )( m

TxxUa และ U คอ Eigenvectors matrix ทแตละคอลมน ประกอบไปดวย

Eigenfaces ui

Page 22: ระบบจำหน้า Development of Face Recognition System_04_04_2011

14

ขนตอนการรจ า (Working Phase) ในขนตอนน ภาพทดสอบทประกอบไปดวยใบหนาของบคคลหนงๆ จะน ามาผานกระบวนการ

Face detection และกระบวนการ Normalization แลวแปลงเปนเวกเตอร Xtest เชนเดยวกบขนตอนการเรยนร หลงจากนนจะน าภาพ Xtest ไปโปรเจกลงบน subspace เพอใหไดคาสมประสทธทเหมาะสม atest ดงสมการท 3.7

)( mtest

T

test xxUa (3.7)

คาดชน i ของภาพเรยนร {Xi; i=0,..., L-1} ทเหมอนกบภาพ Xtest ทสด สามารถหาไดโดยการค านวณหาระยะทางทใกลทสดระหวาง atest กบ ai ทมคานอยทสด ซงสามารถอธบายดวยสมการท 3.8 ซงกระบวนการนสามารถแสดงดงรปท 3.5

2

argmin

1itest

Lii aa

(3.8)

จากคาดชน i ของภาพเรยนรทเหมอนทสด เราสามารถเชอมโยงกบไปทขอมลของบคคลในภาพ

เรยนรนน ซงกคอ ผลลพธของการรจ านนเอง

รปท 3.5 แสดงจดบน subspace

a1 a

i

a7

a

3

a6

a4 a

test

a

2

a5

Page 23: ระบบจำหน้า Development of Face Recognition System_04_04_2011

15

3.2.3 การวเคราะหองคประกอบหลก (Principal Component Analysis, PCA) ในกรณทจ านวนภาพเรยนรมจ านวนนอยกวาขนาดของเวกเตอร

การค านวณ Eigenvectors และ Eigenvalues จาก Covariance matrix ในสมการท 3.3 นน เราจะตองประมวลผลกบเมทรกซทมขนาดใหญมาก ในกรณนถาขนาดของ Normalized image มขนาดเทากบ 100 x 140 พกเซล ขนาดของ Covariance matrix จะเทากบ 14000 x 14000 ซงจะท าใหการประมวลผลชามากและตองใชหนวยความจ ามาก การแกปญหาดงกลาวสามารถท าไดโดยขนตอน ดงตอไปน

สมมตวาเราตองการค านวณ PCA กบชดของเวกเตอร ขนาด n มต จ านวน s เวกเตอร {xi; i=1,…,s} ซงในทน n คอ จ านวนพกเซลของภาพเรยนรหนงๆ สวน s คอ จ านวนภาพเรยนร โดยท s < n เราจะสราง

เมทรกซ D ขนาด n x s ซงแตละคอลมนจะเทากบเวกเตอร xi ลบดวยเวกเตอร Mean image x ดงสมการท 3.9

))(|...|)(( xxxxD 1 s (3.9) Covariance matrix ในสมการท 3.3 สามารถเขยนอยในรปของเมทรกซ D ไดดงสมการท 3.10

T

sDDC

1 (3.10)

ถาก าหนดให T คอเมรกซขนาด s x s แสดงดงสมการท 3.11

DDTT

s

1 (3.11)

ถา {ei; i=1,…,s} และ {i; i=1,…,s} คอ Eigenvectors และ Eigenvalues ทค านวณไดจากเมทรกซ T ตามล าดบ โดยทคา Eigenvalues เรยงจากมากไปนอย เราสามารถแสดงไดวาชดของเวกเตอร Dei จ านวน s เวกเตอร คอ Eigenvectors ทมคาคา Eigenvalues เทากบ i ทค านวณไดจากเมทรกซ C แตชดของเวกเตอร Dei นยงไมไดเปนเวกเตอรขนาดหนงหนวย (Unit vector) ซงเราสามารถแปลงเปน Unit vector โดยการหารดวยขนาดของเวกเตอร

จากหลกการดงกลาว การค านวณ Eigenfaces ในขนตอนการเรยนร เราจะเรมจากการค านวณ Covariance matrix T ในสมการท 3.11 จากชดของภาพเรยนร หลงจากนนเราจะท าการวเคราะห Eigen-values Decomposition กบเมทรกซ T จากนน Eigenvectors ทตองการจะไดจากการน าแตละ Eigenvectors ทไดมาคณดวยเมทรกซ D แลวแปลงเปน Unit vector สวนคา Eigenvalues คอคาทไดจากเมทรกซ T

Page 24: ระบบจำหน้า Development of Face Recognition System_04_04_2011

16

3.2.4 Face detection เปนการตรวจหาบรเวณทเปนใบหนาคนในภาพหนงๆ ซงโดยทวไป ภาพหนงๆ จะประกอบไปดวย

สวนทเปนใบหนา และสวนทเปนพนหลง (Background) ดงตวอยางรปท 3.6 โดยทผลลพธของ Face detection จะไดเปนต าแหนง x,y ในภาพของจดซายบน (x1,y1) และจดขวาลาง (x2,y2) ของสเหลยมทลอมบรเวณใบหนา

รปท 3.6 แสดงภาพใบหนากอนการท า detection

ในโครงงานนเราประยกตใชฟงกชนส าหรบตรวจจบใบหนาทมอยบน OpenCV 2.1ซงอางองถง

เทคนคทพฒนาโดย Viola & Jones [Viola&Jones2001] เนองจากอลกอรธม Face detection ขางตนมรายละเอยดทตองศกษามาก ในโครงงานนเราน า Face detection มาใชในฐานะ Developer ตามค าอธบายของ OpenCV 2.1 Documentation โดยไมสนใจในรายละเอยดของอลกอรทม

(x1,y

1)

(x2,y

2)

Page 25: ระบบจำหน้า Development of Face Recognition System_04_04_2011

17

3.2.5 Geometrical Normalization ในขนตอนนเราจะท าการดงเฉพาะสวนบรเวณใบหนาในภาพหนงๆและแปลงใหเปนขนาดท

เทากน เพอสามารถใชในการเปรยบเทยบได โดยในโครงงานนเราจะก าหนดขนาดของภาพทผานการแปลง (Normalized image) ใหมคาเทากบกวาง 100 พกเซล สง 140 พกเซล แสดงดงรปท 3.7

รปท 3.7 แสดงภาพอนพทและภาพทผานการแปลงในขนตอน Geometrical Normalization

จากขนตอน Face/Eye detection เราจะไดต าแหนงของใบหนาและต าแหนงของดวงตาทงสองขาง สมมตวาคอคา (x1,y) และ (x2,y) แสดงในรปท 3.7 ซาย เราจะท าการค านวณหาต าแหนงเรมตน (sx,sy), ความกวางและความสงของบรเวณทจะท าการตดภาพแลวแปลงเปนขนาด 100 x 140 ดงรปท 3.7 ดานขวา

การหาคา sx และความกวางสามารถท าไดโดยหาต าแหนงขอบซายซงก าหนดใหเลอนไปจาก x1 เปนระยะทก าหนดโดยคา ∆x และ หาต าแหนงขอบขวาซงก าหนดใหเลอนไปจาก x2 เปนระยะทก าหนดคา ∆x โดยทเราก าหนดใหคาระยะหางระหวางดวงตาในภาพ Normalized มขนาดเทากบ 60 pixels และระยะหางระหวางดวงตาถงขอบภาพทงสอง คอ 20 pixels โดยใชการเทยบอตราสวนเราจะพบวา ∆x/|x1-x2| มคาเทากบ 20/60 เพราะฉะนน คา ∆x จงมคาเทากบ (20/60) * |x1-x2| และคา sx จะมคาเทากบ x1- ∆x และคาความกวางของภาพจะมคาเทากบ 2∆x + |x1-x2|

สวนการหาคา sy และความสง สามารถท าไดโดยหาต าแหนงขอบบนซงก าหนดใหเลอนไปจาก y เปนระยะทก าหนดโดยคา ∆y และหาต าแหนงขอบบนซงก าหนดใหเลอนไปจาก y เปนระยะทก าหนดโดย

Page 26: ระบบจำหน้า Development of Face Recognition System_04_04_2011

18

2 ∆y จากรปท 3.7 เราพบวา 3∆y/∆x จะมคาเทากบ 140/20 เพราะฉะนนคา ∆y จะเทากบ (140/20)*( ∆x/3)=(140/60)* ∆x ดงนน คา sy ทตองการจะมคาเทากบ y-∆y และคาความสงของภาพจะมคาเทากบ 3∆y

จากกระบวนการดงกลาวภาพทถกตดออกและแปลง (Normalized image) จะมขนาด 100 × 140 โดยทต าแหนง ของดวงตาทงสองขางจะอยหางจากขอบดานบนประมาณ 45 pixel และระหวางดวงตาทงสองขางจะหางกนประมาณ 60 pixel โดยทดวงตาซายและขวาจะอยหางจากขอบแตละฝงประมาณ 20 pixel

3.2.6 คาความนาเชอถอ (Confidence measure) เนองจากอาจเปนไปไดวา ภาพทดสอบ (Test image) อาจจะไมใชภาพของใบหนาของบคคลทไดท า

การบนทกไวในขนตอนเรยนร นอกจากนอลกอรทมในการรจ าไมสามารถท างานไดถกตอง 100% จงจ าเปนทจะตองมคาตวเลขทระบวาผลลพธของการรจ าในภาพหนงๆ มความนาเชอถอมากนอยแคไหน โดยทวไปถาคาความนาเชอถอต ากวาคา threshold ทไดก าหนดไว เราจะถอวาผลการรจ านนเชอถอไมได ซงอาจเปนไปไดทงกรณทอลกอรทมท างานไมถกตอง หรอไมไดท าการบนทกภาพของบคคลนนไวในฐานขอมล

รปท 3.8 แสดงภาพเปรยบเทยบความเหมอน

Page 27: ระบบจำหน้า Development of Face Recognition System_04_04_2011

19

ในโครงงานนเราค านวณหาคาความนาเชอถอจากการเปรยบเทยบความเหมอนของภาพทดสอบ (Test image) และภาพเรยนรทเหมอนทสดทคนเจอในฐานขอมลและผานการโปรเจคลงบน subspace ซงในทนเรยกวาภาพสรางกลบ (reconstructed image) แสดงดงรปท 3.8 โดยการวดคาความเหมอนระหวาง 2 ภาพ เราจะค านวณหาคา Normalize Cross Correlation (NCC) ดงสมการท 3.12

2

22

2

11

2211

21

])([])([

])(][)([

),(IxIIxI

IxIIxI

IINCC

i

i

i

i

i

i

i

(3.12)

โดยท I1(xi) และ I2(xi) คอ คาความสวางของพกเซล xi ในภาพ I1 และ I2 ตามล าดบโดยท I1 คอภาพทดสอบ สวน I2 คอภาพเรยนร และ I1และ I2 คอ คาความเฉลยของความสวางของพกเซลในภาพ I1 และ I2 ตามล าดบ ซงสามารถค านวณไดโดย สมการท 3.13 และ 3.14

i

ixIN

I )(1

11 (3.13)

i

ixIN

I )(1

22 (3.14)

คา NCC ทเปนไปไดจะอยในชวงตงแต -1 ถง 1 โดยทถาคา NCC มคาเขาใกล 1 จะหมายความวา

ภาพ I1 และภาพ I2 ยงคลายกน ในโครงงานนเราไดก าหนดคา threshold ไวท 0.8 นนคอ ถาผลลพธของการรจ าท าใหมคา NCC นอยกวา 0.8 เราจะถอวาการรจ าผดพลาด

Page 28: ระบบจำหน้า Development of Face Recognition System_04_04_2011

20

3.3 ตวอยางโคด MATLAB ในโครงงานน เราไดท าการทดลองพฒนาอลกอรทมพฒนาการรจ าทไดอธบายไปแลว โดยใชโปรแกรม MATLAB ประโยชนของขนตอนน คอ ท าใหเราสามารถทดสอบแนวความคดทเราไดศกษามา (Proof of concept) ไดภายในระยะเวลาอนสน รายงานในหวขอน เราจะแสดงโคด MATLAB พรอมทงค าอธบายอยางสนประกอบ โดยเราสามารถแบงโคดไดเปน 2 สวน คอ โคดสวนของขนตอนการเรยนร และสวนขนตอนของการรจ า 3.3.1 ขนตอนการเรยนร (Training phase)

ขนตอนแรกนนเรมจากการโหลดรปภาพเขามา เปนรปภาพโดยใชฐานขอมลของ AR Database โดยมทงหมด 84 คน แบงเปนผชาย 39 คน และผหญง 45 คน โดยใชค าสง imread ในบรรทดท A (Line A) พรอมทงแปลงรปภาพใหเปนเวกเตอร โดยใชค าสง reshape ในบรรทดท B (Line B)

ขนตอนถดมาเราจะค านวณหาภาพใบหนาเฉลย โดยใชค าสง mean ในบรรทดท C (Line C) จากนนจะท าการค านวณหา Covariance matrix ในบรรทดท D (Line D) และค านวณหาคาไอเกนเวกเตอร โดยการน าเอา Covariance matrix มาท า Eigenvalues decomposition โดยใชค าสง SVD ในบรรทดท E (Line E)

ขนตอนถดมาเราจะน าคา Eigenvalues ทไดมานนไปท าการบวกเพมคาขนเรอยๆ จนกระทงไดคามากกวาหรอเทากบคา threshold ทไดก าหนดไว ซงจะท าใหระบบสามารถรจ าไดแมนย ามากยงขน ในบรรทดท F (Line F) จากนนจะท าการหาคา Coefficients ทเหมาะสมของแตละภาพใบหนา เพอน าคา Coefficients ทไดนนไปเปรยบเทยบ เพอใหแสดงผลลพธการรจ านนออกมา ในบรรทดท G (Line G)

สดทาย เราจะแปลงรปภาพกลบโดยการน าเอาคาใบหนาเฉลยไปบวกกบคาของ coefficient กบคาไอเกนคณกน ในบรรทดท H (Line H)

Page 29: ระบบจำหน้า Development of Face Recognition System_04_04_2011

21

trainingSamples = 252; w=100; h=140; X=zeros(w*h,trainingSamples);

% read training image and put into X k=1; for i=1:39 %[1:35 36:39] for j=1:3 fname=sprintf('D:\\AR_faceTraining\\men_crop_new\\m-%03d-%d-c.bmp',i,j);

im=imread(fname); //Line A im=double(rgb2gray(im))/255; % convert (scaling) from 0-255 to 0-1

X(:,k)=reshape(im,w*h,1); //Line B k=k+1; end end for i=1:45 for j=1:3 fname=sprintf('D:\\AR_faceTraining\\women_crop_new\\w-%03d-%d-c.bmp',i,j); im=imread(fname); im=double(rgb2gray(im))/255; % convert (scaling) from 0-255 to 0-1 X(:,k)=reshape(im,w*h,1); k=k+1; end end

Y=zeros(w*h,trainingSamples);

meanimage = mean(X,2); //Line C for i=1:trainingSamples X(:,i)=X(:,i)-meanimage; End

Cp=X'*X; //Line D Cp=Cp/trainingSamples;

[u s v]=svd(Cp); //Line E s=diag(s); total_var=sum(s); explained=100*(s/total_var); EigVec=[]; explained_E=0; E_th = 99; for i=1:trainingSamples if explained_E < E_th EVec=X*u(:,i); EVec=EVec/norm(EVec); EigVec=[EigVec EVec]; explained_E = explained_E + explained(i); //Line F else break; end end

Page 30: ระบบจำหน้า Development of Face Recognition System_04_04_2011

22

3.3.2 ขนตอนการรจ า

ขนตอนแรกจะก าหนดทอยของไฟลภาพทเราตองการทดสอบการรจ า ในบรรทดท I (Line I) จากนนจะท าการท าใหรปภาพเปนแบบ gray-scale โดยใชค าสง rgb2gray ในบรรทดท J (Line J) แลวจงท าการแปลงรปภาพใหเปนเวกเตอรเหมอนขนตอนการเรยนร หลงจากนนจะท าการหาคา Coefficients ทเหมาะสมส าหรบภาพใบหนา ในบรรทดท K (Line K) ตอมาจะท าการสรางภาพกลบ ในบรรทดท L (Line L)

ขนตอนตอมาเราจะหาคาความนาเชอถอของภาพทดสอบกบภาพเรยนรได วามความนาเชอถอไดมากนอยเพยงใด โดยการเรยกใชฟงกชน NCC ซงสามารถค านวณหาไดดงสมการท 3.12 ในบรรทดท M (Line M) เมอเราไดคาความนาเชอถอออกมาแลว เราจะตรวจสอบคานนวาคาทไดนนมคามากกวา 0.7 หรอไม ถามคามากกวา 0.7 แสดงวาผลการรจ านนมความนาเชอถอ แตถานอยกวา 0.7 แสดงวาผลการรจ านนไมมความนาเชอถอ

n_EigenVec=size(EigVec,2); A=zeros(n_EigenVec,trainingSamples);

for j=1:trainingSamples Y=X(:,j); for i=1:n_EigenVec

A(i,j)=dot(Y,EigVec(:,i)); //Line G end

end

% Reconstruction of Training faces with the learned eigenspace ref_faces=zeros(h,w,trainingSamples); for im_no=1:trainingSamples reconstructed=meanimage; for j=1:size(A,1)

reconstructed=reconstructed+(A(j,im_no)*EigVec(:,j)); //Line H end reconstructed=reshape(reconstructed,h,w); reconstructed=uint8(255*reconstructed); ref_faces(:,:,im_no)=reconstructed; end

Page 31: ระบบจำหน้า Development of Face Recognition System_04_04_2011

23

clear all close all load('enrolled7.mat');

[FileName,PathName] = uigetfile('*.bmp','Select Test Image

file','C:\Users\iammai\Documents\My Dropbox\faceRec\Code\men_crop_new');//Line I str=sprintf('%s\\%s',PathName,FileName) im=imread(str);

im=double(rgb2gray(im))/255; % convert (scaling) from 0-255 to 0-1 //Line J [h w]=size(im); X=reshape(im,w*h,1); X=X-meanimage; a_query=zeros(size(A,1),1); for i=1:size(EigVec,2)

a_query(i)=dot(X,EigVec(:,i)); //Line K end reconstructed=zeros(h,w); reconstructed=meanimage; for j=1:size(A,1)

reconstructed=reconstructed+(a_query(j)*EigVec(:,j)); //Line L end reconstructed=reshape(reconstructed,h,w); reconstructed=uint8(255*reconstructed); im=reconstructed; figure ax(1) = subplot(2,2,1); imshow(uint8(im)); title('Test Image') axis off im2 = ref_faces(:,:,min_i); % Compute Confidence value based on NCC

val=NCC(im2,reconstructed); //Line M disp(val) ax(2) = subplot(222); imshow(uint8(im2)); title('Recognize Image') if val > 0.7

text(10,10,sprintf('%f',val),'color','b'); //Line N else

text(10,10,sprintf('%f',val),'color','r'); end

Page 32: ระบบจำหน้า Development of Face Recognition System_04_04_2011

24

function [val]=NCC(I1,I2) I1=longdouble(I1); I2=double(I2); a=mean(mean(I1)); b=mean(mean(I2)); I1_n=I1-a; I2_n=I2-b; I1_n_sq=I1_n.*I1_n; I2_n_sq=I2_n.*I2_n; D1=sum(sum(I1_n.*I2_n)); D2=sum(sum(I1_n_sq)); D3=sum(sum(I2_n_sq)); val=D1/sqrt(D2*D3);

Page 33: ระบบจำหน้า Development of Face Recognition System_04_04_2011

25

3.4 โปรแกรมการรจ าใบหนาทพฒนาโดย Visual C++ และ OpenCV ในหวขอนเราจะอธบายถงรายละเอยดของโปรแกรมระบบการรจ าใบหนาทเราไดพฒนาขน ระบบ

นไดท าการพฒนาดวยภาษา C++ โดยใชตวแปลภาษา Visual C++ เวอรชน 2008 บน Windows และใช OpenCV 2.1 เปนเครองมอในการพฒนา โดยโคดสวนใหญของโปรแกรมจะดดแปลงจากโคดทพฒนาโดย Shervin Emami ซงสามารถดาวนโหลดไดท http://www.shervinemami.co.cc

3.4.1 OpenCV OpenCV หรอ Open Source Computer Vision เปน Open Source Library ทพฒนาขนโดยไดรบการสนบสนนจากบรษท Intel ส าหรบพฒนาโปรแกรมประยกตทางดาน Computer vision และ Image Processing เพอใหงายตอการพฒนาโปรแกรมและสามารถน าไปตอยอดพฒนาโปรแกรมตางๆ ใชไดทงระบบ Windows และ Linux อกทงยงรองรบการพฒนาโปรแกรมไดหลายภาษาเชน C, C++, Python เปนตน ปจจบนน (ณ เวลาเขยนรายงานน) บรษท Willow Garage (http://www.willowgarage.com) จะเปนผพฒนาหลกในการพฒนาเวอรชนทสงขนของ OpenCV ซงเวอรชนลาสดทไดออกมากคอเวอรชน 2.2 3.4.2 โครงสรางของโปรแกรม โครงสรางของโปรแกรม Face recognition ทเขยนดวย C++ นนจะประกอบไปดวย 4 โมดลหลก คอ

Image Capture + Preprocessing Learn Recognize from file Recognize from camera

โดยทโมดล Image Capture + Preprocessing และ Learn จะอยในสวนขนตอนการเรยนร สวนโมดล Recognize from file และ Recognize from camera นนจะอยในสวนขนตอนการรจ า ค าอธบายของโปรแกรมในแตละโมดลมดงตอไปน

3.4.2.1 Image Capture + Preprocessing

โมดลนจะใชส าหรบถายภาพและท าการ Normalize เพอใชในสวนการ Train โดยจะดงภาพแตละเฟรม ออกมาโดยใชฟงกชน getCameraFrame() โดยภาพทไดจะมชนดเปน IplImage ดงโคด

IplImage *camImg;

// Get the camera frame

camImg = getCameraFrame();

Page 34: ระบบจำหน้า Development of Face Recognition System_04_04_2011

26

จากนนท าการวาดกรอบสเหลยม และเสนตรง เพอเปนการก าหนดต าแหนงใบหนาใหแกผใชทจะ

ท าการถายภาพเพอไปใชในการ Train ดงโคด

เมอผใชกด c ทคยบอรด โปรแกรมจะท าการ ถายภาพและหาต าแหนงของใบหนาโดยใชฟงกชน detectFaceInImage()

โดย Argument ทใชในฟงกชนน คอ

cropImg เปนภาพ IplImage ทตองการหาต าแหนงใบหนา

faceCascade เปนขอมลทจะใชในการหาต าแหนง ในโคดนจะใช haarcascade_eye_tree_eyeglasses

.xml ซงเปนขอมลส าหรบใชหาต าแหนงของดวงตา เมอไดต าแหนงของดวงตา ภายในฟงกชน

detectFaceInImage ท าการค านวณต าแหนงของใบหนา โดยอางองจากต าแหนงของดวงตาเปนหลก

เพอน าไปสรางภาพทมต าแหนงของดวงตา ตรงกนทกภาพ

เมอไดต าแหนงของใบหนาบนภาพแลว จะท าการ Crop ดวยฟงกชน cropImage() และ Resize ดวยฟงกชน resizeImage() เพอใหไดภาพทมขนาด N×M (ในการทดลองเราจะใชภาพทมขนาด 100×140) เทากนทกภาพ

pt1.x = 200;

pt2.x = 440;

pt1.y = 100;

pt2.y = 400;

cvRectangle( shownImg, pt1, pt2, CV_RGB(255,0,0), 3, 8, 0 );

pt3.x = 240;

pt4.x = 400;

pt3.y = 200;

pt4.y = 200;

cvLine( shownImg, pt3, pt4, CV_RGB(255,0,0), 3, 8, 0 );

cvFlip(shownImg, NULL, 1);

cvShowImage("Input", shownImg);

// Perform face detection on the input image, using the given Haar

cascade classifier.

faceRect = detectFaceInImage(cropImg, faceCascade );

faceImg = cropImage(cropImg, faceRect); // Get the detected face image.

// Make sure the image is the same dimensions as the training images.

sizedImg = resizeImage(faceImg, faceWidth, faceHeight);

Page 35: ระบบจำหน้า Development of Face Recognition System_04_04_2011

27

Argument ทใชในฟงกชน cropImage() คอ

cropImg เปนภาพ IplImage ทไดท าการหาต าแหนงใบหนาแลว

faceRect ม type เปน CvRect คอคาต าแหนงใบหนาของ cropImg

Argument ทใชในฟงกชน resizeImage() คอ faceImg เปนภาพ IplImage ทไดท าการ Crop บรเวณใบหนาแลว

faceWidth เปน integer ใชก าหนดขนาดความกวางใหภาพทจะ Resize

faceHeight เปน integer ใชก าหนดขนาดความสงใหภาพทจะ Resize

3.4.2.2 Learn

โมดลนใชส าหรบค านวณ PCA และคาตางๆ ของภาพใบหนาทจะน ามาใชในการเรยนร (Train) เชน คา Eigen-Vector, คา mean image และคา reconstruct image เพอเกบลงบนไฟล xml หรอไฟลขอมลส าหรบน าไปใชในการ recognize โมดล Learn นนจะเรมตนจากการโหลดไฟลรปภาพดวยฟงกชน loadFaceImgArray() โดยฟงกชนนจะท าการอานคา ล าดบ ชอ และต าแหนงรปภาพ จากไฟล text เพอน ามาเกบไวใน array ทชอ faceImgArr และรเทรนเปนคาตวเลขจ านวนคนทถกโหลดเขามา ดงโคด

ตวอยางขอมลในไฟล text ทเตรยมไวส าหรบฟงกชน loadFaceImgArray() ซงในแตละบรรทด

จะประกอบดวย ตวเลขระบ ID สตรงก าหนดชอ และชอไฟลภาพ

1 N.Panyapoontrakool DB/com_train/sc-001-1.bmp 1 N.Panyapoontrakool DB/com_train/sc-001-2.bmp 1 N.Panyapoontrakool DB/com_train/sc-001-3.bmp 2 T.Chotichanapibal DB/com_train/sc-002-1.bmp 2 T.Chotichanapibal DB/com_train/sc-002-2.bmp 2 T.Chotichanapibal DB/com_train/sc-002-3.bmp 3 P.Rattanachardchuchai DB/com_train/sc-003-1.bmp 3 P.Rattanachardchuchai DB/com_train/sc-003-2.bmp 3 P.Rattanachardchuchai DB/com_train/sc-003-3.bmp

// load training data

printf("Loading the training images in '%s'\n", szFileTrain);

nTrainFaces = loadFaceImgArray(szFileTrain);

printf("Got %d training images.\n", nTrainFaces);

if( nTrainFaces < 2 )

{

fprintf(stderr,

"Need 2 or more training faces\n"

"Input file contains only %d\n", nTrainFaces);

return;

}

Page 36: ระบบจำหน้า Development of Face Recognition System_04_04_2011

28

หลงจากทไดท าการโหลดภาพมาเกบไวในตวแปร faceImgArr กจะท าการปรบแสงรปภาพทกภาพดวยกระบวนการ Histogram Equalization โดยใชฟงกชน cvEqualizeHist() ดงโคด

เมอท าการปรบแสงแลว กจะท าการค านวณ PCA โดยการเรยกใชฟงกชน doPCA()

จากโคดดานบนเปนโคดในฟงกชน doPCA() ซงเรยกใชฟงกชน cvCalcEigenObjects() เพอหาคา average image, Eigenvalues และ Eigenvectors และเรยกใชฟงกชน SelectEigens() เพอเลอกจ านวน eigenvectors ทใชในการ recognize

Argument ทส าคญทใชในการค านวณของฟงกชน cvCalcEigenObjects() คอ nTrainFaces คอจ านวนภาพใบหนาทงหมด

faceImgArr คอภาพใบหนาทงหมด

เมอผานกระบวนการ PCA แลว จะท าการ project ภาพทงหมดลงบน PCA subspace ดวยฟงกชน cvEigenDecomposite() และสราง reconstruct image โดยใชฟงกชน cvEigenProjection() เพอน าไปใชส าหรบการค านวณคา NCC ท าการเกบคาทค านวณไดลงบนไฟล xml โดยใชฟงกชน storeTrainingData() ดงโคด

3.4.2.3 Recognize from file โมดลนเปนโมดลส าหรบท าการทดลอง recognize ชดขอมลภาพ test images โดยใชฐานขอมลไฟล

xml ทไดจากโมดล Learn เมอเรมตนโปรแกรมจะท าการโหลดภาพ test images ทงหมดไวในตวแปร array

// compute average image, eigenvalues, and eigenvectors

cvCalcEigenObjects(

nTrainFaces,

(void*)faceImgArr,

(void*)eigenVectArr,

CV_EIGOBJ_NO_CALLBACK,

0,

0,

&calcLimit,

pAvgTrainImg,

eigenValMat->data.fl);

nEigens=(int)SelectEigens();

for(i=0;i<nTrainFaces;i++)

{

cvEqualizeHist(faceImgArr[i], equalizedImg);

faceImgArr[i] = cvCloneImage(equalizedImg);

}

for(i=0; i<nTrainFaces; i++)

{

cvEigenDecomposite(

faceImgArr[i],

nEigens,

eigenVectArr,

0, 0,

pAvgTrainImg,

projectedTrainFaceMat->data.fl + i*offset);

//image reconstruction

cvEigenProjection( eigenVectArr, nEigens, 0, 0,

projectedTrainFaceMat->data.fl + i*offset, pAvgTrainImg, outRe);

out[i] = cvCloneImage(outRe);

}

storeTrainingData();

Page 37: ระบบจำหน้า Development of Face Recognition System_04_04_2011

29

ชอ faceImgArr โดยใชฟงกชน loadFaceImgArray() และโหลดไฟลขอมล xml โดยใชฟงกชน loadTrainingData() จากนนโปรแกรมจะท าการปรบแสงรปภาพ test image ดวยกระบวนการ Histogram

Equalization โดยใชฟงกชน cvEqualizeHist() จากนนท าการ project ภาพลงบน PCA subspace

ดวยฟงกชน cvEigenDecomposite() และสราง reconstruct image โดยใชฟงกชน cvEigenProjection()

จากโคดดานบนแสดงการ recognize โดยวธการ Nearest Neighbor ดวยฟงกชน

findNearestNeighbor() และท าการหาคา confidence measure โดยใชฟงกชน ncc() 3.4.2.4 Recognize from camera

โมดลนเปนโมดลส าหรบท าการทดลอง recognize ภาพจากกลอง webcam โดยใชฐานขอมลไฟล xml ทไดจากโมดล Learn เมอเรมตนโปรแกรมจะโหลดไฟลขอมล xml เหมอนโมดล Recognize from file

จากโคดดานบนจะท าการดงภาพออกมาทละเฟรม และใชฟงกชน cvFlip() เพอกลบดานรปภาพส าหรบแสดงผลผานหนาจอ Input เมอผใชกดป ม r โปรแกรมจะดงภาพมาแปลงเปนภาพ gray scale และท าการคนหาต าแหนงใบหนาดงโคด

iNearest = findNearestNeighbor(projectedTestFace, &confidence, 0);

truth = personNumTruthMat->data.i[i];

nearest = trainPersonNumMat->data.i[iNearest];

ncon = ncc(out[iNearest],outRe);

// Get the camera frame

camImg = getCameraFrame();

shownImg = cvCloneImage(camImg);

cvFlip(shownImg, NULL, 1);

cvShowImage("Input", shownImg);

if (!camImg) {

printf("ERROR in recognizeFromCam(): Bad input image!\n");

exit(1);

}

// Make sure the image is greyscale, since the Eigenfaces is only done on

greyscale image.

greyImg = convertImageToGreyscale(camImg);

// Perform face detection on the input image, using the given Haar

cascade classifier.

faceRect = detectFaceInImage(greyImg, faceCascade );

Page 38: ระบบจำหน้า Development of Face Recognition System_04_04_2011

30

จากนนน าคาต าแหนงใบหนาทไดมาท าการ crop, resize และปรบแสงดวยกระบวนการ Histogram Equalization ดงโคด

การ recognize ของโมดลนจะเหมอนกบโมดล Recognize from file คอหลงจากท าการ project ภาพลงบน PCA subspace ดวยฟงกชน cvEigenDecomposite() และสราง reconstruct image โดยใชฟงกชน cvEigenProjection() กจะใชวธการ Nearest Neighbor ดวยฟงกชน findNearestNeighbor() และท าการหาคา confidence measure โดยใชฟงกชน ncc()

faceImg = cropImage(greyImg, faceRect); // Get the detected face image.

// Make sure the image is the same dimensions as the training images.

sizedImg = resizeImage(faceImg, faceWidth, faceHeight);

// Give the image a standard brightness and contrast, in case it was too

dark or low contrast.

equalizedImg = cvCreateImage(cvGetSize(sizedImg), 8, 1); // Create an

empty greyscale image

cvEqualizeHist(sizedImg, equalizedImg);

processedFaceImg = equalizedImg;

Page 39: ระบบจำหน้า Development of Face Recognition System_04_04_2011

31

บทท 4 ผลการทดลอง

4.1 ฐานขอมลภาพใบหนาบคคล สงส าคญอยางหนงส าหรบการพฒนาระบบรจ าใบหนาบคคลนนกคอฐานขอมลใบหนาบคคล เพอทจะน ามาใชในการทดลองวดประสทธภาพของการรจ าใบหนาบคคลทพฒนาขน ซงในโครงงานนเราไดใชฐานขอมลจ านวน 2 ฐานขอมล นนคอ ฐานขอมลAR [Martinez1998] และ ฐานขอมลทเราสรางขนเองซงในทนเราขอเรยกวา ฐานขอมล COM-SWU (COM-SWU Face Database) รายละเอยดของแตละฐานขอมลดงตอไปน

ฐานขอมล AR ฐานขอมล AR เปนฐานขอมลภาพใบหนาบคคลทเผยแพรทเวบไซต

http://rvl1.ecn.purdue.edu/ARdatabase/ARdatabase.html โดยฐานขอมลนประกอบดวยภาพใบหนาตรงของบคคลกวา 3,200 ภาพ รวมทงหมดจ านวน 126 คน ซง

ในแตละคนจะม 26 ภาพทแตกตางกน โดยจะถกบนทกไวในสองชวงทแตกตางกนในสองสปดาห ภาพทงหมดถกถายดวยกลองตวเดยวกนภายใตสภาวะแสงทถกก าหนดไวแลว รวมทงต าแหนงของการนงกอยในการควบคมดวยเชนกน ขนาดของแตละภาพในฐานขอมลมขนาดกวางและสงเทากบ 768 และ 576 พกเซลตามล าดบ ในแตละพกเซลจะแสดงเปนคาส RGB 24 บต

เนองจากภาพใบหนาตอ 1 คนในฐานขอมล AR มความหลากหลายทางดานแสง (Illumination) อารมณของใบหนา (Facial expression) และสงบดบง (Occlusion) ดงนนผวจยจงไดท าการคดเลอกภาพใบหนาทมแสงในลกษณะทใกลเคยงกน และบรเวณใบหนาไมมสงบดบงจ านวน 5 ภาพมาใชในการทดสอบระบบ โดยจ านวนภาพใบหนาของแตละคนจะถกแบงออกเปน 2 สวน คอ สวนทใชส าหรบขนตอนการเรยนร จ านวน 3 ภาพ และ สวนทใชส าหรบขนตอนการรจ า จ านวน 2 ภาพ

ฐานขอมล COM-SWU ในโครงงานนผวจยไดจดท าฐานขอมลภาพใบหนาขนมาเองเพอน ามาใชเปนฐานขอมลส าหรบทดสอบ

ระบบรจ าใบหนาบคคลทไดพฒนาขน โดยเกบรวบรวมภาพถายใบหนาตรงของนสตสาขาวชาวทยาการคอมพวเตอร คณะวทยาศาสตร มหาวทยาลยศรนครนทรวโรฒ จ านวน 67 คน คนละ 5 ภาพ ส าหรบการทดลองในโครงงานน ภาพใบหนาของแตละคนจะถกแบงออกเปน 2 สวน คอ สวนทใชส าหรบขนตอนการเรยนร จ านวน 3 ภาพ และ สวนทใชส าหรบขนตอนการรจ า จ านวน 2 ภาพ ซงแตละภาพจะมขนาด 640 x 480 พกเซล

Page 40: ระบบจำหน้า Development of Face Recognition System_04_04_2011

32

ส าหรบกระบวนการในการรวบรวมฐานขอมลนนเราไดท าการถายภาพจากกลองเวบแคมทตออยกบเครองคอมพวเตอรสวนบคคลดงแสดงในรปท 4.1 (a) ซงภาพของแตละบคคลจะถกเกบในเวลาใกลเคยงกน ภายใตสภาพทไมเปลยนแปลงมากนก นอกจากนเพอท าใหไดภาพใบหนาตรง เราไดพฒนาโปรแกรมมาชวยการก าหนดต าแหนงของใบหนาโดยคราวๆ ใหอยต าแหนงทตองการ ดงแสดงในรปท 4.1 (b) โดยใบหนาของบคคลหนงๆจะตองอยภายในกรอบสเหลยมสแดงและระดบสายตาของผใชจะตองอยตรงกบเสนตรงสแดงทเราไดก าหนดไว

รปท 4.1 (a) แสดงสภาพแวดลอมขณะใชงาน และรปท 4.1 (b) แสดงต าแหนงทก าหนด

Page 41: ระบบจำหน้า Development of Face Recognition System_04_04_2011

33

ตวอยางฐานขอมล COM-SWU

รปท 4.2 แสดงฐานขอมลภาพใบหนา COM-SWU

Page 42: ระบบจำหน้า Development of Face Recognition System_04_04_2011

34

4.2 ผลการทดลองระบบรจ าใบหนาบคคล เราไดแบงการทดลองออกเปน 2 สวนใหญๆ คอ สวนทท าการทดลองกบฐานขอมล COM-SWU และ สวนทท าการทดลองกบฐานขอมล AR ซงแสดงรายละเอยดของผลการทดลองไดดงตอไปน 4.2.1 ผลการทดลองกบฐานขอมล COM-SWU

การทดลองนจะท าการวดความถกตองแมนย าของการรจ า โดยมพารามเตอรทเปลยนแปลงไดคอ (i) จ านวน Eigenvector ทจะแทน Subspace ทค านวณไดในขนตอนการเรยนร และ (ii) จ านวนภาพเรยนรตอ 1 บคคลทใชในการเรยนร และการท างานของโปรแกรมถกทดสอบบนเครองคอมพวเตอร Laptop CPU Intel CORE2 DUO U7600 1.2 GHZ, RAM 3GB

ส าหรบการทดลองแรก เราจะท าการเปลยนคาจ านวน Eigenvector โดยทจ านวนภาพเรยนรคงท โดยทวไปแลวจ านวน Eigenvector เพมขนจะชวยเพมความถกตองแมนย าของการรจ า ในการทดลองนเรามภาพในฐานขอมลจ านวน 67 คน ซงเปนภาพใบหนาทดสอบจ านวน 133 ภาพ (แตละคนจะมภาพใบหนาเรยนร 3 ภาพและภาพใบหนาทดสอบ 2 ภาพ) และท าการสราง subspace ทก าหนดโดย Eigenvector จ านวน 5, 10, 20, 50 และ 100 เวกเตอรตามล าดบ ผลลพธของการทดลองทแสดงในตารางท 4.1 จะเหนวาเมอจ านวน Eigenvector เทากบ 5 นนความถกตองของการรจ าอยทรอยละ 83.0 แตเมอเพมจ านวน Eigenvector เปน 10 ผลการรจ าถกตองเพมขนอยทรอยละ 92.0 ตอมาผลการรจ าทถกตองกเพมขนเปนรอยละ 93.0 เมอเพมจ านวน Eigenvector เปน 20 และผลการรจ าทถกตองของ 50 และ 100 Eigenvectors เทากนอยทรอยละ 96.0

ซงจากผลการทดลองนระบบของเราท างานตามสมมตฐานทควรจะเปน และไดคาความถกตองแมนย าสงสดทรอยละ 96 สวน เวลาทใชในการประมวลผลโดยเฉลยตอภาพในแตละชวง Eigenvector จะ มการเปลยนแปลงอยางเหนไดชดนนคอเมอใช 5 Eigenvectors ในการรจ า ระบบจะท างานทความเรว 5.6 millisecond 0.0056 วนาท ตอ 1 ภาพ แตเมอเพมจ านวน Eigenvector ทเกยวของในการรจ าเปน 100 ระบบ จะท างานทความเรว 24.5 millisecond ตอ 1 ภาพ

จ านวน Eigenvector ผลการรจ าถกตอง (รอยละ)

เวลาในการรจ าโดยเฉยตอภาพ (วนาท)

5 83.0 0.0056 10 92.0 0.0076 20 93.0 0.0113 50 96.0 0.0242 100 96.0 0.0245

ตารางท 4.1 แสดงผลลพธการรจ าเมอเปลยนแปลงจ านวน Eigenvector

Page 43: ระบบจำหน้า Development of Face Recognition System_04_04_2011

35

ส าหรบการทดลองทสอง เราจะท าการเปลยนคาจ านวนภาพใบหนาเรยนรทใชในการสราง Subspace โดยทจ านวน Eigenvector จะถกก าหนดคงทไวเทากบ 50 และเราไดก าหนดภาพใบหนาทดสอบของแตละคนเอาไวกอนจ านวน 2 ภาพ จากภาพใบหนาทงหมด 5 ภาพ จากนนสวนทเหลอจะถกใชเปนภาพใบหนาเรยนร โดยเราจะคอยๆเพมจ านวนภาพใบหนาเรยนรทละภาพ ตงแต 1, 2 และ 3 ภาพตามล าดบ ซงโดยทวไปแลวถามจ านวนภาพเรยนรตอ 1 บคคลยงมาก ควรจะท าใหไดผลลพธในการรจ ายงแมนย าขน

ผลลพธของการทดลองทเราไดสามารถแสดงในตารางท 4.3 ซงจะเหนไดวาเมอก าหนดจ านวนภาพใบหนาเรยนร 1 ภาพ ผลลพธการรจ าทถกตองอยทรอยละ 90.0 แตเมอเพมจ านวนภาพเรยนรเปน 2 ภาพ ผลลพธของการรจ าทถกตองจะอยทรอยละ 96.0 ซงเทากนกบจ านวนภาพเรยนร 3 ภาพ ซงจะเหนไดวาระบบของเราสามมรถท างานไดถกตองแมนย าถงรอยละ 90 ถงแมวาจะใชเพยง 1 ภาพตอ 1 บคคลในการเรยนร

จ านวนภาพในการเรยนร ผลการรจ าถกตอง (รอยละ)

เวลาในการรจ าโดยเฉยตอภาพ (วนาท)

1 90.0 0.0181 2 96.0 0.0224 3 96.0 0.0254

ตารางท 4.3 แสดงผลลพธการรจ าเมอเปลยนแปลงจ านวนภาพใบหนาเรยนร

4.2.2 ผลการทดลองกบฐานขอมล AR ในการทดลองนเราจะทดสอบอลกอรทมการรจ าของระบบกบภาพทถกเลอกมาจากฐานขอมล AR จ านวน 5 ภาพตอ 1 บคคล (จาก 26 ภาพตอ 1 บคคล) โดยใชเปนภาพเรยนร 3 ภาพ และ ภาพทดสอบ 2 ภาพ ในขนตอนการเรยนรเราจะสราง Subspace โดยใช Eigenvector จ านวน 50 เวกเตอร ผลลพธของการรจ าทไดจะมคาเทากบ 46% ซงคานอยในระดบเดยวกนกบคาทรายงานใน [Aleix2001] ซงไดระบผลลพธการรจ าไวเทากบ 65% (เมอใช 50 Eigenvectors และจ านวนภาพเรยนร 2 ภาพ) สาเหตหลกทท าใหผลการทดลองทเราไดมคาแตกตางจากผลทรายงานใน [Aleix2001] คอเราใชขนตอนในการ Face detection และท า Geometrical normalization ทแตกตางกน และเราไมไดท าการปรบสภาพแสง (intensity normalization) กอนน าไปท าการรจ า ซงจะมผลตอความแมนย าในการรจ า

Page 44: ระบบจำหน้า Development of Face Recognition System_04_04_2011

36

4.3 ตวอยางการท างานของโปรแกรม ในหวขอนเราจะกลาวถงขนตอนการท างานของโปรแกรมการเกบภาพใบหนาบคคลลงในฐานขอมล COM-SWU และขนตอนการท างานของการทดสอบภาพใบหนาทตองการรจ าโดยการอานจากไฟลภาพรวมทงการรจ าผานกลองเวบแคม ซงสามารถแสดงรายละเอยด ดงตอไปน

4.3.1 ขนตอนในการเกบขอมลภาพใบหนา เราไดใชกลองเวบแคมทตดตงอยบนเครองคอมพวเตอรสวนบคคล แสดงดงรป 4.1a ส าหรบท าการ

เกบขอมภาพใบหนา โดยเราไดก าหนดใหขนาดของภาพทบนทกโดยกลองใหมขนาด 640 x 480 พกเซล โดยในขณะทท าการถายภาพ ใบหนาของบคคลหนงๆ จะตองอยภายในกรอบสเหลยมสแดงและระดบสายตาของบคคลนนจะตองอยตรงกบเสนตรงสแดงทไดก าหนดไว ซงแสดงดงรปท 4.3

รปท 4.3 แสดงการถายภาพใบหนาบคคล

Page 45: ระบบจำหน้า Development of Face Recognition System_04_04_2011

37

เมอเราตองการทจะถายภาพใบหนา ใหกดตวอกษร C แลวโปรแกรมจะท าการบนทกภาพใบหนา

ถาบนทกใบหนาไดส าเรจจะแสดงขอความ “ชอไฟลภาพ.bmp save!!” เชน “test1.bmp save!!” แสดงดงรปท 4.4 โดยในโครงงานนเราไดท าการเกบภาพทถายไดเอาไวท C:\Users\Momigi\Documents\Visual Studio 2008\Projects\faceRecPCA\faceRecPCA

รปท 4.4 แสดงผลการบนทกภาพใบหนา

4.3.2 ขนตอนในการเรยนรจากภาพใบหนาทอยในไฟล หลงจากท าการโหลดขอมลภาพเรยนรเขามาแลว (ภาพเรยนรจ านวน 204 ภาพ) โปรแกรมจะใหท า

การระบคา Threshold ทตองการ ดงรปท 4.5 โดยในโครงงานนเราจะก าหนดคา Threshold ไวท 95 คา Threshold นจะเปนคาทระบวาจะใชจ านวน Eigenvector ทนอยทสดเพอสรางเปน Subspace โดยท Subspace ยงสามารถคงสภาพขอมลตงตน (ภาพกอนผาน Subspace projection) อยางนอย 95%

Page 46: ระบบจำหน้า Development of Face Recognition System_04_04_2011

38

รปท 4.5 แสดงการก าหนดคา Threshold

เมอก าหนดคา Threshold เสรจแลว ตอมาโปรแกรมจะใหก าหนดจ านวน Eigenvector สงสดท

ตองการน ามาสรางเปน Subspace โดยระบบจะเลอก Eigenvector มาสรางเปน Subspace ตามคา Threshold ทระบในขนตอนทแลว แตจ านวน Eigenvector จะไมเกนคาจ านวน Eigenvector สงสดทก าหนดไว แสดงดงรปท 4.6 หลงจากก าหนดคาเหลานเรยบรอยแลว ขอมลแตละบคคลรวมทงคาตางๆจะถกเกบไวท facedata.xml โดยในโครงงานนไฟลนจะถกเกบไวท C:\Users\Momigi\Documents\Visual Studio 2008\Projects\faceRecPCA\faceRecPCA

รปท 4.6 แสดงการก าหนดจ านวน Eigenvector

Page 47: ระบบจำหน้า Development of Face Recognition System_04_04_2011

39

4.3.4 ขนตอนการรจ า การท างานของขนตอนนม 2 ทางเลอก คอ กรณทขอมลภาพใบหนาเกบอยในไฟล และกรณท

ใบหนาทจะทดสอบถกบนทกจากกลอง ในกรณแรก โปรแกรมจะท าการโหลดขอมลภาพ (ภาพใบหนารจ าจ านวน 133 ภาพ) มาท าการรจ า ซงในโครงงานนขอมลภาพใบหนาส าหรบรจ าจะถกเกบไวในไฟล comswutest67.txt ซงผลลพธของการรจ าจะแสดงรายละเอยดตางๆ เชน ภาพทรจ าได ภาพทถกตอง ผลการรจ า (Correct, Wrong) คาความเชอมนของการรจ าในแตละภาพ เปนตน นอกจากนจะมการแสดงผลสรปของการรจ าวาถกตองรอยละเทาใด และเวลาในการรจ าโดยเฉลย ดงรปท 4.7 โดยในทนเราก าหนดจ านวน Eigenvector ไวท 50 Eigenvectors

รปท 4.7 แสดงผลลพธการรจ าจากไฟลภาพ

ในกรณทการรจ าท าผานกลองเวบแคม โปรแกรมจะท าการโหลดขอมลทไดสรางไวในขนตอนการ

เรยนรจากไฟล facedata.xml ดงรปท 4.8 หลงจากนนโปรแกรมจะแสดงหนาตางส าหรบถายภาพเพน าไปใช ในการรจ า ดงรปท 4.9

Page 48: ระบบจำหน้า Development of Face Recognition System_04_04_2011

40

รปท 4.8 แสดงการโหลดขอมลทใชส าหรบการรจ า

รปท 4.9 แสดงหนาตางส าหรบถายภาพ

เมอตองการทจะท าการรจ าใบหนาบคคลใหกดตวอกษร R แลวโปรแกรมจะท าการรจ าหลงจากนน

โปรแกรมจะหาต าแหนงของใบหนาทท าการรจ าและแสดงผลลพธดงรปท 4.10 โดยจะแสดงชอบคคล และคาความเชอมน (Confidence measure) โดยในรายละเอยดของการรจ าทงหมดจะแสดงผลลพธ ดงรปท 4.11

Page 49: ระบบจำหน้า Development of Face Recognition System_04_04_2011

41

รปท 4.10 แสดงผลลพธของการรจ าผานกลองเวบแคม

รปท 4.11 แสดงผลลพธของการรจ า

Page 50: ระบบจำหน้า Development of Face Recognition System_04_04_2011

42

บทท 5 สรป

โครงงานน เราไดศกษาและท าการพฒนาโปรแกรมรจ าใบหนาบคคล (Face recognition) ทท างาน

บนคอมพวเตอรสวนบคคลทมกลองดจตอล เชน Webcam ตออย อลกอรทมการรจ าทใชในระบบนคอเทคนค Eigen-face [Turk1991a] การพฒนาโปรแกรมเราใช MATLAB เพอทดสอบแนวคดอยางเรว หลงจากนนเราพฒนาโปรแกรมโดยใชภาษา C++ และ OpenCV library ซงเปนไลบารพนฐานทางดาน Computer Vision

เราไดทดสอบระบบรจ าใบหนาบคคลทไดพฒนาขนกบฐานขอมลภาพใบหนาทสรางขนซงประกอบดวยภาพใบหนาของ 67 คน ระบบสามารถรจ าไดถกตองประมาณรอยละ 90 โดยทเวลาในการประมวลผลตอ 1 ภาพ (640 x 480 พกเซล) โดยเฉลยมคาประมาณ 0.05 วนาท โดยเวลาดงกลาววดบน PC ทม CPU Intel Core2 DUO 1.2 GHz RAM 3 GB นอกจากน จากการทดสอบพบวาสภาพของแสงทมการเปลยนแปลง, ความคลายคลงกนของใบหนาบคคลและต าแหนงทาทางของใบหนาจะมผลท าใหความแมนย าของการรจ าลดลง

สงทควรพฒนาตอไปในอนาคตส าหรบระบบน คอ พฒนาใหอลกอรทมการรจ ามความทนทานตอสภาพแสงทเปลยนไปและต าแหนงของใบหนาเทยบกบกลอง และควรพฒนาอลกอรทมในสวนเรยนรใหท างานยดหยนมากขน ซงปจจบนนเมอเราตองการเพมขอมลใบหนาของบคคลลงในฐานขอมล เราจะตองท าการค านวณ PCA เพอหา Subspace ใหม การปรบปรงในสวนนสามารถท าไดโดยใชเทคนค Online PCA

Page 51: ระบบจำหน้า Development of Face Recognition System_04_04_2011

43

บรรณานกรม [Ahonen2006] Ahonen, T., Hadid, A., and Pietik¨ainen, M. (2006). Face description with local binary

patterns: Application to face recognition. IEEE Transactions on Pattern Analysis and Machine Intelligence, 28(12):2037–2041.

[Aleix2001] Aleix M.Martinez, Member,PCA versus LDA. IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 23, No. 2, February 2001 [Bartlett2002] M.S. Bartlett, J.R. Movellan, T.J. Sejnowski, Face Recognition by Independent

Component Analysis, IEEE Trans. on Neural Networks, Vol. 13, No. 6, November 2002, pp. 1450- 1464

[Bishop2006] Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer, New York, NY. [Blanz1999] Blanz, V. and Vetter, T. (1999). A morphable model for the synthesis of 3D faces. In ACM SIGGRAPH 1999 Conference Proceedings, pp. 187–194. [Cai2007] Cai, D., He, X., Hu, Y., Han, J., and Huang, T. (2007). Learning a spatially smooth

subspace for face recognition. In IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR 2007), Minneapolis, MN.

[Cao2010] Cao, Z., Yin, Q., Tang, X., and Sun, J. (2010). Face recognition with learning-based descriptor. In IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR 2010), San Francisco, CA.

[Chellappa1995] Chellappa, R., Wilson, C., and Sirohey, S. (1995). Human and machine recognition of faces: A survey. Proceedings of the IEEE, 83(5):705–740. [Cootes2001] Cootes, T., Edwards, G. J., and Taylor, C. J. (2001). Active appearance models. IEEE Transactions on Pattern Analysis and Machine Intelligence, 23(6):681–685. [Fischler1973] Fischler, M. A. and Elschlager, R. A. (1973). The representation and matching of pictorial structures. IEEE Transactions on Computers, 22(1):67–92. [Frome2007] Frome, A., Singer, Y., Sha, F., and Malik, J. (2007). Learning globally-consistent local distance functions for shape-based image retrieval and classification. In Eleventh International Conference on Computer Vision (ICCV 2007), Rio de Janeiro, Brazil.

Page 52: ระบบจำหน้า Development of Face Recognition System_04_04_2011

44

[Gorodnichy2005] D. Gorodnichy, Video-Based Framework for Face Recognition in Video, Second Workshop on Face Processing in Video (FPiV'05), Proc. of the Second Canadian Conference on Computer and Robot Vision (CRV'05), 09-11 May 2005, Victoria, British Columbia, Canada, pp. 330-338. [Gross2005] Gross, R., Shi, J., and Cohn, J. F. (2005). Quo vadis face recognition? In IEEE Workshop on Empirical Evaluation Methods in Computer Vision, San Diego. [Gross2006] Gross, R., Matthews, I., and Baker, S. (2006). Active appearance models with occlusion. Image and Vision Computing, 24(6):593–604. [Huang2007] Huang, G. B., Ramesh, M., Berg, T., and Learned-Miller, E. (2007). Labeled Faces in

the Wild: A Database for Studying Face Recognition in Unconstrained Environments.Technical Report 07-49, University of Massachusetts, Amherst.

[Kanade1977] Kanade, T. (1977). Computer Recognition of Human Faces. Birkhauser, Basel. [Kanade2005] Gross, R., Baker, S., Matthews, I., and Kanade, T. (2005). Face recognition across pose and illumination. In Li, S. Z. and Jain, A. K. (eds), Handbook of Face Recognition,Springer. [Kirby1990] Kirby, M. and Sirovich, L. (1990). Application of the Karhunen–L`oeve procedure for The characterization of human faces. IEEE Transactions on Pattern Analysis and Machine Intelligence, 12(1):103–108. [Kirovski2004] Kirovski, D., Jojic, N., and Jancke, G. (2004). Tamper-resistant biometric IDs. In ISSE 2004 - Securing Electronic Business Processes: Highlights of the Information Security Solutions Europe 2004 Conference, pp. 160–175. [Krueger2003] S. Zhou, V. Krueger, R. Chellappa, Probabilistic recognition of human faces from video, Computer Vision and Image Understanding, Vol. 91, 2003, pp. 214-245. [Li2005] Li, S. Z. and Jain, A. K. (eds). (2005). Handbook of Face Recognition, Springer. [Martinez1998] A.M. Martinez and R. Benavente. The AR Face Database. CVC Technical Report #24, June 1998. [Matthews2007] Matthews, I., Xiao, J., and Baker, S. (2007). 2D vs. 3D deformable face models: Representational power, construction, and real-time fitting. International Journal of Computer Vision, 75(1):93–113. [Moghaddam1997] Moghaddam, B. and Pentland, A. (1997). Probabilistic visual learning for object representation.IEEE Transactions on Pattern Analysis and Machine Intelligence, 19(7):696–710.

Page 53: ระบบจำหน้า Development of Face Recognition System_04_04_2011

45

[Liang2008] Liang, L., Xiao, R., Wen, F., and Sun, J. (2008). Face alignment via component-based discriminative search. In Tenth European Conference on Computer Vision (ECCV 2008),pp. 72–85, Marseilles. [Penev1996] Penev, P. and Atick, J. (1996). Local feature analysis: A general statistical theory for object representation. Network Computation and Neural Systems, 7:477–500. [Phillips2000] Phillips, P. J., Moon, H., Rizvi, S. A., and Rauss, P. J. (2000). The FERET evaluation

methodology for face recognition algorithms. IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(10):1090–1104.

[Phillips2010] Phillips, P. J., Scruggs, W. T., O’Toole, A. J., Flynn, P. J., Bowyer, K. W. et al. (2010) FRVT 2006 and ICE 2006 large-scale experimental results. IEEE Transactions on Pattern Analysis and Machine Intelligence, 32(5):831–846. [Ramnath2008] Ramnath, K., Koterba, S., Xiao, J., Hu, C., Matthews, I., Baker, S., Cohn, J., and

Kanade, T.(2008). Multi-view AAM fitting and construction. International Journal of Computer Vision, 76(2):183–204.

[Ramanan2009] Ramanan, D. and Baker, S. (2009). Local distance functions: A taxonomy, new algorithms, and an evaluation. In Twelfth International Conference on Computer Vision (ICCV 2009), Kyoto, Japan. [Sim2003] Sim, T., Baker, S., and Bsat, M. (2003). The CMU pose, illumination, and expression database. IEEE Transactions on Pattern Analysis and Machine Intelligence, 25(12):1615–1618. [Toole2006] O’Toole, A. J., Jiang, F., Roark, D., and Abdi, H. (2006). Predicting human face recognition.In Zhao, W.-Y. and Chellappa, R. (eds), Face Processing: Advanced Methods and Models, Elsevier. [Toole2008] O’Toole, A. J., Phillips, P. J., Jiang, F., Ayyad, J., P´enard, N., and Abdi, H. (2009). Face recognition algorithms surpass humans matching faces over changes in illumination. IEEE Transactions on Pattern Analysis and Machine Intelligence, 29(9):1642–1646. [Turk1991a] Turk, M. and Pentland, A. (1991a). Eigenfaces for recognition. Journal of Cognitive Neuroscience, 3(1):71–86. [Vasilescu2007] Vasilescu, M. A. O. and Terzopoulos, D. (2007). Multilinear (tensor) image synthesis, analysis, and recognition. IEEE Signal Processing Magazine, 24(6):118–123. [Viola&Jones2001] P. Viola & M. Jones (2001), Rapid Object Detection using a Boosted Cascade of Simple Features, CVPR 2001.

Page 54: ระบบจำหน้า Development of Face Recognition System_04_04_2011

46

[Wechsler2000] C. Liu, H. Wechsler, Evolutionary Pursuit and Its Application to Face Recognition, IEEE Trans. on Pattern Analysis and Machine Intelligence, Vol. 22, No. 6, June 2000, pp. 570-582 [Wiskott1997] Wiskott, L., Fellous, J.-M., Kr¨uger, N., and von der Malsburg, C. (1997). Face

recognition by elastic bunch graph matching. IEEE Transactions on Pattern Analysis and Machine Intelligence, 19(7):775–779.

[Yuille1991] Yuille, A. (1991). Deformable templates for face recognition. Journal of Cognitive Neuroscience, 3(1):59–70. [Zhao2003] Zhao, W., Chellappa, R., Phillips, P. J., and Rosenfeld, A. (2003). Face recognition: A literature survey. ACM Computing Surveys, 35(4):399–358. [Zhao2007] Zhao, G. and Pietik¨ainen, M. (2007). Dynamic texture recognition using local binary Patterns with an application to facial expressions. IEEE Transactions on Pattern Analysis and Machine Intelligence, 29(6):915–928.