في ممارسة التدقيق الداخلي ، هناك مهام يكون من الضروري فيها إجراء فحص لتحديد المدخلات غير الصحيحة لبيانات العميل. قد يكون التناقض بين البيانات المدخلة وصورة العميل في وقت تسجيل المنتج إحدى هذه المشاكل.
على سبيل المثال ، المعلومات التالية متاحة: الجنس والعمر ورابط الصورة. للتحقق من التوافق ، سنستخدم مكتبة py-agender الخاصة بلغة Python.
تعمل المكتبة على مرحلتين. أولاً ، يحدد opencv موضع الوجه في الصورة. في الثانية ، تحدد الشبكة العصبية لبنية EfficientNetB3 ، التي يتم تدريبها على UTKFace DataSet ، جنس وعمر مالك الوجه في الصورة.
أولاً ، دعنا نستورد المكتبات المطلوبة:
import cv2
from pyagender import PyAgender
لنقم بإنشاء كائن للكشف عن الجنس والعمر:
agender = PyAgender()
قم بتحميل صورة باستخدام opencv:
img = cv2.imread("habensky.jpeg")
بعد ذلك ، نحدد خصائص الوجه باستخدام طريقة detender_genders_ages للكائن agender:
face_info = agender.detect_genders_ages(img)
حيث يحتوي المتغير face_info على المعلومات التالية:
[{'left': 0,
'top': 5,
'right': 299,
'bottom': 299,
'width': 299,
'height': 294,
'gender': 0.0075379927,
'age': 41.585840644804094}]
هنا المعلمات ("اليسار" ، "أعلى" ، "اليمين" ، "أسفل" ، "العرض" ، "الارتفاع") تميز موضع الوجه في الصورة. تحدد معلمة الجنس الانتماء إلى جنس معين ، حيث يشير 0 إلى رجل ، 1 - إلى امرأة. أولئك. بعد معالجة الصورة ، عند عتبة 0.5 ، نقسم العينة المعالجة إلى رجال ونساء.
حددت الخوارزمية أن هذه الصورة تمثل رجلًا (قيمة الجنس قريبة جدًا من الصفر: 0.0075379927) ، وأيضًا أنه في هذه الصورة يبلغ من العمر 41 عامًا ونصف (41.5858) ، لا أعرف كم عمر كونستانتين خابنسكي في هذه الصورة ، لكنني أعتقد أن الخوارزمية قريبة على الحقيقة.
مثال جيد ، صورة واضحة ، ونتيجة رائعة جدًا. ومع ذلك ، عندما تبدأ في تطبيق الخوارزمية على بيانات حقيقية ، فإن الأمور ليست وردية كما نود. والنقطة هنا ليست في الخوارزمية كثيرًا ، ولكن في جودة البيانات الأولية.
في حالتي ، كانت مجموعة من 1542 صورة بدقة 300 × 300. بالنسبة لـ 64 صورة ، لم تتمكن الخوارزمية من تحديد خصائص الوجه. السبب الرئيسي هو ضعف الإضاءة في وقت التصوير (الوجوه تكاد تكون غير مرئية). بالنسبة إلى 1478 صورة ، كان متوسط خطأ العمر 4.96 سنة. يوضح الشكل أدناه توزيع الخطأ:
بالنسبة إلى 8.5٪ من الصور (125 من أصل 1478) ، ارتكبت الخوارزمية خطأ في تحديد جنس الشخص. من بين هؤلاء ، في 122 حالة ، أخطأت الخوارزمية في أن المرأة رجلاً. مرة أخرى ، لا تلوم الخوارزمية في جميع الحالات. في معظم الأمثلة الخاطئة ، هناك العديد من الوجوه ذات النظارات التي قد تحجب بعض ملامح الوجه. يوضح الشكل أدناه التوزيع العمري لمجموعة بيانات UTKFace:
يمكنك أن ترى أن معظم مجموعة البيانات تحتوي على صور لأشخاص تتراوح أعمارهم بين 20 و 40 عامًا. على الرغم من ذلك ، غالبًا ما ارتكبت الخوارزمية خطأً على وجه التحديد في الفاصل الزمني المحدد ، أي على الأرجح ترتبط الأخطاء بخصوصية مجموعة البيانات التي تم تطبيق الخوارزمية عليها. يوضح الشكل أدناه توزيع عمر الأشخاص الذين كانت الخوارزمية خاطئة:
Py-Agender هي أداة مثيرة للاهتمام يمكنها المساعدة في أتمتة عدد من المهام الروتينية ، أو على الأقل تقليل حجم العينة للتحليل اليدوي. تقدم المقالة تقديرًا لمجموعة بيانات محددة ، ربما في حالتك ستعمل الخوارزمية بشكل أكثر كفاءة.