به بخش پرسش و پاسخ یادگیری عمیق خوش آمدید,
این نسخه آزمایشی سایت است.
لطفا به نکات زیر توجه کنید:
  • برای ارتباط با مدیران میتوانید از صفحه مدیران اقدام کنید.
  • سوال و جواب ها باید به زبان فارسی باشند. استفاده از زبان انگلیسی یا فینگلیش برای پاسخ دادن مجاز نیست.
  • لطفا بعد از پرسش سوال لینک سوال خود را در گرو تلگرام (Iran Deep Learning Group) معرفی کنید تا سریعتر به جواب برسید. برای دسترسی به آخرین لینک از منابع یادگیری استفاده کنید
  • لطفا بجای عکس از متن استفاده کنید. اگر متون طولانی هستند از سایت pastebin.com برای اپلود استفاده کرده و لینک حاصل را در سوال خود قرار دهید. برای قرار دادن تصویر ، از بخش ارسال تصویر ادیتور سایت استفاده کنید.
  • بعد از دریافت پاسخ، بهترین پاسخ را از طریق کلیک بر روی علامت تیک انتخاب کنید
  • اگر با خطا و یا مشکلی مواجه شدید از بخش تماس با ما در انتهای صفحه و یا ایمیل Coderx7@gmail.com موضوع را اطلاع دهید.

با تشکر

دسته بندی ها

0 امتیاز

سلام
دوستانی که object detection کار کردند لطف کنند در مورد این دو معماری توضیح دهند
در مدل فست وقتی که میاد از شبکه کانالوشن برای تولید فیچرها استفاده میکند اون لایه سیاه رنگی که تو عکس هست همان لایه آخر کانالوشن هست یا یک بلوک دیگه هست ؟
لطفا توضیح بیشتری در مورد این دو معماری بدهید

enter image description here

توسط (389 امتیاز)
ویرایش شده توسط
کدام عکس؟
سوال رو واضح تر بیان کنید
عذر میخام آپلود نکرده بودم

2 پاسخ

+3 امتیاز
 
بهترین پاسخ

یه توضیح مختصر از R-CNN عادی:
1- یه سری ناحیه کاندید وجود شی از تصویر استخراج میشه با روشی مثل selective search (مثلا برای یه عکس ممکنه 2000 تا و برای یه عکس دیگه 500 تا ناحیه ممکنه استخراج بشه)
2- این ناحیه ها resize میشن به سایز استاندار ورودی شبکه (مثلا 400 در 400)
3- هر کدوم از این ناحیه ها مستقلا به شبکه داده میشن و شبکه در مورد هر کدوم از نایحیه ها مستقلا تصمیم میگیره
این یعنی تو فاز تست برای یه عکس مثلا 2000 بار شبکه forward pass میشه!!
حالا در مورد سواتون مربوط به نسخه fast و faster:
اون لایه سیاه خروجی آخرین لایه کانولوشن قبل از ROI pooling هستش. مثلا اگه آخرین لایه کانولوشن 512 تا فیلتر داشته باشه و مثلا سایز مکانیش (ارتفاع و پهناش) 40 در 40 باشه اون لایه feature map سایزش 40 در 40 در 512 (عمق 512) خواهد بود. توی نسخه fast ابتدا با روشی مثل selective search ناحیه هایی که کاندیدای وجود شی هستن استخراج میشن (ناحیه ها مستطیلی هستن) و محل یا مپینگ این ناحیه ها تو لایه feature map بدست میاد. سایز هر کدوم از این ناحیه ها متفاوت میتونه باشه در نتیجه خروجی هر کدوم از این ناحیه ها رو با یه لایه به نام ROI pooling به یک سایز ثابت (مثلا 7 در 7 در 512) مپ میکنند. توجه کنید که برای هر کدوم از این نهاحیه ها عمق همشون ثابت و مثلا 512 هستش و فقط سایز مکانیشون متفاوته. خروجی لایه ROI pooling هم به یه سری لایه fc وصل میشه و در نهایت به یه لایه طبقه بندی و یک لایه رگرسیون وصل میشه.
برای نسخه faster هم پروسه شبیه fast هستش. فقط به جای این که انخاب ناحیه های کاندید وجود شی با روشهای کلاسیک مثل selective search باشه با روش مبتنی بر شبکه عصبی هستش (برای استفاده از مزیت پردازش یکپارچه در gpu).
در نسخه faster برای انخاب region proposals یا همون ناحیه های کاندید وجود شی دوباره از یک شبکه کانولوشنی جدا به نام RPN استفاده میشه. پروسش هم این طوریه که توی خروجی feature map یه سری پنجره به طول ثابت انتخاب میشن (مثلا 3 در 3) و خروجی این پنجره به یک لایه fc وصله که مثلا 512 تا نورون خروجی داره و در نتیجه یه ویژگی 512 بعدی از هر پنجره بدست میاد. خروجی این 512 بعدی هم به یک لایه طبقه بند دو کلاسه (وجود یا عدم وجود شی) و یک رگرسیون (برای اصلاح bounding box) وصل میشه.
فقط نکته ای که هست برای انتخاب ناحیه از feature map از روشی به نام anchor box استفاده میکنن که در مقاله تعداد 9 anchor box استفاده شده (در 3 سایز و 3 aspect ratio). نحوه استفاده از این رویکرد رو تو مقاله توضیح داده و من اگه بخوام توضیح بدم باید تقریبا مقاله رو اینجا دوباره نویسی کنم. ولی به طور خلاصه برای هر کدوم از این 9 تا anchor box رگرسیون و طبقه بندی جدا انجام میشه (یعنی head مربوط به رگرسیون RPN تعداد 9*4 تا نورون داره).
اما این که RPN رو چه طور به fast RCNN ملحق کنن تو خود مقاله سه تا رویکرد گفته که ساده ترینیش اینه که اول RPN رو مستقل ترین کنیم و بعدش از شبکه ترین شده برای انتخاب ناحیه کاندید fast R-CNN استفاده کنیم و بعدش Fast R-CNN رو ترین کنیم.

