برچسبهای سفارشی شناسایی آمازون برای خرسها

در وبلاگ های قبلی در مورد برنامه Bearcam Companion، در مورد استفاده از آمازون Rekognition به عنوان آشکارساز خرس و خودکار کردن آن با عملکرد لامبدا نوشتم. Rekognition زمان زیادی را در اجرای برنامه صرفه جویی کرد. می تواند خرس ها (و نزدیک به 300 شی دیگر) را تشخیص دهد، اما ممکن است برای برنامه شما مناسب نباشد.
همانطور که در تصویر بالا می بینید، گاهی اوقات Rekognition به خرس ها برچسب سگ، کانگورو، مردم و غیره می دهد. قبل از اینکه کاربران بتوانند خرسهای موجود در برنامه را شناسایی کنند، این برچسبهای اشتباه باید برطرف شوند.
من واقعاً نمی خواهم زمان زیادی را صرف تنظیم دستی برچسب ها کنم. برای بیشتر یادگیری ماشینی، گام بعدی تنظیم دقیق مدل شما خواهد بود. اساساً می توانید با استفاده از برچسب های سفارشی آمازون Rekognition را تنظیم کنید. شما می توانید این کار را انجام دهید تا آن را در تشخیص اشیاء خاص (مانند خرس) بهتر کنید یا آن را برای تشخیص اشیاء جدید مانند محصول یا لوگوی خود آموزش دهید. این واقعاً به نیازهای برنامه شما بستگی دارد.
برچسب های سفارشی
6 مرحله برای برچسب های سفارشی شناسایی آمازون وجود دارد:
- پروژه ایجاد کنید
- ایجاد مجموعه داده
- تصاویر را برچسب بزنید
- مدل قطار
- ارزیابی کنید
- از مدل استفاده کنید
مرحله 1: ایجاد پروژه
می توانید یک پروژه Custom Labels در کنسول AWS ایجاد کنید:
مرحله 2: ایجاد مجموعه داده
بعد، یک مجموعه داده ایجاد کنید. می توانید مجموعه داده را از قبل به آموزش و آزمایش تقسیم کنید، یا می توانید به Custom Labels اجازه دهید این کار را برای شما انجام دهد.
راه های مختلفی برای وارد کردن تصاویر وجود دارد، در مورد من آنها را به عنوان یک فایل مانیفست وارد کردم. مانیفست می تواند از SageMaker GroundTruth باشد یا می توانید مانیفست خود را ایجاد کنید. از آنجایی که من در Bearcam Companion در حال جمعآوری و بهروزرسانی برچسبهای تصویر بودم، مانیفست خود را با استفاده از یک اسکریپت پایتون برای استخراج دادهها از DynamoDB Object و جداول Image با پیوندهایی به تصاویر در S3 ایجاد کردم. من فایل مانیفست را در S3 آپلود کردم و لینک را به شکل زیر ارائه کردم:
من مجموعه داده از پیش تقسیم شده داشتم: 80٪ برای قطار و 20٪ برای آزمایش. این منجر به 2486 تصویر آموزشی و 605 تصویر آزمایشی شد. بسیاری از تصاویر دارای چندین خرس هستند که تعداد کل برچسب ها را افزایش می دهد. می توانید این موارد را در colsole مشاهده کنید:
مرحله 3: تصاویر را برچسب گذاری کنید
فایل مانیفست من قبلاً دارای برچسبهایی از Bearcam Companion بود. اگر دادههای شما برچسبگذاری نشدهاند، میتوانید برچسبها را مستقیماً در رابط سفارشی برچسبها اضافه کنید. همچنین میتوانید از GroundTruth برای کارهای برچسبگذاری بزرگتر استفاده کنید و آنها را در اختیار نیروی کار گستردهتری قرار دهید. من برخی از خطاها را در مجموعه داده خود پیدا کردم
مانند تصویر زیر که در آن خرس سمت چپ یک جعبه محدود را از دست داده است. من برچسبها را مستقیماً در برچسبهای سفارشی تنظیم کردم:
مرحله 4: مدل قطار
وقتی مجموعه داده آماده شد، می توانید آموزش را شروع کنید. این ممکن است چند ساعت طول بکشد. پس از تکمیل، مدل آماده اجرا است
اما ابتدا به عملکرد مدل نگاه می کنیم
مرحله 5: ارزیابی
با کلیک بر روی لینک مدل وارد صفحه ارزیابی می شوید. در اینجا عملکرد هر برچسب، مانند F1، دقت، فراخوانی و آستانه فرضی مورد استفاده برای ارزیابی را خواهید یافت. در مدل من، فقط یک برچسب وجود دارد: خرس ها، اما ممکن است دیگران داشته باشید.
نتایج آزمایش را مشاهده کنید تا عملکرد هر تصویر را در مجموعه آزمایشی مشاهده کنید. می توانید به سرعت خطاها را فیلتر کنید تا ببینید مدل شما ممکن است به بهبود نیاز داشته باشد.
در اینجا یک مثال منفی کاذب وجود دارد که در آن مدل یکی از خرسها را از دست داده است (درست به رنگ سبز، اشتباه در قرمز):
در اینجا یک مثال مثبت کاذب وجود دارد که در آن مدل شاخه های موجود در آب را به عنوان خرس برچسب زده است:
حتی ممکن است خطاهایی را در مجموعه تست پیدا کنید، مانند این تصویر که در آن کادرهای قرمز در واقع باید درست باشند.
می توانید برچسب ها را تعمیر کنید و مدل را دوباره آموزش دهید
مرحله 6: از مدل استفاده کنید
هنگامی که از مدل راضی بودید، می توانید آن را در کنسول شروع کنید (و متوقف کنید):
کد نمونه برای مدل ارائه شده است. شما می توانید انتخاب کنید که به چند نمونه از مدل خود نیاز دارید. این باعث افزایش توان عملیاتی می شود. به خاطر داشته باشید، شما بر اساس ساعتهای نمونه شارژ میشوید، یعنی چند نمونه برای چند ساعت کار کردهاید.
نتیجه
در این پست یاد گرفتیم که چگونه با استفاده از برچسب های سفارشی شناسایی آمازون یک آشکارساز تخصصی بسازیم. ما همه این کارها را در کنسول انجام دادیم (به غیر از ایجاد مجموعه داده ما). این فرآیند برای بسیاری از برنامه ها ساده و مقرون به صرفه است.
به نظر می رسد که برچسب های سفارشی ممکن است برای Bearcam Companion مناسب نباشند. ما فقط به 12 استنتاج در ساعت نیاز داریم، و مطمئن نیستم که بتوانیم برچسبهای سفارشی را به اندازه کافی بالا و پایین بچرخانیم تا هزینهها را کاهش دهیم. برای استفاده کم، ما یک مدل بر اساس تقاضا را برای تشخیص خرس ترجیح می دهیم. بنابراین یکی از پروژه های بعدی آموزش آشکارساز خرس با استفاده از Amazon SageMaker است.
ما آن را برای زمان دیگری ذخیره می کنیم.
برای اطلاعات بیشتر در مورد شناسایی آمازون و برچسبهای سفارشی، AWS ML Heroes in 15: Amazon Rekognition for Wildlife Conservation را در 4 آگوست 2023 بررسی کنید.