خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

خط أنابيب زيادة الصور لـ Amazon Lookout for Vision

أمازون لوك أوت فور فيجن يوفر خدمة اكتشاف الشذوذ المستندة إلى التعلم الآلي (ML) لتحديد الصور العادية (على سبيل المثال ، صور الكائنات بدون عيوب) مقابل الصور الشاذة (أي صور الأشياء مع العيوب) وأنواع الحالات الشاذة (مثل القطعة المفقودة) وموقع هذه الحالات الشاذة. لذلك ، تحظى Lookout for Vision بشعبية كبيرة بين العملاء الذين يبحثون عن حلول آلية لفحص الجودة الصناعية (على سبيل المثال ، اكتشاف المنتجات غير الطبيعية). ومع ذلك ، عادةً ما تواجه مجموعات بيانات العملاء مشكلتين:

  1. قد يكون عدد الصور الشاذة منخفضًا جدًا وقد لا يصل إلى الحد الأدنى من نوع الشذوذ / العيب الذي تفرضه Lookout for Vision (حوالي 20).
  2. قد لا تحتوي الصور العادية على تنوع كافٍ وقد يؤدي إلى فشل النموذج عندما تتغير الظروف البيئية مثل الإضاءة في الإنتاج

للتغلب على هذه المشكلات ، يقدم هذا المنشور خط أنابيب لزيادة الصور يستهدف كلتا المشكلتين: فهو يوفر طريقة لإنشاء صور شاذة اصطناعية عن طريق إزالة الكائنات الموجودة في الصور وإنشاء صور عادية إضافية عن طريق إدخال زيادة محكومة مثل ضجيج gaussian ، وتدرج الألوان ، والتشبع ، والبكسل تحجيم القيمة وما إلى ذلك. نستخدم com.imgaug مكتبة لإدخال التكبير لتوليد صور شاذة وطبيعية إضافية للمشكلة الثانية. نحن نستخدم أمازون ساجيماكر الحقيقة الأرضية لتوليد أقنعة إزالة الكائن و اما خوارزمية لإزالة الكائنات للمشكلة الأولى باستخدام تقنيات رسم الصورة (إزالة الكائن).

تم تنظيم بقية المنشور على النحو التالي. في القسم 3 ، نقدم خط أنابيب تكبير الصورة للصور العادية. في القسم 4 ، نقدم خط أنابيب تكبير الصورة للصور غير الطبيعية (ويعرف أيضًا باسم توليد عيب اصطناعي). يوضح القسم 5 نتائج تدريب Lookout for Vision باستخدام مجموعة البيانات المعززة. يوضح القسم 6 كيفية أداء نموذج Lookout for Vision المدرب على البيانات التركيبية ضد العيوب الحقيقية. في القسم 7 ، نتحدث عن تقدير التكلفة لهذا الحل. يمكن الوصول إلى جميع التعليمات البرمجية التي استخدمناها لهذا المنشور هنا.

1. نظرة عامة على الحل

مخطط ML

فيما يلي رسم تخطيطي لخط أنابيب تكبير الصورة المقترح للتدريب على نموذج تعريب الرؤية الشاذة من Lookout:

يبدأ الرسم البياني أعلاه بجمع سلسلة من الصور (الخطوة 1). نقوم بزيادة مجموعة البيانات عن طريق زيادة الصور العادية (الخطوة 3) وباستخدام خوارزميات إزالة الكائن (الخطوات 2 ، 5-6). نقوم بعد ذلك بحزم البيانات بتنسيق يمكن أن تستهلكه Amazon Lookout for Vision (الخطوات من 7 إلى 8). أخيرًا ، في الخطوة 9 ، نستخدم البيانات المجمعة لتدريب نموذج توطين Lookout for Vision.

يمنح خط أنابيب زيادة الصور هذا العملاء المرونة لإنشاء عيوب تركيبية في مجموعة بيانات العينة المحدودة ، بالإضافة إلى إضافة المزيد من الكمية والتنوع إلى الصور العادية. سيعزز أداء خدمة Lookout for Vision ، ويحل مشكلة نقص بيانات العملاء ويجعل عملية فحص الجودة الآلي أكثر سلاسة.

2. إعداد البيانات

من هنا إلى نهاية المنشور ، نستخدم الجمهور FICS-PCB: مجموعة بيانات صور متعددة الوسائط للفحص البصري الآلي للوحة الدوائر المطبوعة مجموعة البيانات المرخصة بموجب أ ترخيص Creative Commons Attribution 4.0 International (CC BY 4.0) لتوضيح خط أنابيب تكبير الصورة وما يترتب على ذلك من تدريب واختبار الرؤية. تم تصميم مجموعة البيانات هذه لدعم تقييم أنظمة الفحص البصري الآلي لثنائي الفينيل متعدد الكلور. تم جمعها في مختبر SeCurity and AssuraNce (SCAN) في جامعة فلوريدا. يمكن الوصول إليه هنا.

