شعار زيفيرنت

أتمتة تدريب نموذج Amazon Rekognition Custom Labels ونشره باستخدام AWS Step Functions

التاريخ:

بدافع تسميات Amazon Rekognition المخصصة، بإمكانك أن تأخذ الأمازون إعادة الاعتراف تدريب نموذج مخصص لاكتشاف الكائنات أو تصنيف الصور الخاص باحتياجات عملك. على سبيل المثال ، يمكن لـ Rekognition Custom Labels العثور على شعارك في منشورات الوسائط الاجتماعية ، أو تحديد منتجاتك على أرفف المتاجر ، أو تصنيف أجزاء الماكينة في خط التجميع ، أو التمييز بين النباتات الصحية والمصابة ، أو اكتشاف الشخصيات المتحركة في مقاطع الفيديو.

يعد تطوير نموذج Rekognition Custom Labels لتحليل الصور مهمة مهمة تتطلب وقتًا وخبرة وموارد ، وغالبًا ما يستغرق إكمالها شهورًا. بالإضافة إلى ذلك ، غالبًا ما يتطلب الأمر آلافًا أو عشرات الآلاف من الصور المسمى يدويًا لتزويد النموذج ببيانات كافية لاتخاذ القرارات بدقة. قد يستغرق إنشاء هذه البيانات شهورًا لجمعها ويتطلب فرقًا كبيرة من المصنّفات لإعدادها للاستخدام في التعلم الآلي (ML).

مع Rekognition Custom Labels ، نعتني بالحمل الثقيل نيابة عنك. تعتمد Rekognition Custom Labels على الإمكانات الحالية لـ Amazon Rekognition ، والتي تم تدريبها بالفعل على عشرات الملايين من الصور عبر العديد من الفئات. بدلاً من آلاف الصور ، تحتاج ببساطة إلى تحميل مجموعة صغيرة من صور التدريب (عادةً بضع مئات من الصور أو أقل) المخصصة لحالة الاستخدام الخاصة بك عبر وحدة التحكم سهلة الاستخدام الخاصة بنا. إذا تم تصنيف صورك بالفعل ، فيمكن لـ Amazon Rekognition بدء التدريب ببضع نقرات فقط. إذا لم يكن الأمر كذلك ، فيمكنك تسميتها مباشرة داخل واجهة وضع العلامات Amazon Rekognition أو استخدامها الحقيقة الأمازون SageMaker الأرض لتصنيفها لك. بعد أن تبدأ Amazon Rekognition التدريب من مجموعة الصور الخاصة بك ، فإنها تنتج نموذج تحليل صورة مخصصًا لك في غضون ساعات قليلة. خلف الكواليس ، تقوم Rekognition Custom Labels تلقائيًا بتحميل وفحص بيانات التدريب ، وتختار خوارزميات ML الصحيحة ، وتدريب نموذج ، وتوفر مقاييس أداء النموذج. يمكنك بعد ذلك استخدام نموذجك المخصص عبر Rekognition Custom Labels API ودمجه في تطبيقاتك.

ومع ذلك ، فإن بناء نموذج Rekognition Custom Labels واستضافته للتنبؤات في الوقت الفعلي يتضمن عدة خطوات: إنشاء مشروع ، وإنشاء مجموعات بيانات التدريب والتحقق من الصحة ، وتدريب النموذج ، وتقييم النموذج ، ثم إنشاء نقطة نهاية. بعد نشر النموذج للاستدلال ، قد تضطر إلى إعادة تدريب النموذج عندما تصبح بيانات جديدة متاحة أو إذا تم تلقي تعليقات من استدلال من العالم الحقيقي. يمكن أن تساعد أتمتة سير العمل بأكمله في تقليل العمل اليدوي.

في هذا المنشور ، نعرض كيف يمكنك استخدام وظائف خطوة AWS لبناء سير العمل وأتمتة. Step Functions هي خدمة سير عمل مرئية تساعد المطورين على استخدام خدمات AWS لبناء التطبيقات الموزعة ، وأتمتة العمليات ، وتنظيم الخدمات الصغيرة ، وإنشاء البيانات وخطوط أنابيب التعلم الآلي.

حل نظرة عامة

سير عمل Step Functions كالتالي:

  1. نقوم أولاً بإنشاء مشروع Amazon Rekognition.
  2. بالتوازي مع ذلك ، نقوم بإنشاء مجموعات بيانات التدريب والتحقق من الصحة باستخدام مجموعات البيانات الموجودة. يمكننا استخدام الطرق التالية:
    1. استيراد بنية مجلد من خدمة تخزين أمازون البسيطة (Amazon S3) مع المجلدات التي تمثل الملصقات.
    2. استخدم جهاز كمبيوتر محلي.
    3. استخدم الحقيقة الأرضية.
    4. أنشئ مجموعة بيانات باستخدام مجموعة بيانات موجودة مع AWS SDK.
    5. أنشئ مجموعة بيانات بملف بيان باستخدام AWS SDK.
  3. بعد إنشاء مجموعات البيانات ، نقوم بتدريب نموذج Custom Labels باستخدام CreateProjectVersion API. قد يستغرق هذا من دقائق إلى ساعات حتى يكتمل.
  4. بعد تدريب النموذج ، نقوم بتقييم النموذج باستخدام ناتج درجة F1 من الخطوة السابقة. نستخدم درجة F1 كمقياس للتقييم لدينا لأنها توفر توازنًا بين الدقة والاسترجاع. يمكنك أيضًا استخدام الدقة أو الاستدعاء كمقاييس تقييم نموذجك. لمزيد من المعلومات حول مقاييس تقييم التسمية المخصصة ، يرجى الرجوع إلى مقاييس لتقييم النموذج الخاص بك.
  5. نبدأ بعد ذلك في استخدام النموذج للتنبؤات إذا كنا راضين عن درجة F1.

