اطلاعیه

Collapse
No announcement yet.

رد یابی تصاویر -- Object Tracking

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

    رد یابی تصاویر -- Object Tracking

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

    #2
    پاسخ : رد یابی تصاویر -- Object Tracking

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

    دیدگاه


      #3
      پاسخ : رد یابی تصاویر -- Object Tracking

      خیلی ناقص گفته شده
      هطلاعات جامع تری ندارید

      دیدگاه


        #4
        پاسخ : رد یابی تصاویر -- Object Tracking

        نوشته اصلی توسط tohidtelecom
        خیلی ناقص گفته شده
        هطلاعات جامع تری ندارید
        سلام ...............

        بهتر نیست در اینترنت دنبال این مورد باشید؟ بحث Tracking بحث خیلی مفصلیه و متدها و الگوریتم های خیلی متفاوتی هم داره .. اگه بخوایم وارد جزئیاتش بشیم بحث جالبی میشه اما نکته اینه که دنبال کردن بحث به این صورت خیلی جالب نیست .. شما روشی که روش کار میکنید رو بفرمایید تا روش صحبت کنیم .. موفق باشید ..
        دوستان! مدتی کمتر به سایت میام ..

        دیدگاه


          #5
          پاسخ : رد یابی تصاویر -- Object Tracking

          نوشته اصلی توسط حسام الدین


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

          بهتر نیست در اینترنت دنبال این مورد باشید؟ بحث Tracking بحث خیلی مفصلیه و متدها و الگوریتم های خیلی متفاوتی هم داره .. اگه بخوایم وارد جزئیاتش بشیم بحث جالبی میشه اما نکته اینه که دنبال کردن بحث به این صورت خیلی جالب نیست .. شما روشی که روش کار میکنید رو بفرمایید تا روش صحبت کنیم .. موفق باشید ..
          خوب منم دوس دارم این بحث ها رو ولی تا حالا کار نکردم(اصلا با مطلب کار نکردم فقط avr )
          1.از کجا میتونم شرو کنم واسه پردازش تصویر(جسارتا کمک کنید)
          2.در این مورد خودتون یه مبحث ساده رو انتخاب کنید و توضیح بدین شاید منم یه چیزییی فهمیدم :cry2:
          علم چندانکه بیشتر خوانی چون عمل در تو نیست نادانی

          دیدگاه


            #6
            پاسخ : رد یابی تصاویر -- Object Tracking

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

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

            دیدگاه


              #7
              پاسخ : رد یابی تصاویر -- Object Tracking


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

              قرار بود در این تاپیک از مباحث Tracking و روش ها و متدهای متداول اون صحبت کنیم امــا برخی مسائل باعث شد که ای اتفاق کمی به تعویق بیوفته که از این بابت عذرخواهی میکنم .. مباحثی که در این پست مطرح میشه توضیح کلی در مورد Traking و بحث های پیرامون اونه و برای پرهیز از مطالب ریاضی صرف سعی شده به صورت مفهومی به ادامه ی این بحث پرداخته بشه تا استفاده ی از اون بهتر و مفیدتر باشه ..

              Object Tracking

              معنایی که از Tracking استنباط میشه عبارت از اینکه بتونیم روش هایی پیاده سازی کنیم تا با استفاده ی از اونها بشه یک Object رو دنبال کرد .. معمولا این اتفاق بعد از یک اتفاق دیگه میوفته و اون Motion Detection هست .. الگوریتم ها و متدهای Tracking معمولا با این مرحله اتفاق نظر پیدا میکنن به طوریکه برخی از الگوریتم ها و ایده هایی که در اون مرحله اجرا میشه؛ در این مرحله هم وجود داره .. بحث Tracking در محدوده ی زمان معمولا با یک ایده ی معمولی که دنبال کردن فریم های متوالی هست شروع میشه و دید اصلی خودش رو با استفاده از این منطق پیاده سازی میکنه ..

              طبیعتا این دید به نوعی باید به وسیله ی معادلات ریاضی و روابط هندسی پیاده سازی بشه و از این جهته که این شاخه در محدوده ی Application های ریاضی و آماری قرار میگیره .. ریاضیات متداولی که در این شاخه استفاده میشه عبارتند از Kalman Filter و Condensation Algorithm، شبکه های دینامیک Bayesian و متدهای Geodesic .. بحث های مربوط به این روابط هم بحث های خاصیه که در قالب این پست تعریفی از اونها نمیشه امـا در صورت امکان میتونیم روی اونها هم صحبت کنیم .. امــا نکته ی دیگه ای که تقریبا پایه ی این بحث رو شامل میشه اینه که از چه روش هایی میتونیم به Tracking دست پیدا کنیم؟

              به طور کلی چهار روش متداول و اصلی برای Tracking وجود داره که در ادامه به صورت مختصر به اونها اشاره میکنیم .. دقت به این نکته از اهمیت فراوانی برخورداره که این متدها شاخه ها و Core های اصلی Tacking هستن و برای هر مرحله ی Object Tracking بر حسب Performance و Application ای که داریم باید به یکی از این شاخه ها متصل بشیم .. شاخه هایی که ازشون صحبت کردیم عبارتند از:

              Region-Based Tracking
              Active Contour-Based Tracking
              Feature-Based Tracking
              Model-Based Tracking

              ** Region-Based .. این شاخه تمام تلاشش رو میکنه تا بر اساس نواحی ای که در یک تصویر در جریان حرکت دچار تغییر شدن، Object رو Track کنه .. همونطوری که از ظاهر این روش بر میاد، تمرکز الگوریتم بر اساس تغییراتیه که به واسطه ی حرکت Object در Image حاصل میشه .. پس نیازی که در این مرحله و الگوریتم وجود داره اینه که بتونیم به نوعی Movement هامون رو Represent کنیم .. یعنی چی؟ یعنی بیایم و بگیم که Image دچار تغییر شده و این تغییر هم به دلیل حرکت Object درون تصویرمون هست .. خب روش متداول برای اینکار میتونه چی باشه؟ یه Background Subtraction ساده میتونه تفاوت دو فریم رو بهمون نشون بده .. با استفاده از این ایده؛ آقای Wrent بحث Tracking یه انسان رو در فضای محفوظ (Supervised Limitation..) انجام داد و از اون نتیجه ی خوبی هم گرفت .. ایده ی ایشون اینطور بود که یک سری Blob (قطره..) روی Human Body تعریف میکرد به طوریکه این blob ها بتونن اون جسم رو represent کنن .. کیفیت این Representation هم بستگی به انتخاب نقاط داشت که در کار ایشون؛ blob ها شامل head و torso و limb های چهارگانه میشدن .. با توجه با این Representation جوابی هم که گرفته بود خیلی خوب بود و با اینکه شرایط Supervision رو به نفع الگوریتم تنظیم کرده بود (تاثیر illumination رو از بین برده بود..) امــا تونست متدش رو به عنوان یک متد پایه مطرح کنه و به اون از بابت یک روش Tracking مبتنی بر Region-Based استناد کنه .. بیس الگوریتمش هم روی این قضیه بود که human body و background رو با استفاده از توزیع Gaussian مقدار پیکسل ها مدل کرد و بعد با استفاده از محاسبه ی Log-likelihood پیکسل های متعلق به human body به blob های نظیر متناظر میشدن و از این طریق میشد با track کردن blob ها Object رو Track کرد ..

              اخیرا آقای McKenna متد جدیدی رو بر پایه ی این شاخه (region-Based ..) ارائه کرد که اساسش بر میگشت به Adaptive Background Subtraction .. در این روش فاکتور color و gradient باهم ترکیب میشدن تا از عهده ی Shadow و رنگهایی که از مرحله ی motion segmentation به صورت unknown به جا موندن بر بیان .. Tracking در این روش به سه level تقسیم میشه .. ناحیه (Region..) ؛ افراد (people..) و گروه .. هر ناحیه یک bounding box داره به این معنا که از نظر localization کاملا localized هست .. با این روش میشه به صورت کاملا semantic نواحی رو با هم ترکیب یا از هم مجزا کرد .. گونه ی انسان (human..) از اتصال برخی نواحی پدید میاد (اگه بخوایم از نواحی تعبیری داشته باشیم میتونیم اونهارو به Patch-based feature template ربط بدیم که به عنوان pattern در searching کاربرد دارن ..) و گروه هم که از اتصال Field های human به دست میان .. اگه بخوایم خیلی کلی به این متد نگاه کنیم میبینیم که مساله به گونه ای شکونده شده و ریز شده و اطلاعاتی که در tracking به کار میان از به هم پیوستن یک سری اطلاعات پایه که Region ها نام دارن؛ به دست میان ..

              امــا مشکلی که برای شاخه ی Region-based وجود داره اینه که نمیتونه در مقابل occlusion مقاومت کنه و در واقع disadvantage بسیار بزرگیه که کاربرد اون رو در محیط های multimodal کم میکنه .. مشکل دیگه ای که وجود داره اینه که چون این الگوریتم ها (مربوط به شاخه ی Region-Based..) بر پایه ی اطلاعات Region ها به دست میان؛ در مقابل 3D Representation به مشکل میخورن و این دلیل دیگه ای برای استقبال کم از این شاخه در application های 3D هست ..

              ** Active Contour-Based .. یکی دیگه از شاخه هایی که در الگوریتم های tracking کاربرد داره مربوط میشه بهObject و ارتباطی که میتونه از نظر Shape باActive Contour ها برقرار کنه .. امــا اساس این الگوریتم روی چه قضیه ای تمرکز داره؟ این الگوریتم Object هارو Track میکنه اونهم با استفاده از نوعی Represent کردن Shape از طریق Boundary extraction و بعد از این مرحله Contour هارو بر طبق فریم های بعدی پدیت میکنه .. الگوریتم های این شاخه تمام تلاششون بر این اصل هست که به صورت مستقیم بتونن Shape یک Object رو Represent کنن و از این طریق وصف بیشتری از Object در برابر Region-Based داشته باشن .. یکی از افرادی که در این زمینه کار کرده و تونسته به نتایج خیلی خوبی هم برسه Paragios هست .. ایشون از طریق پیاده سازی این الگوریتم تونست هم Object هارو توی یه تصویر detect کنه و بعد از اون هم تونست با استفاده از متدهای geodesic و level set به Tracking آبجکت کمک کنه .. روش جدیدتری که آقای Peterfreund ارائه کرد بحث میکرد روی مدل جدیدتری از Active Contour ها که اساسش کارش مربوط میشه به فیلتر Kalman برای Tracking اهداف non-rigid ای که به صورت متحرک در یک scene وجود دارن (مثل رفت و آمد افراد در یک محوطه..) .. از افراد دیگه ای که در این زمینه کارهای جالبی کردن میشه به Isard و Malik هم اشاره کرد ..

              بر خلاف Region-Based ؛ این مدل از نظر توصیف ساده تر Object ها و محاسبات کمتر در اولویت کاربردی بیشتری قرار گرفت و به خاطر امکانی که در Track کردن Object های نا مرغوب و Occluded برای این مدل فراهم بود؛ نسبت به Region-Based از توجه بیشتری برخوردار شد .. امــآ نکته ای که به عنوان محدودیت برای این مدل وجود داشت این بود که به دلیل محدودیت هایی که در Contour Level وجود داشت، بازیابی و Representation آبجکت های 3D یک مشکل جدی به حساب میومد .. از طرفی به دلیل شرطInitialization ای که برای Active Contour ها وجود داره؛ اجرای روند Tracking به صورت خودکار با مشکل روبرو میشد ..

              ** Feature-Based .. این شاخه از زاویه ی نسبتا متفاوت تری به موضوع Tracking نگاه میکنه و در واقع تفاوت در این نگاه هست که میتونه در نتایج پیاده سازی با الگوریتم های قبلی در مرحله ی عمل؛ متفاوت تر باشه .. تمام تلاش این شاخه اینه که در ابتدا یک سری المان (یا همون feature های خاص..) از تصویر استخراج کنه؛ بعد اونهارو در یه level بالاتر cluster میکنه و در انتها این feature هارو بین Image های مختلف مقایسه میکنه .. طبیعتا برای این قیاس باید رابطه و یه cost تعریف بشه که در ادامه به اونها هم پرداخته میشه .. امــا این feature هایی که ازشون صحبت میکنیم به سه Subcategory مجزا تقسیم میشن که در زیر به اونها اشاره میکنیم ..

              Global Feature-Based Algorithm
              Local Feature-Based Algorithm
              Dependence-Graph-Based Algorithm

              امــا هر کدوم از اینها چه معنایی دارن و چه کاربردی میتونن در این شاخه داشته باشن بحثیه که در ادامه روی اون تمرکز میکنیم ..

              ** Global Feature-Based Algorithm .. در حقیقت feature هایی که در این محدوده تعریف میشن شامل مشخصه های عمومی مثل مرکز؛ اطراف؛ مساحت؛ برخی مرتبه های توانی و رنگ ها میشن .. Polana با استفاده از این feature ها یک فرد رو به وسیله ی تعیین bonding box و به دست آوردن مرکز اون باکس Track کرد و نشون داد که میشه از این فاکتور (مرکز باکس..) به عنوان یه feature برای Tracking استفاده کرد .. جالبی این طرح این بود که الگوریتم حتی در مقابل Occlusion هم میتونست مقاومت کنه و به Tracking فرد ادامه بده .. راه حلی هم که برای این موضوع پیدا کرده بود استفاده از سرعت حرکت مرکز Box و استفاده ی از اون به عنوان فاکتور کنترلی Occlusion بود ..

              ** Local Feature-Based Algorithm .. در حقیقت feature هایی که جزء این دسته قرار میگرفتن عبارت بودن از یک سری فاکتورهای شهودی مثل قطعه ی خط (line segment..) ؛ قطعه ی منحنی وار (Curve segment..)و رئوس گوشه (Corner Vertices..) .. اینها هم در Tracking خیلی کاربرد دارن ولی دیدی که اونها دنبال میکنن یک مقدار محدودیت کاربرد رو زیاد میکنه و حالت عمومی زیادی نداره ..

              ** Dependence-Graph-Based Algorithm .. در حقیقت feature هایی که در این حوزه قرار میگیرن یک سری ویژگی های خاص هندسی (شاید بهتر باشه بگیم..) دارن که از اونها میشه به تغییرات فاصله یا روابط هندسی بین feature ها اشاره کرد .. خب این نکته ی آخر یک بحثی داره که در CG خیلی پرکاربد هست .. CG دنبال متدهای هندسی میگرده که با اونها به تفسیر الگوریتم ها و روش های محاسباتی بپردازه .. برای همین هم هست که میشه از این شاخه در اونجا استفاده کرد ..

              امــا ترکیبی از سه feature بالا میشه کاری که آقای Jang انجام داد ایشون یه active template از object رو بااستفاده از feature های regional و Structural توصیف کرد و برای این تصیف از اطلاعات Texture (بافت..) و Shape و color و البته edge استفاده کرد و نشون داد که میشه با ترکیب این سه subcategory نتایج وزنی بالایی گرفت ..

              با توجه به ویژگی هایی که در feature based Algorithm وجود داره میشه به سادگی نشون داد که به طور کلی در پردازش های real time میشه از این شاخه استفاده کرد .. نکته ی مهم دیگه ای که برای این شاخه وجود داره اینه که در برابر occlusion خیلی خوب مقاومت میکنه و میتونه با استفاده از اطلاعاتی که از جابجایی Object و local feature و dependence feature ها به دست میاره؛ به Trackingآبجکت مورد نظر ادامه بده .. امـا مشکلی که dependence-graph-based Algorithm با اون روبرو هست اینه که نمیتونه در فضای پردازشی real time کاربرد داشته باشه .. دلیلش هم اینه که از نظر هزینه ی زمانی برای جستجو و مقایسه ی Graph ها باید زمان زیادی صرف بشه که از حالت real time بودن ، پردازش رو خارج میکنه .. امــا مشکلاتی هم برای این شاخه وجو داره که به سه دسته ی کلی تقسیم بندی میشن ..

              .........

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

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

              دیدگاه


                #8
                پاسخ : رد یابی تصاویر -- Object Tracking

                نوشته اصلی توسط ایمان
                سلام دمتونگرم کارتون خیلی عالیه لطفا ادامه بدید.ما منتظریم... :applause:
                سلام ...................

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

                دیدگاه


                  #9
                  پاسخ : رد یابی تصاویر -- Object Tracking

                  خیلی عالی بود .
                  منتظر ادامه مطلب هستم
                  بدون امضاء

                  دیدگاه


                    #10
                    پاسخ : رد یابی تصاویر -- Object Tracking


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

                    در پست قبل در مورد سه مدل از الگوریتم های متداول در Tracking صحبت کردیم و گفتیم که هر کدوم نسبت به مدل های دیگه چه تفاوت ها و چه برتری هایی دارن .. بحث رو تا Feature Based Algorithm دنبال کردیم و ویژگی های اون رو هم گفتیم .. امــا این الگوریتم ها هم یک سری disadvantage دارن که اونهارو مورد انتقاد قرار میده .. سه مورد خیلی مهم که به عنوان disadvantage میشه در مورد این الگوریتم ها مطرح کرد رو با هم بررسی میکنیم ..

                    -- یکی از مواردی که در این الگوریتم ها به وفور دیده میشه؛ Recognition Rate پایین اونها برای feature تصاویر 2D هست .. علت این امر چیه؟ علت این موضوع بر میگرده به اینکه ما در مرحله ی Perspective Projection دچار Distortion غیر خطی میشیم و این عاملیه که در تفاوت Viewpoint های تصویر کاملا بروز پیدا میکنه .. در نظر بگیرید یه Object خاص رو که View-Tune باشه .. یعنی اینکه بشه از Viewpoint های مختلف بررسیش کرد .. برای Track کردن این Object با متدهای Feature Based نیاز داریم که از مدل Project شده استفاده کنیم تا بتونیم Feature های خوبی رو از اون Extract کنیم .. حالا اینجا اون اتفاق میوفته .. یعنی Distortion در هنگام Perspective Projection رخ میده و در نتیجه Recognition Rate ما پایین میاد ..

                    -- به طور کلی و البته معمول، این الگوریتم ها قادر به Cover کردن آبجکت های 3D نیستن .. دلیلش هم تا حدود زیادی مشخصه .. اگه به Type اون Feature هایی که در پست قبل تعریف کردیم؛ برگردیم جواب تقریبا روشن میشه ..

                    -- در مواردی که Occlusion و برخورد ویا مواجهه با یک Pose نا مربوط (Unrelated..) در تصویر وجود داشته باشه، رفتار این الگوریتم ها زیاد پایدار نیست و نمیتونن نتیجه ی خوبی در Tracking داشته باشن ..

                    ** Model-Based Tracking .. این شاخه؛ شاخه ی تقریبا کامل تری نسبت به شاخه های قبلیه و میتونه خیلی جاها به کمک متدهای Tracking بیاد .. هر چند که شاید از نظر Computational پیچیده تر و حجیم تر باشه امــا در Trade off بین Accuracy و Cost جانب Accuracy رو میگیره .. اساس الگوریتم های این شاخه؛ همونطور که از اسمش هم تا حدودی مشخصه؛ بحث Tracking رو روی Model هایی از Object دنبال میکنه .. امــا این مدل ها دقیقا چیه؟ منظور از Model؛ مدل های Project شده ای از آبجکت ها هستن که ازشون اطلاعات خاصی به دست میاد .. بذارید اینطوری بگم .. در واقع Tracking توی این شاخه اینطور تعریف میشه: دنبال کردن آبجکت با استفاده از تطابق مدل های Project شده (که بر حسب اطلاعات مختلف به دست اومده..) با تصاویری که توی Data set وجود دارن ..

                    پس چی شد؟ تمام این شاخه تلاشش رو میکنه تا از آبجکت، یک Projection Model بسازه و بر حسب متدهای خاص؛ بین این مدل Project شده و Image data یه محاسبه ی Matching انجام میده .. الان فقط یه سوال دیگه مونده و اینکه: Data set ما چه طور ساخته میشه؟ جواب این سوال به صورت خیلی کلی اینه که ما دنبال یه Projected Model از آبجکت هامون هستیم .. اینهارو میتونیم به صورت Manual یا با استفاده از CAD Tools و یا با متدهای CV به دست بیاریم .. قصد نداریم وارد جزئیات بشیم؛ چون فقط از موضوع دورمون میکنه .. فقط دنبال این بودیم که جواب سوالمون رو پیدا کنیم .. همین ..

                    Tracking در شاخه ی Model Based به دو دسته ی کلی rigid و non-rigid تقسیم میشه .. چون این دو دسته از نظر متد و الگوریتم و البته از نظر ساختار باهم متفاوت هستن؛ باید اونها رو جداگانه بررسی کنیم .. برای بررسی کردن این دو به صورت مجزا؛ با دو مثال از گونه ی متداولشون بحث رو دنبال میکنیم .. برای Rigid روی Vehicle Tracking بحث میکنیم و برای Non-rigid هم روی Human Body Tracking .. در ابتدا به سراغ مورد دوم میریم و بعد هم به مورد اول میپردازیم ..

                    --Model-Based Human Body Tracking : دید کلی ای که در این زمینه وجود داره اینه که بتونیم بر حسب اونچیزی که سنتز میکنیم؛ آنالیز رو انجام بدیم و پیش بریم .. اصطلاحی که توی IP برای این کار وجود داره، Analysis-by-Synthesis هست .. حالا بر حسب این نگاه؛ متد Tracking روی یه ساختار خاص پیش میره و اون Predict-Match-Update هست .. سیری که کاملا وابسته به اون اصطلاح میشه .. قبل از اینکه بحث رو ادامه بدیم؛ خیلی علاقمند هستم که اون اصطلاح رو یک مقدار بازش کنیم تا ببینیم که چه ارزشی پشتش نهفته هست .. یه Break میزنیم و دوباره بر میگردیم ..

                    یه اتفاقی که توی مغز انسان رخ میده اینه که در مورد تغییراتی که توی محیط بیرون انجام میشه واکنش نشون میده .. حالا منظور از این تغییرات چیه؟ یا بهتر بگم ما میخوایم چه نوع تغییراتی رو دنبال کنیم؟ ما میخوایم بررسی کنیم و ببینیم که مرحله ی Object Recognition در مغز چطور انجام میشه؟ اول اینرو بگم که نمیخوایم وارد detail موضوع بشیم و پست رو طولانی کنیم بلکه فقط میخوایم به یه نکته ی خاص برسیم تا بتونیم ازش نتیجه گیری کنیم .. اتفاقی که توی IT Cortex میوفته (Inferotemporal Cortex..) اینه که یک نوع View-Based Object Recognition در اون انجام میشه و این نکته ایه که دو مرحله رو شامل میشه .. یکی از اون مراحل Feedforward Model هست و دیگری هم Feedback Model .. اصل بحث روی مدل دوم هست امــا مدل اول رو هم کمی توضیح میدیم ..

                    اولین سوالی که توی ذهن برای تشخیص یک آبجکت مطرح میشه اینه که ببینه ارتباط اون آبجکت با تبدیل های دوبعدی Affine به چه ترتیبه یا به عبارتی تحت این تبدیلات؛ آبجکت چه رفتاری از خودش نشون میده .. ساختار پردازش مغز در این ناحیه کاملا feedforward عمل میکنه به این معنا که چند تا Layer برای Preprocess و Process وجود داره که این رفتار رو بررسی میکنن .. مثلا توی محیط خارجی به راحتی Scale و Position Invariance تشخیص داده میشن، اتفاقی که شاید از نظر مغز کمی متفاوت به نظر بیاد .. در مقابل؛ Feedback Model رفتار متفاوت تری برای Recognition داره و همین رفتار هست که به دقت پردازش کمک میکنه .. شاید کمتر کسی بتونه تصور کنه که توی ناحیه ی Cortex یه بخش Recursive وجود داره امــا واقعا یک همچین بخشی در مغز وجود داره و در مرحله ی Process به Recognition کمک میکنه .. حالا به چه ترتیب؟ در واقع Cortex از یک اصل استفاده میکنه و اون Analysis-by-Synthesis هست .. همون اصطلاحی که در پاراگراف قبل باهاش آشنا شدیم .. Cortex یک حدسی در مورد آبجکتی که توی تصویر وجود داره و مکان و اندازه ی اون میزنه .. بعد از این مرحله؛ یک مجموعه ای از نرون ها رو بر اساس Guessing Information هایی که به دست آورده سنتز میکنه و اونهارو در لایه ی حافظه مانند (که خود نرون ها هستند..) قرار میده .. در مرحله ی بعد؛ میزان تفاوت بین این سنتز و مقدار واقعی ای که از Category خاص داشته رو بررسی میکنه و در نهایت تلاش میکنه برای مینیمم کردن این اختلاف؛ از طریق پدیت کردن Hypothesis ای که سنتز شده بوده .. از این طریق به شناخت کامل آبجکت میرسه .. در واقع این عملیات و عملیات انجام شده در مدل FeedForward تکمیل میکنن همدیگه رو در فرآیند Recognition و این قضیه خیلی جالب اتفاق میوفته ..

                    خـــب .. از بحث دورنشیم .. گفتیم که الگوریتم های این شاخه توی Human Body Tracking یه متد خاص دنبال میکنن و اون هم Analysis-by-Synthesis هست .. نتیجه ی این متد منتهی میشه به یک اسلوب خاص که گفتیم همون Predict-Match-Update هست .. حالا مراحل این متد به چه ترتیبه؟ اولا Pose مدل ما Predict میشه برای فریم بعدی .. این Prediction بر چه اساسی صورت میگیره؟ یک سری اطلاعات اولیه داریم و یک سری History هم از خود Tracking داریم .. مثلا اینکه حرکت بعدی به کدوم سمت باشه .. یا اینکه مثلا بدونیم جابجایی به چه سمتی قراره منتقل بشه و از این موارد .. تا اینجا چیکار کردیم؟ یه Pose رو اومدیم و Predict کردیم .. در مرحله ی بعد؛ این Pose ای که ما Predict کردیم باید سنتز و Project بشه به یه Image Plane تا بتونیم یه مقایسه داشته باشیم بین این Image Plane و Image Data ای که اول صحبتش رو کردیم .. طبیعتا این مرحله نیاز به یک Evaluation Function داره که ما بتونیم بر حسب Cost ای که به دست میاریم تصمیم بگیریم که چه تغییراتی برای پدیت کردن مدل (کدوم مدل؟ همون Prediction Model ..) انجام بدیم .. اینکه چطور مدل رو پدیت کنیم خودش چندتا شاخه میشه امــا یکی از متداول ترین روش هاش اینه که بیایم و با استفاده از تکنیک های Sampling این کار رو انجام بدیم ..

                    پس تا اینجا متوجه شدیم که این شاخه با چه Task هایی سروکار داره .. حالا اگه بخوایم این Task هارو یک مقدار باز کنیم؛ میتونیم اونهارو به سه دسته ی کلی تقسیم کنیم .. دقت کنید که این دسته ها در واقع شرحی هستن از اون مواردی که در بالا به عنوان سه مرحله بیانشون کردیم .. در نتیجه میتونیم بگیم که هر مساله ی Model-Based Human Body Tracking کلا با سه تا Task درگیره و همیشه باید برای حل این مسائل فکر کنه و انرژی بذاره ..

                    1- بتونه یک ساختار مناسب از مدل Human Body بسازه ..
                    2- بتونه یک سری اطلاعات پیش فرضی که اونهارو اطلاعات اولیه میدونه؛ از مدل های Motion و محدودیت های Motion ارائه بده ..
                    3- استراژی های خاصی که برای Prediction و Searching در نظر بگیره ..

                    کارهایی که روی این سه تا Task انجام شده، کارهای جالبیه و البته پردامنه .. با Task اول شروع میکنیم و موارد مهمی که در اون مطرح شده رو بررسی میکنیم .. دقت کنید که نمیخوایم وارد Detail مسائل بشیم چراکه از نظر گستردگی واقعا حجیمه .. اون Title هایی که مهم هستن رو باهم بررسی میکنیم تا بتونیم در انتها به یک جمعبندی مناسب برسیم ..

                    اولین Task اینه که بیایم و یک Human Body Model ارائه بدیم .. پس تمام تلاش ما توی این قسمت معطوف میشه به این نکته که بتونیم یه مدل مناسب از Human Body ارائه بدیم .. چندتا روش برای اینکار وجود داره که چهارتا از مهمترین هاش رو باهم بررسی میکنیم ..

                    1- اولین اونها Stick Figure هست .. این متد اینطور به مساله نگاه میکنه .. میگه هر اتفاقی که توی Motion یک Human Body میوفته مربوط میشه به حرکت Torso و Head و چهارتا Limb .. پس اگه قرار باشه اینطوری به مساله نگاه بشه؛ میتویم بگیم که Human Body تشکیل شده از Stick های متفاوت و Joint اونها هست که یه Body رو میسازه .. این دید تونست یه متد خیلی خوب رو در این زمینه به عنوان مدلی مناسب بیان کنه .. آقای Karaulova تونست با استفاده از Stick Figure و تعریف مدل Hierarchical مارکوف برای Stick ها عملیات Tracking رو در یه فضای Monocular انجام بده و نشون داد که میتونه از اون متد در View-Independent Tracking استفاده کنه ..

                    2- دومین اونها 2D Contour هست .. فکر کنم با این متد کم و بیش آشنا باشیم .. در پست قبل راجع به Active Contour ها مطالبی رو (هر چند کوتاه..) گفتیم و با اون ذهنیت (شناخت کلی نسبت به کار Contour ..) این بحث رو دنبال میکنیم .. این مدل ارتباط تنگاتنگی با Project شده ی مدل Human Body در یه Image Plane تعریف شده داره .. قسمت های Human Body تشکیل میشدن از یک سری روبان یا قطره که Project شده ی Human Body رو به نحوی Represent میکردن .. (منظورمون از قسمت چیه؟ همون Segment هایی که توسط Active Contour ها به دست میومدن .. خاطرتون هست دیگه؟ ..) برای مثال میتونیم به کاری که اقای Ju کرد استناد کنیم .. ایشون اومد چیکار کرد؟ اومد و یه Cardboard تعریف کرد و گفت که این مدل برای Human Body مناسبه .. اون Cardboard در واقع همون Projection ای بود که الان ازش صحبت کردیم .. پس کارش رو یه مرحله جلو انداخته بود .. امــا بعدش چی؟ تمام Limb هارو با یک سری روبان های Joint شده ی مسطح Represent کرد و نشون داد که با محدود شدن این Patch هایی که در واقع تصویر Motion رو پارامتری میکنن، حرکت قطعه های Body کنترل و شناخته میشه .. آقای Niyogi هم با استفاده از Spatial-Temporal Pattern در فضای XYT نشون داد که میشه با استفاده از 2D Contour به Pedestrian کمک کرد و اونهارو در مواردی خاص Track کرد ..

                    3- سومین اونها Volumetric Model هست .. این حیطه در مقابل متدهای قبلی قرار میگیره .. حالا چرا؟ ببینید یکی از عمده ترین محدودیت هایی که برای مدل های 2D وجود داشت این بود که از نظر زاویه ی View در محدودیت زیادی بودن .. Volumetric Model اومد و گفت که به جای اینکه مدل های 2D بسازیم بیایم و مدل هارو 3D کنیم .. حالا این کار به چه ترتیب انجام میشد؟ یکی از کارها این بود که از بیضوی ها؛ مخروط ها؛ کروی ها؛ چند وجهی ها و از اینگونه موارد استفاده کنن .. همون طور که احتمالا متوجه شدید، این محدوده از نظر Computational بسیار پرهزینه و پیچیده هست و برای همینه که از نظر سرعت هم متاسفانه دچار مشکله .. آقای Rohr از 14 تا سیلندر بیضوی استفاده کرد تا بتونه مدل سه بعدی Human Body رو بسازه .. آقای Wachter هم با استفاده از مخروط های بیضوی موفق به ساخت یه مدل 3D برای Human Body شد ..

                    4- چهارمین اونها Hierarchical Model هست .. این مدل هم که دیگه اسمش روشه .. یه مدل Hierarchy که با Branching مدل رو میسازه .. آقای Plankers تونست با استفاده از این حیطه یه مدل نسبتا دقیق برای Human Body ارائه کنه .. مدل ایشون از 4 تا Level تشکیل شده بود: Skeleton که در واقع همون اسکلت Structure بدنه؛ گلوله های بیضوی ای که در حقیقت گوشت اندام رو مد نظر قرار میداد و به چربی و بافت اهمیت بیشتری میداد (دقیقا مثل مدل ماهیچه ای..!)؛ چند ضلعی هایی که Skin رو شامل میشدن و قسمت آخر هم شامل نواحی Shade شده بود .. این چهار تا Level یه ساختار Hierarchy میساختن که یه مدل خیلی دقیق رو از Human Body به وجود میاورد ..

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

                    دیدگاه


                      #11
                      پاسخ : رد یابی تصاویر -- Object Tracking

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

                      دیدگاه


                        #12
                        پاسخ : رد یابی تصاویر -- Object Tracking

                        با سلام
                        این دومین پیام من در امروز بود. راستش من برای کار ترکینگ یک مهلت کم دارم و باید یک الگوریتم نسبتا بهینه رو برای کارم پیدا کنم و اون رو برای ادامه کارم ارائه بدم. نیازمندیهای من یک کم زیاد است از این نظر که اولا باید الگوریتم خوب کار کنه ( با توجه به شرایط محیطی - نویز های زیاد- احتمال تکان خوردن دوربین (هنگام شلیک توپ) - احتمالا وجود چند شیی در تصویر) و ثانیا الگوریتم طوری باشه که به صورت زمان حقیقی اجرا بشه . چون قراره بعدا در یک سخت افزار DSP پیاده سازی بشه)
                        من به صورت کلی مقاله
                        Achieving real-time object detection and tracking under extreme conditions رو خوندم اونجا چند الگوریتم ارائه شده ... نظر شما در مورد این الگوریتم ها چی ؟؟؟؟؟
                        البته استاد از من خواسته اول کار یک کار ساده رو براش انجام بدم مثلا با یک دوربین که به کامپیوتر وصل است و رو یک میز یک درجه ازادی است من یک جسم (مثلا ادم ) رو که با سرعت کم حرکت می کنه با پشت زمینه نسبتا ساده دنبال کنم . برای این کار چه پیشنهادی دارید ؟؟؟؟
                        من دشمن تو و عقاید تو هستم ولی حاضرم در راه آزادی عقیده ات جانم را فدا کنم. (ولتر)

                        دیدگاه


                          #13
                          پاسخ : رد یابی تصاویر -- Object Tracking

                          با سلام دوباره
                          این هم لینک مقاله
                          http://www.4shared.com/file/107645479/23aab98d/04_-_Achieving_real-time_object_detection_and_tracking_under_extreme_c onditions.html
                          من دشمن تو و عقاید تو هستم ولی حاضرم در راه آزادی عقیده ات جانم را فدا کنم. (ولتر)

                          دیدگاه


                            #14
                            پاسخ : رد یابی تصاویر -- Object Tracking

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

                            شما در اینجا به الگوریتم های زیادی اشاره کردید. می خواستم با توجه به تجربه خودتون کدم الگوریتم رو پیشنهاد می کنید. جایی دیگه شما به الگوریتم boosting اشاره کرده بودید. پیشنهادتون چیه ؟
                            درسته .. من هدفم این بود که یه بحث کلی بکنیم که بتونیم با موارد و مختلف توی این زمینه آشنا باشیم .. اما در مورد Boosting .. یه توضیح کوتاه من بدم؛ متد Bosing برای چی توی مبحث Machine Learning مطرح شد؟ برای اینکه بتونه به Procedure های Classification کمک کنه .. چرا؟ چون ساختار Boost ای که داشت به روال Classification کمک میکرد .. الان با چه ایده ای میشه توی Tracking ازش استفاده کرد من نمیدونم! متدی که خیلی توی Tracking پرکاربرده؛ HMM هست .. میان برای یه سری Part های خاص؛ مدل Markov در نظر میگیرن و یه مقدار میرن توی بحث های Probablestic و از اونجا بحث Tracking رو ادامه میدن .. نکته ی جالب هم که وجود داره اینه که میتونن تا حد زیادی از Occlusion هم استفاده کنن .. ولی متدهای دیگه هم هست .. مثلا این همه موردی که بالا بهشون اشاره کردیم؛ همه شام Accuracy Rate های خوبی هستن .. همون Optical Flow ای که گفتیم خیلی جاها به کمک Tracking میاد .. البته تلفیق اینها از همه بهتره ولی میتونید به تک تک اونها هم فکر کنید .. توی دنیا افراد زیادی نیستن که ب صورت حرفه ای روی Tracking کار میکنن.. بهترین اونها Deva هست که واقعا کارهای خوب و نتایج عالی ای از پیاده سازی مدهاش گرفته .. میتونید Homepage ایشون رو ببینید .. خیلی میتونه بهتون دید بده .. توی صفحه اش؛ یه سری فیلم و سورس کد هم داره که واقعا عالیه .. آدرس لینکش رو براتون میذارم .. موفق باشید ..

                            http://www.ics.uci.edu/~dramanan/
                            دوستان! مدتی کمتر به سایت میام ..

                            دیدگاه


                              #15
                              پاسخ : رد یابی تصاویر -- Object Tracking

                              سلام
                              من این چند روز درگیر پیدا کردن الگوریتم های خوب برای کار Tracking بودم . یک سری نتایجی گرفتم که به طور خلاصه می گم ( اگه اشتباه بود اصلاح کنید). نوع کار من ترکینگ هدف های نظامی ( هواپیما، هلیکوپتر ، موشک و ....) است
                              مشکلاتی که ممکن است در این حوزه داشته باشیم : 1- کوچک بودن هدف به دلیل فاصله زیاد 2- احتمال نبودن شی در بعضی از فریم ها ( مثلا ممکن است هواپیما پشت ابر پنهان شود) 3- احتمال تغییر روشنایی به دلیل ابری شدن هوا 4- احتمال بودن چند شی در تصویر ( بودن همزمان چند هواپیما در تصویر)
                              همان طور که در بالا به یک مقاله رجوع داده بودم. توی این مقاله یک سری الگوریتم ها رو اومده با هم مقایسه کرده و مزایا و معایب اونها رو گفته و بهترین الگوریتم رو الگوریتم covarannce عنوان کرده ولی زمان محاسبه بالایی داره ( حدود 150 میلی ثانیه ) (البته با یک تکنیک میشه تا 55 میلی ثانیه اون رو کم کرد).
                              من از چند نفر پرسیدم و اونها الگوریتم کالمن فیلتر رو پیشنهاد دادن ولی میگن خوب جواب نمیده مخصوا زمانی که شی تو یک فریم ناپدید بشه
                              اگوریتم دیگه کورلیشن است ؟ ولی میگن مشکلاتی مانند ضعف در هنگام تغییر روشنا یی ، در چرخش و تغییر پرسپکتیو ،مقیاس دهی و اعوجاج و .. است
                              الگوریتم دیگه optical flow است که هنوز زیاد در موردش نمیدونم ولی میگن خوب جواب میده
                              شما چه پیشنهادی دارید ؟؟
                              من چون میخوام الگوریتم رو پیاده سازی کنم باید برای این کار تا اندازه ای بهینه باشه و بشه اون رو تو سخت افزار پیاده سازی کرد !!!!!!!
                              من دشمن تو و عقاید تو هستم ولی حاضرم در راه آزادی عقیده ات جانم را فدا کنم. (ولتر)

                              دیدگاه

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