نبدأ بفرضية أن العميل يقدم فقط صورة عادية واحدة للوحة PCB (عينة s10 PCB) كمجموعة بيانات. يمكن رؤيتها على النحو التالي:

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

3. تكبير الصورة للصور العادية

تتطلب خدمة Lookout for Vision ما لا يقل عن 20 صورة عادية و 20 حالة شاذة لكل نوع عيب. نظرًا لوجود صورة عادية واحدة فقط من بيانات العينة ، يجب علينا إنشاء المزيد من الصور العادية باستخدام تقنيات تكبير الصورة. من وجهة نظر ML ، يمكن أن يؤدي تغذية تحويلات متعددة للصور باستخدام تقنيات زيادة مختلفة إلى تحسين دقة ومتانة النموذج.

سنستخدم com.imgaug لتكبير الصورة من الصور العادية. Imgaug عبارة عن حزمة Python مفتوحة المصدر تتيح لك زيادة الصور في تجارب ML.

أولاً ، سنقوم بتثبيت ملف com.imgaug مكتبة في الأمازون SageMaker دفتر.

pip install imgaug

بعد ذلك ، يمكننا تثبيت حزمة python المسماة IPyPlot.

pip install ipyplot

بعد ذلك ، نقوم بتكبير الصورة للصورة الأصلية باستخدام التحولات بما في ذلك GammaContrast, SigmoidContrastو LinearContrastوإضافة التشويش الغاوسي على الصورة.

import imageio
import imgaug as ia
import imgaug.augmenters as iaa
import ipyplot
input_img = imageio.imread('s10.png')
noise=iaa.AdditiveGaussianNoise(10,40)
input_noise=noise.augment_image(input_img)
contrast=iaa.GammaContrast((0.5, 2.0))
contrast_sig = iaa.SigmoidContrast(gain=(5, 10), cutoff=(0.4, 0.6))
contrast_lin = iaa.LinearContrast((0.6, 0.4))
input_contrast = contrast.augment_image(input_img)
sigmoid_contrast = contrast_sig.augment_image(input_img)
linear_contrast = contrast_lin.augment_image(input_img)
images_list=[input_img, input_contrast,sigmoid_contrast,linear_contrast,input_noise]
labels = ['Original', 'Gamma Contrast','SigmoidContrast','LinearContrast','Gaussian Noise Image']
ipyplot.plot_images(images_list,labels=labels,img_width=180)

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

نظرًا لأننا نحتاج إلى 20 صورة عادية على الأقل ، وكلما كان ذلك أفضل ، فقد أنشأنا 10 صور مُعزَّزة لكل من التحولات الأربعة الموضحة أعلاه كمجموعة بيانات صورنا العادية. في المستقبل ، نخطط أيضًا لتحويل الصور ليتم وضعها في مواقع مختلفة وملائكة مختلفة بحيث يمكن أن يكون النموذج المدرب أقل حساسية لموضع الكائن بالنسبة إلى الكاميرا الثابتة.

4. توليد عيب اصطناعي لتكبير الصور غير الطبيعية

في هذا القسم ، نقدم خط أنابيب إنشاء عيب اصطناعي لزيادة عدد الصور التي تحتوي على حالات شاذة في مجموعة البيانات. لاحظ أنه ، على عكس القسم السابق حيث نقوم بإنشاء عينات عادية جديدة من العينات العادية الموجودة ، هنا ، نقوم بإنشاء صور شاذة جديدة من العينات العادية. هذه ميزة جذابة للعملاء الذين يفتقرون تمامًا إلى هذا النوع من الصور في مجموعات البيانات الخاصة بهم ، على سبيل المثال ، إزالة أحد مكونات لوحة PCB العادية. يتكون خط إنتاج العيوب الاصطناعية هذا من ثلاث خطوات: أولاً ، نقوم بإنشاء أقنعة اصطناعية من صور المصدر (العادية) باستخدام Amazon SageMaker Ground Truth. في هذا المنشور ، نستهدف نوعًا معينًا من العيوب: مكون مفقود. يوفر إنشاء القناع هذا صورة قناع وملف بيان. ثانيًا ، يجب تعديل ملف البيان وتحويله إلى ملف إدخال لنقطة نهاية SageMaker. وثالثًا ، يتم إدخال ملف الإدخال إلى نقطة نهاية SageMaker لإزالة الكائنات المسؤولة عن إزالة أجزاء الصورة العادية التي يشير إليها القناع. توفر نقطة النهاية هذه الصورة غير الطبيعية الناتجة.

4.1 إنشاء أقنعة خلل اصطناعية باستخدام Amazon SageMaker Ground Truth

