CBIR: Content Based Image Retrieval

بازیابی تصویر محتوا محور

CBIR: Content Based Image Retrieval

بازیابی تصویر محتوا محور

یادگیری عمیق چیست؟


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

مدلهای یادگیری عمیق مختلفی در تحقیقات و فعالیت های تجاری مورد استفاده قرار می گیرند. بعضی از این مدلها به قرار زیر اند :

·         شبکه عصبی کانولوشن

·         شبکه باور عمیق

·         شبکه عصبی  feed-forward

بسیاری از مدلهای یادگیری عمیق، الهام گرفته از فرآیند های بیولوژیکی اند.

یادگیری عمیق را میتوان هم در یادگیری با نظارت(supervised)  و هم بدون نظارت(unsupervised)  مورد استفاده قرار داد

یادگیری عمیق چگونه کار میکند؟

الگوریتم BackPropagation الگوریتم محبوبی است که یادگیری را در یادگیری عمیق در بسیاری از مدلها پیاده میکند. ایده این الگوریتم در دهه ۷۰ میلادی مطرح و در سال ۱۹۸۶ در مقاله " Learning representations by back-propagating errors "توسط  Rumelhartو Hinton و Williams به شهرت رسید.

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

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

در مقابل یادگیری عمیق، یادگیری کم عمق یا اصطلاحا  shallow learning‌ وجود دارد که قبل از یادگیری عمیق از آن استفاده می شد و در واقع همان support vector machine‌ ها و شبکه های عصبی معمولی و بود.

در یادگیری کم عمق از شبکه عصبی (کم عمق) یا support vector machine‌ها و استفاده می شود و بیشتر برای دسته بندی و تمایز قائل شدن بین کلاسهای مختلفی است که در داده ها وجود دارد (به عنوان مثال برای شناسایی تصاویر سرطان و یا پیش گویی قیمت مسکن که در آن اطلاعات چندین سال اخیر در قالب داده وارد شده و سپس سیستم بر اساس اطلاعات جدید مثلا مقدار زیربنا و... قیمت را محاسبه می کند) اینها نمونه ای از یادگیری هستند. در روش کم عمق می بایست  مهندسی ویژگی انجام و یکسری الگوها و یا معادلات برای کشف ارتباط بین دادها پیدا کرده و بعد با استفاده از آن  مدل را آموزش میدادیم. دریادگیری عمیق خود سیستم مهندسی ویژگی را انجام می دهد. لذا خیلی مورد توجه قرار گرفته و نتایج بسیار عالی ای از آن به دست آمده است. یه نکته مهم در این روش ها عمق می باشد. مثلا شبکه عصبی هم در یادگیری عمیق کاربرد دارد و هم در یادگیری کم عمق! و تفاوت آنها در عمق شبکه می باشد.

 

در اصل یادگیری عمیق در دهه ۸۹ و ۹۰ نیز وجود داشته ولی به خاطر محدودیت سخت افزار و الگوریتم ها عملا تعداد لایه های شبکه عصبی محدود بوده و از سال  ۲۰۱۰ و ۲۰۱۱ و خصوصا ۲۰۱۲ با شدت تمام مطرح شده است. در سال ۲۰۱۲ بود که در اصل الکس کریژوسکی و جف هینتون معروف (یکی از پایه گذاران یادگیری عمیق دنیا) توانستند با استفاده از کارت گرافیک یه شبکه کانولوشنی رو آموزش داده و نتایج حیرت انگیزی بدست آوردند.

 

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

 

در شبکه عصبی لایه ها مثل لیست ویک بعدی هستند. اما در شبکه کانولوشن، لایه کانولوشن چند بعدی است و یکسری لایه ها و عملیاتهای خاص مربوط به خودش را داراست.

روش های دسته بندی بافت

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

الف  -  طبقه  بندی  بافت 

ب-  قطعه  بندی  بافت 

 

هرکدام  از  این  مسائل  کاربردهای  مهمی  در  پردازش  تصاویر  دارند  که  ازجمله  مهم  ترین  آن  ها  آشکارسازی  عیوب  بافتی  [1]  می  باشد

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

الف  -  روش  های  آماری

ب-  روش  های  هندسی

ج-  روش  های  مبتنی  بر  مدل

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

ح-  روش  های  ساختاری

 

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

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

اریواژگان  و  همکاران  [2]،  از  اعمال  ماتریس  وقوع  همرخدادی  بر  زیر  باندهای  حاصل  از  تبدیل  موجک  به  منظور  استخراج  ویژگی  و  طبقه  بندی  بافت  استفاده  نموده  اند.  هیرمس  و  همکاران  [3]نیز  از  اعمال  ماتریس  وقوع  همرخدادی  بر  تبدیل  موجک  درختی  استفاده  نموده  اند.  رامانا  و  همکاران  [4]،  میدان  تصادفی  مارکوف  گاوسی  را  بر  خروجی  حاصل  از  تبدیل  موجک  اعمال  نموده  اند  و  از  ویژگیهای  حاصل  از  این  عملگر  استفاده  کردهاند.  کومار  و  همکاران  [5]،  از  ترکیب  عملگرهای  آماری  و  ریخت  شناسی  بر  روی  خروجی  تبدیل  فوریه  تصویر،  برای  استخراج  ویژگی  و  قطعه  بندی  بافت  تصویر  استفاده  نموده  اند

