แอปพลิเคชัน MATLAB ในการจดจำใบหน้า: รหัส คำอธิบาย & ไวยากรณ์

เผยแพร่แล้ว: 2020-06-23

ทุกครั้งที่คุณปลดล็อกโทรศัพท์มือถือด้วยใบหน้าหรือผ่านระบบเฝ้าระวังในสำนักงานที่มีเทคโนโลยีสูง เทคโนโลยีการจดจำใบหน้าที่ซับซ้อนจะทำงานอยู่เบื้องหลัง การจดจำใบหน้าคืออะไร และคุณจะดำเนินการ จดจำใบหน้าโดยใช้ MATLAB ได้อย่างไร

การจดจำใบหน้าเป็นกระบวนการระบุใบหน้ามนุษย์ผ่านเทคโนโลยี ระบบจดจำใบหน้าใช้คอมพิวเตอร์วิทัศน์และเทคนิคการเรียนรู้ของเครื่องเพื่อสร้างแบบจำลองและจำแนกลักษณะใบหน้าที่ดึงมาจากรูปภาพและวิดีโอ อัลกอริทึมสำหรับการแยกการระบุใบหน้าและทำแผนที่คุณสมบัติใบหน้า และเปรียบเทียบกับฐานข้อมูลของใบหน้าที่รู้จักเพื่อค้นหาใบหน้าที่ตรงกันที่สุด

แหล่งที่มา

สารบัญ

MATLAB ในการจดจำใบหน้า

เป็นไปได้ที่จะบรรลุ การจดจำใบหน้าโดยใช้รหัส MATLAB คลาสและฟังก์ชันในตัวใน MATLAB สามารถใช้ตรวจจับใบหน้า ตา จมูก และปากได้ การมองเห็นวัตถุ ระบบ CascadeObjectDetector ของกล่องเครื่องมือระบบการมองเห็นด้วยคอมพิวเตอร์จะจดจำวัตถุตามอัลกอริธึมการตรวจจับใบหน้าของ Viola-Jones

คำอธิบายของ MATLAB Object Detector

Vision.CascadeObjectDetector ใช้อัลกอริธึม Viola-Jones เพื่อระบุใบหน้า ตา ปาก จมูก หรือร่างกายส่วนบน ตัวแยกประเภทที่กำหนดเองสามารถฝึกได้โดยใช้ Image Labeler ของ MATLAB และใช้ร่วมกับออบเจกต์ระบบ แล้วใบหน้าหรือร่างกายส่วนบนตรวจพบได้อย่างไร? นี่คือขั้นตอน:

  1. ขั้นตอนแรกเกี่ยวข้องกับการสร้างวิสัยทัศน์วัตถุ CascadeObjectDetector และการตั้งค่าคุณสมบัติของมัน
  2. ในขั้นตอนนี้ วัตถุถูกเรียกใช้ด้วยอาร์กิวเมนต์

อ่าน: 15 แนวคิดและหัวข้อโครงการ MATLAB ที่น่าสนใจสำหรับผู้เริ่มต้น

ไวยากรณ์สำหรับการสร้างเครื่องตรวจจับวัตถุ

ไวยากรณ์ที่ใช้สำหรับการสร้าง Object Detector มีดังนี้:

  • เครื่องตรวจจับ = วิสัยทัศน์CascadeObjectDetector
  • เครื่องตรวจจับ = วิสัยทัศน์ CascadeObjectDetector (mode1)
  • เครื่องตรวจจับ = วิสัยทัศน์CascadeObjectDetector (ชื่อ, ค่า)
  • เครื่องตรวจจับ = วิสัยทัศน์ CascadeObjectDetector (XMLFILE)

