یک مدل برچسب‌گذاری تصویر را با AutoML Vision Edge آموزش دهید

برای آموزش یک مدل برچسب‌گذاری تصویر، شما مجموعه‌ای از تصاویر و برچسب‌های مربوطه را در اختیار AutoML Vision Edge قرار می‌دهید. AutoML Vision Edge از این مجموعه داده برای آموزش یک مدل جدید در فضای ابری استفاده می‌کند که می‌توانید از آن برای برچسب‌گذاری تصویر روی دستگاه در برنامه خود استفاده کنید. (برای اطلاعات کلی در مورد این ویژگی، به بخش مرور کلی مراجعه کنید.)

AutoML Vision Edge یک سرویس Google Cloud است. استفاده از این سرویس تابع توافقنامه مجوز پلتفرم Google Cloud و شرایط خاص سرویس است و بر این اساس صورتحساب دریافت می‌شود. برای اطلاعات صورتحساب، به صفحه قیمت‌گذاری AutoML مراجعه کنید.

قبل از اینکه شروع کنی

۱. داده‌های آموزشی خود را جمع‌آوری کنید

ابتدا، باید یک مجموعه داده آموزشی از تصاویر برچسب‌گذاری شده تهیه کنید. دستورالعمل‌های زیر را در نظر داشته باشید:

  • تصاویر باید در یکی از فرمت‌های JPEG، PNG، GIF، BMP، ICO باشند.

  • هر تصویر باید 30 مگابایت یا کمتر باشد. توجه داشته باشید که AutoML Vision Edge اکثر تصاویر را در طول پیش‌پردازش کوچک می‌کند، بنابراین معمولاً هیچ مزیتی در دقت ارائه تصاویر با وضوح بسیار بالا وجود ندارد.

  • حداقل ۱۰ و ترجیحاً ۱۰۰ یا بیشتر، نمونه از هر برچسب را ذکر کنید.

  • برای هر برچسب، چندین زاویه، وضوح و پس‌زمینه در نظر بگیرید.

  • داده‌های آموزشی باید تا حد امکان به داده‌هایی که قرار است پیش‌بینی‌ها روی آنها انجام شود، نزدیک باشند. برای مثال، اگر مورد استفاده شما شامل تصاویر تار و با وضوح پایین (مانند تصاویر دوربین امنیتی) باشد، داده‌های آموزشی شما باید از تصاویر تار و با وضوح پایین تشکیل شده باشند.

  • مدل‌های تولید شده توسط AutoML Vision Edge برای عکس‌های اشیاء در دنیای واقعی بهینه شده‌اند. ممکن است برای اشعه ایکس، نقاشی‌های دستی، اسناد اسکن شده، رسیدها و غیره به خوبی کار نکنند.

    همچنین، مدل‌ها عموماً نمی‌توانند برچسب‌هایی را که انسان‌ها نمی‌توانند اختصاص دهند، پیش‌بینی کنند. بنابراین، اگر یک انسان نتواند با نگاه کردن به تصویر به مدت ۱-۲ ثانیه برچسب‌هایی را اختصاص دهد، احتمالاً مدل نیز نمی‌تواند برای انجام این کار آموزش ببیند.

وقتی تصاویر آموزشی خود را آماده کردید، آنها را برای وارد کردن به Firebase آماده کنید. شما سه گزینه دارید:

گزینه ۱: آرشیو زیپ ساختاریافته

تصاویر آموزشی خود را در دایرکتوری‌هایی سازماندهی کنید که هر کدام بر اساس یک برچسب نامگذاری شده و شامل تصاویری هستند که نمونه‌هایی از آن برچسب هستند. سپس، ساختار دایرکتوری را در یک فایل فشرده فشرده کنید.

نام دایرکتوری‌ها در این آرشیو زیپ می‌تواند تا ۳۲ کاراکتر ASCII داشته باشد و فقط می‌تواند شامل کاراکترهای الفبایی-عددی و کاراکتر زیرخط ( _ ) باشد.

برای مثال:

my_training_data.zip
  |____accordion
  | |____001.jpg
  | |____002.jpg
  | |____003.jpg
  |____bass_guitar
  | |____hofner.gif
  | |____p-bass.png
  |____clavier
    |____well-tempered.jpg
    |____well-tempered (1).jpg
    |____well-tempered (2).jpg

