با YOLO-NAS آشنا شوید: مدل جدید تشخیص شیء از خانواده YOLO که نسخههای YOLOv6 & YOLOv8 را کنار میزند.
توسعه معماری جدید مبتنی بر YOLO با پرداختن به محدودیتهای موجود و ترکیب پیشرفتهای اخیر، می تواند تعریف جدیدی از پیشرفتهترین تشخیص اشیاء در زمینه یادگیری عمیق ارائه کند.
شرکت Deci.ai فعال در زمینه یادگیری عمیق اخیرا YOLO-NAS را راهاندازی کرده است. این مدل یادگیری عمیق قابلیتهای عالی تشخیص اشیاء در زمان واقعی و آماده کارایی بالا برای تولید را ارائه می کند. این سری مدلهای YOLO-NAS با استفاده از تکنولوژی Deci’s AutoNAC™ NAS طراحی شده اند و عملکرد بهتری نسبت به مدلهای مانند YOLOv7 و YOLOv8 و همچنین YOLOv6-v3.0 که اخیرا ارائه شده، داشته است.
فهرست محتوا:
- YOLO-NAS چیست؟
- برخی شاخصهای رویکرد معماری در YOLO-NAS
- خلاصه ای از آموزش مدلهای YOLO-NAS
- چگونه از YOLO-NAS برای استنتاج (Inference) استفاده شود؟
- نتیجهگیری
- منابع
YOLO-NAS چیست؟
YOLO-NAS یکی از پیشرفته ترین مدل جدید تشخیص اشیا بصورت بلادرنگ است که عملکرد بهتری از لحاظ mAP (میانگین دقت متوسط) و میزان وقفه استنتاج، نسبت به مدلهای YOLOv6 & YOLOv8 دارد.
راست: YOLO-NAS L|| وسط: YOLO-NAS M || چپ : YOLO-NAS S
توسعه معماری جدید مبتنی بر YOLO با پرداختن به محدودیتهای موجود و ترکیب پیشرفتهای اخیر، می تواند تعریف جدیدی از آخرین پیشرفتهای تشخیص اشیاء در زمینه یادگیری عمیق ارائه کند.
YOLO-NAS یک مدل پایه برای تشخیص شی از طرف Deci.ai. این تیم پیشرفتهای اخیر در حوزه یادگیری عمیق را با پژوهش و بهبود برخی شاخصهای محدودکننده کلیدی مدل های متدول YOLO، همانند پشتیبانی کوانتیزاسیون ناکافی و مبادله ناکافی دقت و تأخیر کنار هم قرار دادند. این تیم با موفقیت خود توانست از مرزهای قابلیتهای تشخیص شی بصورت بلادرنگ عبور کنند.
” معماری جدید مبتنی بر YOLO را متصور شوید که می تواند توانایی شما را در تشخیص اشیاء کوچک، ارتقاء دقت محلیسازی، و افزایش نرخ عملکرد در هر محاسبه، مدل را برای برنامههای کاربردی پیشرفته با عملکرد بلادرنگ، دسترس پذیرتر می کند… و این دقیقا همان کاری است که ما اینجا در Deci انجام دادهایم “
- تیم YOLO-NAS در Deci.ai
با پرداختن به محدودیتهای موجود و ترکیب پیشرفتهای اخیر در حوزه یادگیری عمیق، در اینجا 4 مزیت کلیدی YOLO-NAS ارائه شده است:
✅ YOLO-NAS با دقت و سرعت بی نظیری اجرا می شود و از دیگر مدل های شناخته شده عملکرد بهتری ارائه می کند (نمودار زیر را ببینید).
مدل های جدید رهانش شده عبارتند از:
به طور خاص برای مصارف بخش تولیدی طراحی شده است، YOLO-NAS کاملا سازگار با موتورهای استنتاج با کارایی بالا همچون NVIDIA® TensorRT™ و از INT8 کوانتیزاسیون ( در پردازش سیگنال) برای عملکرد بی نظیر در زمان اجرا پشتیبانی می کند.
- تیم ai
در زمان نگارش این مقاله، سه مدل YOLO-NAS رهانش شده است که می توان از آنها در دقتهای FP32، FP16 و INT8 استفاده کرد.
میانگین دقت متوسط (mAP) یک فاکتور عملکرد برای ارزیابی مدلهای یادگیری ماشینی است.
در حال حاضر، معماریهای مدل YOLO-NAS تحت مجوز متن باز (open-source) ارائه شده است، با این وجود که اوزان از پیش آموزش دیده، برای استفاده مقاصد تحقیقاتی (غیرتجاری) در کتابخانه Deci’s SuperGradients در دسترس می باشد.
“NAS” در YOLO-NAS مخفف چیست؟
“NAS” مخفف “Neural Architecture Search“با معنی جستجوی معماری عصبی است، یک روشی برای خودکار کردن فرآیند طراحی معماری های شبکه عصبی استفاده می شود. به جای تکیه بر طراحی دستی و درک مستقیم انسان، NAS از الگوریتم های بهینه سازی برای یافتن مناسبترین معماری برای یک کار معین استفاده می کند. هدف NAS دستیابی به یک معماری است که بهترین مبادلات بین دقت، پیچیدگی محاسباتی و اندازه مدل را ارائه کند.
برخی شاخصهای رویکرد معماری در YOLO-NAS
نقاط قرمز از چپ به راست نماینگر مدل های کوچک، متوسط و بزرگ است.
- معماری مدلهای YOLO-NAS با استفاده از فناوری NAS متعلق به AutoNAC ،Deci. ، «پیدا شد». این موتور برای تعیین بهینه اندازهها و ساختار مراحل، شامل نوع بلوک، تعداد بلوک ها و تعداد کانال ها در هر مرحله، استفاده می شد.
- بطور کلی، امکان10 پیکربندی معماری در محیط جستجوی NAS موجود بود. طیف گسترده و محدودیتهای جمعآوری داده و سخت افزار، موتور AutoNAC همه بخشهای موجود در بسته استنتاج را در نظر می گیرد، اعم از کامپایلرها و کوانتیزاسیون، و در ناحیه ی با نام “مرز کارآمد” برای دستیابی به بهترین مدلها پراخته شده است. هر سه مدل YOLO-NAS در این محیط از فضای جستجو یافت شد.
- در طول فرآیند NAS، بلوکهای Quantization-Aware RepVGG (QA-RepVGG) در معماری مدل گنجانده شدهاند، تضمین سازگاری مدل با کوانتیزاسیون پسا آموزش (PTQ).
- محققان همچنین از روش کوانتیزاسیون هیبریدی استفاده می کنند که بطور انتخابی لایههای خاص را برای بهینه سازی دقت و مبادله تاخیر در حالی که عملکرد کلی محفوظ باشد.
- مدلهای YOLO-NAS همچنین از مکانیسمهای توجه و باز پرامایش زمان استنتاج برای بهبود قابلیتهای تشخیص اشیا استفاده میکنند.
خلاصه ای از آموزش مدلهای YOLO-NAS
در زمان نگارش این مقاله، جزئیات کامل برنامه آموزشی ارائه نشده است، و با دستیابی به اطلاعات جدید، این بخش از مقاله با استفاده از مقالات معتبر به روزرسانی خواهد شد، با این وجود که این دوره های آموزشی منسجم و با هزینه های بالا ارائه می شود.
- این مدلها از روی مجموعه دادههای شاخص شناخته شده Object365 پیش آموزش لازم صورت گرفته است. مجموعه داده شامل 2 میلیون تصویر و 365 دسته بندی است
- یک دوره پیش آموزشی بعد از “برچسب کاذب”، 123 هزار COCO تصاویر بدون برچسب
- تقطیر دانش (KD) و اتلاف کانونی توزیع (DFL) نیز برای بهبود فرآیند آموزش مدلهای YOLO-NAS آورده شد.
” معماری YOLO-NAS و اوزان پیش آموزش نتایج جدیدی از تاخیر پایین استنتاج و نقطه شروع عالی برای تنظیم دقیق وظایف پایین دستی تعریف می کند.”
تیم Deci.ai
پس از پیش آموزش مدلها، به عنوان یک آزمایش، تیم تصمیم خود را جهت سنجش عملکرد روی مجموعه داده RoboFlow100 متعلق به RoboFlow به منظور نمایش قابلیت تشخیص اشیاء در شرایط پیچیده را گرفتند. لازم به ذکر است که YOLO-NAS با اختلاف بالا از سایر نسخههای YOLO عملکرد خوبی را به نمایش گذاشت.
چگونه از YOLO-NAS برای استنتاج (Inference) استفاده شود؟
مدلهای YOLO-NAS با SuperGradients در ارتباط کامل و در دسترس می باشد، کتابخانه آموزش بینایی کامپیوتری مبتنی بر PyTorch Deci، بصورت متن باز (open-source).
برای استفاده از مدلهای YOLO-NAS ، ابتدا لازم است، چند کتابخانه را نصب کنید. در محیط پروژه جدید(پایتون)، دستورات نصب را اجرا کنید:
pip install -qU super-gradients imutils pip install -qU roboflow pip install -qU pytube
بسته “super-gradients” تمام موارد لازم مانند PyTorch و TorchVision را با پشتیبانی Cuda و سایر کتابخانه های ضروری را نصب می کند.
استنتاج (Inference) تشخیص شی
برای شروع استنتاج، ابتدا دو بسته مهم را وارد کنید:
import torch from super_gradients.training import models
اجرای استنتاج بر روی تصاویر بسیار آسان است. دستور زیر مدل کوچک YOLO-NAS S را بارگذاری می کند.
device = torch.device("cuda:0") if torch.cuda.is_available() else torch.device("cpu") model = models.get("yolo_nas_s", pretrained_weights="coco").to(device) # "yolo_nas_m" # "yolo_nas_l"
در حال آزمودن مدل جهت تشخیص شی کلاسیک در تصویر هستیم. برای انجام استنتاج باید متد .predict(…) مدل را فراخوانی کنیم.
out = model.predict("test_1.jpg", conf=0.6)
در نهایت، برای نمایش خروجی ها، به سادگی این متد را اجرا کنید: out.show()
برای ذخیره تصویر مورد پیش بینی ، فراخوانی کنید:
out.save("save_folder_path")
به طور مشابه، برای اجرای استنتاج بر روی ویدیوها، دستورات API یکسانی را شامل می شود. فقط این بار از بزرگترین مدل در دسترس استفاده خواهیم کرد.
model = models.get("yolo_nas_l", pretrained_weights="coco").to(device) model.predict("/test_videos/kitchen_small_items.mp4").save("kitchen_small_items_detections.mp4")
در لایه آزاد GPU Colab T4، این استنتاج با سرعت ~22 تکرار در ثانیه، یعنی 22 FPS انجام شد. پردازش کامل ویدیوی 30 ثانیه ای حدود 35 ثانیه طول کشید.
در اینجا چند نتیجه استنتاج ویدیویی آورده شده است (ضبط شده توسط پهپاد):
YOLO-NAS S
YOLO-NAS M
مدل کوچک “S” 15 ثانیه طول کشید، در حالی که مدل متوسط “M” 22 ثانیه در T4 طول کشید.
لطفا توجه داشته باشید، در این قسمت از مقایسه دقیق مدل ها در برابر YOLOv8 and YOLOv6 پرهیز کردیم، زیرا اگرچه مدلهای YOLO-NAS از جهت تعدد بهتر هستند اما اختلاف کمتری دارد. هرگونه مقایسه ای صورت بگیرد بایستی حداقل از نظر تاثیر باشد.
مقایسه دقیق زمانی صورت می گیرد که در پست بعدی در مورد سری های YOLO-NAS مطالبی ارائه شود.
این مدلها را روی تکالیف سفارشی آموزش دهیم سپس سهولت و کیفیت خروجی را در مقابل مسائل بزرگ حاضر به ثبت به رسانیم.
YOLO-NAS-L
YOLOv8-L
هنگام قیاس سرعت استنتاج، به عنوان مثال، پیش پردازش + گذر رو به جلو + پسا پردازش. مدل FP32 YOLO-NAS L 24 ثانیه طول کشید در حالی که YOLOv8-L حدود 12 ثانیه طول کشید تا فرآیند پردازش ویدیو را به اتمام برساند. پیشبینیهای صورت گرفته هر دو مدل بسیار شبیه به هم هستند و نمی توان تنها با مشاهده ویدیوها متوجه شد.
لطفاً دقت کنید، تفاوت در طول ویدیو به این جهت است که YOLOv8-L ویدیو را با سرعت 29 FPS رمزگذاری می کند در حالی که YOLO-NAS L آن را با سرعت 29.97 FPS (حقیقی) رمزگذاری می کند.
همه معیارهای YOLOv6 3.0، YOLOv8 و YOLO-NAS در جدول زیر آورده شده است:
همین، این همه آنچه ما میخواستیم در این معرفی مختصر از آخرین پیشرفتهای منتشر شده YOLO-NAS در حال حاضر ارائه کنیم.
نتیجه گیری
بدون شک چشم انداز پیشرفتهای تشخیص اشیاء (SOTA) به طور پیوسته در حال تحول و ترقی است که این موضوع توسط محققان در زمینه بینایی کامپیوتر و یادگیری عمیق هدایت می شود. در حال حاضر، YOLOv6 و YOLOv8 بهعنوان بهترین مدلهای تشخیص اشیاء بلادرنگ در دسترس شناخته شدهاند. اخیراً، یک مدل رقیب جدید، “YOLO-NAS” توسط Deci.ai از نظر ارائه قابلیتهای بهتر تشخیص اشیا بلادرنگ (real-time)، جایگاه اول را به خود اختصاص داده است.
در این پست، آخرین نسخه از مدلهای YOLO یعنی YOLO-NAS را بررسی کردیم. بطور خلاصه به جزئیات کاوش، آموزش و عملکرد آنها پرداخته شد. علاوه بر این، روی چند ویدیو استنتاج را اجرا کردیم.
به زودی پست های جدیدی را با اهداف آموزش سفارشی و استقرار این مدلها ارائه خواهیم داد.
استنتاج چیست؟ استنتاج در هوش مصنوعی به فرآیند استدلال و تصمیم گیری بر اساس اطلاعات یا داده های موجود اشاره دارد.
دیدگاهتان را بنویسید