مهندس نسرین جمشیدی صالح
مهندس نسرین جمشیدی صالح
خواندن ۵ دقیقه·۵ سال پیش

شناسایی چهره با SIFT

بخش اول:

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

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

هدف سیستم CBIR پشتیبانی از بازیابی تصویر است که بر اساس محتوا مثل شکل، رنگ ، بافت و ... می باشد.

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

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

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

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

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

مراحل الگوریتم :

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

مقایسه ای کوچک با الگوریتمی مشابه

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

در بخش دوم این مبحث بیشتر وارد جزئیات عملکرد sift خواهیم شد.

بخش دوم

الگوریتم SIFT یک ابزار توصیف تصویر است که در سال 1999 معرفی شد . این الگوریتم نسبت به تغییراتی مانند دوران و تغییر مقیاس، پایدار (اینورینت ) است. نسبت به تبدیلات هایی چون affine ، تغییرات نورپردازی، نویز و تغییر زاویه دید و انسداد تا حدی پایدار است.

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

همانطور که می دانید به طور کلی تشخیص در الگوریتم sift از طریق دو بخش انجام می شود که عبارتند از :

  • تشخیص نقاط کلیدی تصویر
  • محاسبه اطلاعات توصیف کننده نقاط

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

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


فیلتر گوسی در شناسایی چهره
فیلتر گوسی در شناسایی چهره


فضای مقیاس شامل چند تصویر است که با چند بار اعمال فیلتر گوسی بدست می آید.

در ساخت فضای مقیاس سپس عمل ریسمپلینگ انجام می شود و یک اکتاو جدید ساخته می شود. در هر اکتاو تفاضل گوسی ها (DoG)محاسبه می شود.

تفاضل گوسی در شناسایی چهره
تفاضل گوسی در شناسایی چهره

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

 scale
scale


تا اینجا به ازای هر نقطه کلیدی، یک مختصات و یک مقیاس داریم یعنی : (x, y , δ)

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

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

گرادیان
گرادیان



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

 هر نقطه کلیدی ، یک مختصات ، یک مقیاس و یک جهت  : (x,y,δ,o)
هر نقطه کلیدی ، یک مختصات ، یک مقیاس و یک جهت : (x,y,δ,o)

استخراج ویژگی ها:

به هر نقطه کلیدی یک بردار ویژگی شامل 128 مولفه اختصاص داده می شود. پنجره اطراف نقطه کلیدی به 4*4 زیرپنجره تقسیم می شود و در هر زیرپنجره یک هیستوگرام از گرادیان ها رسم می شود( هر هیستوگرام شامل 8 مقدار است.)

تعداد ویژگی ها برابر خواهد بود : 4*4*8 = 128

خروجی SIFT
خروجی SIFT


خروجی SIFT:

فرض کنید n نقطه کلیدی داریم و به همان نسبت هم n بردار با مختصات و مقیاس و جهتِ (x,y,δ,o) داریم و n بردار 128 تایی داریم (f1,…f128)



مختصات ، مقیاس و جهت نقاط کلیدی
مختصات ، مقیاس و جهت نقاط کلیدی


یافتن اشیاء در تصویر به کمک الگوریتم sift:

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


کاربرد الگوریتم SIFT:

1- شناسایی چهره

2- ثبت تصاویر چند طیفی

تصویر مادون قرمز
تصویر مادون قرمز


تصویر مرئی
تصویر مرئی





بخشی از کدهای الگوریتم SIFT با پایتون:

import cv2

import numpy as np

img = cv2.imread('home.jpg')

gray= cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

sift = cv2.SIFT()

kp = sift.detect(gray,None)

img=cv2.drawKeypoints(gray,kp)

cv2.imwrite('sift_keypoints.jpg',img)

sift = cv2.SIFT()

kp, des = sift.detectAndCompute(gray,None)


تصویر نهایی از دستگاه حضور و غیاب G3 Plus با اعمال الگوریتم SIFT------ دوایر در تصویر مربوط به استخراج ویژگی با اطلاعاتی چون مختصات، مقیاس و جهت می باشد.
تصویر نهایی از دستگاه حضور و غیاب G3 Plus با اعمال الگوریتم SIFT------ دوایر در تصویر مربوط به استخراج ویژگی با اطلاعاتی چون مختصات، مقیاس و جهت می باشد.



منابع:

Improving Content Based Image Retrieval using Scale Invariant Feature Transform - ISSN: 2249 – 8958, Volume-1, Issue-5, June 2012






شناسایی چهرهدستگاه حضور و غیابتشخیص چهرهالگوریتم siftشرکت سامانه های بُعد پنجم
مدیر و متخصص سئو، طراح سایت، دیجیتال مارکتینگ، مهارت در برنامه نویسی ASP.NET، وردپرس، #c , پایتون , دانشجوی دکترای هوش مصنوعی و رباتیکز و علاقه مند به نویسندگی و تولید محتوا
شاید از این پست‌ها خوشتان بیاید