Amazon Sagemaker Ground Truth لتصنيف البيانات

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

في هذا القسم ، سنوضح كيف نستخدم الحقيقة الأمازون SageMaker الأرض لتمييز "مكونات" معينة في الصور العادية ليتم إزالتها في الخطوة التالية. لاحظ أن المساهمة الرئيسية لهذا المنشور هي أننا لا نستخدم Amazon SageMaker Ground Truth بطريقته التقليدية (أي لتسمية صور التدريب). هنا ، نستخدمه لإنشاء قناع لإزالته في المستقبل في الصور العادية. ستؤدي عمليات الإزالة هذه في الصور العادية إلى حدوث عيوب تركيبية.

لغرض هذا المنشور ، في وظيفة وضع العلامات لدينا ، سنزيل بشكل مصطنع ما يصل إلى ثلاثة مكونات من لوحة PCB: IC و resistor1 و resistor2. بعد إدخال وظيفة وضع العلامات كمؤشر ، يمكنك تحديد اسم الملصق ورسم قناع لأي شكل حول المكون الذي تريد إزالته من الصورة باعتباره عيبًا اصطناعيًا. لاحظ أنه لا يمكنك تضمين "_" في اسم التصنيف لهذه التجربة ، نظرًا لأننا نستخدم "_" لفصل البيانات الوصفية المختلفة في اسم العيب لاحقًا في الشفرة.

في الصورة التالية ، نرسم قناعًا أخضر حول IC (دائرة متكاملة) ، وقناع أزرق حول المقاوم 1 ، وقناع برتقالي حول المقاوم 2.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

بعد أن نختار ملف تقدم ، ستنشئ Amazon SageMaker Ground Truth قناع إخراج بخلفية بيضاء وملف بيان على النحو التالي:
خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

{"source-ref":"s3://pcbtest22/label/s10.png","s10-label-ref":"s3://pcbtest22/label/s10-label/annotations/consolidated-annotation/output/0_2022-09-08T18:01:51.334016.png","s10-label-ref-metadata":{"internal-color-map":{"0":{"class-name":"BACKGROUND","hex-color":"#ffffff","confidence":0},"1":{"class-name":"IC","hex-color":"#2ca02c","confidence":0},"2":{"class-name":"resistor_1","hex-color":"#1f77b4","confidence":0},"3":{"class-name":"resistor_2","hex-color":"#ff7f0e","confidence":0}},"type":"groundtruth/semantic-segmentation","human-annotated":"yes","creation-date":"2022-09-08T18:01:51.498525","job-name":"labeling-job/s10-label"}}

لاحظ أنه حتى الآن لم نقم بإنشاء أي صور غير طبيعية. لقد حددنا للتو المكونات الثلاثة التي ستتم إزالتها بشكل مصطنع والتي ستؤدي إزالتها إلى إنشاء صور غير طبيعية. لاحقًا ، سنستخدم كلاً من (1) صورة القناع أعلاه ، و (2) المعلومات من ملف البيان كمدخلات لخط إنتاج الصور غير الطبيعي. يوضح القسم التالي كيفية تحضير الإدخال لنقطة نهاية SageMaker.

4.2 تحضير المدخلات لنقطة نهاية SageMaker

تحويل بيان Amazon SageMaker Ground Truth كملف إدخال نقطة نهاية SageMaker

أولاً ، أنشأنا ملف خدمة Amazon Simple Storage (Amazon S3) دلو لتخزين كل المدخلات والمخرجات لخط أنابيب زيادة الصورة. في المنشور ، نستخدم دلو S3 اسمه qualityinspection. ثم نقوم بإنشاء جميع الصور العادية المُضافة وتحميلها إلى حاوية S3 هذه.

from PIL import Image 
import os 
import shutil 
import boto3

s3=boto3.client('s3')

# make the image directory
dir_im="images"
if not os.path.isdir(dir_im):
    os.makedirs(dir_im)
# create augmented images from original image
input_img = imageio.imread('s10.png')

for i in range(10):
    noise=iaa.AdditiveGaussianNoise(scale=0.2*255)
    contrast=iaa.GammaContrast((0.5,2))
    contrast_sig = iaa.SigmoidContrast(gain=(5,20), cutoff=(0.25, 0.75))
    contrast_lin = iaa.LinearContrast((0.4,1.6))
      
    input_noise=noise.augment_image(input_img)
    input_contrast = contrast.augment_image(input_img)
    sigmoid_contrast = contrast_sig.augment_image(input_img)
    linear_contrast = contrast_lin.augment_image(input_img)
      
    im_noise = Image.fromarray(input_noise)
    im_noise.save(f'{dir_im}/input_noise_{i}.png')

    im_input_contrast = Image.fromarray(input_contrast)
    im_input_contrast.save(f'{dir_im}/contrast_sig_{i}.png')

    im_sigmoid_contrast = Image.fromarray(sigmoid_contrast)
    im_sigmoid_contrast.save(f'{dir_im}/sigmoid_contrast_{i}.png')

    im_linear_contrast = Image.fromarray(linear_contrast)
    im_linear_contrast.save(f'{dir_im}/linear_contrast_{i}.png')
    
