زهرا حقگو
زهرا حقگو
خواندن ۱۰ دقیقه·۴ سال پیش

ویژگی‌های تصویر

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


معیارهای انتخاب یک ویژگی:

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


به صورت کلی، ویژگی‌های استخراج شده از تصاویر به دو دسته تقسیم میشن: سراسری و محلی
۱. ویژگی های سراسری
این ویژگی‌ها را میتونیم از تصویر خام، در گام اول پردازش تصویر استخراج کنیم. آن‌ها معمولا نسبت به مواردی همچون تغییر زاویه نور پایدار نیستن. در بازیابی تصویر از این ویژگی‌ها برای «شناسایی اشیاء» ( بررسی حضور یا عدم حضور یک شی خاص در تصویر) استفاده میشه. البته صرفا استفاده از این ویژگی‌ها برای دریافت محتوا و معنای یک تصویر کافی نیست.
۲. ویژگی های محلی
بعد از استخراج ویژگی‌های سراسری و شناسایی قسمتی از تصویر که احتمال حضور یک شی در اون وجود داره، تشکیل کادرهای Region of Interest= RoI، با تقسیم آن بخش‌ها، به بلوک‌هایی کوچکتر، به بررسی جزئی‌تر ویژگی‌ها در هر یک از بلوک‌ها می‌پردازیم تا ماهیت آن شی (‌برچسب اون) تشخیص داده بشه. استخراج این ویژگی‌ها، برای توصیف محتوای تصویر ضروری است.

نقش ویژگی‌ها در شناسایی و تشخیص اشیاء تصویر

خلاصه بگم‌: چون اشیاء با ویژگی‌های تشکیل‌دهنده خود معرفی میشن.

در پردازش تصاویر، ابتدا ویژگی‌های سطح پایین (low-level features) موجود در تصویر مانند رنگ، بافت و شکل شناسایی میشن. پس از شناسایی بخشی از تصویر، که احتمالا یک شی در آن قرار دارد، تشخیص هویت آن شی انجام می‌شود تا نام آن مشخص شود. ویژگی‌های استخراج شده از تصاویر، می‌توانند سطح پایین یا سطح بالا باشند. ویژگی‌های سطح بالا(high-level features) به کمک ویژگی‌های سطح پایین کشف میشن.

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

در ادامه ویژگی‌های اصلی تصاویر رنگ، بافت و شکل/لبه‌ها رو خواهیم شناخت

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

۱. ویژگی رنگ (Color)

رنگ، پراستفاده‌ترین ویژگی و شاخص استفاده شده در جستجوی تصاویره. تصاویر با مقادیر پیکسل‌هاشون ذخیره میشن. یک تصویر gray-scale با یک ماتریس نشان داده میشه. هر درایه این ماتریس، که عددی بین ۰تا ۲۵۵دارد، شدت رنگ یک پیکسل تصویر را نشان میده. برای یک تصویر رنگی مثلا در فضای رنگRGB، به ازای هر یک از رنگ‌های قرمز، سبز و آبی یک ماتریس مشابه، برای هر کانال رنگ داریم. متاسفانه این نوع نمایش تصویر، به درک محتوای اون کمکی نمیکنه. برای توصیف رنگ میشه از روش‌های بهتری مثل هیستوگرام رنگ، ماتریس هم-رخدادی (co-occurrence matrix) و momentهای رنگ استفاده کرد. در ویژگی رنگ، مکان قرار گرفتن رنگ و اینکه در چه تعداد از پیکسل‌های تصویر گسترده و تکرار شده هم اهمیت زیادی داره. مثلا مدل شما رنگ آبی رو در تصویر تشخیص داده، حالا برای اینکه ببینه در اون قسمت دریا واقع شده یا آسمان (برای مرحله طبقه‌بندی و برچسب‌زدن به تصویر) می‌تونه به موقعیت مکانی پیکسل‌ها توجه کنه چون آسمان همیشه در بالای یک تصویر و دریا در پایین یک تصویر قرار می‌گیره.

مثالی از هیستوگرام رنگ برای یک عکس در فضای رنگی RGB ( محور X مقیاس و محور Y شدت رنگ هر پیکسل است)
مثالی از هیستوگرام رنگ برای یک عکس در فضای رنگی RGB ( محور X مقیاس و محور Y شدت رنگ هر پیکسل است)

