YOLO چیست ؟ این نسخه های جدید YOLO که به تازگی در سال 2020 منتشر شده اند، چه هستند؟ چه تفاوتی با یکدیگر دارند؟ از کدامیک باید استفاده کنیم؟ در ادامه با مجله هم رویش همراه باشید تا به توصیف و مقایسه نسخه های YOLO  بپردازیم.

فهرست مطالب

YOLO چیست ؟

تشخیص اشیا (Object detection)، امری مهم در حوزه بینایی کامپیوتر (computer vision) به حساب می آید که در طی آن، حضور یک یا چند شی، به همراه کلاس آنها و کادر محصورکننده شان(bounding boxes) پیش بینی می شود. اما YOLO چیست ؟ (YOLO (You Look Only Once ( “فقط یکبار نگاه می کنی”) یک مدل پیشرفته تشخیص اشیاست که می تواند فرایند تشخیص اشیا را به صورت بلادرنگ و با دقت خوبی انجام دهد.

 

YOLO-چیست-مقایسه نسخه-های-YOLO-هم-رویش
YOLO چیست ؟

 

تا اینجا پاسخ سوال YOLO چیست ؟ را دادیم و اما مقایسه نسخه های YOLO،  سه نسخه اول YOLO به ترتیب در سالهای 2016 ، 2017 و 2018 منتشر شده اند.  هرچند، در سال 2020، تنها در مدت چند ماه، سه نسخه اصلی از YOLO با نام های YOLO v4 ، YOLO v5 و PP-YOLO منتشر شده است.

انتشار YOLO v5 همچنین بحث و جدل هایی در بین جامعه یادگیری ماشین (machine learning) بوجود آورده است. به علاوه، این تعدد نسخه ها، باعث ایجاد معضل در ذهن افرادی شده است که قصد دارند پروژه های یادگیری ماشین خود را شروع کنند.

در این مقاله، در مورد علت تعدد نسخه های جدید YOLO بحث خواهیم کرد و در ضمن آن، با تاکید بر چگونگی پیدایش، تالیف، عملکرد و پیشرفت های عمده هر نسخه، به افراد کمک می کنیم تا مناسب ترین نسخه را برای پروژه خود انتخاب کنند.

 

هم رویش منتشر کرده است:

آموزش YOLO - تشخیص اشیا با پایتون در OpenCV

 

YOLO چگونه تکامل یافت

YOLO اولین بار در سال 2016 معرفی شد و به دلیل قابلیت تشخیص اشیا به صورت بلادرنگ و با دقت بهتر، به نقطه عطفی در تحقیقات مربوط به تشخیص اشیا تبدیل شد.

YOLO توسط «جوزف ردمون» (Joseph Redmon) ، فارغ التحصیل دانشگاه واشنگتن پیشنهاد شد. مقاله ای که در آن به توصیف YOLO پرداخته شده بود، در کنفرانس بینایی رایانه ای و تشخیص الگو (CVPR) در سال 2016، برنده جایزه OpenCV به انتخاب مردم شد.

در ویدیو زیر “جوزف ردمون” در خلال یک سخنرانی TED شخصا به شما خواهد گفت YOLO چیست، این ویدیو را با زیرنویس فارسی، به تمام هم رویشی ها تقدیم می نماییم.

 

نسخه های منتشرشده YOLO توسط «جوزف ردمون» :

  1. نسخه 1 :
    ” You Only Look Once: Unified, Real-Time Object Detection” : ” فقط یکبار نگاه می کنی : تشخیص اشیا بصورت یکپارچه و بلادرنگ” (2016)
  2. نسخه 2 :
    “YOLO9000: Better, Faster, Stronger” :” YOLO9000 : بهتر، سریع تر و قوی تر” (2017)
  3. نسخه 3 :
    “YOLOv3: An Incremental Improvement” : ” یک پیشرفت روزافزون ” (2018)

YOLO v2 می تواند تصاویر را با سرعت 40 تا 90 فریم در ثانیه پردازش کند در حالی که YOLOv3 این امکان را به ما می دهد که به سادگی، تنها با تغییر اندازه مدل و بدون نیاز به آموزش مجدد، به یک توازن و مصالحه میان سرعت و دقت دست پیدا کنیم.

 

مقایسه-نسخه-های-YOLO-هم-رویش
عملکرد YOLO روی دیتاست های COCO و VOC2007 (منبع: pjreddie.com)

 

پیاده سازی های اصلی YOLO

پیاده سازی اصلی YOLO که توسط «ردمون» صورت گرفته است، مبتنی بر دارک نت (Darknet) است.

دارک نت، یک فریمورک (framework) یا چارچوب متن باز برای شبکه عصبی است که به زبان C و CUDA نوشته شده است. دارک نت (Darknet) ، معماری زیربنایی و اساسی شبکه را تنظیم می کند و به عنوان فریمورک آموزش YOLO مورد استفاده قرار گرفته است.

این پیاده سازی که توسط خود «ردمون» معرفی شده است، سریع و به سادگی قابل نصب بوده و پردازشگرهای CPU و GPU را پشتیبانی می کند.

بعدها، یک ترجمه مبتنی بر کتابخانه  (PyTorch translation) برای YOLO v3 توسط «گلن جوچر» (Glenn Jocher) از شرکت Ultralytics معرفی شده است.

 

هم رویش منتشر کرده است:

آموزش تشخیص اشیای اختصاصی با YOLO

 

YOLO بعد از نسخه v3 به روز رسانی نداشت؟

YOLO به دلیل سرعت عالی و در کنار آن، دقت خوبی که داشت، به سرعت در بین جامعه بینایی رایانه ای مشهور شد. با این حال، در فوریه 2020، «جوزف ردمون»، خالق YOLO اعلام کرد که تحقیقات خود در زمینه بینایی رایانه ای را متوقف کرده است!

او همچنین اظهار داشت که این تصمیم را، به دلیل نگرانی های متعددی که در مورد تاثیر منفی احتمالی کارش وجود داشت، گرفته است.

 

اعلانیه «ردمون» (منبع: twitter.com)

 

ردمون در توئییت های خود در خصوص توقف کار بر روی YOLO، اینگونه اظهار نظر کرده بود :

جو ردمون:

من تحقیق در زمینه بینایی رایانه ای را متوقف کردم زیرا تاثیر کارم را دیدم. من این کار را دوست داشتم اما نادیده گرفتن برنامه های نظامی و نگرانی های مربوط به حریم خصوصی، در نهایت برایم غیرممکن شد.

جو ردمون:

این سخن که ” ما نباید در مورد تاثیرات اجتماعی کار خود فکر می کردیم چون این کار، سخت است و افراد دیگر می توانند این کار را برایمان انجام دهند”، واقعا استدلال بدی است.

 

این اظهار نظر، نقل محافل جامعه بینایی رایانه ای شد و یک سوال مهم بوجود آورد: آیا در آینده، YOLO به روزرسانی خواهد داشت؟

 

YOLO v4

کناره گیری «ردمون»، پایان راه YOLO نبود. و بحث ما در مورد مقایسه نسخه های YOLO از اینجا داغ تر خواهد شد، نسل چهارم YOLO در آوریل 2020 منتشر شد و به بخش عظیمی از جامعه بینایی رایانه ای، حیاتی دوباره بخشید.

این نسخه، در مقاله ای با عنوان “YOLOv4: Optimal Speed and Accuracy of Object Detection” (“یولو ورژن 4 : سرعت و دقت بهینه تشخیص اشیا”) توسط «الکسی بوچکوفسکی» (Alexey Bochkovskiy) و همکارانش، معرفی شده است.

علاوه بر این، کار «ردمون» توسط «الکسی» و به صورت یک فورک (fork) از مخزن اصلی (در گیت هاب) ادامه یافت. از YOLO v4، به عنوان سریع ترین و دقیق ترین مدل بلادرنگ برای تشخیص اشیا یاد می شود.

از این نقطه سوال دیگری در محافل جامعه بینایی رایانه ای مطرح شد. YOLO v4 یا YOLO v3  کدام را انتخاب نماییم؟

 

پیشرفت های اصلی در YOLO v4

YOLO v4 یا YOLO v3 ؟   اجازه بدهید اندکی بیشتر بررسی کنیم. YOLO v4 از bag of freebies) BoF) منطبق بر آخرین پیشرفت های علمی و چندین  bag of specials) BoS) تاثیر می گیرد.