معیارهای  مختلفی  در  مقالات  مختلف  [6]بعنوان  معیار  ارزیابی  طبقه  بندی  و  معیار  فاصله  در  قطعه  بندی  بافت  استفاده  شده  است

که مشهورترین آنها ۳ معیار مقایسه هیستوگرام است که عبارتند از  :

  معیار شباهت لگاریتمی

  معیار شباهت اشتراک هیستوگرام

  معیار فاصله مربع  کای

 


 

 

 

منابع

 

[1] F  Tajeripour,  E  Kabir,  A  Sheikhi,  Fabric  defect  detection  using  modified  local  binary  patterns,EURASIP  Journal  on  Advances  in  Signal  Processing  8,1-12(2008).


[2] S.  Arivazhagan،  L.  Ganesan،  texture  classification  using  wavelet  transform،  Pattern  Recognition  Letters،  vol.  24،pp.  1513-1521،  2003.


[3] P.S.  Hiremath،  S.  Shivashankar،  Texture  classification  using  wavelet  packet  decomposition،  GVIP  journal،vol.  6،Issue.  2


[4] B.V.  Ramana  Reddy،  M.  Radhika  Mani،  K.V.  Subbaivah،  Texture  classification  method  using  wavelet  transform  based  on  Gaussian  Markov  random  field،”International  Journal  of  signal  and  Image  processing،  vol.1،  Issue.  1،  pp.  35-39،  2010.


[5] V.  Vijaya  Kumar،  U.S.N.  Raju،  M.  Radhika  Mani  and  A.L.  Narasimha  Rao،  Wavelet  based  texture  segmentation  methods  based  on  combinatorial  of  morphological  and  statistical  operations،  International  Journal  of  computer  science  and  network  security،  vol.  8،  no.  8،  pp.  176-181،  2008.


[6] T.  Ojala،  M.  Pietikäinen  and  T.  Mäenpää،Multiresolution  gray-scale  and  rotation  invariant  texture  classification  with  local  binary  patterns،    IEEE  Transactions  on  Pattern  Analysis  and  Machine  Intelligence،  vol.  24،  no.  7،  pp.  971–987،  2002.

Texture در بازیابی تصویر

بافت ها[1]، الگوهای بصری پیچیده ای هستند که با خصوصیات خاصی که دارند می توانند از بین تصاویر جدا سازی شوند. در اکثر کارهای انجام شده از ویژگی های مبتنی بر بافت در مواردی مانند بازاریابی تصویر مبتنی بر محتوا [1]، تقسیم بندی تصویر [2]، سنتز [3]، خوشه بندی و طبقه بندی [4-5] می توان استفاده نمود. برای این منظور لازم است که یک بافت تصویر با استفاده از یک مدل به طور مناسب نمایش داده شود تا بتوان از آن اطلاعات مرتبط و توصیفی را استخراج نمود. برای این منظور روش های مختلفی ارائه شده است که مهم ترین آنها روش های آماری مبتنی بر توزیع های آماری برای شناسایی وتحلیل عناصر یک بافت می باشد. به عنوان نمونه الگوریتم باینری LBP[2] یکی از الگوریتم های موفق در این زمینه است که برای کار بر روی بافت های خاکستری طراحی شده است و از جمله یکی از طرح های موفق در بینایی ماشین می باشد. طرح CLBP[3]  برای طبقه بندی بافت توسعه داده شده است.  در LDSMT[4] یک پیکسل مرکزی و یک سری علامت که بیانگر اختلاف پیکسل ها با پیکسل مرکزی است بیان شده است. در هر ناحیه پیکسل مرکزی سطح خاکستری تصویر را نشان می دهند و با استفاده از اختلاف آن با سایر نقاط CLBP_C[5]  بدست می آید. با استفاده از LDSMT  تصویر، اختلافات محلی به دو جزء اصلی تقسیم می شوند: یکی نشانه ها و دیگری مقادیرکه در نتیجه آن دو اپراتور،  CLBP_S[6]  و CLBP_M[7] به دست می آیند که به صورت شماتیک می توان آنها را در شکل زیر مشاهده نمود.



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


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


85

82

84

121

105

68

86

113

69

41

75

79

77

75

73

82

 

با شروع از نقاط (اعداد 85 و 69) دو شبکه و دو مسیر حرکت مختلف به دست می آید که به صورت رنگی مشخص شده است.


