اطلاعیه

Collapse
No announcement yet.

Facial expression recognition

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : Facial expression recognition

    با سلام و تشکر مجدد بابت مطالب مفیدتان
    من دیتا بیس FGnet رو از روی لینکی که داده بودین دانلود کردم. در اونجا کدهای مربوط به Landmark ها مشخص شده که بصورت دستی سلکت شده اند. سوالی که من دارم اینه که من می توانم با استفاده از این کدها عمل کلاسیفیکیشن رو برای تشخیص احساسات انجام بدم یا نیازی به تغییرات دارند.

    ممنون

    دیدگاه


      #17
      پاسخ : Facial expression recognition

      سلام ..........................

      نوشته اصلی توسط daneshjoo2008
      با سلام و تشکر مجدد بابت مطالب مفیدتان
      من دیتا بیس FGnet رو از روی لینکی که داده بودین دانلود کردم. در اونجا کدهای مربوط به Landmark ها مشخص شده که بصورت دستی سلکت شده اند. سوالی که من دارم اینه که من می توانم با استفاده از این کدها عمل کلاسیفیکیشن رو برای تشخیص احساسات انجام بدم یا نیازی به تغییرات دارند.

      ممنون
      شرمنده بابت تاخیر ..

      لینک زیر روبخونید .. خیلی میتونه به این بحث سوالتون کمک کنه .. در مورد اصول و چگونگی Classification تصاویره .. من دوباره بر میگردم تا در مورد اون نقاط بیشتر باهم صحبت کنیم .. موفق باشید ..

      http://www.eca.ir/forum2/index.php?topic=31058.0
      دوستان! مدتی کمتر به سایت میام ..

      دیدگاه


        #18
        پاسخ : Facial expression recognition

        با تشکر
        آیا کدهایی که در دیتابیس Fgnet آورده شده اند حاصل landmark ها هستند و میشه اونها را وارد مرحله classification کرد؟
        ممنون

        دیدگاه


          #19
          پاسخ : Facial expression recognition

          سلام .................

          شرمنده بابت تاخیر ..

          یه مقدار شاید دقیقتر لازم باشه در این مورد صحبت کنیم .. من چندتا تصویر براتون میذارم تا خیلی واضح بتونیم باهم فکر کنیم .. یه بحثی که وجود داره اینه که توی متدهای Learning خروجی اغلب Label هست و این به اون معناست که باید به ازای هر Expression یه فضای Learning داشته باشیم .. این شرط اقتضا میکنه که بتونیم از توصیف کننده های خوبی برای Expression های مختلف استفاده کنیم .. توی اون دیتابیس یه سزی Land Mark وجود داره .. اونا به چه معناست؟ اونا دارن تلاش میکنن به نوعی Expression های صورت رو توصیف کنن .. متد چی میگه؟ میگه اگه نقاط رو با Expression ها متناظر کنیم میتونیم به نوعی توی تشخیص ازشون استفاده کنیم .. حالا این توصیف کردن اینجا چطور انجام شده؟ بر حسب تعریف یه Distance .. در واقع اونجایی که از Hausdorf صحبت میشه میخواد این نکته رو یاد آوری کنه که Recognition باید بر حسب تخمین فاصله از نقاط باشه .. حالا سوالی که میتونه اینجا مطرح بشه اینه که آیا این متد یعنی تعریف یه Distance برای توصیف حالات مختلف و مقایسه ی اونها باهم کفایت میکنه؟ یعنی میتونیم از اون به عنوان یه معیار استفاده کنیم؟ جواب سوال اینه که ممکنه بتونیم برای تشخیص یه صورت از این روش یعنی اطلاعات بیومتریک صرف استفاده کنیم (یعنی یه فرم کانتور کاریکاتور برای صورت به دست بیاریم که با مقدار Average متناسب میشه) امــا برای تشخیص Expression دیگه این روش کار آمد نیست .. خود این تیم هم روی Detection صورت کار کردن و سراغ Expression نرفتن .. امــا راه استفاده از این نقاط چیه؟ ایا معنی داره که اینارو Feature خطاب کنیم؟

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





          الان اگه نواحی دهان، چشم + ابروها رو بتونیم جدا کنیم و روی اونها متمرکز بشیم، توی کار جلو افتادیم به چند دلیل .. اول اینکه دیگه لازم نیست روی کل فضای صورت کار کنیم و دوم اینکه روی قسمت هایی متمرکز شدیم که از یه Expression به Expression بعدی تغییر میکنن و ما این رو میدونیم .. پس میتونیم به این روش امیدوار باشیم .. امــا برای Feature از چی میشه استفاده کرد؟ از چند تا متد خیلی معروف که توی ادبیات Expression خیلی طرفدار داره .. PCA یا LDA یا Laplacian روش هایی هستن که میشه بهشون خیلی خوب فکر کرد .. تصویر زیر در مور این یه متد خیلی خوب قضایا رو بازگو میکنه ..



          سطر اول حاصل از اعمال PCA روی Face هاست .. سطر دوم Fischer و سطر سوم هم Laplacian .. حالا اگه شما از این نوع متدها برای قسمت های بریده ی شده بالا استفاده کنید میتونید به عنوان Feature اونهارو Vectorized کنید و ازشون برای Learning استفاده کنید .. موفق باشید ..
          فایل های پیوست شده
          دوستان! مدتی کمتر به سایت میام ..

          دیدگاه


            #20
            پاسخ : Facial expression recognition

            واقعیتش نمی دونم که چقدر موضوع مورد مطالع ام (تشخیص لبخند) با موضوع مورد بحث شده در بالا (تشخیص حالات احساسی) شباهت داره؟
            امیدوارم که تداخلی میان موضوع بنده و موضوع مذکور پیش نیاد. و از حسام الدین خواهش دارم تا پستم رو جدا کنه.
            من می خوام تا پروژه رو با متلب انجام بدم. و با شبکه های عصبی learn کنم. نمی دوم آیا به عنوان ایده این کار رو ابتدا روی video کار کنم و یا مستقیما بر روی image .
            و برای شروع کار چکار باید بکنم. با این فرض که toolboxهای image و nn رو می دونم. ولی در کل دنبال راهکارم تا کد و این جور مسائل.
            ممنون از توجه تون
            Sincerely Yours,
            Mr. Fazel Dehghani

            دیدگاه


              #21
              پاسخ : Facial expression recognition

              سلام ..............

              اینکه روی ویدئو شروع کنید یا Image زیاد فرقی نمیکنه یعنی اصلا فرقس نمیکنه .. چون ویدئو هم در نهایت باید فریم بشه و بعد روش پردازش انجام بشه .. با ویدئو مستقیم نمیتونیم کار کنیم .. حالا اینکه دیتای شما در ابتدا ویدئو باید باشه یا تصویر برمیگرده به دیتابیسی که انتخاب میکنید .. یعنی اولین قدمی که وجود داره اینه که بتونید یه دیتابیس برای کارتون پیدا کنید .. انواع دیتابیس هایی که برای کار Face میشه بهش فکر کرد رو میتونید ایـنـجـا ببینید .. حالا بین همه ی اینا میتونید به دو تا دیتابیس خیلی خوب فکر کنید .. یکی دیتابیس دانشگاه CMU هست به نام JAFFE .. این دیتابیس برای Facial Expression طراحی شده .. یکی دیگه هم دیتابیس AR هست .. این دوتا دیتابیس های خیلی خوبین برای کارای Expression .. حالا اگه کار شما تشخیص یه حالت خاصه باید اون حالت هارو جدا کنید و ویژگی روشون تعریف کنید و از این ویژگی ها یه بردار بسازید و این بردار رو بدید به شبکتون تا آموزش ببینه .. یعنی باید یه مساله Learning توی فضای برنولی رو حل کنید .. با لیبل های 0 و 1 .. موفق باشید ..
              دوستان! مدتی کمتر به سایت میام ..

              دیدگاه


                #22
                پاسخ : Facial expression recognition

                در مورد این database ها یکم توضیح میدین که دقیقا چگونه کار می کنن و اصلا در کجای کار استفاده می شن؟
                Sincerely Yours,
                Mr. Fazel Dehghani

                دیدگاه


                  #23
                  پاسخ : Facial expression recognition

                  نوشته اصلی توسط fazel-d
                  در مورد این database ها یکم توضیح میدین که دقیقا چگونه کار می کنن و اصلا در کجای کار استفاده می شن؟
                  سلام ................

                  دیتابیس ها معمولا بخش مهمی از کارای Detection و Recognition هست .. دیتابیس یه مجموعه دیتا هست که بخش آموزش کار مارو تغذیه میکنه .. اینطوری بگم؛ مثلا توی کارای پردازش تصویر؛ دیتابیس به مجموعه ای از تصویر های یک سبک خاص اطلاق میشه که از یه جنس باشن .. مثلا توی همین کار شما، وقتی میگیم دیتابیس Expression یعنی یه سری تصویر از Expression های مختلف صورت .. مثلا لبخند؛ تعجب؛ عادی؛ افسردگی و حالت های مشابه .. دیتابیس کلا دو نوعه .. یکی دیتابیس های Multi-Class و یکی هم دیتابیس های Single-Class .. اینا یعنی چی؟ دیتابیس Multi-Class دیتابیسیه که از عناصر و کلاس های مختلف به تعداد خاص توی خودش داره .. مثلا دیتابیس Multi-Class ای که واسه Expression هست گونه های مختلف Expression رو شامل میشه .. یا مثلا دیتابیس Multi-Class آبجکت؛ دیتابیسیه که از تعداد مشخصی کلاس؛ نمونه های مختلفی داره .. مثلا 10 تا کلاس و از هر کدوم 450 تا .. دیتابیس Single-Class هم دیتابیسیه که یه کلاس بیشتر نداره .. مثلا دیتابیس ماشین یا دیتابیس Face .. انتظاری که از این دیتابیس ها میره اینه که بتونن یه کلاس رو توصیف کنن و نمونه های مختلف یه کلاس رو حاوی باشن .. وقتی شما میخواید الگوریتمتون رو Learn کنید نیاز دارید کاری که توی مغز خود ماها انجام میشه رو به صورت خیلی ابتدایی شبیه سازی کنید .. خود ماها چطور آموزش دیدیم؟ نمونه های مختلف ماشین رو دیدیم و بهمون گفتن که اینا ماشینه .. ما هم اونارو یاد گرفتیم .. حالا هرچیزی که با اون ویژگی ها ببینیم میگیم اینم ماشینه یا از جنس اوناست .. مثلا وقتی یه کالسکه یا یه درشکه برای بار اول میبینیم؛ از روی ویژگی هایی که برای وسیله ی نقلیه توی ذهن ما هست و ما بر مبنای اونا ذهنمون رو پرورش دادیم؛ پیش بینی میکنیم که این میتونه با فلان احتمال و یا با فلان درصد، وسیله ی نقلیه باشه ..

                  توی پیاده سازی ریاضی الگوریتم های Learning هم ما دقیقا همین کار رو میکنیم .. نیاز به یک سری تصویر از همون فضایی داریم که میخوایم الگوریتممون روی اونها آموزش ببینه .. پــس میریم سراغ انتخاب دیتابیس .. یه دیتابیس دقیقا اون چیزیه که ما برای آموزش بهش نیاز داریم .. مجموعه ای همریخت و البته با تنوع نمونه های مختلفی که داره .. از اینا ویژگی به دست میاریم .. ویژگی به دست اومده از اینا یه خصوصیت بسیار مهم داره و اون اینه که بین تمامی این نمونه ها مشترک؛ و در خارج از این نمونه ها تقریبا متفاوته .. مثلا اگه شما یه ویژگی روی حالت های لبخند تعریف کنید و سعی کنید این ویژگی رو محدود کنید به صرفا حالت لبخند؛ اونوقت این ویژگی باز شناخته خواهد شد دز بین حالت های مختلفی که توی تست دارید بهشون نگاه میکنید .. یه مرحله ی خیلی مهم دیگه ای هم که توی دیتابیس وجود داره تفکیک Detection و Recognition هست .. توی Detection شما فضاتون فضای توزیعی برنولی یا به عبارتی 0 و 1 هست .. یعنی یا "آره" و یا "نه" .. برای این تیپ کارا شما توی دیتابیستون نیاز به یه مجموعه غیر آبجکت هم دارید .. مثلا روی کار Face؛ شما علاوه بر اینکه نیاز به یه سری تصویر Face دارید؛ برای تست و متمایز شدن تشخیص Face از غیر Face نیاز به یه مجموعه Non-Face هم دارید .. اینا برای این هستن که آموزش ما رو دقیق تر کنن .. این بحث یه کم دنباله داره و شاید از اصل سوال شما دور بشه .. هر جای مطالب رو بد گفتم بگید تا دوباره با هم یه دوره کنیمشون .. موفق باشید ..
                  دوستان! مدتی کمتر به سایت میام ..

                  دیدگاه


                    #24
                    پاسخ : Facial expression recognition

                    خیلی خیلی ممنون حسام الدین عزیز بابت پاسخ جامع و کاملتون.

                    اولا از اینکه دیر دنبال سوالم رو گرفتم ، عذر می خوام و اون هم به خاطر امتحانات پایان ترم بود.
                    دوما
                    سوالی که برام پیش اومده اینه که :موضوعی رو که در بالا عنوان کردید ، فکر می کنم زمانی هست که feature هایی مثل لب و گونه ها و چشم ها رو استخراج کرده باشیم و اون ویژگی ها رو به شبکه بدیم. درسته؟
                    اگر که درسته، حالا برای استخراج این ویژگی ها ، باید روی تمامی database کار کنم و یا روی یک عکس متفاوت؟

                    شاید سوالمو این طوری بپرسم بهتر باشه که: در گام اول یعنی پردازش تصویر و اون هم پیدا کردن صورت در تصویر چه راهکارهایی وجود داره؟ و چه ارتباطی با database داره؟
                    در مورد database ، از جمله database هایی که ویژگی لبخد رو دارن ، رو نگاه کردم مثل JAFFE و Indian Face Database .
                    Sincerely Yours,
                    Mr. Fazel Dehghani

                    دیدگاه


                      #25
                      پاسخ : Facial expression recognition

                      سلام ..................

                      سوالی که برام پیش اومده اینه که :موضوعی رو که در بالا عنوان کردید ، فکر می کنم زمانی هست که feature هایی مثل لب و گونه ها و چشم ها رو استخراج کرده باشیم و اون ویژگی ها رو به شبکه بدیم. درسته؟ اگر که درسته، حالا برای استخراج این ویژگی ها ، باید روی تمامی database کار کنم و یا روی یک عکس متفاوت؟ شاید سوالمو این طوری بپرسم بهتر باشه که: در گام اول یعنی پردازش تصویر و اون هم پیدا کردن صورت در تصویر چه راهکارهایی وجود داره؟ و چه ارتباطی با database داره؟
                      از بابت تاخیر معذرت میخوام .. مطلبی رو که عنوان کردید؛ یک مقدار جای بحث داره .. در واقع روال کار اینطور هست که ما از یک سری تصاویری که در قالب دیتابیس به ما داده شده؛ قرار هست که ویژگی در بیاریم .. حال سوالی که اینجا خیلی از اهمیت برخورداره این هست که ما این Feature هارو به چه ترتیب تعریف میکنیم .. اگر قرار باشه ما بدونیم که چه Feature ای برای مثلا گونه یا لب یا ... خوبه؛ که مشکلمون خیلی راحت حل میشه .. امــا بدی کار اینجاست که ما اغلبنمیدونیم چه نوع Feature ای برای کارمون مناسبه .. بذارید یک مقدار بهتر بگم .. کلا اینطوریه که ما اول مساله ای که میخوایم حل کنیم رو برای خودمون تعریف میکنیم .. اینجا مساله ی ما چیه؟ اینه که بتونیم Expression مختلف رو از هم تشخیص بدیم .. یعنی بگیم که کدوم حالت، بر میگرده به لبخند؛ کدوم حالت بر میگرده به غمگین بودن و همین طور تا آخر ..

                      پس اولین نکته ای که وجود داره اینه که ما باید دنبال حل یک نوع مساله ی Recognition باشیم نه Detection .. حالا تفاوت اینا باهم چقدر هست یا چه فرقس بین اونها هست که باعث میشه ما این دو تا مساله رو ببریم توی دو تا دسته بندی خاص و البته جدا از هم .. در واقع تفاوت Detection با Recognition در این هست که ما توی Detection علم به این موضوع داریم که آبجکت یا اون شئ ای که ما تمرکز پیدا کردنمون رو گذاشتیم روی اون؛ توی تصویر وجود داره و حالا فقط وظیفه و رقابت کار اینه که بگردیم توی تصویر ببینیم اون آّبجکت کجای تصویر هست .. یعنی اگه بخوایم یه کم دقیقتر صحبت کنیم؛ باید بگیم همه ی تلاش Detection اینه که بتونه یه مساله ی Localization رو برای ما حل کنه؛ یعنی یه bounding Box ای پیدا کنه که به ازای اون Box؛ حضور آبجکت از بیشترین میزان احتمالی برخوردار باشه ..

                      امــا توی Recognition بحث سر این موضوع هست که اساسا ببینیم چه آبجکتی توی تصویر ما هست .. یعنی حل مساله ی Recognition از Detection یه کم دشوار تره و تقریبا تلاش هایی که توی این زمینه میشه؛ سر بهتر کردن دهم های درصد دقت در پیش بینی موارد تشخیص هست .. یعنی توی Recognition لیبل هایی که ما باید بهشون توجه کنیم؛ گاها زیاد هستن و هنر اون Learner و تلفیقی که با Feature های ما انجام میده، باعث میشه که ما بتونیم بگیم Recognition Rate مون بهتر شده یا که تغییری نکرده و به عبارتی بتونیم ارزیابی منطقی ای از نتایج اون داشته باشیم .. حالا با توجه به این نکته ما باید بدونیم که Feature هایی که داریم انتخاب میکنیم؛ برای کارمون مناسب هستن یا نه ..

                      باز اینجا بحث دو تیکه میشه .. یه سبک فکری وجود داره که عنوان میکنه مسئولیت بهتر شدن performance بر عهده ی Frame-Work ای هست که توی الگوریتم ازش استفاده میشه و یه سبک فکری دیگه هم اینه که نه؛ Learner میتونه زیاد هم با دیتای ما بازی نکنه؛ ولی اون چیزی که باید روی دیتای ما مانور بده؛ انعطاف به خرج بده و تلاش کنه برای بازی کردن روی دیتای ما، Feature ای هست که انتخاب میشه .. حالا بسته به اینکه از کدوم سبک فکری بخوایم طبعیت کنیم؛ نوع نگاه به مساله جهت پیدا میکنه و شاید تغییرات در نتیجه خیلی وابسته به این نوع نگاه کردن ها باشه .. بحث آخری هم که خیلی مهمه اینه که ما فقط توان این رو داریم که Feature هامون رو انتخاب کنیم و این وظیفه ی اونهاست که بتونن خوب دیتاهای مارو توصیف کنن یا نه .. در واقع فلسفه ی اینکه ما از یک سنت ثابت پیروی میکنیم و برای حل مساله به سراغ بیرون کشیدن یه سری از خانواده های Feature ها مون میرین ؛ اینه که بتونیم برای مرحله ی Training یه توصیف خوب از دیتاهامون داشته باشیم ..

                      حالا این توصیف خوب هم که ازش صحبت میکنیم؛ چیزی نیست که به صورت شهودی محض؛ خیلی خوب بشه روش صحبت کرد .. باید روی دیتابیس اعمال بشه و با یه Learner تست بشه و نتیجه اش رو ببینیم؛ اونقت هست که میتونیم روی خوب یا بد بودن feature مون نظر بدیم .. البته توی همین مرحله هم یه عده معتقد هستن که شاید feature خوب بوده و Learner نتونسته خوب اوضاع رو جمع و جور کنه .. برای همینه که معمولا از یک سری Learner هایی استفاده میکنیم که از یه سری قاعده های Learning پیروی میکنن و این پیروی کردن باعث میشه که بتونیم روی عملکردشون فارق از Feature ها نظر بدیم .. نکته ی آخر هم اینه که فلسفه ی حضور دیتابیس اینه که ما از یک سری داده ی زیاد که متحدالمفهوم هستن؛ بردارهایی بسازیم که به عنوان توصیف کننده بتونن به فاز Learning ما کمک کنن .. یعنی وقتی میخوایم یه Feature رو باری کارمون انتخاب کنیم؛ باید روی همه ی نمونه های دیتابیس؛ یا اونهایی که توی Learning ازشون انتظار خاص داریم؛ اعمال کنیم و نتیجه رو تحویل مرحله ی Training بدیم تا Learner به یادگیری و پیش بیتی بپردازه .. موفق باشید ..
                      دوستان! مدتی کمتر به سایت میام ..

                      دیدگاه


                        #26
                        پاسخ : Facial expression recognition

                        ممنون از حسن توجه تان
                        شاید هم این از اقبال من باشه که شما (حسام الدین) به ما توجه دارید. یه دنیا ممنون . چرا که کمتر کسی پیدا میشه که بتونه این جور کارها رو که به رنج و زحمت بدست آمده در اختیار دیگران قرار بده.
                        انشا الله در پایان نیز پروژه رو در سایت شما قرار می دهم. :wow:

                        من مقالات متعددی از smile detection خوندم. که به 2 تا مقاله مهم و اساسی رسیدم. که یکی از اونها از روش symmetry measure استفاده کرده. که نیاز به این نوع انتخاب ویژگی و learn و ... نداره. یعنی با محاسبه تقارون میان objectهای صورت به یکسری نقاط متقارن می رسه که با centroid گرفتن به نقاط تقریبا مرکزی چشمها ، بینی و دهان می رسه. فکر کنم بد نباشه این مقاله رو هم بخونید. (سوال اینکه از کجا می تونم فایل رو upload کنم )
                        متاسفانه چیزی که باعث سردرگمی من شده اینه که توی این مقالات همه چیز گنگه و مشخص نیست که فرمولهای بکار رفته چگونه و با چه استنباطی به نتیجه رسیده اند.

                        اما در مورد مقاله دومی که تقریبا یه مقاله فراگیر از کلیه تحقیقات به انجام رسیده از smile detection هست رو در بر می گیره. یعنی مراحل مختلفی رو که روی این پروژه انجام شده رو بیان کرده.
                        لینک: http://mplab.ucsd.edu/~jake/pami_paper.pdf
                        خلاصه عملکرد اون به این صورت که می گه باید در ابتدا از یه eye-face finder استفاده کنیم تا بتونیم موقعیت از چهره رو recognize کنیم. بعد ...
                        روشهای مختلفی رو برای تشخیص ویژگی ها به کار برده. مثلا در image registeration از روش gabor ، Box Filter استفاده کرده. که متاسفانه من هسچ گونه علمی از این روش ها ندارم
                        یا در مورد الگوریتم learning از روش SVM یا از gentleboost استفاده کرده.
                        حالا می خواستم تا اول روی همون symmetry measure کار کنم و بعد برم سراغ دومی.
                        توی اینترنت هم سرچ زدم اما مورد درست درمونی دربارش نداد. که واقعا چی کار می کنه. می خواستم بدونم که شما اطلاعی در این مورد دارین؟ و اینکه به نظر شما کدوم مورد رو ادامه بدم؟
                        Sincerely Yours,
                        Mr. Fazel Dehghani

                        دیدگاه


                          #27
                          پاسخ : Facial expression recognition

                          سلام .................

                          بله .. درسته دو تا روش کلا وجود داره که یکیش همون تریک های Geometry هست و یکیش هم روی کارهای Learning .. کلا روش اول متدهای مهندسی زیاد داره .. یعنی افراد سعی میکنن برای حالات صورت و رفتارهای مختلف چهره؛ روابط و ویژگی های هندسی پیدا کنن .. واسه ی همینه که بیشتر میرن روی خصوصیات Biometric صورت .. مثلا یکیش همون نوع فکر تقارن و ایناست .. ولی فقط اونا نیست .. مدل سازی های دو بعدی و سه بعدی هم باید بهش اضافه بشه؛ یه سری روش های نقطه گذاری های دستی و یه بخشی هم کارای فیزیکی همه ی اون چیزهایی هست که توی این سبک فکر کردن به مساله وجود داره .. جدیدا یه سری برای Invariant کردن تغییرات Pose برای یه حالت خاص، از مدل سازی های مثلثی استفاده کردن و کارشونم بد نبوده .. ولی سالش فکر کنم بر میگرده به 2007 .. از اون موقع تا حالا دیگه کمتر میرن سمت Geometry .. چراکه معتقدن دست این سبک فکر کردن برای انجام کارای متنوع بسته هست .. مثلا یه مدل سازی سه بعدی توی فضای R و فی و تتا؛ وقتی میخواد بچرخه؛ همه ی پارامترهاش تغییر میکنن و نمیشه خیلی به تغییراتش فکر کرد .. اگر هم بشه فکر کرد؛ نیاز به پرداخت هزینه ی سنگین محاسباتی داره که زیاد به صرفه نیست .. بیشتر افرادی به این خاطر میرن سمت این سبک فکر که بخوان قدرت حل مساله با ین روش ها رو به اثبات برسونن .. چرا که مساله ی Real-Time بودن براشون اصلا مهم نیست و فقط و فقط قصد دارن مساله رو با ابزارهایی که یه سری ادعا میکنن خشک و غیر قابل انعطاف هستن؛ بهتر کنن و تا حد خوبی به حلش فکر کنن ..

                          امــا این طرف قضیه نه .. یعنی اونهایی که از زاویه ی Learning به مساله نگاه میکنن؛ ابزارشون یه کم متنوع تر و در نتیجه دستشون بازتره .. یعنی میدونن که باید یه بردار تعریف کنن برای توصیف دیتاها و یه متد Learning که بتونن با این بردار به حل مساله فکر کنن .. اینا میشه گفت موفق تر هستن و روش هاشون هم توانایی بازی کردن بیشتری داره .. من خودم اگه بخوام پیشنهادی داشته باشم؛ به این سمت خیلی وزن میدم تا اون سبک فکری بالا .. الان اکثر افرادی که دارن توی این زمینه ها کار میکنن؛ روی این قسمت متمرکز هستن و نتایجشون رو باهم به رقابت میذارن .. نکته ی جالب دیگه ای هم که وجود داره اینه که این تیپ آدما؛ میتونن به Real-Time بودن الگوریتم ها هم فکر کنن و این نکته ایه که یه موقع هایی میتونه حسن باشه .. کلا توی این زمینه کار زیاد انجام شده و میشه از اونها خیلی ایده گرفت .. معمول ترین روشهایی هم که ازش صحبت میکنن همین Eigen Face هست که خیلی ها باهاش کار کردن و ازش به عنوان نقطه ی شروع کمک گرفتن .. شمام میتونید از اونا شروع کنید .. روشش برمیگرده به اینکه شما از PCA استفاده میکنید تا یه سری Eigen Face بسازید .. توی PCA ما Eigen Vector داشتیم و ازشون برای کارامون استفاده میکردیم؛ اینجا همون Eigen Vector ها تقریبا تبدیال میشن به ماتریس های پایه ی چهذه های ما ..

                          در مورد اون دو تا Feature ای که گفتید؛ نکته اینه که اونا مخصوص Registration نیستن فقط .. دو نوع Feature ای هستن که معمولا جاهای زیادی ازشون استفاده میشه .. اون Gabor Filter ها یه نوع فیلترهایی هستن که بیشتر برای کارای texture و اینا ازشون استفاده میشه .. اصل تعریفی که وجود داره اینه که اینا یه سری فیلترهایی هستن که یه تابع سینوسی رد یه کرنل Gaussian ضرب میشه و چیزی که میسازه یه فیلتره که همون حالت Gaussian رو داره اما میرایی سینوسی ها هم بهش اضافه میشه .. یعنی در نظر بگیرید یه ماگزیمم مطلق داره و بعد به صورت میرا یک سری ماکزیمم نسبی تا اینکه به میرایی برسه .. این فیلترها رو بیشتر میتونید توی کارای Texture و اینا ببینید .. حالت عملکرد خاصی که دارن باعث میشه مثل یه فیلتر Band pass بهشون نگاه کنیم و در عمل بتونیم روی texture ازشون کمک بگیریم .. فایل های ضمیمه شده ی زیر رو ببینید .. یه PDF هست که این فیلتر رو توضیح داده .. یه کد هم هست که میتونید Run اش کنید و نسبت به عملکرد این فیلتر دید پیدا کنید .. امــا اون یکی فیلتری که گفتید؛ معروفه به HAAR .. اینا معمولا توی کارای Face زیاد استفاده میشن .. اصلا روزی که اینا ظهور کردن؛ واسطه اش یه کار Face بود .. منطقشون خیلی سادست .. تصویر زیر رو ببینید .. نمونه های مختلف این Feature رو نشون میده ..


                          منطقشون این طوریه .. ما یه مربع داریم که به نواحی سیاه و سفید تقیم شده .. نواحی سیاه پیکسل هایی هستن که افتادن داخل اون مستطیل و نواحی سفید هم پیکسل هایی هستن که افتادن داخل اون یکی مستطیل .. شاید بد گفتم .. بذارید اینطوری میگم .. فرض کنید ما میخوایم با نمونه ی اول (دست چپی) کار کنیم .. اونو میذاریم روی تصویرمون .. (نمونه ی Face ای که داریم) .. یه پیکسل هستن که افتادن توی مستطیل سفید؛ یه سری هم که افتادن توی مستطیل سیاه .. حالا کاری که باید انجام بشه چیه؟ اینه که پیکسل هایی که توی مستطیل سیاه افتادن؛ مقادیرشون باهم جمع میشن و پیکسل هایی هم که افتادن توی مستطیل سفید افتادن؛ مقادیرشون باهم جمع میشن .. نتیجه چی میشه؟ از هردو جمع؛ یه عدد به دست میاد .. مرحله ی آخر اینه که این اعداد رو از هم کم میکنیم .. این عدد میشه پاسخ فیلتر به موقعیتی که در اون قرار گرفته .. یعنی اون قسمتی که الان فیلتر روش قرار داره .. حالا مرحله ی بعد اینه که این مربع حرکت میکنه و میره میشینه روی سری خونه های مجاور و این عملیات عینا برای اونا هم تکرار میشه و تا اسکن شدن کل تثویر ادامه پیدا میکنه .. حالا اینجا چندتا نکته وجود داه که اولا سایز اینا باید چقد باشه .. جواب اینه که برای همه ی سایزها باید این کارو انجام داد .. یعنی از 2*2 تا n*n که میشه همون سایز نهایی تصاویر دیتابیس .. برای نوع های دیگه هم منطق به همین ترتیبه با این تفاوت که خونه های سیاه باهم و سفید ها هم باهم جمع میشن و در نهایت مقادیر نهایی از هم کم میشن .. این اون کلیتی که میشه از HAAR ها بیان کرد .. یه موقع هایی به اینا Haar Wavelet هم میگن که اونم بر میگرده به این نکته که رفتارشون مثل Wavelet ها میمونه .. یعنی یک سری تابع Predefined که به عنوان فیلتر روی تصویر اعمال میشن ..

                          در مورد SVM و GentleBoost .. اینا دو تا Learner معروف هستن که توی کارای Learning استفاده میشن .. SVM یه منطقی داره که میگه اگر من یه سری داده داشته باشم و بخوام اینا رو با یه خط (توی فضای دو بعدی) یا یه Plane (توی فضای چند بعدی) از هم جدا کنم؛ باید بتونم این خط یا حالا Plane رو طوری انتخاب کنم که از دیتاهام بیشترین فاصله رو داشته باشه .. یعنی یه منطق Maximum Margin داره برای خودش .. بعد توی آخر ماجرا تعیین میشه که یه ترمی وجود داره به نام W که اگه ||W|| به توان دو مینیمم بشه؛ یک بر روی همین ترم ماگزیمم میشه و میتونیم به Decision Boundary مون یا همون جدا کننده ای که افتاده بین دیتاهامون اعتماد کنیم و بگیم که این تونست داده های مارو از هم جدا کنه .. این مساله با شرط های کنترلی ای که میذارن بالانس میشه و با نگاه کردن به خود لیبل های دیتاهامون؛ و ارضا کردن اون شرایط میتونیم به مینیمم مقدار ||W|| به توان دو برسیم .. اون GentleBoost هم یه منطق دیگه واه س خودش داره .. این بار ما با تیپ مسائل Boosting و Baggning سروکار داریم .. یعنی تصمیم گیری درست توسط وزن دهی هایی هست که ما در هر Iteration (تناوب-یا تکرار) انجام میدیم و از سیگمای این وزن ها میتونیم به یه تصمیم گیری خوب برسیم .. یعنی کار با یه سری وزن ابتدایی شروع میشه و این وزن ها پدیت میشن تا به حدی برسن که میزان تشخیص و ارور به مینینمم مقدار خودش برسه .. موفق باشید ..
                          فایل های پیوست شده
                          دوستان! مدتی کمتر به سایت میام ..

                          دیدگاه


                            #28
                            پاسخ : Facial expression recognition

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

                            با توجه به اینکه پروژه دارای دو فاز کلی هست.فاز اول اماده سازی سیستم شامل:
                            face detection
                            lip detection
                            feature extraction
                            learning
                            فاز دوم هم همانند فاز اول. اما آیا می شه در فاز اول ، با توجه به اینکه عکس های dataset به صورت چهره هستند، مرحله face detection انجام نداد؟
                            منتظر نظرتون هستم. به عنوان مثال برای مرحله face detection از روش فلانی استفاده بشه!!!! واسه lip از این روش و الی آخر
                            ممنون
                            Sincerely Yours,
                            Mr. Fazel Dehghani

                            دیدگاه


                              #29
                              پاسخ : Facial expression recognition

                              راستش یادم رفت که بگم کسی می تونه این مقاله ها رو دانلود کنه. اخه از سایت springer و ieee هست و من هم account ندارم
                              ممنونم
                              http://www.computer.org/portal/web/c...AP.2001.956978
                              یا

                              http://portal.acm.org/citation.cfm?i...;coll=&dl=
                              Sincerely Yours,
                              Mr. Fazel Dehghani

                              دیدگاه


                                #30
                                پاسخ : Facial expression recognition

                                سلام ................

                                از بابت تاخیر معذرت میخوام .. یه نکته ای هست که تقریبا باید خیلی بهش توجه کنید .. وقتی که میگیم کار، روی Expression Recognition هست؛ یعنی دو تا فرض رو باهاش کنار اومدیم .. اول اینکه: فضای Train مون تصاویر Face هست و دوم اینکه فضای Test هم قراره روی نمونه های Face اعمال بشه .. یعنی اینکه یه سری صورت با حالات مختلف بهمون میدن و به الگوریتم میگن روی اونها قضاوت کن که چه نوع حالتی هستن .. مثلا لبخند؛ فریاد یا حالا هر چیز دیگه که مد نظر باشه .. اینه که فرض اولی که شما گفتید؛ از بین میره یعنی دیگه نیاز به کار Face Detection نیست .. الان خود Face Detection یه مجموعه بحثهای کاملا جدا داره که خیلی با دنیای Expression فرق میکنه .. پــس هیچ لزومی به این کار نیست که بخوایم به فکر Face Detection باشیم .. میتونید تاپیک زیر رو ببینید .. در مورد Face Detection یه مقدار صحبت کردیم ..

                                http://www.eca.ir/forum2/index.php?topic=21845.0

                                اون Paper ای که چند تا پست قبل ضمیمه ی شده بود رو فکر کنم اگه نگاه کنید خیلی بتونه کمکتون کنه .. من الان دقیقا یادم نیست ریز به ریزشو وگرنه براتون بازش میکردم .. اگه نیاز شد بگید حتما بخونمش تا روش یه کم با همدیگه بحث کنیم .. اونجا اگه یادم باشه میومد از تصاویر صورت یه سری Patch میگرفت و بعد روی اونا Feature تعریف میکرد .. این Patch ها رو هم با هدف میگرفتن یادمه اونموقع ها .. یعنی میومدن نواحی ای که یه مقدار Intuitive تره برای شناسایی حالت صورت مثل چشم ها و دهان رو انتخاب میکردن و روی اونا حالا شروع میکردن Feature تعریف کردن و کار کردن .. ولی اینکه یه Lip Detector بسازیم یه مقدار سخته .. چون تعریف Lip همینطوری خوب از آب در نمیاد .. باید متوسل شد به روش های Contour Based که فکر نکنم به درد سرش بیارزه ..

                                در مورد مقالات هم میتونید برای دسترسی بهشون؛ توی اینجا درخواست بدید؛ بچه ها براتون پلود میکنن .. موفق باشید ..
                                دوستان! مدتی کمتر به سایت میام ..

                                دیدگاه

                                لطفا صبر کنید...
                                X