شناسایی اثر انگشت (تشخیص کیفیت) - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۵۲ نفر آنلاین
۰ عضو و ۵۲ مهمان در سایت حاضرند

شناسایی اثر انگشت (تشخیص کیفیت) [بسته شد]

0 امتیاز
101 بازدید

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

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

استخراج ویژگی به دو  روش کلی و بلوکی اعمال می شود :

روش کلی :

 در این روش الگوریتم مورد نظر بر روی کل تصویر اعمال می گردد همانند محاسبه میانگین و انحراف معیار تصویر اثر انگشت.

پردازش بلوکی :

در این روش تصویر اثر انگشت به بلوک های  تقسیم می شود و الگوریتم مورد نظر بر روی هر بلوک  اعمال می گردد .

بلوک اثر انگشت

شکل 1: نمایش بلوک و پیکسل در تصویر  با ابعاد   و  .پیکسل   که در بلوک   با ابعاد   و  واقع شده است.

 

تصویر اثر انگشت

شکل 2 : a) تصویر ورودی b) تقسیم شده به بلوک تصویر c ) تصویر بلوک d) تصویر دوران داده شده

بسته شد با پیغام: آموزش
سوال شده اردیبهشت 4  بوسیله ی مصطفی ساتکی (امتیاز 16,378)   16 24 66

4 پاسخ

+1 امتیاز

پردازش بر پایه هیستوگرام :

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

محاسبه ضرایب کوواریانس (covcoef):

 

ضرایب کوواریانس را در گرادیان تصویر خاکستری محاسبه می کند.

محاسبه گرادیان تصویر در جهت x و y و سپس پارامترهای a ,b,c  به صورت زیر محاسبه می گردد.

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

جهت ردیج (ridgeorient) :

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

ضریب کوواریانس

orientation map

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

چون تصویر دو بعدی است گرادیان عددی در دو جهت x و y  محاسبه می شود.

برای محاسبه گرادیان از دو روش استفاده می شود.

روش CENTERED_DIFFERENCES :

 

centered_differences

 

روش SOBEL_OPERATOR :

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

sobel

پاسخ داده شده اردیبهشت 4 بوسیله ی مصطفی ساتکی (امتیاز 16,378)   16 24 66
0 امتیاز

نرمال کردن تصویر  : 

برای اینکار ابتدا  میانگین  و انحراف معیار تصویر را محاسبه می کنیم  و سپس تصویر را میانگین کم کرده و تقسیم بر انحراف معیار می کنیم.

fingerprint after normalizationfingerprint before normalization

 

محاسبه نقشه انحراف معیار :

در این روش انحراف معیار هر بلوک را محاسبه  و  سپس بلوک مورد نظر را با مقدار انحراف معیار پر می کنیم.

standard deviation fimgerprint map

 

ماسک بلوکی نواحی ریدج (Ridgesegment) :

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

ridge segmentation

 

چرخش بلوک (getRotatedBlock) :

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

انتخاب ناحیه میانی بلوک چرخیده :

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

 

تحلیل فضای فرکانس (FDA):

این عملیات به صورت بلوکی انجام می شود

a)      با توجه به زاویه ردیج ها بلوک چرخش داده می شود.

b)     ناحیه میانی این بلوک انتخاب می شود.

c)      Projection افقی بر روی تصویر انجام می شود یک ارایه یک بعدی از ساختار ردیج و والی بدست می آید.

d)     از ارایه مورد نظر DFT  گرفته تا فرکانس موج سینوسی در ارایه محاسبه شود.

e)      توان در خروجی مرحله قبل محاسبه می کنیم.

f)       حذف DC

g)      شاخص بزرگترین عنصر را بدست می آوریم.

تحلیل فوریه

C = 0.3

 

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

{ 0.268, 0.304, 0.33, 0.355, 0.38, 0.407, 0.44, 0.50, 1 }

 

تعداد Minutiae(FingerJetFXFeature):

جهت استخراج minutia از کتابخانه FingerJet FX استفاده می شود که این ویژگی به دو صورت استخراج  می شود.

تعداد minutia در کل تصویر اثر انگشت.

تعداد minutia در ناحیه  ای با ابعاد 200* 200  با مرکزیت میانگین minutia ها.

 

کیفیت مینوشیا (FJFXMinutiaeQualityFeature) :

 

محاسبه ویژگی در ناحیه اثر انگشت (ImgProcROIFeature):

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

a)      فرسایش تصویر با کرنل 5*5  افزایش وضوح جزئیات

b)     نرم کردن گوسی  تصویر جهت بدست نواحی با ارزش با کرنل 41*41

c)      باینری کردن تصویر مرحله قبل از طریق روش otsu

d)     نرم کردن مجدد تصویر با روش  گوسی با کرنل 91 *91

e)      باینری کردن مجدد تصویر با روش otsu

f)       یافتن تمامی حفره ها در ماسک و پرکردن آنها

g)      حذف بلاب ها کوچک در اطراف ماسک اصلی

h)     یافتن بزرگترین بلاب.

 

تصویر نرمال اثر انگشت

fingerprint eroded

fingerprint smoothed

fingerprint binary

fingerprint smoothed binary

fingerprint again binary

fingerprint deleted small blobs

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

پاسخ داده شده تیر 13 بوسیله ی مصطفی ساتکی (امتیاز 16,378)   16 24 66
0 امتیاز

میزان وضوح  بلوک ها (Local Clarity Score) :

عملیات به صورت بلوکی انجام می شود

a)      زاویه ردیج ها در هر بلوک محاسبه می شود

