ملف العدد
تعرف الوجوه باستعمال التعلم العميق
العدد 156 | كانون اﻷول (ديسمبر)-2020

بقلم بشار ونوس

احتلَّت تقنياتُ تعرُّف الأشخاص من صور الوجه الرَّقْمية مكانةً بارزةً بالنسبة إلى التقنيات البيولوجية الأخرى، كبصمة اليد ونبرة الصوت وحدقة العين، وذلك لأنها لا تتطلب من مستعمليها القيام بأي فعل. وقد أدى ذلك إلى الاستفادة على نطاقٍ واسعٍ في عدة مجالاتٍ كنظم الأمان والمراقبة والنظم المالية والمدن الذكية. ومع تطور التقانات وزيادة سرعة الإنترنت أصبحت هذه التقنية من التقنيات الأساسية في تطبيقات التواصل الاجتماعي؛ مثل: فيسبوك وتويتر وإنستغرام، وكذلك في محركات البحث. ومن أحدث تطبيقات تعرُّف الوجوه اليوم إجراء تفقُّد للطلاب في التعلُّم من بعد الذي زاد انتشاره في أثناء جائحة كورونا. 
 
تتحدث هذه المقالة عن مبدأ عمل أحدث خوارزميات تعرُّف الوجوه من الصور الرقمية، وهي خوارزميات التعلُّم العميق؛ مثل: DeepFace, DeepID, VGGFace, FaceNet، إضافةً إلى عرضٍ سريعٍ لمراحل تطور نظم تعرُّف الوجوه.
 
بدأ تعرُّف الوجوه في عام 1990 باستعمال تقنية (الوجه الأساسي Eigenface). تعتمد هذه الطريقة على المبدأ القائل بأن جميع صور الوجه لشخصٍ محددٍ ستقع ضمن فضاءٍ شعاعيٍّ مصغرٍ، ومن ثَم يمكن تمثيل هذا الفضاء باستعمال الأشعة الذاتية Eigen Vectors، ولا حاجة إلى تخزين جميع صور هذا الشخص، وهذا يؤدي إلى تسريع عملية البحث والمطابقة عند محاولة معرفة صاحب الصورة.
 وفي السنوات اللاحقة ظهرت عدة طرائق تشبه طريقة Eigenface من حيث الاعتماد على مبدأ تقليل حجم المعلومات المخزنة عن الصورة أو تقليل الأبعاد، ولكنها أخفقت في التطبيقات العملية عند حصول اختلافات عن الصور الأصلية المخزنة لشخصٍ محددٍ، كتغيُّر إضاءة الوجه أو ميلان الرأس أو الابتسامة إلخ. فمهَّد ذلك لظهور طرائقَ جديدةٍ - بدءًا من عام 2000 - تعتمد على أخذ سماتٍ محددة من الوجه (مثل: خوارزمية LBP وGabor وغيرهما)، وعلى تطبيق عمليات ترشيحٍ ومعالجةٍ على صور الوجه لاستخلاص سماتٍ تزيد من دقة الكشف والتعرُّف. فكانت هذه الطرائق أفضل من سابقتها، وحققت دقةً جيدةً.
 
الشكل (1): تطور نظم تعرُّف الوجوه مع الزمن
 
استَعملت الطرائق التقليدية السابقة - بوجهٍ عام - عددًا محدودًا من الطبقات؛ كطبقة الترشيح وطبقة المعالجة وطبقة المخطط البياني أو Histogram، واتجهت الأبحاث إلى فصل المراحل بعضها عن بعضٍ، أي البدء بمرحلة قبل المعالجة preprocessing كتحسين الإضاءة وتباين الصورة، ثم مرحلة استخلاص السمات، وبعدها مرحلة التصنيف. وقد أدى ذلك إلى تركيز الأبحاث على مشكلةٍ محددة؛ مثل: تباين إضاءة الوجه، أو تغيُّر ملامح الوجه مع اختلاف المشاعر، أو غياب جزء من الوجه بسبب العوائق بين الكاميرا والوجه. وتحسنت دقة تعرُّف الوجوه إلى 95%، ولكن من جهةٍ أخرى لم يتم التوصل إلى طريقةٍ صلدةٍ لمعالجة كل المشكلات، إضافة إلى أن الدقة التي قد تبدو جيدةً كانت لاتزال غير صالحة إلا في بعض التطبيقات العملية.
 