BoF بدون افزایش مدت زمان استنباط (inference)، دقت مدل تشخیص دهنده را بهبود می بخشد و فقط هزینه آموزش را افزایش می دهد.

از طرف دیگر، BoS با وجود اینکه هزینه استنباط را اندکی افزایش می دهد، دقت تشخیص اشیا را به طور قابل توجهی بالا می برد.

 

عملکرد YOLO v4

YOLO v4 نیز بر اساس دارک نت ساخته شده است. مقدار دقت متوسط (AP) آن روی مجموعه داده dataset) COCO) برابر با 43.5 درصد و سرعت بلادرنگ آن روی TeslaV100 برابر با 65 فریم در ثانیه بدست آورده شده است که هم از نظر سرعت و هم از نظر دقت، سریع ترین و دقیق ترین مدل های تشخیص دهنده را پشت سر می گذارد. حالا نظر شما چیست؟ YOLO v4 یا YOLO v3 ؟

در مقایسه با YOLO v3، مقادیر دقت متوسط(AP) و فریم در ثانیه(FPS) به ترتیب 10 و 12 درصد افزایش داشته اند.

 

سرعت و دقت YOLO v4 (منبع: مقاله YOLO v4 paper)

 

واکنش «ردمون» به تالیف YOLO

در تاریخ 24 آوریل 2020، فایل readme موجود در اکانت اصلی گیت هاب «ردمون»، با پیوندهایی به مخزن فورک (fork) شده متعلق به «الکسی» و مقاله YOLO v4 بروزرسانی شد. «ردمون» همچنین توییت کرد:

 

 

