اطلاعیه

Collapse
No announcement yet.

اگوریتم های مختلف جداسازی کاراکترهای پلاک

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    اگوریتم های مختلف جداسازی کاراکترهای پلاک

    با سلام ..... :smile:

    1 - الگوریتم های مختلف برای جداسازی کاراکترهای پلاک خودرو چیه ؟؟؟ و یه توضیح خیلی مختصر درباره الگوریتم .....و بهترین روش پیشنهادی شما ......

    مثلا یکی اش الگوریتم Flood Fill هست ....میخواستم یه توضیح کلی هم از این بدونم ....

    2 - ایا میشه از توابع موجود د رجعبه ابزار متلب هم استفاده کرد ؟؟؟یا باید کد نوشت ؟؟؟

    3 - و این که ایا جداسازی کاراکترهای پلاک همون عمل segmentation هست ؟؟؟

    در ضمن فرض بر این هست که تصویری صرفا باینری از پلاک خودرو موجود هست .....



    مصادیق اظهار محبت به همسر
    بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
    ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
    اثر قصه گویی برای کودکان

    #2
    پاسخ : اگوریتم های مختلف جداسازی کاراکترهای پلاک

    پلاک فارسی یا انگلیسی؟

    در مورد حروف و اعداد انگلیسی میشه از عملیات نازک سازی ( erosion ) استفاده کرد که ماسک های متفاوت نتایج متفاوت روی حروف دارند.
    مثلا ماسک ستونی میتونه حروفی مثل B D E F و ... رو تشخیص بده.

    فکر کنم اگه پیچیدگی خاصی نباشه با regionprops هم بشه یه کارایی کرد. همینطور استفاده از عدد اولر که اگه درست یادم باشه تعداد حفره ها رو میگه.

    الگوریتم region growing هم هست که در موردش گنزالس توضیح داده شده که نیاز داشتین در اختیارتون میذارم.
    It's nice to be important but it's important to be nice!

    از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

    دیدگاه


      #3
      اگوریتم های مختلف جداسازی کاراکترهای پلاک

      نوشته اصلی توسط رضا شفقی
      پلاک فارسی یا انگلیسی؟

      در مورد حروف و اعداد انگلیسی میشه از عملیات نازک سازی ( erosion ) استفاده کرد که ماسک های متفاوت نتایج متفاوت روی حروف دارند.
      مثلا ماسک ستونی میتونه حروفی مثل B D E F و ... رو تشخیص بده.

      فکر کنم اگه پیچیدگی خاصی نباشه با regionprops هم بشه یه کارایی کرد. همینطور استفاده از عدد اولر که اگه درست یادم باشه تعداد حفره ها رو میگه.

      الگوریتم region growing هم هست که در موردش گنزالس توضیح داده شده که نیاز داشتین در اختیارتون میذارم.
      با سلام .... :smile:

      پلاک فارسی هست ......راستش من که اصلا متوجه نشدم شما چی گفتید .....مثلا این که عدد اویلر چه ربطی به پردازش تصویر داره !!! یا حفره چیه !!!! و غیره :cry2: ....... ولی خوب خودم یه مطالعه ای دربارش میکنم بعدا مزاحم میشم ......اون region growing برای چیه ؟؟؟ منظورم الگوریتم چیه ؟؟؟
      مصادیق اظهار محبت به همسر
      بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
      ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
      اثر قصه گویی برای کودکان

      دیدگاه


        #4
        پاسخ : اگوریتم های مختلف جداسازی کاراکترهای پلاک

        مثلا A یه حفره داره. B دو تا !

        region growing هم یه نقطه شروع داره یعنی یه پیکسل بهش میدید با یه شعاع. تفاوت روشنایی همسایگی های این پیکسل اگر شعاع و حد تعیین شده کمتر باشه جزو ناحیه مطلوب در نظر گرفته میشه. چون شما اینجا باینری کار میکنید کافیه یک نقطه از حرفتون رو داشته باشید تا با رشد ناحیه کل اون حرف رو بدست بیارید.
        البته چون الان با فارسی می خواید کار کنید باید حواستون به حروف نقطه دار باشه چون یه حرف دارید که چند تا تکه داره!

        اگه با regionprops متلب هم کار کنید با bwlabel اول نواحی جدا از هم رو علامت گذاری میکنید بعد میشه مشخصات اون نواحی را بدست بیارید!
        It's nice to be important but it's important to be nice!

        از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

        دیدگاه


          #5
          پاسخ : اگوریتم های مختلف جداسازی کاراکترهای پلاک

          در سیستم های تشخیص پلاک( LPR یا ANPR) برای تشخیص کاراکترها حالا به هر زبانی یا با علامات و نشانه های خاص، ابتدا کل پلاک باید تشخیص داده بشه تا به مرحله OCR یا همون خوندن کاراکترها برسه، یعنی اگه مثلا تصویر پلاک دارای زاویه یا تیرگی یا روشنی زیاد باشه باید اول همه اینها برطرف بشه تا به مرحله OCR بره، در مرحله OCR تا حالا بهترین روش برای تشخیص حروف که بشه انواع مختلف کاراکتر رو تشخیص داد روشهایی هستند که با اطلاعات قبلی و از کتابخونه پیشفرض استفاده میکنن، در هر مرحله از OCR ابتدا هر پلاک با گونه های تعریف شده در کتابخونه مقایسه میشه و به عبارتی Classify میشه، یعنی مثلا پلاک ایران ابعادی برابر با نسبت طول به عرض 5 به یک داره یا پلاک کانادا مثلا نسبت 2 به یک داره، بعد از تشخیص نوع کلاس پلاک از روی المانهای ظاهری میرن سراغ جداسازی کاراکترها از هم که به Segmentation یا همون تفکیک هر قسمت از تصویر به عنوان کاراکتر معنی میشه که خود همین بخش هم در قسمت کلاس بندی پلاک موثر هست.
          یکی از روشها همون Flood Fill هست که ابتدا از نوع کلاس پلاک میشه تشخیص داد که رنگ نوشته و پس زمینه باید به چه رنگی باشه، بعد در تصویر به دنبال Interesting Point ها میگردن تا رنگ نوشتار رو پیدا کنن، هرجا که اولین رنگ رو پیدا کردن الگوریتم Flood Fill رو به کار میبرن تا دیگه به آخرین پیکسل برسه، توی همون الگوریتم Flood Fill میشه تعریف کرد که مستطیل محیطی اون بخشی که پرکرده رو حساب کنه که در حقیقت همون ابعاد و محل اون کاراکتر در تصویره، اما بعضی از حروف که نقطه دارن یا دو یا چند قسمتی هستند باید با محاسبات بیشتری تشخیص داده بشن که به Parrent و Child معروفن مثلا حرف "ب" در قسمت بزرگتر Parent و در نقطه Child هست که با محاسبه مرکز ثقل و فاصله و روشهای دیگه هم میشه حرف رو کاملا تشخیص داد و صحت تشخیص رو با سمولیشن کردن پلاک و مقایسه با تصویر اصلی سنجید.
          بعد از اینکه مستطیل محیطی هر کاراکتر به دست اومد و تصویر مونوکروم هر کاراکتر ساخته شد، هر مستطیل رو به قسمتهای مساوی تقسیم میکنن که وابسطه به طول و عرض کاراکترها و اطلاعات ثبت شده در کتابخونه پلاکها متفاوته، مثلا هر مستطیل به 8 قسمت در طول و به 5 قسمت در عرض تقسیم میشه، بعد مثلا کاراکتر ها رو به این صورت در کتابخونه تعریف میکنن:

          بعد هر کاراکتر رو درصد شباهتش رو با کل حروف تعریف شده در اون کلاس پلاک میسنجن و اونی که شباهت بیشتری داره در اولویت قرار میگیره، مثلا در شکل نقاط سفید کتابخونه حتما باید در تصویر دریافت شده سفید باشن، نقاط سیاه باید سیاه باشن و نقاط طوسی در کتابخانه مهم نیستند که در تصویر اصلی سیاه باشن یا سفید به عبارتی Don't Care هستن که بشه با یک Tolerance قابل قبول حروف رو تمیز داد و فرقشون رو پیدا کرد.
          اینجا هم میتونید یک پروسه تقریبا کامل تشخیص پلاک رو که قرار دادم ببینید:
          http://en.wikipedia.org/wiki/Automatic_number_plate_recognition

          موفق باشید.
          اسمایل، تومورو ویل بی وُرس

          دیدگاه


            #6
            اگوریتم های مختلف جداسازی کاراکترهای پلاک

            با سلام .... :smile:

            ابتدا کل پلاک باید تشخیص داده بشه تا به مرحله OCR یا همون خوندن کاراکترها برسه، یعنی اگه مثلا تصویر پلاک دارای زاویه یا تیرگی یا روشنی زیاد باشه باید اول همه اینها برطرف بشه
            بله شما درست میفرمایید کلا توی سه مرحله میشه پیاده کرد :

            1- عملیات پیش پردازش و جدا کردن محل پلاک از کل تصویر

            2- جدا کردن کاراکترها از تصویر پلاک مرحله قبل

            3- خواندن کاراکترها

            فعلا من با مرحله اول کاری ندارم !!!!!!! از دومی بیشتر خوشم اومده !!!! حالا فعلا یه تصویر معمولا با دوربین

            موبایلم میگیرم .... که زایه هم نداشته باشه .....پلاک هم کاملا تمیز میکنم ....خلاصه یه جورایی میخوام فقط پلاک

            تو تصویر باشه ... :mrgreen: تا به مرحله دوم برسم ....ولی یه سوال ...توی اکثر چیزایی که میخوندم روی زاویه

            خیلی تاکید کرده بود که شما هم اشاره کردید مثلا یه جا گفته بود حتما زاویه باید کمتر از 30 باشه ...مگه

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

            عکس بچرخونیم !!!!!فکر کنم دستور چرخش هم تو متلب باشه این جوری میشه ؟؟؟؟


            یکی از روشها همون Flood Fill هست که ابتدا از نوع کلاس پلاک میشه تشخیص داد که رنگ نوشته و

            پس زمینه باید به چه رنگی باشه،

            خوب من که نوع کلاسم مشخصه چون پلاک ایرانی هست ...اما منظورتون از اینکه رنگ نوشته و پس زمینه باید چه

            رنگی باشه چیه ؟؟ خوب رنگ نوشته های پلاک که مشکی هست پس زمینه هم سیاه !!!!!! :mrgreen: درست

            متوجه منظورتون نشدم .....

            Interesting Point
            این نقطه چیه ؟؟؟

            فعلا یه مطالعه کنم بعدا درباره بقیه مطالبوبتون میپرسم !!! :smile:

            با تشکر از پاسختون ......اقای شفقی و اقای ژپیتر

            شما هم موفق باشید ...... :agree:
            مصادیق اظهار محبت به همسر
            بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
            ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
            اثر قصه گویی برای کودکان

            دیدگاه


              #7
              پاسخ : اگوریتم های مختلف جداسازی کاراکترهای پلاک

              مگه تشخیص زاویه پلاک نسبت به محور افق کار سختی هست ؟؟؟
              بستگی به روش تشخیص محل و ابعاد پلاک داره، اون روشهایی که مستطیل Perspective رو ساپورت نمیکنن محدودیت زاویه دارند که مثلا 30 درجه نسبت به افق ولی مثلا در روشی که در ویکیپدیا نمایش دادم بر اساس تشخیص مستطیل Perspective هست که با اون روش چون لزوما دو ضلع چهارضلعی با هم دقیقا موازی نیستند و چون مشخصات هر چهار گوشه پلاک رو به صورت Vector در دسترس داریم میشه تصویر داخل اون پلیگن چهارضلعی رو روی یک مستطیل با محاسبات هندسی درست کرد بدون Pixel Distortion که پلاک هر زاویه ای هم که داشته باشه و با چشم معمولی قابل تشخیص باشه برای برنامه هم قابل تشخیص خواهد بود. مثلا دوربینی رو در نظر بگیرید که در کنار درب پارکینگ نصب شده و قرار پلاک ماشین رو از زاویه 45 درجه و نه افقی بلکه از راستای خودرو بخونه، در همچین تصویری، کاراکترهای نزدیک به دوربین بزرگتر و کاراکترهای دورتر کوچکترند که هرگز با روش اول امکان پذیر نیست ولی با روش مستطیل Perspective کاملا شدنی هست.


              اما منظورتون از اینکه رنگ نوشته و پس زمینه باید چه رنگی باشه چیه ؟؟
              مثلا پلاک دولتی پس زمینه قرمز و نوشتار سفید داره. بالاخره هر نوعی از پلاک هم رنگهای متفاوتی داره.

              این نقطه چیه ؟؟؟
              نقاطی که Flood Fill از اونجا باید شروع بشه، یعنی هر نقطه ای روی کاراکترها و نه روی پس زمینه که اگه از اونجا باFlood Fill شروع به پیمایش کنیم بشه همه پیکسلهای اون حرف رو پوشش داد. :nerd:
              اسمایل، تومورو ویل بی وُرس

              دیدگاه


                #8
                اگوریتم های مختلف جداسازی کاراکترهای پلاک

                نوشته اصلی توسط رضا شفقی
                اگه با regionprops متلب هم کار کنید با bwlabel اول نواحی جدا از هم رو علامت گذاری میکنید بعد میشه مشخصات اون نواحی را بدست بیارید!
                با سلام .... :smile:

                ببخشید من یه سوال داشتم فعلا از همون bwlabel ....خو ب همون طور که اشاره شد با این تابع میشه ابجکت های داخل یه تصویر رو برچسب زد ....در واقع این تابع دو ارگومان ورودی داره یکی تصویر باینری هست که میخوایم ابجکت های اون رو برچسب بزنیم و یکی هم نوع اتصال پیش زمینه هست که تعیین میکنیم 4 تایی باشه یا 8 تایی ...و بر حسب این که نوع اتصال چی باشه گاهی اوقات ممکن نتیجه خروجی متفاوت باشه .....این تابع دو پارامتر خروجی رو برمیگردونه یکی ماتریس برچسب هست که در ماتریس برچسب برای هر ابجکت یک عدد صحیح در نظر گرفته میشه .... و یکی هم تعداد ابجکت های داخل تصویر ...

                فعلا از یه تصویر خیلی ساده میخوام شروع کنم ......فرض کنیم یه تصویر خیلی ساده از پلاک داریم یه چیزی مثل شکل زیر :


                من یه برنامه خیلی ساده برای این تصویر بالا نوشتم به ظاهر تصویر که نگاه میکنیم قاعدتا باید 8 تا ابجکت رو شناسایی کنه ولی نمیدونم چرا فقط 2 تا پیدا میکنه !!!! مشکلش به نظر شما چیه ؟؟؟

                حالا فرض کنیم ابجکت ها رو شناسایی کردیم ....یعنی همون 8 تا رو برامون پیدا کرد بعد مثلا بخوام جداشون کنم میشه از یه for استفاده کنم ؟؟؟



                مصادیق اظهار محبت به همسر
                بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
                ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
                اثر قصه گویی برای کودکان

                دیدگاه


                  #9
                  پاسخ : اگوریتم های مختلف جداسازی کاراکترها&#1

                  تصویرتون رو invert کنید. دستور به رنگ سفید حساسه!


                  اگه درست یادم مونده باشه خود regionprops جدا کننده داره!
                  It's nice to be important but it's important to be nice!

                  از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

                  دیدگاه


                    #10
                    الگوریتم های مختلف جداسازی کاراکترهای پلاک

                    با سلام ....

                    با تشکر از پاسختون ....

                    اره حق با شماست .... مثل اینکه پیکسل های پیش زمینه یا ابجکت رو با رنگ سفید در نظر میگره و پیکسل های پس زمینه رو هم با رنگ سیاه ...اتفاقا توی حالت اول هم بر همین مبنا داده بود و دقیقا هم درست داده بود !!!

                    اون for هم اشتباه !!!! اخه توی این حالت فقط اندیس خطی از عناصر هر ابجکت رو میده الان فهمیدم اشتباه هم نوشتم !!! درستش کردم ....


                    مصادیق اظهار محبت به همسر
                    بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
                    ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
                    اثر قصه گویی برای کودکان

                    دیدگاه


                      #11
                      اگوریتم های مختلف جداسازی کاراکترهای پلاک

                      نوشته اصلی توسط رضا شفقی
                      اگه درست یادم مونده باشه خود regionprops جدا کننده داره!
                      با سلام ....

                      من تا حدودی این تابع رو نگاه کردم ....چه قدر option های مختلف داره .....البته همه اش رو نخوندم ولی با یکی اش که BoundinBox هست یه کارایی کردم تونستم هم حروف ها رو جدا کنم ....حالا نمیدونم همین گزینه هست یا این که یه چیز دیگه هست ؟؟
                      این جوری نوشتم :


                      این هم عکس بعد از جداسازی :


                      میشه لطف کنید اون کد region growing رو بذارید با این که توی کتابه( ویرایش دوم )یکی هست ؟؟؟
                      مصادیق اظهار محبت به همسر
                      بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
                      ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
                      اثر قصه گویی برای کودکان

                      دیدگاه


                        #12
                        پاسخ : اگوریتم های مختلف جداسازی کاراکترهای پلاک

                        چرا از متلب استفاده نمیکنید کدشم تو دنیا فراوونه و میتونی از اون یاذ بگیرید
                        *یادگیری علم زمانی مشکل است که قبل از یادگیری آن را پیچیده تصور کنیم.
                        *چرا فکر میکنیم مباحث مهم و پیشرفته و سطح بالا باید پیچیده باشند.

                        دیدگاه


                          #13
                          پاسخ : اگوریتم های مختلف جداسازی کاراکترهای پلاک

                          نوشته اصلی توسط microjo
                          چرا از متلب استفاده نمیکنید کدشم تو دنیا فراوونه و میتونی از اون یاذ بگیرید
                          با سلام .....نرم افزار استفاده شده همون متلب هست ....در رابطه با کد هم ترجیح میدم اول خودم ببینم چه آشی میپزم !!!! :mrgreen:

                          اگه درست یادم مونده باشه خود regionprops جدا کننده داره!
                          با سلام ....

                          الان مورد image رو امتحان کردم مثل این که با این هم میشه !!! البته این راحت تر به نظرم اومد ...هنوز هم هست !!!! منظورم توی همون گزینه های regionprops هست ....


                          تصویر خروجی بعد از جدا شدن هم دقیقا مشابه با همون بالایی شد حالا نمیدونم فرقی داشته باشه یا نه ....
                          مصادیق اظهار محبت به همسر
                          بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
                          ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
                          اثر قصه گویی برای کودکان

                          دیدگاه


                            #14
                            پاسخ : اگوریتم های مختلف جداسازی کاراکترهای پلاک

                            region growing

                            خدمت شما!
                            فایل های پیوست شده
                            It's nice to be important but it's important to be nice!

                            از اینکه نمی رسم جواب دوستان را بدم معذرت می خوام.

                            دیدگاه


                              #15
                              شناسایی کاراکترهای پلاک

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

                              که شما فرمودید اشنا بشم ؟؟؟به mpp ربطی داره ؟؟؟
                              مصادیق اظهار محبت به همسر
                              بررسی مسائل جنسی در زندگی زناشویی(فایل صوتی)
                              ویژگی های خانواده سالم - مصادیق احترام (فایل صوتی)
                              اثر قصه گویی برای کودکان

                              دیدگاه

                              لطفا صبر کنید...
                              X