وفي المدة من عام 2000 وحتى عام 2010 تطورت الشبكات العصبونية الصنعية وبدأ جيلٌ جديدٌ من نظم تعرُّف الوجوه بالظهور، تميز بكثرة الطبقات وتنوعها، حيث لم تعد هناك حاجة لاختيار السمات أو استعمال خوارزميات استخلاص السمات من قبل المستعمل، بل تتعلَّم هذه الشبكات تلقائيًّا وتخزِّن المعرفةَ بصيغةِ مرشحاتٍ ضمن طبقاتها المتعددة. ولذلك أُطلق على هذا الجيل اسم التعلُّم العميق Deep Learning. وبدأت الأبحاث في مجال التعلم العميق باتجاهاتٍ عديدةٍ في مجال التنبؤ ومعالجة اللغات الطبيعية ومعالجة الصوت، واحتلت معالجة الصور اهتمامًا كبيرًا حيث ظهرت الشبكات العصبونية التلفيفية CNN، الشكل (2).
 
الشكل (2): بنية الشبكات العصبونية التلفيفية CNN
 
وفي عام 2012، أثبتت خوارزميات التعلم العميق، وتحديدًا الشبكات العصبونية التلفيفية قدرةً متميزةً في مجال تعرُّف الأجسام والأغراض؛ فقد اختُبرت هذه الشبكات باستعمال قاعدة بياناتٍ تضم 1.2 مليون صورة تنتمي إلى 1000 صفٍّ مختلف، فنجحت في تحقيق دقةٍ عالية مقارنةً مع كل الطرائق التقليدية السابقة. وقد أدَّى هذا النجاح إلى زيادة تركيز أنظار الباحثين على التعلم العميق، وكان لتعرُّف الوجوه النصيب الأوفى فيه. وبالفعل أظهرت خوارزميات تعرُّف الوجوه باستعمال التعلم العميق ثباتًا تجاه ميلان الرأس وتغيرات الإضاءة وتعابير الوجه، أي تمكنت من حلِّ معظم المشاكل التي عانت منها الطرائق التقليدية السابقة.
 
الشكل(3): الشبكة العصبونية التلفيفية في تعرف الوجوه
 
 في عام 2014 استطاعت خوارزمية Deepface التي اعتمدت تعرُّف الوجوه باستعمال التعلم العميق تحقيق دقة قدرها 97.35%. واللافت هنا أنه عندما قام أشخاص بتمييز صور الوجوه، كانت دقتهم 97.53%! أي بفارق قليل جدًّا عن دقة التعلم العميق. وقد بلغ عدد الصور المستعملة في عملية التدريب 4 ملايين صورة. شجعت هذه النتائج على الاستمرار في تطوير خوارزميات التعلم العميق في تعرُّف الوجوه، حتى وصل بعضها إلى دقةٍ تجاوزت 99.80% ، وتم ذلك خلال ثلاث سنوات فقط. وكانت قيم دقة التعرُّف هذه مناسبةً لكثير من التطبيقات العملية، ولعل من أكثرها نجاحًا وشيوعًا ما يحصُل عند إضافة صورةٍ تضم عدة أشخاصٍ على تطبيق فيسبوك، فغالبًا ما ينجح فيسبوك في اقتراح الاسم الصحيح لصاحب الصورة، ويسأل: هل ترغب في الإشارة إلى "فلان" في الصورة! وكذلك في محركات بحث يوتيوب وغوغل عند إجراء بحث باستعمال الصور للعثور على شخصٍ محدد.
 
