التعرف على الوجه من خلال نموذج التتالي بناءً على خواص هاار المستطيلة (Haar-Like Cascade)

مقدمة يوجد عدة أنواع من نماذج التعرف على الوجه أو شيء معين. خوارزمية فيولا جونز هي أهم خوارزمية مبسطة تعمل على أداء هذه المهمة. يعتمد نموذج التتالي (Cascade) على تجميع الخواص المميزة بشكل أساسي، على عكس نماذج التعرف المبنية على التعلم العميق والتي تحتاج إلى الكثير من المعاملات والطبقات. نموذج التتالي (Cascade) كلمة Cascade هي […]

شارك هذا المنشور

مقدمة

يوجد عدة أنواع من نماذج التعرف على الوجه أو شيء معين. خوارزمية فيولا جونز هي أهم خوارزمية مبسطة تعمل على أداء هذه المهمة. يعتمد نموذج التتالي (Cascade) على تجميع الخواص المميزة بشكل أساسي، على عكس نماذج التعرف المبنية على التعلم العميق والتي تحتاج إلى الكثير من المعاملات والطبقات.

نموذج التتالي (Cascade)

كلمة Cascade هي الشلال أو التتالي في عمل شيء ما، ونموذج التتالي معناه التدرج في التعرف على الخواص بطريقة معينة.  وتتالى خواص هاار على الصورة المتكاملة من اليسار الأعلى من الصورة إلى اليمين الأسفل من الصورة.

كما في الصورة المتحركة التالية (Behera, 2020 )

cascade define
صورة توضح تتالي الخواص المستطيلة عبر الصورة (مأخوذة من المصدر Behera 2020)

خواص هاار (Haar-like features)

هي خواص على شكل مستطيلات من اللونين الأبيض والأسود أو الأصفار والآحاد. يمكن تطبيق الخواص المستطيلة على كافة الصور بمختلف الأحجام فمثلا يوجد خواص مستطيلة على مستوى حجم مربعات البكسل ويوجد خواص مستطيلة على مستوى حجم صفة كاملة ترى بالعين المجردة مثل الفم أو العين أو الأنف. كما هو موضح في الصورة الأولى والثانية. خواص هاار هي تسلسل من دوال مربعة الشكل، وسميت هاار نسبة لمبتكرها آلفريد هاار عام 1909.

 الصورة التالية توضح خواص هاار المستطيلة.

rectangle-features
خواص هاار المستطيلة تبعا لخواص معالم الوجه

أنواع خواص هاار

يوجد العديد من أشكال هاار منها الخطية ومنها التي على شكل حافة ومنها المحتوية على 4 مربعات كما في الصورة

features-haar-types

تمثيل حركة خواص هاار على مستوى مربعات بكسل

مميزات نموذج التتالي باستخدام خواص هاار

يتميز بسهولة مراحل تدريبه وسرعته الهائلة بالتعرف على الكائنات. 

فائدته واستخداماته

نموذج التتالي للتعرف يفيد في التالي: 

  • عندما نريد تحديد كائن بشكل عام من فصيلة معينة وهو لا يعتبر من خوارزميات التصنيف المتعدد وإنما يتدرب على مجموعة كبيرة من البيانات من ذات النوع والصنف الواحد. مثل التعرف على البشر، التعرف على العيون أو أي نوع كائن بشكل عام، على عكس نماذج التصنيف الأخرى مثل شجرة القرار والانحدار والجار القريب التي تحتاج لصنفين على الأقل.
  • يمكن استخدامه في الأنظمة ضعيفة الحوسبة مثل الأجهزة الخلوية واللوحات أحادية المعالجة، لأن نموذج التتالي لا يحتاج إلى قدرة حسابية عالية.
  • يفيد عندما نريد التحقق من نوع الكائن ولتوضيح الصورة أكثر، ذكرت المشكلتين التاليتين والحلول لهما: 

مثال لمشكلة وحل المشكلة باستخدام نموذج التتالي

 المشكلة الأولى: نموذج تنبؤ بأمراض القلب

