طمس واستبدال الخلفية على أساس MediaPipe
نظرة عامة على حل Web ML الخاص بنا
يتم تشغيل ميزات Meet الجديدة بواسطة MediaPipe ، منصة البث مفتوحة المصدر من Google. تستند الحلول ML أخرى في هذا الإطار، مثل تتبع ناحية ، القزحية و الجسم الموقف في الوقت الحقيقي.
المطلب الرئيسي لأي تقنية متنقلة هو تحقيق أداء عالٍ. للقيام بذلك ، يستخدم مسار الويب MediaPipe تنسيق WebAssembly الثنائي ذي المستوى المنخفض.مصمم خصيصًا لمتصفحات الويب لتسريع مهام الحوسبة المعقدة. في وقت التشغيل ، يترجم المتصفح تعليمات WebAssembly إلى تعليمات برمجية للجهاز تعمل بشكل أسرع من جافا سكريبت التقليدي. بالإضافة إلى ذلك ، نفذ Chrome 84 مؤخرًا دعم WebAssembly SIMD ، حيث تعالج كل تعليمات نقاط بيانات متعددة ، مما يضاعف الأداء أكثر من الضعف.
يعالج حلنا أولاً كل إطار فيديو ، ويفصل المستخدم عن الخلفية (انظر أدناه لمزيد من المعلومات حول نموذج التجزئة) ، باستخدام إخراج ML لحساب قناع منخفض الدقة. إذا لزم الأمر ، نقوم بتحسين القناع بشكل أكبر لمحاذاة حدود الصورة. ثم يتم استخدام القناع لتقديم إخراج الفيديو من خلالWebGL2 والخلفية مشوشة أو مستبدلة.
خط أنابيب WebML: يتم تنفيذ جميع العمليات الحسابية في C ++ / OpenGL ويتم إجراؤها في المتصفح عبر WebAssembly
في الإصدار الحالي ، يتم إجراء الحساب على وحدة المعالجة المركزية للعميل بأقل استهلاك للطاقة وأوسع تغطية للجهاز. لتحقيق أداء عالٍ في الوقت الفعلي ، قمنا بتطوير نماذج ML فعالة باستخدام مكتبة XNNPACK لتسريع الحساب. إنه أول محرك إخراج فيديو مصمم خصيصًا لمواصفات WebAssembly الجديدة SIMD. من خلال تسريع XNNPACK و SIMD ، يعمل نموذج التجزئة في الوقت الفعلي على الإنترنت.
من خلال التكوين المرن لـ MediaPipe ، يتكيف حل الخلفية الضبابية / الاستبدال مع معالجته بناءً على إمكانيات الجهاز. في الأجهزة المتطورة ، يتم تشغيل خط أنابيب كامل لضمان أعلى جودة بصرية ، بينما في الأجهزة المنخفضة ، يتم التبديل إلى نماذج حسابية ML خفيفة الوزن ، دون تحديد القناع.
نموذج التقسيم
يجب أن تكون طرازات ML الموجودة على الجهاز خفيفة الوزن للغاية لسرعة الحساب واستهلاك منخفض للطاقة وصغر الحجم. بالنسبة للنماذج الموجودة في المستعرض ، تؤثر دقة الإدخال بشكل كبير على عدد عمليات النقطة العائمة (FLOPS) المطلوبة لمعالجة كل إطار ، وبالتالي يجب أن تكون صغيرة أيضًا. قبل إدخال الصورة إلى النموذج ، نقوم بتصغيرها. يؤدي استرداد القناع الأكثر دقة من صورة منخفضة الدقة إلى تعقيد تصميم النموذج.
تحتوي شبكة التجزئة العامة على بنية تشفير / فك تشفير متماثل. طبقات جهاز فك التشفير (أخضر فاتح) متناظرة مع طبقات جهاز التشفير (أزرق فاتح). على وجه الخصوص ، وجّه الانتباه(الاهتمام بالقناة) مع متوسط التجميع العالمي يتم استخدامه في كل من كتل التشفير وفك التشفير ، مما يقلل من الحمل على وحدة المعالجة المركزية.
بنية النموذج باستخدام مشفر MobileNetV3 (أزرق فاتح) وفك الشفرة المتماثل (أخضر فاتح)
بالنسبة لجهاز التشفير ، قمنا بتعديل الشبكة العصبية الصغيرة MobileNetV3 ، والتي تم تصميم تصميمها تلقائيًا من خلال البحث عن بنية الشبكة لتحقيق أفضل أداء على الأجهزة الضعيفة. لتقليص حجم النموذج إلى النصف ، قمنا بتصديره إلى TFLite مع تكميم float16 ، مما أدى إلى فقد طفيف في الدقة ، ولكن دون تأثير ملحوظ على الجودة. يحتوي النموذج الناتج على 193 ألف معلمة وحجم 400 كيلوبايت فقط.
عرض التأثيرات
بعد التجزئة ، نستخدم تظليل OpenGL لمعالجة الفيديو وتأثيرات العرض. التحدي هو تقديم بكفاءة دون القطع الأثرية. في خطوة التحسين ، يقوم المرشح الثنائي بتنعيم القناع منخفض الدقة.
قمع عرض القطع الأثرية. يسارًا: يعمل المرشح المشترك ذو الوجهين على تنعيم قناع التجزئة. الوسط: تزيل المرشحات المنفصلة القطع الأثرية الظلية. يمينًا: قم بتغيير الخلفية بواسطة غلاف ضوئي
تظليل تمويه يحاكي تأثير بوكيه ، وتتناسب قوة ضبط التمويه في كل بكسل مع قيم قناع التجزئة ، مثل تشتت البقعةفي البصريات. يتم وزن وحدات البكسل بنصف قطر التركيز بحيث لا تمتزج وحدات البكسل الأمامية في الخلفية. قمنا بتطبيق مرشحات الانقسام الضبابي الموزون بدلاً من هرم Gaussian الشهير لأنها تزيل آثار الهالة حول البشر. للأداء ، يتم التمويه بدقة منخفضة - ومزجها مع إطار الإدخال بدقة الوضوح الأصلية.
أمثلة تمويه الخلفية
عند استبدال الخلفية ، يتم استخدام تقنية تعرف باسم التفاف الضوء.(التفاف خفيف) لتراكب الوجوه المقسمة على خلفية مخصصة. يساعد الغلاف الخفيف على تنعيم حواف التقسيم ، مما يسمح لضوء الخلفية بالتألق على عناصر المقدمة ، مما يجعل التكوين أكثر واقعية. كما أنه يساعد في تقليل آثار الهالة عندما يكون هناك الكثير من التباين بين المقدمة والخلفية.
أمثلة استبدال الخلفية
أداء
لتحسين الأداء على الأجهزة المختلفة ، نوفر خيارات طراز بأحجام صور إدخال متعددة (على سبيل المثال ، 256 × 144 و 160 × 96 في الإصدار الحالي) ، واختيار الخيار الأفضل تلقائيًا وفقًا لموارد الأجهزة المتاحة.
قمنا بتقييم سرعة الاستدلال النموذجي وخط الأنابيب الشامل على جهازين شائعين: MacBook Pro 2018 بمعالج Intel Core i7 سداسي النواة 2.2 جيجاهرتز و Acer Chromebook 11 مع معالج Intel Celeron N3060. بالنسبة للإدخال بدقة 720 بكسل ، يمكن لجهاز MacBook Pro تشغيل نموذج عالي الجودة بسرعة 120 إطارًا في الثانية وخط أنابيب تمرير بسرعة 70 إطارًا في الثانية ، بينما يعمل الطراز على Chromebook بسرعة 62 إطارًا في الثانية بنموذج أقل جودة وخط أنابيب تمريري ينتج 33 إطارًا في الثانية.
| نموذج
|
فلوبس
|
جهاز
|
إخراج النموذج
|
ناقل
|
| 256 × 144
|
64 مليونا
|
ماك بوك برو 18
|
8.3 مللي ثانية (120 إطارًا في الثانية)
|
14.3 مللي ثانية (70 إطارًا في الثانية)
|
| 160 × 96
|
27 مليون
|
جهاز Acer Chromebook 11
|
16.1 مللي ثانية (62 إطارًا في الثانية)
|
30 مللي ثانية (33 إطارًا في الثانية)
|
لتحديد دقة النموذج المستخدم المتري: معامل Zhakar (تقاطع فوق الاتحاد ، IOU ) وقياس F حد (درجة F) ... يعمل كلا الطرازين بشكل جيد ، خاصة على شبكة خفيفة الوزن:
| نموذج
|
IOU
|
قياس الحدود F |
| 256 × 144
|
93.58٪
|
0.9024
|
| 160 × 96
|
90.79٪
|
0.8542
|
لقد وضعنا أيضًا خريطة تجزئة للنموذج متاحة للجمهور ، توضح بالتفصيل مواصفات التقييم. تشمل التقديرات صورًا من 17 منطقة فرعية جغرافية من العالم ، مشروحة للون البشرة والجنس. أظهر التحليل أن النموذج يوضح باستمرار الأداء العالي عبر مناطق مختلفة ولون البشرة والأجناس ، مع انحرافات طفيفة في درجات IOU.
خاتمة
وبالتالي ، قدمنا حلاً جديدًا يستند إلى مستعرض ML لطمس الخلفيات واستبدالها في Google Meet. بفضل هذا الحل ، تُظهر نماذج ML و OpenGL shaders أداءً فعالاً على الإنترنت. توفر الميزات المطورة أداءً في الوقت الفعلي مع استهلاك منخفض للطاقة ، حتى على الأجهزة منخفضة الطاقة.