یک مدل تشخیص شیء مشابه مدل برچسبگذاری تصویر است، اما به جای اختصاص برچسبها به کل تصاویر، برچسبها را به نواحی از تصاویر اختصاص میدهد. میتوانید از مدلهای تشخیص شیء برای تشخیص و مکانیابی اشیاء در یک تصویر یا ردیابی حرکات یک شیء در مجموعهای از تصاویر استفاده کنید.
برای آموزش یک مدل تشخیص شیء، شما مجموعهای از تصاویر با برچسبهای شیء مربوطه و مرزهای شیء را در اختیار AutoML Vision Edge قرار میدهید. AutoML Vision Edge از این مجموعه داده برای آموزش یک مدل جدید در فضای ابری استفاده میکند که میتوانید از آن برای تشخیص شیء روی دستگاه استفاده کنید.
قبل از اینکه شروع کنی
اگر از قبل پروژه Firebase ندارید، یکی را در کنسول Firebase ایجاد کنید.
با دستورالعملهای ارائه شده در راهنمای جامع یادگیری ماشین - AutoML آشنا شوید.
اگر فقط میخواهید AutoML Vision Edge را امتحان کنید و دادههای آموزشی خودتان را ندارید، یک مجموعه داده نمونه مانند یکی از موارد زیر را دانلود کنید:
- یکی از مجموعه دادههای پیشنهادی TensorFlow.
- یک مجموعه داده میزبانی شده در Kaggle .
۱. دادههای آموزشی خود را جمعآوری کنید
ابتدا، باید یک مجموعه داده آموزشی از تصاویر برچسبگذاری شده تهیه کنید. دستورالعملهای زیر را در نظر داشته باشید:
تصاویر باید در یکی از فرمتهای JPEG، PNG، GIF، BMP، ICO باشند.
هر تصویر باید 30 مگابایت یا کمتر باشد. توجه داشته باشید که AutoML Vision Edge اکثر تصاویر را در طول پیشپردازش کوچک میکند، بنابراین معمولاً هیچ مزیتی در دقت ارائه تصاویر با وضوح بسیار بالا وجود ندارد.
حداقل ۱۰ و ترجیحاً ۱۰۰ یا بیشتر، نمونه از هر برچسب را ذکر کنید.
برای هر برچسب، چندین زاویه، وضوح و پسزمینه در نظر بگیرید.
دادههای آموزشی باید تا حد امکان به دادههایی که قرار است پیشبینیها روی آنها انجام شود، نزدیک باشند. برای مثال، اگر مورد استفاده شما شامل تصاویر تار و با وضوح پایین (مانند تصاویر دوربین امنیتی) باشد، دادههای آموزشی شما باید از تصاویر تار و با وضوح پایین تشکیل شده باشند.
مدلهای تولید شده توسط AutoML Vision Edge برای عکسهای اشیاء در دنیای واقعی بهینه شدهاند. ممکن است برای اشعه ایکس، نقاشیهای دستی، اسناد اسکن شده، رسیدها و غیره به خوبی کار نکنند.
همچنین، مدلها عموماً نمیتوانند برچسبهایی را که انسانها نمیتوانند اختصاص دهند، پیشبینی کنند. بنابراین، اگر یک انسان نتواند با نگاه کردن به تصویر به مدت ۱-۲ ثانیه برچسبهایی را اختصاص دهد، احتمالاً مدل نیز نمیتواند برای انجام این کار آموزش ببیند.
وقتی تصاویر آموزشی خود را آماده کردید، آنها را برای وارد کردن به Google Cloud آماده کنید. دو گزینه دارید:
گزینه ۱: Cloud Storage با اندیس CSV
تصاویر آموزشی خود را در Google Cloud Storage آپلود کنید و یک فایل CSV شامل آدرس اینترنتی (URL) هر تصویر و در صورت تمایل، برچسبهای صحیح اشیاء و نواحی مرزی هر تصویر تهیه کنید. این گزینه هنگام استفاده از مجموعه دادههای بزرگ مفید است.
برای مثال، تصاویر خود را در Cloud Storage آپلود کنید و یک فایل CSV مانند زیر آماده کنید:
gs://your-training-data-bucket/001.jpg,accordion,0.2,0.4,,,0.3,0.5,, gs://your-training-data-bucket/001.jpg,tuba,0.2,0.5,,,0.4,0.8,, gs://your-training-data-bucket/002.jpg,accordion,0.2,0.2,,,0.9,0.8,,
کادرهای محدودکننده اشیاء به صورت مختصات نسبی در تصویر مشخص شدهاند. به بخش قالببندی دادههای آموزشی CSV مراجعه کنید.
تصاویر باید در یک سطل که در ناحیه us-central1
و بخشی از پروژه Google Cloud مربوط به پروژه Firebase شما است، ذخیره شوند.
گزینه ۲: تصاویر بدون برچسب
تصاویر آموزشی خود را برچسبگذاری کنید و پس از آپلود، مرزهای اشیاء را در کنسول Google Cloud رسم کنید. این کار فقط برای مجموعه دادههای کوچک توصیه میشود. به مرحله بعدی مراجعه کنید.
۲. مدل خود را آموزش دهید
در مرحله بعد، با استفاده از تصاویر خود، یک مدل را آموزش دهید:
صفحه Vision Datasets را در کنسول Google Cloud باز کنید. در صورت درخواست، پروژه خود را انتخاب کنید.
روی «مجموعه داده جدید» کلیک کنید، نامی برای مجموعه داده انتخاب کنید، نوع مدلی را که میخواهید آموزش دهید انتخاب کنید و روی «ایجاد مجموعه داده» کلیک کنید.
در برگه «وارد کردن» (Import) مجموعه دادههای خود، تصاویر آموزشی، یک آرشیو زیپ از تصاویر آموزشی یا یک فایل CSV حاوی مکانهای Cloud Storage که تصاویر را در آنها آپلود کردهاید، آپلود کنید. به بخش «جمعآوری دادههای آموزشی» (Assemble your training data) مراجعه کنید.
پس از اتمام کار وارد کردن، از تب تصاویر برای تأیید دادههای آموزشی استفاده کنید.
اگر فایل CSV را آپلود نکردهاید، برای هر تصویر، دور اشیایی که میخواهید تشخیص دهید کادرهای مرزی بکشید و هر شیء را برچسبگذاری کنید.
در برگه آموزش ، روی شروع آموزش کلیک کنید.
مدل را نامگذاری کنید و نوع مدل Edge را انتخاب کنید.
تنظیمات آموزشی زیر را که عملکرد مدل تولید شده را کنترل میکنند، پیکربندی کنید:
بهینه سازی مدل برای ... پیکربندی مدل مورد استفاده. میتوانید مدلهای سریعتر و کوچکتر را زمانی که تأخیر کم یا اندازه بسته کوچک مهم است، یا مدلهای کندتر و بزرگتر را زمانی که دقت بیشترین اهمیت را دارد، آموزش دهید. بودجه ساعت گره حداکثر زمان، بر حسب ساعت محاسباتی، برای آموزش مدل. زمان آموزش بیشتر معمولاً منجر به مدل دقیقتری میشود.
توجه داشته باشید که اگر سیستم تشخیص دهد که مدل بهینه شده است و آموزش اضافی دقت را بهبود نمیبخشد، آموزش میتواند در کمتر از زمان مشخص شده تکمیل شود. شما فقط برای ساعاتی که واقعاً استفاده شده است، صورتحساب دریافت میکنید.
زمانهای معمول آموزش مجموعههای بسیار کوچک ۱ ساعت ۵۰۰ تصویر ۲ ساعت ۱۰۰۰ تصویر ۳ ساعت ۵۰۰۰ تصویر ۶ ساعت ۱۰،۰۰۰ تصویر ۷ ساعت ۵۰،۰۰۰ تصویر ۱۱ ساعت ۱۰۰۰۰۰ تصویر ۱۳ ساعت ۱,۰۰۰,۰۰۰ تصویر ۱۸ ساعت
۳. مدل خود را ارزیابی کنید
وقتی آموزش کامل شد، میتوانید روی برگه ارزیابی کلیک کنید تا معیارهای عملکرد مدل را ببینید.
یکی از کاربردهای مهم این صفحه، تعیین آستانه اطمینانی است که برای مدل شما بهترین عملکرد را دارد. آستانه اطمینان، حداقل اطمینانی است که مدل باید داشته باشد تا بتواند به یک تصویر برچسب اختصاص دهد. با حرکت دادن لغزنده آستانه اطمینان ، میتوانید ببینید که آستانههای مختلف چگونه بر عملکرد مدل تأثیر میگذارند. عملکرد مدل با استفاده از دو معیار اندازهگیری میشود: دقت و فراخوانی .
در زمینه طبقهبندی تصویر، دقت ، نسبت تعداد تصاویری است که به درستی برچسبگذاری شدهاند به تعداد تصاویری که مدل با توجه به آستانه انتخاب شده برچسبگذاری کرده است. وقتی یک مدل دقت بالایی داشته باشد، کمتر به اشتباه برچسبگذاری میکند (مثبت کاذب کمتری).
میزان بازخوانی ، نسبت تعداد تصاویری است که به درستی برچسبگذاری شدهاند به تعداد تصاویری که محتوایی دارند که مدل باید میتوانست برچسبگذاری کند. وقتی مدلی میزان بازخوانی بالایی داشته باشد، کمتر در اختصاص برچسب ناموفق میشود (تعداد خطاهای منفی کمتر).
اینکه آیا برای دقت یا بازیابی بهینهسازی کنید، به مورد استفاده شما بستگی دارد. برای اطلاعات بیشتر به راهنمای مبتدیان 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:
مدل را منتشر کنید.
شما باید شناسه منبع مدل را مشخص کنید، که رشتهای است که مانند مثال زیر به نظر میرسد:
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 خود استفاده کنید.