اطلاعیه

Collapse
No announcement yet.

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

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

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

    سلام.
    اون یه تابع نیست یه متغییر هست، چند خط بالاتر یه همچین عبارتی هست
    %numpca=50
    اون علامت % رو پاک کنید تا خط فعال بشه این ایراد رفع میشه.
    موفق باشید.
    شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
    هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
    چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

    دیدگاه


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

      آقای مهندس من برنامه رو اجرا کردم.بعد از هر بار که اجرا میشه نمودار trainnml ظاهر میشه و بعداز حدودا 16 بار اجرا شدن متوقف می شه و هر با مینویسه
      TRAINLM, Epoch 0/25, MSE 0.110224/0, Gradient 484964/1e-010
      TRAINLM, Epoch 25/25, MSE 0.00174848/0, Gradient 782.967/1e-010
      TRAINLM, Maximum epoch reached, performance goal was not met.
      البته اعداد دو خط اول تغییر می کنن اما عبارت آخر همیشه ثابته.
      و این هم آخرین چیزی که ظاهر میشه

      Per =

      99.6273


      per =

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

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

      دیدگاه


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

        سلام دوست عزیز.
        اولا اینکه خیلی خوشحالم که به این موضوع علاقه مند شدید.
        ولی در مورد سوالتون.
        این برنامه امتحان شده هست، یعنی طوری تنظیم شده که همواره شبکه ها آموزشی میبینن و تا 95 یا 96 درصد درست تشخیص میده. اون عدد هایی که میبینید درصد تست شبکه های آموزش دیده هست. یعنی شبکه های آموزش دیده، تصاویری که در دیتابیس هست ولی تا حالا ندیدن رو تا 95 درصد درست تشخیص میده.
        ---
        ولی در مورد ذخیره شبکه، تا جایی که خاطرم هست net0 و net1 و ... تا net9 اینها رو در workspace انتخاب کنید. بعد راست کلیک کنید و saveآ‌ رو بزنید. یه جای هارد ذخیره کنید. زمانی که خواستید ازشون استفاده کنید دستور loadآ‌ رو بنویسید و ... .
        ---
        دوست عزیز هر سوالی دارید بپرسید خوشحال میشم بتونم کمکی بکنم
        موفق باشید.
        شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
        هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
        چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

        دیدگاه


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

          سلام مهندس . اگه ممکنه این سوالات رو جواب بده:
          1-در beshap قراره چه چیزی ذخیره بشه؟ چرا860و1600؟
          2-ساختار ماتریس database چطوریه و در هر درآیش چه چیزایی ذخیره شده؟
          3-numpca چیه و چرا 50
          4-dspcacov مخفف چیه و چه چیزی توش ذخیره می شه؟ چرا میانگین ماتریس beshap رو حساب می کنیم؟
          5-چرا این کارها رو 800 بار انجام می دیم؟((numtrain=800
          6- میشه بگید از کجا عملیات آموزش تمام میشه و عملیات تست شروع می شه؟
          7- p0 تاp9 هر کدام 10 دایه دارند که مجموعا 100 تا میشه اینها چی هستند میشه یه کم توضیح بدین؟
          8-در newff مولفه دوم طبق راهنمای متلب سایز I امین لایه ازn لایه است.اولا چراhl=10 و [hl 1] یعنی چه؟
          9-میشه مفهوم sim رو یه کم توضیح بدین ؟هرچی help رو بررسی کردم متوجه کارش نشدم. همون که خروجیش در y ریخته شده.
          10- اینکه چرا حلقه تا 1610 ادامه پیدا می کنه رو دوستمون پرسیدن و فرمودین بعدا عوض شده به 8000 آیا هنوز معتقدین باید 8000 بشه؟
          11-tpt چیه و چرا beshap ها از801 تا 860 در اون قرار می گیرن؟و چرا اینبار num برابر 600 در نظر گرفته شده؟

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

          دیدگاه


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

            سلام.
            1- تصویر هر عدد رو باید تبدیل به بردار کنیم. بردار یک تصویر 40*40 میشه یه بردار 1*1600 یعنی سطر ها رو دونه دونه کنار هم میذاریم تا بشه یک سطر ولی ستون هاش زیاد میشه.
            2- از هر عدد 860 نمونه داریم، عدد اول شماره عدد هست مثلا 1 تا 10 که 1 نماینده 0 و 10 نماینده 9 هست، عدد بعدی بین 1 تا 860 میتونه تغییر کنه، بعدی هم ابعاد ماتریس تصویر هست مثلا اگه بخواهید یکی از ارقام عدد 9 رو ببینید باید این دستور رو بنویسید
            s=database(10,1,:, ok
            imshow(s) ok
            ok رو برای این گذاشتم که نوشته بهم نریزه.
            3- زمانی که ضرایب PCA رو محاسبه میکنیم یه ماتریس 1600*1600 میده که کل این داده ها بدرد ما نمیخوره، برای همین 50 تاش را سطری یا ستونی برمیداریم ویژگیها بیشتر در سطر و ستون های اول هست.
            4- همون ضرایب PCAآ‌ هست که ابعادش کاهش پیدا کرده، یعنی شده 1660*50
            5- برای آموزش شبکه ها از 800 تا از نمونه های هر عدد استفاده میکنیم، 60 تای بقیه برای تست شبکه ها هست.
            6- از اونجایی که نوشته
            num=600;
            for i=1:num

            7- اونها ورودی های شبکه ها هستن، مثلا شبکه ای که قراره عدد 0 رو از بقیه تشخیص بده، هم باید عدد 0 بهش داده بشه هم اعداد دیگه که بتونه اونها رو از هم تشخیص بده، این P ها ماتریس های ورودی هستن که هم عدد مورد نظر توشون هست و هم غیر از عدد مورد نظ.
            8- یعنی تعداد نرون های لایه میانی 10 تا هست، اینطوری نوشتم که نخوام مال هر 10 تاشبکه رو هر دفعه عوض کنم اگه hl رو عوض کنم مال همه عوض میشه.
            9- میشه اینطوری گفت که ما یه شی به اسم net ساختیم حالا میخواهیم ورودی ها رو بهش اعمال کنیم و خروجی اش رو بگیریم، sim این کار رو برای ما میکنه.
            10-بله اون چیزی که به اون دوستمون پاسخ دادم درسته.
            11- اون برای تست کردن شبکه هست اون تصاویری هست که شبکه ندیده.
            موفق باشید.
            شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
            هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
            چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

            دیدگاه


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

              از راهنماییتون ممنون
              فقط اون بخشی که فرمودید
              s=database(10,1,:, ok
              imshow(s) ok
              رو در دو دستور مجزا در command window متلب نوشتم (البته بدون ok)
              دستور اول s رو بصورت یک آرایه 40 در 40 مقدار دهی می کنه که بعضی از خانه ها مقدار 0 و بعضی 255 رو دارند که فکر میکنم یعنی پیکسل سفید و سیاه
              اما دستور دوم رو خطا میگیره

              >> imshow(s)
              ??? Error using ==> imuitools\private\imageDisplayParseInputs>valid ateCData
              Unsupported dimension

              Error in ==> imuitools\private\imageDisplayParseInputs at 205
              cdata = validateCData(cdata,image_type);

              Error in ==> imshow at 151
              [cdata, cdatamapping, clim, map, xdata, ydata, ...

              که فکر میکنم اینطور نوشتن دستور دوم درست نباشه .البته اونجایی که شما توی برنامه نوشتید
              s(:,=database(i,j,:,;
              % imshow(s);
              وقتی % رو برمی دارم درست جواب میده .اگه میشه بفرمائید مشکل کجاست؟
              ممنون

              دیدگاه


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

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

                دیدگاه


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

                  سلام.
                  دوست عزیزمون sml_84 توی پیام خصوصی یه سری نکات رو متذکر شدن که به نظر بد نیومد که پیامشون رو اینجا بذارم و جواب بدم. متن نامه ایشون:

                  "آقا من برنامه شما رو راجع به OCR بررسی کردم و به یه اشکال پیدا کردم. فکر میکنم که شما PCA رو درست استفاده نکردید.
                  اولا طبق مراجع، PCA رو باید بعد از اینکه ماریتس مربوط به عکس ترین رو از میانگین کم کردید و بعد بردار ویژه یا همون eigenvector رو بدست میاریم. حالا PCA رو باید اعمال کنیم یعنی اینکه COV رو باید از عکس های ترین منهای میانگین بدست بیاریم.
                  دوم اینکه شما یه دیتابیس کلی دارید که 860 تا عکس داره که مجموعا میشه 8600 تا نمونه. کاری که شما کردید اینه که همه دیتابیس رو ازش PCA گرفتید. به نظر شما این منطقیه که از همه نمونه هایی که برای تست و ترین استفاده میشه بیاییم PCA بگیریم؟.
                  اگه اینیه که شما از نمونه هایی که میخواهید تست کنید هم توی ترین دارید، دیگه چرا تست میکنید؟
                  من فکر میکنم باید دیتابیس رو دو قسمت کنید 800 تا برای ترین و 60 تا برای تست.
                  ضمنا گمونم eigenvector اینو میگه که اگه row(m) و cloumn(n) باشه و m<<n باشه میشه از کوچکترین COV گرفت و بعد PCA ."
                  ----
                  تشکر از دوست خوبمون
                  شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                  هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                  چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                  دیدگاه


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

                    سلام.
                    بازم تشکر که نظراتتون رو مطرح کردید.
                    در مورد اینکه زمانی که PCA میگیریم نباید داده های تست هم باشن، من اینو تست کردم در نتیجه تغییری ایجاد نشد، ولی نکته جالبی بود.

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

                    دیدگاه


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

                      با سلام!
                      موضوع خوب و جالبی را دنبال می کنید!
                      من هم از آقای نحوی سوالی داشتم!
                      من یک سری عکس دارم که اعداد 1234567890 داخل آن هست! البته به صورت نا مرتبو داخل کادر نیستند تا مانند تهیه data base شما آنها را استخراج کنم!
                      می خواستم این اعداد از هم جدا و هر کدام را به صورت عکس داشته باشم!
                      لطفا کمک کنید!

                      دیدگاه


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

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

                        دیدگاه


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

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

                          دیدگاه


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

                            نوشته اصلی توسط محمد نحوی
                            سلام.
                            شهرام جان در مورد دیتابیس که توضیح دادم، یه جدول با ابعاد مشخص توی ورد در آوردیم بعد پرینت کردیم. حدود 1000 صفحه، از صبح تا عصر توی دانشگاه هر کسی میومد و میرفت اینو بهش میدادیم یه ردیف از صفر تا 9 توش می نوشت(این کار رو با 10 نفر دیگه انجام دادیم). بعد کل این کاغد ها رو اسکن کردیم، بعد یه برنامه نوشتم که از داخل اون جدول ها اعداد رو کشید بیرون و تمام صفر ها رو کنار هم گذاشت تمام 1 ها رو تمام 2 ها رو ... .
                            بعد همه رو توی یه متغییر به اسم database ذخیره کردیم، برای اینکه این کار ها رو از اول انجام ندیم، متغییر رو ذخیره کردیم که همون فایل با پسوند mat هست. متلب این امکان رو میده که یه متغییر رو تکی به صورت یه فایل با پسوند mat ذخیره کنی. دیگه اون فایل متلب شد کل دیتابیس ما که حدود 13 مگ هست.
                            چون این دیتابیس یه متغییر خود متلب هست، من فقط اول برنامه متغییر رو یه بار load میکنم دیگه دیتابیس داخل برنامه هست و مثل یه ماتریس عادی باهاش کار میکنم.
                            سوالی بود در خدمتم :nerd:
                            موفق باشید.
                            سلام آقای مهندس نحوی
                            امکان داره برنامه ای که برای database نوشتید رو هم بگذارید من سعی کردم خودم با توضیحات شما و جدولی که درست کردم وتوش ارقام رو وارد کردم این کار رو بکنم ولی موفق نشدم .خیلی ممنون می شم اگر برنامه database رو به همراه چند تا از عکسهای عددها که دارید لطف کنید بگذارید.

                            از راهنماییهای مفیدتون ممنون
                            خبر آمد خبری در راه است---- خرم آندل که ازو گاهست

                            دیدگاه


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

                              سلام.
                              اون تصاویر اینطوری قابل مشاهده نیستن. باید تصویر یه عدد رو ازشون بکشید بیرون بعد اونو نمایش بدید مثلا اینطوری:
                              s(:,=database(2,200,:, 1
                              imshow(s) 1
                              موفق باشید
                              شأن انسان در ايمان و هجرت و جهاد است و هجرت، مقدمهآ‌ي جهاد فيآ‌سبيلآ‌الله.
                              هجرت، هجرت از سنگينيآ‌هاست و جاذبهآ‌هايي كه تو را به خاك ميآ‌چسباند.
                              چكمهآ‌هايت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت كن.

                              دیدگاه


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

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

                                دیدگاه

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