کنترل خودکار ترافیک است. روزانه صدها و شاید هزاران تخلف ترافیکی روی می‌دهد و توسط دوربینهای مخصوص، تصویر خودروی متخلف ضبط می‎شود. اگر قرار باشد تمام این تصاویر توسط انسان بررسی شده و شماره پلاک خودرو به صورت دستی وارد شود، زمان و نیروی انسانی زیادی تلف خواهد شد. لذا تشخیص خودکار موقعیت پلاک خودرو و شناسایی شماره پلاک توسط نرم افزار اهمیت می‌یابد.

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

۱. مقدمه

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

۲. کارهای مرتبط:

فرآیند استخراج پلاک دارای مراحلیست که در هر مرحله میتوان از روش های متفاوتی برای انجام کار بهره جست ، از جمله لبه یابی1 ، تبدیل هاف2، تحلیل هیستوگرام 3و استفاده از عملگر های مورفولوژیکی 4 .
لبه یابی:لبه یک تغییر ناگهانی در شدت روشنایی تصویر است . به عنوان مثال هنگامی که در تصویر تغییر ناگهانی از سیاه به سفید داریم یک لبه ایجاد میشود.لبه یابی به تنهایی کاربرد چندانی ندارد ، چرا که بسیاری از نقاط پلاک هم به عنوان لبه تشخیص داده میشوند.مزیت این روش سرعت بالای آن است.الگوریتم های متفاوتی برای لبه یابی وجود دارد مانند :sobel , Canny , Roberts , Prewitt , Laplacian of Gussianو ..
تبدیل هاف :تبدیل هاف روشی برای استخراج ویژگی ها5 (تعیین ویژگی های بارز و تعیین کننده یک تصویر) است که در حقیقت به دنبال یک الگو در تصویر میگردد . این روش به منظور پیدا کردن خطوط ، در مواردی که بخواهیم پلاک را با خطوط کناری اش شناسایی کنیم میتواند مفید باشد . مشکل این روش حجم پردازشی بالا و وقت گیر بودن آن است .
تعدیل هیستوگرام :هیستوگرام تصویر،نموداریست که محور X آن مقادیر روشنایی و محور Y فراوانی این مقادیر را نشان میدهد و بیان کننده ی میزان روشنایی تصویر می باشد .یکی از کاربرد های این روش افزایش کنتراست 6تصاویر است که موجب افزایش دقت تصویر میشود . این روش برای تصاویر نویزی و تصاویری که در آن کمی چرخیده باشد مفید نیست .[5]
عملیات مورفولوژیکی : از این روش در سیستم های بلادرنگ استفاده ی چندانی نمیشود ، چرا که به نسبت وقت گیر است .[1]
بهتر است که ترکیبی از این روش هارا به کار گیریم . بدین صورت که بعد از بهبود تصویر 7، با استفاده از عملگر سوبل8 اقدام به یافتن لبه های عمودی تصویر میکنیم ، سپس با الگوریتمی خاص لبه های نویزی و مربوط به پس زمینه حذف شده و در نهایت به کمک یک پنجره مستطیلی جستجویی برای یافتن پلاک در نواحی باقیمانده انجام میگردد.(با استفاده از تعدیل هیستوگرام و ترکیبی از عملگرهای مورفولوژیکی پلاک خودرو را از تصویر استخراج میکنیم ).که در حقیقت ترکیبی است از لبه یابی،تحلیل هیستوگرام و عملیات مورفولوژیکی. ساختار روش به گونه ای است که زمان پردازش زیادی طلب نمیکند. از آنجا که در روش پیشنهادی از اطلاعات رنگ برای استخراج پلاک استفاده نمیشود، لذا سیستم شناسایی قادر به تشخیص پلاک ها با رنگهای مختلف میباشد.
پیدا کردن لبه های عمودی :پلاک، به دلیل اعداد و حروف نوشته شده روی آن، دارای لبه های عمودی زیادی میباشد. از همین ویژگی برای یافتن محل آن در تصویر استفاده میشود. روش ها و الگوریتم های مختلفی برای پیدا کردن لبه در پردازش تصویر مطرح شده است. در این میان عملگر سوبل به دلیل سرعت بالا و حجم پردازشی کم در مقایسه با دیگر روش ها، کارایی مطلوبی دارد. لبه یابی به روش سوبل، در حقیقت استفاده از ماسک سوبل میباشد. در حالت کلی، سوبل دارای دو ماسک تشخیص لبه افقی و عمودی است، در روش ترکیبی فقط از ماسک عمودی استفاده میکنیم، بااین فرض که تصویر ورودی چرخش بیش از اندازه نداشته باشد.
ﺑﻌﺪ از پیدا کردن لبه های عمودی تصویر از تحلیل هیستوگرام کمک گرفته و هیستوگرام افقی تصویرلبه را می یابیم . ﺑﺪﻳﻦ منظور برای هر سطر از تصویر تعداد نقاط با سطح خاکستری یک را شمرده و نموداری را تشکیل میدهیم که محور افقی آن سطرهای تصویر و محور عمودی آن همان تعداد نقاط شمارش شده میباشد .
روش های دیگری نیز بر پایه اطلاعات رنگی پلاک وجود دارند که دراین روش ها شرایط نوری بسیار حایز اهمیت میشوند [1].
در روش دیگر میتوانیم با انجام عملیات لبه یابی ، مات زدایی و فیلتر گذاری اقدام به افزایش کیفیت و بهبود شکل کاراکتر ها کنیم .در قدم اول تصویر رنگی را به سیاه و سفید تبدیل کرده و پس از آن با استفاده از تابع گوسن9 اقدام به بهبود کیفیت تصویر میکنیم .فیلتر گوسن با انجام آزمون های مختلف به دلیل کارایی بهتر از میان دیگر فیلتر ها انتخاب شده است . بعد از آن اقدام به لبه یابی میکنیم . در این مرحله میتوانیم برای انجام بهتر عملیات لبه یابی ، تصویر را به باینری تبدیل کنیم برای لبه یابی در حالت باینری اقدام به تعریف مقدار آستانه10 میکنیم که با محاسبه ی مقادیر میانگین و واریانس استاندارد تصویر به دست می آید .سپس سطوح کمتر از مقدار آستانه را 0و سطوح بیشتر را 1 در نظر میگیریم .در ادامه عمل سایش11 انجام میشود .به اینصورت که اگر دو فضا در تصویر دارای لبه مشترک باشند با سایش میتوان آنهارا از هم جدا کرد .بعد از آن به ترمیم شکستگی های در طول خطوط اقدام کرده و در نهایت حفره 12های تصویر را پر میکنیم .بعد از پیمایش13 تصویر از پایین و انجام برچسب گذاری ، پلاک را جدامیکنیم .[2]
روش های دیگری نیز وجود دارند از جمله :تبدیل تقارن یافته و آشکارسازی لبه ها ، شبکه ی عصبی پیشران چند لایه ( مشکلات این روش سرعت کم و محدودیت در اندازه ی پلاک میباشد ) این دو روش در مورد تصاویربا پس زمینه ی پیچیده و یا چند خودرو کاربرد ندارند .استفاده از روش های آماری به همراه اشکار سازی لبه و PCNN ، در روش دیگر ، با استفاده از تکنیک برابر سازی بافت نگار تصویر ، مقدار استانه برای بهبود کیفیت تصویر بدست می آید ، سپس اختلاف پیکسل ها در هر ناحیه ی بزرگ محاسبه شده و لبه ها با استفاده از تکنیک dilation صاف گشته اند .در نهایت با بررسی تعداد پیکسل ها و نسبت پیکسل های سیاه و طول و عرض ، تصاویر پلاک ها بعنوان خروجی برگردانده میشود .
رو ش های دیگر عبارتند از : استفاده از شبکه TDNNو استفاده از ویژگی اختلاف شدت روشنایی.[3]

