• درخواست دمو
  • ۰۳۱-۹۱۰۰۱۸۸۱
بهسان اندیش
  • صفحه اصلی
  • محصولات
    • نرم افزار پلاک خوان
      • نرم افزار ثبت تردد جاده ای
      • نرم افزار مدیریت پارکینگ
      • نرم افزار تعمیرگاه ، کارواش و تعویض روغن
    • نرم افزار باسکول
    • راهکارهای سازمانی
      • نرم افزارانبار و حساب داری
    • محصولات جانبی
      • دوربین پلاک خوان
      • ماژول رله کنترل راهبند
  • نمونه کارها
    • سامانه جامع پلاکخوان خودرو
    • سامانه جامع مدیریت باسکول
    • سامانه قرائت فرم های چند گزینه ای
  • وبلاگ
  • ارتباط با ما
    • تماس با ما
    • درباره ما
    • دعوت به همکاری
  • جستجو
  • منو منو

ایجاد پانوراما با چندین عکس قسمت 2

آموزش عمومی پردازش تصویر و بینایی ماشین

مرحله 1: استخراج ویژگی:

ما می بایست از توصیف کننده opencv_contrib’s SIFT استفاده کنیم. SIFT، هم چنین در مقیاس ثابت تغییر ویژگی، یک الگوریتم بسیار قدرتمند CV است. برای خواندن بیشتر در مورد ویژگی ها، لطفا بسته کلمات ویژوال من برای پست طبقه بندی عکس را بخوانید. هم چنین OpenCV’s docs on SIFT را بررسی کنید. آنها یک منبع بسیار خوب هستند!

    sift_obj = cv2.xfeatures2d.SIFT_create()
    descriptors, keypoints = sift_obj.detectAndCompute(image_gray, None)

اگر شما ویژگی ها را طرح ریزی کنید، این است که چگونه آن را خواهید دید. (تصویر سمت چپ تصویر واقعی را نشان می دهد. تصویر سمت راست با ویژگی های شناسایی شده توسط SIFT یادداشت نویسی شده است.)

مثال 1: استفاده از تصویر Lunchroom

sift keypoints

گام دوم: تطبیق دادن مطابقت های بین تصاویر:

هنگامی که شما توصیف گرها و نقاط کلیدی دو تصویر را دارید، به این معنی که یک جفت تصویر، ما مطابقت های بین آنها را پیدا خواهیم کرد. چرا این کار را می کنیم؟ خوب، برای پیوستن هر دو تصویر به یک تصویر بزرگتر، ما باید درباره نقاط دارای اشتراک که چه هستند به دست بیاوریم. این نقاط دارای اشتراک به ما یک ایده از جهت گیری تصویر دوم w.r.t به دیگری می دهد. و بر اساس این نقاط رایج، ما یک ایده می گیریم که آیا تصویر دوم به تصویر بزرگتر اسلاید شده است یا چرخش داده شده و سپس همپوشانی شده است یا شاید مقیاس پایین/بالا شده و سپس نصب شده است. همه این اطلاعات از طریق ایجاد مطابقت ها به دست آمده است. این فرآیند ثبت(registration) نامیده می شود.

برای تطبیق، می توان از FLANN یا BFMatcher استفاده کرد که توسط opencv ارائه شده است.

  # FLANN parameters
    FLANN_INDEX_KDTREE = 0
    index_params = dict(algorithm = FLANN_INDEX_KDTREE, trees = 5)
    search_params = dict(checks=50)   # or pass empty dictionary

    flann = cv2.FlannBasedMatcher(index_params,search_params)

    matches = flann.knnMatch(des1,des2,k=2)

    img3 = cv2.drawMatchesKnn(img1c,kp1,img2c,kp2,matches,None,**draw_params)

    cv2.imshow("correspondences", img3)
    cv2.waitKey()

پس از محاسبه تطابق ها، شما یک خروجی مشابه دریافت می کنید:

با مجموعه داده Lunchroom

matches

تطبیق ویژگی در تصاویر Lunchroom

با مثال تپه:

matches

تطبیق ویژگی در تصویر نمونه تپه

مرحله 3: محاسبه هموگرافی

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

فرمول

از این رو، این برای ماتریس H حل می شود.

خب، برای ارزیابی هموگرافی یک کار ساده است. اگر از opencv استفاده می کنید، این کد دو خط است. با این حال، من توصیه می کنم که خود آن را پیاده سازی کنید.

 H, __ = cv2.findHomography(srcPoints, dstPoints, cv2.RANSAC, 4)

هورا! ماتریس هموگرافی ما  چیزی شبیه به این به نظر می رسد …

ماتریس هموگرافی

به هر حال، گرافیک بسیار زیبا را کنار بگذارید،  آنچه که ماتریس هموگرافی است را بفهمید. هموگرافی خطوط مستقیم را در یک تصویر حفظ می کند. از این رو تنها تغییرات احتمالی ممکن است برگردان ها، وابسته انتقال های خطی و غیره باشند.

به عنوان مثال، برای انتقال خطی

تبدیل خطی

همچنین میتوانید با h13 و h23 برای برگردان بازی کنید.

گام چهارم: خم کردن و دوختن:

برای درک دوختن، من می خواهم پیشنهاد بدم  Adrian Rosebrock’s blog post on OpenCV Panorama stitching. وبلاگ او توضیح فوق العاده ای در مورد چگونگی اقدام به دوخت تصویر و ساخت پانوراما با استفاده از 2 تصویر ارائه می دهد.

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

انواع خم کردن:

*سطحی: در جایی که  هر تصویر یک عنصر از یک سطح مسطح است، با توجه به برگردان و چرخش …

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

* کروی: در بالا به جای استوانه، مدل مرجع یک کره است.

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

warped_image = cv2.warpPerspective(image, homography_matrix, dimension_of_warped_image)

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

تصاویر خم شده Lunchroom

 

دوختن   :

سابقاً، ما یک تصویر خم شده را به دست آورده ایم، ما به سادگی تصویر خم شده را همراه با تصویر دوم اضافه می کنیم. این را زیاد از طریق دوختن در سمت راست و دوختن در سمت چپ تکرار کنید، و هورا! ما خروجی را داریم.

من می خواهم کمی عمیق تر به بخش نحوه انجام تصویر پیوستن بپردازم. می گوییم ما یک ماتریس هموگرافی H داریم. اگر مختصات شروع هر تصویر (0،0) و نقطه انتهایی فرمول باشد،ما می توانیم ابعاد تصویر خم شده جدید را با شروع تا پایان دریافت کنیم. توجه: اگر start_pt که بیرون می آید منفی باشد، برای یک تغییر برگردانی حساب می شود. یعنی “اقدام برای تغییر برگردان به تصویر توسط  استارت پی“. همچنین اطمینان حاصل کنید که ماتریس هموگرافی عادی شده است به طوری که آخرین ردیف به یک بردار واحد مربوط می شود.

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

    def leftstitch(self):
        # self.left_list = reversed(self.left_list)
        a = self.left_list[0]
        for b in self.left_list[1:]:
            H = self.matcher_obj.match(a, b, 'left')
            print "Homography is : ", H
            xh = np.linalg.inv(H)
            print "Inverse Homography :", xh
            # start_p is denoted by f1
            f1 = np.dot(xh, np.array([0,0,1]))
            f1 = f1/f1[-1]
            # transforming the matrix 
            xh[0][-1] += abs(f1[0])
            xh[1][-1] += abs(f1[1])
            ds = np.dot(xh, np.array([a.shape[1], a.shape[0], 1]))
            offsety = abs(int(f1[1]))
            offsetx = abs(int(f1[0]))
            # dimension of warped image
            dsize = (int(ds[0])+offsetx, int(ds[1]) + offsety)
            print "image dsize   =  >  ", dsize
            tmp = cv2.warpPerspective(a, xh, dsize)
            # cv2.imshow("warped", tmp)
            # cv2.waitKey()
            tmp[offsety:b.shape[0]+offsety, offsetx:b.shape[1]+offsetx] = b
            a = tmp

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

 def mix_match(self, leftImage, warpedImage)
        i1y, i1x = leftImage.shape[:2]
        i2y, i2x = warpedImage.shape[:2]

        for i in range(0, i1x):
            for j in range(0, i1y):
                try:
                    if(np.array_equal(leftImage[j,i],np.array([0,0,0])) and  \
                        np.array_equal(warpedImage[j,i],np.array([0,0,0]))):
                        # print "BLACK"
                        # instead of just putting it with black, 
                        # take average of all nearby values and avg it.
                        warpedImage[j,i] = [0, 0, 0]
                    else:
                        if(np.array_equal(warpedImage[j,i],[0,0,0])):
                            # print "PIXEL"
                            warpedImage[j,i] = leftImage[j,i]
                        else:
                            if not np.array_equal(leftImage[j,i], [0,0,0]):
                                bl,gl,rl = leftImage[j,i]                               
                                warpedImage[j, i] = [bl,gl,rl]
                except:
                    pass
        # cv2.imshow("waRPED mix", warpedImage)
        # cv2.waitKey()
        return warpedImage def mix_match(self, leftImage, warpedImage)
        i1y, i1x = leftImage.shape[:2]
        i2y, i2x = warpedImage.shape[:2]

        for i in range(0, i1x):
            for j in range(0, i1y):
                try:
                    if(np.array_equal(leftImage[j,i],np.array([0,0,0])) and  \
                        np.array_equal(warpedImage[j,i],np.array([0,0,0]))):
                        # print "BLACK"
                        # instead of just putting it with black, 
                        # take average of all nearby values and avg it.
                        warpedImage[j,i] = [0, 0, 0]
                    else:
                        if(np.array_equal(warpedImage[j,i],[0,0,0])):
                            # print "PIXEL"
                            warpedImage[j,i] = leftImage[j,i]
                        else:
                            if not np.array_equal(leftImage[j,i], [0,0,0]):
                                bl,gl,rl = leftImage[j,i]                               
                                warpedImage[j, i] = [bl,gl,rl]
                except:
                    pass
        # cv2.imshow("waRPED mix", warpedImage)
        # cv2.waitKey()
        return warpedImage

اما این روش بیش از حد پیکسل تکرار خواهد کرد. این خیلی آهسته است، به دو دلیل. اولاً، این با تکرار سنگین پیچیده می شود. و، خوب، من شخصاً چنین حلقه های سنگینی را در ++C اجرا می کنم و نه در پایتون.

بنابراین، اساساً، این همان نحوه ی عمل اصلی من به نظر می رسد… قلب و هسته تمام پیاده سازی ها

 if __name__ == '__main__':
        try:
            args = sys.argv[1]
        except:
            args = "txtlists/files1.txt"
        finally:
            print "Parameters : ", args
        s = Stitch(args)
        s.leftshift()
        # s.showImage('left')
        s.rightshift()
        print "done"
        cv2.imwrite("test.jpg", s.leftImage)
        print "image written"
        cv2.destroyAllWindows()

جزئیات پیاده سازی: بررسی کد

نتایج!!!

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

panorama

دوختن با استفاده از مثال اتاق

 

example

example

دوخت با میز ناهار خوری خونه من 🙂

example

دوخت با مجموعه داده های ترکیبی

 

در زیر تصاویر دیگر گرفته شده از github و منابع مختلف آنلاین هستند. مراجع را برای بیشتر ببینید.

 

example

example

دوختن با مثال ساختمان

 

example

example

دوختن با استفاده از مثال تپه

 

example

example

دوختن با استفاده از مثال اتاق

 

برای بررسی کد در Github اینجا کلیک کنید

من خم شدن استوانه ای و چگونه opencv واقعاً دوختن را اجرا می کند را در یک پست متفاوت پوشش خواهم داد.

منابع:

مقاله پایه برای پانوراما با استفاده از ویژگی های ثابت مقیاس:

[1] ” دوخت تصویر پانورامیک خودکار با استفاده از ویژگی های ثابت”, Download.springer.com , 2016. [Online]. Available: matthewalunbrown.com/papers/ijcv2007.pdf

تصاویر تست گرفته شده از

[2]”PASSTA Datasets”, Cvl.isy.liu.se, 2016. [Online]. Available: http://www.cvl.isy.liu.se/en/research/datasets/passta/.

[3] “OpenCV Stitching example (Stitcher class, Panorama)”, Study.marearts.com, 2013. [Online]. Available: http://study.marearts.com/2013/11/opencv-stitching-example-stitcher-class.html.

[4] “Github daeyun Image-Stitching Test Images”, 2016. [Online]. Available: https://github.com/daeyun/Image-Stitching/tree/master/img/hill.

