چشم انداز کامپیوتری -سفری از CNN به Mask R -CNN و YOLO -Part 2

چشم انداز کامپیوتری -سفری از CNN به Mask R -CNN و YOLO -Part 2

این دومین مقاله از این سری است که به کشف و درک معماری و عملکرد YOLO (شما فقط یکبار نگاه می کنید ).

برای درک دقیق الگوریتم های بینایی رایانه در CNN ، CNN مبتنی بر منطقه (R-CNN) ، سریع R-CNN ، سریعتر R-CNN کلیک کنید. این قسمت 1 است.

در مقاله بعدی ، کد YOLO v3

YOLO- شما فقط یکبار نگاه می کنید پاسخ الگوریتم های بهتر ، سریعتر و دقیق بینایی رایانه است.

شما فقط یکبار نگاه می کنید (YOLO ) در یک تصویر برای پیش بینی اجسام موجود و محل حضور آنها. تصاویر و به طور مستقیم عملکرد تشخیص را بهینه می کند. این باعث می شود YOLO بسیار سریع و دقیق

ویژگی های YOLO

YOLO ، یک الگوریتم تشخیص شیء ، همه اشیاء را در یک شبکه تصویر به طور همزمان پیدا کند از یک شبکه متحرک واحد استفاده می کند برای تصویر کامل YOLO کل تصویر را در زمان آموزش و آزمایش می بیند ، بنابراین برخلاف پنجره کشویی یا تکنیک های مبتنی بر منطقه ، به طور ضمنی اطلاعات متنی مربوط به کلاس ها و ظاهر آنها را رمزگذاری می کند. بنابراین کمتر از نصف تعداد خطاهای پس زمینه در مقایسه با Fast R-CNN. YOLO از ویژگی های کل تصویر برای پیش بینی هر کادر محدود استفاده می کند. همچنین همه جعبه های محدود کننده در تمام کلاس ها را برای یک تصویر به طور همزمان پیش بینی می کند. جعبه های محدود کننده و احتمالات کلاس برای این جعبه ها را پیش بینی می کند. با تشخیص به عنوان یک مشکل رگرسیون بسیار سریع و دقیق

کار YOLO

شما فقط یکبار نگاه می کنید-YOLO YOLO عکس می گیرد و آن را به یک شبکه SxS تقسیم کنید. هر سلول شبکه فقط یک جسم را پیش بینی می کند طبقه بندی و محلی سازی تصویر بر روی هر شبکه اعمال می شود اگر مرکز یک جسم به داخل سلول شبکه بیفتد ، آن سلول شبکه مسئول تشخیص آن است object هر یک از سلولهای شبکه جعبه های B را با نمرات اطمینان برای آن جعبه ها پیش بینی می کند نمرات اعتماد نشان می دهد که مدل چقدر مطمئن است که جعبه حاوی یک شی است و چقدر دقیق فکر می کند جعبه این است که پیش بینی می کند اگر اشیاء وجود نداشته باشند ، نمرات اطمینان صفر خواهد بود. پیش بینی اعتماد نشان دهنده IOU بین جعبه پیش بینی شده و هر جعبه حقیقت زمین است. Pr (Object) truth حقیقت IOU pred - تقاطع بین اتحاد (IOU) بین جعبه پیش بینی شده و حقیقت زمین جعبه محدود کننده هنگامی که یک جسم در سلول شبکه وجود دارد احتمال برای کلاس C

درک خروجی YOLO

< /img> pc وجود یک جسم در شبکه را تعیین می کند و احتمال است. هنگامی که یک شی وجود دارد ، احتمال دارد و هنگامی که هیچ جسمی در شبکه وجود ندارد ، رایانه آنها صفر bx خواهد بود ، با ، bh ، bw هنگام حضور یک جسم ، کادر محدود کننده را مشخص کنید. bx ، مرکز جعبه نسبت به محدوده سلول شبکه است. bw ، bh عرض و ارتفاع نسبت به کل تصویر c1 ، c2 ، c3 و غیره نمایانگر کلاسها هستند. ابعاد c برابر با تعداد کلاسها است. احتمالات کلاس به سلول شبکه ای که دارای اشیا ، P (کلاس | شی) است ، بستگی دارد. اگر جسمی در سلول شبکه وجود داشته باشدسپس کلاس فعلی دارای مقدار 1 و کلاسهای دیگر 0