۳. آزمایش‌ها

در این مرحله قصد داریم روش پیاده سازی شده و نتایج آن را بیان کنیم . در انتها با ذکر موارد ناموفق به کار خود در این فاز پایان داده و در مرحله ی بعدی پروژه سعی میکنیم با بهبود روش به کار برده شده، اعمال فیلتر های مختلف و تست کردن روش های بهبود تصاویر(3) موارد ناموفق را کاهش دهیم .
مراحل انجام کار به اینصورت است :
ابتدا تصویر رنگی را به خاکستری تبدیل مینماییم . سپس با استفاده از تابع im2double مقدار شماره رنگ های تصویر را تبدیل به عدد هایی بین صفر و یک می کنیم .و در مرحله ی بعد از فیلتر گذاری گوسین به منظور از بین بردن نویز های احتمالی استفاده میشود [4]. .(موضوعی که در این مرحله باعث ایجاد سوال شد این بود که با مطالعه راجع به فیلتر های مختلف انتظار داشتیم فیلتری مانند Prewittکه جهت تقویت لبه به کار میرود برای هدف ما بسیار مفید واقع شود اما اینگونه نبود و با آزمون و خطا به فیلتر گوسین رسیدیم که کاربرد آن هموار کردن لبه هاست و انتظار میرفت کاربرد چندانی نداشته باشد. )
از تعدیل هیستوگرام جهت افزایش کانتراست تصویر استفاده شد و پس از ان اقدام به لبه یابی با استفاده از تابع سوبل کردیم ، عملیات حفره یابی و برچسب گذاری انجام شده و برای تشخیص شی مورد نظر که اینجا پلاک ماشین است از تابع regionprops استفاده گردید و در انتها مختصات پلاک بدست آمده و از تصویر اصلی جداسازی شد .
در مواردی فقط بخشی از پلاک تشخیص داده میشد که با عمل گسترش عمودی و افقی تصویر این مشکل برطرف شد .
این یک پیاده سازی اولیه از پروژه ی مد نظر است ، که روی مجموعه داده ی 52 تصویر آزمایش شده است . روش به کار برده شده قادر به تشخیص پلاک در تصاویر شامل چند خودرو و نیز تصاویر با زاویه نمی باشد ، در مواردی که تصویر از رو به رو گرفته شده است ، از بین 30 عکس ، موفق به شناسایی 23 تصویر بصورت دقیق شد .(76%)
Git

