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

## mehdad.koulab

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

----------


## mehdad.koulab

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

----------


## ...!M.J!...

چیزی که به ذهن من هم میرسه از لبها و حالت گونه ها ست

----------


## .:KeihanCPU:.

مطمئنا فقط دندونها نیست
میتونه رویت دندانها,تغییر حالت گونه ها و لب باشه
و در حالت کلی ماهیچه هایی که در صورت هنگام خندیدن تغییر حالت میدن.
من که فکر میکنم تشخیص صدا هم یکی از عوامل هست البته در خنده های با صدای بلند
در کل اینطور تکنولوژی زیاد هم دقیق نیست(البته در زمان حال) چون من از این دوربینها دیدم
همه اینا به کنار تشخیص حالتها مبحثی دیگر است...
این قصه سر دراز دارد...

----------


## dark.lord

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

----------


## majoran

شما باید برید دنبال الگوریتم MPT بگردید تو سورس فورگ من Demo رو قبلا دیده بودم خیلی چیز جالبی بود از همه طریق تشخیص چهره می داد از رو رنگ پوست از رو ابرو ها از رو لب و دهن ها و....

----------


## samprp

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

از جناب majoran هم ممنون بابت توضیحشون.

----------


## ShimaIGI

برنامه هايي از اين دست تصاوير گرفته شده رو مرحله به مرحله آناليز مي كنن. در مرحله اول بدن انسان رو تشخيص مي دن و سپس به تشخيص اجرا بدن ( اونهايي كه داخل تصوير ديده مي شن ) مي پردازن تا جائي كه تصويري سه بعدي از اسكلت شخص بدست ميارن ( حتي اگه بدن شخص كاملا داخل تصوير نباشه مي تونن حالت بدن رو تشخيص بدن ).
تا اينجا برنامه تونسته تشخيص بده كه آيا صورت در زاويه، وضوح و كادر مناسب براي انداخت عكس هست يا خير. سپس اجزا صورت رو آناليز مي كنه و محل قرار گيري چشم ها، بيني، لب و گونه ها رو آناليز كرده و حتي به جزئيات ريز اونها مي پردازه كه تشخيص اون كار بسيار دشواري هست.
در واقع شما بايد استانداري از حالت چهره نرمال بدست بياريد و سپس حالت چهره شخص رو با اون بسنجيند تا ببينيد آيا لبخند مي زنه يا گريه مي كنه!
اين بخش به مرات سخت تر و پيچيده تز از مراحل قبل هست و همچينين نياز به دقت بالاي دوربين نيز داره. 
خنديدن يعني باز شدن لبها رو به بالا ، انقباض گونه ها و كمي بسته شدن يا بهتر بگم تنگ تر شدن چشمها . هر زمان برنامه بتونه اين حالات رو در حد مورد قبول تشخيص بده، شخص رو در حال خنده تصور كرده و از اون عكس مي گيره.
برنامه هايي كه از چنيني هوشي براي پردازش تصاوير استفاده مي كنند رو هنوز من جائي نديدم اما مي تونيد از برنامه هايي مثل Face Foto Filter براي درك بهتر موضوع استفاده كنيد. اين برنامه ها قادر به آناليز هوشمند اجزا صورت نيستند و براي اينكار تا حدودي به كاربر وابسته هستند اما پس از تعيين درست مكان اجزا صورت مي توانند حالت هاي مختلف خنده، گريه، تعجب و ... رو در تصوير شخص ايجاد كنند.
اميدوارم كمك كنه

----------


## mehdad.koulab

