اطلاعیه

Collapse
No announcement yet.

برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #31
    پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP


    num=600;%k
    for i=1:num
    tmp0=dspcacov0*(meannum0-Tpt(i,)';%k
    tmp1=dspcacov1*(meannum1-Tpt(i,)';%k
    tmp2=dspcacov2*(meannum2-Tpt(i,)';%k
    tmp3=dspcacov3*(meannum3-Tpt(i,)';%k
    tmp4=dspcacov4*(meannum4-Tpt(i,)';%k
    tmp5=dspcacov5*(meannum5-Tpt(i,)';%k
    tmp6=dspcacov6*(meannum6-Tpt(i,)';%k
    tmp7=dspcacov7*(meannum7-Tpt(i,)';%k
    tmp8=dspcacov8*(meannum8-Tpt(i,)';%k
    tmp9=dspcacov9*(meannum9-Tpt(i,)';%k
    Y0=sim(net0,tmp0);%k
    Y1=sim(net1,tmp1);%k
    Y2=sim(net2,tmp2);%k
    Y3=sim(net3,tmp3);%k
    Y4=sim(net4,tmp4);%k
    Y5=sim(net5,tmp5);%k
    Y6=sim(net6,tmp6);%k
    Y7=sim(net7,tmp7);%k
    Y8=sim(net8,tmp8);%k
    Y9=sim(net9,tmp9);%k

    Yt(i,=[Y0 Y1 Y2 Y3 Y4 Y5 Y6 Y7 Y8 Y9];%k

    end
    Yt=Yt';%k



    با سلام به آقای مهندس نحوی
    مهندس چند تا سوال داشتم در مورد کدهای بالا
    ماتریس Tpt یک ماتریس حاوی 60 نمو نه از هر عدد می باشد 60 تا از عدد صفر 60 تااز عدد یک و ... 60 تا از عدد 9 که ابعادش 1600*600 است
    اولاً: چرا تست شبکه های عصبی رو به صورت گروهی انجام دادید (در مورد ماتریسهای tmp کمی توضیح دهید)
    دوماً:چرا 10 شبکه عصبی به ازای ورودیهای تست شبکه در داخل حلقه for قرار دارند و چه لزومی دارد که 600 مرتبه تکرار شوند
    اگر ممکن است در مورد ماتریس Yt هم توضیح دهید
    با تشکر از شما
    در ضمن به خاطر گذاشتن فایل آموزشی ساخت فایل exe در متلب باز هم از شما ممنونم
    امیدوارم در امتحاناتتون موفق باشید
    شهرام

    دیدگاه


      #32
      پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

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

      دیدگاه


        #33
        پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

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

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

        دیدگاه


          #34
          پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

          با عرض سلام به مهندس نحوی با اجازتون
          اون کدهایی رو که آخر صفحه دوم هست توضیحش به این صورته :
          Tpt یه ماتریس با ابعاد 1600*600 که هر شصت ردیف نمونه های مورد نیاز برای آزمایش شبکه های عصبیمونه مثلا 60 ردیف اول مربوط به عدد صفره و شصت ردیف دوم مربوط به عددیک به همین ترتیب تا 60 ردیف آخر برای عدد نه
          بعد یه حلقه داریم که 600 بار تکرار میشه درون حلقه کارهای زیر انجام میشه:
          در هر بار اجرای حلقه یکی ازسطرهای ماتریس Tpt که حاوی یک نمونه از اعداد است انتخاب شده و از میانگین مربوط به همان عدد و اعداد دیگرکه در مراحل قبل محاسبه شده و نتیجه در ماتریس بردار ویژه مربوط به همان عدد و بردار ویژه اعداد دیگر ضرب می شود.
          مثلا به عنوان نمونه فرض کنید در تکرار 61 هستیم شصت و یکمین سطر ماتریس Tpt مربوط به یک نمونه عدد یک است ماتریس این عدد در سطر اول از میانگین اعداد مربوط به عدد صفر کم شده در بردار ویژه مربوط به عدد صفر ضرب می شه که شبکه عصبی تشخیص عدد صفر باید به ازای آن خروجی صفر بده چون tmp0 وارد شبکه عصبی مربوط به تشخیص عدد صفر می شه.در سطر دوم ماتریس منتخب از میانگین اعداد یک کم شده و در بردار ویژه عدد یک ضرب می شه و در tmp1 قرار می گیره tmp1 ورودی شبکه عصبی تشخیص عدد یکه باید به ازای ورود آن Y1 یک بشه.
          در هشت خط بعدی ماتریس عدد بعد از اعمال میانگین و برادارهای ویزه اعداد دو تا نه وارد شبکه های عصبی تشخیص این اعداد می شه که باید به ازای ورود آنها خروجی شبکه ها Y2 تا Y9 صفر بشه .
          در خط انتهایی حلقه پس از هر بار اجرا نتیجه شبکه ها Y0 تا Y9 در ماتریس Yt قرار می گیرن نکته قابل توجه این است که اگر شبکه کاملا درست کار کند
          که معمولا این طور نیست و اندکی اشتباه دارد باید در هر سطر ماتریس Yt که ماتریسی با ابعاد 600*10 است یکی از ستونها مقدار یک بگیره بدین صورت که
          60 سطر اول ماتریس Yt باید در ستون اولشان مقدار یک و نه ستون بعدی مقدار صفر بگیرند و 60 سطر دوم بدین صورت که باید بغیر از ستون دوم بقیه ستونها مقدار صفر بگیرند به همین ترتیب تا 60 سطر آخر بجز ستون دهم بقیه باید صفر شوند
          پس از اتمام حلقه ماتریس Yt ترانهاده شده و به یک ماتریس 10*600 تبدیل می شه سپس وارد یک حلقه دیگر شده که این حلقه بدین صورت عمل می کند
          البته در کدهای موجود در صفحه دوم این کدها وجود ندارند ولی اگر در کدهای برنامه که آقای نحوی زحمتش رو کشیدن و برای دانلود کردن در صفحه اول گذاشتن نگاه کنید خواهید دید.
          تابع find در هر ستون گشته تا ببیند بزرگترین مقدار در کدام سطر قرار دارد و شماره آن را به خروجی میدهد
          تابع max بزرگترین مقدار در هر ستون را می یابد و به خروجی میدهد
          Yout(i)=find(Yt(:,i)==max(Yt(:,i)));%k
          در واقع این خط این کار را انجام می دهد :در هر ستون محل بزرگترین عدد را پیدا کرده و اندیس آنرا در ستون iام ماتریس Yout قرار می دهد بدین ترتیب
          در ماتریس Yout باید شصت ستون اول مقدار 1 و شصت ستون دوم مقدار 2 و... 60 ستون آخر مقدار 10 داشته باشند می بینید که مقادیر یکی بیشتر از
          مقدار درست هستند دلیل آن اینست که در مت لب اندیس آرایه از یک شروع می شود برای گرفتن نتیجه درست یکی از مقدار هر سطر کم میکنیم که این کار در خط بعدی انجام شده .
          در ده خط بعدی نتایج صددرصد درست در ماتریس TT قرار میگیرد جهت در صد گیری.
          در خطوط پایانی نیز عمل آمارگیری با مقایسه دو ماتریس TT و Yout انجام شده و نتیجه در متغییر Per قابل مشاهده است.
          با تشکر از مهندس نحوی خوب توضیح ندادم به بزرگواریه خودتون ببخشید
          مهندس من پروژه رو اجرا کردم و نتایج مورد نظر رو هم گرفتم از شما هم کمال تشکر رو دارم

          دیدگاه


            #35
            پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

            با سلام به جناب مهندس نحوی
            مهندس توی فکر اینم که برنامه رو طوری گسترش بدم که بتونه اعداد چند رقمی رو بگیره وتشخیص بده
            فکر میکنم نیاز به اضافه کرده سه مرحله باشه
            1- قطعه بندی یعنی اعدادرو از هم جدا کنه
            2- بعد از جدا کردن از درون عکس عکس عدد رو در بیاره و به یک عکس با ابعاد 40*40 و بعد ماتریس 40*40 تبدیل کنه
            شبکه عصبی رو داریم و برای تشخیصش مشکلی نیست
            3-کنار هم قرار دادن تشخیصها و تشخیص عدد
            فکر کنم مراحل 2و3 مشکلی نداشته باشه
            فقط مرحله اولش ممکنه کمی سخت تر باشه
            می خواستم نظر شما رو در مورد این موضوع بدونم راهنمایی های شما به من خیلی کمک کرده امیدورام در این مورد بازهم منو کمک کنید
            با تشکر از شما شهرام
            موفق باشید

            دیدگاه


              #36
              پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

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

              دیدگاه


                #37
                پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

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

                دیدگاه


                  #38
                  پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

                  با سلام به آقای مهندس نحوی
                  مهندس با استفاده از همان روش هستوگرام عمودی و افقی که گفتید تونستم ارقام عدد رو از هم جدا کنم و اعدد توسط برنامه قابل تشخیص است.
                  برنامه که من با استفاده از راهنمایی های شما و البته پروژتون نوشتم بدین شکل کار میکنه مهندس:
                  ابتدا با استفاده از نرم افزار نقاشی مثلا paint یک صفحه پشت سفید ایجاد کرده اندازه مهم نیست و با قلم سیاه یک عدد با هرتعدادرقم که می خواهیم وارد می کنیم فقط چند نکته وجود داره اول اینکه فقط یک عدد باید وارد کنیم یعنی اینکه اگر فاصله بین ارقام عدد ورودیمون بیش از 18 پیکسل باشه اون رو دو عدد فرض کرده و برنامه پاسخ فقط یک عدد وارد کنید رو میده دوما عدد باید در تقریبا یک سطر باشه منظورم اینه که از نظر سطری باید بین ارقام سطر خالی نباشه یعنی یک رقم بالاو یک رقم پایین صفحه نباشه اگر یک رقم یک پیکسل بالاتر از ارقام دیگه باشه در اون صورت مجددا برنامه عدد رو دو تا فرض می کنه و پیغام قبلی رو میده.
                  نگته بعدی اینکه ارقام نباید به صورت ستونی overlap بشن و مقداری حداقل 1 پیکسل و حداکثر 18 پیکسل فاصله داشته باشند.
                  بعد عدد رو با فرمت bmp ذخیره می کنیم .بعد از اجرای برنامه پنجره ای باز شده وما می تونیم با استفاده از اون پنجره عکس رو انتخاب کنیم .
                  عکس وارد برنامه شده و ارقام عدد از هم جدا شده در فایل جداگانه قرار گرفته و به مقیاس درست تبدیل شده و برای اینکار باید تعدادی ستون به ابتدا و انتهای ماتریس عدد بیفزاییم بعد آن را وارد شبکه عصبی جهت تشخیص میکنیم نکته دیگر این است که اگر یکی از ارقام تشخیص داده نشودبه جای آن در خروجی علامت x چاپ می شود ارقام یکی یکی در یک ماتریس قرار گرفته و بعد به صورت رشته ای به یک متغییر هر با اضافه می شوند تا عدد ایجاد شود و
                  در خروجی نشان داده می شود.
                  فقط ذکر این نکته ضروری است چون شبکه ما با نمونه های دست خط واقعی آموزش داده شده یک مقدار با بعضی از ارقام که با paint خوب قابل کشیدن نیست مشکل پیدا می کند که البته با کمی دقت در کشیدن عدد این مشکل هم به وجود نخواهد آمد.
                  مهندس اگر ممکنه نظرتون رو لطف کنید و بگید ممنون می شم
                  با تشکرفراوان از زحمات شماشهرام کبیری

                  دیدگاه


                    #39
                    پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

                    با سلام به آقای مهندس نحوی
                    مهندس فقط خواستم بگم برنامه ای که توضیح دادم یکم مشکل داشت اصلاح کردم
                    1-علامت x روحذف کردم چون همیشه شبکه عصبی تشخیص می ده حالا ممکنه که اشتباه باشه یا درست پس همیشه تشخیص وجود داره و اون مورد که من گفتم اگر تشخیص نداد به جاش یک x می زاره اشتباه بود
                    2-اگر رنگ قلم در paint (مثلا) سیاه نباشه و هر عدد یک رنگی به غیر از مشکی هم باشه مشکلی پیش نمیادو برنامه کار میکنه
                    همین با تشکر از شما
                    امیدوارم همیشه موفق باشید
                    شهرام کبیری

                    دیدگاه


                      #40
                      پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

                      سلام.
                      شهرام جان در اولین فرصت پست ها رو میخونم و پاسخ میدم.
                      موفق باشید.
                      شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآ‌ی جهاد فیآ‌سبیلآ‌الله.
                      هجرت، هجرت از سنگینیآ‌هاست و جاذبهآ‌هایی که تو را به خاک میآ‌چسباند.
                      چکمهآ‌هایت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت کن.

                      دیدگاه


                        #41
                        پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

                        آعداد نقطه ندارن ... تکه تکم نیسن !
                        خیلی ساده با همین روش میشه تک تکشونو در اورد ... به این روش میگن fill کردن ( یا پرکردن) ... میتونین از کلمه کلیدی color segmentation در گوگل استفاده کنین
                        به دلیل رعایت نکردن قوانین ، امضا ویرایش شد.

                        دیدگاه


                          #42
                          پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

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

                          دیدگاه


                            #43
                            پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

                            سلام آقای نحوی
                            من مقاله شما رو در مورد اعداد دست نویس فارسی خوندم جالب بود
                            من الان در حال تحویل پروژه ام هستم البته واسه اعداد تایپی اونم انگلیسی مشکلی که الان باهاش روبرو هستم اینه که تشخیس برنامه پایینه من از newgrnn استفاده کردم یه عالمه سوال دارم و پروژه ام رو هم باید تا چند روز اینده تحویل بدم . می تونید راهنمایم کنید خیلی ممنون میشم .
                            با آرزوی موفقیت برای تمام دوستان.

                            دیدگاه


                              #44
                              پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

                              سلام.
                              خب بفرمایید در چه زمینه ای هست؟ البته شماره ام رو در پیام خصوصی براتون فرستادم ولی ترجیحا اگه سوالات رو اینجا مطرح کنید تا دوستان دیگه هم استفاده ببرن بهتره .
                              موفق باشید.
                              شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآ‌ی جهاد فیآ‌سبیلآ‌الله.
                              هجرت، هجرت از سنگینیآ‌هاست و جاذبهآ‌هایی که تو را به خاک میآ‌چسباند.
                              چکمهآ‌هایت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت کن.

                              دیدگاه


                                #45
                                پاسخ : برنامه و دیتابیس کاملا تشخیص ارقام دست نویس فارسی (HCR) با شبکه های عصبی MLP

                                سلام من در اجرای برنامه یه مشکلی دارم که از شما خواهش می کنم کمک کنید.
                                من خیلی متلب رو وارد نیستم
                                وقتی m فایل رو اجرا می کنم و مسیر دو فایل mat داده شده رو اصلاح می کنم پیغام زیر صادر می شه که فکر می کنم تابع مربوطه رو ندارم
                                آیا من ناقص دانلود کردم یا کار خاصی لازمه. اگه ممکنه جواب بدین
                                ??? Undefined function or variable "numpca".

                                Error in ==> finalf at 127
                                pcacovmd0(j,1:numpca)=(dspcacov0*(meannum0-beshap0(j,)&#039';

                                دیدگاه

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