# move original image to image augmentation folder
shutil.move('s10.png','images/s10.png')
# list all the images in the image directory
imlist =  [file for file in os.listdir(dir_im) if file.endswith('.png')]

# upload augmented images to an s3 bucket
s3_bucket='qualityinspection'
for i in range(len(imlist)):
    with open('images/'+imlist[i], 'rb') as data:
        s3.upload_fileobj(data, s3_bucket, 'images/'+imlist[i])

# get the image s3 locations
im_s3_list=[]
for i in range(len(imlist)):
    image_s3='s3://qualityinspection/images/'+imlist[i]
    im_s3_list.append(image_s3)

بعد ذلك ، نقوم بتنزيل القناع من Amazon SageMaker Ground Truth وتحميله إلى مجلد باسم "mask" في دلو S3 هذا.

# download Ground Truth annotation mask image to local from the Ground Truth s3 folder
s3.download_file('pcbtest22', 'label/S10-label3/annotations/consolidated-annotation/output/0_2022-09-09T17:25:31.918770.png', 'mask.png')
# upload mask to mask folder
s3.upload_file('mask.png', 'qualityinspection', 'mask/mask.png')

بعد ذلك ، نقوم بتنزيل ملف البيان من وظيفة وضع العلامات Amazon SageMaker Ground Truth وقراءته كخطوط json.

import json
#download output manifest to local
s3.download_file('pcbtest22', 'label/S10-label3/manifests/output/output.manifest', 'output.manifest')
# read the manifest file
with open('output.manifest','rt') as the_new_file:
    lines=the_new_file.readlines()
    for line in lines:
        json_line = json.loads(line)

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

# create input dictionary
input_dat=dict()
input_dat['input-image-location']=im_s3_list
input_dat['mask-location']='s3://qualityinspection/mask/mask.png'
input_dat['mask-info']=json_line['S10-label3-ref-metadata']['internal-color-map']
input_dat['output-bucket']='qualityinspection'
input_dat['output-project']='synthetic_defect'

# Write the input as a txt file and upload it to s3 location
input_name='input.txt'
with open(input_name, 'w') as the_new_file:
    the_new_file.write(json.dumps(input_dat))
s3.upload_file('input.txt', 'qualityinspection', 'input/input.txt')

فيما يلي نموذج لملف الإدخال:

{"input-image-location": ["s3://qualityinspection/images/s10.png", ... "s3://qualityinspection/images/contrast_sig_1.png"], "mask-location": "s3://qualityinspection/mask/mask.png", "mask-info": {"0": {"class-name": "BACKGROUND", "hex-color": "#ffffff", "confidence": 0}, "1": {"class-name": "IC", "hex-color": "#2ca02c", "confidence": 0}, "2": {"class-name": "resistor1", "hex-color": "#1f77b4", "confidence": 0}, "3": {"class-name": "resistor2", "hex-color": "#ff7f0e", "confidence": 0}}, "output-bucket": "qualityinspection", "output-project": "synthetic_defect"}

4.3 إنشاء نقطة نهاية SageMaker غير متزامنة لإنشاء عيوب تركيبية مع مكونات مفقودة

4.3.1 نموذج LaMa

لإزالة مكونات من الصورة الأصلية ، نستخدم نموذج PyTorch مفتوح المصدر يسمى LaMa من LaMa: طلاء قناع كبير قوي الدقة مع تلافيف فورييه. إنه نموذج قوي للطلاء ذو ​​دقة عالية مع تلافيف فورييه تم تطويره بواسطة Samsung AI. مدخلات النموذج عبارة عن صورة وقناع أبيض وأسود ويكون الإخراج صورة مع إزالة الكائنات الموجودة داخل القناع. نستخدم Amazon SageMaker Ground Truth لإنشاء القناع الأصلي ، ثم نحوله إلى قناع أبيض وأسود كما هو مطلوب. يتم توضيح تطبيق نموذج LaMa على النحو التالي:

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

4.3.2 تقديم الاستدلال غير المتزامن لـ Amazon SageMaker 

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

4.3.3 نشر نقطة النهاية

لنشر نقطة النهاية غير المتزامنة ، يجب أولاً الحصول على الامتداد دور IAM وإعداد بعض متغيرات البيئة.

from sagemaker import get_execution_role
from sagemaker.pytorch import PyTorchModel
import boto3