> برنامه هايي از اين دست تصاوير گرفته شده رو مرحله به مرحله آناليز مي كنن. در مرحله اول بدن انسان رو تشخيص مي دن و سپس به تشخيص اجرا بدن ( اونهايي كه داخل تصوير ديده مي شن ) مي پردازن تا جائي كه تصويري سه بعدي از اسكلت شخص بدست ميارن ( حتي اگه بدن شخص كاملا داخل تصوير نباشه مي تونن حالت بدن رو تشخيص بدن ).
> تا اينجا برنامه تونسته تشخيص بده كه آيا صورت در زاويه، وضوح و كادر مناسب براي انداخت عكس هست يا خير. سپس اجزا صورت رو آناليز مي كنه و محل قرار گيري چشم ها، بيني، لب و گونه ها رو آناليز كرده و حتي به جزئيات ريز اونها مي پردازه كه تشخيص اون كار بسيار دشواري هست.
> در واقع شما بايد استانداري از حالت چهره نرمال بدست بياريد و سپس حالت چهره شخص رو با اون بسنجيند تا ببينيد آيا لبخند مي زنه يا گريه مي كنه!
> اين بخش به مرات سخت تر و پيچيده تز از مراحل قبل هست و همچينين نياز به دقت بالاي دوربين نيز داره. 
> خنديدن يعني باز شدن لبها رو به بالا ، انقباض گونه ها و كمي بسته شدن يا بهتر بگم تنگ تر شدن چشمها . هر زمان برنامه بتونه اين حالات رو در حد مورد قبول تشخيص بده، شخص رو در حال خنده تصور كرده و از اون عكس مي گيره.
> برنامه هايي كه از چنيني هوشي براي پردازش تصاوير استفاده مي كنند رو هنوز من جائي نديدم اما مي تونيد از برنامه هايي مثل Face Foto Filter براي درك بهتر موضوع استفاده كنيد. اين برنامه ها قادر به آناليز هوشمند اجزا صورت نيستند و براي اينكار تا حدودي به كاربر وابسته هستند اما پس از تعيين درست مكان اجزا صورت مي توانند حالت هاي مختلف خنده، گريه، تعجب و ... رو در تصوير شخص ايجاد كنند.
> اميدوارم كمك كنه


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

----------


## mehdad.koulab

اینهم سایت همون نرم افزار تشخیص چهره
اولین نرم افزار شناسایی چهره ایران

----------


## dark.lord

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


دوست عزيزم من فكر مي كنم در كتاب هايي كه از Image processing صحبت شده از آن به عنوان يك هوش مصنوعي ياد مي كنند. شايد بشود برخي كارهايي كه در برنامه ي كاربردي مثل فتوشاپ موجود است رو از هوش مصنوعي جدا دانست ولي در كل شاخه ي  " پردازش پنداره " يكي از شاخه هاي مصنوعي به حساب مي آد...

و البته پردازش تصوير در فتوشاپ به عنوان يك تصوير ثابت با پردازش يك ويدئو يا تصوير متحرك كاملا مجزا است... چون پردازش ويدئو بيشتر از تغييرات ايجاد شده در تصوير بهره مي گيرد، ر حالي كه در پردازش يك عكس بيشتر از اطلاعات از پيش محاسبه شده كمك مي گيرند

----------


## pesare_ariyayi

من هم یه سایت دیده بودم که عکس رو می گرفت, صورت ها رو جدا می کرد و کسایی که شبیه عکستون هستند رو بهتون نشون می داد (نسبت به چهره های دیتابیسش)
http://www.myheritage.com/FP/Company...Method=myFiles
این پروژه از دو قسمت پردازش تصویر و ماشین بینایی تشکیل شده که هردو ابزارهای هوش مصنوعی هستند.
تکنیک پردازش تصویر توی این پروژه در تشخیص اولیه ی صورت (حالت عادی یا استاندارد) و تشخیص ثانویه صورت (هنگام لبخند) بکار رفته. و تکنیک ماشین بینایی همون مقایسه ی این دو حالت و تشخیص خنده هست.
حالا اینکه چطور صورت تشخیص داده میشه, خودش 4 واحد درسیه که می تونید کتابش رو از انقلاب با مشخصات زیر بگیرید:
نام کتاب: پردازش تصویر رقمی
نویسنده: رافائل سی. گونزالس و ریچارد ای. وودز
ترجمه: دکتر مرتضی خادمی - مهندس داوود جعفری
انتشارات: دانشگاه فردوسی مشهد
ISBN: 964-386-003-5
برای تشخیص هر شی می شه به تکنیکهایی مثل تبدیل فوریه, بدست آوردن لبه, تبدیل والش و... اشاره کرد.
منتها راجع به تکنیکهای ماشین بینایی اطلاعی ندارم

