# مهندسی نرم افزار > مباحث مرتبط با مهندسی نرم‌افزار > پردازش تصویر (Image Processing) >  الگوریتم تشخیص انسان

## nodet

با سلام خدمت همه ی شما دوستان عزیز
قبل از هرچیز از زحمات شما عزیزان در این فروم پربار تشکر میکنم. و اما سوال
من قراره که یه پروژه انجام بدم.هدف پروژه اینه که یه عکس رو میگیره و می گه توی این عکس صورت یک انسان وجود داره یا نه؟
مثلا شما فرض کنید که یه روبات ساخته اید و می خواهید که روبات به محض برخورد با یک انسان از خود واکنش نشان دهد.در ضمن من این کار رو فعلا به صورت ساده قراره انجام بدم و عکس ها به صورت مستقیم و از چهره تهیه می شوند.خوب اگه من رو در اینباره راهنمایی کنید که یک دنیا ممونم. در غی این صورت اگه منبع یا source code مفیدی که به درد این کار من بخوره به من معرفی کنید باز هم ازتون متشکر می شم.
اگه امکان داره خواهشا جواب بدین
با تشکر فراوان 
آرش

----------


## seyedof

سلام
فکر کنم الگوریتم HMM به درد شما بخوره که مال Face Detection است.
ممنون علی

----------


## nodet

دست شما درد نکنه.فقط اگه میشه بگید از کجا میتونم به این الگوریتم دست پیدا کنم.
باز هم متشکرم.

----------


## aidinwashere

http://www.google.com/search?q=hmm+%...en-US:official

----------


## h_shirazee

آقا ! من فک نمی کنم به این سادگی هم که شما فکر می کنید هم نیست ! این یه مبحثه مربوط به پردازش تصویر که خیلی هم کار می بره  ! از بهترین software برای این کار هم تا اون جایی که من اطلاع دارم برنامه MathLab هست که امکانات فوق العاده ای برای پردازش تصویر داره !

----------


## shaniaki

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

http://www.cs.cmu.edu/afs/cs.cmu.edu...ftp/faces.html

یه ... ...

----------


## seyedof

سلام
دوست عزیز اسم روشش رو گفتم دیگه لابد انتظار دارید سورس کدش رو براتون پست کنند؟ خب خودتون زحمت بکشید و از طریق گوگل (که یک موتور جستجوی قوی است) جستجو کنید و paper و اطلاعات اضافه و احیانا سورس کدش رو پیدا کنید. روش HMM Face Detection یک روش مشهور است. در جواب دوستی هم که گفتند ساده نیست بگم که بنده هم نگفتم ساده است:) اصولا کارهای پردازش تصویر ساده نیستند مخصوصا اگر قرارباشه عملیاتی باشن نه آزمایشگاهی.
ممنون علی

----------


## XDelphi

سلام,
نمی دونم کی ها توی این زمینه کار کرده اند.  ولی می خواستم یکم به شما کمک کنم چون مشکل شما ضروریه. اصولا روش های به کار رفته توی این زمیته به دو قسم می باشند : 1.feature based
2. appearance based 
هستند.  خوب ما یکی از روش های پیدا کردن صورت از طریق رنگ می باشه . البته باید گفت که این روش مشکلات خودش رو هم داره ولی از بقیه روش ها سریع تره. 
(مردم با این فارسی تایپ کردن)
ببین توی سایت : www.sourceforge.net یکسری برنامه های free source  پیدا میکنی در این رابطه D:
اگه مشکلی داشتی به من میل بزن خوب.
Iranian_guys@programmer.net



ُSra

----------


## quack