[5] “Github tsherlock Test Images”, 2016. [Online]. Available: . https://github.com/tsherlock/panorama/

Filed under CV, IP | Tagged: CV images stitching mosaicking | Permalink
ترجمه شده از پیج https://kushalvyas.github.io/stitching.html

ایجاد پانوراما با چندین عکس قسمت 1
ایجاد پانوراما با چندین عکس قسمت 2

دسامبر 4, 2019/0 دیدگاه /توسط hgadmin
https://behsanandish.com/wp-content/uploads/2019/08/matlab_pano-1-1.png 375 918 hgadmin https://behsanandish.com/wp-content/uploads/2020/09/logo-farsi-englisi-300x195-1.png hgadmin2019-12-04 10:00:192019-12-04 10:00:19ایجاد پانوراما با چندین عکس قسمت 2

ایجاد پانوراما با چندین عکس قسمت 1

آموزش عمومی پردازش تصویر و بینایی ماشین

ایجاد یک پانوراما با استفاده از چندین عکس:

چسباندن(دوختن) چند تصویر

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

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

به عنوان مثال، مجموعه ی تصاویر زیر را در نظر بگیرید(گرفته شده از نمونه های MATLAB). از یک گروه از یک سری عکس های بهم پیوسته ورودی، ما اساسا یک تصویر چسبانده شده منفرد ایجاد می‌کنیم. یکی که صحنه کامل را در جزئیات توضیح می دهد. این یک الگوریتم واقعاً جالب است!

panorama

panorama

مباحث تحت پوشش پیاده سازی پانوراما در زبان برنامه نویسی پایتون انجام خواهد شد.

خواندن چندین عکس (به ترتیب)

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

دوختن تصاویر

شروع کنیم …

اجازه دهید ابتدا مفهوم mosaicking (تکه تکه بهم پیوستن) یا دوختن تصویر را درک کنیم. اساسا اگر بخواهید یک صحنه بزرگ را بگیرید. حالا دوربین شما تنها می تواند یک تصویر از یک وضوح خاص ارائه دهد و آن وضوح، می گویند 640 به 480، قطعا  برای گرفتن دید بزرگ پانورامیک کافی نیست. بله، به نظر می رسد خوب است. درست است! چنین عکسهایی که به عنوان یک مجموعه منظم از صحنه مطرح می شوند، به عنوان موزاییک یا پانورامای نامیده می شوند. کل فرایند به دست آوردن تصویر چندگانه و تبدیل آنها به چنین پانوراما به عنوان موزاییک کردن(mosaicking) تصویر نامیده می شود. و در نهایت، ما یک عکس زیبا، بزرگ و سیع از نمایش منظره داریم.

روش دیگر برای دستیابی به این هدف، استفاده از لنز زاویه وسیع در دوربین شما است. آنچه که یک لنز زاویه وسیع انجام می دهد، به طور چشمگیری زاویه دید شما را افزایش می دهد. خروجی، متفاوت خواهد بود (بدیهی است). اما برای اهداف این آموزش، اجازه دهید به نحوه ایجاد پانوراما با استفاده از رایانه و نه لنز بپردازیم.

راه اندازی محیط

لطفا توجه داشته باشید که سیستم شما با پایتون 2.7 راه اندازی شده است (پیاده سازی کد در python2.7 است اگر شما نسخه های دیگر را دارید، بنابراین لطفا کد را تغییر دهید) و OpenCV 3.0. ما از خدمات OpenCV Helper برای خواندن تصاویر، نوشتن تصاویر و تبدیل فضاهای رنگ استفاده خواهیم کرد. هنگامی که تصاویر به دست می آید، کل محاسبات پانوراما با استفاده از یک تابع اختلاط خانه انجام می شود. این مقاله به سه قسمت عمده تقسیم شده است.

  • ورود، خواندن و پردازش تصاویر: مسیرهای تصویری از فایل های متنی. هر متن فایل حاوی لیست مسیرهای هر تصویر است. اطمینان حاصل کنید که مسیرها به ترتیب جهت چپ به راست هستند.
  • محاسبه جهت نسبی تصاویر w.r.t با یکدیگر: جفت
  • ماژول دوختن/ترکیب و مطابقت: که اساسا دو تصویر  را در یک زمان پیوند می دهد.

الگوریتم

الگوریتم برای انجام دوخت تصویر بسیار ساده است.

  images []  < -- Input images Assuming, that the center image is no_of_images/2 let centerIdx = length(images)/2 for each images[] at positions 0 - >   centerIdx :
        perform leftward stitching

    for each images[] at positions centerIdx   -  >   length(images):
        perform rightward stitching

خروجی یک موزاییک کامل از تصاویر ورودی خواهد بود.

بعضی محدودیت ها الگوریتم وقت گیر است به دلیل تعداد تکرارهای درگیر، بهتر است که تعداد تصاویر ورودی hte چندان زیاد نباشد یا نه از وضوح بسیار بالا (به عنوان مثال 4000×3000). پیاده سازی من بر روی رایانه 2 گیگابایتی دارای پردازنده Intel i3 (بر روی دستگاه من آزمایش نشده است) مبتنی است. به راحتی می توانید این مدل را با استفاده از مشخصات بالاتر یا شاید GPU ارتقا دهید/مقیاس کنید. هیچ وقت برای سعی کردن خیلی دیر نیست.

معماری پروژه:

|_ code -|
    |        |-- pano.py
    |        |-- txtlists-|
    |                     |--files1.txt .... 
    |   
    |_ images - |
    |           |- img1.jpg
    |           |- abc.jpg 
    |           .... and so on ...

معماری پروژه به شرح زیر است. دایرکتوری کد شامل فایل اصلی pano.py است. همچنین شامل یک فهرست / دایرکتوری است که حاوی فایل هایی است که دارای مسیر هایی به تصاویر در پانوراما هستند. این تصاویر بصورت جداگانه داخل تصاویر / فهرست ذخیره می شوند.

در این آموزش، من از تصاویر مجموعه داده های PASSTA استفاده خواهم کرد. این شامل 2 مجموعه داده، رستوران غذاهای مختصر و ترکیبی است. همچنین برای تست، من از تصاویری از وبلاگ بینایی رایانه Mare استفاده خواهم کرد. من از تست تصاویر تپه دیون نیز استفاده خواهم کرد. و هم چنین تی شرلوک !! (برای کاربرد و استنادات مربوطه، نگاهی به منابع بیندازید.)

اکنون قسمت واقعی

برای درک هر دو ماژول دوخت چپ یا راست، اول اجازه دهید برخی مفاهیم بینایی را مستقیماً دریافت کنیم. آنها بودند:

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

هم نگاشتی

خوب، چنین فرض کنید که شما به یک منظره نگاه می کنید. شما یک میدان دید دارید و این میدان دید از آن چیزی است که شما می خواهید پانوراما ایجاد کنید. شما می‌توانید سر خود را بچرخانید و یک منطقه بزرگ را پوشش دهید. اما در حالی که شما مستقیماً نگاه میکنید، مستقیماً دیدن به طور قائم در زیر صحنه، بخش باقی مانده از منظره را کمی مایل یا کمی تنگ شده ظاهر میکند. این به واسطه فیزیک ساده است. از آنجایی که شما در یک جهت مواجه هستید، چیزهایی که به پیرامون بی نهایت شما ظاهر می شوند، نامفهوم هستند، کاهش در ابعاد و نه لزوماً مستقیم/طبیعی (کمی متمایل). این دقیقا همان چیزی است که ما از آن بهره برداری خواهیم کرد.

تصاویری که در شکل بالا نشان داده شده است را در نظر بگیرید. هر تصویر حاوی بعضی قسمت معمولی با تصاویر دیگر است. با توجه به این عادت ما می توانیم بگوییم که تصویر x یا به سمت سمت راست یا چپ تصویر y در می آید.

به هر حال، اکنون که من آن را روشن کرده ام، ادامه دهید تا چگونگی محاسبۀ هموگرافی را انجام دهیم. بگویید شما یک جفت از تصاویر I1، I2 را دارید. شما تصویر اول را ضبط میکنید. سپس شما تصمیم به چرخش دوربین خود می‌گیرید، و یا شاید کمی از برگردان را انجام دهید و یا شاید ترکیبی از حرکت چرخش/برگردان. سپس با به روز رسانی موقعیت دوربین جدید خود، تصویر دوم را ضبط کنید. مشکلی که اکنون وجود دارد این است که چگونه شما برای سیستمی که در آن به ایجاد یک تغییر نیاز خواهید داشت که به طور موثر یک نقطه را که در هر دو تصویر پیش بینی می شود حل کنید. یا به عبارت ساده، چگونه شما یک تصویر w.r.t دیگر از منظره را تجسم می کنید، با توجه به اطلاعات موجود که در مورد هر دو نقطه منظره شما وجود دارد.

هم نگاشتی

انواع تغییرات

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

تصویر زیر را که ببینید، درک میکنید که من در مورد چه چیزی صحبت میکنم.

 

انواع تغییرات

آنچه که در بالا می بینید، می تواند یک خروجی از اعمال هم نگاشتی از I1 = H × I2 باشد. چگونه از هم نگاشتی(Homography) برای تبدیل تصاویر در OpenCV استفاده کنیم؟(این پاسخ را نیز بررسی کنید. این عکس ها از پست مزبور گرفته شده است.)

شما می توانید از روش ()openCV findhomography برای حل مسئله برای هم نگاشتی استفاده کنید. برای پیدا کردن I1 = H × I2 شما نیاز خواهید داشت که مختصات نقاط را در صفحه اصلی تصویر 1 و مختصات نقاط هدف در تصویر 2 را به روش عبور دهید. پس از گذشت زمان، متد، ماتریس هموگرافی را از بین خواهد برد.

نحوه شناسایی نقاط برای محاسبه هموگرافی!