گزینه ۲: Cloud Storage با اندیس CSV

تصاویر آموزشی خود را در Google Cloud Storage آپلود کنید و یک فایل CSV شامل آدرس اینترنتی (URL) هر تصویر و در صورت تمایل، برچسب‌های صحیح برای هر تصویر تهیه کنید. این گزینه هنگام استفاده از مجموعه داده‌های بسیار بزرگ مفید است.

برای مثال، تصاویر خود را در Cloud Storage آپلود کنید و یک فایل CSV مانند زیر آماده کنید:

gs://your-training-data-bucket/001.jpg,accordion
gs://your-training-data-bucket/002.jpg,accordion
gs://your-training-data-bucket/003.jpg,accordion
gs://your-training-data-bucket/hofner.gif,bass_guitar
gs://your-training-data-bucket/p-bass.png,bass_guitar
gs://your-training-data-bucket/well-tempered.jpg,clavier
gs://your-training-data-bucket/well-tempered%20(1).jpg,clavier
gs://your-training-data-bucket/well-tempered%20(2).jpg,clavier

تصاویر باید در یک سطل ذخیره شوند که بخشی از پروژه Google Cloud مربوط به پروژه Firebase شما است.

برای اطلاعات بیشتر در مورد آماده‌سازی فایل CSV، به بخش آماده‌سازی داده‌های آموزشی در مستندات Cloud AutoML Vision مراجعه کنید.

گزینه ۳: تصاویر بدون برچسب

تصاویر آموزشی خود را پس از آپلود، چه به صورت جداگانه و چه در یک فایل زیپ بدون ساختار، در کنسول Firebase برچسب‌گذاری کنید. به مرحله بعدی مراجعه کنید.

۲. مدل خود را آموزش دهید

در مرحله بعد، با استفاده از تصاویر خود، یک مدل را آموزش دهید:

  1. صفحه Vision Datasets را در کنسول Google Cloud باز کنید. در صورت درخواست، پروژه خود را انتخاب کنید.

  2. روی «مجموعه داده جدید» کلیک کنید، نامی برای مجموعه داده انتخاب کنید، نوع مدلی را که می‌خواهید آموزش دهید انتخاب کنید و روی «ایجاد مجموعه داده» کلیک کنید.

  3. در برگه «وارد کردن» (Import) مجموعه داده‌های خود، یک بایگانی زیپ از تصاویر آموزشی خود یا یک فایل CSV حاوی مکان‌های Cloud Storage که تصاویر را در آنها آپلود کرده‌اید، بارگذاری کنید. به بخش «جمع‌آوری داده‌های آموزشی» (Assemble your training data) مراجعه کنید.

  4. پس از اتمام کار وارد کردن، از تب تصاویر برای تأیید داده‌های آموزشی و برچسب‌گذاری تصاویر بدون برچسب استفاده کنید.

  5. در برگه آموزش ، روی شروع آموزش کلیک کنید.

    1. مدل را نامگذاری کنید و نوع مدل Edge را انتخاب کنید.

    2. تنظیمات آموزشی زیر را که عملکرد مدل تولید شده را کنترل می‌کنند، پیکربندی کنید:

      بهینه سازی مدل برای ... پیکربندی مدل مورد استفاده. می‌توانید مدل‌های سریع‌تر و کوچک‌تر را زمانی که تأخیر کم یا اندازه بسته کوچک مهم است، یا مدل‌های کندتر و بزرگ‌تر را زمانی که دقت بیشترین اهمیت را دارد، آموزش دهید.
      بودجه ساعت گره

      حداکثر زمان، بر حسب ساعت محاسباتی، برای آموزش مدل. زمان آموزش بیشتر معمولاً منجر به مدل دقیق‌تری می‌شود.

      توجه داشته باشید که اگر سیستم تشخیص دهد که مدل بهینه شده است و آموزش اضافی دقت را بهبود نمی‌بخشد، آموزش می‌تواند در کمتر از زمان مشخص شده تکمیل شود. شما فقط برای ساعاتی که واقعاً استفاده شده است، صورتحساب دریافت می‌کنید.

      زمان‌های معمول آموزش
      مجموعه‌های بسیار کوچک ۱ ساعت
      ۵۰۰ تصویر ۲ ساعت
      ۱۰۰۰ تصویر ۳ ساعت
      ۵۰۰۰ تصویر ۶ ساعت
      ۱۰،۰۰۰ تصویر ۷ ساعت
      ۵۰،۰۰۰ تصویر ۱۱ ساعت
      ۱۰۰۰۰۰ تصویر ۱۳ ساعت
      ۱,۰۰۰,۰۰۰ تصویر ۱۸ ساعت