حال این شبکه ها بر هم منطبق و یک شبکه ترکیبی به دست می آید و بر اساس پارامترهای مطرح در شبکه ها می توان به شباهت ها و دسته بندی تصاویر اقدام نمود.

 

منابع

[1] T. Randen and J. H. Husy, “Filtering for texture classification: A comparative study,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 21, no. 4,pp. 291–310, Apr. 1999.


[2] R. L. Kashyap and A. Khotanzed, “A model-based method for rotation invariant texture classification,” IEEE Trans. Pattern Anal. Mach. Intell.,vol. 8, .no. 4,pp. 472-481, Jul. 1986


[3] J.L. Chen and A. Kundu, “Rotation and gray scale transform invariant texture identification using wavelet decomposition and hidden Markov model,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 16, no. 2, pp. 208–214, Feb. 1994


[4] H. Deng and D. A. Clausi, “Gaussian VZ-MRF rotation-invariant features for image classification,” IEEE Trans. Pattern Anal. Mach. Intell.,vol. 26, no. 7, pp. 951–955, Jul. 2004


[5] M. Varma and A. Zisserman, “A statistical approach to texture classification from single images,” Int. J. Comput. Vision, vol. 62, no. 1–2,pp. 61–81, 2005




[1] Texture

[2] Local binary pattern

[3] Completed LBP

[4] local difference sign-magnitude transform

[5] CLBP-Center

[6] CLBP-Sign

[7] CLBP-Magnitude

نقش تشخیص لبه در CBIR

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

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

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

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

در اکثر کارهای انجام شده برای بازیابی تصاویر و یا تعیین شباهت بین دو تصویر، از شناسایی لبه ها به منظور شناسایی نقاط کلیدی استفاده شده است. برای این منظور از الگوریتم های لبه یابی همانند Harris[1] ، Shi[2] ، Sift[3] ، Surf[4]  و ... استفاده شده است. همانگونه که از اسم این الگوریتم ها مشخص است از آنها برای شناسایی لبه ها و یا گوشه های تصویر که دارای اهمیت بیشتری نسبت به سایر نقاط می باشند استفاده می شود. هر یک از این الگوریتم ها در موارد خاصی کاربرد داشته ولی به طور کلی هر کدام جهت تکمیل نواقص موجود در سایر الگوریتم های موجود و ایجاد الگوریتم دقیق تر جهت شناسایی لبه و نقاط کلیدی بوجود آمده اند هرچند تاکنون الگوریتم کامل و دقیقی برای شناسایی لبه برای تمامی تصاویر طراحی نشده است.


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

 




Harris
Shi
Surf

Sift


منابع



[1] Lindeberg (1998) "Edge detection and ridge detection with automatic scale selection", International Journal of Computer Vision, 30, 2, pages 117-154


[2] J.M. Park and Y. Lu (2008) "Edge detection in grayscale, color, and range images", in B. W. Wah (editor) Encyclopedia of Computer Science and  Engineering, doi 10.1002/9780470050118.ecse606


[3] J.Canny (1986) "A computational approach to edge detection", IEEE Trans. Pattern Analysis and Machine Intelligence, vol 8, pages 679–714




[1] Harris Corner Detector

[2] Shi-Tomasi Corner Detector

[3] Scale-invariant feature transform

[4] Speeded Up Robust Features

چالش های موجود در CBIR


عمدتا در تمامی تحقیقات دو چالش عمده برای بحث بازیابی تصویر بر اساس محتوا وجود دارد که تمامی روش ها برای پاسخ به آنها مطرح شده و مورد آزمایش قرار گرفته اند این مشکلات عبارتند از:
1-  مشکل اصلی وعمده شکاف و یا "گپ معنایی"[1] در بازیابی تصویر مبتنی بر محتوا می باشد

2- مشکل دوم ارزیابی تکنیک های بازیابی تصویر مبتنی بر محتوا است که با استفاده از آن
اثربخشی رویکردهای پیشنهادی در هنگام نمایه سازی و بازیابی تصویر مورد بررسی قرار می گیرد.

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

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

برای بازیابی تصاویر مورد نظر از یک پایگاه داده تصویر بزرگ، الگوریتم های  موثر و کارآمدی برای نمایه سازی و بازیابی تصویر پیشنهاد شده است.  امروزه الگوریتم های تکاملی تقریبا در تمام زمینه ها مانند علم، مهندسی و تکنولوژی مورد استفاده قرار گرفته اند. که به عنوان نمونه استفاده از الگوریتمهای تکاملی مانند ژنتیک و الگوریتم بهینه سازی ذرات و ... برای مقایسه شباهت در سیستم CBIR  پیشنهاد شده است.

 

 

منابع


[1] Content based image retrieval techniques Issues, analysis and the state of the art

[2] Issues on Content-Based Image Retrieval June 2003




[1] Semantic Gap