یک نمونه از مراحل پردارش تصویر

.
نمونه عکس با پس زمینه ی شلوغ که با روش به کار برده شده قادر به تشخیص پلاک در آن نشدیم

نمونه عکس با پس زمینه ی شلوغ که با روش به کار برده شده قادر به تشخیص پلاک در آن نشدیم

نمونه عکس با زاویه ک موفق به تشخیص پلاک در آن نشدیم

۴. کارهای آینده

همانطور که گفته شد روش اولیه یک پیاده سازی ساده از مسئله بود که در بسیاری از موارد شیشه عقب خودرو یا نواحی دیگری از تصویر اشتباها به جای پلاک تشخیص داده میشد (شکل 4) ، که با استفاده از لبه یابی به روش roberts این موضوع تا حدودی حل شد ، شکل 5 نمونه ای از این پیاده سازی را نشان میدهد .

شکل 4 .

شکل 5

پس از لبه یابی (شکل 6) ،ابتدا عمل سایش انجام میشود(شکل 7) ، سپس با استفاده از عملیات مورفولوژیکی اقدام به پر کردن حفره های احتمالی (شکل 8) نموده وپس از برچسب گذاری (شکل 9)و حذف اشیا اضافی (شکل 10 ) مختصات دقیق پلاک را استخراج مینماییم .
شکل 6

شکل 7

شکل 8

شکل 9

شکل 10

در این مرحله از یک مجموعه داده معتبرحاوی 173 تصویر جهت انجام آزمایش استفاده کردیم که نتایج در جدول زیر مشاهده میشود .

روش پیاده سازی تشخیص درست تشخیص حدودی تشخیص غلط
روش اولیه 47% 4% 49%
روش بهبود یافته 74% 15% 11%

در جدول بالا تشخیص حدودی مقصود مواردیست که در آن بخشی از یک پلاک تشخیص داده شده یا با خطای اندکی شناسایی صورت
گرفته است . و تشخیص غلط منظور تشخیص ناحیه ی کاملا متفاوت از پلاک و یا عدم تشخیص میباشد .
شکل 11 نتیجه پیاده سازی روش ارتقا یافته روی شکل 3 میباشد .

شکل 11

۵. مراجع

[1]:روشی سریع وجدید برای تشخیص پلاک خودرو از تصاویر پیچیده بر اساس عملیات مورفولوژیکی-چهارمین کنفرانس ماشین بینایی و پردازش تصویر ایران(فرهاد فرجی - رضاصفا بخش)
[2]:تشخیص پلاک خودروهای ایرانی با پردازش تصویر و تکنبک های نرمال فاکتور (احسلن محمودوند-مهدی شاکرمی-حامد جودکی)
[3]:تشخیص شماره پلاک خودروهای ایرانی توسط تکنیک پردازش تصویر و شبکه های عصبی (غلامرضا راد مرد - محمد رضا فیضی )
[4]:استفاده از ضریب انتشار تطبیقی برای حذف نویز تصاویر با استفاده از معادلات مشتقات جزئی (حمید حسنپور و محسن نیکپور)
????????? ??[5]: پردازش تصویر به کمک هیستوگرام ،پایان نامه دوره کارشناسی ناپیوسته ICT
?? ??

