بازیابی محتوامحور تصویر (CBIR) که با نام‌های جستجو بر اساس محتوای تصویر (QBIC) و بازیابی محتوامحور داده‌های دیداری (CBVIR) نیز شناخته می‌شود کاربرد بینایی ماشیندر مسئلهٔ بازیابی تصویراست، یعنی مسئلهٔ جستجو برای تصویر دیجیتال در پایگاه داده بزرگ. «محتوامحور» یعنی جستجو به جای استفاده از فوق داده وارد شده توسط انسان، مانند عنوان و کلیدواژگان، از محتوای خود تصاویر استفاده می‌کند. یک سامانه بازیابی محتوامحور تصاویر (CBIRS) نرم‌افزاری است که بازیابی محتوامحور تصاویر را پیاده‌سازی می‌کند.

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

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

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

  • با جستجو به کمک مثال، کاربر به کمک یک تصویر نمونه (تأمین شده توسط خود کاربر یا انتخاب شده از یک مجموعه تصادفی) جستجو می‌کند، و نرم‌افزار تصاویر شبیه آن را بر اساس چندین ضابطه سطح پایین می‌یابد.
  • با جستجو به کمک طرح، کاربر تقریبی اولیه از تصویری که به دنبال آن است می‌کشد، مثلاً به کمک قطره‌های رنگ، و نرم‌افزار تصاویری را که طرح‌بندیشان به آن شبیه باشد را می‌یابد.
  • روش‌های دیگر شامل مشخص کردن نسبت رنگ‌های درخواستی (مثلاً “۸۰٪ قرمز، ۲۰٪ آبی”) و گشتن به دنبال تصاویر دربرگیرنده جسمی که در یک تصویر نمونه داده شده است، است.

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

یک کاربرد CBIR در شناسایی تصاویر دارای رنگ پوست و شکل‌هایی که می‌تواند نشانگر وجود برهنگی باشند جهت فیلترینگ و جستجو توسط ضابطین قانونی می باشد.

منبع

تکنولوژی DNR چیست؟