یکی از روش های مستقیم به شرح زیر است:

  Compute similar features in both images

    Out of them , filter out good features (you'll find plenty of tutorials on these )

    Make an array sorts of ; featuresofI1   = =  >   [srcPoints], featuresofI2   = =  >  [dstPoints] (using opencv nomenclature)

    Compute Homography matrix using RANSAC algorithm
دسامبر 3, 2019/0 دیدگاه /توسط daliri
https://behsanandish.com/wp-content/uploads/2018/08/matlab_pano-1.png 375 918 daliri https://behsanandish.com/wp-content/uploads/2020/09/logo-farsi-englisi-300x195-1.png daliri2019-12-03 10:00:092019-12-03 10:00:09ایجاد پانوراما با چندین عکس قسمت 1

حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 3

آموزش عمومی پردازش تصویر و بینایی ماشین

شبکه های عصبی پرسپترون چند لایه

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

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

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

ارائه نمونه داده های ورودی به شبکه عصبی به دو روش امکان پذیر است:

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

–         روش ارائه الگو: در این روش در هر بار نمونه ها به صورت تک تک به شبکه داده شده و خطای متناظر با همان داده بلافاصله محاسبه شده و بر اساس آن، وزن های شبکه به روز رسانی می شوند. سپس نمونه بعدی به شبکه ارائه شده و روند بالا مشابها انجان می پذیرد. چون در این روش در هر گام اصلاح وزن ها بر اساس هر نمونه انجام می پذیرد، الگوریتم هم گرایی خوبی داشته و با توجه به ماهیت تصادفی موجود در ارائه تکی داده ها، احتمال خطر تله مینیمم های محلی بسیار کم خواهد بود.

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

الگوریتم پس انتشار خطا

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

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

1-     روش گرادیان شیب

2-     روش نیوتن

3-     روش اندازه حرکت

4-     روش آنتروپی متقابل

5-     روش Marquarlt-levenberg

الگوریتم پیشنهادی

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

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

ساختار هر شبکه مصنوعی با تعداد سلول ورودی، تعداد لایه های پنهان و تعداد سلول ها در هر لایه پنهان و تعداد سلول خروجی مشخص می شود. شبکه عصبی ارائه شده دارای 7 سلول ورودی، یک لایه پنهان با ده سلول و یک سلول خروجی است. در ادامه جزئیات شبکه پیشنهادی شرح داده خواهد شد.

با توجه به این که هر چه میزان قدر مطلق تفاضل پیکسل مرکزی و میانه پنجره فیلتر کم تر باشد احتمال نویزی بودن پیکسل مرکزی کمتر است، این ویژگی می تواند به عنوان یک ویژگی متمایز کننده پسکسل نویزی از پیکسل سالم به کار رود. ورودی دوم شبکه عصبی حاصل مینیمم گیری روی کانولوشن پنجره فیلتر در چهار فیلتر لاپلاسین می باشد. هر کدام از فیلتر ها نسبت به یکی از لبه های افقی، عمودی، لبه با شیب مثبت و لبه با شیب منفی حساس است. کمینه مقادیر حاصل از کانولوشن این 4 فیلتر را می توان به عنوان معیاری برای تشخیص نویز در نظر گرفت. از مقدار ROAD به عنوان دورودی سوم شبکه عصبی استفاده می شود. مقدار ROAD برای پیکسل های نویزی مقدار بالا و برای پیکسل های سالم مقدار پائین دارد. مقدار چهارم تا هفتم شبکه عصبی، 4 مقدار محاسبه شده توسط فیلتر SD-ROM است. و هر یک از این چهار مقدار اطلاعاتی را در رابطه با وجود نویز در پیکسل مرکزی بیان می کند.

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

رویکرد معمولی که در مقالات مختلف برای حل این مشکل ارائه شده است، تولید یک تصویر تصادفی است و هدف این کار آن است که آموزش شبکه به تصویر خاصی وابسته نباشد. برای آموزش شبکه عصبی پیشنهادی از تصویر 128*128 از بلوک های 4*4 که تمام پیکسل های هر بلوک شدت روشنایی ثابتی دارند که به صورت تصادفی انتخاب می شوند استفاده می شود.

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

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

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

معیار های ارزیابی

برای ارزیابی توانایی متد های مختلف در حذف نویز از تصاویر سطح خاکستری معمولا از دو معیار استاندارد نسبت پیک سیگنال به نویز (PSNR) و میانگین مربعات خطا (MSE)  استفاده می شود.

نتایج شبیه سازی

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

مقادیر PSNR حاصل از اجرای متد پیشنهادی بر روی تصاویر مختلف با درصد نویز متفاوت:

جدول 1- مقادیر PSNR حاصل از متد پیشنهادی بر روی تصاویر مختلف با درصد نویز متفاوت

Peppers

House

Barbara

Boat

Cameraman

%noisy

26.05

45.01

36.66

42.01

38.26

5

25.94

41.35

33.53

38.45

35.26

10

25.77

39.12

31.77

36.43

32.94

15

25.68

37.02

30.09

34.60

31.50

20

25.27

34.38

28.67

32.13

28.70

30

24.77

31.98

26.33

29.84

26.63

40

23.96

29.90

24.79

27.86

24.62

50

22.80

26.90

23.16

25.60

22.83

60

همچنین مقدار MSE بین تصویر اصلی و خروجی حاصل از الگوریتم پیشنهادی برای تصاویر مختلف در جدول 2 لیست شده است:

جدول 2- مقدار MSE بین تصویر اصلی و خروجی الگوریتم پیشنهادی

Peppers

House

Barbara

Boat

Cameraman

%noisy

161.10

2.04

14.02

4.08

9.69

5

165.36

4.76

28.81

9.27

19.32

10

171.82

7.97

43.22

14.78

32.97

15

175.49

12.94

63.67

22.49

45.93

20

193.14

23.67

101.47

39.79

78.56

30

216.50

41.13

151.38

67.42

141.04

40

261.06

66.49

215.35

106.35

224.29

50

340.81

132.57

314.02

178.87

338.37

60

هر چه میزان شباهت تصویر اصلی و بازیابی شده بیشتر باشد، مقدار MSE بین دوتصویر کمتر و لذا طبق رابطه میزان PSNR بین آن ها بیشتر خواهد بود.

جدول 3 نتایج مقایسه الگوریتم پیشنهادی و سایر متد های شناخته شده و موفق برای حذف نویز فلفل نمکی با چگالی 25% را برای جند تصویر نشان می دهد:

جدول 3- نتایج مقایسه الگوریتم پیشنهادی با سایر متدها

Barbara

House

Peppers

Cameraman

Boat

Method

42.62

28.12

22.89

22.24

22.19

MF

52.12

29.86

25.92

55.35

24.32

Sdrom

26.08

31.15

27.67

27.91

28.05

TONF

27.55

34.49

28.00

28.11

28.22

Yuksel

29.73

36.03

28.59

30.21

32.15

Proposed

نتایج

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

پیشنهاد ها

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

منبع

حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 1
حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 2
حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 3

دسامبر 2, 2019/0 دیدگاه /توسط hgadmin
https://behsanandish.com/wp-content/uploads/2019/08/download-2-1.jpg 250 340 hgadmin https://behsanandish.com/wp-content/uploads/2020/09/logo-farsi-englisi-300x195-1.png hgadmin2019-12-02 10:00:212019-12-02 10:00:21حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 3

حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 2

آموزش عمومی پردازش تصویر و بینایی ماشین

انواع نویز و نحوه اثر گذاری آن بر تصویر

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

نویز ضربه ای

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

نویز گوسی(سفید)

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

فرمول نویز گوسی

که در این رابطه µ و Ƃ دو پارامتر مدل نویز گوسی هستند که به ترتیب میانگین و واریانس توزیع گوسی می باشند.

نویز متناوب

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

نویز ضرب شونده

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

با افزایش کاربرد های پردازش تصویر، روشهای مختلفی برای حذف نویز از تصاویر پیشنهاد شده است. به طور کلی متد های موجود در زمینه حذف نویز را می توان از یک دیدگاه به دو دسته فیلتر گذاری در حوزه مکان و فیلتر گذاری در حوزه تبدیلی دسته بندی کرد.(Ahmadi et al.,2013).در هر دو دسته، توسعه هایی مبتنی بر الگوریتم های مبتنی بر محاسبات نرم و ابزارهای هوشمند مانند سیستم های فازی و شبکه های عصبی و الگوریتم های بهینه سازی همچون الگوریتم ژنتیک دیده می شود.

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

فیلتر های حوزه مکان

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

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

فیلتر های حوزه فرکانس

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

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

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

فیلتر های نظم آماری

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

فیلتر میانگین حذف α

فیلتر میانگین حذف α در دسته فیلتر های غیرخطی قرار می گیرد که ترکیبی از فیلتر میانه و میانگین است. ایده اصلی این فیلتر حذف نمونه های برون نهاد و استفاده از میانگین نمونه های باقی مانده است. پارامتر α که در این فیلتر دیده می شود میزان داده های نادیده گرفته شده را تعیین می کند. الگوریتم میانگین حذف آلفا را می توان به صورت زیر بیان کرد:

1-     داده های زیر پنجره فیلتر به صورت صعودی مرتب می شوند.

2-     نیمه آلفای کوچکتر و نیمه آلفای بزرگتر نادیده گرفته می شوند.

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

فیلتر میانه سوئیچ کننده

یکی از معایب متد های بیان شده آن است که هر پیکسل بدون توجه به آنکه نویزی شده یا سالم است تحت پردازش قرار می گیرد. این امر موجب می شود پیکسل های سالم تصویر که در بر گیرنده جزئیات تصویر اصلی هستند طی پردازش تغییر کنند. رویکردی که برای این مسئله وجود دارد فیلتر میانه سوئیچ کننده است که در آن هر پیکسل ابتدا در یکی از دو دسته نویزی و سالم طبقه بندی می شوند. اگر پیکسل نویزی باشد از فیلتر های حذف نویز در آن استفاده می شود، ولی اگر پیکسل سالم باشد عملیات فیلتر شدن میانبر می شود و مقدار خروجی مستقیما برابر مقدار ورودی می شود.(sun and neuvo,1994)

رویکرد های متفاوت برای هر یک از دو مرحله طبقه بندی و فیلتر گذاری وجود دارد که ترکیب آن ها یک متد جدید فیلتر های سوئیچ کننده به شمار می آید.(Akkoul et al.,2010)

فیلتر میانگین رتبه ی منظم وابسته به سیگنال

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

فیلتر SDROM یک الگوریتم غیر خطی کارآمد است(Abreu and Mitra,1999) که برای حذف نویز از تصاویر تخریب شده با چگالی بالای نویز بکار می رود که جزئیات و ویژگی های تصویر را نیز حذف می کند. این روش برای حذف انواع نویز ضربه چه از نوع مقدار ثابت و چه از نوع مقدار تصادفی کاربردی است.

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

حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 1
حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 2
حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 3

دسامبر 1, 2019/0 دیدگاه /توسط hgadmin
https://behsanandish.com/wp-content/uploads/2019/08/download-2-1.jpg 250 340 hgadmin https://behsanandish.com/wp-content/uploads/2020/09/logo-farsi-englisi-300x195-1.png hgadmin2019-12-01 10:00:182019-12-01 10:00:18حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 2

حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 1

آموزش عمومی پردازش تصویر و بینایی ماشین

ارائه الگوریتمی جدید برای حذف نویز از تصاویر دیجیتالی با استفاده از شبکه های عصبی و فیلتر میانی:

مقدمه

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

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

پردازش تصویر

پردازش تصویر شاخه ای از علم رایانه است که هدف آن پردازش تصاویر برداشته شده توسط دوربین دیجیتال و یا تصاویر اسکن شده توسط اسکنر است. پردازش تصویر از دو جنبه به بهبود اطلاعات بصری برای تفسیر بصری توسط انسان و دیگری ارائه یک تصویر با جزئیات مناسب و کارآمد برای تعبیر توسط ماشین مورد توجه است. (McAndrew, 2004)

سیستمهای پردازش تصویر را می توان در سه سطح پردازشی دسته بندی کرد:

–         سطح پایین: عملیات اولیه(مانند حذف نویز، افزایش میزان کنتراست) که در آن ها هم ورودی و هم خروجی سیستم تصویر هستند.

–         سطح متوسط: استخراج ویژگی ها (مانند لبه ها، کانتورها، نواحی) از یک تصویر که معمولا این پردازش ها در حیطه بینایی ماشین موجود است.

–         سطح بالا: تحلیل و تفسیر محتوایی یک صحنه که اغلب از الگوریتم های یادگیری ماشین در این سطح استفاده می شود.

هر سیستم پردازش تصویر معمولا بر حسب نوع کاربرد و هدف نهایی پردازش شامل بخش های مختلفی است. در گام اول یک تصویر توسط یکی از ابزار های تصویر برداری همچون دوربین دیجیتال یا اسکنر بدست می آید. کیفیت تصویر خروجی بلوک تصویر برداری به شدت بر روی کل سیستم تاثیر گذار است. در گام بعد، پیش پردازشی بر روی تصویر ورودی انجام می شود. هدف این پیش پردازش بهبود ظاهری تصویر، بالا بردن کنتراست، حذف نویز، تصحیح درخشندگی، تمیز کردن تصویر یا از بین بردن تاری ناشی از قرار گرفتن سوژه خارج از فاصله کانونی است. در گام بعدی تصویر بر مبنای معیار های مختلفی از جمله ویژگی های بافتی، مولفه های هم بندی، اشکال هندسی و موارد دیگر بخش بندی می شود. و در نهایت در گام نهایی هر یک از بخش ها بر مبنای همین ویژگی ها مورد تجزیه و تحلیل قرار می گیرد و به هر ناحیه یک برچسب نسبت داده می شود. در تمام این مراحل از یک پایگاه دانش بسته به نوع سیستم استفاده می شود. پایگاه دانش علاوه بر محیا کردن دانش لازم برای هر واحد به تعامل بین بخش ها نیز نظارت دارد.(van bemmel and musen, 1997)

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

–         کاربرد های پزشکی

–         تفسیر خود کار تصاویر پزشکی سونوگرافی، رادیولوژی و مامو گرافی

–         تحلیل تصاویر سلولی از گونه های کروموزوم

–         کشاورزی

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

–         کنترل کیفیت خود کار محصولات کشاورزی و دسته بندی آن ها در دسته های مختلف

–         صنعت

–         خودکار سازی خط تولید در کارخانه ها

–         تحلیل وضعیت ترافیکی جاده ها

–         دسته بندی محصولات کارخانه ای

–         قضایی

–         تحلیل و بررسی اثر انگشت

–         تعیین هویت شخص از روی نشانه های بیومتریک

–         تعیین هویت تصاویر(جعلی یا واقعی بودن آن ها)

انواع تصاویر دیجیتال

تصویر در واقع یک تابع دو بعدب مانند (F(x,y است که در آن آرگومان های ورودی x,y مختصات مکانی در هر نقطه به صورت شماره سطر و شماره ستون است. و مقدار تابع شدت روشنایی آن نقطه از تصویر است. از آن جا که مقادیر (F(x,y و x,y مقادیر گسسته اند، تصویر را یک تصویر دیجیتال می نامند. یک تصویر دیجیتال از تعدادی از عناصر با مقدار و موقعیت مشخص تشکیل شده است که به هر یک از این عناصر پیکسل گفته می شود. برای نمایش یک تصویر با ابعاد M*N از یک ماتریس دو بعدی با M  سطر و N ستون استفاده می شود. مقدار هر یک از این عناصر این آرایه شدت روشنایی آن پیکسل را نشان می دهد. بسته به نوع داده ای این آرایه دو بعدی، انواع مختلف از تصاویر بوجود می آیند که در ادامه هر یک از انواع تصاویر به طور خلاصه بررسی می شوند.

تصاویر دودویی

در تصاویر دودویی هر کدام از پیکسل ها می توانند یکی از دو مقدار روشن 1 و خاموش 0 را داشته باشند. لذا برای نگهداری هر پیکسل تنها به یک بیت دودویی نیاز است. یکی از اصلی ترین مزایای این گونه تصاویر حجم کم آن ها است و معمولا برای نگهداری نوشته های چاپی و یا دست نویس، اثر انگشت و نقشه های مهندسی از آن استفاده می شود.(Gonzalez and woods, 2005)

تصاویر شدت روشنایی

تصاویر شدت با نام تصاویر خاکستری نیز شناخته می شوند. در این تصاویر مقدار هر یک ار عناصر آرایه دوبعدی تصویر یک عدد 8 بیتی است که می تواند نقداری بین 0 (معادل رنگ مشکی) و 255 (معادل رنگ سفید) را در خود ذخیره کند. دامنه تغییرات عناصر در این گونه تصاویر، اعداد صحیح بین 0 تا 255 است.

تصاویر رنگی

در تصاویر رنگی هر پیکسل دارای یک رنگ مشخص است که خود ترکیبی از سه مولفه رنگی اصلی قرمز، سبز و آبی است و لذا برای ذخیره کردن یک تصویر رنگی با ابعاد M*N نیاز به سه ماتریس با ابعاد M*N است که هر کدام شدت روشنایی هر کدام از مولفه ها را در خود ذخیره می کنند. به عنوان مثال اگر رنگ یک پیکسل قرمز خالص باشد لایه های رنگی آن به صورت [0و0و255] می باشند. برای نمایش سفید خالص هر سه مولفه رنگی برابر 255 و برای مشکی خالص هر سه مولفه برابر صفر است. تصاویر RGB دارای سه لایه رنگی 8 بیتی هستند و لذا بانام تصاویر 24 بیتی نیز شناخته می شوند. این تصاویر سه برابر تصاویر سطح خاکستری هم اندازه خود فضا اشغال می کنند. (Gonzalez and woods, 2005)

تصاویر شاخص

یکی از مهم ترین معایب تصاویر 24 بیتی عدم سازگاری با سخت افزار های قدیمی بود که قادر به نمایش هم زمان 16 میلیون رنگ نبودند. علاوه بر این به حجم بالای ذخیره سازی نیاز داشتند. راه اصلی که همزمان دو مشکل را حل می کند استفاده از یک بازنمایی شاخص دار است که در آن از یک آرایه دوبعدی هم اندازه با تصویر استفاده می شود. لذا برای نمایش هر تصویر شاخص دار از یک آرایه دو بعدی 8 بیتی تصویر و یک نقشه رنگی 256 مدخلی استفاده می شود.

الگوریتم مبتنی بر تصمیم گیری

در (srinirasan and Ebenezer 2007) روشی با نام الگوریتم مبتنی بر تصمصم گیری ارائه شده است. در صورتی که مقدار هر پیکسل بین مینیمم و ماکزیمم مقدار درون پنجره فیلتر قرار گیرد، پیکسل سالم معرفی شده و بدون تغییر باقی می ماند. اگر پیکسل نویزی باشد و مقدار میانه پنجره فیلتر در بازه مینیمم و ماکزیمم پنجره باشد مقدار میانه جایگزین پیکسل خواهد شد و در غیر این صورت مقدار پیکسل با پیکسل همسایه اش جایگزین می شود. الگوریتم DBA در چگالی نویز بالا نیز کارامد است.

متدهای مبتنی بر محاسبات نرم

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

در (zvonarev and khryashchev 2005) از ترکیب فیلتر میانه و شبکه عصبی برای بهبود عملکرد حذف نویز استفاده شده است. سیستم پیشنهاد شده، برای جدا سازی پیکسل نویزی از پیکسل سالم از الگوریتم دو مرحله ای استفاده می کند. در تشخیص اولیه، اگر مقدار هر پیکسل درون بازه [min,max] باشد پیکسل سالم و در غیر این صورت نویز تشخیص داده می شود. پیکسل های کاندید برای نویزی بودن به شبکه عصبی فرستاده می شود تا طبقه بندی انجام شود. از ویژگی های محلی آماری برای ورودی شبکه استفاده شده است. مفهوم منطق فازی در سال 1965  توسط آقای زاده به عنوان یک ابزار ریاضی برای مدل سازی عضویت نسبی در مجموعه های معرفی شد. بر خلاف تکنیک های کلاسیک مجموعه ای که تنها عضویت قطعی در آن ها وجود دارد، در منطق فازی امکان تعریف عضویت نسبی وجود دارد.

در منبع (yuksel and besdok 2004)  از یک سیستم فازی عصبی تطبیقی برای آشکار سازی پیکسل نویزی استفاده شده است که شامل دو زیر آشکار گر مبتنی بر شبکه فازی عصبی با منطق فازی نوع سوگنو است که هر کدام از سه ورودی استفاده می کنند. این سه ورودی پیکسل های عمودی و افقی در یک پنجره 3*3 هستند. هر زیر آشکارگر برای هر ورودی سه تابع و سه تابع زنگوله ای برای هر ورودی، 27 قاعده برای تصمیم گیری است.که وزن ها بر اساس شدت آتش هر قاعده تعیین می شود. در نهایت میانگین خروجی دو زیر آشکارگر محاسبه می شود و از یک آستانه نهایی برای تشخیص پیکسل نویزی استفاده می شود.

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

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

 

نوامبر 30, 2019/0 دیدگاه /توسط daliri
https://behsanandish.com/wp-content/uploads/2018/12/download-2.jpg 250 340 daliri https://behsanandish.com/wp-content/uploads/2020/09/logo-farsi-englisi-300x195-1.png daliri2019-11-30 10:00:142019-11-30 10:00:14حذف نویز تصاویر با شبکه های عصبی و فیلتر میانی قسمت 1

نویز چیست؟ قسمت 2

آموزش عمومی پردازش تصویر و بینایی ماشین

نویز چیست ؟

نویز Noise در معنای لغوی به معنی سر و صدا می باشد اما در عمل به انرژی نامطلوب و ناخواسته ای گفته می شود که کم ترین سطح سیگنالی را که یک مدار می تواند آن را با کیفیت قابل قبول پردازش کند ، محدود می کند. چرا که اگر سطح سیگنال از یک آستانه ای کمتر شود و نسبت سیگنال به نویز یا SNR ( مخفف Signal to Noise Ratio ) به عدد 1 نزدیکتر شود باعث مخلوط شدن سیگنال نویز و سیگنال اصلی شده و حذف کلی سیگنال اصلی را منجر می گردد. امروزه طراحان آنالوگ پیوسته درگیر مساله نویز هستند زیرا با مساله اتلاف توان ، سرعت و میزان خطی بودن مدار در ارتباط است. اکثر منابع نویز در مدارها توان متوسط ثابتی دارند.

طیف نویز

مفهوم توان متوسط اگر با در نظر گرفتن محتوای فرکانسی نویز تعریف شود ، پیچیده تر می شود. نویز صوتی که توسط یک گروه از مردان تولید می شود شامل مولفه های فرکانس بالای ضعیف تری نسبت به نویز صدای گروهی از زنان است و این تفاوت در طیف هر نوعی از نویز قابل مشاهده است. طیف نویز که آن را چگالی طیفی توان نویز یا PSD نیز می نامند ، نشان می دهد که سیگنال ، چقدر توان در هر فرکانس حمل می کند. به طور خاص ٬ PSD یا (Sx(f1 به صورت توان متوسطی که نویز (X(t در یک هرتز پهنای باند اطراف f حمل می کند ، تعریف می شود. همانطور که در شکل (الف) رسم شده است ، ( X(t را به فیلتر میان گذر با فرکانس مرکزی f1 و یک هرتز پهنای باند حول آن ، اعمال می کنیم. سپس خروجی را به توان ۲ رسانده و متوسط آن را روی یک مدت طولانی برای یافتن (Sx(f1 حساب می کنیم. با تکرار این فرآیند به وسیله فیلتر های میان گذری که فرکانس مرکزی متفاوتی دارند شکل کلی (Sx(f شکل (ب) را بدست می آوریم.

PSD

قضیه : اگر یک سیگنال با طیف (Sx(f به یک سیستم خطی غیر متغیر با زمان که تابع تبدیل آن (H(s است وارد شود ٬ طیف خروجی آن برابر است با:

Sy(f)=Sx(f).|H(f)|^2

طیف خروجی

این قضیه با انتظار منطقی ما از اینکه طیف سیگنال باید توسط تابع تبدیل سیستم (شکل بالا) تغییر شکل یابد٬ سازگار است. برای مثال همانطور که در شکل زیر رسم شده ٬ چون تلفن های معمولی تقریبا پهنای باند ۴KHz دارند ٬ مولفه های فرکانس بالای صدای گوینده ٬ را حذف می کنند. توجه کنید که به دلیل محدودیت پهنای باند ٬ (Xout(t تغییرات آهسته تری نسبت به( Xin(t دارد.

فرکانس و نویز در تلفن های معمولی

انواع نویز

سیگنال های آنالوگ که با مدارهای مجتمع پردازش می شوند توسط دو نوع مختلف از نویز مغشوش می گردند:

۱-نویز ناشی از ادوات الکترونیکی

۲- نویز محیطی

نویز محیطی اغتشاشی ظاهرا تصادفی است که مدار از طریق خط تغذیه یا زمین و یا از طریق بنا بدان دچار می شود. در اینجا روی نویز ادوات الکترونیکی تمرکز می کنیم.

نویز حرارتی

نویز حرارتی مقاومت: حرکت تصادفی الکترون ها در یک رسانا باعث افت و خیز هایی در ولتاژ اندازه گیری شده روی آن می شود حتی اگر جریان متوسط صفر باشد. بنابراین طیف نویز حرارتی با دمای مطلق متناسب است. همانطور که در شکل زیر نشان داده شده است ٬ نویز حرارتی یک مقاومت R را می توان با یک منبع ولتاژ سری مدل کرد که چگالی طیفی یک طرفه آن برابر است با: Sv(f)=4kTR , 0≤f که k ثابت بولتزمن می باشد.

نویز حرارتی

نویز حرارتی ماسفت ها: ترانزیستورهای MOS نیز نویز حرارتی تولید می کنند. مهم ترین منبع نویزی است که در کانال تولید می شود. می توان ثابت کرد که برای ادوات MOS با کانال بلند٬ که در اشباع کار می کنند٬ نویز را می توان با یک منبع جریان که بین ترمینال های درین و سورس وصل شده مدل کرد (شکل زیر) که چگالی طیفی آن عبارت است از:

نویزحرارتی برای ترانزستورهای MOS

ضریب γ (لاندا) با ضریب اثر بدنه اشتباه نشود γ برای ترانزیستورهای کانال بلند برابر با ۲/۳ است و برای ماسفت های زیرمیکرون لازم است که آن را با مقادیر بزرگتری جایگزین کرد.

ضریب لاندا

نویز فلیکر

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

نویز فلیکر

منبع


نویز چیست ؟

نویز در لغت به معنی “صدا” می‌باشد، صدایی که دارای هیچ وزن موسیقی نیست و به طور نامنظم است. اما به طور کلی نویز سیگنالی است ناخواسته که بر روی دستگاه الکترونیکی یا الکتریکی ما تاثیر می‌گذارد و به سه دسته زیر تقسیم می‌شود:

  • Background Noise (نویز زمینه)
  • Modulated Noise (نویز نوسانی)
  • Interference Noise (نویز مزاحم) 

بحث ما در مورد گزینه دوم یعنی نویز نوسانی می‌باشد به طوری که سیگنال سالم ما را پوشش می‌دهد و باعث بهم ریختگی سیگنال ما می‌شود.

نویز در دوربین‌های مداربسته

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

نویز در دوربین های مدار بسته

حال با توجه به اینکه دوربین مداربسته شما آنالوگ است یا دیجیتال تاثیرات نویز را روی سیگنال خروجی می‌بینید. با نویز تا حدودی آشنا شدیم حال چه کنیم که کمترین آسیب را از نویز در دوربین های مداربسته داشته باشیم:

  1. از سالم بودن قطعات الکتریکی مطمئن شویم.
  2. سالم بودن کابل‌ها و کیفیت خوب آن‌ها.
  3. مسافت کابل‌ها بیش تر از ظرفیت انتقال سیگنال‌های آن کابل نباشد، به عنوان مثال در بعضی از کابل‌ها ابتدا و انتهای اتصال کابل نمی‌تواند بیشتر از ۱۰ یا ۲۰ متر باشد و کابل پهنای باند لازم برای انتقال سیگنال را ندارد.
  4. مسیر کابل کشی کنار کابل و سیم‌های دیگر نباشد.
  5. دستگاه‌های ورودی مانند دوربین و دستگاه خروجی مانند DVR در کنار قطعات و کابل‌های الکتریکی نباشند.
  6. حتما در مسیر کابل کشی‌ها از داکت یا ترانک استفاده شود تا از حداقل تاثیرات نویز نیز کاسته شود.

 

منبع

نویز چیست؟ قسمت 1

نویز چیست؟ قسمت 2

نوامبر 29, 2019/0 دیدگاه /توسط hgadmin
https://behsanandish.com/wp-content/uploads/2019/08/220px-RuidosCuantificacionSegunResolucion-1.png 137 220 hgadmin https://behsanandish.com/wp-content/uploads/2020/09/logo-farsi-englisi-300x195-1.png hgadmin2019-11-29 10:00:272019-11-29 10:00:27نویز چیست؟ قسمت 2

نویز چیست؟ قسمت 1

آموزش عمومی پردازش تصویر و بینایی ماشین

نوفه یا «نویز» (به انگلیسی: Noise) بمعنای آلودگی صوتی یا نشانکی (سیگنال) ناخواسته است که شکل نشانک‌ها را تغییر می‌دهد و باعث بروز اختلال می‌شود.

پژوهشگران ناسا در «مرکز پژوهش گلِن» بر سر اجرای آزمون‌های نوفهٔ موتور هوانورد در ۱۹۶۷م

پژوهشگران ناسا در «مرکز پژوهش گلِن» بر سر اجرای آزمون‌های نوفهٔ موتور هوانورد در ۱۹۶۷م

 

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

نوفهٔ روی یک تصویر، اغلب دارای اجزای بسامدی (فرکانسی) نیز می‌باشند و واکاوی بسامدی شبیه به نشانک (اطّلاعات واقعی تصویر) دارد. بیناب توان نوفه که «بیناب وینِر» هم نامیده می‌شود همان وردایی (واریانس) نوفه ۲(σ) تصویر است که بصورت تابعی از بسامد فضایی (f) بیان می‌گردد.

نویز در شبکه‌های رایانه‌ای

در شبکه‌های رایانه‌ای حرارت، القا و هم‌شنوایی سبب ایجاد نوفه می‌شوند.

حرارت

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

القای الکترومغناطیسی

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

هم‌شنوایی

هم‌شنوایی اثر میدان‌های مغناطیسی یک بافه کنار خود است.

منبع


در زندگی روزانه  نویز(noise) به صدایی ناخواسته و بلند گفته می‌شود که هیچ نظم موسیقی نداشته باشد  در دورانی که ارتباط رادیودیی وجود داشت ، نویز “هر سیگنال الکتریکی که باعث مختل کردن ارتباط رادیودیی می‌شود ” تغریف شد . ( برگرفته از فرهنگ لغت وبستر). این نوع نویز قبل شنیدن بود ؛ مانند نویزی که در گوشی‌ها می‌شنویم .

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

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

انواع نویز :

نویز بر اساس تغییرات زمانی و فرکانسی خود بیشتر مشخص می‌شوند . در شکل زیر نویز را بر اساس چگالی طیفی نویز ( که بر اساس فرکانس است) رسم شده است.
نویز‌هایی که در زیر آمده است ، معمول ترین نویز‌های موجود هستند :
۱-   نویز سفید طیفی (یا در واقعیت ، نویز صورتی)
۲-   آشفتگی های هارمونیک
۳-   نویز ۱/f
4-   رانش

در اینجا ، منبع هر کدام از نویز‌ها مورد بررسی قرار می‌گیرد و مهمترین نویز ، نویز سفید ، بیشتر تاکید می‌شود .
1- نویز سفید: طیفی طبق تعریف به نویزی گفته می‌شود که طیف چگالی آن به فرکانسی بستگی نداشته باشد .( مقدار ثابتی باشد ). البته این یک تعریف ایده ال است چون اگر از یک عدد ثابت نسبت به فرکانس انتگرال بگیریم ، واریانس نویز ( یا همان انرژی نویز ) بی نهایت به دست می‌آید . در سیستم‌های‌هایی که بیشتر مورد بررسی قرار می‌گیرند ، نویز عملا سفید نیست بلکه “صورتی ” است .به این معنا که داری فرکنس قطع می‌باشد . این فرکانس قطع باعث می‌شود که واریانس نویز محدود شود . در سیستم‌های  کاربردی ، به اندازه ی کافی بزرگ است و مقدار چگالی طیفی آن به اندازه ی کافی ثابت است تا مدل نویز سفید را راضی کند . نویز سفید طیفی یکی از بنیادی ترین و فیزیکی ترین نویز‌ها در لیست بالا است .
بیشتر نویز‌های فوق را می‌توان ( به طور کلی) با استفاده از طراحی‌های زیرکانه برداشت ولی محدودیت‌های بنیادی نویز سفید آن را محدود می‌کند. نویز سفید به دو صورت ظاهر می‌شود : نویز دمایی و اثر ساچمه ای .
2- آشفتگی‌های‌هارمونیکی: واقعا نویز‌های تصادفی نیستند بلکه آشفتگی هایی هستند که از منابع نزدیک گرفته میشود (یا اصطلاحا نویز از طریق منابع نزدیک روی سیستم افتاده است). این نویز‌ها می‌توانند به وسیله ی طراحی‌های مناسب حذف بشوند. ترفند‌های که برای حذف این نویز استفاده می‌شوند عبارتند از : پوشش، زمین کردن مناسب ، کاهش حساسیت سیستم به نویز گرفتن .از آنجایی که آشفتگی‌های هارمونیکی دارای فرکانس‌های مشخصی هستند، باعث ایجاد نوسانات غیر میرا در سیگنال و ایجاد ضربه در طیف فرکانسی می‌شوند. این رفتار تکین باعث میشود که نوع آنها با نویز‌های دیگر فرق کند.( توی آزمایشگاه‌های الکتریسیته، می توان نویز برق شهر را بر روی اسیلوسکوپ مشاهده کرد. فقط کافی است دو دست خود را به ورودی‌های اسکوپ وصل کنید ؛ چون بدن مثل آنتن عمل میکند و این نویز  را که در فضا پر است را می‌گیرد.)
3- نویز ۱/f : از روی اسم نویز ۱/f می‌توان فهمید که رفتار آن چگونه می‌تواند باشد .چگالی طیفی این نویز با آهنگ ۱/f کاهش پیدا می‌کتد. این نویز در وسایل نیمه رسانا حضور دارد و عموماً به ” دام‌های ژرف (deep traps) ” نسبت داده می‌شود ؛ این دام‌های ژرف باعث می‌شوند که حامل‌ها برای مدتی به دام بیفتند. البته مکانیزم ایجاد این نویز همیشه مشخص نیست. در نتیجه ی این دام‌های ژرف و کند، ویژگی‌های وسیله با زمان به صورت کندی تغییر می کنند و این کندی تغییر یعنی در فرکانس‌های پایین این نویز دارای بیشترین انرژی می‌باشد. قدرت نویز ۱/f بستگی به نحوه ی تولید دارد از وسیله ی به وسیله ی دیگر متفاوت است. برای یک وسیله ی نیمه‌هادی، جایی که قدرت نویز ۱/f  با نویز سفید برابر می‌شود  در یک بازه ی بزرگ ۱ هرتز تا ۱۰۰ کیلو هرتز است .
4- رانش: کمی‌ قبلتر گفتیم که نویز بدون هیچ مقدار ثابتی است یعنی مقدار میانگین آن صفر است. _N(t)_ = 0. ولی باید گفت که این جمله همیشه درست نیست . در بعضی سیستم‌ها مقدار ثابت نمودار با زمان تغییر میکند(برای دوستانی که با تبدیل و سری فوریه آشنایی ندارند باید توضیح بدهم که در بسط دادن یک سیگنال به صورت سینوسی و یا نمایی ، مقداری ظاهر می‌شود که آن مقدار ثابت منحنی می‌گویند. این مقدار ثابت نشان دهنده ی میانگین نمودار است  و می‌توان برای شکلهای متقارن گفت که نمودار روی آن سوار می‌شود. مثال: یک موج سینوسی که به جای حرکت رو ی محور x ‌ها روی مقدار  y=1 حرکت می کند). وقتی که این مقادیر ثابت به صورت خطی و ثابت تغییر می کنند، به آن رانش گفته می شود .البته این جمله ممکن است کمی‌بی معنا باشد ولی می‌توان گفت که این نویز دارای فرکانس بسیار پایین است؛ چون تبدیل فوریه یک تابع با شیب ثابت یک چیزی شبیه مشتق تابع ضربه در اطراف صفر است. بهتر است واژه ی رانش برای نویز‌هایی گفته شود که در طول زمان دارای تغییرات خطی هستند چون در صورت بروز تغییرات تبدیل فوریه ی آن دارای فرکانس‌هایی خواهد بود که غیر از فرکانس صفر است .

در اینجا به عوامل ایجاد کننده ی نویز‌های مختلف اشاره می‌کنیم:

نویز دمایی :

همانطور که گفته شد نویز سفید ، بنیادیترین نویز است و لی این حرف باید کامل  شود؛ نویز سفید با منشأ دمایی این ویژگی را دارد. نویز دمایی که بعضی اوقات نویز جانسون هم گفته می شود یک نتیجه ی طبیعی از نظریه ی نوسان-اتلاف است. این نظریه بیان می‌کند که هر المان اتلاف کننده انرژی نوساناتی خود به خود متناسب با قدرت اتلاف المان هنگامی‌که تحت یک میدان خارجی است، ایجاد می‌کند.(یک ذره نامفهوم هست، نه؟). منشأ فیزیکی نوسانات و اتلاف کوپلاژ و اتصال بین المان و محیط اطراف است. یک اتصال قوی باعث ایجاد اتلاف زیاد و در نتیجه نوسانات زیادی می‌شود. در فرکانس‌هایی کمتر از f << kT/h, که در آن k  ثابت بولتزمن، h  ثابت پلانک و T دمای محیط است. مقدار انرژی طیفی نوسانات دمایی  ثابت و مقدار آن متناسب با دما است. به همین خاطر به آن نویز سفید دمایی گفته میشود(چون مقدار ثابتی دارد).
یک مثال از نویز دمایی نوسانات ولتاژ در مقاومت است. در حضور یک میدان خارجی مقدار اتلافی که وجود دارد برابر با V^2/R است. وقتی که میدان خارجی وجود نداشته باشد و همان اتم‌ها و الکترون‌هایی که در حضور میدان باعث ایجاد گرما می‌شدند، با هم برخورد می‌کنند ولی این بار یک ولتاژ بین دو سر اتصال مقاومت ایجاد می‌کنند(به دلیل تغییرات در چگال الکترون‌ها در دو طرف مقاومت). واریانس این تغییرات ولتاژ برابر است با : ۴kTRΔf که با تقسیم کردن آن بر فرکانس چگالی طیفی نویز به دست می‌آید. در دمای اتاق ، برای یک مقاومت ۱k در یک پهنای باند یک مگاهرتر تغییرات ولتاژ ۰٫۹ میکرو ولت بدست می‌آید .  یعنی می‌توان گفت که تغییرات ولتاژ در حد ۱ میکرو ولت خواهد بود .

نویز یا اثر ساچمه ای (Shot noise)

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

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

Si(f) = 2qi0 [A2/Hz]

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

نویز ۱/f (نویز صورتی)

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

معرفی  EMG:

جریانهای  الکتریکی  کوچکی  هستند که توسط فیبر‌های عضلانی به منظور فراهم کردن نیروی لازم عضلانی تولید می‌شوند. این جریانات به وسیله تبادلات یونی که در سطوح فیبر‌های ماهیچه ای صورت می‌گیرد تولید می‌شوند. این سیگنال‌ها که الکترومیوگرام (EMG) نامیده می‌شوند را می‌توان ازطریق قرار دادن المان‌های رسانا یا الکترود‌ها بر روی سطح پوست و یا به طور تهاجمی‌ از طریق قرار دادن در داخل فیبر ماهیچه ای اندازه گیری کرد.
اندازه گیری EMG به صورت سطحی از روی پوست به تعدادی از عوامل و دامنه سیگنال سطحی (sEMG)- که در رنج میکروولت تا چند میلی ولت تغییرات دارد – بستگی دارد .دامنه و فرکانس مشخصه سیگنال‌های EMG را می‌توان به عوامل زیر مرتبط دانست :
•   مدت زمان وقدرت انقباضی ماهیچه‌ها
•   فاصله الکترود‌های ماهیچه‌های فعال
•   مشخصه و خاصیت بافت‌های سطحی
•   جنس و مشخصه الکترود‌ها
•   اتصال مناسب بین الکترود و پوست
در اکثر موارد اطلاعاتی که در مورد مدت زمان و قدرت انقباض عضله می‌باشند بسیار مطلوب هستند. بقیه عوامل مانده فقط موجب نامطلوب تر شدن تغییرات در در ثبت EMG می‌شوند و موجب می‌شوند که تجزیه و تحلیل نتایج بسیار دشوار گردد. با وجود این روش‌هایی وجود دارد اثرات آن عوامل غیر عضله ای که بر روی سیگنال EMG تغییرات ایجاد می‌کنند کاهش داد:
•   استفاده از الکترود‌ها و تقویت کننده‌های همسان (به طور مثال اصلاح مشخصه‌های اطلاعات در پارامتر‌های سیگنال در خط انتقال از طریق تصحیح خصوصیات فاز و دامنه تقویت کننده‌ها )
•   اطمینان از همنواختی اتصال بین الکترودها و پوست
از این طریق می‌تواند با جابجایی پی در پی الکترود‌های در نواحی مختلف پوست میزان تغییرات ناخواسته در رنج EMG را کاهش داد. علاوه بر این از روش‌هایی برای نرمالیزه کردن سیگنال EMG در درون و بین الکترود‌ها و عضله استفاده کرد. تعداد بسیار زیادی از اطلاعات مهم مرتبط با ثبت و فراگیری و آنالیز سیگنال‌های sEMG را می‌توانید از طریق رفت به آدرس زیر کسب کنید :

(www.rrd.nl/projects/content/file_100.html) (Freriks and Hermens, 2000)

اندازه گیری و نتایج درست تا حد زیادی به مشخصه ی الکترود‌ها و تعامل متقابل آن با پوست – نوع طراحی تقویت کننده و تبدیل سیگنال‌ها از آنالوگ به دیجیتال (A/D ) وابسته است. کیفیت سیگنال EMG اندازه گیری شده به طور معمول به صورت نسبت سیگنال ثبت شده به نویز ناخواسته از محیط بیان می‌شود. هدف افزایش دامنه و متقابلاً کمتر کردن مقدار نویز وارده است.

منبع

 

نوامبر 28, 2019/0 دیدگاه /توسط daliri
https://behsanandish.com/wp-content/uploads/2019/01/220px-RuidosCuantificacionSegunResolucion.png 137 220 daliri https://behsanandish.com/wp-content/uploads/2020/09/logo-farsi-englisi-300x195-1.png daliri2019-11-28 10:00:422019-11-28 10:00:42نویز چیست؟ قسمت 1

مدل مخفی مارکوف (Hidden Markov Model) قسمت 1

آموزش عمومی پردازش تصویر و بینایی ماشین

مدل مخفی مارکوف (به انگلیسی: Hidden Markov Model) یک مدل مارکوف آماری است که در آن سیستم مدل شده به صورت یک فرایند مارکوف با حالت‌های مشاهده نشده (پنهان) فرض می‌شود. یک مدل پنهان مارکوف می‌تواند به عنوان ساده‌ترین شبکه بیزی پویا در نظر گرفته شود.

در مدل عادی مارکوف، حالت به‌طور مستقیم توسط ناظر قابل مشاهده است و بنابراین احتمال‌های انتقال بین حالت‌ها تنها پارامترهای موجود است. در یک مدل مخفی مارکوف، حالت به‌طور مستقیم قابل مشاهده نیست، اما خروجی، بسته به حالت، قابل مشاهده است. هر حالت یک توزیع احتمال روی سمبل‌های خروجی ممکن دارد؛ بنابراین دنبالهٔ سمبل‌های تولید شده توسط یک مدل مخفی مارکوف اطلاعاتی دربارهٔ دنبالهٔ حالت‌ها می‌دهد. توجه داشته باشید که صفت ‘پنهان’ به دنبالهٔ حالت‌هایی که مدل از آن‌ها عبور می‌کند اشاره دارد، نه به پارامترهای مدل؛ حتی اگر پارامترهای مدل به‌طور دقیق مشخص باشند، مدل همچنان ‘پنهان’ است.

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

مدل پنهان مارکوف

مثالی از پارامترهای احتمالاتی یک مدل مخفی مارکوف
x — حالت‌ها
y — مشاهده‌های ممکن
a — احتمال‌های انتقال بین حالت‌ها
b — احتمال‌های خروجی‌ها

 

شرح ازنظر مسائل ظرف‌ها

مدل مخفی مارکوف در حالت گسسته جز خانوادهٔ مسائل ظرف‌ها قرار می‌گیرد. به‌طور مثال از ربینر ۱۹۸۹: ظروف x1،x2،x3… و توپهای رنگی y1,y2,y3… را در نظر می‌گیریم، که نفر مقابل دنباله‌ای از توپ‌ها را مشاهده کرده ولی اطلاعی از دنبالهٔ ظرف‌هایی که توپ‌ها از آن‌ها انتخاب‌شده ندارد. ظرف n ام با احتمالی وابسته به ظرف n-1 ام انتخاب می‌شود و چون به انتخاب ظرف‌های خیلی قبل‌تر وابسته نیست یک فرایند مارکوف است.

معماری مدل مخفی مارکوف

شکل زیر معماری کلی یک نمونه HMM را نشان می‌دهد. هر شکل بیضی یک متغیر تصادفی است که می‌تواند هر عددی از مقادیر را انتخاب کند. متغیر تصادفی x(t) یک حالت پنهان در زمان t و متغیر تصادفی y(t) مشاهده در زمانt است. فلش‌ها به معنای وابستگی‌های شرطی می‌باشند. از شکل مشخص است که توزیع احتمال شرطی متغیر پنهان x(t)، در همهٔ زمان هایt مقداری را برای x ارائه می‌دهد که فقط به مقدار متغیر پنهان {\displaystyle x(t-1)} وابسته است: مقادیر در زمان‌های t-2 و قبل‌تر از آن هیچ اثری ندارند. این مشخصهٔ مارکف نامیده می‌شود. به‌طور مشابه، مقدار متغیر مشاهده‌ایy(t) تنها به مقدار متغیر پنهانx(t) (هر دو در زمان خاص t) بستگی دارد. در حالت استاندارد مدل مخفی مارکوف که در اینجا در نظر گرفته شده‌است، فضای حالت متغیرهای پنهان گسسته است؛ درحالی‌که متغیرهای مشاهده‌ای می‌توانند گسسته یا پیوسته (از توزیع گوسین) باشند.

در مدل مخفی مارکوف دو نوع پارامتر وجود دارد:احتمال جابه‌جایی‌ها (بین حالات) و احتمال خروجی‌ها (یا مشاهدات). احتمال جابه‌جایی نحوهٔ انتقال از حالت t-1 به t را کنترل می‌کند.

فضای حالت پنهان شامل N مقدار ممکن برای حالات است. متغیر پنهان در زمان t می‌تواند هر یک از این مقادیر را اختیار کند. احتمال جابجایی احتمال این است که در زمان t در حالت k (یکی از حالات ممکن) و در زمان t+1 در حالت k1 باشیم. بنابرین در کل {\displaystyle N^{2}}احتمال جابجایی وجود دارد. (مجموع احتمالات جابجایی از یک حالت به تمام حالتهای دیگر ۱ است)

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

اگر تعداد اعضای مجموعهٔ متغیرهای مشاهده‌ای برابر M باشد، بنابراین مجموع تعداد احتمالات خروجی NM می‌باشد/

 

مدل مخفی مارکوف

 

مسایلی که به کمک مدل مخفی مارکوف حل می‌شود

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

  • Annotation: مدل را داریم به این معنی که احتمالات مربوط به انتقال از حالتی به حالت دیگر و همین‌طور احتمال تولید الفبا در هر حالت معلوم است. توالی از مشاهدات داده شده، می‌خواهیم محتمل‌ترین مسیری (توالی حالات) که توالی را تولید می‌کند را پیدا کنیم. الگوریتم viterbi می‌تواند این‌گونه مسایل را به صورت پویا (Dynamic) حل کند.
  • classification: مدل را داریم، توالی از مشاهدات داده شده‌است، می‌خواهیم احتمال (کل) تولید شدن این توالی توسط این مدل را (جمع احتمالات تمامی مسیرهایی که این توالی را تولید می‌کنند) حساب کنیم. الگوریتم forward
  • Consensus: مدل را داریم، می‌خواهیم بدانیم محتمل‌ترین توالی که توسط این مدل تولید می‌شود (توالی که بیشترین احتمال را داراست) چیست. الگوریتم Backward
  • Training: ساختار مدل را داریم به این معنی که تعداد حالات و الفبای تولیدی در هر حالت معلوم است، تعدادی توالی داریم (داده‌های آموزش) می‌خواهیم احتمال انتقال بین حالات و همین‌طور احتمال تولید الفبا در هر حالت را محاسبه کنیم. الگوریتم Baum-Welch

یادگیری

وظیفه یادگیری در HMM، یافتن بهترین احتمالات جابجایی‌ها و خروجی‌ها بر اساس یک دنباله یا دنباله‌هایی از خروجی هاست. معمولاً این پارامترها به وسیله متد maximum likelihood بر اساس خروجی داده شده تخمین زده می‌شوند. هیچ الگوریتم قطعی برای حل این مسئله وجود ندارد ولی برای پیدا کردن maximum likelihood محلی می‌توان از الگوریتم‌های کارایی مانند Baum-welch algorithmو یا Baldi-chauvin algorithmاستفاده کرد. الگوریتم Baum-Welch نمونه‌ای از الگوریتم forward-backwardو به صورت خاص موردی از الگوریتم exception-maximization می‌باشد.

یک مثال ملموس

دو دوست به نام‌های آلیس و باب را در نظر بگیرید. آن‌ها دور از هم زندگی کرده و هر روز دربارهٔ کارهای روزمره‌شان با هم تلفنی صحبت می‌کنند. فعالیت‌های باب شامل “قدم زدن در پارک”،”خرید کردن” و “تمیز کردن آپارتمان” می‌شود. انتخاب اینکه هر روز کدام کار را انجام دهد منحصراً بستگی به هوای همان روز دارد. آلیس اطلاع دقیقی از هوای محل زندگی باب نداشته ولی از تمایلات کلی وی آگاه است (بنا به نوع هوا چه کاری را دوست دارد انجام دهد). بر اساس گفته‌های باب در پایان هر روز، آلیس سعی می‌کند هوای آن روز را حدس بزند. آلیس هوا را یک زنجیرهٔ گسستهٔ مارکوف می‌پندارد که دو حالت “بارانی” و “آفتابی” دارد. اما به‌طور مستقیم هوا را مشاهده نمی‌کند؛ بنابراین، حالات هوا بر او پنهان است. در هر روز احتمال اینکه باب به “قدم زدن”،”خرید کردن” و “تمیز کردن”بپردازد بستگی به هوا داشته و دارای یک احتمال مشخص است. مشاهدات مسئله شرح فعالیت‌هایی است که باب در انتهای هر روز به آلیس می‌گوید.

آلیس اطلاعات کلی دربارهٔ هوای محل زندگی باب و اینکه در هر نوع آب و هوا با چه احتمالی چه کار انجام می‌دهد را دارد. به عبارت دیگر پارامترهای مسئله HMM معلوم هستند که در کد زیر مشاهده می‌شوند:

states = ('Rainy', 'Sunny')

observations = ('walk', 'shop', 'clean')

start_probability = {'Rainy': 0.6, 'Sunny': 0.4}

transition_probability = {
   'Rainy': {'Rainy': 0.7, 'Sunny': 0.3},
   'Sunny': {'Rainy': 0.4, 'Sunny': 0.6},
  }

emission_probability = {
   'Rainy': {'walk': 0.1, 'shop': 0.4, 'clean': 0.5},
   'Sunny': {'walk': 0.6, 'shop': 0.3, 'clean': 0.1},
  }

 

در این کد start_probability نمایانگر احتمال رخ دادن هر یک از حالات HMM (بارانی یا آفتابی) در روز اولی که باب با آلیس صحبت می‌کند می‌باشد.transition_probability نمایانگر تغییر هوا بر اساس قواعد زنجیرهٔ مارکو است. به‌طور مثال اگر امروز بارانی باشد به احتمال ۳۰٪فردا آفتابی است.emition_probability نمایانگر این است که باب علاقه دارد که در هر هوایی چه کار کند به‌طور مثال در هوای بارانی با احتمال ۵۰٪ آپارتمانش را تمیز کرده یا در هوای آفتابی با احتمال ۶۰٪در پارک قدم می‌زند.

 

HMMGraph

 
 

 

مدل مخفی مارکوف (Hidden Markov Model) قسمت 1

مدل مخفی مارکوف (Hidden Markov Model) قسمت 2

مدل مخفی مارکوف (Hidden Markov Model) قسمت 3

مدل مخفی مارکوف (Hidden Markov Model) قسمت 4

نوامبر 2, 2019/0 دیدگاه /توسط daliri
https://behsanandish.com/wp-content/uploads/2019/02/hmm_weather_model.jpg 584 600 daliri https://behsanandish.com/wp-content/uploads/2020/09/logo-farsi-englisi-300x195-1.png daliri2019-11-02 11:00:252019-11-02 11:00:25مدل مخفی مارکوف (Hidden Markov Model) قسمت 1

زنجیره مارکوف (Markov Approach modeling) قسمت 5

آموزش عمومی پردازش تصویر و بینایی ماشین

نمودار انتقال

چهار حالتی که در بالا به آن رسیده ایم را می توان در نمودار انتقال زیر به تصویر کشید :

 

نمودار انتقال

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

سهم بازار (t+1) شرکت Pepsi‌ = سهم فعلی بازارPepsi * نرخ ماندگاری مشتریان آن + سهم فعلی بازار Coke‌* نرخ ترک مشتریان Coke

سهم بازار (t+1) شرکت Coke= سهم فعلی بازار Coke * نرخ ماندگاری مشتریان آن + سهم فعلی بازار  Pepsi‌* نرخ ترک مشتریان Pepsi‌

این محاسبات را می توانیم با ضرب ماتریس ها به صورت زیر هم انجام دهیم :

 

ضرب ماتریس ها

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

اگر این ماتریس انتقال در گذر زمان ثابت بماند، می توانیم سهم بازار شرکتها را در بازه های زمانی طولانیتر هم بررسی کنیم .

 

مثلا در پایان ماه دوم سهم بازار شرکتها از قرار زیر خواهد بود :

 

سهم بازار شرکت ها

محاسبه حالت پایدار

شرکت Soda‌ می خواهد بداند که در نهایت سهم بازار هر شرکت چقدر خواهد شد. سهم شرکت Pepsi همانطور که در محاسبات بالا مشاهده می کنید روبه نزول است اما نهایتا بازار به یک حالت ثابت و پایدار خواهد رسید که در آن تبادل و تغییر مشتریان دو شرکت در میزان سهم بازار آنها تاثیری نخواهد داشت یعنی مجموع مشتریان جداشده از شرکت اول با میزان مشتریان جداشده از شرکت دوم برابر خواهد شد . به این حالت، حالت پایدار می گوییم (Steady State)

برای یافتن این حالت از دو معادله دو مجهمولی زیر استفاده می کنیم :

۱- میزان سهم بازار شرکت Pepsi * ۳۰٪ = میزان سهم بازار شرکت Coke * ۱۰٪

۲- میزان سهم بازار شرکت Pepsi + سهم بازار شرکت Coke‌ = ۱۰۰ ٪

با محاسبه مقدار سهم بازار شرکت Coke در فرمول اول و جایگزینی آن در فرمول دوم به معادله تک مجهولی زیر می رسیم

۴ * Pepsi = ۱۰۰٪ => سهم شرکت Pepsi = ۲۵٪ و سهم شرکت Coke‌ = ۷۵ ٪

 

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

ماتریس اولیه * ماتریس انتقال = ماتریس اولیه

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

منبع


 

آشنايي با تئوري زنجيره‌ ماركوف

 زنجيره ماركوف، دنباله‌اي از متغيرهاي تصادفي است كه همگي اين متغيرهاي تصادفي داراي فضاي نمونه‌اي يكسان هستند اما، توزيع احتمالات آنها مي‌تواند متفاوت باشد و در ضمن هر متغير تصادفي در يك زنجيره ماركوف تنها به متغير قبل از خود وابسته است. دنباله متغيرهاي تصادفي را بصورت زير نمايش مي‌دهيم:

دنباله متغیرهای تصادفی

 

 

فضاي نمونه‌اي متغيرهاي تصادفي زنجيره ماركوف مي‌تواند پيوسته يا گسسته، محدود يا نامحدود باشد. براي ادامه بحث حالت گسسته و محدود را درنظر مي‌گيريم هرچند مطالب گفته‌شده قابل تعميم به حالت پيوسته نيز مي‌باشد.

با فرض حالت گسسته محدود براي فضاي نمونه‌اي، مي‌توان هر متغير تصادفي را با توزيع احتمالش نمايش داد. اين توزيع را با يك بردار كه احتمال هر كدام از مقادير فضاي نمونه‌اي را در خود جاي داده است، نمايش مي‌دهيم. بنابراين، نمايش ديگر زنجيره ماركوف عبارتست از:

نمایش دیگر زنجیره مارکوف

نمایش دیگر زنجیره مارکوف

 

 

با توجه به تعريف زنجيره ماركوف، دانستن اولين مولفه زنجيره و رابطه‌اي كه مولفه i-ام را از مولفه (i-1)-ام توليد مي‌كند، براي ساختن زنجيره كافيست. اين رابطه را تابع تبديل (T) مي‌گوييم و نحوه بدست آوردن مولفه‌هاي بردار احتمال بوسيله اين تابع عبارتست از:

مولفه‌هاي بردار احتمال

 

 

چنانچه در زنجيره ماركوف، رابطه بين متغيرهاي تصادفي متوالي به موقعيت آنها در زنجيره وابسته نباشد، زنجيره را همگن مي‌گوييم. در يك زنجيره همگن:

زنجیره همگن

 

مي‌توان روابط گفته‌شده را بصورت رابطه ماتريسي زير خلاصه نمود:

رابطه ماتریسی

 

 

 

 

 

با استفاده مكرر از رابطه بالا، مي‌توان نوشت:

استفاده مکرر

 

 

چنانچه دو عنصر متوالي از زنجيره ماركوف همگن، يكسان گردند، تمامي عناصر بعدي نيز يكسان خواهند بود و مي‌گوييم زنجيره همگرا شده است، در اين حالت خواهيم داشت:

زنجیره همگرا

 

مي‌توان، انواع مختلفي از زنجيره‌هاي ماركوف تعريف كرد و همگرايي آنها را با استدلالات رياضي بررسي نمود.

زنجيره ماركوف، را ارگوديك مي‌گوييم اگر:

ارگودیک

 

 

 

يك زنجيره ماركوف ارگوديك، تنها مي‌تواند به يك توزيع همگرا شود كه توزيع سكون (equilibrium)خوانده مي‌شود و اين مستقل از اولين عنصر زنجيره است. برخي زنجيره‌ها، پريوديك هستند، برخي تضمين همگرايي ندارند و برخي ارگوديك هستند. از اين ميان زنجيره‌هاي ماركوف ارگوديك هستند كه در تئوري نمونه‌برداري كاربرد فراوان دارند.

در اينجا، پرسشي مطرح مي‌شود كه چه موقع يك زنجيره ماركوف ارگوديك است؟ در اين ضمينه قضاياي رياضي وجود دارد كه معروفترين آنها، قضيه اساسي نام دارد. بر طبق اين قضيه يك زنجيره ماركوف همگن، ارگوديك است اگر:

ارگودیک

 

منبع


 

برای دریافت اطلاعات تکمیلی فایل زیر را دانلود و مشاهده فرمایید.

رمز فایل : behsanandish.com

Markov-Chain

زنجیره مارکوف (Markov Approach modeling) قسمت 1
زنجیره مارکوف (Markov Approach modeling) قسمت 2
زنجیره مارکوف (Markov Approach modeling) قسمت 3
زنجیره مارکوف (Markov Approach modeling) قسمت 4
زنجیره مارکوف (Markov Approach modeling) قسمت 5

نوامبر 2, 2019/3 دیدگاه /توسط hgadmin
https://behsanandish.com/wp-content/uploads/2019/08/fig8-600x330-1.png 330 600 hgadmin https://behsanandish.com/wp-content/uploads/2020/09/logo-farsi-englisi-300x195-1.png hgadmin2019-11-02 10:00:442019-11-02 10:00:44زنجیره مارکوف (Markov Approach modeling) قسمت 5

زنجیره مارکوف (Markov Approach modeling) قسمت 4

آموزش عمومی پردازش تصویر و بینایی ماشین

 

زنجیره ارگودیک و زنجیره باقاعده

یک زنجیره مارکوف ارگودیک است ا اگر بتوان با تعدادی حرکت از هر حالتی به حالت دیگر رسید. زنجیره ارگودیک زنجیره تقلیل‌ناپذیر نیز نامیده می‌شود. زنجیره‌ای که هم تقلیل‌ناپذیر باشد و هم غیر متناوب، زنجیره باقاعده (regular) نامیده می‌شود. به عبارت دیگر زنجیره‌ای با قاعده است که تقلیل‌ناپذیر باشد و هر حالت آن نامتناوب و بازگشتی مثبت باشد. در زنجیره باقاعده n ای وجود دارد که اگر ماتریس انتقال حالت به توان n برسد تمام درایه‌های آن مثبت خواهند بود. بدین معنا که با n حرکت می‌توان از هر حالتی به حالت دیگر رسید.

متوسط زمان اصابت

در یک زنجیره ارگودیک زمان اولین بار رسیدن یا اصابت به حالت j در حالی که زنجیر مارکوف در حالت i بوده‌است، زمان اصابت از i به j نامیده می‌شود. زمان اصابت با متغیر تصادفی {\displaystyle T_{ij}} به صورت زیر توصیف می‌شود:

{\displaystyle T_{ij}=\inf\{n\geq 1:X_{n}=j|X_{0}=i\}.}

 

متوسط زمان اصابت از i به j، یعنی {\displaystyle H_{ij}=E[T_{ij}]}، از رابطهٔ بازگشتی زیر بدست می‌آید:

{\displaystyle H_{ij}=\sum _{r\in S}p_{ir}H_{rj}}

تجزیه و تحلیل توزیع ثابت و محدود کردن توزیع‌ها

برای یک زنجیر یکنواخت در زمان، بردار {\displaystyle {\boldsymbol {\pi }}} یک «توزیع ثابت» (یا ایستا) نامیده می‌شود اگر {\displaystyle \pi _{j}}‌ها نامنفی و جمع آن‌ها برابر ۱ شود و نیز در رابطه زیر صدق کنند:

{\displaystyle \pi _{j}=\sum _{i\in S}\pi _{i}p_{ij}.}

 

 

یک زنجیره ارگودیک یک توزیع ثابت دارد اگر و فقط اگر همه حالت‌های آن مثبت باشند در این صورت π یکتاست و مربوط به زمان بازگشت مورد انتظار است:

{\displaystyle \pi _{j}={\frac {1}{M_{j}}}.\,}

 

 

اگر زنجیره باقاعده (غیر تقلیل پذیر و غیر متناوب) باشد آن گاه برای هر i و j داریم:

{\displaystyle \lim _{n\rightarrow \infty }p_{ij}^{(n)}={\frac {1}{M_{j}}}.}

 

 

لازم است ذکر شود که هیچ شرطی روی نقطه شروع توزیع وجود ندارد یعنی زنجیره صرف نظر از نقطه شروع به توزیع ثابت میل می‌کند. این π «توزیع تعادل» زنجیره نامیده می‌شود. اگر زنجیره بیش از یک کلاس مرتبط بسته داشته باشد توزیع ثابت آن یکتا نخواهد بود. زنجیره غیر یکنواخت در زمان نیز می‌تواند توزیع تعادل داشته باشد.

در هر صورت اگر حالت j ام غیر متناوب باشد آن گاه:

{\displaystyle \lim _{n\rightarrow \infty }p_{jj}^{(n)}={\frac {1}{M_{j}}}}

 

 

و برای هر حالت i دیگر اگر fij احتمال این باشد که زنجیره در حالت j قرار گیرد در صورتی که شروع زنجیره از حالت i باشد خواهیم داشت:

{\displaystyle \lim _{n\rightarrow \infty }p_{ij}^{(n)}={\frac {f_{ij}}{M_{j}}}.}

 

 

اگر حالت i متناوب باشد با دوره تناوب k > 1 آنگاه حد

{\displaystyle \lim _{n\rightarrow \infty }p_{ii}^{(n)}}

 

 

وجود ندارد و نیز حد

{\displaystyle \lim _{n\rightarrow \infty }p_{ii}^{(kn+r)}}

 

 

برای هر r صحیح وجود ندارد.

زنجیره وارون پذیر

یک زنجیره مارکوف وارون پذیر نامیده می‌شود اگر یک توزیع احتمال \pi  بر روی حالتها وجود داشته باشد به‌طوری‌که برای تمام زمان‌های n و حالتهای i و j رابطهٔ زیر برقرار باشد:

{\displaystyle \pi _{i}\Pr(X_{n+1}=j\mid X_{n}=i)=\pi _{j}\Pr(X_{n+1}=i\mid X_{n}=j)}

 

 

برای زنجیره‌های یکنواخت در زمان رابطهٔ بالا به صورت سادهٔ زیر نوشته می‌شود:

{\displaystyle \pi _{i}p_{ij}=\pi _{j}p_{ji}\,.}

 

 

توزیع احتمال \pi  در رابطهٔ بالا همان توزیع ثابت در زنجیره‌های ارگودیک می‌باشد.

کاربردها

فیزیک

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

علم اطلاعات

زنجیره مارکوف در نظریه اطلاعات کاربرد دارد. مقاله معروف کلود شانون در سال ۱۹۴۸ با «نظریه ریاضی ارتباطات» که پایه‌گذار نظریه اطلاعات شد با معرفی آنتروپی از طریق مدل‌سازی مارکوف از زبان انگلیسی آغاز می‌شود. چنین مدل‌های ایده‌آلی بسیاری از قواعد آماری سیستم را به دست می‌دهند. حتی بدون داشتن ساختار کامل سیستم این گونه مدل‌سازی‌ها فشرده سازی مؤثر داده‌ها را ممکن می‌سازند.

زنجیره‌های مارکوف پایه و اساس مدل پنهان مارکوف است که این مدل یکی از ابزارهای مهم در زمینه‌های گوناگون مثل شبکه‌های تلفن (برای تصحیح خطا)، تشخیص گفتار و هم چنین بیوانفورماتیکاست.

نظریه صف

زنجیره‌های مارکوف اساس رفتار تحلیلی صف ها(نظریه صف) می‌باشد و این امر وجود آن‌ها را برای بهینه‌سازی عملکرد شبکه‌های مخابراتی حیاتی می‌سازد. جایی که پیام‌ها برای منابع محدود (مانند پهنای باند) رقابت می‌کنند. مدل‌های صف بندی بسیاری از زنجیره مارکوف زمان پیوسته استفاده می‌کنند. برای مثال، یک صف M / M / 1 یک CTMC بر روی عدد صحیح غیر منفی است که در آن انتقال از i به i + 1 بر اساس یک فرایند پوآسون با نرخ λ رخ می‌دهد و ورود کار را توصیف می‌کند، در حالی که انتقال از i به i – 1 (برای i> 1) در نرخ μ اتفاق می‌افتد (بار خدمات شغلی از توزیع نمایی پیروی می‌کنند) و خدمات کامل یا همان خروج از صف را نشان می‌دهد.

نمایش سادهٔ شبکه‌ای از چند صفحه که با رتبه صفحه ارزیابی شده‌اند.

نمایش سادهٔ شبکه‌ای از چند صفحه که با رتبه صفحه ارزیابی شده‌اند.

کاربرد اینترنتی

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

رتبه صفحه (Page Rank)، برای یک صفحهٔ وب که گوگل نیز از آن استفاده کرده‌است، توسط یک زنجیره مارکوف تعریف شده‌است. همچنین مدل مارکوف برای تحلیل رفتارهای وب کاربران و سیر حرکت آن‌ها میان صفحات استفاده شده‌است. انتقال کاربر به یک صفحه وب خاص از طریق یک لینک می‌تواند با استفاده از مدل‌های مارکوف مرتبه اول یا دوم مدل شود و برای پیش‌بینی‌های مربوط به حرکات آینده و شخصی‌سازی وب برای کاربر مورد استفاده قرار گیرد.

منبع


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

زنجیره مارکوف بر اصل بدون یادآوری یا بی حافظه بنا شده است به این معنی که حالت بعدی سیستم، به حالت های قبلی آن بستگی ندارد. با این اصل، محاسبه احتمال عملیات مجاز بعدی بسیار ساده تر خواهد بود. البته حالت پیشرفته تری از زنجیره مارکوف با نام Latent MC در کاربردهای دنیای واقعی که وابستگی به عملیات قبلی هم جزء الزامات پیش بینی ها خواهد بود، استفاده میشود که در اینجا به آن نمی پردازیم.

یک مثال عملی

فرض کنید دو شرکت Coke و Pepsi تنها شرکتهای تولید کننده یک ماده غذایی در کشور X هستند، شرکت Y قصد انتخاب یک شریک تجاری از بین این دو رقیب را دارد. آنها از یک شرکت تحلیلگر بازار خواسته اند که شرایط بازار را برای هر دو برند بررسی کند .شرکتی که بعد از یکماه بیشترین سهم بازار را داشته باشد، برنده این شراکت خواهد بود .

شرکت تحلیل گر نتایج زیر را بعد از بررسی بازار ارائه داده است :

P(P->P) = 0.7 – احتمال ماندن مشتریان برند Pepsi بعد از یکماه با برند Pepsi

P(P->C) = 0.3 – احتمال تغییر شرکت مشتریان Pepsi بعد از یکماه به برند Coke

P(C->C) = 0.9 – حتمال ماندن مشتریان برند  Coke بعد از یکماه با برند Coke

P(C->P) = 0.1 – حتمال تغییر شرکت مشتریان Coke بعد از یکماه به برند Pepsi

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

 

زنجیره مارکوف (Markov Approach modeling) قسمت 1
زنجیره مارکوف (Markov Approach modeling) قسمت 2
زنجیره مارکوف (Markov Approach modeling) قسمت 3
زنجیره مارکوف (Markov Approach modeling) قسمت 4
زنجیره مارکوف (Markov Approach modeling) قسمت 5

نوامبر 1, 2019/0 دیدگاه /توسط hgadmin
https://behsanandish.com/wp-content/uploads/2019/08/fig8-600x330-1.png 330 600 hgadmin https://behsanandish.com/wp-content/uploads/2020/09/logo-farsi-englisi-300x195-1.png hgadmin2019-11-01 11:00:432019-11-01 11:00:43زنجیره مارکوف (Markov Approach modeling) قسمت 4
صفحه 4 از 8«‹23456›»

صفحات

  • #9096 (بدون عنوان)
  • #12541 (بدون عنوان)
  • 990729
  • home
  • product-mahdi
  • slider1
  • slider2
  • slider3
  • slider4
  • Video Test
  • آموزش
  • آموزش پردازش تصویر در نرم افزار متلب (Matlab)
  • آموزش های زبان برنامه نویسی سی شارپ (#C)
  • آموزش های زبان سی پلاس پلاس (++C)
  • آموزش های عمومی برنامه نویسی
  • آموزش های عمومی پردازش تصویر و بینایی ماشین
  • آموزش های عمومی هوش مصنوعی
  • ابزار و محصولات جانبی
  • ارتباط با ما
  • استخدام برنامه نویس
  • استخدام برنامه نویس
  • برگه نمونه
  • برگه نمونه
  • برنامه نویسی
  • بینایی ماشین (Machine Vision) و بینایی کامپیوتر
  • پردازش تصویر با کتابخانه متن باز OpenCV
  • پردازش تصویر و بینایی ماشین
  • پروژه ها و سورس کدهای پردازش تصویر و بینایی ماشین
  • پروژه ها و سورس کدهای هوش مصنوعی
  • تست اسلایدر
  • تشخيص پلاک خودرو(Car Plate Recognition)
  • تشخیص نوری کاراکتر و تشخیص دست خط (OCR/HCR)
  • تشخیص هویت زیست سنجی (Biometrics Identification)
  • تماس با ما
  • دانلود نسخه دمو سامانه کنترل تردد بهسان
  • درباره ما
  • درخواست دمو
  • دعوت به همکاری
  • دوربین و ابزارهای تصویربرداری (camera)
  • سامانه جامع پلاکخوان خودرو(کنترل تردد بهسان)
  • سامانه جامع مدیریت باسکول (بهسان توزین)
  • سامانه قرائت فرم های چند گزینه ای
  • سامانه قرائت فرم های چند گزینه ای
  • صفحه اصلی
  • فرم درخواست همکاری
  • محصولات
  • محصولات جانبی
  • مقالات ، سمینارها و کنفرانس های پردازش تصویر
  • مقالات، سمینارها و کنفرانس های هوش مصنوعی
  • نرم افزار باسکول
  • نرم افزار ثبت تردد جاده ای
  • نرم افزار مدیریت تعمیرگاه ، کارواش و تعویض روغن بهسان
  • نرم افزارانبار و حساب داری بهسان اندیش
  • نمونه کارها
  • نمونه کارهای سامانه جامع پلاکخوان خودرو
  • هوش محاسباتی (Computational Intelligence)
  • هوش مصنوعی
  • وبلاگ

دسته ها

  • آموزش پردازش تصویر در نرم افزار متلب (Matlab)
  • آموزش عمومی پردازش تصویر و بینایی ماشین
  • آموزش های زبان برنامه نویسی سی شارپ
  • آموزش های عمومی هوش مصنوعی
  • اخبار
  • بینایی ماشین (Machine Vision) و بینایی کامپیوتر
  • پردازش تصویر با کتابخانه متن باز OpenCV
  • پروژه ها و سورس کدهای پردازش تصویر و بینایی ماشین
  • پروژه ها و سورس کدهای هوش مصنوعی
  • تشخيص پلاک خودرو
  • تشخیص نوری کاراکتر و تشخیص دست خط
  • تشخیص هویت زیست سنجی
  • دسته‌بندی نشده
  • دوربین (camera)
  • مقالات
  • مقالات ، سمینارها و کنفرانس های پردازش تصویر
  • مقالات، سمینارها و کنفرانس های هوش مصنوعی
  • هوش محاسباتی
  • وبلاگ

بایگانی

  • آوریل 2022
  • مارس 2022
  • دسامبر 2021
  • نوامبر 2021
  • سپتامبر 2021
  • جولای 2021
  • می 2021
  • مارس 2021
  • فوریه 2021
  • آوریل 2020
  • مارس 2020
  • فوریه 2020
  • ژانویه 2020
  • دسامبر 2019
  • نوامبر 2019
  • اکتبر 2019
  • سپتامبر 2019
  • آگوست 2019
  • مارس 2019
  • ژانویه 2018
  • دسامبر 2017

تلفن های تماس:

تلفن: ۹۱۰۰۱۸۸۱(۰۳۱)
بازرگانی و فروش:۰۹۱۳۶۵۳۱۸۸۱
پشتیبانی: ۰۹۱۱۷۶۱۰۲۷۵

ساعات کاری

از شنبه تا چهارشنبه : ۰۹:۰۰ تا ۱۷:۰۰

پنچ شنبه ها : از ۰۹:۰۰ تا ۱۳:۳۰

پیوند ها :

  • درخواست دمو
  • مطالب و آموزش ها
  • همکاری با بهسان اندیش
  • درباره ما

 

محصولات :

  • پلاک خوان
  • نرم افزار ثبت تردد جاده ای
  • نرم افزار مدیریت پارکینگ
  • نرم افزار مدیریت کارواش
  • نرم افزار تعمیرگاه خودرو
  • نرم افزار جامع مدیریت باسکول
  • ماژول رله کنترل راهبند
  •  

 

تمامی حقوق مالکیت معنوی این ‌سایت برای شرکت بهسان اندیش سپهر، محفوظ است.
  • Instagram
  • Facebook
  • Youtube
  • LinkedIn
  • Mail
رفتن به بالا