role = get_execution_role()
env = dict()
env['TS_MAX_REQUEST_SIZE'] = '1000000000'
env['TS_MAX_RESPONSE_SIZE'] = '1000000000'
env['TS_DEFAULT_RESPONSE_TIMEOUT'] = '1000000'
env['DEFAULT_WORKERS_PER_MODEL'] = '1'

كما ذكرنا من قبل ، نحن نستخدم نموذج PyTorch مفتوح المصدر LaMa: طلاء قناع كبير قوي الدقة مع تلافيف فورييه وتم تحميل النموذج المدرب مسبقًا إلى s3://qualityinspection/model/big-lama.tar.gz. image_uri يشير إلى حاوية عامل إرساء مع إطار العمل المطلوب وإصدارات python.

model = PyTorchModel(
    entry_point="./inference_defect_gen.py",
    role=role,
    source_dir = './',
    model_data='s3://qualityinspection/model/big-lama.tar.gz',
    image_uri = '763104351884.dkr.ecr.us-west-2.amazonaws.com/pytorch-inference:1.11.0-gpu-py38-cu113-ubuntu20.04-sagemaker',
    framework_version="1.7.1",
    py_version="py3",
    env = env,
    model_server_workers=1
)

بعد ذلك ، يجب علينا تحديد معلمات تكوين محددة غير متزامنة إضافية أثناء إنشاء تكوين نقطة النهاية.

from sagemaker.async_inference.async_inference_config import AsyncInferenceConfig
bucket = 'qualityinspection'
prefix = 'async-endpoint'
async_config = AsyncInferenceConfig(output_path=f"s3://{bucket}/{prefix}/output",max_concurrent_invocations_per_instance=10)

بعد ذلك ، ننشر نقطة النهاية على مثيل ml.g4dn.xlarge عن طريق تشغيل الكود التالي:

predictor = model.deploy(
    initial_instance_count=1,
    instance_type='ml.g4dn.xlarge',
    model_server_workers=1,
    async_inference_config=async_config
)

بعد حوالي 6-8 دقائق ، يتم إنشاء نقطة النهاية بنجاح ، وستظهر في وحدة تحكم SageMaker.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

4.3.4 استدعاء نقطة النهاية

بعد ذلك ، نستخدم ملف txt للإدخال الذي أنشأناه سابقًا كمدخل لنقطة النهاية واستدعاء نقطة النهاية باستخدام الكود التالي:

import boto3
runtime= boto3.client('runtime.sagemaker')
response = runtime.invoke_endpoint_async(EndpointName='pytorch-inference-2022-09-16-02-04-37-888',
                                   InputLocation='s3://qualityinspection/input/input.txt')

سينتهي الأمر أعلاه من التنفيذ على الفور. ومع ذلك ، سيستمر الاستنتاج لعدة دقائق حتى يكمل جميع المهام ويعيد جميع المخرجات في حاوية S3.

4.3.5 تحقق من نتيجة الاستدلال الخاصة بنقطة النهاية 

بعد تحديد نقطة النهاية ، سترى جلسة المراقبة. حدد "عرض السجلات" للتحقق من نتائج الاستنتاج في وحدة التحكم.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

سيظهر سجلا سجلان في تدفقات السجل. المسمى data-log سيعرض نتيجة الاستنتاج النهائية ، بينما سيعرض سجل السجل الآخر تفاصيل الاستدلال ، والتي تُستخدم عادةً لأغراض التصحيح.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

إذا نجح طلب الاستنتاج ، فسترى الرسالة: Inference request succeeded.في سجل البيانات وأيضًا الحصول على معلومات عن إجمالي زمن انتقال النموذج وإجمالي وقت العملية وما إلى ذلك في الرسالة. إذا فشل الاستنتاج ، فتحقق من السجل الآخر لتصحيحه. يمكنك أيضًا التحقق من النتيجة عن طريق استقصاء حالة طلب الاستدلال. تعرف على المزيد حول الاستدلال غير المتزامن لـ Amazon SageMaker هنا.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

4.3.6 توليد عيوب تركيبية بمكونات مفقودة باستخدام نقطة النهاية

سنكمل أربع مهام في نقطة النهاية:

  1. تتطلب خدمة تحديد المواقع الشاذة في Lookout for Vision عيبًا واحدًا لكل صورة في مجموعة بيانات التدريب لتحسين أداء النموذج. لذلك ، يجب علينا فصل الأقنعة عن العيوب المختلفة في نقطة النهاية عن طريق تصفية الألوان.
    خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.
  2. قم بتقسيم مجموعة بيانات القطار / الاختبار لتلبية المتطلبات التالية:
    • ما لا يقل عن 10 صور عادية و 10 حالات شاذة لمجموعة بيانات القطار
    • عيب واحد / صورة في مجموعة بيانات القطار
    • ما لا يقل عن 10 صور عادية و 10 حالات شاذة لمجموعة بيانات الاختبار
    • يُسمح بعيوب متعددة لكل صورة لمجموعة بيانات الاختبار
  3. إنشاء عيوب تركيبية وتحميلها إلى مواقع S3 المستهدفة.