يوضح الرسم البياني التالي سير عمل Step Functions.

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

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

  1. أولا، إنشاء مشروع Amazon Rekognition.
  2. ثم، إنشاء مجموعات بيانات التدريب والتحقق من الصحة.
  3. وأخيرا، قم بتثبيت AWS SAM CLI.

انشر سير العمل

لنشر سير العمل ، قم باستنساخ ملف مستودع جيثب:

git clone https://github.com/aws-samples/rekognition-customlabels-automation-with-stepfunctions.git
cd rekognition-customlabels-automation-with-stepfunctions
sam build
sam deploy --guided

تبني هذه الأوامر التطبيق الخاص بك وتحزمه وتنشره في AWS ، مع سلسلة من المطالبات كما هو موضح في المستودع.

قم بتشغيل سير العمل

لاختبار سير العمل ، انتقل إلى سير العمل المنشور في وحدة تحكم وظائف الخطوة ، ثم اختر ابدأ التنفيذ.

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

نفذ تنبؤات النموذج

لإجراء تنبؤات مقابل النموذج ، يمكنك استدعاء واجهة برمجة تطبيقات Amazon Rekognition DetectCustomLabels. لاستدعاء واجهة برمجة التطبيقات هذه ، يجب أن يمتلك المتصل ما يلزم إدارة الهوية والوصول AWS (IAM) أذونات. لمزيد من التفاصيل حول إجراء التنبؤات باستخدام واجهة برمجة التطبيقات هذه ، يرجى الرجوع إلى تحليل صورة بنموذج مدرب.

ومع ذلك ، إذا كنت بحاجة إلى الكشف عن واجهة برمجة تطبيقات DetectCustomLabels علنًا ، فيمكنك تقديم واجهة برمجة تطبيقات DetectCustomLabels بوابة أمازون API. API Gateway هي خدمة مُدارة بالكامل تسهل على المطورين إنشاء واجهات برمجة التطبيقات ونشرها وصيانتها ومراقبتها وتأمينها على أي نطاق. تعمل بوابة API كباب أمامي لواجهة برمجة تطبيقات DetectCustomLabels الخاصة بك ، كما هو موضح في الرسم التخطيطي للهندسة المعمارية التالي.

تقوم بوابة API بإعادة توجيه طلب استنتاج المستخدم إلى AWS لامدا. Lambda هي خدمة حوسبة بدون خادم تعتمد على الأحداث وتتيح لك تشغيل التعليمات البرمجية لأي نوع من التطبيقات أو الخدمات الخلفية دون توفير أو إدارة الخوادم. يتلقى Lambda طلب واجهة برمجة التطبيقات ويستدعي واجهة برمجة تطبيقات Amazon Rekognition DetectCustomLabels مع أذونات IAM الضرورية. لمزيد من المعلومات حول كيفية إعداد بوابة API مع تكامل Lambda ، راجع قم بإعداد عمليات تكامل وكيل Lambda في بوابة API.

فيما يلي مثال على رمز دالة Lambda لاستدعاء DetectCustomLabels API:

client = boto3.client('rekognition', region_name="us-east-1")
REKOGNITION_PROJECT_VERSION_ARN = os.getenv( 'REKOGNITION_PROJECT_VERSION_ARN', None) def lambda_handler(event, context): image = json.dumps(event['body']) # Base64 decode the base64 encoded image body since API GW base64 encodes the image sent in and # Amazon Rekognition's detect_custom_labels API base64 encodes automatically ( since we are using the SDK) base64_decoded_image = base64.b64decode(image) min_confidence = 85 # Call DetectCustomLabels response = client.detect_custom_labels(Image={'Bytes': base64_decoded_image}, MinConfidence=min_confidence, ProjectVersionArn=REKOGNITION_PROJECT_VERSION_ARN) response_body = json.loads(json.dumps(response)) statusCode = response_body['ResponseMetadata']['HTTPStatusCode'] predictions = {} predictions['Predictions'] = response_body['CustomLabels'] return { "statusCode": statusCode, "body": json.dumps(predictions) }

تنظيف

لحذف سير العمل ، استخدم AWS SAM CLI:

sam delete —stack-name <your sam project name>

لحذف نموذج Rekognition Custom Labels ، يمكنك إما استخدام وحدة تحكم Amazon Rekognition أو AWS SDK. لمزيد من المعلومات ، يرجى الرجوع إلى حذف نموذج Amazon Rekognition Custom Labels.

وفي الختام

في هذا المنشور ، مررنا عبر سير عمل Step Functions لإنشاء مجموعة بيانات ثم تدريب وتقييم واستخدام نموذج Rekognition Custom Labels. يسمح سير العمل لمطوري التطبيقات ومهندسي ML بأتمتة خطوات تصنيف الملصقات المخصصة لأي حالة استخدام لرؤية الكمبيوتر. رمز سير العمل مفتوح المصدر.

لمزيد من موارد التعلم بدون خادم ، قم بزيارة أرض بلا خوادم. لمعرفة المزيد حول التسميات المخصصة Rekognition ، قم بزيارة تسميات Amazon Rekognition المخصصة.


عن المؤلف

فيدا رامان هو مهندس حلول متخصص أول للتعلم الآلي ومقره في ماريلاند. تعمل Veda مع العملاء لمساعدتهم على تصميم تطبيقات التعلم الآلي الفعالة والآمنة والقابلة للتطوير. تهتم Veda بمساعدة العملاء على الاستفادة من التقنيات بدون خادم للتعلم الآلي.

بقعة_صورة

أحدث المعلومات الاستخباراتية

بقعة_صورة

الدردشة معنا

أهلاً! كيف يمكنني مساعدك؟