سلام 
پروژه من هم همین بود  . ارائه دادم ولی Document  ش هنوز کامل نشده .  به هر حال اگه خواستی میتونم کمکت کنم.
این یک قسمت از پروژمه امیدوارم به دردت بخوره
مراحل بازشناسی چهره
در این فصل به بررسی ساختار یک سیستم بازشناسی چهره خواهیم پرداخت. به طور کلی یک سیستم بازشناسی خودکار چهره انسان حالت خاصی از پردازش تصویر ، بازشناسی الگو ، بازشناسی اجسام و درک تصویر  است. در مبحث بازشناسی الگو، هدف اصلی، انتساب الگوی ورودی به یکی از کلاسهای موجود می باشد. در بازشناسی چهره هم سیستم باید با دریافت یک تصویر در ورودی، با انجام پردازشهای تصویری لازم، تعیین کند که این تصویر مربوط به کدام یک از افرادی است که تصویرشان در بانک اطلاعاتی چهره ها وجود دارد. این الگوریتم ها براساس مدل محاسباتی درک تصویر از پردازشهای سطح پایین بر روی نقاط تصویر شامل چهره، شروع شده وبا پردازشهای سطح بالا برای تحلیل و درک چهره ختم خواهد شد. اصولاً یک سیستم خودکار شناسایی چهره را می توان به چهار بخش تقسیم کرد که در شکل (2-1) نشان داده شده است.
شکل (2-1) : بلوک دیاگرام سیستم بازشناسی چهره
هدف کلی از بازشناسی خودکار الگوهای بصری، انتساب نمونه ای از یک الگو که سیستم قبلاً آن را تجربه نکرده است به یکی از الگوهایی که قبلاً برای سیستم معرفی شده اند، می باشد. این انتساب بر اساس تحلیل ویژگیهای الگوی ورودی و کلاسهای موجود انجام می گیرد. رسیدن به این هدف کار مشکلی است، زیرا ممکن است الگوی جدید (تصویر ورودی) نسبت به نمونه های قبلی تغییرات زیادی داشته باشد. این تغییرات می تواند ناشی از شرایط محیطی در هنگام تهیه تصویر و یا مربوط به تغییرات  اجتناب ناپذیر در خود الگو باشد. از جمله این تغییرات می توان به نویز وسیله گیرنده تصویر و یا تار بودن تصویر در اثر تنظیم نبودن دوربین  اشاره کرد. تغییر در خود الگو هم ممکن است در اثر مرور زمان بوجود آمده باشد که بعنوان نمونه ای از آن می توان به رشد موها اشاره کرد. تصمیم گیری در مورد کلاس هر الگو را می توان با در نظر گرفتن شباهت دو الگو نیز انجام داد. در این روش با استفاده از یک معیار شباهت مانند همبستگی متقابل  ، میزان شباهت الگوها محاسبه شده و شبیه ترین الگو به ورودی انتخاب می شود.
بر این اساس، سیستم ابتدا بر روی هر تصویر ورودی پردازشهای اولیه را به منظور بهبود کیفیت تصویر و کاستن از اثرات نویز انجام می دهد، سپس چهره از بقیه تصویر جدا شده و ویژگیهای مورد نظر از آن استخراج می شود. این روند بر روی تمام تصاویر موجود در بانک اطلاعاتی تکرار شده و بانک اطلاعاتی به نام بانک ویژگیها ایجاد می شود. هنگامی که یک تصویر برای بررسی هویت و شناسایی به سیستم وارد می شود، نیز تمام مراحل فوق بر روی آن انجام شده و ویژگیهای مورد نظر استخراج می شوند. این ویژگیها وارد بخش طبقه بندی کننده شده و در این بخش با ویژگیهای موجود در بانک ویژگیها مقایسه می گردد. در ادامه به بررسی دقیق تر هر یک از مراحل شناسایی خواهیم پرداخت.
2-1) پردازش های اولیه
با توجه به این که تصاویر ورودی سیستم بازشناسی چهره در شرایط مختلف و در بعضی موارد با استفاده از وسایل مختلفی تهیه می شود، انجام مجموعه ای از اقدامات برای کاستن تاثیر شرایط موجود در هنگام تصویر برداری بر روی عملکرد سیستم، لازم است، در این مرحله با انجام پردازشهای مقدماتی، تصویر برای مراحل بعدی آماده می شود.
هدف از پردازشهای اولیه، بهبود کارآیی سیستم با استفاده از الگوریتمهای بهبود تصویر  است. این بخش شامل الگوریتمهای حذف نویز و کم کردن تاثیر شدت روشنایی محیط می باشد. نویز تصویر می تواند از منابع مختلفی ناشی شده باشد که بستگی زیادی به وسیله تصویر برداری دارد. روشنایی محیط نیز به تعداد و محل منابع نور در هنگام تهیه تصویر بستگی داشته و علاوه بر تاریک یا روشن کردن تصویر می تواند با ایجاد سایه های مختلف، ساختار الگو را تغییر دهد. از این میان فقط مشکل اول با استفاده از اصلاح هیستوگرام قابل حل است.
به طور کلی اولین قدم در هر سیستم پردازش سیگنال، اعمال روشهای کاهش نویز به سیگنال ورودی است. این نویز ممکن است ناشی از دستگاه گیرنده و یا هر منبع دیگری باشد. بسته به منبع و نوع نویز موجود در سیگنال ورودی از روشهای مختلفی برای کاهش اثر آن استفاده می شود که پاره ای از این روش ها عبارتند از :
	کاهش نویز با استفاده از میانگین محلی 
	کاهش نویز با استفاده از فیلتر میانه 
	میانگین گیری آستانه ای 
	میانگین گیری وزن دار 