نقوم بإنشاء عيب واحد لكل صورة وأكثر من 20 عيبًا لكل فئة لمجموعة بيانات القطار ، بالإضافة إلى 1-3 عيوب لكل صورة وأكثر من 20 عيبًا لكل فئة لمجموعة بيانات الاختبار.

فيما يلي مثال على صورة المصدر وعيوبها التركيبية المكونة من ثلاثة مكونات: IC ، المقاوم 1 ، والمقاوم 2 مفقود.

الصورة الأصلية

الصورة الأصلية

40_im_mask_IC_resistor1_resistor2.jpg (يشير اسم العيب إلى المكونات المفقودة)

40_im_mask_IC_resistor1_resistor2.jpg (يشير اسم العيب إلى المكونات المفقودة)

  1.  قم بإنشاء ملفات بيان لمجموعة بيانات التدريب / الاختبار لتسجيل جميع المعلومات المذكورة أعلاه.

أخيرًا ، سننشئ بيانات تدريب / اختبار لتسجيل المعلومات ، مثل موقع العيب الاصطناعي S3 ، وموقع القناع S3 ، وفئة العيب ، ولون القناع ، وما إلى ذلك.

في ما يلي عينة من خطوط json لتشوه وصورة عادية في البيان.

للشذوذ:

{"source-ref": "s3://qualityinspection/synthetic_defect/anomaly/train/6_im_mask_IC.jpg", "auto-label": 11, "auto-label-metadata": {"class-name": "anomaly", "type": "groundtruth/image-classification"}, "anomaly-mask-ref": "s3://qualityinspection/synthetic_defect/mask/MixMask/mask_IC.png", "anomaly-mask-ref-metadata": {"internal-color-map": {"0": {"class-name": "IC", "hex-color": "#2ca02c", "confidence": 0}}, "type": "groundtruth/semantic-segmentation"}}

للصورة العادية:

{"source-ref": "s3://qualityinspection/synthetic_defect/normal/train/25_im.jpg", "auto-label": 12, "auto-label-metadata": {"class-name": "normal", "type": "groundtruth/image-classification"}}

4.3.7 هيكل مجلد Amazon S3

يتم تخزين مدخلات ومخرجات نقطة النهاية في حاوية S3 المستهدفة في الهيكل التالي:

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

5 بالمرصاد لتدريب نموذج الرؤية والنتيجة

5.1 قم بإعداد مشروع وتحميل مجموعة بيانات وبدء تدريب نموذجي. 

  1. أولاً ، يمكنك الانتقال إلى Lookout for Vision من وحدة تحكم AWS وإنشاء مشروع.
    خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.
  2. بعد ذلك ، يمكنك إنشاء مجموعة بيانات تدريبية عن طريق الاختيار استيراد الصور المسمى SageMaker Ground Truth وقم بإعطاء موقع Amazon S3 لبيان مجموعة بيانات القطار الذي تم إنشاؤه بواسطة نقطة نهاية SageMaker.
    خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.
  3. بعد ذلك ، يمكنك إنشاء مجموعة بيانات اختبار عن طريق الاختيار استيراد الصور المسمى SageMaker Ground Truth مرة أخرى ، وقم بإعطاء موقع Amazon S3 لبيان مجموعة بيانات الاختبار الذي تم إنشاؤه بواسطة نقطة نهاية SageMaker.
    خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.
    .......خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.
    ....
  4. بعد تحميل مجموعات بيانات القطار والاختبار بنجاح ، يمكنك تحديد ملف نموذج القطار الزر أعلى الزاوية اليمنى لبدء تدريب نموذج توطين الانحراف.
    ......
  5. في تجربتنا ، استغرق النموذج وقتًا أطول قليلاً من ساعة واحدة لإكمال التدريب. عندما تُظهر الحالة اكتمال التدريب ، يمكنك تحديد رابط النموذج للتحقق من النتيجة.
    ....
    خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

5.2 نموذج نتيجة التدريب

5.2.1 مقاييس أداء النموذج 

بعد الاختيار في الموديل : 1 كما هو موضح أعلاه ، يمكننا أن نرى من خلال 100٪ Precision و 100٪ Recall و 100٪ F1 أن أداء النموذج جيد جدًا. يمكننا أيضًا التحقق من الأداء لكل ملصق (مكون مفقود) ، ويسعدنا أن نجد أن جميع درجات F1 للعلامات الثلاثة أعلى من 93٪ ، ومتوسط ​​IoUs أعلى من 85٪. هذه النتيجة مرضية لمجموعة البيانات الصغيرة التي أظهرناها في المنشور.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