คำอธิบายของไวยากรณ์

  • เครื่องตรวจจับ = การมองเห็น CascadeObjectDetector: ไวยากรณ์นี้ใช้สำหรับการสร้างตัวตรวจจับที่ตรวจจับวัตถุโดยใช้อัลกอริธึม Viola-Jones
  • detector = vision.CascadeObjectDetector(mode1): ไวยากรณ์นี้ใช้สำหรับการสร้างตัวตรวจจับที่กำหนดค่าไว้สำหรับการตรวจจับวัตถุที่กำหนดโดยเวกเตอร์อินพุต – mode1
  • detector = vision.CascadeObjectDetector(Name,Value): ไวยากรณ์นี้ใช้สำหรับการตั้งค่าคุณสมบัติโดยใช้คู่ค่าชื่ออย่างน้อยหนึ่งคู่ โดยแต่ละชื่อคุณสมบัติจะอยู่ภายในเครื่องหมายคำพูด ตัวอย่างเช่น detector = vision.CascadeObjectDetector('ClassificationModel','UpperBody')

เช็คเอาท์: แนวคิดโครงการแมชชีนเลิร์นนิง

คุณสมบัติ

เว้นแต่จะระบุไว้เป็นอย่างอื่น คุณลักษณะของ cascade Object Detector นั้นไม่สามารถปรับได้ หมายความว่าหลังจากเรียกอ็อบเจ็กต์แล้ว ค่าของวัตถุนั้นไม่สามารถเปลี่ยนแปลงได้ ออบเจ็กต์จะถูกล็อกเมื่อถูกเรียก และการปลดล็อกทำได้โดยฟังก์ชัน 'release'

ในทางกลับกัน คุณสมบัติที่ปรับได้จะหมายความว่าค่าของคุณสมบัตินั้นสามารถเปลี่ยนแปลงได้ตลอดเวลา ดังนั้น ให้เราดูคุณสมบัติบางอย่างก่อนที่เราจะเข้าใจ การจดจำใบหน้าโดยใช้ รหัส MATLAB

  • ClassificationModel: กำหนดเป็นเวกเตอร์อักขระ คุณสมบัตินี้รับผิดชอบในการควบคุมประเภทของอ็อบเจ็กต์ที่จะตรวจจับ การกำหนดค่าเริ่มต้นของตัวตรวจจับจะตรวจจับใบหน้า
  • MinSize: ขนาดของวัตถุที่เล็กที่สุดที่รู้จักจะแสดงเป็นเวกเตอร์สององค์ประกอบ [ความกว้างความสูง] เว้นแต่จะระบุค่าคุณสมบัติ ตัวตรวจจับจะตั้งค่าให้เป็นขนาดภาพที่ใช้สำหรับการฝึกโมเดลการจำแนกประเภท
  • MaxSize: ขนาดของอ็อบเจกต์ที่เล็กที่สุดที่รู้จักจะแสดงเป็นเวกเตอร์สององค์ประกอบ [height width ] เว้นแต่จะระบุค่าคุณสมบัติ ตัวตรวจจับจะตั้งค่าเป็นขนาด (I)
  • ScaleFactor: มีค่าที่ระบุสูงกว่า 1.0001 คุณสมบัตินี้ใช้สำหรับการปรับขนาดที่เพิ่มขึ้นของความละเอียดในการตรวจจับระหว่าง MinSize และ MaxSize
  • MergeThreshold: มีค่าจำนวนเต็มที่ระบุเท่ากับ 4 ในกรณีที่มีการตรวจจับหลายครั้งรอบๆ วัตถุเป้าหมาย เกณฑ์จะกำหนดเกณฑ์การตรวจจับขั้นสุดท้าย
  • UseROI: ระบุเป็นเท็จ คุณสมบัตินี้สามารถตั้งค่าเป็นจริงสำหรับการตรวจจับวัตถุภายในพื้นที่สี่เหลี่ยมที่น่าสนใจในภาพที่นำเข้า

ไวยากรณ์สำหรับการใช้เครื่องตรวจจับวัตถุ

  • bbox = เครื่องตรวจจับ (I)
  • bbox = ตัวตรวจจับ (I, ROI)