کاهش نویز دوربین مدار بسته توسط دیجیتال DNR چگونه است؟ روشی وجود دارد برای ازبین بردن نویز و یا کاهش نویز دوربین مدار بسته تصویر که به این روش فیلتر شانه ای گفته می شود و کلا به این تکنیک (DNR( Digital noise reduction گفته می شود پس همان طور که از اسم آن پیداست به معنای لغوی یعنی کاهش دهنده نویز به صورت دیجیتال میباشد. کارایی این تکنیک به این گونه است که با کاهش اندازه تصویر وضوح قابل مشاهده افزایش می یابد. این فیلتر گاهی اوقات به صورت دو بعدی(۲D-DNR) است و گاهی هم به صورت سه بعدی (۳D-DNR)می باشد.

۲D-DNR و ۳D-DNR هر دو یک تکنولوژی و یک مکانیزم در دوربین هستند و تنها تفاوت آنها با یکدیگر در اندازه و شدت میزان کاهندگی نویز می باشد و مسلما ۳D-DNR داری عملکرد بهتری نسبت به ۲D-DNR میباشد. در فیلتر دو بعدی ممکن است گاهی مسیرهای نوری در حال حرکت در شرایط کم نور کمی تغییر جهت داشته باشند.اما نوع سه بعدی کمی به لحاظ تکنولوژی جلوتر است و در هر حالت ممکن یعنی شرایط ثابت و متحرک می تواند میزان نویز پذیری تا حدودی کاهش دهد.

DNR چیست؟

معنای نویز تصویر چیست؟ DNR چیست؟ 

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

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

DNR چگونه عمل می کند ؟

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

عملکرد DNR درکاهش نویز دوربین مدار بسته به چه صورت است ؟

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

منبع

آشنایی با مدل های مختلف نویز

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

نویز ضربه ای(فلفل نمکی)

تابع چگالی احتمال ۲نویز ضربه ای (دو قطبی) به صورت زیر است:

نویز ضربه ای فلفل نمکی

اگر a > b باشد، شدت روشنایی b به صورت یک نقطه روشن و سطح a به صورت یک نقطه تاریک در تصویر دیده می شود. اگر هر یک از Pa یا Pb صفر باشند، نویز ضرب های حاصل یک قطبی نامیده می شود. اگر هیچ یک صفر نباشند (و به خصوص اگر هر دو تقریبا مساوی باشند) نویز حاصل شبیه پراکندگی ذرات فلفل و نمک بر روی تصویر خواهد بود. به همین علت نویز ضربه ای دو قطبی را نویز فلفل نمکی نیز می خوانند.
ضربه های نویز می توانند مثبت یا منفی باشند. معمولا مقیاس گذاری، بخشی از فرآیند دیجیتال سازی است. از آنجا که آلودگی ضربه ای معمولا نسبت به قدرت سیگنال تصویر بیشتر است، لذا معمولا نقاط نویز ضربه ای بالاترین مقدار(سیاه و سفید) را پس از دیجیتالی شدن پیدا می کنند. بنابراین مقادیر a و b را معمولاً با توجه به مقدار حداقل و حداکثر مجاز در تصویر اشباع شده فرض میکنیم. بنابراین ضربه های منفی به صورت نقاط سیاه(فلفلی) و ضربه های مثبت به صورت نقاط سفید(نمکی) در تصویر مشاهده می شوند. از بهترین فیلترها برای حذف این نوع نویز فیلتر میانه یا فیلتر گوسی است. این فیلترها اگر چه می توانند نویز تصویر را برطرف کنند اما معمولا ًباعث تیره و هموار شدن تصویر و یا لبه های آن می شوند و شرطی برای انجام تغییرات ندارد و همه ی پیکسلها را تغییر می دهد، کاهش نویز به قیمت جابجائی مقادیر پیکسل های غیر نویز با پیکسل های همسایگی می باشد و این به طور کلی منجر به کاهش کیفیت تصویر در نقاط غیر نویز می شود.

رفتار تابع چگالی نرم ضربه ای

نویز گوسی

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

نویز گاوسی

که در آن نمایان گر شدت روشنایی مقدار میانگین و σ انحراف استاندارد است. مربع انحراف استاندارد، σ٢ را واریانس می نامند. وقتی با معادله بالا مشخص شود، تقریبا ۷۰ درصد مقادیر آن در بازه [(¯ − σ),(¯ σ)] و ۹۵درصد مقادیر آن در بازه [(¯ − ٢σ),(¯ + ٢σ)] خواهد بود. یک روش موثر برای حذف نویز گوسی، استفاده از یک ماسک است که بر روی تصویر حرکت می کند و در هر مرحله میانگین همسایه ها در نقطه میانی جای می گیرد.

رفتار تابع چگالی نویز گوسی

نویز رایلی

تابع چگالی احتمال نویز رایلی توسط معادله زیر داده می شود:

تابع چگالی احتمال نویز رایلی

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

متوسط و واریانس نویز رایلی

رفتار تابع چگالی نویز رایلی

نویز ارلانگ(گاما)

تابع چگالی احتمال نویز ارلانگ، از تابع زیر به دست می آید:

تابع چگالی احتمال نویز ارلانگ

که در آن 0<a, b است. میانگین و واریانس این تابع چگالی به صورت زیر محاسبه می شود:

میانگین و واریانس تابع چگالی احتمال نویز ارلانگ

رفتار تابع چگالی نویز ارلانگ

نویز یکنواخت

تابع چگالی احتمال نویز یکنواخت به صورت زیر می باشد:

تابع چگالی احتمال نویز یکنواخت

و میانگین و واریانس آن به صورت زیر محاسبه می گردند:

متوسط و واریانس تابع چگالی احتمال نویز یکنواخت

منبع

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

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

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

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

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

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

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

الگوریتم های موازی باید از جهت ارتباط بین پردازنده‌های مختلف نیز بهینه شوند. الگوریتم های موازی از دو راه با پردازنده‌ها ارتباط برقرار می‌کنند، حافظهٔ مشترک، و رد و بدل کردن پیام.

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

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

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

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

زیر مجموعه‌ای از الگوریتم های موازی، الگوریتم‌های توزیعی هستند که برای استفاده در محیط‌های محاسبات خوشه‌ای و محاسبات توزیعی طراحی شده‌اند، که در این حیطه باید ملاحظاتی افزون بر الگوریتم های موازی «سنتی»، اعمال شود.

طراحی الگوریتم های موازی

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

مشکلات موجود در طراحی الگوریتم های موازی

  • بازده
  • تناسب
  • جزء بندی محاسبات
    • تجزیهٔ
    • تکنیک‌های تجزیهٔ تابعی
  • موقعیت
  • ارتباطات همگام و غیر همگام
  • انباشتگی

طراحی‌های علمی

این روش طراحی در چهار مرحله انجام می‌شود.

  • جزء بندی
  • ارتباطات
  • انباشتگی
  • نقشه بندی

در دو مرحلهٔ اول، تمرکز ما روی تناسب و همزمانی است. در دو مرحلهٔ دیگر نیز تمرکز روی موقعیت، و دیگر مسائل مربوط به کارایی است.

جزء بندی

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

ارتباطات

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

انباشتگی

امور و ساختارهای ارتباطی تعریف شده در دو مرحلهٔ اول یک طرح با توجه به معیارهای زیر ارزیابی می‌شوند.

  • نیازهای اجرایی
  • هزینه‌های پیاده‌سازی

در صورت لزوم، کارها با هم ادغام می‌شوند برای:

  • بهبود بخشیدن به کارایی
  • کاهش هزینه‌های توسعه

نگاشت (تطابق – mapping) – جزءجزء کردن کارها و تخصیص کارها به پردازنده‌ها)

برای هر پردازنده یک سری کار تعریف می‌شود و در این نگاشت موارد زیر رعایت می‌شود:

  • افزایش بهره‌برداری پردازنده‌ها -طوری‌که کارها به صورت متوازن بر روی آن‌ها تقسیم شود
  • کاهش هزینه‌های ارتباطی بین پردازنده‌ها

نگاشت را می‌توان به صورت ثابت یا در زمان اجرا توسط الگوریتم‌های توازن بارگذاری انجام داد.

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

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

بررسی در هم پیچیدگی یا convolution

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

به ماتریسی که حاوی این وزن ها است، هسته ی درهم پیچیدگی(convolution kernel,) گفته می شود و با نام فیلتر، شناخته می شود. یک هسته ی درهم پیچیدگی(فیلتر)، درواقع یک هسته ی همبستگی(correlation kernel) است که به مقدار 180 درجه چرخیده باشد.

بعنوان مثال، فرض کنید که عکس ما برابر است با:

A = [17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9]

و هسته ی پیچیدگی(فیلتر) برابر است با:

h = [8 1 6
3 5 7
4 9 2]

عکس زیر نشان می دهد که چگونه پیکسل خروجی (2,4)(2,4) را با استفاده از توضیحات زیر آن محاسبه کنیم:

چگونگی محاسبه پیکسل خروجی

 1. ابتدا هسته ی درهم پیچیدگی را به اندازه ی 180 درجه، حول عنصر مرکزی آن بچرخانید. یعنی ابتدا ماتریس A را به اندازه ی 180 درجه بگردانید.

2. عنصر مرکزی هسته ی درهم پیچیدگی(در اینجا یعنی 5)  را در گوشه ی بالا و بر روی عنصر (2,4)(2,4) از ماتریس A قرار دهید. این موضوع را در عکس بالا به خوبی مشاهده می کنید. همان طور که مشاهده می کنید، مقدار 5، در گوشه ی بالا و سمت راست از درایه ی قرار گرفته در سطر دوم و ستون چهارم ماتریس A قرار گرفته است.

3. حالا هر یک از اندازه ها(وزن ها)ی درون هسته ی درهم پیچیدگی که چرخانده شده است را در پیکسل زیرین خود، از ماتریس A ضرب کنید:

4. حالا مقادیر به دست آمده در گام شماره 3 را با یکدیگر جمع کنید.

بنابراین پیکسل خروجی  (2,4)(2,4) برابر است با:

پیکسل خروجی 4 و 2

بررسی همبستگی یا Correlation

عملیات همبستگی(correlation)، ارتباط نزدیکی با درهم پیچیدگی(convolution) دارد.

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

توابع طراحی فیلتر در جعبه ابزار پردازش تصویر متلب، هسته های همبستگی(correlation kernels) را برمی گردانند.

تصویر زیر نشان می دهد که چگونه می توانیم  پیکسل خروجی درایه ی (2,4)(2,4) از ماتریس A را با استفاده از عملیات همبستگی، محاسبه کنیم. فرض می کنیم که h یک هسته ی همبستگی باشد، بنابراین گام های زیر را انجام دهید:

بررسی همبستگی

1. درایه ی مرکزی هسته ی همبستگی را بر روی درایه ی (2,4)(2,4) از ماتریس A قرار دهید.

2. حالا هر یک از عناصر هسته ی همبستگی را در پیکسل های زیرین خود ضرب کنید.

3. حالا اعداد در هم ضرب شده را در گام 2، با یکدیگر جمع کنید.

حالا پیکسل خروجی  همبستگی برابر  است با:

پیکسل خروجی همبستگی

 

 اعمال فیلترهای خطی بر روی عکس ها با استفاده از imfilter

با استفاده از تابع imfilter می توانید فیلتر درهم پیچیدگی یا همبستگی را بر روی عکس ها اعمال کنید.

در مثال زیر، یک عکس را با استفاده از یک فیلتر 5×5 که حاوی وزن های مساوی است، مورد فیلتر قرار می دهیم. به این نوع فیلترها، فیلتر میانگین(averaging filter) گفته می شود. خودتان این مثال را در متلب امتحان کنید:

مثال(فیلترهای خطی در متلب و پردازش تصویر)

I = imread('coins.png');
h = ones(5,5) / 25;
I2 = imfilter(I,h);
imshow(I), title('Original Image');
figure, imshow(I2), title('Filtered Image')

مثال پردازش تصویر و متلب

(شماره 1: عکس اصلی. شماره 2: عکس فیلتر شده)

 بررسی نوع داده ها

نوع داده ها در تابع imfilter درست مشابه با نوع داده ها در توابع محاسباتی عکس ها می باشد. در تابع imfilter، نوع داده ی عکس خروجی، مشابه با نوع داده ی عکس ورودی می باشد. تابع imfilter مقدار هر پیکسل خروجی را با دقت double و بصورت اعداد ممیز شناور(floating-point) محاسبه می کند.

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

به دلیل اینکه این توابع عمل کوتاه سازی(truncation) را انجام می دهند، ممکن است شما بخوهید قبل از فراخوانی تابع imfilter عکس خود را به یک نوع داده ی دیگر تبدیل کنید. در مثال زیر، در خروجی تابع imfilter مقادیر منفی یافت می شوند در حالی که عکس ورودی از نوع double می باشد:

مثال(فیلترهای خطی حوزه مکان در پردازش تصویر)

A = magic(5)
A =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9

h = [-1 0 1]
h =
-1 0 1

imfilter(A,h)
ans =
24 -16 -16 14 -8
5 -16 9 9 -14
6 9 14 9 -20
12 9 9 -16 -21
18 14 -16 -16 -2

همان طور که مشاهده می کنید، در خروجی، مقادیر منفی وجود دارند. اکنون فرض کنید که ماتریس A به جای double، از نوع uint8 باشد. بنابراین داریم:

مثال(فیلترهای خطی حوزه مکان در پردازش تصویر)

A = uint8(magic(5));
imfilter(A,h)
ans =
24 0 0 14 0
5 0 9 9 0
6 9 14 9 0
12 9 9 0 0
18 14 0 0 0

 چون که ماتریس ورودی به تابع imfilter از نوع uint8 می باشد، خروجی نیز از نوع uint8 است. و بنابراین مقادیر منفی به 0 تبدیل شده اند(کوتاه شده اند).

 در چنین مواردی، مناسب است که عکس خود را به یک نوع دیگر تبدیل کنیم.

 تنظیمات همبستگی و درهم پیچیدگی

تابع imfilter قادر است تا عمل فیلتر کردن را با استفاده از همبستگی و یا با استفاده از درهم پیچیدگی به انجام برساند.

این تابع به طور پیش فرض، از همبستگی استفاده می کند، زیرا توابع طراحی فیلتر و تابع fspecial ،  هسته های همبستگی را تولید می کنند. اما اگر قصد دارید در فیلتر کردن به جای همبستگی، از درهم پیچیدگی استفاده کنید، می توانید عبارت ‘conv’ را بعنوان یک آرگومان ورودی انتخابی، به تابع imfilter بدهید. بعنوان مثال داریم:

مثال

A = magic(5);
h = [-1 0 1]
imfilter(A,h) % filter using correlation
ans =
24 -16 -16 14 -8
5 -16 9 9 -14
6 9 14 9 -20
12 9 9 -16 -21
18 14 -16 -16 -2
imfilter(A,h,'conv') % filter using convolution
ans =
-24 16 16 -14 8
-5 16 -9 -9 14
-6 -9 -14 -9 20
-12 -9 -9 16 21
-18 -14 16 16 2

تنظیمات پر کردن لبه ها

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

بخشی از هسته ی درهم پیچیدگی یا بخشی از هسته ی همبستگی

 

(شماره 1: به این پیکسل های بیرون افتاده، باید چه مقداری بدهیم؟ ؛ شماره 2: مرکز هسته)

تابع imfilter معمولا برای این پیکسل های بیرون افتاده، مقدار 0 را درنظر می گیرد. به این عمل، به اصطلاح zero padding گفته می شود و در تصویر زیر نشان داده شده است:

zero padding

(شماره 1: پیکسل های بیرونی، 0 در نظر گرفته شده اند. شماره 2: مرکز هسته)

هنگامی که شما یک عکس را فیلتر می کنید، عمل zero padding باعث می شود که لبه های عکس فیلتر شده به رنگ سیاه در بیایند. این موضوع در عکس زیر نشان داده شده است:

مثال

I = imread('eight.tif');
h = ones(5,5) / 25;
I2 = imfilter(I,h);
imshow(I), title('Original Image');
figure, imshow(I2), title('Filtered Image with Black Border')

عکس فیلتر شده

 (شماره 1: عکس اصلی. شماره 2: عکس فیلتر شده به همراه کادر سیاه رنگ)

 برای از بین بردن آثار  zero-padding که بر روی لبه های عکس، اعمال شده است، تابع imfilter یک روش جایگزین برای پر کردن لبه ها به ما ارائه می دهد که به آن، تکرار شدن لبه ها یا border replication گفته می شود.

در عملِ تکرار شدن لبه ها(border replication)، مقدار هر پیکسل که در خارج از عکس قرار گرفته است، برابر با مقدار پیکسلِ نزدیک ترین لبه در عکس، قرار می گیرد. این موضوع در تصویر زیر نشان داده شده است:

تکرار شدن لبه ها

(شماره 1: مقادیر این پیکسل ها برابر با مقادیر لبه ها قرار گرفته است؛ شماره 2: مرکز هسته)

 اگر می خواهید از عمل تکرار شدن لبه ها در فیلتر خوداستفاده کنید، کافیست آرگومان اختیاری replicate را به تابع imfilter بدهید:

مثال(فیلترهای خطی حوزه مکان در پردازش تصویر)

I3 = imfilter(I,h,'replicate');
figure, imshow(I3);
title('Filtered Image with Border Replication')

پرکردن لبه ها با تابع imfilter

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

تابع imfilter از چند خاصیت دیگر نیز در مورد پر کردن لبه ها، پشتیبانی می کند. مثلا از خاصیت circular و symmetric نیز پشتیبانی می کند.

 فیلتر کردن چندبعدی

تابع imfilter قادر است تا عکس های چند بُعدی را مورد استفاده قرار دهد. این تابع همچنین قادر است تا فیلترهای چند بُعدی را اعمال کند. یکی از ویژگی هایی که باعث راحتی کار به هنگام استفاده از فیلترها می شود، این است که اگر بخواهیم یک عکس سه بعدی را به وسیله ی یک فیلتر دو بعدی، مورد فیلتر قرار دهیم، می توانیم هر یک از لایه های عکس سه بعدی را به طور جداگانه با استفاده از همان فیلتر دو بعدی، مورد فیلتر قرار دهیم. مثال زیر، به سادگی روش فیلتر کردن لایه های یک عکس رنگی را با استفاده از یک فیلتر یکسان، نشان می دهد:

1. برای خواندن و نمایش دادن یک عکس رنگی(RGB) دستورات زیر را وارد کنید:

rgb = imread('peppers.png');
imshow(rgb);

فیلتر کردن چند بعدی

2. حالا این عکس را فیلتر می کنیم و سپس نمایش می دهیم:

h = ones(5,5)/25;
rgb2 = imfilter(rgb,h);
figure, imshow(rgb2)

فیلتر کردن چند بعدی

 

بررسی دیگر توابع فیلتر کردن در متلب

متلب حاوی چندین تابع فیلتر کننده ی دو بعدی و سه بعدی است. مثلا:

  • تابع filter2 همبستگی دو بعدی را انجام می دهد.
  • تابع conv2 درهم پیچیدگی دو بعدی را انجام می دهد.
  • تابع convn درهم پیچیدگی چند بعدی را انجام می دهد.

هر یک از این توابع فیلتر کننده، همواره ورودی خود را به نوع double تبدیل می کند، و بنابراین خروجی آنها همواره از نوع double می باشد.

اما تابع imfilter ورودی خود را به نوع double تبدیل نمی کند.

فیلتر کردن یک عکس با انواع فیلترهای از پیش تعریف شده

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

در مثال زیر، فیلتر unsharp بر روی یک عکس سیاه و سفید، اعمال شده است. فیلتر unsharp باعث می شود که لبه ها و جزئیات دقیق درون عکس بصورت چین و چروک دار(more crisp) نشان داده شوند.

فیلتر unsharp

 (عکس سمت چپ: عکس اصلی. عکس سمت راست: عکس فیلتر شده)

منبع

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

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

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

مراحل محاسبه ویژگی های تصویر

گام‌های اصلی در محاسبه ویژگی‌های تصویر عبارت‌اند از:

  1. آشکارسازی اکسترمم‌های فضای مقیاس – هر پیکسل در تصاویر با هشت همسایه‌اش و نه پیکسل(پیکسل متناظر و هشت همسایه‌اش) از هر یک از تصاویر دیگر سری مقایسه می‌شود.
  2. محلی‌سازی کلیدنقطه‌ها – کلیدنقطه‌ها از اکسترمم‌های فضای مقیاس گزیده می‌شوند.
  3. گرایش گماری – برای هر کلیدنقطه در یک پنجره ۱۶x۱۶، نمودار فراوانی گرایش گرادیان‌ها به کمک درونیابی دوسویه محاسبه می‌شوند.
  4. توصیفگر کلیدنقطه – نمایش در یک بردار ۱۲۸ عنصری.

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

SIFT بخشی بنیادی از الگوریتم‌های ViPR و vSLAM ساخته شده توسط شرکت اوُلوشن رباتیکز است که یک الگوریتم هدفیابی/محلی‌سازی بر اساس سیفت نیز برای ایبوی سونی پیاده‌سازی کرده‌است که به کمک آن ایستگاه پر کردن باتری خود را پیدا می‌کند.

تصور می‌شود نمایش‌های ویژگی پیدا شده با SIFT به نمایش‌هایی که توسط نورون‌های پوسته گیجگاهی تحتانی استفاده می‌شوند شبیه‌اند، ناحیه‌ای از مغز که برای بازشناسی جسم در بینایینخستینگان استفاده می‌شود.

منبع

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

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

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

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


 

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

رمز فایل: behsanandish.com

Coevolutionary

 

یک شبکه بیزی یا «شبکه باور» یا «شبکه باور بیزی» (به انگلیسی: Bayesian network) یک گراف جهت‌دار غیرمدور است که مجموعه‌ای از متغیرهای تصادفی و نحوه ارتباط مستقل آن‌ها را نشان می‌دهد. به عنوان نمونه یک شبکه بیزی می‌تواند نشان دهنده ارتباط بین بیماری‌ها و علائم آن‌ها باشد. پس با داشتن علائم باید بتوان احتمال یک بیماری خاص را در یک بیمار تشخیص داد.

شبکه بیزین یک ابزار نسبتاً جدید برای شناسایی (هویت) روابط احتمالی به منظور پیشگویی یا ارزیابی کلاس عضویت است.

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

 

شبکه بیزی

یک شبکه بیزی

خصوصیات

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

جملات مستقل

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

ساختار

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

  1. گره ها(دوایر کوچک): برای نمایش متغیرهای تصادفی
  2. کمانها (پیکانهای نوک تیز) برای نمایش روابط احتمالی ما بین متغیرها

برای هر نود توزیع احتمال محلی وجود دارد که به نود وابسته‌است و از وضعیت والدین مستقل است.

منبع


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

رمز فایل: behsanandish.com

بررسی روش های مربوط به شبکه های بیزین و کاربردهای آن

شبکه های اعتقادی بیز

معرفی شبکه های تصمیم گیری بیزین و کاربرد آنها در مدیریت منابع آب

مفاهیم دسته بندی و شبکه های بیزین

یادگیری ساختاری در شبکه های بیزی

 

 

 

 

 

 

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

برنامه های فیلتر دوبعدی گابور در پردازش تصویر

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

مثال پیاده سازی

(کد برای استخراج ویژگی گابور از تصاویر در MATLAB را می توان در http://www.mathworks.com/matlabcentral/fileexchange/44630 پیدا کنید.)

این یک مثال کاربردی در پایتون است :

import numpy as np

def gabor_fn(sigma, theta, Lambda, psi, gamma):
    sigma_x = sigma
    sigma_y = float(sigma) / gamma

    # Bounding box
    nstds = 3 # Number of standard deviation sigma
    xmax = max(abs(nstds * sigma_x * np.cos(theta)), abs(nstds * sigma_y * np.sin(theta)))
    xmax = np.ceil(max(1, xmax))
    ymax = max(abs(nstds * sigma_x * np.sin(theta)), abs(nstds * sigma_y * np.cos(theta)))
    ymax = np.ceil(max(1, ymax))
    xmin = -xmax
    ymin = -ymax
    (y, x) = np.meshgrid(np.arange(ymin, ymax + 1), np.arange(xmin, xmax + 1))

    # Rotation 
    x_theta = x * np.cos(theta) + y * np.sin(theta)
    y_theta = -x * np.sin(theta) + y * np.cos(theta)

    gb = np.exp(-.5 * (x_theta ** 2 / sigma_x ** 2 + y_theta ** 2 / sigma_y ** 2)) * np.cos(2 * np.pi / Lambda * x_theta + psi)
    return gb

برای پیاده سازی در تصاویر، به [1] مراجعه کنید .

این یک مثال کاربردی در MATLAB / Octave است :

function gb=gabor_fn(sigma,theta,lambda,psi,gamma)

sigma_x = sigma;
sigma_y = sigma/gamma;

% Bounding box
nstds = 3;
xmax = max(abs(nstds*sigma_x*cos(theta)),abs(nstds*sigma_y*sin(theta)));
xmax = ceil(max(1,xmax));
ymax = max(abs(nstds*sigma_x*sin(theta)),abs(nstds*sigma_y*cos(theta)));
ymax = ceil(max(1,ymax));
xmin = -xmax; ymin = -ymax;
[x,y] = meshgrid(xmin:xmax,ymin:ymax);

% Rotation 
x_theta=x*cos(theta)+y*sin(theta);
y_theta=-x*sin(theta)+y*cos(theta);

gb= exp(-.5*(x_theta.^2/sigma_x^2+y_theta.^2/sigma_y^2)).*cos(2*pi/lambda*x_theta+psi);

این مثال دیگر در Haskell است :

import Data.Complex (Complex((:+)))
gabor λ θ ψ σ γ x y = exp ( (-0.5) * ((x'^2 + γ^2*y'^2) / (σ^2)) :+ 0) * exp ( 0 :+ (2*pi*x'/λ+ψ) )
    where x' =  x * cos θ + y * sin θ
          y' = -x * sin θ + y * cos θ

(توجه: a :+ b بایدخوانده شده باشد به عنوان  )

ترجمه شده از سایت wikipedia

فیلتر گابور (Gabor filter) چیست؟ قسمت 1
فیلتر گابور (Gabor filter) چیست؟ قسمت 2
فیلتر گابور (Gabor filter) چیست؟ قسمت 3

فضای موجک

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

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

استخراج ویژگی ها از تصاویر

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

{\displaystyle G_{c}[i,j]=Be^{-{\frac {(i^{2}+j^{2})}{2\sigma ^{2}}}}\cos(2\pi f(i\cos \theta +j\sin \theta ))}

جایی که B و C عوامل عادی سازی را تعیین می کنند. فیلترهای دو بعدی گابور دارای برنامه های غنی در پردازش تصویر هستند، به خصوص در استخراج ویژگی ها برای تحلیل بافت و تقسیم بندی. فرکانس مورد جستجو در بافت را تعریف می کند. با تغییر \theta \theta ، ما می توانیم بافتی جهت دار که در یک جهت خاص باشد را جستجو کنیم. با تغییر \sigma ، ما حمایت از مبانی یا اندازه منطقه تصویر که مورد تجزیه و تحلیل قرار می گیردند را تغییر می دهیم.

 

فیلتر گابور (Gabor filter) چیست؟ قسمت 1
فیلتر گابور (Gabor filter) چیست؟ قسمت 2
فیلتر گابور (Gabor filter) چیست؟ قسمت 3