پیدا کردن پلاک خودرو

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

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

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

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

# کارهای مرتبط:
راهکار های مختلفی برای استخراج پلاک وجود دارد ، از جمله لبه یابی ، تبدیل هاف ، تحلیل هیستوگرام و استفاده از عملگر های مورفولوژیکی است .
**لبه یابی**:لبه یابی به تنهایی  کاربرد چندانی ندارد ، چرا که بسیاری از نقاط پلاک هم به عنوان لبه تشخیص داده میشوند.مزیت این روش سرعت بالای آن است  **تبدیل هاف** :به منظور پیدا کردن خطوط ، در مواردی که بخواهیم پلاک را با خطوط کناری اش شناسایی کنیم میتواند مفید باشد . مشکل این روش حجم پردازشی بالا و وقت گیر بودن آن است .
**تحلیل هیستوگرام** :این روش برای تصاویر نویزی و تصاویری که در آن کمی چرخیده باشد مفید نیست  .
**عملیات مورفولوژیکی** : از این روش در سیستم های بلادرنگ استفده ی چندانی نمیشود ، چرا که به نسبت وقت گیر است .
بهتر است که ترکیبی از این روش هارا به کار گیریم . بدین صورت که  بعد از بهبود تصویر ، با استفاده از عملگر سوبل اقدام به یافتن لبه های عمودی تصویر میکنیم ، سپس با الگوریتمی خاص لبه های نویزی و مربوط به پس زمینه حذف شده و در نهایت به کمک یک پنجره مستطیلی جستجویی برای یافتن پلاک در نواحی باقیمانده انجام میگردد.(با استفاده از تحلیل هیستوگرام و ترکیبی از عملگرهای مورفولوژیکی  پلاک خودرو را از تصویر استخراج میکنیم ).که در حقیقت ترکیبی است از لبهیابی،تحلیل هیستوگرام و عملیات مورفولوژیکی. ساختار روش به گونهای است که زمان پردازش زیادی طلب نمیکند. از آنجا که در روش پیشنهادی از اطلاعات رنگ برای استخراج پلاک استفاده نمیشود، لذا سیستم شناسایی قادر به تشخیص پلاکها با رنگهای مختلف میباشد.
پیدا کردن لبه های عمودی :پلاک، به دلیل اعداد و حروف نوشته شده روی آن، دارای لبه های عمودی زیادی میباشد. از همین ویژگی برای یافتن
محل آن در تصویر استفاده میشود. روشها و الگوریتمهای مختلفی برای پیدا کردن لبه در پردازش تصویر مطرح شده است. در این میان عملگر سوبل به دلیل سرعت بالا و حجم پردازشی کم در مقایسه با دیگر روشها، کارایی مطلوبی دارد.  لبه یابی به روش سوبل، در حقیقت استفاده از ماسک سوبل میباشد.  در حالت کلی، سوبل دارای دو ماسک تشخیص لبه افقی و عمودی میباشد، در روش ترکیبی فقط از ماسک عمودی استفاده میکنیم، بااین فرض که تصویر ورودی چرخش بیش از اندازه نداشته باشد. 
ﺑﻌﺪ از پیدا کردن لبه های عمودی تصویر از تحلیل هیستوگرام کمک گرفته و هیستوگرام افقی تصویرلبه را می یابیم . ﺑﺪﻳﻦ منظور برای هر سطر از تصویر تعداد نقاط با سطح خاکستری یک را شمرده و نموداری را تشکیل میدهیم که محور افقی آن سطرهای تصویر و محور عمودی آن همان تعداد نقاط شمارش شده میباشد .
مراحل تشخیص پلاک :تصویر ورودی ->پیدا کردن لبههای عمودی تصویر->تحلیل هیستوگرام برای پیداکردن تصویر کاندید ->بررسی معیار تراکم ->گسترش در جهت افقی یا گسترش در جهت عمودی ->اشتراک دو تصویر ->گسترش در جهت افقی ->پر کردن حفره های احتمالی ->سایش تصویر ->اعمال فیلتر میانه ->استخراج پلاک 
روش های دیگری نیز بر پایه اطلاعات رنگی پلاک وجود دارند که دراین روش ها شرایط نوری بسیار حاِز اهمیت میشوند [1].
در روش دیگر میتوانیم با انجام عملیات لبه یابی ، مات زدایی و فیلتر گذاری  اقدام به افزایش کیفیت و بهبود شکل کاراکتر ها کنیم .در قدم اول تصویر رنگی را به سیاه و سفید تبدیل کرده و پس از آن با استفاده از تابع گوسن اقدام به بهبود کیفیت تصویر میکنیم .فیلتر گوشن با انجام آزمون های مختلف به دلیل کارایی بهتر از میان دیگر فیلتر ها انتخاب شده است . بعد از آن اقدام به لبه یابی میکنیم . در این مرحله میتوانیم برای انجام بهتر عملیات لبه یابی ، تصویر را به باینری تبدیل کنیم برای لبه یابی در حالت باینری اقدام به تعریف مقدار آستانه میکنیم که با محاسبه ی مقادیر میانگین و واریانس  استاندارد تصویر به دست می آید .سپس سطوح کمتر از مقدار آستانه را 0و سطوح بیشتر را 1 در نظر میگیریم .در ادامه عمل سایش انجام میشود .به اینصورت که اگر دو فضا در تصویر دارای لبه مشترک باشند با سایش میتوان آنهارا از هم جدا کرد .بعد از آن به ترمیم شکستگی های در طول خطوط اقدام کرده و در نهایت حفره های تصویر را پر میکنیم .بعد از پیمایش تصویر از پایین و انجام برچسب گذاری ، پلاک را جدامیکنیم .[2]
روش های دیگری نیز وجود دارند از جمله :تبدیل تقارن یافته و آشکارسازی لبه ها ، شبکه ی عصبی پیشران چند لایه ( مشکلات این روش سرعت کم و محدودیت در اندازه ی پلاک میباشد ) این دو روش در مورد تصائویربا پس زمینه ی پیچیده و یا چند خودرو کاربرد ندارند .استفاده از روش های آماری بهمراه اشکار سازی لبه و PCNN ، در روش دیگر ، با استفاده از تکنیک برابر سازی بافت نگار تصویر ، مقدار استانه برای بهبود کیفیت تصویر بدست می آید ، سپس اختلاف پیکسل ها در هر ناحیه ی بزرگ محاسبه شده و لبه ها با استفاده از تکنیک dilation صاف گشته اند .در نهایت با بررسی تعداد پیکسل ها و نسبت پیکسل های سیاه و طول و عرض ، تصاویر پلاک ها بعنوان خروجی برگردانده میشود .
رو ش های دیگر عبارتند از : استفاده از شبکه TDNNو  استفاده از ویژگی اختلاف شدت روشنایی.[3]
# آزمایش‌ها

# کارهای آینده

# مراجع
[1]:روشی سریع وجدید برای تشخیص پلاک خودرو از تصاویر پیچیده بر اساس عملیات مورفولوژیکی-چهارمین کنفرانس ماشین بینایی و پردازش تصویر ایران(فرهاد فرجی - رضاصفا بخش)
[2]:تشخیص پلاک خودروهای ایرانی با پردازش تصویر و تکنبک های نرمال فاکتور (احسلن محمودوند-مهدی شاکرمی-حامد جودکی)
[3]:تشخیص شماره پلاک خودروهای ایرانی توسط تکنیک پردازش تصویر و شبکه های عصبی (غلامرضا راد مرد - محمد رضا فیضی )

**پیوندهای مفید**
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


+ [کتابخانه اپن‌سی‌وی](http://opencv.org/)
+ [اپن‌سی‌وی در پایتون](http://docs.opencv.org/trunk/doc/py_tutorials/py_tutorials.html)
+ [نصب اپن‌سی‌وی در ابونتو](https://help.ubuntu.com/community/OpenCV)
+ [شناسایی اجسام در تصاویر با اپن‌سی‌وی](http://achuwilson.wordpress.com/2011/07/01/create-your-own-haar-classifier-for-detecting-objects-in-opencv/)