----------


## hamed jalili

> این موارد مربوط به هوش مصنوعی نمی شن .


دوست عزیز ، پردازش تصویر یکی از زیر شاخه های هوش مصنوعیه ، که صورت رو به چه به صورت 3D و چه به صورت 2D شناسایی می کند . 

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

یه مقاله Phd براتون آپلود می کنم . فکر کنم قابل استفاده باشه . 


و در مورد SONY . 
بلاخره SONY ه دیگه  :چشمک: 
الگوریتم های تشخیص حالات صورت زیاد هستند که از یک KB استفاده می کنند و با استفاده از یک سری فرمول های ریاضی ، اطلاعات موجود در KB رو با تصویر گرفته شده Match می کنند . به این صورت تشخیص می دهند که حالت صورت چیه . 
حالا این KB چیه و با چه فرمول هایی از اون استنتاج می کنند مربوط به الگوریتمی ه که استفاده می شه . 







.

----------


## mehdad.koulab

سلام دوستان وممنون از همكاريتون
من هم  با دوستانمون hamed jalili و dark.lord موافقم چون پايه و اساس پردازش تصوير هوش مصنوعيه به ويژه تو اين قسم از پردازش تصوير كه تشخيص چهره و خنده و ... اگه هوش مصنوعي و شبكه هاي عصبي نباشه فكر نكنم چنين كارهايي رو بشه انجام داد.

----------


## hamed jalili

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











.

----------


## Amir Oveisi

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

----------


## mehdad.koulab

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


سلام دوست عزيز 
شما از چه الگوريتمي استفاده كردين لطفا يه كم توضيح بدين.

----------


## dark.lord

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

*.... منبع : "یه pdf که نمی دونم از کجا می شه تهیه کرد ... همین چند وقت پیش خوندمش ولی فکر می کنم اگر بگردید می تونید از اینترنت پیداش کنید"
برای این که بیشتر بدونید می تونید از Bermooda نیز کمک بگیرید.

----------


## pesare_ariyayi

ِDark.lord عزیز
من هیچ سواد رسمی ای از پردازش تصویر و هوش مصنوعی ندارم و منظور شما رو در مورد واژه هایی مثل "الگوریتم ژنتیک"
"انتخاب تصادفی" (انتخاب از چه چیزهایی؟)
"جستجو" (برای پیدا کردن چی دقیقا؟ لبخند یا مشخصه هایی مثل لبه؟)
بیشتر روشها" (این روشها آیا همون الگوریتمها هستن؟ اگه هستن الگوریتم های چه مسائلی؟)
"فضای جستجوی الگوریتم ژنتیک" (آیا منظور همون تصویر یا آرایه ای از تصویرها هست؟)
"به صورت همزمان در نظر گرفتن چندین نقطه" (منظور با ارزشهای مساوی در نظر گرفتنه؟)
"به یک بیشینه محلی همگرا بشه" (هیچجوره نمی فهمم)
"بیشتر روشها از نقطه ای به نقطه ی دیگر حرکت می کنند" (منظور از این نقطه های چیا هستند؟)
به طور کل من هیچ چی از این متن نفهمیدم. اگر ممکنه راجع به این اصطلاحات توضیح بدید یا مقاله رو پیدا کنید یا موضوع مقاله رو بگین.

----------


## Amir Oveisi

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

موفق باشید
jooje

----------


## Amir Oveisi

> ِDark.lord عزیز
> من هیچ سواد رسمی ای از پردازش تصویر و هوش مصنوعی ندارم و منظور شما رو در مورد واژه هایی مثل "الگوریتم ژنتیک"
> "انتخاب تصادفی" (انتخاب از چه چیزهایی؟)
> "جستجو" (برای پیدا کردن چی دقیقا؟ لبخند یا مشخصه هایی مثل لبه؟)
> بیشتر روشها" (این روشها آیا همون الگوریتمها هستن؟ اگه هستن الگوریتم های چه مسائلی؟)
> "فضای جستجوی الگوریتم ژنتیک" (آیا منظور همون تصویر یا آرایه ای از تصویرها هست؟)
> "به صورت همزمان در نظر گرفتن چندین نقطه" (منظور با ارزشهای مساوی در نظر گرفتنه؟)
> "به یک بیشینه محلی همگرا بشه" (هیچجوره نمی فهمم)
> "بیشتر روشها از نقطه ای به نقطه ی دیگر حرکت می کنند" (منظور از این نقطه های چیا هستند؟)
> به طور کل من هیچ چی از این متن نفهمیدم. اگر ممکنه راجع به این اصطلاحات توضیح بدید یا مقاله رو پیدا کنید یا موضوع مقاله رو بگین.