5.2.2 تصور اكتشاف العيوب التركيبية في مجموعة بيانات الاختبار. 

كما تظهر الصورة التالية ، سيتم تشوه كل صورة كملف normal or anomaly التسمية مع درجة الثقة. إذا كان هذا شذوذًا ، فسيظهر قناعًا فوق المنطقة غير الطبيعية في الصورة بلون مختلف لكل نوع من أنواع العيوب.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

فيما يلي مثال على المكونات المفقودة المجمعة (ثلاثة عيوب في هذه الحالة) في مجموعة بيانات الاختبار:

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

بعد ذلك ، يمكنك تجميع النموذج وحزمه كملف AWS تقنيات عمليات Greengrass المكون باتباع التعليمات الواردة في هذا المنشور ، حدد موقع الحالات الشاذة باستخدام Amazon Lookout for Vision على الحافة دون استخدام وحدة معالجة الرسومات، وتشغيل الاستدلالات على النموذج.

6. اختبر نموذج المرصد للرؤية المدرب على البيانات التركيبية ضد العيوب الحقيقية

لاختبار ما إذا كان النموذج الذي تم تدريبه على العيب الاصطناعي يمكن أن يؤدي أداءً جيدًا ضد العيوب الحقيقية ، اخترنا مجموعة بيانات (مجموعة بيانات فضائية) من هنا لإجراء تجربة.

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

عيب حقيقي

عيب حقيقي

عيب اصطناعي

عيب اصطناعي

ثانيًا ، نستخدم الاكتشافات التجريبية في Lookout for Vision لاختبار النموذج مقابل العيب الحقيقي. يمكنك إما حفظ صور الاختبار في حاوية S3 واستيرادها من Amazon S3 أو تحميل الصور من جهاز الكمبيوتر الخاص بك. ثم حدد كشف الشذوذ لتشغيل الكشف.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

أخيرًا ، يمكنك رؤية نتيجة التنبؤ للعيب الحقيقي. يمكن للنموذج المدرَّب على العيوب الاصطناعية أن يشوه العيب الحقيقي بدقة في هذه التجربة.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

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

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

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

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.

7. تقدير التكلفة 

إن خط أنابيب تكبير الصورة هذا لـ Lookout for Vision فعال من حيث التكلفة للغاية. في المثال الموضح أعلاه ، تكلف Amazon SageMaker Ground Truth Labeling ودفتر Amazon SageMaker والنشر والاستدلال غير المتزامن لنقطة النهاية SageMaker بضعة دولارات فقط. بالنسبة لخدمة Lookout for Vision ، فإنك تدفع فقط مقابل ما تستخدمه. هناك ثلاثة مكونات تحدد فاتورتك: رسوم تدريب النموذج (ساعات التدريب) ، ورسوم الكشف عن الحالات الشاذة على السحابة (ساعات الاستدلال السحابي) ، و / أو رسوم الكشف عن الحالات الشاذة على الحافة (وحدات الاستدلال على الحافة). في تجربتنا ، استغرق نموذج Lookout for Vision وقتًا أطول قليلاً من ساعة واحدة لإكمال التدريب ، وتكلف 2.00 دولارًا لكل ساعة تدريب. علاوة على ذلك ، يمكنك استخدام النموذج المدرب للاستدلال على السحابة أو على الحافة مع السعر المدرج هنا.

8. نظف

لتجنب تكبد رسوم غير ضرورية ، استخدم وحدة التحكم لحذف نقاط النهاية والموارد التي قمت بإنشائها أثناء تشغيل التمارين في المنشور.

  1. افتح وحدة تحكم SageMaker واحذف الموارد التالية:
    • نقطة النهاية. يؤدي حذف نقطة النهاية أيضًا إلى حذف مثيل حساب ML أو المثيلات التي تدعمها.
      1. تحت الإستنباط، اختر النهاية.
      2. اختر نقطة النهاية التي قمت بإنشائها في المثال ، اختر الإجراءات، ثم اختر حذف.
    • تكوين نقطة النهاية.
      1. تحت الإستنباط، اختر تكوينات نقطة النهاية.
      2. اختر تكوين نقطة النهاية الذي قمت بإنشائه في المثال ، اختر الإجراءات، ثم اختر حذف.
    • الموديل.
      1. تحت الإستنباط، اختر الموديلات .
      2. اختر النموذج الذي قمت بإنشائه في المثال ، اختر الإجراءات، ثم اختر حذف.
    • مثيل دفتر الملاحظات. قبل حذف مثيل دفتر الملاحظات ، أوقفه.
      1. تحت دفتر، اختر مثيلات دفتر الملاحظات.
      2. اختر مثيل دفتر الملاحظات الذي قمت بإنشائه في المثال ، اختر الإجراءات، ثم اختر قلة النوم. يستغرق مثيل دفتر الملاحظات عدة دقائق للتوقف. عندما الحالة تغيير الى توقف، انتقل إلى الخطوة التالية.
      3. اختار الإجراءات، ثم اختر حذف.
  2. فتح وحدة تحكم Amazon S3، ثم احذف الحاوية التي قمت بإنشائها لتخزين عناصر النماذج ومجموعة بيانات التدريب.
  3. فتح وحدة تحكم Amazon CloudWatch، ثم احذف جميع مجموعات السجل التي تبدأ أسماءها بـ /aws/sagemaker/.

