# آموزش ساخت یک تشخیص‌دهنده موجودی ![نمای کلی از این درس](../../../../../translated_images/lesson-19.cf6973cecadf080c4b526310620dc4d6f5994c80fb0139c6f378cc9ca2d435cd.fa.jpg) > طراحی توسط [نیتیا ناراسیمهان](https://github.com/nitya). برای مشاهده نسخه بزرگ‌تر روی تصویر کلیک کنید. این ویدیو نمای کلی از تشخیص اشیا با استفاده از سرویس Azure Custom Vision را ارائه می‌دهد، سرویسی که در این درس پوشش داده خواهد شد. [![Custom Vision 2 - تشخیص اشیا به‌سادگی | The Xamarin Show](https://img.youtube.com/vi/wtTYSyBUpFc/0.jpg)](https://www.youtube.com/watch?v=wtTYSyBUpFc) > 🎥 برای مشاهده ویدیو روی تصویر بالا کلیک کنید ## آزمون پیش از درس [آزمون پیش از درس](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/37) ## مقدمه در پروژه قبلی، شما از هوش مصنوعی برای آموزش یک مدل طبقه‌بندی تصویر استفاده کردید - مدلی که می‌تواند تشخیص دهد آیا یک تصویر شامل چیزی مانند میوه رسیده یا نارس است. نوع دیگری از مدل هوش مصنوعی که می‌توان با تصاویر استفاده کرد، تشخیص اشیا است. این مدل‌ها تصاویر را با برچسب طبقه‌بندی نمی‌کنند، بلکه برای شناسایی اشیا آموزش داده می‌شوند و می‌توانند آن‌ها را در تصاویر پیدا کنند. این مدل‌ها نه تنها تشخیص می‌دهند که یک شیء در تصویر وجود دارد، بلکه مکان آن را نیز مشخص می‌کنند. این قابلیت به شما امکان می‌دهد اشیا را در تصاویر بشمارید. در این درس، شما با تشخیص اشیا آشنا خواهید شد، از جمله اینکه چگونه می‌توان از آن در خرده‌فروشی استفاده کرد. همچنین یاد می‌گیرید که چگونه یک تشخیص‌دهنده اشیا را در فضای ابری آموزش دهید. در این درس به موضوعات زیر خواهیم پرداخت: * [تشخیص اشیا](../../../../../5-retail/lessons/1-train-stock-detector) * [استفاده از تشخیص اشیا در خرده‌فروشی](../../../../../5-retail/lessons/1-train-stock-detector) * [آموزش یک تشخیص‌دهنده اشیا](../../../../../5-retail/lessons/1-train-stock-detector) * [آزمایش تشخیص‌دهنده اشیا](../../../../../5-retail/lessons/1-train-stock-detector) * [بازآموزی تشخیص‌دهنده اشیا](../../../../../5-retail/lessons/1-train-stock-detector) ## تشخیص اشیا تشخیص اشیا شامل شناسایی اشیا در تصاویر با استفاده از هوش مصنوعی است. برخلاف طبقه‌بندی تصویر که در پروژه قبلی آموزش داده شد، تشخیص اشیا به پیش‌بینی بهترین برچسب برای کل تصویر نمی‌پردازد، بلکه به یافتن یک یا چند شیء در تصویر می‌پردازد. ### تشخیص اشیا در مقابل طبقه‌بندی تصویر طبقه‌بندی تصویر به معنای طبقه‌بندی کل تصویر است - اینکه احتمال تطابق کل تصویر با هر برچسب چقدر است. شما احتمال‌ها را برای هر برچسبی که مدل با آن آموزش دیده است دریافت می‌کنید. ![طبقه‌بندی تصویر برای بادام هندی و رب گوجه‌فرنگی](../../../../../translated_images/image-classifier-cashews-tomato.bc2e16ab8f05cf9ac0f59f73e32efc4227f9a5b601b90b2c60f436694547a965.fa.png) در مثال بالا، دو تصویر با استفاده از مدلی که برای طبقه‌بندی قوطی‌های بادام هندی یا رب گوجه‌فرنگی آموزش دیده است، طبقه‌بندی شده‌اند. تصویر اول یک قوطی بادام هندی است و نتایج زیر را از طبقه‌بندی تصویر دارد: | برچسب | احتمال | | -------------- | ------: | | `بادام هندی` | 98.4% | | `رب گوجه‌فرنگی`| 1.6% | تصویر دوم یک قوطی رب گوجه‌فرنگی است و نتایج زیر را دارد: | برچسب | احتمال | | -------------- | ------: | | `بادام هندی` | 0.7% | | `رب گوجه‌فرنگی`| 99.3% | شما می‌توانید از این مقادیر با یک درصد آستانه برای پیش‌بینی محتوای تصویر استفاده کنید. اما اگر یک تصویر شامل چندین قوطی رب گوجه‌فرنگی یا هر دو بادام هندی و رب گوجه‌فرنگی باشد، نتایج احتمالاً آن چیزی که می‌خواهید نخواهد بود. اینجاست که تشخیص اشیا وارد عمل می‌شود. تشخیص اشیا شامل آموزش مدلی برای شناسایی اشیا است. به جای دادن تصاویری که شامل شیء هستند و گفتن اینکه هر تصویر یک برچسب یا دیگری است، شما بخش خاصی از تصویر که شامل شیء است را مشخص کرده و برچسب می‌زنید. شما می‌توانید یک شیء یا چندین شیء را در یک تصویر برچسب بزنید. به این ترتیب، مدل یاد می‌گیرد که خود شیء چگونه به نظر می‌رسد، نه فقط تصاویری که شامل شیء هستند. وقتی از آن برای پیش‌بینی تصاویر استفاده می‌کنید، به جای دریافت لیستی از برچسب‌ها و درصدها، لیستی از اشیای شناسایی‌شده، با جعبه‌های محدودکننده و احتمال تطابق شیء با برچسب اختصاص داده‌شده دریافت می‌کنید. > 🎓 *جعبه‌های محدودکننده* جعبه‌هایی هستند که دور یک شیء کشیده می‌شوند. ![تشخیص اشیا برای بادام هندی و رب گوجه‌فرنگی](../../../../../translated_images/object-detector-cashews-tomato.1af7c26686b4db0e709754aeb196f4e73271f54e2085db3bcccb70d4a0d84d97.fa.png) تصویر بالا شامل یک قوطی بادام هندی و سه قوطی رب گوجه‌فرنگی است. تشخیص‌دهنده اشیا بادام هندی را شناسایی کرده و جعبه محدودکننده‌ای که شامل بادام هندی است را با احتمال 97.6% ارائه داده است. همچنین سه قوطی رب گوجه‌فرنگی شناسایی شده‌اند و سه جعبه محدودکننده جداگانه برای هر قوطی ارائه شده است، هر کدام با احتمال تطابق با قوطی رب گوجه‌فرنگی. ✅ به برخی از سناریوهای مختلفی که ممکن است بخواهید از مدل‌های هوش مصنوعی مبتنی بر تصویر استفاده کنید فکر کنید. کدام یک به طبقه‌بندی نیاز دارند و کدام یک به تشخیص اشیا؟ ### تشخیص اشیا چگونه کار می‌کند تشخیص اشیا از مدل‌های پیچیده یادگیری ماشین استفاده می‌کند. این مدل‌ها تصویر را به چندین سلول تقسیم می‌کنند و بررسی می‌کنند که آیا مرکز جعبه محدودکننده با مرکز تصویری که با مدل آموزش داده شده است مطابقت دارد یا خیر. می‌توانید این فرآیند را شبیه به اجرای یک طبقه‌بندی تصویر در بخش‌های مختلف تصویر برای یافتن تطابق‌ها تصور کنید. > 💁 این توضیح بسیار ساده‌شده است. تکنیک‌های زیادی برای تشخیص اشیا وجود دارد و می‌توانید درباره آن‌ها در [صفحه تشخیص اشیا در ویکی‌پدیا](https://wikipedia.org/wiki/Object_detection) بیشتر بخوانید. مدل‌های مختلفی برای تشخیص اشیا وجود دارند. یکی از مدل‌های معروف [YOLO (فقط یک بار نگاه کن)](https://pjreddie.com/darknet/yolo/) است که بسیار سریع است و می‌تواند 20 کلاس مختلف از اشیا مانند انسان، سگ، بطری و ماشین را شناسایی کند. ✅ درباره مدل YOLO در [pjreddie.com/darknet/yolo/](https://pjreddie.com/darknet/yolo/) مطالعه کنید. مدل‌های تشخیص اشیا می‌توانند با استفاده از یادگیری انتقالی برای شناسایی اشیای سفارشی بازآموزی شوند. ## استفاده از تشخیص اشیا در خرده‌فروشی تشخیص اشیا کاربردهای متعددی در خرده‌فروشی دارد. برخی از آن‌ها عبارتند از: * **بررسی و شمارش موجودی** - شناسایی زمانی که موجودی قفسه‌ها کم است. اگر موجودی خیلی کم باشد، می‌توان به کارکنان یا ربات‌ها اطلاع داد تا قفسه‌ها را پر کنند. * **تشخیص ماسک** - در فروشگاه‌هایی که سیاست استفاده از ماسک دارند، تشخیص اشیا می‌تواند افراد با ماسک و بدون ماسک را شناسایی کند. * **صورتحساب خودکار** - شناسایی اقلام برداشته‌شده از قفسه‌ها در فروشگاه‌های خودکار و صورتحساب مناسب مشتریان. * **تشخیص خطرات** - شناسایی اقلام شکسته روی زمین یا مایعات ریخته‌شده و اطلاع به تیم‌های نظافت. ✅ تحقیق کنید: چه کاربردهای دیگری برای تشخیص اشیا در خرده‌فروشی وجود دارد؟ ## آموزش یک تشخیص‌دهنده اشیا شما می‌توانید یک تشخیص‌دهنده اشیا را با استفاده از Custom Vision آموزش دهید، مشابه روشی که یک طبقه‌بندی تصویر را آموزش دادید. ### وظیفه - ایجاد یک تشخیص‌دهنده اشیا 1. یک گروه منابع برای این پروژه با نام `stock-detector` ایجاد کنید. 1. یک منبع آموزش رایگان Custom Vision و یک منبع پیش‌بینی رایگان Custom Vision در گروه منابع `stock-detector` ایجاد کنید. آن‌ها را به ترتیب `stock-detector-training` و `stock-detector-prediction` نام‌گذاری کنید. > 💁 شما فقط می‌توانید یک منبع آموزش و پیش‌بینی رایگان داشته باشید، بنابراین مطمئن شوید که پروژه‌های قبلی را پاک کرده‌اید. > ⚠️ می‌توانید به [دستورالعمل‌های ایجاد منابع آموزش و پیش‌بینی از پروژه 4، درس 1 در صورت نیاز مراجعه کنید](../../../4-manufacturing/lessons/1-train-fruit-detector/README.md#task---create-a-cognitive-services-resource). 1. پورتال Custom Vision را در [CustomVision.ai](https://customvision.ai) باز کنید و با حساب مایکروسافت خود که برای حساب Azure استفاده کرده‌اید وارد شوید. 1. بخش [ایجاد یک پروژه جدید در مستندات Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#create-a-new-project) را دنبال کنید تا یک پروژه جدید Custom Vision ایجاد کنید. رابط کاربری ممکن است تغییر کند و این مستندات همیشه به‌روزترین مرجع هستند. پروژه خود را `stock-detector` نام‌گذاری کنید. هنگام ایجاد پروژه، مطمئن شوید که از منبع `stock-detector-training` که قبلاً ایجاد کرده‌اید استفاده می‌کنید. نوع پروژه را *تشخیص اشیا* و دامنه را *محصولات روی قفسه‌ها* انتخاب کنید. ![تنظیمات پروژه Custom Vision با نام fruit-quality-detector، بدون توضیحات، منبع تنظیم‌شده به fruit-quality-detector-training، نوع پروژه تنظیم‌شده به طبقه‌بندی، نوع طبقه‌بندی تنظیم‌شده به چندکلاسه و دامنه‌ها تنظیم‌شده به غذا](../../../../../translated_images/custom-vision-create-object-detector-project.32d4fb9aa8e7e7375f8a799bfce517aca970f2cb65e42d4245c5e635c734ab29.fa.png) ✅ دامنه محصولات روی قفسه‌ها به‌طور خاص برای شناسایی موجودی روی قفسه‌های فروشگاه طراحی شده است. درباره دامنه‌های مختلف در [مستندات انتخاب دامنه در Microsoft Docs](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/select-domain?WT.mc_id=academic-17441-jabenn#object-detection) بیشتر بخوانید. ✅ زمانی را برای کاوش در رابط کاربری Custom Vision برای تشخیص‌دهنده اشیای خود اختصاص دهید. ### وظیفه - آموزش تشخیص‌دهنده اشیا برای آموزش مدل خود، به مجموعه‌ای از تصاویر که شامل اشیای موردنظر برای شناسایی هستند نیاز دارید. 1. تصاویری که شامل شیء موردنظر برای شناسایی هستند جمع‌آوری کنید. شما به حداقل 15 تصویر برای هر شیء نیاز دارید که از زوایای مختلف و در شرایط نوری متفاوت گرفته شده باشند، اما هرچه بیشتر بهتر. این تشخیص‌دهنده اشیا از دامنه *محصولات روی قفسه‌ها* استفاده می‌کند، بنابراین سعی کنید اشیا را طوری تنظیم کنید که گویی روی قفسه فروشگاه هستند. همچنین به چند تصویر برای آزمایش مدل نیاز خواهید داشت. اگر بیش از یک شیء را شناسایی می‌کنید، به تصاویری نیاز دارید که شامل همه اشیا باشند. > 💁 تصاویری که شامل چندین شیء مختلف هستند به حداقل 15 تصویر برای همه اشیای موجود در تصویر حساب می‌شوند. تصاویر شما باید به فرمت png یا jpeg باشند و کمتر از 6 مگابایت حجم داشته باشند. اگر آن‌ها را با یک آیفون ایجاد کنید، ممکن است تصاویر با وضوح بالا HEIC باشند، بنابراین باید تبدیل و احتمالاً کوچک شوند. هرچه تصاویر بیشتر باشد بهتر است و باید تعداد مشابهی از تصاویر برای اشیای مختلف داشته باشید. مدل برای محصولات روی قفسه‌ها طراحی شده است، بنابراین سعی کنید عکس‌ها را از اشیا روی قفسه‌ها بگیرید. می‌توانید برخی از تصاویر نمونه که می‌توانید استفاده کنید را در پوشه [images](../../../../../5-retail/lessons/1-train-stock-detector/images) برای بادام هندی و رب گوجه‌فرنگی پیدا کنید. 1. بخش [آپلود و برچسب‌گذاری تصاویر در مستندات Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#upload-and-tag-images) را دنبال کنید تا تصاویر آموزشی خود را آپلود کنید. برچسب‌های مرتبط را بسته به نوع اشیایی که می‌خواهید شناسایی کنید ایجاد کنید. ![دیالوگ‌های آپلود که آپلود تصاویر موز رسیده و نارس را نشان می‌دهند](../../../../../translated_images/image-upload-object-detector.77c7892c3093cb59b79018edecd678749a75d71a099bc8a2d2f2f76320f88a5b.fa.png) هنگام کشیدن جعبه‌های محدودکننده برای اشیا، آن‌ها را دقیقاً دور شیء بکشید. ممکن است کشیدن جعبه‌ها برای همه تصاویر زمان‌بر باشد، اما ابزار تشخیص می‌دهد که جعبه‌های محدودکننده کجا باید باشند، که این کار را سریع‌تر می‌کند. ![برچسب‌گذاری رب گوجه‌فرنگی](../../../../../translated_images/object-detector-tag-tomato-paste.f47c362fb0f0eb582f3bc68cf3855fb43a805106395358d41896a269c210b7b4.fa.png) > 💁 اگر بیش از 15 تصویر برای هر شیء دارید، می‌توانید پس از 15 تصویر آموزش دهید و از ویژگی **برچسب‌های پیشنهادی** استفاده کنید. این ویژگی از مدل آموزش‌دیده برای شناسایی اشیا در تصاویر بدون برچسب استفاده می‌کند. سپس می‌توانید اشیای شناسایی‌شده را تأیید یا رد کنید و جعبه‌های محدودکننده را دوباره بکشید. این کار می‌تواند زمان زیادی را صرفه‌جویی کند. 1. بخش [آموزش تشخیص‌دهنده در مستندات Microsoft](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#train-the-detector) را دنبال کنید تا تشخیص‌دهنده اشیا را بر روی تصاویر برچسب‌گذاری‌شده خود آموزش دهید. شما گزینه‌ای برای نوع آموزش خواهید داشت. **آموزش سریع** را انتخاب کنید. تشخیص‌دهنده اشیا شروع به آموزش می‌کند. چند دقیقه طول می‌کشد تا آموزش کامل شود. ## آزمایش تشخیص‌دهنده اشیا پس از آموزش تشخیص‌دهنده اشیا، می‌توانید آن را با تصاویر جدید برای شناسایی اشیا آزمایش کنید. ### وظیفه - آزمایش تشخیص‌دهنده اشیا 1. از دکمه **آزمایش سریع** برای آپلود تصاویر آزمایشی و تأیید شناسایی اشیا استفاده کنید. از تصاویری که قبلاً برای آموزش استفاده کرده‌اید استفاده نکنید. ![3 قوطی رب گوجه‌فرنگی شناسایی‌شده با احتمال‌های 38%، 35.5% و 34.6%](../../../../../translated_images/object-detector-detected-tomato-paste.52656fe87af4c37b4ee540526d63e73ed075da2e54a9a060aa528e0c562fb1b6.fa.png) 1. همه تصاویر آزمایشی که در دسترس دارید را امتحان کنید و احتمال‌ها را مشاهده کنید. ## بازآموزی تشخیص‌دهنده اشیا وقتی تشخیص‌دهنده اشیا را آزمایش می‌کنید، ممکن است نتایجی که انتظار دارید را ارائه ندهد، همان‌طور که در طبقه‌بندی تصویر در پروژه قبلی مشاهده کردید. می‌توانید تشخیص‌دهنده اشیا را با تصاویری که اشتباه شناسایی می‌کند بازآموزی کنید. هر بار که با استفاده از گزینه آزمایش سریع پیش‌بینی می‌کنید، تصویر و نتایج ذخیره می‌شوند. می‌توانید از این تصاویر برای بازآموزی مدل خود استفاده کنید. 1. از تب **پیش‌بینی‌ها** برای پیدا کردن تصاویری که برای آزمایش استفاده کرده‌اید استفاده کنید. 1. هر شناسایی دقیق را تأیید کنید، شناسایی‌های نادرست را حذف کنید و اشیای گمشده را اضافه کنید. 1. مدل را دوباره آموزش دهید و دوباره آزمایش کنید. --- ## 🚀 چالش چه اتفاقی می‌افتد اگر از تشخیص‌دهنده اشیا برای اقلام مشابه، مانند قوطی‌های رب گوجه‌فرنگی و گوجه‌فرنگی خردشده از یک برند استفاده کنید؟ اگر اقلام مشابهی دارید، با افزودن تصاویر آن‌ها به تشخیص‌دهنده اشیا آن را آزمایش کنید. ## آزمون پس از درس [آزمون پس از سخنرانی](https://black-meadow-040d15503.1.azurestaticapps.net/quiz/38) ## مرور و مطالعه شخصی * زمانی که آشکارساز اشیاء خود را آموزش دادید، مقادیر *Precision*، *Recall* و *mAP* را مشاهده کردید که مدل ایجاد شده را ارزیابی می‌کنند. درباره این مقادیر بیشتر بخوانید با استفاده از [بخش ارزیابی آشکارساز در راهنمای سریع ساخت آشکارساز اشیاء در مستندات مایکروسافت](https://docs.microsoft.com/azure/cognitive-services/custom-vision-service/get-started-build-detector?WT.mc_id=academic-17441-jabenn#evaluate-the-detector) * درباره آشکارسازی اشیاء بیشتر بخوانید در [صفحه آشکارسازی اشیاء در ویکی‌پدیا](https://wikipedia.org/wiki/Object_detection) ## تکلیف [مقایسه دامنه‌ها](assignment.md) **سلب مسئولیت**: این سند با استفاده از سرویس ترجمه هوش مصنوعی [Co-op Translator](https://github.com/Azure/co-op-translator) ترجمه شده است. در حالی که ما تلاش می‌کنیم دقت را حفظ کنیم، لطفاً توجه داشته باشید که ترجمه‌های خودکار ممکن است شامل خطاها یا نادرستی‌ها باشند. سند اصلی به زبان اصلی آن باید به عنوان منبع معتبر در نظر گرفته شود. برای اطلاعات حساس، توصیه می‌شود از ترجمه حرفه‌ای انسانی استفاده کنید. ما مسئولیتی در قبال سوء تفاهم‌ها یا تفسیرهای نادرست ناشی از استفاده از این ترجمه نداریم.