A case for using rotation invariant features in state of the art feature matcher
سپتامبر 3, 2022شبکه عصبی
سپتامبر 10, 2022ocr پلاک ماشین
سیستم های تشخیص خودکار پلاک خودرو (ALPR) پلاک خودروها را به طور خودکار شناسایی می کند و منابع انسانی را کاهش می دهد. بنابراین در سال های اخیر اهمیت بیشتری یافته است. بیش از 1.2 میلیارد خودرو در جهان وجود دارد که بیش از 19 میلیون دستگاه از این تعداد متعلق به ایران است و این دلیل کافی برای اهمیت توسعه سیستم های ALPR قابل اعتمادتر در این کشور است.سیستم های ALPR نقش مهمی در شهرهای هوشمند مانند پارکینگ ها، نظارت بر ترافیک، کنترل دسترسی، پرداخت عوارض و غیره ایفا می کنند [20].
سیستم های سنتی از ویژگی هایی استفاده می کنند که توسط انسان ها برای نشان دادن ویژگی های تصاویر در نظر گرفته شده است. سیستم های سنتی به مدل های طراحی شده توسط انسان برای پاسخ های تشخیص از پیکسل های ورودی خام نیاز دارند. اما سیستم های مبتنی بر تکنیک های یادگیری عمیق به طور خودکار ویژگی ها را خود انتخاب می کنند و برای طراحی ویژگی ها نیازی به انسان ندارند [38]. این سیستم ها بازنمایی های سطح پایین داده های اساسی را با اصلاح فیلترها می آموزند [21].
یادگیری عمیق روش های مختلفی دارد و رایج ترین روش در زمینه پردازش تصویر، شبکه های عصبی کانولوشن (CNN) است [40]. CNN ها بر پایه اشتراک گذاری وزن ها و ارتباطات پراکنده هستند که پتانسیل یادگیری بالایی را ارائه می دهند [37]. دو چالش بزرگ در CNN ها این است که اولی تقاضا برای مقادیر زیادی از نمونه های آموزشی و دومی هزینه محاسباتی بالا است [27]. در سالهای اخیر، CNNها بسیار قدرتمندتر شدهاند، زیرا راهحلهای هوشمندانهای برای کاهش تعداد نمونههای آموزشی و هزینه محاسباتی کشف شده است [11]. از آنجایی که CNN ها در بسیاری از وظایف در حوزه تشخیص بصری پیشرفته هستند، اعتقاد بر این است که در ALPR نیز پیشرفته هستند [23].
سیستمهای ALPR وظایف پیچیدهای در تغییر شرایط و با تغییرات بسیار دارند [1]. دوربین ممکن است فاصله و زاویه متفاوتی با خودرو داشته باشد، وضوح دوربین ها متفاوت است، نور نامساعد، انعکاس و شکست نور، تداخل بزرگ پس زمینه، شیب زاویه زیاد، گرد و غبار و رطوبت از دیگر پیچیدگی ها هستند. یک سیستم ALPR خوب علاوه بر عملکرد خوب در شرایط ذکر شده، باید پلاک های واقع شده را در قسمت های مختلف تصویر نیز شناسایی کند و در صورت وجود بیش از یک پلاک در تصویر، سیستم باید همه آنها را مکان یابی کند. بسیاری از سیستم ها ادعا می کنند دقت بیش از 90٪ [5]بدست آوردند.
با این حال، در اکثر موارد دقت ادعا شده با سیستم های دیگر قابل مقایسه نیست، زیرا در هر یک از سیستم ها از مجموعه داده های متفاوتی استفاده می شود و یک مجموعه داده کلی پذیرفته شده وجود ندارد. پیچیدگی محیط در تشخیص پلاک ها در مجموعه های آزمایشی مختلف به طور قابل توجهی بر دقت تأثیر می گذارد و مقایسه مستقیم دقت را بدون در نظر گرفتن این پیچیدگی ها بی معنی می کند [16]. الگوریتمهای سنتی اغلب تحت شرایط خاص به خوبی کار میکنند، اما در محیطهای باز مانند نور نامساعد، انعکاس و شکست نور، تداخل بزرگ پسزمینه، شیب زاویه بزرگ، گرد و غبار و رطوبت به دقت رضایتبخشی نمیرسند [39].
سیستم های ALPR اغلب دارای مراحل اصلی درختی هستند: تشخیص پلاک، تقسیم بندی پلاک و بازشناسی پلاک [19].
مرحله تشخیص پلاک، تصویر ورودی را دریافت می کند و سپس پلاک ها را در تصویر تعیین می کند. برای این مرحله پنج رویکرد اصلی پیشنهاد شده است:
1- رویکردهای مبتنی بر لبه: این رویکردها با دانستن مستطیل شکل بودن پلاک با نسبت ابعادی مشخص، پلاک خودرو را شناسایی می کنند [12، 28]. 2- رویکردهای مبتنی بر رنگ: این رویکردها با بهرهبرداری از این واقعیت که پلاکها اغلب رنگهای متفاوتی نسبت به پسزمینه دارند، پلاکها را شناسایی میکنند [4].3- رویکردهای مبتنی بر بافت: این رویکردها با استفاده از توزیع تراکم پیکسلی نامتعارف در داخل پلاک، پلاکها را شناسایی میکنند [2]. 4- رویکردهای مبتنی بر کاراکتر: این رویکردها پلاک را به عنوان رشته ای از کاراکترها تشخیص می دهند [22]. 5- رویکردهای مبتنی بر یادگیری: این رویکردها از تکنیکهای یادگیری ماشینی برای شناسایی کاراکترها بر اساس ویژگیها استفاده میکنند و اکنون این رویکردها معمولاً از CNN استفاده میکنند [17، 34، 25].
مرحله تقسیمبندی پلاک، کاراکتر پلاکی را که در مرحله قبل قرار دارد، تقسیمبندی میکند.برای این مرحله دو رویکرد اصلی پیشنهاد شده است:
1- رویکردهای مبتنی بر پروجکشن: این رویکردها با دانستن این که کاراکترها و پسزمینه پلاک دارای رنگهای متفاوتی هستند که پس از باینریسازی تصویر، مقادیر متضادی را ارائه میدهند، به تقسیمبندی کاراکترها میپردازند [33]. 2- رویکردهای مبتنی بر اتصال پیکسل: این رویکردها با برچسب گذاری تمام پیکسل های متصل در تصویر باینری، به تقسیم بندی کاراکترها نزدیک می شود. پیکسل هایی که دارای ویژگی های یکسان با کاراکترها هستند، بخشی از کاراکتر در نظر گرفته می شوند [4].
مرحله تشخیص پلاک، کاراکترها را تشخیص می دهد و برای این مرحله دو رویکرد اصلی پیشنهاد شده است:
1- رویکردهای تطبیق الگو: این رویکردها با مقایسه شباهت، کاراکترها را شناسایی می کنند. کاراکتر و یک الگو [33، 18]. 2- رویکردهای مبتنی بر یادگیری: این رویکردها از تکنیکهای یادگیری ماشینی برای شناسایی کاراکترها بر اساس ویژگیها استفاده میکنند و اکنون این رویکردها معمولاً از CNN استفاده میکنند [17، 34، 25، 6].
در برنامههای کاربردی دنیای واقعی، شرایط اکتساب دادهها در حال تغییر است و روشهای یادگیری ماشین سنتی ممکن است در تشخیص دقیق پلاکها شکست بخورند. بنابراین در این مقاله چارچوبی بر اساس طرحهای یادگیری عمیق برای غلبه بر این محدودیتها پیشنهاد کردیم. در این مقاله، سیستم تشخیص پلاک ایران مبتنی بر شبکههای عصبی کانولوشن عمیق ارائه شده است. این سیستم از دو بخش اصلی تشکیل شده است.
بخش اول تشخیص پلاک خودرو بر اساس شبکه YOLOv3 [31] است. در این قسمت تصویر خودروی ایرانی وارد سیستم می شود و YOLOv3 پلاک یا پلاک های را از روی تصویر تشخیص داده و آنها را به عنوان خروجی برش می دهد. بخش دوم، بازشناسی پلاک خودرو بر اساس R-CNN [32، 36]Faster است. در این قسمت پلاک هایی که از YOLOv3 بریده شده اند به Faster R-CNN می آیند و تمام اعداد یا حروف الفبای موجود در پلاک تشخیص و شناسایی می شوند. معماری سیستم پیشنهادی در شکل 1 نشان داده شده است.
مراحل زیر برای تهیه سیستم پیشنهادی انجام شده است: 1- تهیه و برچسب گذاری مجموعه داده برای YOLOv3 (ساخت مجموعه داده YOLOv3) 2- آموزش شبکه YOLOv3 3- تست شبکه YOLOv3 4- تهیه و برچسب گذاری تصاویر برای Faster R-CNN(ساخت مجموعه داده های Faster R-CNN) 5- آموزش شبکه Faster R-CNN 6-آزمایش شبکه Faster R-CNN
از آنجایی که هیچ مجموعه داده پلاک ایرانی وجود ندارد، ما یک مجموعه داده برای تشخیص پلاک خودروهای ایرانی در این مقاله ایجاد کردیم. تصاویری که در وب وجود دارند و مجموعه داده شامل تصاویر ماشین در موقعیت های نامناسب مختلف است. تعداد کل تصاویر در مجموعه داده 2316 است.
بقیه مقاله به شرح زیر سازماندهی شده است: بخش 2 معماری YOLOv3 پیشنهادی را برای تشخیص پلاک ها توضیح می دهد. بخش 3 معماری Faster R-CNN پیشنهادی را برای تشخیص حروف و اعداد توضیح می دهد. بخش 4 مجموعه داده های جمع آوری شده برای آزمایش و آموزش این دو شبکه را توضیح می دهد. در بخش 5 آزمایش ها و نتایج توضیح داده شده و سیستم پیشنهادی با سایر سیستم ها مقایسه شده و بخش 6 نتیجه گیری مقاله است.
2 تشخیص پلاک خودرو با استفاده از YOLOv3 YOLO (2015) [29] یک CNN با معماری تک شات بود. معماری های تک شات تصویر را با یک CNN واحد بدون نیاز به پیشنهادات ناحیه و شی پردازش می کنند، بنابراین این معماری ساده تر از R-CNN است. امتیاز YOLO mAP در مجموعه داده VOC 2007 63.4 با زمان پردازش 20 میلی ثانیه در هر تصویر بود. YOLOv2 (2016) [30] یک نسخه بهبود یافته از شبکه YOLO است. آموزش YOLOv2 با روش چند مقیاسی، بنابراین می تواند در اندازه های مختلف اجرا شود و بین سرعت و دقت تعادل ارائه دهد [24]. نسخه ای که با سرعت 67 فریم در ثانیه اجرا می شود در VOC 2007 به mAP می رسد، در حالی که نسخه کندتر که با سرعت 40 فریم در ثانیه اجرا می شود به mAP 78.6 می رسد. YOLOv3 (2017) [31] سومین نسخه از شبکه YOLO [7] است. YOLOv3 از چند ترفند برای بهبود آموزش و افزایش عملکرد مانند پیشبینیهای چند مقیاسی (پیشبینی اشیاء کوچک، متوسط و بزرگ در تصویر) و استفاده از طبقهبندی ستون فقرات بهتر استفاده میکند (YOLOv3 از Darknet-53 استفاده میکند در حالی که YOLOv2 از Darknet-19 استفاده میکند). YOLOv3-320 MAP 51.5 با 45 فریم در ثانیه در مجموعه داده COCO برای IOU 0.5 و YOLOv3-608 MAP 57.9 با 20 فریم در ثانیه در مجموعه داده COCO برای IOU 0.5 ارائه می دهد.
2.1 Darknet-53
YOLOv3 از Darknet-53 برای انجام استخراج ویژگی استفاده می کند [31] و 53 به این معنی است که این شبکه دارای 53 لایه کانولوشن است. این شبکه جدید بسیار قدرتمندتر از Darknet-19 (استفاده شده در YOLOv2) است. Darknet-53 عملکردی مشابه ResNet-152 دارد اما سریعتر است. معماری Darknet-53 در جدول 1 نشان داده شده است.
2.2 معماری YOLOv3
YOLOv3 [31] نسخه سوم شبکه YOLO (شما فقط یک بار قفل می کنید) است. YOLOv3 از Darknet-53 برای انجام استخراج ویژگی استفاده می کند. Darknet-53 دارای 53 لایه کانولوشنال و در مرحله تشخیص YOLOv3 دارای 106 لایه است. معماری YOLOv3 در شکل 2 نشان داده شده است. برجسته ترین ویژگی YOLOv3 در مقایسه با YOLO قبلی این است که تشخیص را در سه مقیاس مختلف انجام می دهد. نمونه برداری از تصویر ورودی را به ترتیب 32، 16 و 8 کاهش دهید [31]. در YOLOv3 خروجی نهایی آن با اعمال یک هسته 1 × 1 بر روی نقشه ویژگی با سه اندازه مختلف در سه مکان مختلف در شبکه ایجاد می شود. شکل هسته های تشخیص از معادله 1 آمده است.
1 × 1 × (B × (5 + C))
که در آن B تعداد کادرهای مرزی است که یک سلول روی نقشه ویژگی می تواند پیش بینی کند و C تعداد کلاس ها است. در YOLOv3 پیشنهادی فقط یک کلاس با نام License Plate در نظر گرفته شده است و B = 3 بنابراین اندازه هسته شناسایی 1×1×18 [1×1× (3× (5 + 1))] می شود. یک معماری سلول شبکه ای در نقشه ویژگی در شکل 3 نشان داده شده است. از آنجایی که در LPDS پیشنهادی تصویر ورودی 320 × 320 است، شناسایی نقشه های ویژگی 10×10×18، 20×20×18 و 40×40×18 را ارائه می دهد. لایه های 10×10 مسئول تشخیص اجسام بزرگ هستند، در حالی که لایه های 20×20 اشیاء متوسط و لایه های 40×40 اشیاء کوچک را تشخیص می دهند. این LPDS از 9 لنگر استفاده می کند. سه لنگر بزرگ برای مقیاس بزرگ، سه بعدی برای مقیاس متوسط و سه لنگر آخر برای مقیاس کوچک. YOLOv3 در هر مقیاس می تواند 3 جعبه را با استفاده از 3 لنگر پیش بینی کند، بنابراین این LPDS در مجموع 6300 جعبه را پیش بینی می کند.
3 تشخیص پلاک خودرو با Faster R-CNN
پس از برش پلاک از تصویر ورودی، اعداد و حروف الفبای موجود در پلاک باید جداگانه شناسایی شوند. این با استفاده ازFaster R-CNN انجام می شود. در خانواده R-CNN؛ پس از R-CNN و Fast R-CNN، Faster R-CNN معرفی شده است. CNN مبتنی بر منطقه (2014) [14] به امتیاز mAP 66 با زمان پردازش 20 ثانیه در هر تصویر در مجموعه داده VOC 2007 دست یافت.
Fast R-CNN (2015) [13] یک نسخه بهبود یافته و ساده شده از مدل R-CNN است که سرعت و دقت آن افزایش یافته است. Fast R-CNN به امتیاز mAP 70.0 در VOC 2007 با زمان پردازش 2 ثانیه در هر تصویر، 10 برابر سریعتر از R-CNN دست یافت. Faster R-CNN نسخه بهبود یافته Fast R-CNN با تغییر کامل پیشنهاد دهنده منطقه است که باعث افزایش سرعت و دقت می شود. Faster R-CNN به امتیاز mAP 73.2 با زمان پردازش 140 میلی ثانیه در هر تصویر دست یافت. این سرعت بیش از 10 برابر سریعتر از Fast R-CNN و بیش از 100 برابر سریعتر از R-CNN است. در نهایت با تغییر معماری اساسی از VGGnet به ResNet mAP امتیاز 76.4 به دست می آید.
Faster R-CNN شامل RPN به عنوان یک الگوریتم پیشنهاد منطقه و Fast R-CNN به عنوان یک شبکه آشکارساز است. در Faster R-CNN پیشنهادی یک ResNet101 [15] به عنوان استخراج کننده ویژگی استفاده می شود. معماری Faster R-CNNدر شکل 5 نشان داده شده است.
3.1 ResNet
ResNet [15] برنده ILSVRC 2015 شد و نشان دهنده یک راه انقلابی جدید برای ساخت CNN است که CNN های باقیمانده نامیده می شود. این روش با استفاده از اتصالات پرشی به دست آمد. اتصال پرشی اتصالی است که توسط سیگنال ورودی برایکنار گذاشتن تعدادی از لایه ها استفاده می شود
با تکنیک اتصال پرش، CNN هایی با بیش از 1000 لایه قابل آموزش هستند. در زمینه طبقهبندی کلی اشیاء، CNNهای باقیمانده همچنان پیشرفته هستند (ژوئن 2017) زیرا در ILSVRC 2016 هیچ معماری انقلابی ارائه نشده است. معماری خانواده ResNet در شکل 4 نشان داده شده است [15]
3.2 RPN (شبکه پیشنهادی منطقه)
درست قبل از وارد شدن به RPN، اندازه تصویر به اندازه 128 در 640 پیکسل تغییر می کند. ابتدا در RPN، تصویر ورودی به ResNet-101 (شبکه عصبی کانولوشنال ستون فقرات) وارد می شود. همانطور که گام در سیستم پیشنهادی 16 است، ویژگی خروجی شبکه ستون فقرات یک نقشه ویژگی با اندازه 8×40×512 است (به این معنی که دو پیکسل متوالی در ستون فقرات (ResNet-101) ویژگی های خروجی با 16 پیکسل در تصویر ورودی مطابقت دارند. ). شبکه برای هر نقطه در نقشه ویژگی باید بفهمد که آیا یک شی در تصویر ورودی در محل مربوطه خود وجود دارد یا خیر و اندازه آن را تخمین بزند. این کار با قرار دادن مجموعه ای از لنگرها بر روی تصویر ورودی برای هر مکان در نقشه ویژگی خروجی برای شبکه ستون فقرات انجام می شود. این لنگرها اجسام احتمالی را در اندازه ها و نسبت های مختلف در این مکان نشان می دهد. در سیستم پیشنهادی، لنگرها از 4 مقیاس مساحت جعبه و نسبت ابعاد 3 استفاده میکنند، بنابراین برای هر مکان در نقشه ویژگی، 12 (4×3) مکان در تصویر ورودی مطابقت دارد. بنابراین نقشه ویژگی خروجی مربوط به 3840 (8×40×12) در مجموع لنگر دارد.
در RPN و بعد از شبکه backbone، یک لایه کانولوشن با فیلترهای 3×3، 1 padding و 512 کانال خروجی وجود دارد. کانال های خروجی به دو لایه کانولوشنال 1×1 برای طبقه بندی و رگرسیون جعبه متصل می شوند (این طبقه بندی فقط تعیین می کند که جعبه شی است یا نه) [32].
3.3 Fast R-CNN (به عنوان یک آشکارساز برای Faster R-CNN)
آشکارساز Fast R-CNN همچنین شامل یک ستون فقرات CNN (ResNet101)، یک لایه pooling ROI و لایههای کاملاً متصل است که به دنبال آن دو شاخه برای طبقهبندی و رگرسیون جعبه مرزی وجود دارد. در این بخش ابتدا تصویر ورودی از ستون فقرات CNN (ResNet101) برای استخراج نقشه ویژگی با اندازه 8×40×512 عبور می کند (این همان استخراج نقشه ویژگی در RPN و فقط اشتراک وزن بین ستون فقرات RPN و ستون فقرات Fast R-CNN است). در مرحله بعد، پیشنهادات جعبه پیوند از RPN برای جمع کردن ویژگی ها از نقشه ویژگی ستون فقرات استفاده می شود.
این کار توسط لایه ادغام منطقه مورد نظر (ROI) انجام می شود. لایه ترکیبی ROI به این صورت کار می کند: الف) منطقه مربوط به یک پیشنهاد از نقشه ویژگی ستون فقرات را می گیرد. ب) تقسیم منطقه به تعداد ثابتی از پنجره های فرعی. ج) انجام max-pooling روی این پنجره فرعی برای دادن خروجی اندازه ثابت. خروجی لایه ادغام ROI N×7×7×512 است که N تعداد پیشنهادات از الگوریتم پیشنهاد منطقه است. در مرحله آخر ویژگی ها از دو لایه کاملاً متصل عبور می کنند و سپس به شاخه های طبقه بندی و رگرسیون خواهر و برادر تغذیه می شوند. لایه طبقه بندی برای هر یک از کلاس ها واحد C دارد (در این سیستم C برابر با 25 است). ویژگی ها از یک لایه softmax عبور می کنند تا امتیازات طبقه بندی را بدست آورند. و ضریب لایه رگرسیون برای بهبود جعبه مرزی پیش بینی شده استفاده می شود. یعنی همه کلاس ها دارای رگرسیورهای مجزا با 4 پارامتر هستند که هر کدام مربوط به واحدهای خروجی C×4 در لایه های رگرسیون است [32].