2-2) مکانیابی چهره و یافتن محل صورت در تصویر
یکی از مراحل مهم در هر نوع سیستم بازشناسی جسم  جدا کردن آن از زمینه است. در بازشناسی چهره هم به طور وسیعی به این مسأله پراخته شده است. اهمیت جدا سازی چهـره از زمینه تصویر در حذف اثر الگوهای زمینه تصویر در استخراج ویژگیها است[74]. در بیشتر روشهای استخراج ویژگیها، تابع تبدیلی بر روی کل تصویر اعمال شده و از نتایج آن به عنوان ویژگی استفاده می شود. در تعدادی از روشها هم خواص آماری بافت تصویر چهره به عنوان ویژگی مطرح می شود. در چنین سیستمهایی اگر در تصویری که به بخش استخراج ویژگیها وارد می شود، زمینه نیز وجود داشته باشد، ویژگیهای استخراج شده حاصل اطلاعاتی در مورد الگوهای زمینه نیز بوده و بنابراین، این ویژگیها برای بازشناسی مناسب نخواهند بود.
در کاربردهایی که از تصاویر متحرک استفاده می شود، با در نظر گرفتن پارامتر حرکت به عنوان مهمترین ویژگی تصویر انسان، می توان به راحتی این کار را انجام داد. اما جداکردن صورت در تصاویر ثابت احتیاج به روشهای پیچیده تری دارد. اولین کارها در زمینه یافتن محل صورت به مقاله [19] باز می گردد که در آن با استفاده از لبه های تصویر، شکل بیضی را که در آن وجود می داشت را بعنوان کاندیدی برای محل صورت در نظر می گرفت.
الگوریتمهای زیادی برای تشخیص چهره  و مکان یابی بیضی چهره  پیشنهاد شده است که مبتنی بر استفاده از اطلاعات شکل[75,76]، اطلاعات رنگ[33,75]، حرکت[77] و غیره می باشد. در ادامه هر یک از روشهای ذکرشده به صورت مختصر توضیح داده شده است. بدیهی است برای اطلاع از جزئیات هر یک از روشهای فوق می توان به مراجع مربوطه و بویژه مرجع[78] مراجعه نمود.
2-3) استخراج ویژگی
انتخاب روش مناسب استخراج ویژگی یکی از عوامل مهم در کارآئی هر سیستم شناسایی است. با توجه به روشهای فراوان استخراج ویژگی که در مقالات ارائه شده اند، همواره این پرسش مطرح می شود که کدام روش استخراج ویژگی برای یک کاربرد معین بهترین است؟
استخراج ویژگی به استخراج اطلاعات مفید از داده های خام اطلاق می شود به گونه ای که آنها برای عملیات طبقه بندی مناسب تر باشد. این اطلاعات (ویژگیها) باید بین طبقه های متفاوت بیشترین تنوع و تفاوت را ایجاد کند، در حالیکه بین الگوهای داخل هر طبقه کمترین تنوع بوجود آید. در این شرایط یافتن مرزهای تصمیم گیری توسط طبقه بندی کننده با سهولت و دقت بیشتری می تواند صورت گیرد و در نتیجه به یک کارآیی خوب در شناسایی منجر شود. کاملاً روشن است که روشهای مختلف ویژگی بسته به نوع مسأله شناسایی و داده های موجود می توانند تقریباً ملزومات فوق را برآورده کنند و یک روش استخراج ویژگی که در یک مساله نتایج خوبی داده است ، ممکن است در یک مساله دیگر مفیدواقع نشود [87].
برای شناسایی تصاویر متنوع از یک چهره یکسان، ویژگیهای استخراج شده باید در مقابل برخی از تبدیلات تغییر ناپذیر  باشد. یعنی ویژگیهای استخراج شده از یک چهره و تغییر یافته آن چهره در اثر تبدیلاتی نظیر جابجائی، تغییر مقیاس و چرخش مقادیر تقریباً مشابهی داشته باشد. در بعضی از روشهای استخراج ویژگی، الگوها را می توان دوباره از روی ویژگیها بازسازی کرد. توانایی بازسازی الگوی اولیه از روی ویژگیها می تواند صحت عمل استخراج ویژگی و کامل بودن اطلاعات استخراج شده از الگو را نشان دهد. از طرف دیگر چنانچه ویژگیهای استخراجی قابلیت بازسازی تصویر چهره اولیه را داشته باشند می توان از آنها برای انتقال تصاویر چهره در شبکه های سریع کمک گرفت و سرعت انتقال را به نحو چشم گیری افزایش داد. مقاوم بودن ویژگیهای استخراج شده نسبت به نویز از دیگر فاکتورهای مهم است، چون حتی پیش از عملیات پیش پردازش ممکن است شکل الگو بر اثر نویز تغییر کرده باشد، این ویژگیها همچنین باید برای تمامی نمونه های ورودی قابل محاسبه باشند.
در مبحث بازشناسی چهره از ویژگیهای مختلفی استفاده شده که می توان به ویژگیهای مبتنی بر PCA []، ICA  []، KPCA  []، (PC)²A []، Eigenface []، تبدیل موجک  []، گشتاورهای متعامد فوریه- ملین  []، گشتاورهای متعامد لژاندر  []، کدهای فرکتالی  []، ویژگیهای مختلف ساختاری  []، گشتاورهای متعامد زرنیکی  و شبه زرنیکی  [] و ... اشاره کرد.



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