پیوندهای مفید
https://fa.wikipedia.org/wiki/پردازش_تصویر
http://itresearches.ir/پردازش-تصویر
http://www.didehbonyan.com/rz/%D9%85%D8%AD%D8%AA%D9%88%D8%A7%DB%8C%D8%B9%D9%84%D9%85%DB%8C/%D9%85%D8%B4%D8%A7%D9%87%D8%AF%D9%87%D9%85%D9%82%D8%A7%D9%84%D9%87/tabid/113/ArticleId/44/.aspx
http://ai.amini.eu/tutorial/dip/dipIntro.aspx
https://fa.wikipedia.org/wiki/استخراج_ویژگی ها
(https://fa.wikipedia.org/wiki%D8%AA%D8%A8%D8%AF%DB%8C%D9%84_%D9%87%D8%A7%D9%81)
http://pmn.i8.com/learn/imageprocessing3.htm
(http://ariaprograming.persiangig.com/Delphi/Image%20Proccessing.pdf/dl)
http://artificial.ir/intelligence/thread584.html


  1. Edge Detection

  2. hough transform

  3. Histogram Analys

  4. Morphological Operators

  5. feature extraction

  6. Contrast

  7. image enhancement

  8. Sobel

  9. Gussian

  10. threshold

  11. Erosion

  12. Holes

  13. traverse

تایید شده

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

رد شده

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

تایید شده

با عرض خسته نباشید نسبت به زحمات شما در انجام پروژه، نمکاتی را خدمت شما عرض می‌کنم:
1-در فاز اول، قسمت شرح مساله، خیلی کار کمی انجام گرفته بود که حدود دو خط و فقط تیتر وار به مراحل پلاک خوانی خودرو اشاره کردید که هرکدام از آنها توضیح جداگانه ای را می‌خواهد.
2- بهتر بود قسمت شرح مساله و مقدمه از هم جدا باشند و هر‌کدام توضیح جداگانه‌ی خود را داشته باشند.
3- در قسمت کارهای مرتبط،بررسی کارهای مرتبط به اندازه‌ی کافی صورت نپذیرفته بود و بهتر بود از مقالات بیشتری برای مطالعه‌ی کارهای مرتبط بهره می‌گرفتید.
4- در فاز پیاده سازی، از مفاهیم تخصصی زیادی مانند: فیلتر گوسین،فیلتر Prewitt، تابع سوبل و ... استفاده کردید که هیچ‌گونه توضیحی برای آن‌ها بیان نکردید و بهتر بود برای آنها توضیحی داده میشد تا بتوان به خوبی از مطالب و آزمایش های شما برای کارهای آینده روی همین موضوع بهره گرفت.
5- کد گیت هاب پروژه شما، متن read me ندارد و باز فهم کد شما را سخت تر می کند.
6- از نکات بارز و مثبت پروژه ‌ی شما، استفاده از تصاویر گویاست.
7- روش بهبود یافته و نتایج آن، در قسمت کارهای آینده قرار گرفته است که این جای سوال دارد که این در فاز بهبود نتایج و توسط شما انجام پذیرفته و یا اینکه به‌عنوان کارهای آینده می‌باشد؟ و اگر برای فاز بهبود نتایج پروژه شماست، به‌عنوان یکی از نکات مثبت دیگر پروژه‌ی شما محسوب می‌شود.
با تشکر

تایید شده

+شرح مسئله ی کامل و اشاره به مشکلات پیش رو از نکات مثبت کار شماست.
+بخش کار های مرتبط مختصر و مفید است اما می توانستید با ارائه ی تصویر ها مثال هایی به فهم بهتر مراحل کمک کنید.
-در بخش کار های آینده می بایست چند ایده برای کار خود که فرصت پیاده سازی نداشتید را ارائه می دادید. اما آنچه شما در این بخش اشاره کردید مربوط به بهبود نتایج است .
+استفاده از تصاویر در بخش پایانی درک بهتری از مراحل کار شما برای خواننده ایجاد می کند.
+کامنت گذاری را رعایت کرده اید اما بهتر بود یک readme مناسب و مختصر نیز در نظر بگیرید تا دیگران بهتر بتوانند از نتایج زحمات شما استفاده کنند.
موفق باشید.

تایید شده

سلام
+در قسمت مقدمه به خوبی مساله شرح داده شد و نیاز انجام این پروژه و همچنین مشکلاتی که بر سر راه است برای خواننده قابل لمس است.
-بهتر بود که از در قسمت کارهای مرتبط درباره هر موضوع توضیح بیشتری میدادید و برای هرکدام مثالی همراه با شکل میزدید تا برای خواننده قابل فهم تر باشد.
+در قسمت آزمایشات نتایج آزمایش را به خوبی با شکل نشان دادید.
-در قسمت پیاده سازی توضیحات بسیار خلاصه است که میتوانست با جزئیات بیشتری بیان شود.
+عمل بهبود به خوبی انجام شده و نتایج قابل درک می‌باشد.
-برای بخش کارهای آینده پیشنهادی داده نشده است.
موفق باشید

تایید شده

با سلام و خسته نباشید. نکاتی که دوستانتان ذکر کرده‌اند کامل است. در این فاز ذکر نکات ویرایشی و تغییر در کد بی فایده است. بخشی که به عنوان کارهای آینده ذکر کردید باید در بخش بهبود نتایج ذکر میشد. بخش کارهای آینده در متن وجود ندارد. امیدوارم موفق باشد.