بررسی الگوریتم شناسایی اشیاء EfficientDet

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

 

نو آوری های این مقاله:

 

سه قسمت اساسی در این مقاله وجود دارد:

  1. BiFPN: یک شبکه وزن دار ویژگی دو جهته (weighted bidirectional feature networ) برای ادغام ویژگی های چند مقیاسی به صورت آسان و سریع.
  2. Compound scaling: روشی جدید که به طور مشترک ستون فقرات، شبکه ویژگی، شبکه جعبه/کلاس و وضوح را به صورت اصولی مقیاس می کند.
  3. EfficientDet: خانواده جدیدی از آشکارسازها با دقت و کارایی بسیار بهتر در طیف گسترده از منابع دست دسترس.

هدف این مقاله ایجاد یک معماری تشخیص مقیاس پذیر با دقت بالاتر و کارایی بهتر در طیف گسترده ای از محدودیت های منابع (به عنوان مثال، از 3B تا B300 FLOPS) است. سعی می کند به دو چالش اصلی بپرد:

  1. Efficient multi-scale feature fusion: شبکه‌های هرمی (FPN) عملاً روش استاندارد برای ادغام ویژگی‌های چند مقیاسی تبدیل شده‌اند. برخی از آشکارسازهایی که از FPN استفاده می کنند RetinaNet، PANet، NAS-FPN، و غیره هستند. اکثر استراتژی های ترکیب اتخاذ شده در این شبکه ها اهمیت فیلترها را در حین ترکیب شدن در نظر نمی گیرند. آنها آنها را بدون هیچ تمایزی جمع می کنند. همچنین، همه ویژگی ها به طور یکسان در ویژگی های خروجی نقش ندارند. از این رو، یک استراتژی بهتر برای ترکیب چند مقیاسی مورد نیاز است.
  2. Model scaling: بسیاری از کارهای قبلی تمایل دارند که شبکه ستون فقرات را برای بهبود دقت بزرگتر کنند. نویسندگان این مقاله مشاهده کردند که بزرگ‌کردن شبکه‌های ویژگی و شبکه‌های پیش‌بینی جعبه/کلاس نیز هنگام در نظر گرفتن دقت و کارایی بسیار مهم است. با الهام از مقیاس بندی ترکیبی در EfficientNets، نویسندگان این مقاله یک روش مقیاس بندی ترکیبی را برای آشکارسازهای شیء پیشنهاد کردند، که به طور مشترک وضوح/عمق/عرض را برای تمام شبکه های ستون فقرات، شبکه ویژگی، شبکه پیش بینی جعبه/کلاس افزایش می دهد.

برای درک بهتر آنچه در مقاله انجام می شود، اکنون هر یک از این نکات را به تفصیل مورد بحث قرار می دهیم.

  • شبکه های هرمی ویژگی (FPN)

قبل از بحث در مورد BiFPN، مهم است که ایده FPN را دوباره مرور کنیم و مزایا و معایب این رویکرد را مورد بحث قرار دهیم. اگرچه FPN چیز جدیدی نیست، ایده استفاده از هرم های سلسله مراتبی چند مقیاسی ذاتی نقشه های ویژگی در CNN عمیق برای اولین بار در سال 2017 معرفی شد.

شکل 1. ویژگی شبکه هرمی

یکی از سخت ترین مشکلات، در مورد تشخیص اشیا، تشخیص اشیا در مقیاس های مختلف در صحنه های مختلف است. افراد قبلاً از ترکیب هرم های تصویر ویژه (Image Pyramids) برای مقابله با این مشکل استفاده می کردند. این اهرام به تغییر مقیاس واسطه نیستند به این معنا که تغییر مقیاس یک شی با تغییر سطح آن در هرم جبران می شود. به همین دلیل، این ویژگی یک مدل را قادر می‌سازد تا با اسکن مدل در هر دو سطح و موقعیت هرم، اشیاء را در طیف وسیعی از مقیاس‌ها شناسایی کند. اگرچه کار به خوبی انجام می شود، اما از نظر محاسباتی بسیار گران است و فقط در زمان نتیجه گیری می توان از آن استفاده کرد و باعث ایجاد عدم تطابق بین روش های آموزشی و آزمایشی می شود.