۲. ویژگی بافت (Texture)

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

از صفر (= بافت تصادفی و بدون الگو) تا ۳ (=یک الگوی منظم و تکرارشونده)

ویژگی‌های تامورا
ویژگی‌های تامورا
سطوح ناهمواری
سطوح ناهمواری

روش‌های تشخیص بافت به دو دسته کلی ساختاری و آماری تقسیم میشن.

روش‌های ساختاری، بافت رو با ساختار ذاتی اون توصیف میکنن؛ مانند عملگرهای مورفولوژی و گراف مجاورت. این روش‌ها مناسب تشخیص بافت‌های منظم (periodic) هستن. روش‌های آماری، بافت را توسط یک توزیع آماری توصیف میکنن. از روش‌های معروف میشه به ماتریس هم‌رخدادی، ویژگی‌های تامورا و روش‌های فیلترینگ گابور و تبدیل موجک Haar اشاره کرد. برای بافت بیشتر از روش‌های آماری استفاده میشه.

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

۳. ویژگی شکل/لبه (Shape/Edge)

انسان می تونه بسیاری از اشیاء رو از روی تصویر خطوط اون‌ها شناسایی کنه. کشف لبه، مرحله مهمی در بسیاری از سیستم‌های پردازش تصویر محسوب میشه. اشکال معمولا با روش‌های کانتوریابی( کانتور= منحنی‌های بسته که حوزه یک شی رو مشخص می‌کنن) و با در نظر گرفتن ناحیه، شناسایی میشن. برای تشخیص اشکال یا لبه های یک تصویر:
۱. تصاویر رنگی باید به تصاویر gray-scale تبدیل شوند.
۲. از یک الگوریتم کانتوریابی مناسب برای به دست آوردن کانتورهای اشیاء استفاده شود.
۳. الگوریتم‌های استخراج ویژگی را لازم داریم. ویژگی‌ها باید نسبت به چرخش، تغییر اندازه و انتقال پایدار باشن.

مقایسه بردارهای ویژگی اشکال مختلف
مقایسه بردارهای ویژگی اشکال مختلف


به شکل بالا توجه کنید. هر چه یک شیء انحنا و گوشه‌های بیشتری داشته باشد، بردار ویژگی شکل آن، ابعاد بیشتری خواهد داشت.
برای استخراج لبه‌ها در تصویر، از الگوریتم‌هایی مانند Sobel ، Prewitt ،Roberts ،Canny استفاده میشه.

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

الگوریتم لبه‌یابی Canny
این لبه‌یاب در سال ۱۹۸۶ ایجاد شد و هنوز یکی از بهترین‌های لبه‌یابی تا به امروز است. این الگوریتم از سه بخش اصلی زیر تشکیل شده:
۱. تضعیف نویز
۲. پیدا کردن نقاطی که بتوان آنها را به عنوان لبه در نظر گرفت.
۳. حذف نقاطی که احتمال لبه بودن آنها کم است.

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

منابع:

1. Ramadass Sudhir, "A Survey on Image Mining Techniques: Theory and Applications", Computer Engineering and Intelligent Systems-2011

2. J.B. Judah, Multi-dimensional Indexing Review and Techniques, aster’s thesis

3. Rajshree S. Dubey Niket, Bhargava Rajnish Choubey, "Image Mining using Content Based Image Retrieval System", International Journal on Computer Science and Engineering, Vol. 02, No. 07, 2010

4. Afshan Latif, Umer Sajid, “Content-Based Image Retrieval and Feature Extraction: A
Comprehensive Review”, Mathematical Problems in Engineering Volume 2019

5. D. Ping Tian, “A review on image feature extraction and representation techniques,” International Journal of Multimedia and Ubiquitous Engineering, vol. 8, no. 4, pp. 385-
396, 2013

6. S.Vijayarani, M.Vinupriya,“Performance Analysis of Canny and Sobel Edge Detection
Algorithms in Image Mining”, International Journal of Innovative Research in Computer
and Communication Engineering, Vol. 1, Issue 8, October 2013

۷. کتاب مباحث پیشرفته در داده کاوی - محمدرضا کیوان پور، فرانک حسن زاده، محمد مرادی

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