سلام
من دارم از MobileNet-SSD برای تشخیص و خوندن پلاک خودروها استفاده می کنم. سه تا شبکه با این روش ساختم و استفاده می کنم. شبکه های اول و دوم خودرو و پلاک رو پیدا می کنن و شبکه ی آخر پلاک رو می خونه.
در شبکه ی آخر که پلاک رو می خونه یک مشکلی که وجود داره اینه که گاهی دو عدد کنار هم در پلاک رو یک چیز میخونه. این مسئله در مواردی که عدد تمیز افتاده هم دیده شده و تفاوت دو عدد هم زیاد بوده مثلا 3 رو با 9 اشتباه کرده و 1 رو با 8.
عکس زیر موردی هست که 1 رو میده 8 :
این عکس رو توی paint باز کردم و عدد 8 رو کمی از 1 دور کردم بعد 1 رو درست تشخیص داد:
به این دلایل به نظر میاد که مسئله به ساختار SSD ربط داره و به دقت شبکه یا کم بودن نمونه ها، کمتر مربوط میشه. و ظاهرا مربوط به سایز عکس در شبکه و سایز prior box ها هست و احتمالا باعث شده که این شبکه برای تشخیص اشیاء کوچک و نزدیک هم گاهی اشتباه کنه.
در شبکه سایز عکس 300 در 300 میشه. با توجه به این که پلاک یک مستطیل با نسبت طول به عرض حدود 5 به 1 هست.
به نظر میاد که سایز 300 در 300 خوب نیست.
و ابعاد تنظیم شده در لایه های PriorBox هم به نظر میاد که خوب نیستن، چون ابعاد اشیائی که قرار هست تشخیص داده بشه تقریبا مشخصه و مثلا نمیشه عدد داخل پلاک در حدود 250 پیکسل width داشته باشه در حالی که در بعضی از لایه های PriorBox مقدار پارامترهای min_size و max_size در حدود 200 تا 300 هست.
من در لایه ی اول ابعاد width و height رو گذاشتم 500 و 100 و در 6 لایه ی PriorBox پارامترهای min_size و max_size رو کم کردم به طوری که بیشترین سایز 100 هست. (پارامتر max_size در آخرین لایه ی PriorBox که اسمش conv17_2_mbox_priorbox هست رو 100 کردم و بقیه رو هم به نسبت، کمتر گذاشتم)
به نظرتون این کارها خوبه و باعث افزایش دقت شبکه میشه؟
جای دیگه ای لازم نیست تغییر کنه؟