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

تنبيه

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

يوضح لك هذا الدليل كيفية تحديد نموذج التعرف على الوجه للكشف عن الوجه والتعريف والبحث عن التشابه باستخدام خدمة Azure الذكاء الاصطناعي Face.

تستخدم خدمة Face نماذج التعلم الآلي لتنفيذ عمليات على وجوه بشرية مرئية في الصور. نواصل تحسين دقة نماذجنا بناءً على ملاحظات العملاء والتقدم في البحث، ونقدم هذه التحسينات كتحديثات للنماذج. يمكن للمطورين تحديد إصدار نموذج التعرف على الوجه الذي يرغبون في استخدامه، واختيار النموذج الذي يناسب حالة الاستخدام الخاصة بهم.

توافق النموذج

تحتوي خدمة Azure الذكاء الاصطناعي Face على أربعة نماذج التعرف المتاحة. يتم دعم النماذج recognition_01 (تاريخ النشر 2017) recognition_02 (تاريخ النشر 2019) recognition_03 (تاريخ النشر 2020) باستمرار لضمان التوافق مع الإصدارات السابقة للعملاء الذين يستخدمون FaceListأو PersonGroupالتي تم إنشاؤها باستخدام هذه النماذج. تستخدم FaceList أو PersonGroup دائما نموذج التعرف الذي تم إنشاؤه باستخدامه، وتصبح الوجوه الجديدة مقترنة بهذا النموذج عند إضافتها. لا يمكن تغيير هذا بعد الإنشاء ويحتاج العملاء إلى استخدام نموذج التعرف المقابل مع FaceList أو PersonGroup المقابل.

يمكنك الانتقال إلى نماذج التعرف اللاحقة على راحتك؛ ومع ذلك، ستحتاج إلى إنشاء FaceLists و PersonGroups جديدة باستخدام نموذج التعرف الذي تختاره.

نموذج recognition_04 (تم نشره عام 2021) هو النموذج الأكثر دقة المتاح حالياً. إذا كنت عميلاً جديداً، فنوصي باستخدام هذا النموذج. يوفر Recognition_04 دقة محسنة لكل من مقارنات التشابه ومقارنات مطابقة الأشخاص. Recognition_04 يحسن التعرف على المستخدمين المسجلين الذين يرتدون أغطية الوجه (أقنعة جراحية، أقنعة N95، أقنعة قماش). يمكنك الآن بناء تجارب مستخدم آمنة وسلسة تستخدم أحدث نموذج detection_03 للكشف عما إذا كان المستخدم المسجل يرتدي غطاء الوجه. ثم يمكنك استخدام أحدث نموذج recognition_04 للتعرف على هويتهم. يعمل كل نموذج بشكل مستقل عن النموذج الآخر، ولا يقصد بمقارنة حد الثقة المحدد لنموذج واحد عبر نماذج التعرف الأخرى.

تابع القراءة لمعرفة كيفية تحديد نموذج محدد في عمليات Face مختلفة مع تجنب تعارضات النموذج. إذا كنت مستخدمًا متقدمًا وترغب في تحديد ما إذا كان يجب التبديل إلى أحدث نموذج، فانتقل إلى قسم Evaluate different models. يمكنك تقييم النموذج الجديد ومقارنة النتائج باستخدام مجموعة البيانات الحالية.

المتطلبات الأساسية

يجب أن تكون على دراية بمفاهيم الكشف عن الوجوه وتحديد الهوية بالذكاء الاصطناعي. إذا لم تكن كذلك، راجع هذه الأدلة أولاً:

الكشف عن الوجوه باستخدام نموذج محدد

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

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

عند استخدام Detect API، قم بتعيين إصدار النموذج مع المعلمة recognitionModel . القيم المتاحة هي كما يلي:

  • recognition_01
  • recognition_02
  • recognition_03
  • recognition_04

اختيارياً، يمكنك تحديد المعلمة returnRecognitionModel ( خطأ افتراضي) للإشارة إلى ما إذا كان يجب إرجاع recognitionModel في الاستجابة. لذلك، سيبدو عنوان URL للطلب لواجهة برمجة تطبيقات Detect REST كما يلي:

https://westus.api.cognitive.microsoft.com/face/v1.0/detect[?returnFaceId][&returnFaceLandmarks][&returnFaceAttributes][&recognitionModel][&returnRecognitionModel]&subscription-key=<Subscription key>

إذا كنت تستخدم مكتبة العميل، يمكنك تعيين القيمة لـ recognitionModel عن طريق تمرير سلسلة تمثل الإصدار. إذا تركته غير معين، فسيتم استخدام إصدار نموذج افتراضي منه recognition_01. راجع المثال التالي من التعليمة البرمجية لمكتبة عميل NET.

string imageUrl = "https://news.microsoft.com/ceo/assets/photos/06_web.jpg";
var faces = await faceClient.Face.DetectWithUrlAsync(url: imageUrl, returnFaceId: true, returnFaceLandmarks: true, recognitionModel: "recognition_01", returnRecognitionModel: true);

إشعار

