Tuesday, April 3, 2012

อัลกอริทึมการรู้จำใบหน้า (Face recognition algorithm)

การพิสูจน์ตัวตนด้วยใบหน้าตามที่ผมจะแบ่งก็มีอยู่สองวิธีใหญ่ๆ ดังนี้ครับ

1. วิธีทางไบโอเมทริก (Biometric) เช่น การวัดระยะห่างของตา

2. วิธีทางสถิติ


กระบวนการรู้จำใบหน้าด้วยวิธีทางสถิติ

ก่อนอื่นก็ต้องรู้กระบวนการทั้งระบบก่อนนะครับ ผมขอกล่าวคร่าวๆเลยละกัน
การรู้จำทางสถิติจะมีอยู่สองขั้นตอนหลักนะครับ คือ 
     - การเรียนรู้ (Training)
     - การระบุตัวตน (Identify) หรือ Testing

      step 1 : เราต้องได้ภาพใบหน้ามาก่อน ไม่ว่าจะได้จากกล้องเว็บแคม กล้องถ่ายภาพธรรมดา หรืออะไรก็แล้วแต่ ต้องมาผ่านกระบวนการตรวจจับใบหน้า (Face Detection) กระบวนการ ตรวจจับใบหน้า ท่านสามารถหา Open source ได้ทั่วไปนะครับ ต่อไปก็ต้องผ่านการปรับแต่งภาพก่อน ไม่ว่าจะเป็นเรื่องของแสงเงา สัญญาณรับกวน ง่ายๆคือ แต่งภาพให้มันดีขึ้นครับ หรือ แต่งให้อยู่ในรูปแบบเดียวกันครับ

     step : 2 อันนี้สำคัญครับ คือการดึงลักษณะเฉพาะ (Feature) ของภาพ ผมขอยกตัวอย่าง โดยวิธีทางสถิตินะครับ เค้าใช้การลดมิติของภาพ เช่น จากภาพขนาด 100 x 100 pixel ก็จะมีจำนวน 10000 จุดภาพ  
ซึ่งข้อมูลมันเยอะมาก ต้องลดมิติหรือขนาดของข้อมูลลงให้น้อย เช่น ให้เหลือ 20 มิติ หรือ ค่าเอกลักษณ์จำนวน 20 ค่า ด้วยวิธีทางสถิติ วิธีใดวิธีหนึ่ง (ท่านต้องไปศึกษาเพิ่มเติมนะครับ)

     step : 3 ส่วนนี้คือการจำแนกกลุ่มของข้อมูล (Classification) ที่เราได้ดึงลักษณ์เฉพาะออกมาแล้ว ซึ่งก็มีวิธีอีกมากมาย ยกตัวอย่างเช่น การหาค่าที่ใกล้ที่สุด Nearest neighbor SVM แต่ละวิธีก็ยากง่ายต่างกันรวมถึงความแม่นยำด้วยนะครับ
     
     step : 4 สุดท้ายคือการเก็บลงฐานข้อมูลครับ (ถ้าเป็นขั้นตอนการระบุตัวตนจะทำเหมือนสามขั้นตอนข้างบนแต่จะเรียกว่า Identify)


วิธีเชิงความรู้ (Knowledge-based methods) เป็นวิธีการพิจารณาความสัมพันธ์ระหว่างลักษณะเด่นเฉพาะต่างๆบนใบหน้า ที่มีตำแหน่งและองค์ประกอบหลักพื้นฐานตายตัวบนใบหน้าตัวอย่างเช่น Yang and Huang (1994) ศึกษาวิธีเชิงความรู้แบบลำดับชั้น(hierarchical) ซึ่งพิจารณาแบ่งเป็น3 ลำดับชั้น ดังแสดงในรูปที่ 2.21


รูปที่ 2.21 ขอบเขตการพิจารณาของแต่ละลำดับชั้น

              ชั้นแรก พิจารณาหาตำแหน่งความน่าจะเป็นของใบหน้าโดยรวม ชั้นที่ 2 พิจารณาโดยค่าฮิสโตแกรม (histogram)ร่วมกับการหาเส้นขอบ ชั้นที่ 3 พิจารณาลักษณะเด่นภายในของใบหน้าเช่น ความสมมาตรกันของตาทั้ง 2 ข้างตำแหน่งของจมูกและปากในแนวตั้งและแนวนอน ต่อมา Kotropoulos and Pitas (1997) ได้ศึกษาวิธีฐานกฎแบบกำหนดเขต (rule-based localization method)ซึ่งเป็นวิธีการที่คล้ายคลึงกับวิธีของ Yang and Huang แตกต่างกันที่พิจารณาค่าฮิสโตแกรมทั้งใน แนวตั้งและแนวนอน  แต่ยังไม่สามารถขจัดปัญหาของภาพ  ที่มีพื้นหลังซับซ้อนและปัญหาความหลากหลายของใบหน้าบุคคล รวมทั้งการวางท่าที่แตกต่างกันได้