إذا أردنا بناء نموذج للتنبؤ بنوع مرض القلب ولدينا أربع أنواع من الأمراض. يا ترى إذا أدخلنا صورة لحديقة عامة ماذا ستكون النتيجة؟

الجواب:

سيحاول نموذج التنبؤ البحث عن أي خاصية تشابه تلك الصور التي تدرب عليها ويتنبأ بأي نوع مرض من أمراض القلب وهذا سيكون نظام تنبؤ خاطئ وناقص!

الحل: بناء نموذج تتالي لتحديد الصورة المدخلة ما إذا كانت صورة لأشعة القلب أم لا، في حال كانت صورة لأشعة القلب يتم الموافقة عليها وإدخالها بنموذج التنبؤ الخاص بأمراض القلب.

مثال لمشكلة أخرى: التعرف على تعبير الوجه

إذا أردنا بناء نموذج للتعرف على تعابير الوجه مثلًا الحزين والسعيد والغاضب فكما نلاحظ يوجد 3 أصناف، إذن علينا بناء نموذج تصنيف متعدد، ولكن لمعرفة ما إذا كانت الصورة المدخلة وجه أم لا يجب الاستعانة بنموذج تتالي لتحديد الوجوه وإلغاء أي صورة ليست وجه.

مراحل خوارزمية التتالي

مراحل خوارزمية التتالي هي:

  1.  تطبيق الخواص المستطيلة على جميع الصورة وتجميع الخواص على مربعات البكسل بطريقة الصورة المتكاملة (Integral Image) وإضافتها إلى نموذج تصنيف ضعيف.

  2. تطبيق خوارزمية التحسين التكيفي من أجل اختيار الخواص المميزة ثم تجميع نماذج التصنيف الضعيفة وتصفيتها لعمل نموذج تصنيف قوي
  3. مرحلة تطبيق النموذج واستدعائه للتعرف على الكائنات.

بالمرحلة الأولى: يتم تطبيق طريقة الصورة المكاملة من خلال عمل مستطيلات جزئية وإنشاء مصفوفة تضم القيم المستنتجة لكل من تلك المستطيلات. ثم ستستخدم لحساب خواص هار

integral-process image
صورة توضح عملية التكامل بين عدة مستطيلات

 

النماذج التصنيفية الضعيفة يتم إنشاؤها من خلال تمرير مربعات على كافة الصورة ثم حساب خواص هار لكل جزء من تلك الصورة، ثم يتم تقييم الخواص من خلال قيمة العتبة والتي تحدد أن هناك كائن أم لا في الصورة. تسمى هذه المرحلة بمرحلة معالجة الصورة المتكاملة (Integral Image).

عملية الصورة المتكاملة هي أعقد مرحلة في هذه الخوارزمية وهي عبارة عن تجميع قيم مربعات كل بكسل إلى مربعات أخرى.

 

integral image-equation
دالة الصورة المتكاملة

الدالة ترمز إلى المربعات ABCD  وI يرمز إلى عملية التكامل. الصورة التالية توضح طريقة العملية الحسابية بشكل حركي

هذا مثال حركي يوضح طريقة حساب خاصية مستطيلة مكونة من 18 بكسل. يتم حساب مجاميع قيم مربعات البكسل الثمانية عشر. وهذه العملية تتم على كامل الصورة بكامل قياسات خواص هاار بكافة أنوع الأشكال المستطيلة!

توضيح حساب مجاميع مربعات البكسل بخاصية مستطيلة مكونة من 18 بكسل (مأخوذ من Behera 2020)

من كل عملية تدريب خاصية ينتج نموذج تصنيفي ضعيف.

بالمرحلة الثانية: المحسن التكيفي (Adaboost) يختار الخواص المهمة ويدرب خوارزمية التصنيف على تلك الخواص.

يستخدم المحسن التكيفي مجموعة من النماذج الضعيفة لإنشاء نموذج تصنيفي قوي والذي سيستخدم في التعرف على تحديد الكائنات.