b)     ردیج به صورت دوران داده می شود که به صورت عمودی قرار گیرند.

c)      انتخاب ناحیه میانی تصویر

d)     پروجکشن عمودی تصویر مرحله قبل

e)      انتخاب تصویر استانه از طریق رگرسیون خطی جهت باینری کردن تصویر

f)       محاسبه نقاط تغییرات در تصویر باینری

g)      محاسبه فاصله بین نقاط ( پهنای ردیج و والی)

h)     استفاده از تصویر آستانه جهت محاسبه میزان صحت ردیج ها(و والی ها (β)

i)        محاسبه میزان کیفیت

 

سطح قطعیت جهت ردیج((Orientation Certainty Level :

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

OCLmin max eigen values

مقدار کیفیت در بازه صفر و یک می باشد یک دارای بیشترین و صفر دارای کمترین کیفیت است.

پیوستگی جهت  بلوک ها (Orientation Flow) :

عملیات به صورت بلوکی انجام می شود. قدر مطلق زاویه هر بلوک از 8 همسایه کسر می شود و چنانچه این اختلاف از مینیم زاویه θmin = 4  بیشتر باشد یعنی تغییرات محسوس در بلوک مورد نظر وجود دارد.

a)      زاویه ردیج در هر بلوک محاسبه می شود و  تصویر جهت بدست می آید.

b)     محاسبه اختلاف جهت : به صورت بلوک ها 3*3 همپوشان  تصویر جهت را پیمایش می کنیم سپس در هر بلوک مقادیر را از مرکز بلوک کسر می کنیم و مجموع آنها را تقسیم بر 8 می کنیم.

c)      در نواحی که مقادیر اختلاف به مینیمم زاویه باشد عملیات پردازش صورت می گیرد.

d)     هر زاویه در ماسک مرحله قبل را از مینیمم زاویه کسر و تقسیم بر مقدار اختلاف زاویه می کنیم.

OFL

e)      برای بدست آورن مقدار کیفیت  مقادیر بدست آمده در مرحله  قبل را میانگین گرفته و یک کسر می کنیم.

 

محاسبه زاویه و چسبیدگی ردیج ها :

از تصویر گرادیان گرفته و مقادیر grad_x و grad_y را محاسبه می کنیم.

a) برای هر نقطه gx  و gy و coherence2را محاسبه می کنیم.

gy

gx

coherence2

 

b)     مجموع مقادیر gy , gx و coherence2   را برای کل پیکسل ها محاسبه می کنیم و به ترتیب در sum_y , sum_x و coh_sum2 قرار می دهیم.

c)      جهت بلوک را از رابطه زیر بدست می آوریم.

block angle

d)     cho_sum2 را از رابطه زیر محاسبه می کنیم.

coh_sum1

e)      مقدار coherence را از رابطه زیر محاسبه کنید.

final coherence

 

پاسخ داده شده تیر 13 بوسیله ی مصطفی ساتکی (امتیاز 16,378)   16 24 66
0 امتیاز

نقشه کیفیت (Orientation Map Coherence) :

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

یکنواختی ردیج و والی(Ridge Valley Uniformity) :

a)      زاویه ردیج ها در هر بلوک محاسبه می شود

b)     ردیج به صورت دوران داده می شود که به صورت عمودی قرار گیرند.

c)      انتخاب ناحیه میانی تصویر

d)     پروجکشن عمودی تصویر مرحله قبل

e)      انتخاب تصویر استانه از طریق رگرسیون خطی جهت باینری کردن تصویر

f)       محاسبه نقاط تغییرات در تصویر باینری

g)      محاسبه فاصله بین نقاط ( پهنای ردیج و والی)

h)     تقسیم اندازه هر ناحیه بر اندازه ناحیه بعد جهت محاسبه ratio

i)        Ratio=1/ratio

 

استخراج ویژگی های مختلف از طریق کلاس هایی صورت می گیرد که همگی از کلاس BaseFeature مشتق شده است.

مهم ترین کلاس جهت استخراج کیفیت اثر انگشت NFIQ2Algorithm می باشد که متد computeQualityScore وظیفه استخراج کلیه پارامترها را بر عهده دارد . جهت افزایش سرعت محاسبتی نواحی زائد دور اثر انگشت حذف می شود که برای اینکار از متد removeWhiteFrameAroundFingerprint استفاده می شود.

removeWhiteFrameAroundFingerprint : از طرفین به سمت مرکز پیمایش می کند و کلیه سطر ها و ستون هایی که میانگین آنها بالاتر از 250 باشد حذف می شود.

کلاس MuFeature : این کلاس 3 ویژگی تصویر اثر انگشت را استخراج می کنند:

1.      MMB : از هر بلوک تصویر میانگین گرفته و سپس از میانگین های بدست آمده برای هر بلوک میانگین می گیرد.

2.      Mu : میانگین تصویر اثرانگشت.

3.      Sigma : انحراف از معیار تصویر اثر انگشت.

تصویر یکنواخت : از طریق ویژگی Sigma  یکنواخت بودن تصویر بررسی می شود مواردی Sigma < 1 باشد تصویر یکنواخت در نظر گرفته می شود.

تصویر خالی : از طریق ویژگی Mu  تصاویری که دارای کنتراست پایین یا خالی باشند تشخیص داده می شود.Mu > 250

تصاویری که یکی از دو شرط بالا را داشته باشند quality_score آنها 255 در نظر گرفته می شود.

پاسخ داده شده تیر 13 بوسیله ی مصطفی ساتکی (امتیاز 16,378)   16 24 66
...