از سوی دیگر، CNN ها، جدای از اینکه قادر به نمایش اطلاعات معنایی سطح بالاتر هستند، از نظر واریانس در مقیاس نیز قوی تر هستند و بنابراین تشخیص از ویژگی های محاسبه شده در یک مقیاس ورودی را تسهیل می کنند. اگرچه CNN ها قوی هستند و ویژگی های معنایی بالایی را ارائه می دهند، اما تشخیص ها از یک مقیاس ورودی به اندازه کافی خوب نیستند. یکی از مفید ترین موارد در مورد CNN ها این است که لایه های مختلف نقشه های ویژگی ها را در سطوح مختلف و مقیاس های مختلف محاسبه می کنند(شکل1). این سلسله مراتب ویژگی های درون شبکه ای شکل ذاتی چند مقیاسی و هرمی دارد. اگرچه ما هرم ویژگی داریم، همه نقشه‌های ویژگی در این هرم در مقیاس‌های مختلف هستند و شکاف‌های معنایی بزرگی دارند که ناشی از عمق‌های مختلف لایه‌های شبکه است. نقشه‌های با وضوح بالا دارای ویژگی‌های سطح پایینی هستند که به ظرفیت بازنمایی(represnation) آنها برای تشخیص شی آسیب می‌زند. نقشه‌های با وضوح بالا در CNN دارای ویژگی‌های معنایی پایینی هستند در حالی که نقشه‌های با وضوح پایین دارای ویژگی‌های معنایی بالایی هستند و ما به هر دو مورد نیاز داریم تا بتوانیم یک تشخیص قوی در مقیاس‌های مختلف انجام دهیم. FPN ها با ترکیب مسیر پایین به بالا با مسیر بالا به پایین با استفاده از اتصالات جانبی به این امر دست می یابند. به طور خلاصه، ویژگی‌های سطح بالا ابتدا نمونه‌برداری می‌شوند و سپس با ویژگی‌های سطح پایین با استفاده از یک اتصال جانبی ترکیب می‌شوند که اساساً یک کانولوشن 1 در 1 است و سپس جمع‌ می‌شود.

BiFPN:

 

اگر ما در مورد اصلاح FPN ها صحبت می کنیم، مطمئناً استفاده مستقیم از آن معایب خاصی دارد. برای توضیح بیشتر در این مورد مثالی می زنیم.

شکل 2.معماری های ترکیب ویژگی

FPN معمولی ویژگی های چند مقیاسی را به روش زیر از بالا به پایین جمع می کند:

 

مشکل FPN معمولی همانطور که در شکل 2(a) نشان داده شده است این است که جریان اطلاعات توسط مسیر یک طرفه (از بالا به پایین) محدود شده است. برای رسیدگی به این مشکل، PANet یک مسیر اضافی از پایین به بالا اضافه می کند، همانطور که در شکل 2(b) نشان داده شده است. همچنین، مقالات زیادی وجود دارد، به عنوان مثال. NAS-FPN، که همچنین اتصالات متقابل را برای گرفتن معنایی بهتر مورد مطالعه قرار داد. به طور خلاصه، همه چیز در مورد اتصالات برای اتصال ویژگی های سطح پایین به ویژگی های سطح بالا و بالعکس برای گرفتن معنایی بهتر است. مشکل NAS این است که مبتنی بر Reinforcement Learning است که ساعت های زیادی برای GPU/TPU طول می کشد تا بهترین اتصالات را کشف کند. همچنین، مشخص شد که اتصالات متقاطع نهایی یافت شده توسط NAS همانطور که در شکل 2(c) نشان داده شده است، نامنظم بوده و تفسیر آنها سخت است. از این گذشته، PANet از نظر دقت FPN و NAS-FPN را شکست داد اما هزینه محاسباتی اضافی دارد. بنابراین منطقی است که PANet را به عنوان پایه در نظر بگیریم و اتصالات را برای کارایی و دقت بهبود دهیم. برای دستیابی به اتصالات متقابل بهینه، نویسندگان مقاله موارد زیر را پیشنهاد کردند:

  1. گره هایی که فقط یک لبه ورودی دارند را حذف کنید. اگر یک گره تنها یک یال ورودی بدون ترکیب ویژگی داشته باشد، آنگاه سهم کمتری در شبکه ویژگی که هدف آن ترکیب ویژگی‌های مختلف است، خواهد داشت. این منجر به یک PANet ساده شده همانطور که در شکل 2 (e) نشان داده شده است.
  2. همانطور که در شکل 2 (f) نشان داده شده است، یک یال اضافی از ورودی اصلی به گره خروجی، در صورتی که در یک سطح باشند، به منظور ترکیب کردن ویژگی های بیشتر بدون افزودن هزینه زیاد، اضافه شده است.
  3. برخلاف PANet که فقط یک مسیر از بالا به پایین و یک مسیر از پایین به بالا دارد، نویسندگان این مقاله هر مسیر دو طرفه (از بالا به پایین و پایین به بالا) را به عنوان یک لایه شبکه ویژگی در نظر می گیرند و همان لایه را چندین بار تکرار می کنند تا ترکیب ویژگی سطح بالاتر بیشتری تولید کند. نتیجه این بهینه سازی ها شبکه ویژگی جدیدی است که به نام BiFPN همانطور که در شکل 2 (f) نشان داده شده است.