strong classifier

 

المرحلة الثالثة: مرحلة الاختبار والتطبيق

بعد انتهاء تدريب الخوارزمية وحصولنا على نموذج تدريب يمكننا استدعاؤه للتعرف على الوجه.

يتم تحضير الصورة وذلك بتحويلها إلى درجات اللون الرمادي ثم يتم إدخالها إلى نموذج التتالي.

التطبيق باستخدام OpenCV (لمعرفة المزيد عن مكتبة OpenCV يمكنك قراءة مقال مكتبة OpenCV )

طريقة تطبيقها بواسطة سي في عدة نماذج ومصدرها مثل التعرف على الوجه والتعرف على الجسم والتعرف على العين.

تطبيق نموذج التتالي بواسطة مكتبة OpenCV

لتحميل ملف الكود من هنا

أولا: نستدعي مكتبة OpenCV

ثانيًا: نقوم باستدعاء نموذج التتالي الخاص بالكائن المراد التعرف عليه من هذا المصدر

ثالثًا: نقوم بتحويل الصورة إلى درجات اللون الرمادي

رابعًا: نبني دالة التعرف من خلال OpenCV 

خامسا: نطبق الدالة

سادسًا: نظهر الصورة مع مربع التعرف

في هذا المثال تم استدعاء ثلاثة نماذج تتالي نموذج وجه ونموذج عيون ونموذج ابتسامة، لكن وكما نلاحظ أن دقته ليست عالية فقط تعرف على ابتسامتين من ثلاث ولم يتعرف على العيون من خلال النظارة.

يمكنك تنزيل الكود من هنا

النتيجة لثلاث نماذج التصنيف : تصنيف العيون بالأحمر وتصنيف الابتسامة بالزهري وتصنيف الوجه بالأصفر

 

face detection
نتائج لتحديد الوجه والعيون والابتسامة على ثلاثة أشخاص

ملخص

  • مستطيلات هاار هي مستطيلات مكونة من اللون الأبيض والأسود تعتمد على ألوان مربعات البكسل
  • نموذج التتالي هو نموذج تدرج في معالجة الصورة
  • نموذج التتالي بخواص هاار هو نموذج التعرف على الكائن باستخدام مستطيلات هاار
  • الصورة المتكاملة هي دالة لاستخراج مجاميع مربعات البكسل بهدف استخراج الخواص
  • ينتج عن تدريب الخوارزمية الكثير من المصنفات الضعيفة
  • المحسن التكيفي يختار أهم النماذج التصنيفية ويجمعها لتكون نموذج تصنيف قوي
  • نموذج التعرف يمكن تطبيقه باستخدام مكتبة OpenCV

الدروس:

Uncategorized

الدرس الرابع | التعرف على الوجوه

الدرس الرابع: التعرف على الوجوه محتويات هذا الدرس: خوارزمية هاار التتالي تطبيق عملي: تحديد الوجوه على صورة تطبيق عملي: تحديد الوجوه على فيديو الدروس الأخرى

دورات تعليمية

الدرس الثالث | المرشحات ونواة الالتفاف

الدرس الثالث : المرشحات والنواة الالتفافية محتويات هذا الدرس: المرشحات النواة الالتفافية عملية الترشيح شحذ الصورة تشويش الصورة تحديد الحواف الدروس الأخرى

دورات أخرى:

دورات تعليمية

الدرس الثالث | المرشحات ونواة الالتفاف

الدرس الثالث : المرشحات والنواة الالتفافية محتويات هذا الدرس: المرشحات النواة الالتفافية عملية الترشيح شحذ الصورة تشويش الصورة تحديد الحواف الدروس الأخرى

Uncategorized

الدرس الثاني | مساحات الألوان في الصورة

الدرس الثاني: مساحات الألوان في الصورة محتويات هذا الدرس: مساحات ألوان الصورة شرح مبادئ الألوان في الصور تحويل الألوان بين الصور تحويل الصورة الملونة إلى