۳. مدل خود را ارزیابی کنید

وقتی آموزش کامل شد، می‌توانید روی برگه ارزیابی کلیک کنید تا معیارهای عملکرد مدل را ببینید.

یکی از کاربردهای مهم این صفحه، تعیین آستانه اطمینانی است که برای مدل شما بهترین عملکرد را دارد. آستانه اطمینان، حداقل اطمینانی است که مدل باید داشته باشد تا بتواند به یک تصویر برچسب اختصاص دهد. با حرکت دادن لغزنده آستانه اطمینان ، می‌توانید ببینید که آستانه‌های مختلف چگونه بر عملکرد مدل تأثیر می‌گذارند. عملکرد مدل با استفاده از دو معیار اندازه‌گیری می‌شود: دقت و فراخوانی .

در زمینه طبقه‌بندی تصویر، دقت ، نسبت تعداد تصاویری است که به درستی برچسب‌گذاری شده‌اند به تعداد تصاویری که مدل با توجه به آستانه انتخاب شده برچسب‌گذاری کرده است. وقتی یک مدل دقت بالایی داشته باشد، کمتر به اشتباه برچسب‌گذاری می‌کند (مثبت کاذب کمتری).

میزان بازخوانی ، نسبت تعداد تصاویری است که به درستی برچسب‌گذاری شده‌اند به تعداد تصاویری که محتوایی دارند که مدل باید می‌توانست برچسب‌گذاری کند. وقتی مدلی میزان بازخوانی بالایی داشته باشد، کمتر در اختصاص برچسب ناموفق می‌شود (تعداد خطاهای منفی کمتر).

اینکه آیا برای دقت یا بازیابی بهینه‌سازی کنید، به مورد استفاده شما بستگی دارد. برای اطلاعات بیشتر به راهنمای مبتدیان AutoML Vision و راهنمای Inclusive ML - AutoML مراجعه کنید.

وقتی آستانه اطمینانی پیدا کردید که معیارهایی را که با آنها راحت هستید تولید می‌کند، آن را یادداشت کنید؛ از آستانه اطمینان برای پیکربندی مدل در برنامه خود استفاده خواهید کرد. (می‌توانید هر زمان از این ابزار برای بدست آوردن مقدار آستانه مناسب استفاده کنید.)

۴. مدل خود را منتشر یا دانلود کنید

اگر از عملکرد مدل راضی هستید و می‌خواهید از آن در یک برنامه استفاده کنید، سه گزینه دارید که می‌توانید از بین آنها هر ترکیبی را انتخاب کنید: مدل را برای پیش‌بینی آنلاین مستقر کنید، مدل را در Firebase منتشر کنید، یا مدل را دانلود کنید و آن را با برنامه خود بسته‌بندی کنید.

مدل را مستقر کنید

در تب «آزمایش و استفاده» در مجموعه داده خود، می‌توانید مدل خود را برای پیش‌بینی آنلاین مستقر کنید، که مدل شما را در فضای ابری اجرا می‌کند. این گزینه در مستندات Cloud AutoML پوشش داده شده است. مستندات موجود در این سایت به دو گزینه باقی‌مانده می‌پردازند.

مدل را منتشر کنید

با انتشار مدل در Firebase، می‌توانید مدل را بدون انتشار نسخه جدید برنامه به‌روزرسانی کنید و می‌توانید از Remote Config و A/B Testing برای ارائه پویای مدل‌های مختلف به مجموعه‌های مختلف کاربران استفاده کنید.