ردمون در پاسخ به سوالی مبنی بر تایید یا عدم تایید YOLO v4، اینگونه نظر خود را بیان کرد :

پیامی به ردمون : … آیا تایید می کنید؟

ردمون :

اهمیتی ندارد که من چه فکری می کنم! در حال حاضر، الکسی، نسخه استاندارد دارک نت و yolo را دارد، یک مقدار کار روی آن انجام داده و همه از آن استفاده می کنند نه از مال من!

 

YOLO v5

پس از عرضه YOLO v4، تنها در طی دو ماه، نسخه دیگری از YOLO به نام YOLO v5 منتشر شده است!

حالا بحث مقایسه نسخه های YOLO داغ تر شده بود. این نسخه توسط «گلن جوچر»، که پیش از آن، به واسطه ساخت نسخه پیاده سازی شده YOLOv3 با کتابخانه محبوب PyTorch در بین جامعه بینایی رایانه ای شناخته شده بود، معرفی شده است.

در 9 ژانویه 2020، «جوچر» اظهار داشت که نسخه YOLO v5 که توسط وی پیاده سازی شده است، به صورت عمومی منتشر شده و استفاده از آن در پروژه های جدید توصیه می شود. با این حال، هنگام عرضه اولیه این نسخه جدید، مقاله ای همراه با آن چاپ نکرد.

 

پیشرفت های اصلی در YOLO v5

YOLO v5 با تمامی نسخه های پیش از خود تفاوت دارد؛ زیرا به جای اینکه فورکی (fork) از دارک نت اصلی باشد، مبتنی بر کتابخانه PyTorch پیاده سازی شده است.

در YOLO v5نیز همانند YOLO v4 ، قسمت ستون فقرات (backbone) [در معماری شبکه] از نوع CSP و قسمت گردن (neck) از نوع PA-NET است. پیشرفت های عمده این نسخه، عبارتند از داده افزایی موزاییکی(mosaic data augmentation) و یادگیری خودکار کادرهای محصور کننده.

اکنون در مناقشه مقایسه نسخه های YOLO،  به پرسش پیشین یعنی YOLO v4 یا YOLO v3 ؟ گزینه جدیدی اضافه شده بود. YOLO v5.

 

بحث و مناقشه در جامعه یادگیری ماشین

انتشار YOLOv5 توجه بسیاری را به خود جلب کرده و باعث شکل گیری بحث و گفتگوهای داغی در بین جامعه یادگیری ماشین در مقام مقایسه نسخه های YOLO شده است.

دلیل عمده آن، حقایقی بود که پیرامون YOLOv5 و در مقاله ای توسط تیم «روبوفلو» (Roboflow) منتشر شده بود.

مقاله مورد بحث، که با عنوان “YOLOv5 is Here”  و در 10 ژوئن 2020 در وبلاگ تیم «روبوفلو» منتشر شده است، چندین حقیقت مهم را بیان می کند. در ادامه، چند نقل قول از همان مقاله توسط «جوزف نلسون» ( Joseph Nelson) و «ژاکوب سولاوتز» ( Jacob Solawetz) آورده شده است:

 

” با اجرای یک Tesla P100، شاهد زمان استنباط تا 0.007 ثانیه در هر تصویر بودیم، یعنی 140 فریم در ثانیه! در مقابل، YOLO v4 پس از تبدیل به همان پیاده سازی بر مبنای کتابخانه pytorch توسط شرکتUltralytics ، به سرعت 50 فریم در ثانیه دست یافت.”

