خلال السنوات الماضية أصبحت الهواتف الذكية من الأساسيات في حياة البشر على اختلاف مستوياتهم وفئاتهم وأعمارهم. وربما أصبح بإمكاننا القول إنّ تعلقنا بها في السنوات الأخيرة وصل إلى درجة يمكن وضعها أحياناً في خانة الإدمان والهوس. يعود هذا الأمر إلى إتاحة هذه الأجهزة سهولة ما (اقتصادية، عملية ...) في الاتصال والتواصل مع الآخرين ترتكز إلى تطبيقات برمجية تستقطب أذواق الجميع ومدعمة بخصائص تقنية هائلة كقوة الحوسبة الموجودة فيها مع وجود حساسات إلكترونية عديدة كالكاميرا وأجهزة القصور الذاتي وجهاز الـGPS.
كل ذلك أدى إلى توسيع رقعة أفكار التطبيقات بشكل كبير وتعزيز أدائها. من بين التطبيقات الأكثر استخداماً وشهرةً تلك التي ترتبط بالتواصل الاجتماعي الافتراضي والواقع المعزز. صحيح أن هذه التطبيقات، كما يقولون، تهدف إلى تقريب الناس من بعضهم البعض والاطلاع على آخر مستجداتهم والتفاعل فيما بينهم، إلا أن بعضها لا يعدو كونه «ترفاً تكنولوجياً» قد يكون سيئاً. تطبيق Snapchat يدخل، برأيي، ضمن هذا الإطار. فما هي الخوارزميات الموجودة وراء هذا التطبيق المستخدم جداً في أوساط الشباب؟
هل تساءلتم يوماً كيف يتمّ الأمر حين تضعون تاج أزهار افتراضياً على رؤوسكم، أو حين ترتدون وجه حيوان، أو تستبدلون وجهكم بوجه أحد رفاقكم؟
حسناً، قد يبدو الأمر بالنسبة لمعظم الناس الذين يستخدمون تطبيق «سناب شات» والذين لا يملكون إلماماً بهذه التكنولوجيا، سهلاً ولا يعدو كونه كبسة زر واحدة على فلتر (Filter) معين يغيّر ملامحنا تلقائياً. لكن في الحقيقة، يوجد خلف كل ذلك، خوارزميات برمجية معقدة تنضوي تحت لواء «الرؤية الحاسوبية» computer vision تم تطويرها على مدى سنوات طويلة. يقف وراء تكنولوجيا «الفلترات» شركة أوكرانية ناشئة تدعى “Looksery“ التي استحوذت عليها شركة «سناب شات» مقابل 150 مليون دولار في أيلول 2015، ما صُنِّف على أنّه أكبر عملية استحواذ تكنولوجي في تاريخ أوكرانيا. هذه التكنولوجيا ليست وليدة اليوم، ولكن الجديد فيها يتمثل بالقدرة على تنفيذ مراحل الخوارزميات المعقدة بالزمن الحقيقي (real time) ومن خلال الهاتف المحمول، والسبب يعود إلى سرعة الحوسبة التي بدأت تتميز بها هذه الهواتف في السنوات الأخيرة.
تستند فلترات تطبيق «سناب شات» بشكل جوهري على خوارزميات الرؤية الحاسوبية التي تمكن الكمبيوتر من فهم محتوى الصور، بالاستناد إلى البكسلات التي تتكون منها هذه الصور وذلك لأغراض وأهداف محددة. وتطبيقات الرؤية الحاسوبية كثيرة جداً، ولا يمكن حصرها بسهولة. على سبيل المثال الرؤية الحاسوبية تسمح لفايسبوك بمعرفة الأشخاص في الصور، وتسمح كذلك للسيارات ذاتية القيادة بفهم محيطها وعدم الارتطام بالسيارات الأخرى أو دهس المارة، وهي كذلك تمكّن البعض -وللأسف- من الحصول على الأنف الخاص بالكلاب في «سناب شات» أو لسان خارج من الفم!

كيف تعمل فلترات «سناب شات»؟