بعد خروجی چقدر خواهد بود؟

تقسیم تصویر به یک شبکه S × S.

هر سلول شبکه جعبه های محدود کننده B ، اطمینان برای آن جعبه ها و احتمالات کلاس C را پیش بینی می کند.

هر کادر محدود کننده شامل 5 پیش بینی است: bx ، by ​​، bw ، bh و اعتماد

بعد خروجی S × S × (B ∗ (1 + 4) + C) تنسور

به عنوان مثال ، اگر تصویر را به یک شبکه 7 7 7 و هر کدام تقسیم کنیم سلول شبکه 2 جعبه محدود را پیش بینی می کند و ما 20 کلاس دارای برچسب داریم ، در این صورت خروجی 7 x 7 x (2*5+20) = 7 x 7 x 30 تنسور

IoU بین مرز حقیقت زمین چیست جعبه و کادر محدود کننده پیش بینی شده؟

تقاطع بر روی اتحادیه - IoU

IoU تقاطع را بر روی اتحاد دو جعبه محدود کننده ، جعبه محدود کننده برای حقیقت زمین و جعبه محدود کننده برای کادر پیش بینی شده توسط الگوریتم

وقتی IoU 1 است ، این بدان معناست که پیش بینی شده و زمین- جعبه های محدود کننده حقیقت کاملاً با هم تداخل دارند. بیشتر از 0.5؟

سرکوب غیر حداکثر

سرکوب غیر ماکس تمام جعبه های محدود کننده را که IoU کمتر از 0.5 است یا حذف می کند محدوده را انتخاب کنید کادر با بالاترین مقدار برای IoU و دیگر جعبه های محدود کننده را برای شناسایی همان شی

سرکوب کنید. برای مثال ، اگر سه مستطیل با 0.6 و 0.7 و 0.9 داشته باشیم. برای شناسایی IoU وسیله نقلیه در تصویر زیر ، Non-Max Suppression جعبه محدوده را با IoU 0.9 نگه می دارد و جعبه های محدود کننده باقی مانده 0.6 و 0.7 IoU را سرکوب می کند.

برای خودرو در تصویر زیر ، Non-Max Suppression IoU را با 0.8 نگه می دارد و جعبه محدود IoU را با 0.7

طراحی شبکه YOLO v1

معماری شبکه YOLO با الهام از مدل GoogLeNet برای طبقه بندی تصویر

شبکه تشخیص YOLO دارای 24 لایه متحرک دنبال شده است توسط 2 لایه کاملاً متصل شده. لایه ها از لایه های قبلی فاصله دارند. تشخیص

YOLO از یک تابع فعال سازی خطی برای لایه نهایی و ReLU نشتی برای تمام لایه های دیگر.

YOLO مختصات جعبه های محدود کننده را مستقیماً با استفاده از لایه های کاملاً متصل به هم در بالای استخراج کننده ویژگی های پیچشی پیش بینی می کند. YOLO فقط 98 جعبه در هر تصویر را پیش بینی می کند.

نقاط قوت YOLO

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

محدودیت های YOLO

YOLO محدودیت های مکانی قوی را در پیش بینی جعبه محدود از هر سلول شبکه اعمال می کندفقط دو جعبه را پیش بینی می کند و فقط می تواند یک کلاس داشته باشد و این تعداد اجسام نزدیک را که مدل می تواند پیش بینی کند محدود می کند. YOLO با اجسام کوچکی که به صورت گروهی ظاهر می شوند ، مانند گله پرندگان مبارزه می کند. تلاش برای تعمیم به اشیاء در نسبت ها یا پیکربندی های جدید یا غیر معمول