” YOLO v5 کوچک است. به طور خاص، حجم یک فایل (با پسوند) weights برای YOLO v5 ، 27 مگابایت است. فایل weights ما برای YOLO v4 ( با معماری دارک نت) 244 مگابایت است. این یعنی YOLO v5 تقریبا 90 درصد کوچکتر از YOLO v4 است. “

 

بنابراین، گفته ها حاکی از این است که YOLO v5 نسبت به YOLO v4 بسیار سریع و سبک است، در عین این که دقتش با معیار YOLO v4 برابری می کند.

اما سوال اصلی که توسط جامعه مطرح شد این بود: آیا این معیارها، دقیق و قابل تکرار (قابل تولید مجدد) هستند؟

پاسخ ها :

«الکسی»، نویسنده YOLO v4، از اینکه چگونه این همه مقایسه صورت گرفته است، خوشحال نبود. او به چندین سوال مطرح شده در گیت هاب پاسخ داده و به نارضایتی از آن مقایسه ها، خصوصا در مورد اندازه دسته (batch size) نیز اشاره کرده است.

تیم «روبوفلو» و توسعه دهندگان YOLO v5 نیز پاسخ و واکنش مناسبی به سوالات انجمن the hacker news داشتند و با انتشار مقاله ای تحت عنوان “Responding to the Controversy about YOLOv5” در وبلاگ «روبوفلو» در 14 ژوئن، به توضیح نحوه مقایسه این دو نسخه پرداختند.

 

PP-YOLO

PP-YOLO در ژوئیه سال 2020، بواسطه مقاله ای با عنوان “PP-YOLO: An Effective and Efficient Implementation of Object Detector” (” یولو-PP : پیاده سازی موثر و کارآمد مدل تشخیص دهنده اشیا”) که توسط ژیانگ لانگ (Xiang Long) و همکاران او نوشته شده است، معرفی شد.

این مدل، مبتنی بر Parallel Distributed Deep Learning) paddlepaddle : یادگیری عمیق با توزیع مساوی ) ، یک بستر متن باز یادگیری عمیق است که در اصل توسط دانشمندان «بایدو» (Baidu scientists) توسعه داده شده است.

گویا سرگیجه ادامه داشت. در مناقشه و بحث و گفتگو مقایسه نسخه های YOLO،  به پرسش  YOLO v4 یا YOLO v3 یا YOLO v5؟ PP-YOLO اضافه شده بود. اما در این میان نکته ای وجود دارد که در ادامه به آن می پردازیم.

 

آیا PP-YOLO یک مدل بدیع و تازه است؟

PP-YOLO بر مبنای مدل YOLO v3 است. مقاله مورد اشاره، به وضوح بیان می کند که هدف PP-YOLO، پیاده سازی یک مدل تشخیص دهنده اشیا با اثربخشی و کارایی نسبتا متعادل است که می تواند مستقیما در کاربردهای عملی مورد استفاده قرار گیرد، نه ارائه یک مدل تشخیص جدید.

تغییرات قابل توجه این نسخه، عبارتند از: جایگزینی قسمت ستون فقرات از نوع دارک نت 53 (Darknet53) مربوط به YOLO v3 با یک ستون فقرات از نوع ResNet و افزایش اندازه دسته آموزش از 64 به 192 (به صورت دسته های کوچک با اندازه 24 روی 8 پردازشگر GPU).

 

عملکرد PP-YOLO

طبق همان مقاله، PP-YOLO می تواند به میانگین متوسط دقت 45.2 درصد روی مجموعه داده COCO دست پیدا کند که از مقدار 43.5 درصد مربوط به YOLO v4 بیشتر است.

هنگامی که آزمایش، روی یک V100 با اندازه دسته ای برابر با 1 صورت گیرد، PP-YOLO می تواند به سرعت استنباط 72.9 فریم در ثانیه دست یابد که این نیز بالاتر از مقدار 65 فریم در ثانیه مربوط به YOLO v4 است.

نویسندگان PP-YOLO حدس می زنند که بهینه سازی بهتر TensorRT روی مدل ResNet نسبت به دارک نت(Darknet)، دلیل اصلی این بهبود عملکرد بوده است.

سرعت و دقت PP-YOLO (منبع: PP-YOLO repo)

 

سخن پایانی در خصوص مقایسه نسخه های YOLO

