HyperAI

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - Face-api.js

منذ 7 أعوام
قاعة الشهرة
القائمة الموصى بها
Sparanoid
特色图像

مقدمة عن HyperAI

انسي الأشياء المؤسفة، لا يزال هناك أشخاص يصنعون متصفحات جيدة.

في الآونة الأخيرة، قامت مجموعة من المهندسين بتطوير واجهة برمجة تطبيقات للتعرف على الوجوه يمكن تشغيلها على المتصفح استنادًا إلى إطار عمل tensorflow.js الأساسي - face-api.js، والتي لا يمكنها التعرف على وجوه متعددة في نفس الوقت فحسب،السماح لعدد أكبر من مهندسي الذكاء الاصطناعي غير المحترفين باستخدام تقنية التعرف على الوجه بتكلفة منخفضة.

مبدأ التعرف على الوجه

face-api.js هو إطار عمل js يعتمد على جوهر Tensorflow.js. ويستخدم ثلاثة أنواع من شبكات CNN لإجراء التعرف على الوجوه والكشف عن سمات الوجه لتحديد الأشخاص في الصور.

كما هو الحال مع معظم تقنيات التعرف على الصور، يتم تنفيذ هذه التقنية عن طريق مطابقة قاعدة البيانات، والعثور على الصورة ذات أعلى قدر من التشابه، وإخراج النتيجة. ومع ذلك، يمكن لـface-api.js التعرف على وجوه متعددة في صورة في نفس الوقت.

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

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

مبدأ تنفيذ face-api.js

أولاً، يلزم اكتشاف الوجه، أي تحديد جميع الوجوه في الصورة.

يستخدم face-api.js خوارزمية SSD (Single Shot Multibox Detector) لإجراء الكشف عن الوجه. خوارزمية SSD هي طريقة اكتشاف متعددة الأهداف يمكنها اكتشاف فئات الأهداف بشكل مباشر وتحديد المربع المحدد (المعروف باسم مربع b). يمكنه تحسين دقة التعرف وسرعة التعرف في نفس الوقت.

يمكن فهم SSD باعتباره شبكة CNN تعتمد على MobileNetV1 مع طبقة تنبؤ حدودية إضافية. يستخدم النظام أولاً مربعًا محيطيًا لتحديد محيط الوجه وتسجيله. كلما اقتربت الصورة من الوجه، كلما ارتفعت النتيجة، وبالتالي يتم تصفية محتوى الصورة غير المتعلقة بالوجه.

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

لضمان الدقة، يجب أن تتركز الصور المدخلة لمجموعة الاختبار على الوجه، وبالتالي يجب محاذاة مربع تحديد الوجه. ولتحقيق هذه الغاية، يستخدم face-api.js شبكة CNN بسيطة للعثور على 68 نقطة مميزة لتحديد صورة الوجه، والتحضير للخطوة التالية في التعرف على الوجه.

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

مثال

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

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

مخطط تأثير محاذاة الوجه

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

تنفيذ التعرف على الوجه

بعد تحديد الوجه، سيبدأ التعرف على الوجه.

يقوم البرنامج بإدخال الوجوه المحاذية إلى شبكة التعلم العميق للتعرف على الوجوه استنادًا إلى شبكة ريسنت-34 هندسة النظام، اكتشاف الوجه من خلال مكتبة Dlib. يمكن لهذه التقنية رسم ملامح الوجه لوصف الوجه (متجه ملامح يحتوي على 128 قيمة)، وهي العملية التي يشار إليها غالبًا بتضمين الوجه.

بعد ذلك، يقوم البرنامج بمقارنة أوصاف الوجه لكل صورة مع أوصاف الوجه الموجودة في مجموعة التدريب ويحدد ما إذا كان الوجهان متشابهين بناءً على عتبة (بالنسبة لصورة وجه بحجم 150 × 150 بكسل، فإن عتبة 0.6 هي الأكثر ملاءمة).

يمكن استخدام المسافة الإقليدية (أي المقياس الإقليدي) لقياس التشابه، وهو ما يعمل بشكل جيد للغاية. يمكنك ملاحظة التأثير الفعلي في صورة GIF أدناه.

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

الكلام رخيص، أرني الكود!

بعد تقديم المعرفة النظرية، حان الوقت لإرشادك خلال العملية العملية. يتم استخدام الشكل التالي كصورة إدخال.

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

الخطوة 1: الحصول على النص

يمكنك الحصول على أحدث البرنامج النصي من dist/face-api.js:

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

يمكن الحصول عليه أيضًا عبر NPM:

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

الخطوة 2: تحميل نموذج البيانات

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

على افتراض أن النموذج موجود في الدليل public/models:

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

إذا كنت تقوم بتحميل نموذج معين، إذن:

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

الخطوة 3: الحصول على وصف كامل

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

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

يمكنك أيضًا تحديد موضع الوجه وميزاته بنفسك:

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

يمكنك أيضًا تصور النتيجة عن طريق عرض حدود عبر لوحة HTML:

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

تظهر ملامح الوجه أدناه:

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

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

الخطوة التالية هي الحصول على عنوان URL للصورة واستخدامه faceapi.bufferToImage إنشاء عنصر صورة HTML:

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

بالنسبة لكل صورة، حدد الوجه واحسب الوصف:

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

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

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

احصل على أفضل تطابق لكل وجه في صورة الإدخال باستخدام المقياس الإقليدي وعرض المربع المحدد وعلامته في لوحة HTML:

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

قم بوضع علامة على جميع ممثلي The Big Bang Theory في المتصفح - face-api.js

هذه هي العملية الكاملة للتعرف على الوجه بواسطة face-api.js. أليس الأمر بسيطًا جدًا؟يمكن للأصدقاء المهتمين تجربته، ونرحب بإرسال نتائج تجاربكم وخبراتكم إلينا.