انواع دیگر YOLO

Fast YOLO

Fast YOLO یک نوع سریع از یولو از 9 لایه کانولوشن به جای 24 مورد استفاده در YOLO استفاده می کند و همچنین از فیلترهای تب استفاده می کند.

اندازه شبکه بین YOLO و Fast YOLO متفاوت است اما همه پارامترهای آموزش و آزمایش بین YOLO و Fast YOLO یکسان است.

خروجی نهایی شبکه ما تنسور 7 × 7 × 30 پیش بینی است.

YOLOv2 یا YOLO9000

اندازه ورودی در YOLOv2 از 224 افزایش یافته است. *224 تا 448*448 افزایش اندازه ورودی تصویر باعث بهبود mAP (میانگین دقت متوسط) YOLOv2 کل تصویر را به شبکه 13 13 13 تقسیم می کند. این به حل مسئله تشخیص اجسام کوچکتر در YOLO v1 کمک می کند که YOLOv2 از نرمال سازی دسته ای استفاده می کند که منجر به بهبود قابل توجه در همگرایی می شود و نیاز به اشکال دیگر منظم سازی را حذف می کند. ما همچنین می توانیم Drop Outs را بدون اتصال بیش از حد از مدل حذف کنیم. YOLOv2 k = 5 جبران خوبی برای فراخوانی در مقابل پیچیدگی مدل می دهد. YOLOv2 از 5 جعبه لنگر استفاده می کند YOLOv2 از معماری Darknet با 19 لایه متحرک ، 5 لایه حداکثر ترکیب و یک لایه softmax برای طبقه بندی اشیا استفاده می کند YOLOv2 از جعبه های لنگر برای پیش بینی جعبه های محدود استفاده می کند.

Anchor box یا Prior چیست و چه کمکی به آن می کند؟

Anchor Boxs یا Priors

از جعبه های لنگر برای تشخیص اجسام متعدد ، اشیاء با مقیاس های مختلف استفاده می شود ، و اجسام همپوشان این باعث افزایش سرعت و کارایی برای تشخیص شی می شود.

جعبه های لنگر همه پیش بینی های شی را یکجا ارزیابی می کنند و نیازی به اسکن تصویر با استفاده از یک پنجره کشویی ندارید

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

YOLOv2 کل تصویر را به 13 سلول شبکه 13 X 13 تقسیم می کند. YOLOv2 خوشه بندی k-means را بر روی ابعاد جعبه های محدود کننده اجرا می کند تا پیشرو یا لنگرهای خوبی برای مدل بدست آورد. YOLOv2 در بر داشت k = 5 عملکرد بهتری را ارائه می دهد.

Red is Ground Truth. جعبه های آبی 5 جعبه لنگر

برای پیش بینی چندین اشیاء در یک تصویر ، YOLOv2 هزاران پیش بینی می کند. تشخیص شیء نهایی با حذف جعبه های لنگر که متعلق به کلاس پس زمینه است انجام می شود و بقیه با نمره اطمینان آنها فیلتر می شود. ما جعبه های لنگر را با IoU بزرگتر از 0.5 می یابیم. جعبه های لنگر با بیشترین نمره اطمینان با استفاده از سرکوب Non-Max که قبلاً توضیح داده شد ، انتخاب می شوند.

YOLOv3

از 9 لنگر استفاده می کند از رگرسیون لجستیک برای پیش بینی نمره عینی بودن استفاده می کند به جای تابع Softmax که در YOLO v2 استفاده می شود YOLO v3 از شبکه Darknet-53 برای استخراج ویژگی استفاده می کند که دارای 53 لایه کانولوشن

کد YOLO v3 است که در مقاله بعدی

منابع:

https://pjreddie.com/media/files/papers/yolo.pdf

https://arxiv.org/pdf/1612.08242. pdf

https://pjreddie.com/media/files/papers/YOLOv3.pdf

http://deeplearning.csail.mit.edu/instance_ross.pdf