يمكنك أيضًا حذف نقطة النهاية من دفتر ملاحظات SageMaker عن طريق تشغيل الكود التالي:

import boto3
sm_boto3 = boto3.client("sagemaker")
sm_boto3.delete_endpoint(EndpointName='endpoint name')

9. اختتام

في هذا المنشور ، أوضحنا كيفية وضع تعليقات توضيحية على أقنعة العيوب الاصطناعية باستخدام Amazon SageMaker Ground Truth ، وكيفية استخدام تقنيات مختلفة لتكبير الصورة لتحويل صورة عادية واحدة إلى العدد المطلوب من الصور العادية ، وإنشاء نقطة نهاية SageMaker غير متزامنة وإعداد ملف الإدخال لـ نقطة النهاية ، وكذلك استدعاء نقطة النهاية. أخيرًا ، أوضحنا كيفية استخدام بيان التدريب / الاختبار لتدريب نموذج تعريب Lookout for Vision. يمكن تمديد خط الأنابيب المقترح هذا إلى نماذج ML الأخرى لإنشاء عيوب تركيبية ، وكل ما عليك فعله هو تخصيص النموذج ورمز الاستدلال في نقطة نهاية SageMaker.

ابدأ باستكشاف Lookout for Vision لفحص الجودة الآلي هنا.


حول المؤلف

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.كارا يانغ هو عالم بيانات في خدمات AWS الاحترافية. إنها شغوفة بمساعدة العملاء على تحقيق أهداف أعمالهم من خلال خدمات AWS السحابية وقد ساعدت المؤسسات في بناء حلول AI / ML شاملة عبر صناعات متعددة مثل التصنيع والسيارات والاستدامة البيئية والفضاء.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.اوكتافي اوبيولس مبيعات هو عالم حسابي متخصص في التعلم العميق (DL) والتعلم الآلي معتمد كمهندس حلول مشارك. بفضل المعرفة الواسعة في كل من السحابة والحافة ، يساعد في تسريع نتائج الأعمال من خلال بناء حلول ذكاء اصطناعي شاملة. حصل أوكتافي على درجة الدكتوراه في العلوم الحاسوبية من جامعة كاليفورنيا ، إيرفين ، حيث دفع بأحدث التقنيات في خوارزميات DL + HPC.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.فابيان بينيتيز كيروز هو عالم بيانات IoT Edge في خدمات AWS الاحترافية. وهو حاصل على درجة الدكتوراه في الرؤية الحاسوبية والتعرف على الأنماط من جامعة ولاية أوهايو. يشارك فابيان في مساعدة العملاء على تشغيل نماذج التعلم الآلي الخاصة بهم بزمن انتقال منخفض على أجهزة إنترنت الأشياء وفي السحابة.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.مانيش تالريجا هو مدير المنتج الرئيسي لحلول إنترنت الأشياء في AWS. إنه متحمس لمساعدة العملاء على بناء حلول مبتكرة باستخدام خدمات AWS IoT و ML في السحابة وعلى الحافة.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.يوكسين يانغ هو مهندس AI / ML في AWS ، ومعتمد في AWS Machine Learning Specialty. إنها تمكن العملاء من تسريع نتائجهم من خلال بناء حلول AI / ML شاملة ، بما في ذلك الصيانة التنبؤية ورؤية الكمبيوتر والتعلم المعزز. حصلت Yuxin على ماجستير من جامعة ستانفورد ، حيث ركزت على التعلم العميق وتحليلات البيانات الضخمة.

خط أنابيب تكبير الصور لـ Amazon Lookout لذكاء بيانات Vision PlatoBlockchain. البحث العمودي. منظمة العفو الدولية.ينجماو تيموثي لي هو عالم بيانات مع AWS. انضم إلى AWS منذ 11 شهرًا وهو يعمل مع مجموعة واسعة من الخدمات وتقنيات التعلم الآلي لبناء حلول لمجموعة متنوعة من العملاء. حاصل على دكتوراه في الهندسة الكهربائية. في أوقات فراغه ، يستمتع بالألعاب في الهواء الطلق ، وسباق السيارات ، والسباحة ، وطيران شبل الزمار لعبور الضاحية واستكشاف السماء.

 

الطابع الزمني:

اكثر من التعلم الآلي من AWS