تطبيق MATLAB في التعرف على الوجوه: الكود والوصف والبناء
نشرت: 2020-06-23في كل مرة تقوم فيها بإلغاء قفل هاتفك المحمول بوجهك أو المرور عبر نظام المراقبة المكتبية عالي التقنية الخاص بك ، تعمل تقنية التعرف على الوجه المعقدة في الخلفية. إذن ما هو التعرف على الوجوه ، وكيف يمكنك إجراء التعرف على الوجوه باستخدام MATLAB ؟
التعرف على الوجوه هو عملية التعرف على الوجوه البشرية من خلال التكنولوجيا. يستخدم نظام التعرف على الوجه تقنيات الرؤية الحاسوبية والتعلم الآلي لنمذجة وتصنيف ملامح الوجه المستخرجة من الصور ومقاطع الفيديو. خوارزميات لتحديد ملامح الوجه وخريطة ملامح الوجه ومقارنتها بقاعدة بيانات الوجوه المعروفة للعثور على أفضل تطابق.
مصدر
جدول المحتويات
MATLAB في التعرف على الوجوه
من الممكن تحقيق التعرف على الوجوه باستخدام كود MATLAB. يمكن استخدام الفئة المدمجة والوظيفة في MATLAB لاكتشاف الوجه والعينين والأنف والفم. يتعرف نظام Object Vision.CascadeObjectDetector الخاص بصندوق أدوات نظام رؤية الكمبيوتر على الكائنات بناءً على خوارزمية اكتشاف الوجه فيولا-جونز.
وصف كاشف كائن MATLAB
Vision.CascadeObjectDetector يستخدم خوارزمية Viola-Jones لتحديد الوجوه أو العينين أو الفم أو الأنف أو الجزء العلوي من الجسم. يمكن تدريب المصنف المخصص باستخدام MATLAB's Image Labeler واستخدامه مع كائن النظام. إذن كيف يتم الكشف عن ملامح الوجه أو الجزء العلوي من الجسم في الصورة؟ فيما يلي الخطوات:
- تتضمن الخطوة الأولى إنشاء كائن Vision.CascadeObjectDetector وتحديد خصائصه.
- في هذه الخطوة ، يتم استدعاء الكائن مع الوسائط (كما لو كان يتصرف كدالة).
قراءة: 15 أفكار مشروع MATLAB مثيرة للاهتمام وموضوعات للمبتدئين

