no-img
انجام پروژه متلب |پروژه متلب | انجام پروژه متلب برق | شبیه سازی با متلب

نوشتن پروژه پردازش تصویر در متلب | انجام پروژه متلب |پروژه متلب | انجام پروژه متلب برق | شبیه سازی با متلب


انجام پروژه متلب |پروژه متلب | انجام پروژه متلب برق | شبیه سازی با متلب
مطالب ویژه

صفحه جدا

نوشتن پروژه پردازش تصویر در متلب


آموزش متلب

نوشتن پروژه پردازش تصویر در متلب :سورس متلب

 

تشخیص چهره در متلب :

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

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

پارامترهای مهم در تعیین نرخ بازشناخت:

نرخ باز شناخت در تمامی روش­های موجود، به چند عامل مهم وابسته است، که به آنها اشاره می­شود:

الف- اندازه تصاویر چهره

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

ب- تغییرات تصاویر آموزش هر شخص

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

ج- تعداد اشخاص (کلاسها) در بانک تصاویر

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

د- بکار بردن سطح آستانه

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

شبیه سازی:

در این شبیه سازی چندین قسمت مورد توجه قرار می گیرد:

  • استفاده از فیلتر gabor برای تشخیص و استخراج ویژگی های تصویر که این قسمت توسط کد زیر انجام می گیرد:
  • if ~exist(‘gabor.mat’,’file’)
  • fprintf (‘Creating Gabor Filters …’);
  • create_gabor;
  • end
  • if exist(‘net.mat’,’file’)
  • load net;
  • else
  • createffnn
  • end
  • if exist(‘imgdb.mat’,’file’)
  • load imgdb;
  • else
  • IMGDB = loadimages;
  • end

و مابقی قسمت های برنامه بصورت زیر کد می گردد:

while (1==1)

choice=menu(‘neural network’,…

‘loadimages’,…

‘ createffnn’,…

‘trainnet’,…

‘run program’,…

‘clear all’ ,…

‘close’)

 

if (choice ==1)

IMGDB = loadimages;

end

if (choice == 2)

createffnn

end

if (choice == 3)

net = trainnet(net,IMGDB);

end

if (choice == 4)

[file_name file_path] = uigetfile (‘*.jpg’);

if file_path ~= 0

im = imread ([file_path,file_name]);

try

im = rgb2gray(im);

end

tic

im_out = imscan (net,im);

toc

figure;imshow(im_out);

figure;

imcrop([7.5 21.5 18 28]);

imcrop([26.5 13.5 15 27]);

imcrop([47.5 24.5 18 27]);

imcrop([64.5 12.5 17 26]);

imcrop([82.5 23.5 18 28]);

imcrop([98.5 7.5 17 28]);

imcrop([119.5 21.5 18 27]);

end

end

if (choice == 5)

clear all;

clc;

close all;

return;

end

end

سورس متلبکه برنامه حاصل از اجرای برنامه فوق بصورت زیر در می آید:

آموزش متلب

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

مرحله اول:

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

که این بعنوان دیتابیس اصلی برنامه می باشد: که با اجرای آن دیتابیس تشکیل می گردد.

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

numInputs: 1

numLayers: 2

numOutputs: 1

numInputDelays: 0

numLayerDelays: 0

numFeedbackDelays: 0

numWeightElements: 216201

sampleTime: 1

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

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

آموزش متلب

که در شکل فوق تعد اد نرون های هر قسمت را می توانید مشاهده نمایید و تعداد تکرار ۴۰۰ عملکرد،گرادیان شبکه و بقیه پارامترها را می توانید مشاهده نمایید:

در این مرحله آموزش شبکه عصبی تمام شده است و نوبت نوبت به تست شبکه می رسد با اجرای گزینه run program  پنجره ای باز می شود که با انتخاب عکس مورد نظر تست برنامه بر روی تصویر شروع می گردد که اجرای برنامه بصورت زیر در می آید:

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

و نهایتا شکل زیر حاصل می گردد:

فیلتر gabor  استفاده شده از امفایل gabor.m استفاده می شود:

که از دستور

Psi = gabor (w,nu,mu,Kmax,f,sig)

آموزش متلب

برنامه را با عکس سیاه و سفید دیگری نیز تست می کنیم که نتایج خروجی بصورت زیر در می آید:

 

آموزش متلب

برای خرید سورس پروژه روی لینک زیر کلیک نمایید:

فروشگاه سایت