Weighted Feature Fusion:

 

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

  • Unbounded Fusion

در اینجا wᵢ وزن قابل یادگیری است که می تواند یک اسکالر (در هر ویژگی)، یک بردار (در هر کانال) یا یک تنسور چند بعدی (در هر پیکسل) باشد.

نویسندگان دریافتند که یک اسکالر می‌تواند به دقت قابل مقایسه با روش‌های دیگر با حداقل هزینه‌های محاسباتی دست یابد. با این حال، از آنجایی که وزن اسکالر نامحدود است، به طور بالقوه می تواند باعث بی ثباتی تمرین شود.

  • Softmax-based Fusion

اگر بخواهیم مقادیر وزن نامحدود در محدوده 0-1 محدود شوند، یکی از بهترین راه ها اعمال softmax و تبدیل مقادیر به یک توزیع احتمال است که در آن مقادیر نشان دهنده اهمیت وزن ها هستند. تنها نقطه ضعف این روش این است که softmax از نظر محاسباتی گران است و تاخیر شبکه را افزایش می دهد.

  • Fast Normalized Fusion

ما می خواهیم وزن های ما در محدوده 0-1 باشد. یک راه برای اطمینان از اینکه wᵢ ≥ 0 اعمال ReLU است. اکنون می‌توانیم به سادگی مقادیر را عادی کنیم تا حد بالایی 1 باشد. این روش در مقایسه با رویکرد مبتنی بر softmax بسیار ساده و بسیار کارآمدتر است.

EfficientDet:

 

همانطور که از نام آن پیداست، با استفاده از EfficientNets به عنوان شبکه اصلی همراه با BiFPN، خانواده جدیدی از آشکارسازها به نام EfficientDet طراحی شده است.

شکل3.معماری EfficientDet

 

معماری:

 

آشکارسازهای EfficientDet آشکارسازهای تک شات هستند که بسیار شبیه SSD و RetinaNet هستند. شبکه های ستون فقرات EfficientNets از پیش آموزش دیده بر رویه ImageNet هستند. BiFPN پیشنهادی به‌عنوان شبکه ویژگی عمل می‌کند، که ویژگی‌های سطح 3-7 {P3، P4، P5، P6، P7} را از شبکه ستون فقرات می‌گیرد و مکرراً ترکیب ویژگی‌های دو جهته از بالا به پایین و پایین به بالا را اعمال می‌کند. این ویژگی های ترکیب شده به یک شبکه کلاس و جعبه تحویل داده می شوند تا به ترتیب کلاس شی و کادر محدود کننده را پیش بینی کنند. وزن شبکه کلاس و کادر در تمام سطوح ویژگی ها به اشتراک گذاشته شده است.

مقیاس بندی ترکیبی:

 