----------


## aramhashemi

سلام.
آرش اگه موفق شدی برنامه رو بنویسی لطف" به من هم کمک کن.من هم نیاز فوری دارم.
یا یه مطلب دیگه تو همین مایه ها.
باتشکر فراوان

----------


## alenlion2

سلام آقا برای این کار هم میتونی از شبکه عصبی استفاده کنی هم روشهای آماری در مورد شبکه عصبی باید یک مدل شبکه که به درد این کار میخوره انتخاب کنی که من پیشنهاد می کنم در مورد شبکه های MLP و الگوریتم یادگیری مطالعه بکنی برای روشهای آماری هم اطلاعات دقیقی ندارم ولی یه راه که شاید عملی باشه اینه که عکس مثلا 100 تا صورت رو به عنوان مثال به اندازه 40 * 40 میانگین Pixel ها رو پیدا کنی و بین این 100 تا هم میانگین بگیری و داخل تصویر مورد نظر تمام اندازه های 40*40 رو اسکن کنی و با یک تلرانس اون قسمت رو به عنوان صورت قبول یا رد کنی عیب این روش اینه که جاهای دیگه از تصویر رو که همون میانگین رو داره احتما داره به عنوان صورت در نظر بگیره.

----------


## amirsadeghi

ما کماکان منتظریم تا یکی جواب ما رو بده

----------


## someCoder

یک کلام، ختم کلام: *OpenCV*
دیگه بقیه اش رو خودتون میدونین و گوگل!

----------


## adamak

سلام 
من پروژه خودم واسه دو تا از درس ها  همین بوده با استفاده از روشهای آماری پیاده سازی پروژه رو انجام دادم با شبکه های عصبی هم می خوام کار کنم اگه هنوزم لازم دارید بگید تا اگه بتونم کمکتون کنم 
بطور خلاصه باید یرید سراغ دو روش pca و lda که مقاله های خیلی خوبی در مورد این دو روش برای موضوع face رو با یک search مختصر میتونید پیدا کنید

----------


## amirsadeghi

اگه بتونید کمک کنید که خیلی مرسی میشیم.
چون واقعا لازمه.
ممنون

----------


## tom_mjm

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

----------


## golbafan

سلام من یک برنامه برای اینکار نوشتم برات میفرستم:
برای این جور کارها باید ابتدا تصویر را به حالت 2 سطحی سیاه و سفید در بیارید  بعد از حذف نویز ها  هر پیکسل یک نرون میشود حال با یاد دادن مثال های زیاد به شبکه میتونید چهره را شناسایی کنید

----------


## ladan88

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

----------


## hadise

سلام.وقت همگی بخیر.من یه تحقیق درباره face perception دارم. میخوام بدونم که face perception همین درک تصویره یا اگه نه پس چیه؟؟!!!! :گیج:  ممنون میشم.

----------


## tdkhakpur

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

----------