คำอธิบายของไวยากรณ์

  • bbox = ตัวตรวจจับ (I) ส่งคืน bbox ซึ่งเป็น เมทริกซ์ M -by-4 ที่กำหนด กล่องขอบเขต ' M ' ที่มีวัตถุที่ตรวจพบ
  • bbox = ตัวตรวจจับ (I,roi) ใช้สำหรับตรวจจับวัตถุภายในพื้นที่สี่เหลี่ยมที่น่าสนใจซึ่งระบุโดย ROI

อาร์กิวเมนต์อินพุต

  • I — อินพุตรูปภาพ: ระบุเป็นสีจริงหรือระดับสีเทา (RGB)
  • model — Classification model: มันถูกระบุเป็นเวกเตอร์อักขระและอธิบายประเภทของวัตถุที่จะตรวจพบ
  • XMLFILE — โมเดลการจัดหมวดหมู่แบบกำหนดเอง: ระบุเป็นไฟล์ XML สามารถสร้างได้โดยใช้ฟังก์ชันการฝึกอบรม OpenCV หรือฟังก์ชัน trainCascadeObjectDetector
  • รอย — พื้นที่สี่เหลี่ยมที่น่าสนใจ: เวกเตอร์สี่องค์ประกอบ [ ความ สูง ความกว้าง x y ] ใช้เพื่อระบุอาร์กิวเมนต์อินพุตนี้

อาร์กิวเมนต์เอาต์พุต

bbox — การตรวจหา: การตรวจหาจะถูกส่งคืนเป็น เมทริกซ์องค์ประกอบ M -by-4 ซึ่งแต่ละแถวมีเวกเตอร์สี่องค์ประกอบ [ ความ สูงความ กว้าง x y ]

ฟังก์ชันอ็อบเจ็กต์ทั่วไปสำหรับออบเจ็กต์ระบบทั้งหมด

  • ขั้นตอน: สำหรับการรันอัลกอริธึม System Object
  • release: สำหรับการปล่อยทรัพยากรระบบ
  • รีเซ็ต: สำหรับการรีเซ็ตสถานะภายในของ System Object

รหัส MATLAB สำหรับการจดจำใบหน้า

ในส่วนนี้ เราจะมาดูตัวอย่างการจดจำใบหน้าโดยใช้รหัส MATLAB

การตรวจจับใบหน้า

แหล่งที่มา

แหล่งที่มา

ขั้นตอน (Detector,I) จะคืนค่า Bounding Box ที่มี [x,y,Height,Width] ของวัตถุภายใต้การตรวจจับ:

แหล่งที่มา

ตรวจจมูก

แหล่งที่มา

แหล่งที่มา

คำอธิบาย:

  • การผ่านอาร์กิวเมนต์ 'จมูก' แสดงว่าวัตถุที่น่าสนใจคือจมูก
  • ไวยากรณ์การตรวจหาจมูกเริ่มต้นคือ vision.CascadeObjectDetector('Nose')
  • ค่าพารามิเตอร์เริ่มต้นส่งผ่านไปยัง vision.CascadeObjectDetector สามารถแก้ไขได้ตามอิมเมจอินพุต
  • ค่า 'MergeThreshold' สามารถลบล้างได้เพื่อหลีกเลี่ยงการตรวจจับหลายครั้งรอบๆ วัตถุเป้าหมาย (ดังในภาพด้านบน)

ตรวจ ตา

แหล่งที่มา

แหล่งที่มา

ตรวจ ช่องปาก

แหล่งที่มา

แหล่งที่มา

อ่านเพิ่มเติม: ในขณะที่วนซ้ำใน MATLAB: ทุกสิ่งที่คุณต้องรู้

ห่อ

แม้ว่าเทคโนโลยีการจดจำใบหน้าจะเป็นประโยชน์สำหรับการยืนยันตัวตนส่วนบุคคล แต่ก็ทำให้เกิดปัญหาความเป็นส่วนตัวขึ้น เนื่องจากเทคโนโลยีใช้ใบหน้าของบุคคล จึงมักถูกมองว่าเป็นการละเมิดความเป็นส่วนตัว ความปลอดภัย และการรักษาความปลอดภัย การจดจำ F ace โดยใช้ MATLAB สามารถใช้ได้ในหลายกรณีที่การรักษาความปลอดภัยเป็นสิ่งที่น่ากังวลอย่างยิ่ง ตั้งแต่สนามบินและสำนักงานไปจนถึงสมาร์ทโฟน การจดจำใบหน้าได้กลายเป็นองค์ประกอบสำคัญของระบบและองค์กรมากมาย

หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับแมชชีนเลิร์นนิง โปรดดูที่ IIIT-B & upGrad's PG Diploma in Machine Learning & AI ซึ่งออกแบบมาสำหรับมืออาชีพที่ทำงานและมีการฝึกอบรมที่เข้มงวดมากกว่า 450 ชั่วโมง กรณีศึกษาและการมอบหมายมากกว่า 30 รายการ IIIT- สถานะศิษย์เก่า B, 5+ โครงการหลักที่ใช้งานได้จริง & ความช่วยเหลือด้านงานกับบริษัทชั้นนำ

การจดจำใบหน้าคืออะไร?

สามารถใช้การจดจำใบหน้าเพื่อป้องกันการโจรกรรมข้อมูลประจำตัว ตลอดจนเพื่อระบุตัวบุคคลด้วยชื่อ อย่างไรก็ตาม เนื่องจากระบบจดจำใบหน้าค่อนข้างใหม่และมีการพัฒนาอย่างต่อเนื่อง จึงเป็นสิ่งสำคัญที่จะต้องเข้าใจพื้นฐานของการจดจำใบหน้าเพื่อใช้งานอย่างมีประสิทธิภาพ การจดจำใบหน้าหมายถึงกระบวนการในการพิจารณาว่าภาพใบหน้าเป็นของบุคคลที่รู้จักหรือไม่ ปัญหาของการจดจำใบหน้าสามารถแบ่งออกเป็นสองงาน: 1) การตรวจจับใบหน้า - การระบุตำแหน่งใบหน้าในภาพ 2) การจดจำใบหน้า - การระบุตัวตนของบุคคลที่มีใบหน้า

Matlab คืออะไร?

Matlab เป็นภาษาโปรแกรมสำหรับการคำนวณเชิงตัวเลข โดยทั่วไป มันเป็นภาษาโปรแกรมเมทริกซ์ มีการใช้กันอย่างแพร่หลายในการคำนวณทางวิทยาศาสตร์และวิศวกรรม ไม่เหมือนกับภาษาโปรแกรมอื่น ๆ MATLAB ถูกออกแบบมาให้เป็นภาษาเมทริกซ์ ซึ่งเหมาะสำหรับการคำนวณบนเมทริกซ์ เมทริกซ์ถูกใช้ในสมการต่างๆ มากมาย โดยเฉพาะอย่างยิ่งในการคำนวณทางวิทยาศาสตร์และทางวิศวกรรม Matlab เป็นภาษาโปรแกรมระดับสูงที่มาพร้อมกับฟังก์ชั่นมากมาย ใช้ในการแก้ปัญหาทางคณิตศาสตร์ วิเคราะห์ข้อมูล และสร้างกราฟ

Viola Jones ใน Matlab คืออะไร?

อัลกอริทึมของ Viola Jones ใช้สำหรับการตรวจจับใบหน้าและการจดจำการแสดงออกทางสีหน้า อัลกอริธึมของ Viola Jones อิงตามฮิสโตแกรมของ Oriented Gradients (HOG) ซึ่งเปิดตัวครั้งแรกโดย Paul Viola และ Michael Jones ในปี 2544 ใช้ในการมองเห็นด้วยคอมพิวเตอร์ การเรียนรู้ของเครื่อง และการประมวลผลภาพ อัลกอริธึม Viola Jones มีระบบตรวจจับวัตถุที่สมบูรณ์และอาจใช้ในการตรวจจับคนเดินถนน การตรวจจับวัตถุ หรือการตรวจจับมนุษย์ อัลกอริธึม Viola Jones ประกอบด้วยขั้นตอนการแยกคุณลักษณะ ขั้นตอนการจัดกลุ่ม และขั้นตอนการจำแนกวัตถุ