در این مقاله، در مقام مقایسه نسخه های YOLO، ضمن تاکید بر پیشرفت های اساسی و عملکرد جدیدترین نسخه های YOLO، به بحث درباره نقاط عطف مهم در مسیر تکامل YOLO و ماجرایی که در پس تعدد نسخه های منتشر شده YOLO در سال 2020 وجود داشت، پرداختیم.

به طور خلاصه، YOLO v4 جدیدترین نسخه پیاده سازی شده مبتنی بر دارک نت (Darknet) برای این مدل پیشرفته ی تشخیص دهنده اشیاست.همچنین برای این نسخه، مقاله ای توسط «الکسی بوچوفسکی» منتشر شده و معیارهایی در آن ارائه شده است.

از طرف دیگر، YOLO v5 پیاده سازی جدیدی از کتابخانه PyTorch است که توسط شرکت Ultralytics صورت گرفته است و آنگونه که گفته می شود، زمانی که با اندازه دسته بزرگتری آزمایش شود، سرعت استنباط بالاتری نسبت به بسیاری از مدل های تشخیص دهنده دارد. با این وجود، در زمان نگارش این مقاله، هیچ مقاله بررسی (داوری) شده ای برای YOLO v5 منتشر نشده است.

PP-YOLO نسخه جدید دیگری از YOLO است که بر اساس یک چارچوب یادگیری عمیق به نام paddlepaddle ساخته شده است و مدل YOLO v3 را برای دستیابی به تعادلی بهتر میان اثربخشی و کارایی بهبود می بخشد.

حقایق و مطالبی نظیر معماری، پیشرفت ها و عملکرد هر نسخه، که درباره شان صحبت کردیم، برای انتخاب مناسب ترین نسخه YOLO برای یک پروژه خاص، بسیار مفید و کارآمد خواهد بود.

به یادگیری ادامه دهید!

 

مراجع :

  • وبسایت رسمی «ردمون»
  • مقالات منتشر شده از نسخه های YOLO
  • مخازن گیت هاب برای YOLO اصلی(اورجینال) توسط «ردمون»، YOLO v4 توسط «الکسی»، YOLO v5 توسط «جوچر» و PP-YOLO توسط «ژیانگ لانگ»
  • پست هایی در وبلاگ «روبوفلو» با عناوین ” YOLOv5 اینجاست” و “پاسخ به مناقشه ایجاد شده پیرامون YOLOv5” توسط «جوزف نلسون» و «ژاکوب سولاوتز»
  • مقاله ” بازگشت YOLO! نسخه 4 دقت و سرعت بهبود یافته را به رخ می کشد” توسط «هکات» و منتشر شده روی وبسایت syncedreview.com

 

منبع :

YOLO v4 or YOLO v5 or PP-YOLO?

 

دوره های آموزشی مرتبط

نویسنده :

سئو و ویراستاری :

زیبا عامریان هستم فارغ‌التحصیل مهندسی کامپیوتر و متخصص سئو و بازاریابی محتوا. در تیم اجرایی هم‌رویش مدیریت واحد محتوا رو به عهده دارم و امیدوارم که تونسته باشم تاثیر خوبی روی سئو و کیفیت خوانش محتوای هم‌رویش بگذارم.

زیبا عامریان هستم فارغ‌التحصیل مهندسی کامپیوتر و متخصص سئو و بازاریابی محتوا. در تیم اجرایی هم‌رویش مدیریت واحد محتوا رو به عهده دارم و امیدوارم که تونسته باشم تاثیر خوبی روی سئو و کیفیت خوانش محتوای هم‌رویش بگذارم.

5 دیدگاه برای “مقایسه نسخه های YOLO (مقایسه YOLO v3 و YOLO v4 و YOLO v5 و PP-YOLO )

  1. امیر حسین گفته:

    ضمن تشکر چرا وقتی می خوام در roboflow اکانت جدید بسازم با خطای a network error has occurred روبرو میشم

  2. Hamid Reza Charoosaei گفته:

    خدا قوت به جناب آقای مهندس محمدحسین ماجدی نیا و همه دست اندر کاران هم رویش
    مطلب بسیار جالب و به صورت خیلی مفهومی و اربردی توضیح داده شده
    با سپاس فراوان
    حمیدرضا چاروسایی از آبادان

    • روابط عمومی هم رویش گفته:

      سلام. از حسن توجه شما سپاسگذاریم. امیدواریم مفید واقع شده باشد

    • روابط عمومی هم رویش گفته:

      سلام. از حسن توجه شما سپاسگذاریم. امیدواریم مفید واقع شده باشد

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Search

مطالب مرتبط

دسته بندی مطالب