http://en.wikipedia.org/wiki/Genetic_algorithm

----------


## hamed jalili

در تکمیل گفته های آقای dark.lord و در جواب سوال آقای pesare_ariyayi 


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

از این دو الگوریتم تنها زمانی استفاده میشه که از راه حل قطعی برای مساله نباشه . مثلا نتوان برای آن مساله الگوریتم Greedy یا A* یا IDS یا EDS یا روش های غیر هوشمندانه ای مانند Binary Search  رو پیاده کرد . 


موضوع این تاپیک Genetic Algorithim نیست ولی صرف جواب به سوال دوستمون ، یه توضیح مختصر می دهم . 
در الگوریتم ژنتیک ، 2 جامعه تعریف میشه 
1- Parent 
2- Children
روش کار به این صورته که باتوجه به سلیقه شخصی یه سایزی برای جامعه Parent در نظر می گیرید ، مثلا 100 عدد . بعد به صورت تصادفی جواب هایی از مساله رو تولید می کنید ( جواب ها لزوما صحیح نمی باشند  - مثلا برای مساله 8 وزیر ، هر ترکیب دلخواهی از قرار گرفتن وزیر ها که احتمال صحیح بودن هم بسیار پایین است ) 
بعد این اعضای جامعه Parent  رو دو تا دو با هم به روش CrossOver ترکیب می کنید .
برای اینکه سریعتر به جواب برسید می تونید از یک تابع هیوریستیک برای بهینه سازی استفاده کنید .
یه تابع هوریستیک درست می کنید که از بین 100 عضو قبلی و 100 عضو جدید ، بهترین ها رو انتخاب کنه . 
بعد دنبال این بگرده که آیا جواب مساله در این دو جامعه هست یا نه . 
اگه هست که کار تمامه
اگه نیست ، جامعه ساخته شده جدید ( 100 عضو بهتر انتخاب شده ) رو به عنوان جامعه Parent در نظر می گیره و بعد دوباره شروع به ساختنه Children می کنه و به همین ترتیب ادامه می ده تا به جواب برسه . 

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


از لینک زیر می تونید اطلاعات کامل تری در یافت کنید .
http://en.wikipedia.org/wiki/Genetic_algorithm





.

----------


## dark.lord

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

----------


## hamed jalili

همون طور که آقای Dark Lord فرمودند ، این ساده ترین حالته 
کار زمانی سخت میشه که شما اطلاعات مربوط به صورت رو زمانی داشتین که طرف مثلا ریش نداشت ، الان که ریش داره ، چی کار کنیم ؟ یا مثلا بیرون دعواش شده یه کبودی رو صورتشه ، حالا بیا و درستش کن . 

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


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

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






.

----------


## mehdad.koulab

سلام دوستان و ممنون از همكاريتون
در ادامه گفته آقاي جليلي كه گفتن يه بار با ريش يه ... چون تنرم افزارهاي تشخيص چهره كنوني از يه حالت پيروي نميكنن و با استفاده از چند پارامتر تشخيص ميدن ميشه اين مشكل رو حل كرد  مثلا اگه يه بار طرف مقابل دوربين باشه و يه بار با زاويه 35 درجه در اين حالت شبكه عصبي ميآيد و وجه تشابه رو مقايسه ميكنه مثلا گونه فرد و چشم و ...
حالا يه سوال ساده دارم ربطي هم به موضوع تاپيك نداره بيشتر به تشخيص چهره ربط داره :خجالت:  دوستان گفتيم كه مقايسه ميكنه اولا با چي؟ دوما حالا يه فرد براي اولين بار جلوي دوربين اومده قضيه چيه؟ يه سوال ساده ديگه اينكه منظور از ورودي به شبكه عصبي چيه؟ مثلا تو هم اين دوربين ميگيم ورودي تصويره ولي تصويرو رو چجوري به عنوان ورودي به شبكه عصبي ميديم؟ اين سوال دومي خيلي وقته ذهنم رو مشغول كرده. با تشكر از دوستان