تتكون جميع نظم التعلم العميق لتعرف الوجوه بوجهٍ عام من ثلاث مراحل؛ الأولى: كشف الوجه في الصورة، والثانية: تحديد المعالم الأساسية للوجه بهدف محاذاة الصورة ووضعها في قالب بأبعادٍ ثابتة، أو بعبارة أخرى اقتطاع المنطقة المهمة من الوجه Region of Interest وتقييس الصورة، كما في الشكل (4)، والثالثة: تطبيق خوارزميات التعلُّم العميق للتدريب وتعرُّف الوجوه. وهذا يعني أن التنافس بين طرائق وخوارزميات التعلم العميق في تعرُّف الوجوه يتركز في المرحلة الثالثة.
 
الشكل (4): بنية نظم التعلُّم العميق في تعرُّف الوجوه
 
في بداية المرحلة الثالثة تمرَّر الصورة على تقنية كشف الخداع للتأكد أن الصورة المكتشفة هي صورة وجه بالفعل. فإذا كانت كذلك، تبدأ مرحلة معالجة صورة الوجه (ضبط الوضعية، تحسين الصورة، الإضاءة، التعامل مع العوائق.. ). ففي حالة ضبط الوضعية مثلًا، ثمة طريقتان؛ الأولى: one-to-many تعتمد على توليد صورٍ للوجه بوضعياتٍ مختلفة أو زوايا رؤيةٍ مختلفة - كما في الشكل (4) - من الصورة الأصلية للوجه، ثم إدخالُ كل الصور الناتجة إلى شبكةٍ عصبونيةٍ تلفيفية، وبذلك تصبح الطريقة صلدةً تجاه تغير الوضعية، ولا تتأثر مهما كانت تلك الوضعية، أما الطريقةُ الثانية فتعتمد على توليد صورةٍ معياريةٍ واحدةٍ فقط (صورة أمامية) للوجه، سواء أكان الدخلُ صورةَ وجهٍ بوضعيةٍ واحدةٍ أم عدةَ صورٍ بعدةِ وضعياتٍ إن وجدت، وتصبح الطريقة الثانية أيضًا صلدةً تجاه الوضعية. وبطرائقَ مشابهةٍ تتم معالجة الصورة للتعامل مع التحديات الأخرى كتحسين الصورة والعوائق.
 
ترتبط السمات العميقة التي تستخلصها شبكات التعلم العميق ارتباطًا وثيقًا ببنية الشبكة، والتي يمكن تقسيمها إلى طبقاتٍ تلفيفية وطبقاتِ تجميع. تتشابه بنية هذه الشبكات من حيث مبدأ العمل والاعتماد على الشبكات العصبونية التلفيفية، ولكن تختلف من جهة عدد الطبقات وأبعاد الطبقة وتوابع التجميع المستعملة في طبقات التجميع. من أمثلة هذه الشبكات:
AlexNet, VGGNet, GoogleNet, ResNet, SENet .
 
تتألف كلُّ طبقةِ تلفيفٍ من عدة مرشحات. يختلف عدد هذه المرشحات وأبعادها حسب بنية الشبكة، حيث تمرَّر الصورة (أو الصور) الناتجة عن المرحلة السابقة على هذه المرشحات لتعطي صورًا جديدة بعد الترشيح، تدخل إلى مرحلة التجميع قبل أن تُستعمل في الطبقة التلفيفية التالية. علمًا بأن هذه المرشحات المستعمَلة تحصُل على قيمها خلال عملية تدريب الشبكة العصبونية العميقة.
إن الهدفَ من طبقات التجميع تقليلُ الأبعاد وضبط حجم المعطيات التي نتعامل معها. ومن أشهر طرائق التجميع التابع max_pooling الشكل (5)؛ فباستعمال هذا التابع في نافذة 2*2 - كما في الشكل - يحلُّ البكسل ذو القيمة العليا محلَّ أربع بكسلاتٍ، فيقلُّ بذلك أبعاد الطبقات، ومن ثَم حجم المعطيات التي تجري معالجتها في المراحل اللاحقة، إضافة إلى التخلص من بعض القيم الشاذة.
وهكذا، وبعد مرور الصورة بكل هذه الطبقات والمرشحات، نكون قد استخلصنا منها السمات العميقة، لتبدأ المرحلة الأخيرة وهي مرحلة التصنيف والمطابقة وتحديد صاحب الصورة.
 