วิธีเชิงลักษณะ (Feature-based methods) เป็นการใช้อัลกอริทึมพิจารณาลักษณะเด่นและโครง สร้าง ของใบหน้า รวมทั้งความเปลี่ยนแปลงขององค์ประกอบต่างๆของภาพเช่น แสงเงาตัวอย่างเช่น Chetverikov and Lerch (1993) ใช้ความแตกต่างของแสงเงาและเส้นแนวเป็นแบบจำลองในการค้นหาใบหน้า โดยแบบจำลองนั้นประกอบด้วยจุดความสว่างน้อย (จุดมืด) 2 จุดเพื่อแสดงดวงตาและจุดความสว่างมา (จุดอ่อน) 3 จุด เพื่อแสดงโหนกแก้มและจมูกแล้วหาความสัมพันธ์ของระยะห่างและตำแหน่งของจุดต่างเพื่อคัดเลือกแบบหน้าที่เหมาะสม ระบบนี้มีข้อจำกัดอยู่ที่เมื่อแสงเงาของสภาวะแวดล้อมเปลี่ยนแปลงจะทำให้ประสิทธิภาพในการค้นหาเปลี่ยนไป ต่อมา Graf, Chen, Petajan, and Cosatto (1995) พัฒนาทฤษฏีนี้โดยใช้งานในระบบภาพระดับเทา และนำตัวกรองช่วงผ่าน (band pass filter) ตัวกรองเกาส์เซียน (Gaussian filter) และค่าฮิสโตแกรม มาใช้หาค่าจุดสูงสุดและต่ำสุดเพื่อกำหนดขอบเขตของใบหน้า
ลักษณะเฉพาะอีกประการหนึ่งที่นิยมนำมาพิจารณาหาใบหน้าบุคคลคือ ค่าสีผิวมนุษย์โดยมีการค้นหาในหลายๆปริภูมิสีโดย Crowley and Berard (1997) ทำการเก็บค่าเวกเตอร์ของสีผิวมนุษย์โดยแยกค่าสีออกเป็น R, G และ B เพื่อพิจารณาค่าฮิสโตแกรมของค่าสีผิวมนุษย์ที่ได้จากการสำรวจข้อมูลกลุ่มตัวอย่าง ต่อมา Saxe and Fould (1996)ประยุกต์ใช้วิธีการดังกล่าวกับปริภูมิสี HSV และใช้แนวคิดค่าฮิสโตแกรมตัดผ่าน (histogram intersection) เปรียบเทียบค่าฮิสโตแกรมควบคุมกับค่าฮิสโตแกรมปัจจุบัน ซึ่งทำให้ประสิทธิภาพดีกว่าการใช้ค่าเริ่มเปลี่ยน
             Chai and Ngan (1998) พิจารณาค่าสีผิวในปริภูมิสี YCrCb โดยพิจารณาค่าเริ่มเปลี่ยนของค่าสีผิวมนุษย์ที่ได้จากการสำรวจข้อมูลกลุ่มตัวอย่าง ซึ่งต้องระมัดระวังในการเลือกใช้ให้เหมาะสมกับภาพที่ทำการทดลองและเป็นข้อเสียของการคัดแยกสีผิวมนุษย์ด้วยค่าเริ่มเปลี่ยน ต่อมามีการนำการคัดแยกสีผิวมาใช้ร่วมกับวิธีการอื่นๆในการค้นหาใบหน้าตัวอย่างเช่น Wu, Yokoyama, Pramadihanto, and Yachida(1996) ใช้ทฤษฏีคลุมเครือ (fuzzy theory) ในการคัดแยกสีผิวมนุษย์และสีผมในปริภูมิสี CIE XYZ โดยทำการแปลงจากปริภูมิสี RGB นอกจากนี้ยังมีการนำเอาลักษณะเด่นของใบหน้าอื่นๆมาใช้ในการค้นหาตัวอย่างเช่น (Yokoo and Hagiwara(1996) ใช้คุณสมบัติของโครงหน้าทั่วไปของมนุษย์ที่เป็นรูปไข่สร้างแบบจำลองรูปวงรีเปรียบเทียบพารามิเตอร์ร่วมกับการค้นหาแบบจีนเนติกอัลกอริทึม (genetic algorithm) จากการศึกษาพบว่าวิธีการนี้มีข้อจำกัดอยู่ที่รายละเอียดของใบหน้าที่ทำการค้นหาต้องมีความชัดเจนและมีขนาดใหญ่เพียงพอต่อการค้นหา
วิธีเทียบเคียงแผ่นแบบ(Template matching methods) เป็นการเปรียบเทียบภาพที่ต้องการค้นหากับโครงสร้างแบบจำลองของใบหน้ามาตรฐาน โดยเก็บข้อมูลความสัมพันธ์อย่างอิสระของส่วนต่างๆ บนใบหน้าได้แก่โครงสร้างใบหน้า ตา จมูก และปาก ในท่าหน้าตรงตัวอย่างเช่น Sakai, Nagao and Fujibayashi, (1969) เสนอโครงสร้างแบบจำลองแผ่นแบบย่อย (subtemplates model) โดยใช้ตัวกรองโซเบล (sobel filter) หาเส้นขอบ เพื่อหาตำแหน่งความน่าจะเป็นของส่วนย่อยต่างๆบนใบหน้าที่สามารถเข้ากันได้ดีที่สุดกับแบบจำลองแผ่นแบบย่อยให้เป็นตำแหน่งของใบหน้าที่ต้องการต่อมา Tsukamoto, Lee, and Tsuji (1994) เสนอแบบจำลองคุณภาพสำหรับรูปแบบหน้า (qualitative model for face pattern : QMF) โดยใช้พารามิเตอร์ของแสงสว่างและเส้นขอบใบหน้าเป็นแบบจำลองของใบหน้า และเทคนิคที่นิยมใช้อีกอันหนึ่งคือการวิเคราะห์องค์ประกอบหลัก (principal component analysis: PCA) โดย Jung, Lee C.W., and Lee Y.C (2002) ศึกษาการค้นหาตำแหน่งที่แน่นอนของใบหน้าโดยใช้หลักการพื้นฐานทางด้านเรขาคณิต วิเคราะห์องค์ประกอบของใบหน้าให้อยู่ในรูปของสมการทางคณิตศาสตร์
                  ต่อมามีการพัฒนาแบบจำลองให้มีความสามารถปรับตัวได้เรียกว่าแผ่นแบบเปลี่ยนรูปได้
( deformable templates ) โดยแผ่นแบบสามารถปรับตัวให้รองรับความยืดหยุ่นของโครงสร้างใบหน้าที่เปลี่ยนแปลงไปและลดปัญหาที่มีในแผ่นแบบคงตัวตัวอย่างเช่น Malciu and Preteux(2002) นำแบบจำลองหน้าจากฐานข้อมูล MPEG-4 มาสร้างเป็นแบบจำลองแผ่นแบบพารามิเตอร์ (template parameterization) และพิจารณาความยืดหยุ่นของโครงสร้างใบหน้าเปรียบเทียบเป็นความยืดหยุ่นของสปริง เพื่อหาค่าพลังงานที่สปริงใช้น้อยที่สุดในการจะปรับตัวเพื่อให้ภาพที่หาเส้นขอบนั้นเข้ากับแบบจำลองมากที่สุด 




วิธีเชิงลักษณะปรากฏ(Appearance-based methods) เป็นการเปรียบเทียบภาพที่ต้อง การค้นหากับโครงสร้างแบบจำลองของใบหน้าที่ทำการเรียนรู้และฝึกสอนให้ระบบจดจำและนำความรู้ในฐานข้อมูลมาใช้ในการพิจารณาโดยสามารถแบ่งย่อยได้หลายวิธีด้วยกันในที่นี้จะทำการเสนอเพียงวิธีการที่ได้รับความนิยมใช้งานกันอย่างกว้างขวาง 3 วิธีดังนี้

 วิธีหน้าลักษณะเฉพาะ (Eigenface Methods) เป็นการวิเคราะห์องค์ประกอบพื้นฐานของใบหน้า  ด้วยกระบวนการทางสถิติของใบหน้าที่หลากหลาย โดยหน้าลักษณะเฉพาะคือเซตของเวกเตอร์ลักษณะเฉพาะ(eigen vector) ที่สามารถหาได้จากเมทริกซ์ความแปรปรวน ร่วมเกี่ยว (covariance matrix) สร้างเป็นแบบจำลองของใบหน้าที่รวมเอาลักษณะเด่นต่างๆของภาพใบหน้าตัวอย่างมาร่วมกันเพื่อหาค่าเฉพาะเจาะจงขององค์ประกอบบนใบหน้า ซึ่งในแต่ละบุคคลจะเป็นค่าเฉพาะของบุคคลนั้นๆตัวอย่างเช่น Turk and Pentland (1991) นำภาพระดับเทามาแปลงเป็นเวกเตอร์เพื่อหาค่าลักษณะเฉพาะและนำค่าลักษณะเฉพาะของตัวอย่างภาพหน้าบุคคล  มาสร้างเป็นแบบจำลองหน้าลักษณะเฉพาะเพื่อค้นหาตำแหน่งของใบหน้าวิธีเชิงการกระจาย (Distribution-Base Methods) เป็นการแสดงการกระจายตัวของรูปแบบข้อมูลตัวอย่างที่มีความเป็นหน้าและความไม่เป็นหน้าเพื่อใช้เป็นบรรทัดฐานในการตัดสินใจตัวอย่างเช่น Sung and Poggio (1998) นำฟังก์ชันเกาส์เซียน (Gaussian function) มาประมาณกลุ่มการกระจายของค่าเฉลี่ยกลุ่มตัวอย่าง แสดงในรูปที่ 2.22


รูปที่ 2.22 การกระจายตัวของข้อมูลตัวอย่าง

โครงข่ายประสาทเทียม(Artificial Neural Networks) เป็นการฝึกสอนโครงข่ายด้วยโครงสร้างใบหน้าที่มีความซับซ้อน โดยทำการปรับค่าน้ำหนักประสาทเพื่อให้ค่าความผิดพลาดกำลังสองเฉลี่ยมีค่าลดลง ความถูกต้องของโครงข่ายประสาทเทียมขึ้นกับตัวอย่างที่ทำการฝึกสอนจำนวนชั้นนิวรอนและจำนวนนิวรอนที่เหมาะสม ตัวอย่างเช่น Rowley, Baluja, and Kanade (1998) ใช้โครงข่ายประสาทเทียมแบบแพร่กลับในการฝึกสอนข้อมูลตัวอย่าง โดยทำการแบ่งข้อมูลออกเป็นภาพตัวอย่างใบหน้าบุคคลและภาพที่ไม่ใช่ใบหน้าบุคคลอย่างละ 1,048 ภาพ และแบ่งชุดข้อมูลออกเป็น 15 ชุดข้อมูล รวมข้อมูลตัวอย่างทั้งหมดได้ 15,720 ภาพ ซึ่งการฝึกสอนที่มีจำนวนข้อมูลตัวอย่างที่ครอบคลุมและมากเพียงพอจะช่วยลดความผิดพลาดของระบบ
รูปที่ 2.23 ตัวอย่างโครงข่ายประสาทเทียม


รายละเอียดของแต่ละอัลกอริทึมท่านต้องไปศึกษาเพิ่มเติมนะครับ มิฉะนั้น งง แน่ๆ ครับ

และอื่นๆ ครับ รอท่านวิจัยต่อไป เหอะๆ


อ้างอิงข้อมูลบางส่วน : sutir.sut.ac.th:8080/sutir/bitstream/123456789/3164/2/fulltext.pdf

2 comments:

  1. อ้าว นี่มาน ล๊วก เพี๊ยะ ผม หนิ 555 อ่านจนจะจบไปเห็นรูป 55

    ReplyDelete
  2. อัลกอริทึมการรู้จำใบหน้า (Face Recognition Algorithm) ~ ไม่รู้จะเขียนอะไร เค้าเขียนกันหมดแล้ว >>>>> Download Now

    >>>>> Download Full

    อัลกอริทึมการรู้จำใบหน้า (Face Recognition Algorithm) ~ ไม่รู้จะเขียนอะไร เค้าเขียนกันหมดแล้ว >>>>> Download LINK

    >>>>> Download Now

    อัลกอริทึมการรู้จำใบหน้า (Face Recognition Algorithm) ~ ไม่รู้จะเขียนอะไร เค้าเขียนกันหมดแล้ว >>>>> Download Full

    >>>>> Download LINK

    ReplyDelete