بناء الجملة لإنشاء كاشف الكائن
الصيغة المستخدمة لإنشاء Object Detector هي كما يلي:
- الكاشف = Vision.CascadeObjectDetector
- الكاشف = Vision.CascadeObjectDetector (mode1)
- الكاشف = Vision.CascadeObjectDetector (الاسم ، القيمة)
- كاشف = Vision.CascadeObjectDetector (XMLFILE)
وصف بناء الجملة
- detector = vision.CascadeObjectDetector: تُستخدم هذه الصيغة لإنشاء كاشف يكتشف الكائنات باستخدام خوارزمية Viola-Jones.
- detector = vision.CascadeObjectDetector (mode1): تُستخدم هذه الصيغة لإنشاء كاشف تم تكوينه لاكتشاف الكائنات المحددة بواسطة ناقل الإدخال - mode1.
- detector = vision.CascadeObjectDetector (الاسم والقيمة): تُستخدم هذه الصيغة لتعيين الخصائص باستخدام واحد أو أكثر من أزواج الاسم والقيمة ، حيث يكون كل اسم خاصية محاطًا بعلامات اقتباس. على سبيل المثال: detector = vision.CascadeObjectDetector ('ClassificationModel'، 'UpperBody')
تحقق من: أفكار مشروع التعلم الآلي
الخصائص
ما لم يتم تحديد خلاف ذلك ، فإن ميزات كاشف الكائنات المتتالية غير قابلة للضبط ، مما يعني أنه بعد استدعاء الكائن ، لا يمكن تغيير قيمها. يتم قفل الكائنات عند استدعائها ، ويتم إلغاء قفلها بواسطة وظيفة "الإصدار".
من ناحية أخرى ، قد تعني الخاصية القابلة للضبط أنه يمكن تغيير قيمتها في أي وقت. لذا ، دعونا نلقي نظرة على بعض الميزات قبل أن نفهم التعرف على الوجوه باستخدام أكواد MATLAB.
- ClassificationModel: يُعرَّف بأنه ناقل للحروف ، هذه الخاصية مسؤولة عن التحكم في نوع الكائن المراد اكتشافه. التكوين الافتراضي للكاشف يكتشف الوجوه.
- MinSize: يُشار إلى حجم أصغر كائن يمكن التعرف عليه على أنه متجه ثنائي العنصر [عرض الارتفاع]. ما لم يتم تحديد قيمة خاصية ، يقوم الكاشف بضبطها على حجم الصورة المستخدم لتدريب نموذج التصنيف.
- MaxSize: يُشار إلى حجم أصغر كائن يمكن التعرف عليه على أنه متجه ثنائي العنصر [عرض الارتفاع] . ما لم يتم تحديد قيمة خاصية ، يقوم الكاشف بضبطها على الحجم (I).
- ScaleFactor: لها قيمة محددة أعلى من 1.0001. هذه الخاصية مخصصة للتحجيم التزايدي لدقة الكشف بين MinSize و MaxSize.
- MergeThreshold: لها قيمة عدد صحيح محدد تساوي 4. في حالة وجود العديد من الاكتشافات حول كائن هدف ، تحدد العتبة معايير الكشف النهائية.
- UseROI: تم تحديده على أنه false ، ويمكن تعيين هذه الخاصية على "true" لاكتشاف الكائنات داخل منطقة مستطيلة ذات أهمية في صورة الإدخال.
تركيب استخدام كاشف الكائن
- bbox = كاشف (I)
- bbox = detector (I، roi)
وصف بناء الجملة
- يعيد bbox = detector (I) bbox ، وهو مصفوفة M -by-4 تحدد المربعات المحيطة " M " التي تحتوي على الكائنات المكتشفة.
- bbox = detector (I، roi) يُستخدم للكشف عن الكائنات داخل المنطقة المستطيلة ذات الأهمية المحددة بواسطة roi.
حجج الإدخال

- I - صورة الإدخال: يتم تحديدها على أنها لون حقيقي أو تدرج الرمادي (RGB).
- النموذج - نموذج التصنيف: يتم تحديده كمتجه شخصية ويصف نوع الكائن المراد اكتشافه.
- XMLFILE - نموذج التصنيف المخصص: يتم تحديده كملف XML ، ويمكن إنشاؤه باستخدام وظيفة تدريب OpenCV أو وظيفة trainCascadeObjectDetector.
- roi - المنطقة المستطيلة ذات الأهمية: يتم استخدام متجه رباعي العناصر [ ارتفاع عرض x y ] لتحديد وسيطة الإدخال هذه.
حجج الإخراج
bbox - الاكتشافات: يتم إرجاع عمليات الاكتشاف كمصفوفة عنصر M -by-4 ، يحتوي كل صف منها على متجه رباعي العناصر [ ارتفاع عرض x y ].
وظائف الكائن المشتركة لجميع كائنات النظام
- الخطوة: لتشغيل خوارزمية كائن النظام
- Release: لتحرير موارد النظام
- إعادة تعيين: لإعادة تعيين الحالات الداخلية لكائن النظام.
كود MATLAB للتعرف على الوجوه
في هذا القسم ، سنرى مثالاً على التعرف على الوجوه باستخدام كود MATLAB.
الكشف عن الوجه
مصدر
مصدر
ستعيد الخطوة (Detector، I) قيمة Bounding Box التي تحتوي على [x ، y ، الارتفاع ، العرض] للكائنات قيد الاكتشاف:
مصدر
كشف الأنف
مصدر
مصدر
وصف:
- يشير مرور حجة "الأنف" إلى أن موضوع الاهتمام هو الأنف.
- الصيغة الافتراضية للكشف عن الأنف هي الرؤية.
- تم تمرير قيم المعلمات الافتراضية إلى Vision.CascadeObjectDetector يمكن تعديلها بناءً على صورة الإدخال.
- يمكن تجاوز قيمة "MergeThreshold" لتجنب الاكتشافات المتعددة حول الكائن الهدف (كما في الصورة أعلاه).
كشف العين
مصدر
مصدر

