YOLO-NAS اوج مدل های تشخیص اشیا در سری YOLO است. اما چرا آن را بهترین می دانند؟
پس از YOLOv8، هنوز یک مدل جدید و پیشرفته تشخیص اشیا، YOLO-NAS وجود دارد. این یک الگوریتم تشخیص شی است که توسط Deci AI برای مقابله با محدودیت های مدل های قبلی YOLO (شما فقط یک بار نگاه می کنید) توسعه یافته است.
این مدل از AutoNAC، یک موتور جستجوی معماری عصبی ساخته شده است. این مدل از سرعت و عملکرد مدلهای SOTA پیشی میگیرد که جهشی بزرگ در تشخیص اشیا با بهبود مبادلات پشتیبانی دقت-تأخیر و کوانتیزاسیون ارائه میدهد.
این مقاله به نقاط قوت و ویژگیهای YOLO-NAS میپردازد و به بررسی این موضوع میپردازد که چرا این بهترین مدل تشخیص شی در سری YOLO است.
درک نحوه عملکرد YOLO-NAS
Deci’s AutoNAC (ساخت معماری خودکار عصبی) معماری YOLO-NAS را ایجاد می کند. AutoNAC یک فرآیند یکپارچه است که عملکرد شبکه های عصبی عمیق موجود را افزایش می دهد.
خط لوله AutoNAC یک شبکه عصبی عمیق آموزش دیده توسط کاربر را به عنوان ورودی، مجموعه داده و دسترسی به یک سیستم استنتاج می گیرد. سپس شبکه عصبی عمیق آموزش دیده توسط کاربر با استفاده از خط لوله مورد بازطراحی قرار می گیرد. سپس یک معماری بهینه با تأخیر کمتر بدون به خطر انداختن دقت به دست می آید.
YOLO-NAS از RepVGG استفاده می کند. RepVGG آن را برای بهینه سازی پس از آموزش با پارامترسازی مجدد یا Quantization پس از آموزش در دسترس قرار می دهد. این یک نوع معماری شبکه عصبی مبتنی بر VGG است. از تکنیک های منظم سازی استفاده می کند که برای افزایش توانایی تعمیم مدل های یادگیری عمیق طراحی شده اند.
طراحی معماری در سرعت و حافظه کارآمدتر است. RepVGG تحت آموزش با استفاده از معماری چند شاخه ای برای دستیابی به استنتاج سریعتر قرار می گیرد. سپس با استفاده از پارامترسازی مجدد به یک شاخه تبدیل می شود.
این ویژگی YOLO-NAS را برای استقرار تولید بسیار مفید می کند. زیرا امکان آموزش و بهینه سازی مدل با دقت کامل برای سرعت استنتاج و استفاده از حافظه وجود دارد.
ویژگی های کلیدی YOLO-NAS
ویژگی های کلیدی YOLO-NAS شامل موارد زیر است:
- آموزش کوانتیزاسیون آگاه: این مدل از QSP و QCI (ماژولهای آگاه از کوانتیشن) استفاده میکند تا با ترکیب پارامترسازی مجدد کوانتیزهسازی 8 بیتی، از دست دادن دقت در طول کمیسازی پس از آموزش را کاهش دهد.
- طراحی معماری خودکار: AutoNAC، فناوری NAS اختصاصی Deci به دنبال یک معماری مدل بهینه میگردد که معماریهای مدلهای اساسی YOLO را برای رسیدن به یک مدل بهینه ادغام میکند.
- تکنیک کوانتیزاسیون ترکیبی: روش کوانتیزاسیون استاندارد کل مدل را تحت تأثیر قرار می دهد. در مقابل، تکنیک کوانتیزاسیون ترکیبی، بخشی از یک مدل را کوانتیزه میکند تا تأخیر و دقت مدل را متعادل کند.
- از رویکردهای منحصر به فرد برای آماده سازی مدل برای آموزش با استفاده از داده های برچسب گذاری شده خودکار استفاده کنید. سپس مدل از پیشبینیهای خود یاد میگیرد و به مقادیر زیادی داده دسترسی پیدا میکند.
تجزیه و تحلیل مقایسه ای: YOLO-NAS در مقابل سایر مدل های YOLO
در زیر مقایسه ای بین مدل های مختلف سری YOLO آورده شده است.
YOLO-NAS بهتر از مدلهای تشخیص اشیا از قبل موجود است، اما معایب خود را دارد. در اینجا لیستی از مزایا و معایب YOLO-NAS آمده است:
طرفداران
- منبع باز است.
- 10-20٪ سریعتر از مدل های YOLO از قبل موجود است.
- در مقایسه با مدل های قبلی YOLO دقیق تر است.
- از معماری بهتری یعنی AutoNAC استفاده می کند. این یک رکورد جدید در تشخیص اشیا ایجاد می کند و بهترین دقت و عملکرد مبادله تاخیر را ارائه می دهد.
- پشتیبانی یکپارچه از موتورهای استنتاج مانند NVIDIA. این ویژگی آن را به یک مدل آماده تولید تبدیل می کند.
- کارایی حافظه بهتر و افزایش سرعت استنتاج دارد.
منفی
- این فناوری هنوز پایدار نیست زیرا این فناوری هنوز جدید است و به طور گسترده در تولید استفاده نشده است.
اجرای YOLO-NAS
برای نوشتن و اجرای کدهای این پیاده سازی از Google Colab استفاده خواهید کرد. یک جایگزین برای Google Colab ایجاد یک محیط مجازی و استفاده از یک IDE در دستگاه محلی شما است.
مدل بسیار منابع فشرده است. قبل از اجرای آن بر روی دستگاه خود مطمئن شوید که حداقل 8 گیگابایت رم دارید. هرچه اندازه ویدیو بزرگتر باشد، حافظه بیشتری مصرف می کند.
نصب Dependencies
با استفاده از دستور زیر، وابستگی YOLO-NAS، super-gradients را نصب کنید:
pip install super-gradients==3.1.2
پس از نصب موفقیت آمیز، اکنون می توانید مدل YOLO-NAS را آموزش دهید.
آموزش مدل
برای آموزش مدل، بلوک کد زیر را اجرا کنید:
from super_gradients.training import models
yolo_nas_l = models.get("yolo_nas_l", pretrained_weights="coco")
شما در حال وارد کردن مدل آموزشی از کتابخانه SuperGradients نصب شده در این کد هستید. سپس از وزن های مدل از پیش آموزش دیده از مجموعه داده COCO استفاده می کنید.
استنتاج مدل
استنتاج مدل کاربردهای بالقوه ای برای تشخیص، طبقه بندی و وظایف تقسیم بندی تصویر دارد.
در این مورد، شما بر روی وظیفه تشخیص شی برای فیلم ها و تصاویر تمرکز خواهید کرد. برای شناسایی یک شی در یک تصویر، بلوک کد زیر را اجرا کنید:
url = "img_path"
yolo_nas_l.predict(url, conf=0.25).show()
مطمئن شوید که از مسیر دقیق تصویر خود استفاده می کنید. در این صورت تصویر را در محیط Google Colab آپلود کنید سپس مسیر تصویر را کپی کنید.
خروجی مورد انتظار:
برای شناسایی اشیاء در یک ویدیو، بلوک کد زیر را اجرا کنید:
import torch
input_video_path = "path_to_video"
output_video_path = "detected.mp4"
device = 'cuda' if torch.cuda.is_available() else "cpu"
yolo_nas_l.to(device).predict(input_video_path).save(output_video_path)
مانند دادههای تصویر، ویدیویی را که میخواهید اشیاء آن شناسایی شوند را در محیط Google Colab آپلود کنید و مسیر را در متغیر ویدیو کپی کنید. ویدیوی پیشبینیشده با استفاده از نام detected.mp4 از محیط Google Colab قابل دسترسی خواهد بود. قبل از پایان جلسه، ویدیو را در دستگاه محلی خود دانلود کنید.
خروجی مورد انتظار:
YOLO-NAS همچنین از تنظیم دقیق مدل و آموزش داده های سفارشی پشتیبانی می کند. مستندات در نوت بوک استارت تنظیم دقیق Deci موجود است.
کاربردهای دنیای واقعی YOLO-NAS
کد منبع YOLO-NAS تحت مجوز Apache 2.0 قابل دسترسی است که برای استفاده غیرتجاری قابل دسترسی است. برای استفاده تجاری، مدل باید از ابتدا تحت آموزش مجدد قرار گیرد تا وزن های سفارشی را بدست آورد.
این یک مدل همه کاره است که کاربرد آن در چندین زمینه امکان پذیر است، مانند:
وسایل نقلیه خودمختار و رباتیک
YOLO-NAS میتواند قابلیتهای ادراک وسایل نقلیه خودران را بهبود بخشد و آنها را قادر میسازد تا اشیا را سریعتر و دقیقتر در زمان واقعی شناسایی و ردیابی کنند. این توانایی به اطمینان از ایمنی جاده و تجربه رانندگی صاف کمک می کند.
سیستم های نظارتی و امنیتی
این مدل میتواند تشخیص سریع، دقیق و در زمان واقعی اشیاء را برای سیستمهای نظارتی و امنیتی ارائه دهد که به شناسایی تهدیدات بالقوه یا فعالیتهای مشکوک کمک میکند و در نتیجه سیستمهای امنیتی بهتری ایجاد میکند.
مدیریت خرده فروشی و موجودی
این مدل میتواند قابلیتهای تشخیص سریع و دقیق اشیاء را ارائه دهد که امکان مدیریت خودکار موجودی، ردیابی انبار و بهینهسازی قفسه را فراهم میکند. این مدل به کاهش هزینه های عملیاتی و افزایش سود کمک می کند.
مراقبت های بهداشتی و تصویربرداری پزشکی
در مراقبت های بهداشتی، YOLO-NAS قادر است به تشخیص و تجزیه و تحلیل کارآمد ناهنجاری های بیماری یا مناطق خاص مورد علاقه کمک کند. این مدل می تواند به پزشکان در تشخیص دقیق بیماری ها و نظارت بر بیماران کمک کند و در نتیجه بخش مراقبت های بهداشتی را بهبود بخشد.
غذای آماده YOLO-NAS
YOLO-NAS یک مدل جدید تشخیص اشیاء است که پیشگام روش جدیدی برای انجام تشخیص اشیا است. از مدل های SOTA بهتر است. عملکرد آن در تشخیص اشیا یک جهش بزرگ برای پروژه های بینایی کامپیوتری است.