۴۲۱۸۳۰۰۰ - ۰۲۱

پردازش تصویر

چکیده

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

مقدمه

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



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

Pic=imread('Pic.jpg'); Pic1=imadjust(Pic,stretchlim(Pic),[]); AvgPic=('average',5); Filter=imfilter(Pic1,AvgPic); DecPic=decorrstretch(h,'tol',0.01);

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

Red=riocolor(pic1( : , : , 1),10,240);
Green=riocolor(pic1( : , : , 2),95,200);
Blue=riocolor(pic1( : , : , 3),5,170);
Out1=x.*b;
Red=riocolor(Decpic ( : , : , 1),190,255);
Green=riocolor(Decpic( : , : , 2),0,130);
Blue=riocolor(Decpic( : , : , 3),10,200);
Out2 =x.*b;

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

Out=Out1*Out2;

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

for j=1:n
f=s(j);
k=f.bondingBox;
if k(1,3)>=k(1,4)*1.5 || k(1,4)>k(1,3)*2.5
k=f.centroid;
m=bwselect(1,k(1,1),k(1,2);
1=~m.*1;
end
end

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

for j=1:n
f=s(j);
k=f.boundingBox;
if q<0
imshow(image);
end
end

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

نتیجه گیری

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




برچسب ها


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