الشكل(5): تابع التجميع max pooling
 
في مرحلة المطابقة وتحديد صاحب الصورة، تجري مقارنة السمات العميقة للصورة المعدَّة للاختبار بقاعدة بياناتٍ من السمات العميقة التي تم استخلاصها وتخزينها خلال عملية التدريب، وذلك باستعمال تابع مسافة مثل تابع المسافة الإقليدية، وبناءً على أصغر مسافةٍ يعطيها التابع تتم معرفة أقرب صورة من قاعدة البيانات إلى الصورة الحالية، ثم التأكد أن هاتين الصورتين تعودان لنفس الشخص.
 
يتطلب تدريب الشبكات العصبونية التلفيفية قواعدَ بياناتٍ ضخمةً من الصور، ووقتًا طويلًا في التدرُّب إذا كان الحاسوب المستعمل ذا مواصفاتٍ عادية، ولذلك ننصح باستعمال حواسيب مجهزةٍ بوحدة معالجة بيانية GPU لتسريع عملية التدريب. إن الهدف من عملية التدريب هو ضبط قيم المرشحات التي ذكرناها آنفًا، فأبعاد المرشحات وعدد الطبقات يكون محدَّدًا سلفًا قبل عملية التدريب، وتكتمل عملية التدريب بإدخال صورٍ لأشخاصٍ معروفي الهوية، ومراقبة السمات العميقة المستخلصة ونتائج التصنيف، وفي كلِّ عملية تدريب تعدَّل قيم المرشحات بحيث تزداد الدقة تدريجيًّا، وهكذا تتكرر عملية التدريب مراتٍ كثيرةً حتى الوصول إلى الدقة المطلوبة. يكون مؤشر تحسن عملية التدريب هو تابع الفقد Loss Function، كتابع المسافة الإقليدية أو تابع cosine-margine loss أوتابع softmax loss. تعبِّر قيم هذه التوابع عن الفرق بين الخرج المحسوب والخرج المرغوب فيه، ويُستدَل بها على انتهاء عملية التدريب.
 
وإضافة إلى ضبط قيم المرشحات في نهاية عملية التدريب، نحصُل أيضًا على قاعدة بيانات تضم السمات العميقة لكل الصور الشخصية التي استُعملت في عملية التدريب، وعند اختبار صورة جديدة تُستخلَص السمات العميقة منها ومعرفة صاحب الصورة بمقارنتها بالسمات العميقة الموجودة في قاعدة البيانات. وبالطبع لا يمكن للشبكة العميقة معرفة صاحب الصورة إذا لم تكن قد شاهدته سابقًا، فإن لم تكن قد شاهدته سابقًا تعطي الشبكةُ نتيجةً مفادها أن الشخصَ مجهولُ الهُوِيَّة.
 
لم يتوقف انتشار تطبيقات التعلُّم العميق حتى الآن، فبعد تعرُّف الوجوه أصبح من الممكن أيضًا تعرُّف مشاعر الشخص من تعابير وجهه! فيمكن لهذه الشبكات تمييز الشخص المبتسم من الغاضب أو المتفاجئ، ولا نعلم ما يخفيه المستقبل من تطورات.
 
المراجع :
Masi, Iacopo, et al. "Deep face recognition: A survey." 2018 31st SIBGRAPI conference on graphics, patterns and images (SIBGRAPI). IEEE, 2018.
 
قد ترغب كذلك بقراءة
تتبع نظرات العين البشرية باستعمال تقنيات تعلم الآلة
الترجمة الآلية باستعمال التعلم العميق
تعرف العواطف من معطيات الصوت والصورة
تركيب الكلام باستعمال التعلم العميق