----------


## pesare_ariyayi

انگار من خیلی تازه کارم!
دوستان لطف می کنن بگن شبکه ی عصبی چیه که ورودیش چی باشه؟! این هم سوال جالبیه که اگه طرف واسه اولین بار بیاد تو کادر و نیشش باز باشه ازهمون اول, دوربین چی می کنه؟! هر چند فریم که بگذره یارو صورتش همونطور مونده و تغییراتی بوجود نیومده که مقایسشون کنه!!!

----------


## mehdad.koulab

> دوستان لطف می کنن بگن شبکه ی عصبی چیه؟!


شبکه عصبی چيست ؟ قبل از اينکه شبکه های عصبی را از ديد بيولوژيکی و مصنوعی مورد بررسی قرار دهيم اشاره به اين نقطه ضروری است که بعضی از محققين معتقدند آنچه که شبکه های عصبی مصنوعی به آن رسيده است مديون مدلی است که از روی شبکه های عصبی بيولوژيکی بر داشته است اما برخی ديگر معتقدند که قدرت حسابگری آن باعث پيشرفت آن گرديده است اگرچه بيشتر بحث ما مربوط به قدرت حسابگری اين مدل می شود ولی ادائه مدل بيولوژيکی آن می تواند باعث درک عميقتر شبکه های عصبی شود
(شكل رو ببينيد)
Dendrite هايی که تعداد آنها زياد است سيگنالها را از ساير سلولهای عصبی دریافت می کنند سيگنال ها نـوعـی تحريک های الکتريکی می باشد که در طول فاصله بين عصب ها (Synoptic Gap) به وسيله واکنشهای شيميايی ايجاد میشود Soma (بدنه يک موجود زنده) يا همان بدنه سلول عصبی سيگنالهای دريافتی را جمع می کند زمانی که يک مقدار مناسبی از سيگنالهای ورودی دريافت شده اند سلول اصطلاحا آتش می کنند به عبارتی سلول به نوبه خود سيگنالی توسط Axon به سلولهای مجاور خود ارسال می کند و يا آتسش نمی کند از اين رو يک حالت باينری برای يک سلول در نظر گرفته شده است اما با اين حال فرکانس آتش يک سلول ميتواند بر اساس سيگنالهای دريافتی در زمانهای مختلف فرق می کند.
براساس مطالب ذکر شده فوق می توان چندين ويژه گی را که سلول های عصبی مصنوعی بايد داشته باشد به صورت زير تعريف کرد.
1)سلولها (پردازشگرها) سيگنال های زيادی را دريافت می کنند.
2)سيگنال ها ممکن است با توجه به فاصله سلول ها از يکديگر (از اين به بعد به جای فاصله بين سلولها از عبارت وزن های موجود بين آنها استفاده خواهيم کرد) دستخوش تغيراتی گردند.
3)واحدهای پردازشگر سيگنالهای دريافتی جمع می کنند.
4)هر واحد پردازشگر می تواند سيگنال هايی را ايجاد و منتشر کند.
5)خروجی يک واحد پردازشگر ممکن است به چندين پردازشگر ديگر منتقل شود.
6)پردازش سيگنالهای در يافتی (جمع کردن آنها) به صورت محلی صورت می گيرد يعنی هر پردازشگر فقط سه کار انجام می دهد دريافت ، جمع و ارسال سيگنال ها
7)حافظه با آن صورت که قبلا متصور آن بوديم (مانند Hard Disk) وجود ندارد بلکه حافظه موجود به ضورت زير توزيع شده است
الف)حافظه بلند مدت همان فاصله بين سلولهای عصبی محسوب می شود 
ب)حافظه کوتاه مدت سيگنال هايی است که واحدهای پردازشگر به هم ارسال می نماید
8)فاصله بين سلولهای عصبی ممکن است بر اساس تجربيات مختلف تغيير پيدا کند
9)سيگناها ممکن است تحريک کننده و يا خنثی کننده باشند

