برای آموزش یک مدل برچسبگذاری تصویر، مجموعهای از تصاویر و برچسبهای مربوط به AutoML Vision Edge را ارائه میکنید. AutoML Vision Edge از این مجموعه داده برای آموزش یک مدل جدید در فضای ابری استفاده می کند که می توانید از آن برای برچسب زدن تصویر روی دستگاه در برنامه خود استفاده کنید. (برای اطلاعات کلی در مورد این ویژگی به نمای کلی مراجعه کنید.)
AutoML Vision Edge یک سرویس Google Cloud است. استفاده از این سرویس مشمول قرارداد مجوز پلتفرم Google Cloud و شرایط خاص سرویس است و بر این اساس صورتحساب دریافت میشود. برای اطلاعات صورتحساب، صفحه قیمت گذاری AutoML را ببینید.
قبل از شروع
اگر قبلاً پروژه Firebase یا Google Cloud ندارید، در کنسول Firebase ایجاد کنید.
با دستورالعمل های ارائه شده در راهنمای ML فراگیر - AutoML آشنا شوید.
اگر فقط میخواهید AutoML Vision Edge را امتحان کنید و دادههای آموزشی خود را ندارید، یک مجموعه داده نمونه مانند یکی از موارد زیر را دانلود کنید:
- مجموعه داده نمونه تصویر گل رسمی TensorFlow
- این مجموعه داده الفبای زبان اشاره آمریکایی (ASL).
میتوانید مجموعه دادههای بیشتری را که در Kaggle میزبانی شدهاند پیدا کنید.
1. داده های آموزشی خود را جمع آوری کنید
ابتدا باید مجموعه داده آموزشی از تصاویر برچسب گذاری شده را جمع آوری کنید. دستورالعمل های زیر را در نظر داشته باشید:
تصاویر باید در یکی از فرمت های زیر باشند: JPEG، PNG، GIF، BMP، ICO.
هر تصویر باید 30 مگابایت یا کوچکتر باشد. توجه داشته باشید که AutoML Vision Edge اکثر تصاویر را در طول پیش پردازش کاهش می دهد، بنابراین به طور کلی هیچ مزیتی از دقت برای ارائه تصاویر با وضوح بسیار بالا وجود ندارد.
حداقل 10، و ترجیحاً 100 یا بیشتر، نمونه از هر برچسب را شامل شود.
برای هر برچسب چندین زاویه، وضوح و پسزمینه اضافه کنید.
داده های آموزشی باید تا حد امکان نزدیک به داده هایی باشد که بر اساس آنها پیش بینی می شود. به عنوان مثال، اگر مورد استفاده شما شامل تصاویر تار و با وضوح پایین (مانند یک دوربین امنیتی) باشد، داده های آموزشی شما باید از تصاویر تار و با وضوح پایین تشکیل شده باشد.
مدلهای تولید شده توسط AutoML Vision Edge برای عکسبرداری از اشیاء در دنیای واقعی بهینهسازی شدهاند. آنها ممکن است برای عکسبرداری با اشعه ایکس، نقاشی های دستی، اسناد اسکن شده، رسیدها و غیره به خوبی کار نکنند.
همچنین، مدلها معمولاً نمیتوانند برچسبهایی را که انسان نمیتواند اختصاص دهد، پیشبینی کند. بنابراین، اگر یک انسان نتواند با نگاه کردن به تصویر برای 1-2 ثانیه برچسبهایی را اختصاص دهد، احتمالاً مدل نیز نمیتواند این کار را انجام دهد.
هنگامی که تصاویر آموزشی خود را آماده کردید، آنها را برای وارد کردن به Firebase آماده کنید. شما سه گزینه دارید:
گزینه 1: بایگانی فشرده ساختاریافته
تصاویر آموزشی خود را در دایرکتوری هایی سازماندهی کنید که هر کدام به نام یک برچسب و حاوی تصاویری هستند که نمونه هایی از آن برچسب هستند. سپس، ساختار دایرکتوری را در یک آرشیو فشرده فشرده کنید.
نام دایرکتوری در این بایگانی فشرده میتواند حداکثر 32 کاراکتر اسکی باشد و فقط شامل نویسههای الفبایی و نویسه زیرخط ( _
) باشد.
به عنوان مثال:
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
گزینه 2: Cloud Storage با شاخص CSV
تصاویر آموزشی خود را در Google Cloud Storage آپلود کنید و یک فایل CSV تهیه کنید که نشانی وب هر تصویر و در صورت تمایل، برچسبهای صحیح برای هر تصویر را فهرست میکند. این گزینه هنگام استفاده از مجموعه داده های بسیار بزرگ مفید است.
به عنوان مثال، تصاویر خود را در 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 مراجعه کنید.
گزینه 3: تصاویر بدون برچسب
تصاویر آموزشی خود را پس از آپلود، به صورت جداگانه یا در یک فایل فشرده بدون ساختار، در کنسول Firebase برچسب بزنید. مرحله بعدی را ببینید.
2. مدل خود را آموزش دهید
سپس با استفاده از تصاویر خود یک مدل را آموزش دهید:
صفحه Vision Datasets را در کنسول Google Cloud باز کنید. وقتی از شما خواسته شد پروژه خود را انتخاب کنید.
روی مجموعه داده جدید کلیک کنید، یک نام برای مجموعه داده ارائه کنید، نوع مدلی را که می خواهید آموزش دهید انتخاب کنید و روی ایجاد مجموعه داده کلیک کنید.
در برگه Import مجموعه داده خود، یک بایگانی فشرده از تصاویر آموزشی خود یا یک فایل CSV حاوی مکانهای Cloud Storage که آنها را در آنها آپلود کردهاید، آپلود کنید. به جمع آوری داده های آموزشی خود مراجعه کنید.
پس از اتمام کار وارد کردن، از تب Images برای تأیید داده های آموزشی استفاده کنید و هر تصویر بدون برچسب را برچسب گذاری کنید.
در برگه Train ، روی شروع آموزش کلیک کنید.
مدل را نام ببرید و نوع مدل Edge را انتخاب کنید.
تنظیمات آموزشی زیر را که بر عملکرد مدل تولید شده حاکم است، پیکربندی کنید:
بهینه سازی مدل برای ... پیکربندی مدل برای استفاده میتوانید مدلهای سریعتر، کوچکتر، زمانی که تأخیر کم یا اندازه بستهبندی کوچک مهم است، یا مدلهای کندتر و بزرگتر، زمانی که دقت مهمتر است، آموزش دهید. بودجه ساعت گره حداکثر زمان، بر حسب ساعت محاسبه، برای صرف آموزش مدل. زمان آموزش بیشتر به طور کلی منجر به یک مدل دقیق تر می شود.
توجه داشته باشید که اگر سیستم تشخیص دهد که مدل بهینه شده است و آموزش اضافی دقت را بهبود نمی بخشد، آموزش می تواند در کمتر از زمان مشخص شده تکمیل شود. شما فقط برای ساعات استفاده واقعی صورتحساب دریافت می کنید.
زمان های تمرین معمولی مجموعه های بسیار کوچک 1 ساعت 500 تصویر 2 ساعت 1000 تصویر 3 ساعت 5000 عکس 6 ساعت 10000 تصویر 7 ساعت 50000 عکس 11 ساعت 100000 عکس 13 ساعت 1,000,000 عکس 18 ساعت
3. مدل خود را ارزیابی کنید
وقتی آموزش کامل شد، میتوانید روی برگه ارزیابی کلیک کنید تا معیارهای عملکرد مدل را ببینید.
یکی از کاربردهای مهم این صفحه تعیین آستانه اطمینانی است که برای مدل شما بهترین کار را دارد. آستانه اطمینان حداقل اطمینانی است که مدل باید برای اختصاص برچسب به یک تصویر داشته باشد. با حرکت دادن نوار لغزنده آستانه اطمینان ، می توانید ببینید که آستانه های مختلف چگونه بر عملکرد مدل تأثیر می گذارد. عملکرد مدل با استفاده از دو معیار اندازه گیری می شود: دقت و یادآوری .
در زمینه طبقه بندی تصاویر، دقت نسبت تعداد تصاویری است که به درستی برچسب گذاری شده اند به تعداد تصاویری که مدل با توجه به آستانه انتخاب شده برچسب گذاری کرده است. هنگامی که یک مدل دقت بالایی دارد، برچسبها را کمتر به اشتباه اختصاص میدهد (کمتر موارد مثبت کاذب).
یادآوری نسبت تعداد تصاویری است که به درستی برچسب گذاری شده اند به تعداد تصاویری که دارای محتوایی هستند که مدل باید قادر به برچسب گذاری است. زمانی که مدلی یادآوری بالایی داشته باشد، نمی تواند برچسبی را کمتر اختصاص دهد (منفی های کاذب کمتر).
اینکه آیا شما برای دقت یا فراخوانی بهینه سازی می کنید به مورد استفاده شما بستگی دارد. برای اطلاعات بیشتر به راهنمای مبتدیان AutoML Vision و راهنمای ML فراگیر - AutoML مراجعه کنید.
هنگامی که آستانه اطمینانی پیدا کردید که معیارهایی را ایجاد می کند که با آن راحت هستید، آن را یادداشت کنید. شما از آستانه اطمینان برای پیکربندی مدل در برنامه خود استفاده خواهید کرد. (شما می توانید در هر زمان از این ابزار برای به دست آوردن یک مقدار آستانه مناسب استفاده کنید.)
4. مدل خود را منتشر یا دانلود کنید
اگر از عملکرد مدل راضی هستید و میخواهید از آن در یک برنامه استفاده کنید، سه گزینه دارید که از بین آنها میتوانید هر ترکیبی را انتخاب کنید: استقرار مدل برای پیشبینی آنلاین، انتشار مدل در Firebase، یا دانلود مدل و بستهبندی آن. با برنامه شما
مدل را مستقر کنید
در برگه Test & use مجموعه داده خود، می توانید مدل خود را برای پیش بینی آنلاین مستقر کنید، که مدل شما را در فضای ابری اجرا می کند. این گزینه در اسناد Cloud AutoML پوشش داده شده است. اسناد موجود در این سایت با دو گزینه باقی مانده سروکار دارند.
مدل را منتشر کنید
با انتشار مدل در Firebase، میتوانید مدل را بدون انتشار نسخه جدید برنامه بهروزرسانی کنید و میتوانید از Remote Config و A/B Testing برای ارائه پویا مدلهای مختلف به مجموعههای مختلف کاربران استفاده کنید.
اگر ترجیح میدهید مدل را فقط با میزبانی آن در Firebase ارائه دهید، و آن را با برنامه خود همراه نکنید، میتوانید حجم دانلود اولیه برنامه خود را کاهش دهید. البته به خاطر داشته باشید که اگر مدل با برنامه شما همراه نباشد، تا زمانی که برنامه شما برای اولین بار مدل را دانلود نکند، هیچ عملکرد مرتبط با مدل در دسترس نخواهد بود.
برای انتشار مدل خود، می توانید از یکی از دو روش استفاده کنید:
- مدل TF Lite را از صفحه آزمایش و استفاده مجموعه داده خود در کنسول Google Cloud دانلود کنید و سپس مدل را در صفحه مدل سفارشی کنسول Firebase آپلود کنید. این معمولا ساده ترین راه برای انتشار یک مدل واحد است.
- با استفاده از Admin SDK، مدل را مستقیماً از پروژه Google Cloud خود در Firebase منتشر کنید. شما می توانید از این روش برای انتشار دسته ای چندین مدل یا کمک به ایجاد خطوط لوله انتشار خودکار استفاده کنید.
برای انتشار مدل با API مدیریت مدل SDK Admin:
مدل را منتشر کنید
شما باید شناسه منبع مدل را مشخص کنید، که رشته ای شبیه به مثال زیر است:
projects/PROJECT_NUMBER/locations/us-central1/models/MODEL_ID
PROJECT_NUMBER
شماره پروژه سطل Cloud Storage که حاوی مدل است. این ممکن است پروژه Firebase شما یا پروژه Google Cloud دیگری باشد. می توانید این مقدار را در صفحه تنظیمات کنسول Firebase یا داشبورد کنسول Google Cloud پیدا کنید. MODEL_ID
شناسه مدل که از AutoML Cloud API دریافت کردید. پایتون
# 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)
Node.js
// 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);
مدل را با برنامه خود بارگیری و بسته بندی کنید
با بستهبندی مدل خود با برنامهتان، میتوانید مطمئن شوید که ویژگیهای ML برنامهتان همچنان در زمانی که مدل میزبانی شده توسط Firebase در دسترس نیست، کار میکنند.
اگر هم مدل را منتشر کنید و هم آن را با برنامه خود همراه کنید، برنامه از آخرین نسخه موجود استفاده خواهد کرد.
برای دانلود مدل خود، روی TF Lite در صفحه تست و استفاده مجموعه داده خود کلیک کنید.
مراحل بعدی
اکنون که مدل را منتشر یا دانلود کردید، نحوه استفاده از مدل را در برنامههای iOS+ و Android خود بیاموزید.