قبلاً در EfficientNets دیده‌ایم که مقیاس‌بندی در همه ابعاد عملکرد بسیار بهتری را ارائه می‌دهد. در این مقاله تلاش شده است را برای مدل های خانواده EfficientDet نیز این امر محقق شود. روش قبلی در مقیاس تشخیص شی فقط شبکه ستون فقرات یا لایه‌های FPN را برای بهبود دقت مقیاس بندی میکنند. این بسیار محدود کننده است زیرا ما فقط بر روی یک بعد آشکارساز تمرکز می کنیم. نویسندگان یک روش مقیاس‌بندی ترکیبی جدید برای تشخیص شی پیشنهاد کردند، که از یک ضریب ترکیب ساده ϕ برای مقیاس‌بندی مشترک همه ابعاد شبکه ستون فقرات، شبکه BiFPN، شبکه کلاس/جعبه و رزولوشن استفاده می‌کند. شناسا گر اشیاء ابعاد مقیاس پذیری بسیار بیشتری نسبت به مدل های دسته بندی تصویر دارند، بنابراین grid search برای همه ابعاد بسیار گران است. بنابراین، نویسندگان از یک رویکرد مقیاس‌بندی اکتشافی (heuristics) استفاده کردند، اما همچنان ایده اصلی مقیاس‌گذاری مشترک همه ابعاد را دنبال می‌کنند.

  1. شبکه ستون فقرات: از ضرایب مقیاس بندی عرض/عمق یکسان با EfficientNet-B0 تا B6 استفاده می شود تا بتوان از checkpoints از پیش آموزش دیده توسط ImageNet استفاده کرد.
  2. شبکه BiFPN: نویسندگان به طور تصاعدی عرض BiFPN (#کانال ها) را همانطور که در EfficientNets انجام می شود افزایش می دهند، اما به صورت خطی عمق (# لایه ها) را افزایش می دهند زیرا عمق باید به اعداد صحیح کوچک گرد شود.

  1. شبکه پیش‌بینی جعبه/کلاس: عرض مشابه BiFPN حفظ می‌شود، اما عمق (# لایه‌ها) به صورت خطی افزایش می‌یابد.

  1. رزولوشن تصویر ورودی: از آنجایی که سطح ویژگی 3-7 در BiFPN استفاده می شود، رزولوشن ورودی باید بر 27 = 128 تقسیم شود، بنابراین ما وضوح را با استفاده از معادله به صورت خطی افزایش می دهیم.

حال با استفاده از معادلات (1)، (2) و (3) و مقادیر مختلف φ، می‌توانیم از Efficient-D0 (φ=0) به Efficient-D6 (φ=6) برویم. مدل‌های بزرگ‌شده با φ ≥ 7 نمی‌توانند در حافظه جای بگیرند مگر اینکه اندازه دسته یا تنظیمات دیگر را تغییر دهید. بنابراین، نویسندگان D6 را به D7 تنها با بزرگ کردن اندازه ورودی در حالی که همه ابعاد دیگر را ثابت نگه داشتند گسترش دادند ، به طوری که می‌توانیم از تنظیمات آموزشی یکسان برای همه مدل‌ها استفاده کنیم. در اینجا جدولی است که تمام این تنظیمات را خلاصه می کند:

اگرچه نویسندگان گفتند که از روش‌های اکتشافی (heuristics) برای دستیابی به این معادلات استفاده کرده‌اند، متأسفانه در هیچ کجای مقاله به نحوه انتخاب این مقادیر اشاره نشده است.

آزمایش ها:

 

تمام آزمایش ها بر روی دیتاست COCO انجام شد. هر مدل با استفاده از بهینه ساز SGD با momentum 0.9 و کاهش وزن 4e-5 آموزش داده شده است. Learning rate ابتدا به صورت خطی از 0 به 0.08 افزایش می یابد. Batch Normalization بعد از هر کانولوشن با batch norm decay 0.997 و epsilon 1e-4 اضافه می شود. Exponential moving average با decay 0.9998 استفاده شده است. از Focal loss با α = 0.25 و γ = 1.5، و نسبت ابعاد {1/2، 1، 2} استفاده می شود. مدل ها batch size 128 روی 32 تراشه TPUv3 آموزش داده شده اند. در اینجا نتایج آمده است:

می بینیم که EfficientDet از نظر کارایی از مدل های مشابه بهتر عمل می کند.

نتیجه گیری:

 

مشاهده شد که استراتژی‌های FPN می‌توانند پیشرفت‌های زیادی در عملکرد تشخیص اشیا ایجاد کنند. Weighted BiFPN تنها گام دیگری در یافتن توپولوژی شبکه بهینه است.

 

 

منابع:

 

دیدگاه‌ خود را بنویسید

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