شبکه های عصبی مصنوعی: يک شبکه عصبی مصنوعی بر اساس مدل ذکر شده در بخش قبلی دارای ويژه گی های زير است 
1)پردازش اطلاعات در بخشهايی به نام يونيت (Unit) يا نود (Node) انجام می گيرد.
2)سيگنال ها بين این واحدها و در امتداد لينک های ارتباطی برقرار می شود.
3)به هر يک از اين لينک های ارتباطی يک وزن نسبت داده می شود.
4)هر واحد پردازشگر تابع فعال سازی (Activation Function) را روی سيگنال های دريافتی اش جهت ايجاد خروجی اعمال می کند.
هر شبکه عصبی به وسيله سه مشخصه زير مشخص می شود
1)الگوی ارتباطی بين واحدهای پردازشگر يا نرون ها (به اين الگو معماری شبکه اطلاق می شود)
2)روش تعيين وزنهای منتسب به هر يک از لينک های ارتباطی (به عبارتی نحوه يادگيری و يا الگوريتم آموزش)
3)نوع تابع فعالساز مورد استفاده
هر نرون يک حالت داخلی دارد که اصطلاحا به آن سطح فعاليت (Activity Level) گفته می شود اين حالت داخلی تابعی از ورودی هايی است که نرون دريافت کرده است به طور معمول يک نرون نتيجه فعاليت خودش را به ساير نرون هايی که متصل است (در جهت لينک های ارتباطی) به صورت سيگنال ارسال می کنند توجه به اين نقطه مهم است که يک نرون در واحد زمان تنها می تواند يک سيگنال در واحد زمان ايجاد کند ولی با اين حال سيگنال ارسال شده می تواند به چندين نرون برود.
(تصوير دوم رو ببيند بزرگه)
برای مثال نرون Y را در نظر می گيريم از سه نرون ديگر به نام های X3 , X2 , X3 سيگنال دريافت می کند اگر سطح فعاليت اين نرون ها را به ترتيب x3 , x2 , x1 و همچنين فاصله بين آنها ونرون Y را w3 , w2 , w1 در نظر بگيريم آنگاه ورودی نرون Y بر اساس آنچه گفته شد به صورت زير محاسبه می شود.

Yin = x1w1+x2w2+x3w3 
Y در حالت کلی (اگر Y،n تا سيگنال دريافت کند)Y = ∑ xiwi 
همان طور که گفته شد خروجی هر نورون تابعی از ورودی های آن است بنابراين: 
تابع فعالساز (Yout = y = f(Yin

----------


## hamed jalili

> 1-  شبکه ی عصبی چیه که ورودیش چی باشه؟! 
> 2- اگه طرف واسه اولین بار بیاد تو کادر و نیشش باز باشه ازهمون اول, دوربین چی می کنه؟!!


1- جواب این سوال رو که دوستمون زحمتشو کشیدند . 
2- برنامه های پردازش تصویر که تنها از DataBase برای شناسایی فرد استفاده نمی کنند . 
بگذارید این طور بگم ، انسانی هست که بینیش بالای چشماش در پیشونیش باشه ؟ 
یا انسانی هست که چشماش رو چونه اش باشه ؟ 

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

در مورد اون دوربین های سونی هم اینطوره ، اونا که نیومدند از تمام آدمها دنیا عکس بگیرند و بگذارند در DataBase اون دوربین ، بلکه از یک چنین الگوهایی استفاده می کنند . 


این الگو ها به صورت Function  هایی روی Node های مربوط به شبکه های عصبی قرار می گیرند و کار تشخیص رو با تولید یه عددی و ارسال به سایر نود ها انجام می دهند . ( در این مورد دوستوم توضیحات بیشتر رو دادند . )

مقاله هایی که  براتون آپلود کردم رو اگه بخونید بیشتر در این مورد اطلاعات کسب می کنید .






.

----------


## pesare_ariyayi

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

----------