كشف الفم
مصدر
مصدر
اقرأ أيضًا: أثناء التكرار في MATLAB: كل ما تحتاج إلى معرفته
تغليف
في حين أن تقنية التعرف على الوجوه مفيدة للتحقق من الهوية الشخصية ، إلا أنها تثير مشكلات الخصوصية. نظرًا لأن التكنولوجيا تستخدم بصمة وجه الفرد ، فغالبًا ما يُنظر إليها على أنها انتهاك لخصوصية الفرد وسلامته وأمنه. يمكن استخدام تقنية التعرف على الحروف باستخدام MATLAB في العديد من الحالات التي يكون فيها الأمن مصدر قلق بالغ. من المطارات والمكاتب إلى الهواتف الذكية ، أصبح التعرف على الوجه جزءًا لا يتجزأ من العديد من الأنظمة والمؤسسات.
إذا كنت مهتمًا بمعرفة المزيد حول التعلم الآلي ، فراجع دبلوم PG في IIIT-B & upGrad في التعلم الآلي والذكاء الاصطناعي المصمم للمهنيين العاملين ويقدم أكثر من 450 ساعة من التدريب الصارم ، وأكثر من 30 دراسة حالة ومهمة ، IIIT- حالة الخريجين B ، أكثر من 5 مشاريع تتويجا عملية ومساعدة وظيفية مع أفضل الشركات.
ما هو التعرف على الوجوه؟
يمكن استخدام التعرف على الوجوه للحماية من سرقة الهوية ، وكذلك لتحديد الأفراد بالاسم. ومع ذلك ، نظرًا لأن التعرف على الوجوه جديد نسبيًا ويتم تطويره باستمرار ، فمن المهم فهم أساسيات التعرف على الوجوه من أجل استخدامه بفعالية. يشير التعرف على الوجوه إلى عملية تحديد ما إذا كانت صورة الوجه تنتمي إلى شخص معروف. يمكن تقسيم مشكلة التعرف على الوجوه إلى مهمتين: 1) اكتشاف الوجه - تحديد الوجه في الصورة ، 2) التعرف على الوجه - التعرف على الشخص الذي يكون وجهه.
ما هو مطلاب؟
ماتلاب هي لغة برمجة للحساب العددي. في الأساس ، إنها لغة برمجة مصفوفة. يتم استخدامه كثيرًا في الحسابات العلمية والهندسية. على عكس لغات البرمجة الأخرى ، تم تصميم MATLAB لتكون لغة مصفوفة ، وهي لغة مناسبة للحساب على المصفوفات. تستخدم المصفوفات في الكثير من المعادلات المختلفة ، خاصة في الحسابات العلمية والهندسية. ماتلاب هي لغة برمجة عالية المستوى تأتي مع عدد كبير من الوظائف. يتم استخدامه لحل المشكلات الرياضية وتحليل البيانات وإنشاء الرسوم البيانية.
ما هي فيولا جونز في ماتلاب؟
تُستخدم خوارزمية Viola Jones لاكتشاف الوجه والتعرف على تعابير الوجه. تعتمد خوارزمية فيولا جونز على الرسوم البيانية للتدرجات الموجهة (HOG) التي قدمها بول فيولا ومايكل جونز لأول مرة في عام 2001. وهي تستخدم في رؤية الكمبيوتر والتعلم الآلي ومعالجة الصور. توفر خوارزمية Viola Jones نظامًا كاملاً لاكتشاف الأشياء ويمكن استخدامه في اكتشاف المشاة أو اكتشاف الأشياء أو اكتشاف الإنسان. تتكون خوارزمية فيولا جونز من خطوة استخراج الميزة وخطوة التجميع وخطوة تصنيف الكائن.