اگر تصمیم دارید مدل را فقط با میزبانی آن در Firebase ارائه دهید و آن را با برنامه خود همراه نکنید، می‌توانید حجم اولیه دانلود برنامه خود را کاهش دهید. البته به خاطر داشته باشید که اگر مدل با برنامه شما همراه نباشد، هیچ یک از عملکردهای مرتبط با مدل تا زمانی که برنامه شما برای اولین بار مدل را دانلود نکند، در دسترس نخواهد بود.

برای انتشار مدل خود، می‌توانید از یکی از دو روش زیر استفاده کنید:

  • مدل TF Lite را از صفحه Test & use مجموعه داده خود در کنسول Google Cloud دانلود کنید و سپس مدل را در صفحه Custom model کنسول Firebase آپلود کنید. این معمولاً ساده‌ترین راه برای انتشار یک مدل واحد است.
  • مدل را مستقیماً از پروژه Google Cloud خود با استفاده از Admin SDK در Firebase منتشر کنید. می‌توانید از این روش برای انتشار دسته‌ای چندین مدل یا برای کمک به ایجاد خطوط انتشار خودکار استفاده کنید.

برای انتشار مدل با API مدیریت مدل Admin SDK:

  1. SDK را نصب و مقداردهی اولیه کنید .

  2. مدل را منتشر کنید.

    شما باید شناسه منبع مدل را مشخص کنید، که رشته‌ای است که مانند مثال زیر به نظر می‌رسد:

    projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
    PROJECT_NUMBER شماره پروژه مخزن Cloud Storage که شامل مدل است. این شماره می‌تواند پروژه Firebase شما یا یک پروژه Google Cloud دیگر باشد. می‌توانید این مقدار را در صفحه تنظیمات کنسول Firebase یا داشبورد کنسول Google Cloud پیدا کنید.
    MODEL_ID شناسه مدل، که از API AutoML Cloud دریافت کرده‌اید.

    پایتون

    # First, import and initialize the SDK.
    
    # Get a reference to the AutoML model
    source = ml.TFLiteAutoMlSource('projects/{}/locations/us-central1/models/{}'.format(
        # See above for information on these values.
        project_number,
        model_id
    ))
    
    # Create the model object
    tflite_format = ml.TFLiteFormat(model_source=source)
    model = ml.Model(
        display_name="example_model",  # This is the name you will use from your app to load the model.
        tags=["examples"],             # Optional tags for easier management.
        model_format=tflite_format)
    
    # Add the model to your Firebase project and publish it
    new_model = ml.create_model(model)
    new_model.wait_for_unlocked()
    ml.publish_model(new_model.model_id)
    

    نود جی اس

    // First, import and initialize the SDK.
    
    (async () => {
      // Get a reference to the AutoML model. See above for information on these
      // values.
      const automlModel = `projects/${projectNumber}/locations/us-central1/models/${modelId}`;
    
      // Create the model object and add the model to your Firebase project.
      const model = await ml.createModel({
        displayName: 'example_model',  // This is the name you use from your app to load the model.
        tags: ['examples'],  // Optional tags for easier management.
        tfliteModel: { automlModel: automlModel },
      });
    
      // Wait for the model to be ready.
      await model.waitForUnlocked();
    
      // Publish the model.
      await ml.publishModel(model.modelId);
    
      process.exit();
    })().catch(console.error);
    

مدل را دانلود و با برنامه خود همراه کنید

با ترکیب مدل خود با برنامه‌تان، می‌توانید مطمئن شوید که ویژگی‌های یادگیری ماشین برنامه‌تان حتی زمانی که مدل میزبانی‌شده توسط Firebase در دسترس نیست، همچنان کار می‌کنند.

اگر مدل را منتشر کنید و آن را با برنامه خود همراه کنید، برنامه از آخرین نسخه موجود استفاده خواهد کرد.

برای دانلود مدل خود، در صفحه «آزمایش و استفاده» (Test & use) مجموعه داده خود، روی TF Lite کلیک کنید.

مراحل بعدی

اکنون که مدل را منتشر یا دانلود کرده‌اید، یاد بگیرید که چگونه از آن در برنامه‌های iOS+ و Android خود استفاده کنید.