اطلاعیه

Collapse
No announcement yet.

شناسایی چهره در یک تصویر

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

    #31
    پاسخ : شناسایی چهره در یک تصویر

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

    مواردی که به عنوان مراحل کارتون مطرح کردید دقیقا درسته .. اما برای هر کدوم از سوالاتون ....

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

    1- Eigenfaces اولین مرحله کار منه حالا چکار می کنه نمیودونم
    ببینید برای روش EigenFace چند تا لینک Tutorial خیلی خوب وجود داره که اونها رو پیشنهاد میکنم حتما مطالعه کنید .. یکیش لینک دانشگاه Drexel هست که واقعا Tutorial کامل به همراه مثال ها و Sample های Result فوق العاده و متنوعی داره .. در حقیقت این روش تصویرتون رو به چندین تصویر متعامد تقسیم بندی میکنه به طوریکه با وزن دادن به تصاویر شکسته شده (تقسیم شده از نظر ویژگی ..) و جمع اونها میتونید به تصویر اولیه برسید .. مثل Bit Slicing Image ها که تصاویر رو بر حسب Feature میشکنه و هر Slice بخشی از ویژگی های تصویر اصلی رو رونمایی میکنه .. میتونید از لینک زیر به مطالب Eigenface دسترسی پیدا کنید ..

    http://www.pages.drexel.edu/~sis26/E...20Tutorial.htm

    مقاله ی زیر اطلاعات خوبی از این الگوریتم رو داره .. درسته زیاده اما واقعا مفیده ..

    http://www.cse.iitb.ac.in/~adityak/seminar.pdf

    لینک زیر هم یه Script File برای نرم افزار MATLAB هست .. کدش رو حتما نگاه کنید ..

    http://www.cs.ait.ac.th/~mdailey/matlab/

    2-FLD دومین مرحله است که ابعاد تصویر را کاهش می دهد
    برای این روش هم باید به صورت کاملا کاربردی به بررسی الگورتم بپردازید .. یعنی ببینید توی Face Recognition چه کاربردی میتونه داشته باشه .. معمولا از این روش برای Feature Extraction استفاده میکنن .. برای اطلاعات دقیق تر میتونید از فایل های زیر استفاده کنید ..

    http://www.ics.uci.edu/~welling/clas...Fisher-LDA.pdf

    http://www.stat.lsa.umich.edu/~elevina/naivebayes.pdf

    http://ieeexplore.ieee.org/stamp/sta...umber=04317529

    http://www.ntut.edu.tw/~ylchang/pdf/...010%20SPIE.pdf

    http://ieeexplore.ieee.org/stamp/sta...umber=00982904

    3- با شبکه عصبی بایستی کار کنم (فکر کنم کلاس بندی شاید هم تشخیص)
    کار با شبکه ی عصبی به Classification شما کمک میکنه و میتونید برای دسته بندی اطلاعات از اون استفاده کنید .. دسته بندی چه نوع اطلاعاتی؟ مثلا میتونید برای Feature هایی که تعریف میکنید ،آ‌ یه دسته بندی خاص قائل بشید .. بستگی داره محدودیت یا Task پروژتون چی باشه .. من زیاد با شبکه عصبی کار نکردم ولی دوستان هستن که در این محدوده هم کمکتون کنن .. میتونید برای اطلاعات کامل تر در این زمینه به لینک زیر مراجعه کنید ..

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

    امیدوارم روند کار براتون مشخص شده باشه .. (از رفرنس های من هم ناراحت نشده باشید ..) موفق باشید ..

    دوستان! مدتی کمتر به سایت میام ..

    دیدگاه


      #32
      پاسخ : شناسایی چهره در یک تصویر

      سلام
      آقا اختیار دارید ما کی باشیم ناراحت شویم
      تمام این روش هایی که گفتیم برای تمام تصاویر دو بعدی و سه بعدی قابل اجراست هر کدوم فرق می کنه
      آیا می شود Eigenface را انجام نداد و یکراست سراغ PCA رفت؟

      دیدگاه


        #33
        پاسخ : شناسایی چهره در یک تصویر

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

        EigenFace یک متد برای Face Recognition هست و PCA تنها فاکتوریه که میتونه به کاهش ابعاد محاسباتی شما کمک کنه .. در حقیقت وقتی ما بر روی تصویر PCA میزنیم، Component Element های Principle اون رو استخراج میکنیم و بقیه رو یه جورایی از بین میبریم .. درست شبیه کاری که در برخی مراحل Feature Extraction روی Feature Vector هامون انجام میدیم تا از نظر Dimentional بتونیم یک کاهش مناسب داشته باشیم.. نمیدونم چقدر با متد EigenFace آشنا هستید، اما اگه فرصت کردم یه توضیح اجمالی از اون رو براتون میذارم توی همین تاپیک .. موفق باشید ..
        دوستان! مدتی کمتر به سایت میام ..

        دیدگاه


          #34
          پاسخ : شناسایی چهره در یک تصویر

          سلام
          خیلی ممنون از بحثتون ، کلی استفاده کردم.

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

          دیدگاه


            #35
            پاسخ : شناسایی چهره در یک تصویر

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

            ببینید در مورد زبانهای برنامه نویسی در پست دوم یا سوم (اگه اشتباه نکنم..) بحث شده بود .. من خودم با متلب کار میکنم واز اون توی پردازش کمک میگیرم .. خیلی خوب ساپورت میکنه دستورات رو .. موردی هم نداره .. موفق باشید ..
            دوستان! مدتی کمتر به سایت میام ..

            دیدگاه


              #36
              پاسخ : شناسایی چهره در یک تصویر

              سلام.........
              آقای حسام الدین من قبلا این توضیحاتتون رو مخصوصا در مورد adaboost خوندم توضیحاتتون عالی بود اما برای یک دید کلی ولی من قصد دارم جدی روی این مبحث کار کنم .اگه ممکن است راهنماییم کنید.ممنون
              راستی یک تاپیک جدید ساختم چون می خواستم تخصصی رو این موضوع کار کنیم.
              یه سوال دیگه اگه خواستم در رابطه با haar like featureو integral image مطلب بنویسم تو همین تاپیک بنویسم یا یک تاپیک جدید؟

              دیدگاه


                #37
                پاسخ : شناسایی چهره در یک تصویر

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

                خواهش میکنم .. وظیفم بوده .. ببینید بهتره بحث توی همین تاپیک دنبال بشه .. در مورد Rectangle Feature ها و همچنین ادامه ی بحث که به Integral Image میرسه؛ بحث زیادی وجود نداره .. من توی یه میل برای یکی از دوستام مطلب رو توضیح داده بودم .. راستش این مدت اخیر زمانم خیلی کم شده و اینه که دیگه خوب نمیتونم انجام وظیفه کنم و از همین جهت هم شرمنده ی این سایت و سایر دوستان شدم .. اون میل رو براتون میفرستم به این امید که بتونه کمکتون کنه .. اگه باز هم مساله برطرف نشد؛ بفرماید تا شمارم رو براتون PM کنم تا باهم تلفنی صحبت کنیم .. بازم شرمندم.. راستی اون تاپیکی که ایجاد کرده بودید با استدلال اولم جسارتا پاک شد .. موفق باشید ..
                دوستان! مدتی کمتر به سایت میام ..

                دیدگاه


                  #38
                  پاسخ : شناسایی چهره در یک تصویر

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

                  من در خدمتم ..
                  دوستان! مدتی کمتر به سایت میام ..

                  دیدگاه


                    #39
                    پاسخ : شناسایی چهره در یک تصویر

                    سلام.
                    خب من تو این چند روز با این که امتحانات نزدیک است ولی کمی در مورد adaboost و مزایاش تحقیق کردم
                    و فکر کنم adaboost بر پایه ی Support vector machine بهترین حالت باشه .
                    حالا می خواستم در مورد adaboost بیشتر بدونم.
                    در مرحله ی اول adaboost که training set رو وارد میکنیم این training set باید pixel vector باشه یا feature vector ها؟

                    دیدگاه


                      #40
                      پاسخ : شناسایی چهره در یک تصویر

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

                      در مورد SVM که جای بحث زیاده و فکر نکنم فرصت بشه بتونیم باهم روش صحبت کنیم .. امــا اونچیزی که شما گفتید: میتونم بپرسم منظورتون چیه؟ بر پایه ی SVM بودن یعنی چی دقیقا؟ میتونید واضحتر توضیح بدید؟

                      در مرحله ی اول adaboost که training set رو وارد میکنیم این training set باید pixel vector باشه یا feature vector ها؟
                      توی Training کاری که میکنیم اینه که Bounding Box های Face رو بر حسب Feature هایی که ازشون اسخراج کردیم؛ تعریف میکنیم .. اصلا کاری که ما توی Training میکنیم برای چیه؟ برای اینه که بتونیم یه Rule رو برای Classification تعریف کنیم تا بر مبنای اون Decisions Boundary درستی انتخاب کنیم .. برای همین ما باید Feature های صحیح رو به دست بیاریم .. موفق باشید ..
                      دوستان! مدتی کمتر به سایت میام ..

                      دیدگاه


                        #41
                        پاسخ : شناسایی چهره در یک تصویر


                        این طور که من از adaboost متوجه شدم این است که برای بهبود classify ازش استفاده کنیم و برای classify باید از svm یا مثلا از Naive

                        Bayes استفاده کنیم.
                        فرض کنیم ما 100 تا عکس چهره و 100 تا منظره داریم. خب کاری که من واسه classify کردم این بود که اول اومدم در هر sub windows چک کرم که آیا در این

                        sub windiws اا feature های مربوط به چهره (متقارن بودن چهره و ...) را دارا میباشد یا نه.با این کار تعداد sub windows های کاندیدا بسیار

                        کاهش یافت(از حدود 5500 تا به تقریبا 50 تا کاهش یافت) بعد با استفاده از neural network اومدم این sub windows های کاندیدا رو classify

                        کردم.برای treaning هم اومدم sample ها رو تبدیل به pixel value کردم و به عنوان ورودی به NN دادم و خروجی هم 1 برای چهره و 0 در غیر این

                        صورت.
                        اما زمان کل detect حدودا به طور متوسط 400 الی 500 میلی ثانیه است(البته با در نظر گرفتن این که توانایی شناسایی چهره با سایزهای مختلف رو داره) که برای detect

                        در video مناسب نیست.
                        حالا قصد دارم تمام مراحل detect مثل قبل باشه ولی در مرحله ی classify اون sub windows های کاندیدا از یک classifier سریعتر استفاده کنم
                        که زمان detect رو تقریبا به نصف کاهش بده. حالا اگه میشه راهنماییم کنید.

                        دیدگاه


                          #42
                          پاسخ : شناسایی چهره در یک تصویر

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

                          شما کاری که با شبکه عصبی کردید رو کلا بذارید کنار و به کار Viola & Jones فکر کنید .. چند تا مطلب فرمودید که روی اونها بهتره یک مقدار صحبت کنیم ..

                          اول اینکه فرمودید Naive bayes یه متد Classification هست .. امــا جدیدا زیاد از این Classifier استفاده نمیکنن مگه در موارد Action Classification Model .. اونجا هنوز این Classifier کاربرد داره ولی باز هم استقبال خوبی ازش نمیشه ..

                          دوم اینکه در مورد Training Set تون توضیح دادید .. توی AdaBoost هم وضعیت به همین ترتیبه امــا متد Training اش فرق میکنه .. در مورد Sub Window اشاره کردید که با احتساب اونها نمونه های Sample رو کمتر میکنید برای Training .. حالا همین کار رو Viola & Jones به چه صورتی انجام دادن؟ از اون Rectangle Feature ها استفاده کردن .. توی اون میلی که براتون فرستادم کاملا ظرائف این تیپ Feature هارو توضیح دادم و الان فقط میخوام از نتیجه ی اونها استفاده کنم .. اینجا ما چی داریم؟ تعدادی Bounding Box از Face و تعدادی Bonding Box که به صورت کلی با لیبل Non-Face نام گذاری شدن .. حالا AdaBoost میخواد چیکار کنه؟ یه Decisions Boundary تعریف میکنه تا بتونه به بهترین نحو Classification رو انجام بده .. حالا سوال: AdaBoost چه ادعایی داره؟ خود آقای Schapire ادعایی که از متد Boosting داره اینه که اگه ما یه Classifier بسازیم که منطقش وابسته به Boosting باشه؛ تونستیم یه Classifier ای بسازیم که هم Feature Selection انجام میده و Training ..

                          حالا داستان اینا چیه؟ Feature Selection میکنه به این معنا که میتونه یه مشت Rectangle Feature رو که کمترین False Positive Rate رو در هر Iteration دارن؛ انتخاب کنه و Train میشه به این معنا که با پدیت کردن Weight ها میتونه Vote هر Weak Classifier رو در Final Classification تاثیر بده .. اگه به اون ROC Curve که برای نتیجه ی Classification ها کشیده خوب توجه کنید متوجه میشید که هرچی تعداد Iteration ها بالا بره؛ یا اینکه هرچی تعدادWeak Classifier ها بیشتر بشه؛ Error Rate ما کمتر و دقت Calssification بیشتر میشه .. نکته ی دیگه ای که خیلی مهمه اینه که این Error به صورت نمایی کم میشه و به به صفر میل میکنه که از همه چیز جالب تره ..

                          در مورد فایل ویدئو هم که فرمودید خود این دو نفر از 15 فریم بر ثانیه استفاده کردن و جواب خیلی خوبی هم به دست آوردن .. سرعت پردازش هم به صورت real-Time عمل میکنه و این از مزیت های این روشه .. (البته این Real-Time بودن پس از مرحله ی Training انجام میشه که فکر کنم دلیلش مشخص باشه..) .. موفق باشید ..
                          دوستان! مدتی کمتر به سایت میام ..

                          دیدگاه


                            #43
                            پاسخ : شناسایی چهره در یک تصویر

                            سلام...
                            ممنون از راهنماییتون. حالا اگه امکان داره کمی به طور کاربردی توضیح بفرمایید.
                            فرض کنیم ما 100 تاimage postive sample داریم و100 تا negative sample که همه شون preprocessing شدن
                            و 10 تا feature .خب حالا در adaboost در هر مرحله باید با این ها چکار کنیم؟

                            دیدگاه


                              #44
                              پاسخ : شناسایی چهره در یک تصویر

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

                              100 تا Face و 100 تا None-Face .. گفتیم که AdaBoost چیکار میکنه؟ هم Feature Selection و هم Training .. این 200 تا نمونه ی شما یه Data Distribution Space به شما میدن که بر حسب اون Feature خاصی که انتخاب کردید؛ یه weak Classifier میسازید که بتونه این Face هارو از None-Face ها جدا کنه .. این Iteration اول .. توی هر Iteration قراره چه اتفاقی بیوفته؟ یه Hyperplane بین دیتاها قرار بگیره تا بتونیم بر حسب اون Hyperplane بگیم که مثلا نمونه های ما با X درصد خطا Classify شدن .. حالا توی Iteration دوم چه اتفاقی میوفته؟ از فضای نمونه ی Iteration اول به عنوان یه Distribution برای Iteration دوم استفاده میشه .. خــب این از کلیت ماجرا .. امــا اون Weighting ای که اون همه ما روش تاکید میکردیم؛ کجا به دردمون میخوره؟! درست توی تعریف Distribution برای Iteration دوم .. یعنی چی؟ یه فـــلـــــش بــــک .....

                              یادتونه گفتیم که پس از هر مرحله Iteration نتیجه ی Classification تحت یه ارزیابی کلی قرار میگیره؟ اون evaluation رو چطور انجام میدادیم؟ میومدیم و Ground Truth (نمونه های واقعی از نظر + و - بودن..) نمونه هارو با نتایج Classification مقایسه میگردیم .. توی روال های Training دیگه اتفاقی که میوفته چیه؟ با یه هکی میان و یه رابطه ی Recursive تعریف میکنن که مدام حالت فیدبک به کاهش Error Rate کمک کنه .. حالا اینجا چطوریه؟ weighting؛ یعنی وزن دادن .. به چی وزن میدیم؟ به داده هایی که نسبت به داده های یک طرف hyperplane از اقلیت برخوردارن .. توی صفحه ی قبل این تاپیک یه تصویر هست که فکر کنم کاملا منظورمون رو مشخص کنه (اون مربع معروف..Toy Example..) .. پس چی شد؟ Distribution ای که ما برای Iteration دوم به عنوان دیتاهای جدیدی برای Classification بهشون نگاه میکنیم؛ از پدیت شدن وزن های مرحله ی قبل به دست میان .. حالا یه weak Classifier دیگه تعریف میکنیم با یه Feature جدید (یا میتونه همون قبلی باشه .. این بستگی به فضای دیتامون داره..) و ازش انتظار داریم که روی اون Distribution جدید (وزندار شده..) Classification رو انجام بده ..

                              حالا این فرآیند رو تا چندین مرحله بعد توی ذهنتون مجسم کنید .. به چه نتیجه ای میرسید؟ آیا Classification بهتر و بهتر نمیشه؟ درسته که ممکنه توی یه Iteration منحنی Error Rate ما به صورت ناموزون و غیر قابل انتظار یه دفه بالا بره امــا نگاه کلی این رو نشون میده که exponentially این error rate به صفر همگرا میشه ؛ اتفاقی که در عمل برای این Classifier میوفته .. امیدوارم جواب سوالتون رو داده باشم .. اگه اشتباه متوجه شدم؛ شما مجدد تاکید کنید تا با چندتا تصویر مطلب رو جلو ببریم .. موفق باشید ..
                              دوستان! مدتی کمتر به سایت میام ..

                              دیدگاه


                                #45
                                پاسخ : شناسایی چهره در یک تصویر

                                حالا مساله واسم خیلی واضح تر شد.
                                خب حالا فرض کنیم یک weak classifier بر حسب تقارن چهره و چند feature دیگه درست کردیم .حالا در مرحله classify کردن در

                                adaboost اگر خروجی weak classifier بروی postive sample ها صحیح بود به اون وزن بیشتری داده میشه در غیر این صورت وزن کمتری و
                                در مورد negative sample ها بر عکس(البته اگه درست متوجه شده باشم)

                                خب حالا آیا این classify در مرحله ی trainnig روی sample postive-negative image ها و در مرحله ی

                                classify کردن یک فرم در ویدئو برروی sub windows ها انجام میشه؟ مثلا در هنگام detect یک فرم از ویدئو باید تک تک sub windows ها در adaboost چک بشه و

                                adaboost ناحیه ی صورت رو پیدا کنه؟(منظورم همون sub windows که کمترین error rate رو داره)

                                دیدگاه

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