تحافظ شركة “Looksery“ على سرية ما في أعمالها، ولكن يمكن لأي كان الوصول إلى براءات الاختراع الخاصة بهم على الانترنت. مجال الرؤية الحاسوبية الذي تستند إليه فلترات «سناب شات» يسمى معالجة الصور (Image Processing). هذا المجال يُعنى بتنفيذ عمليات حسابية رياضية على كل بيكسل في الصورة المقدمة بهدف تحويلها إلى صورة أخرى.
بعد تلقي التطبيق طلب المستخدم استعمال فلتر معين على الوجه ككل أو على أجزاء منه، ينتقل إلى المرحلة التالية وهي مرحلة التعرف إلى الوجه. قد تبدو هذه المرحلة سهلة لنا نحن البشر، لكن بالنسبة لكمبيوتر لا يملك سوى بيانات رقمية حول البيكسلات الموجودة في الصورة فإن الأمر أكثر تعقيداً. مشكلة التعرف إلى الوجه تم حلها بشكل أساسي منذ أوائل الألفية الثانية، لكن بقيت بعض التحديات بما في ذلك الكشف عن وجه صغير، مائل أو جانبي.
صدرت لاحقاً مئات الأعمال البحثية التي تسعى إلى نفس الهدف مع إضافة تحسينات هنا وهناك. لعل خوارزمية Viola-Jones التي صدرت عام 2001 من قبل الباحثين بول فيولا ومايكل جونز (https://goo.gl/o676ch) في معهد MIT كانت من بين الأفضل وتعتبر اليوم أداة رائدة في الكشف عن الوجوه بالزمن الحقيقي.
هذا النوع من الخوارزميات لن يستطيع تحديد الوجه إذا كان مائلاً أو ملتقطاً جانبياً، ولكنه دقيق جداً لصور الوجه الأمامية. لذلك كان تطبيق «سناب شات» بحاجة ليقوم بأكثر من مجرد التعرف إلى الوجه، إذ عليه أيضاً تحديد مكان كل عنصر في الوجه (الفم، العينين، الأنف...) وهذا ما يعرف بمرحلة استخراج معالم الوجه. هذه المرحلة لا تحتاج إلى الكثير من العمليات الحسابية لكنها صعبة الزرع من وجهة نظر المبرمج، خصوصاً إذا ما أردنا إضافة شيء من الذكاء الاصطناعي والتعلم الآلي عليها .https://goo.gl/DnXpu3 and https://goo.gl/zWfKNN. كما يوجد العديد من الأبحاث التي دمجت مرحلة التعرف إلى الوجه ومرحلة استخراج معالم الوجه معاً.
إذاً بعد التعرف إلى الوجه، يلجأ «سناب شات» إلى نموذج يُدعى «active shape model» لتحديد الميزات الخاصة بكل عنصر في الوجه (للعين ميزات خاصة بها، كذلك الأمر بالنسبة للأنف والفم ...) وهو نموذج إحصائي لشكل الوجه، يمكن إنتاجه عن طريق التدريب اليدوي الذي يستعمل بدوره مئات وربما آلاف الصور. بعد أن يولّد نموذج الشكل المتغير مجموعة من الميزات لكل عنصر، يقوم بمقارنة هذه الميزات مع الميزات من الصور المستخدمة في التدريب، عندها سيعرف التطبيق كيف سيكون شكل أسفل الشفتين أو شكل العينين.
ما إن يجد التطبيق مكان كل أجزاء الوجه، تستعمل هذه الميزات كإحداثيات جغرافية لتشكيل شبكة نقاط على كل الوجه. هذا القناع يستطيع الحركة ويمكن أن يغير أبعاده بما يتوافق مع حجم الوجه. وبناءً على ذلك، يستطيع التطبيق بعد تشكيل القناع، بناء أي شكل أو صورة وربطها بهذا القناع ومن ثم تغيير شكل الوجه، وإضافة بعض الإكسسوارات، أو بعض الحركات.
لن نتعمق كثيراً في الخصائص التقنية لهذه الخوارزميات لأنها تحتاج إلى مقالات عديدة للإحاطة بكل التفاصيل، ولكن الغريب أن كل هذه الخطوات المعقدة فقط من أجل إعطاء البشر تاجاً من الزهور الافتراضية على رؤوسهم أو تحويل وجوههم إلى حيوانات! إن تسخيف تكنولوجيا معقدة، يمكن استعمالها في مجالات أخرى أكثر فائدة وأهمية، إلى هذا الشكل الاستهلاكي، تحت عنوان المرح، يسمح لشركة «سناب شات» بجني أرباح خيالية سنوياً حيث يستخدم التطبيق يومياً 160 مليون مستخدم تتراوح أعمار الغالبية منهم بين 18 و34 سنة. وبرغم هذا الاستعمال «السطحي» لهذه التكنولوجيا إلا أنه لا يمكننا أن ننكر أن هذا التطبيق قادنا إلى الإدراك بأن هناك خوارزميات معقدة للغاية يمكن زرعها على هذه الهواتف الصغيرة لكي تعمل بالزمن الحقيقي وفي أي وقت، ما فتح بالتأكيد الباب لتصميم تطبيقات أخرى مشابهة ربما تكون أكثر فائدة.
*مهندس ودكتور في مجال علوم الكمبيوتر وأنظمة تكنولوجيا المعلومات - باحث في الوكالة الفرنسية للطاقة الذرية والطاقات البديلة