يجب تعيين المعلمة returnFaceId إلى true لتمكين سيناريوهات التعرف على الوجه في الخطوات اللاحقة.

تحديد الوجوه باستخدام النموذج المحدد

يمكن لخدمة Face استخراج بيانات الوجه من صورة وإقرانها بكائن Person (من خلال استدعاء Add Person Group Person Face API، على سبيل المثال)، ويمكن تخزين كائنات Person متعددة معا في PersonGroup. بعد ذلك، يمكن مقارنة وجه جديد ب PersonGroup (مع مكالمة التعرف من مجموعة الأشخاص)، ويمكن التعرف على الشخص المطابق داخل تلك المجموعة.

يجب أن يكون لدى PersonGroup نموذج التعرف الفريد واحد لجميع الأشخاص، ويمكنك تحديد هذا باستخدام المعلمة recognitionModel عند إنشاء المجموعة (إنشاء مجموعة أشخاص أو إنشاء مجموعة أشخاص كبيرة). إذا لم تحدد هذه المعلمة، يتم استخدام النموذج الأصلي recognition_01. ستستخدم المجموعة دائما نموذج التعرف الذي تم إنشاؤه باستخدامه، وستصبح الوجوه الجديدة مقترنة بهذا النموذج عند إضافتها إليه. لا يمكن تغييرها بعد إنشاء المجموعة. لمعرفة النموذج الذي تم تكوين PersonGroup به، استخدم واجهة برمجة تطبيقات Get Person Group مع تعيين المعلمة returnRecognitionModel على أنها true.

راجع المثال التالي من التعليمة البرمجية لمكتبة عميل NET.

// Create an empty PersonGroup with "recognition_04" model
string personGroupId = "mypersongroupid";
await faceClient.PersonGroup.CreateAsync(personGroupId, "My Person Group Name", recognitionModel: "recognition_04");

في هذه التعليمة البرمجية، يتم إنشاء PersonGroup مع المعرف mypersongroupid، ويتم إعداده لاستخدام نموذج recognition_04 لاستخراج ميزات الوجه.

وفي المقابل، تحتاج إلى تحديد النموذج الذي يجب استخدامه عند اكتشاف الوجوه للمقارنة مقابل PersonGroup هذا (من خلال Detect API). يجب أن يكون النموذج الذي تستخدمه دائماً متسقاً مع تكوين PersonGroup؛ وإلا، ستفشل العملية بسبب نماذج غير متوافقة.

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

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

يمكنك أيضاً تحديد نموذج التعرف للبحث عن التشابه. يمكنك تعيين إصدار النموذج مع عند إنشاء FaceList باستخدام Create Face List API أو Create Large Face List.recognitionModel إذا لم تحدد هذه المعلمة recognition_01، فسيتم استخدام النموذج بشكل افتراضي. ستستخدم FaceList دائما نموذج التعرف الذي تم إنشاؤه باستخدامه، وستصبح الوجوه الجديدة مقترنة بهذا النموذج عند إضافتها إلى القائمة؛ لا يمكنك تغيير هذا بعد الإنشاء. لمعرفة النموذج الذي تم تكوين FaceList به، استخدم واجهة برمجة تطبيقات Get Face List مع تعيين المعلمة returnRecognitionModel على أنها true.

راجع المثال التالي من التعليمة البرمجية لمكتبة عميل NET.

await faceClient.FaceList.CreateAsync(faceListId, "My face collection", recognitionModel: "recognition_04");

تنشئ هذه التعليمة البرمجية FaceList تسمى My face collection، باستخدام نموذج recognition_04 لاستخراج الميزة. عند البحث في FaceList هذا عن وجوه مشابهة لوجه جديد تم اكتشافه، يجب أن يكون قد تم الكشف عن هذا الوجه (كشف) باستخدام نموذج recognition_04. كما هو الحال في القسم السابق، يجب أن يكون النموذج متسقاً.

لا يوجد تغيير في واجهة برمجة تطبيقات البحث عن مشابهة ؛ يمكنك تحديد إصدار النموذج فقط في الكشف.

التحقق من الوجوه باستخدام النموذج المحدد

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

تقييم نماذج مختلفة

إذا كنت ترغب في مقارنة أداء نماذج التعرف المختلفة على بياناتك الخاصة، فستحتاج إلى:

  1. إنشاء أربعة PersonGroups باستخدام recognition_01 recognition_02 recognition_03 recognition_04 على التوالي.
  2. استخدم بيانات صورتك للكشف عن الوجوه وتسجيلها في Persons ضمن PersonGroups الأربعة هذه.
  3. تدريب PersonGroups باستخدام واجهة برمجة تطبيقات Train Person Group.
  4. اختبار مع تحديد من مجموعة الأشخاص على جميع PersonGroupالأربعة ومقارنة النتائج.

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

الخطوات التالية

في هذه المقالة، تعلمت كيفية تحديد نموذج التعرف لاستخدامه مع واجهات برمجة تطبيقات خدمة Face المختلفة. بعد ذلك، اتبع التشغيل السريع للبدء في الكشف عن الوجوه.