توسط (540 امتیاز)
انتخاب شده توسط
فهمیدم قضیه رو
با این حساب فرق نسخه اولیه با فست چیه ؟ هردوتاشون از الگوریتم selective search استفاده میکنند دیگه که بنظر من هم مشکل کار در معماری همین قسمت هست . چون حجم محاسباتی بالایی دارد و به اصلاح time-consuming هست .
و اینکه وقتی به نسخه فست ٍ end-to-end گفته میشود بنظرم باید این قسمت selective search حذف شود
یه سوال دیگه : اینکه به ازای هر عکس 2000 بار شبکه forward-pass  انجام میشود از لحاظ ترین شبکه خوب نیست ؟ ( حالا جدا از سرعت که خیلی کند میشود )
تو نسخه فست به جای این که 2000 ناحیه رو جدا به کل شبکه بده میاد عکس اصلی رو به شبکه میده و ناحیه ها رو تو لایه feature map جدا میکنه در نتیجه کل محاسبات مربوط به لایه های کانولوشن (قبل از feature map) فقط یک بار انجام میشه و کلی در زمان صرفه جویی میشه.
selective search تو نسخه faster حذف شده.
ترین R-CNN یکم با تست فرق داره. تو ترین از حالت batch mode استفاده میشه (مثلا با سایز 128). همچنین برای انتخاب این 128 تا ناحیه یا سمپل نیز تمهیداتی در نظر میگیرن. مثلا ناحیه های اطراف لبه تصاویر رو ممکنه تو ترین تاثیر ندن.
"تو نسخه فست به جای این که 2000 ناحیه رو جدا به کل شبکه بده میاد عکس اصلی رو به شبکه میده و ناحیه ها رو تو لایه feature map جدا میکنه در نتیجه کل محاسبات مربوط به لایه های کانولوشن (قبل از feature map) فقط یک بار انجام میشه و کلی در زمان صرفه جویی میشه. "
حالا  در نسخه فست عکس اصلی رو به شبکه cnn دادند بعدش باید از selective search استفاده کنند ( برای جدا سازی نواحی )  درسته ؟ یعنی جای selective search  و شبکه cnn رو عوض کردند ؟
0 امتیاز

این لایه در حقیقت ویژگی های استخراج شده از آخرین لایه کانولوشن هستند.

توسط (535 امتیاز)
حالا در فستر لایه proposals ، جدا از واحد شبکه کانالوشن می باشد ؟ اگه واحد جداگونه هست این لایه پروپوزالز از چه لایه هایی تشکیل شده ؟ همون لایه های کانالوشن و پولینگ و ... ؟
و یک سوال دیگه : در r-cnn که برای پورپوزال ها از روش selective search استفاده میکنیم همان طور که این هم 2000 ناحیه پورپوزل ارائه میدهد حال همان طور که گفته میشه بصورت pipeline شبکه های کانالوشن برای این 2000 نواحی قرار داده میشود در اینجا یعنی 2000 تا شبکه کانالوشن برای هر ناحیه قرار داده می شود یا اینکه این 2000 تا ناحیه بصورت بچ به چند دسته تقسیم میشود و به تعداد این دسته ها شبکه کانالوشن برای استخراج ویژگی قرار داده میشود ؟
در Faster یک شبکه RPN داریم که کار پیشنهاد نواحی رو انجام میده که از یک کانولوشن و لایه های رگرشن تشکیل شده
در مورد RCNN بچ کردن در واقع همون موازی سازی شبکه ها هستش و از نظر تئوریک تفاوتی با تعداد استفاده از شبکه تداره
منظورم اینه حالا ما با استفاده از selective search ، دو هزار ناحیه پروپوزال ارائه کردیم اینها چجوری به شبکه کانالوشن داده میشوند ؟ یعنی بعد از اینکه 2 هزار ناحیه پیدا شد به شبکه داده میشود یا اینکه حینه پیداکردن نواحی پروپوزال ، اون نواحی هم همزمان به شبکه کانالوشن داده میشود ؟
...