در دسته‌بندی کنش1 در ویدئو هدف تشخیص وجود یا عدم وجود یک کنش خاص در ویدئو است. کاربردهای بسیار زیادی برای این مسئله می‌توان در نظر گرفت. موارد ساده‌ای از این کنش‌ها را می‌توانید در تصویر زیر مشاهده کنید:

simple actions

۱. مقدمه

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

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

  2. بر مبنای سنسور، چند کاربره
    در این بخش از مجموعه از سنسور ها برای بازشناسی کنش چند نفر استفاده می شود.

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

  4. بر مبنای تصویر
    در این مورد بررسی کنش و رفتار عامل با استفاده از ویدئو هایی که توسط دوربینهای مختلف ضبط می شوند انجام می شود. در این زمینه تحقیقات گسترده ای با استفاده از متودهایی همچون جریان نوری5،فیلترینگ کالمن6،مدل مخفی مارکف7 انجام شده است. تحقیقات اخیر از دوربین های RGBD مانند Kinect مایکروسافت برای ردیابی کنش های انسان استفاده کرده اند.
    دوربین های دو بعدی در شناسایی عمق عاجز بودند حال آنکه این مهم با استفاده از دوربین های عمق 8انجام شده است. اطلاعات سنسوری دریافتی از این دوربین ها برای بازسازی زمان واقع9 از اسکلت بدن انسان در حالات مختلف استفاده می شود. این داده های اسکلت اطلاعات مهمی را در اختیار محققان قرار می دهد و به آن ها در بازشناسی کنش های نا آشنا در آینده کمک می کند.
    این پروژه نیز شامل دریافت اطلاعات از ویدئو و بازشناسی کنش از طریق آن است.
    در پردازش ویدئو علاوه بر مشکلات قدیمی پردازش تصویر ،مشکلات دیگری نیز وجود دارد که در ذیل به اختصار چند مورد از آن ها بیان شده است :

    1. مقیاس متفاوت 10 : افراد مختلف امکان دارد در ویدئو های مختلف دارای مقیاس های متفاوتی باشند حال آنکه کار یکسانی را انجام می دهند.

    2. حرکت دوربین : امکان دارد دوربین فیلم برداری دوربین دستی همراه با لرزش باشد و یا دوربینی که بر روی پایه ی متحرک نصب شده است.

    3. حرکت با دوربین : این امکان نیز وجود دارد که عامل مورد مطالعه در حال انجام عملی مانند اسکیت کردن باشد و در نتیجه همراه با دوربین و با سرعت یکسان با دوربین حرکت کند.

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

      توضیح تصویر

    5. در هم ریختگی پس زمینه [^Background Clutter ]: حاصل از بقیه اشیاء و یا انسان های موجود در ویدئو

    6. انسان ها در اندازه ها و شکل های مختلفی هستند 12

    7. انسان ها ممکن است عمل یکسانی را به اشکال مختلفی انجام دهند . 13
      روش های بازشناسی کنش :
      چهار مورد از روش های بازشناسی در ذیل آمده است. روش استدلال احتمالی که در این پروژه استفاده می شود توضیح بیشتری داده شده است :

  5. از طریق منطق و استدلال14

  6. باز شناسی کنش مبتنی بر wif

  7. بازشناسی کنش مبتنی بر داده کاوی

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

    توضیح تصویر

    نمونه هایی از مدل های گرافیکی مسائل واقعی را در شکل زیر مشاهده می کنید :

    شکل سمت چپ مربوط به مدل گرافیکی بیزین CPCS ،طراحی شده در دانشگاه استنفورد در تشخیص پزشکی بیماری داخلی با 480 گره و بیش از 900 یال است. شکل سمت راست نیز مثالی واقعی از مدل مارکف استفاده شده در بخش بندی تصویر 16 است.
    امروزه مدل های گرافیکی احتمالاتی از مهم ترین ابزار های مدلسازی و حل مسائل هوش مصنوعی هستند.
    [برای اطلاعات بیشتر می توانید به درس PGM(Probabilistic Graphical Models) دانشگاه استنفورد مراجعه کنید]
    در این پروژه نیز با کمک مدل های گرافیکی احتمالاتی به مدلسازی و بازشناسی کنش انجام شده توسط عامل هوشمند پرداخته می شود.

۲. کارهای مرتبط

در این پروژه به کمک مدل های گرافیکی احتمالاتی باید ابتدا مساله مدل شده، کار آموزش پارامتر ها 17 انجام شده و در نهایت استنتاج 18انجام شود. در مدل پیشنهادی باید پارامتر های مورد نظر از میان زنجیره فریم ها استخراج می شوندتا در نهایت عمل انجام شده از آن ها استنتاج شوند.
کارهای کمابیش زیادی در این حوزه انجام شده است که به چند مورد از آن ها اشاره می شود .در حوزه اشارات و حرکات 19 مدل های تولیدی 20 مانند مدل مخفی مارکف برای حالات بازو استفاده شده است [12].همچنین Kapoor و Picard مدل مبتنی بر HMM , به صورت زمان واقع برای ردیابی حرکات سر ارائه داده اند[13]. همچنین در [18] بر اساس مشاهدات دو بعدی 2D و مدل HMM به مدلسازی حرکت انسان پرداخته است.
در [`19]بر اساس مشاهدات سه بعدی 3D مدلسازی حرکت انسان انجام شده است.
جدای مدلهای تولیدی، مدل های تمایزی 21 نیز برای حل مساله برچسب گذاری توالی 22 استفاده می شود. مثلا در [14] از مدل ماکزیمم آنتروپی مارکف 23برای استخراج اطلاعات24 و قطعه بندی 25استفاده شده است.مزیت استفاده از مدل MEMM این است که میتواند مساله همپوشانی جزئیاتی که در زنجیره مشاهده وجود دارند را مدل کند. تفاوت بین این مدل ها در آن است که در مدلهای Generative مقدار احتمال توام محاسبه میشود اما در مدلهای Descriminative مقدار احتمال شرطی به شرط داشتن داده حساب می شود.
مدلهای میدان تصادفی شرطی26 اولین بار توسط [Lafferty et al. [15 معرفی شد. اخیرا استفاده از این مدل ها در بینایی ماشین27 نیز زیاد شده است. برای مثال[ Sminchisescu [16 از این مدل برای دسته بندی فعالیت های حرکتی مانند راه رفتن،پریدن و ... استفاده کرده است. مدل معرفی شده در این مقاله میتواند علاوه بر مساله همپوشانی جزئیاتی که در زنجیره مشاهده است ،وابستگی هایی که بین مشاهدات در بازه های زمانی مختلف28 نیز وجود دارد را مدل کند .مدل CRF مورد استفاده آن ها در این مقاله همچنین توانایی تمیز دادن بین راه رفتن معمولی و پرسه زدن29 را دارد.
مدل های مخفی CRF نیز توسط [Quattoni [17 در بازشناسی شی برای مدل کردن وابستگی های فاصله ای 30 در تصاویر Unsegmented Cluttered استفاده شده است.

۳. گزارش نتایج آزمایش

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

  1. استخراج ویژگی ها با استفاده از STIP : یکی از روشهای استخراج ویژگی ها روش STIP است که در آن با استفاده از هسیتوگرام های HOG , HOF ویژگی های مد نظر بدست می آیند.مزیت استفاده از این روش توجه به زمان در کنار بعد مکان است و بنابراین برای کاربرد هایی مانند ویدئو به خوبی قابل استفاده است.
    شکل زیر یک فریم از فریم ویدئوی دویدن با استفاده از STIP را نشان می دهد :

    توضیح تصویر

    خروجی بالا از دستور زیر ایجاد شده است :
    ./bin/stipdet -i ./data/video-list.txt -vpath ./data/ -o ./data/walk-samples-stip.txt -det harris3d
    که در آن به ترتیب اسامی وید‌ئو ها , آدرس دسترسی به دادگان, و خروجی و در نهایت روش مورد استفاده برای به دست آوردن Interest Point داده می شود.
    ۱.۱ مجموعه دادگان 31 : در این مرحله از داده های تهیه شده در [1]استفاده شده است.این مجموعه دادگان شامل ۶ کنشِ راه رفتن ,دویدن , آهسته دویدن , تکان دادن دست,مشت زدن و دست تکان دادن است که در ۴ سناریوی محیط بیرون, محیط بیرون با تغییر در مقیاس, محیط بیرون با لباس مختلف و محیط داخلی خانه و توسط ۲۵ نفر تهیه شده است(شکل ابتدای صفحه) که در این مرحله از ۴ کنش اول استفاده است.نرخ ویدئو در آنها ۲۵ فریم در ثانیه است که به طور میانگین ۴ ثانیه طول فیلمِ هر بخش است.تعداد کل دادگان در حالت ۶ کنش به ۲۳۹۱ عدد میرسد.در این مرحله آموزش با ۶ نفرو آزمایش با ۶ نفر دیگر انجام شده است.
    مجموعه دادگان مورد استفاده در این مرحله از لینک زیر قابل دریافت است :
    http://www.nada.kth.se/cvap/actions/
    ۲.به طور کلی در هر مساله که از مدل های گرافیکی استفاده کرده است, مدلی از مساله ایجاد می شود تا از آن برای استنتاج نهایی که همان استخراج مقدار احتمال است استفاده شود.یک مدل ساده شده برای مساله می تواند مدل زیر باشد :
    توضیح تصویر

    در این پروژه از مدل بالا که مثالی از مدل گرافیکی CRF است استفاده می شود. این مدل نمونه از مدلهای بدون جهت محسوب می شود.
    شکل بالا مدل یک ویدئو مانند راه رفتن را نشان میدهد که از تعدادی فریم تشکیل شده است.این فریم ها دارای برچسب های L1 ,L2,...Ln هستند که در نهایت برچسب نهایی که Y است را منتج می شوند.
    کاری که در این مرحله از پژوهش انجام شده است برای هر مورد ابتدا فیلم مورد استفاده فریم به فریم میشود کد مورد استفاده در این قسمت از لینک زیر قابل استفاده است :
    http://upload7.ir/preview.php?user=&file=2e1e683ddc579c58d27d05cefe20caa2a5c90e5d
    سپس با استفاده از روش STIP ویژگی های هر فریم از آن استخراج می شود و بردار ویژگی آن را می سازد.در این حالت یک مثال از بردار ویژگی به شکل زیر است :
    0.575 0.708333 0.0619469 86 93 8 4 2 0.930706 0.0497958
    که در آن به ترتیب مقادیر شامل y-norm x-norm t-norm y x t sigma2 tau2 hog hof است.
    برای بدست آورد برچسب کلی کنش در هر ویدئو نیاز به برقراری ارتباط بین بردار ویژگی استخراج شده با برچسب هر فریم در گام اول و سپس استفاده از آن در محاسبه برچسب کنش انجام شده طبق رابطه زیر است

                                             P= 1/z Exp (-E)                   
    

    که در آن E می تواند حاصل ضرب مقادیر تابع پتانسیل باشد.یک تعریف ساده از تابع پتانسیل می تواند رابطه بین متغیر ها باشد.
    از آنجا که مقهوم تابع پتانسیل از اهمیت ویژه ای در این مقاله برخوردار است به مثال زیر توجه کنید :
    فرض کنید که ۴ دانشجو در مورد تمرینات درس الگوشناسی خود با هم بحث می کنند.تابع پتانسیل بین دو دانشجو C و B یاB,C)Phi )مانند زیر تعریف می شود:

    توضیح تصویر

    که در آن B , C با دو مقدار ۱ با هم اختلاف نظر داشته و با دو مقدار ۱۰۰ با هم, هم نظر هستند.
    همانطور که در مدل بالا هم مشاهده می شود برچسب هر فریم با استفاده از ویژگی های استخراج شده و از طریق توابع پتانسیل بدست می آید. شایان ذکر است که در این مرحله از پروژه فرض دیگری استفاده شده است و آن اینکه نیازی به بدست آوردن برچسب های هر فریم نیست و برچسب هر فریم در مرحله آموزش از طریق مجموعه دادگان داده شده و همان برچسب کلی ویدئو است.
    برای محاسبه تابع پتانسیل یک فرض ساده کننده استفاده از تابع توزیع نرمال است که رابطه آن به شکل زیر است :
    تابع توزیع نرمال

    رابطه مورد استفاده در این مرحله تابع توزیع دوتاشونده 32 است که اندکی از رابطه بالا پیچیده تر است چرا که همبستگی بین ویژگی ها نیز در نظر گرفته شده است:
    توضیح تصویر

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

توضیح تصویر

کد محاسبه کننده این مقادیر از لینک زیر قابل دسترسی است :
http://upload7.ir/preview.php?user=&file=c9c4a0305ffde35e6b68c6f4e1b01be4e1319e96
برای محاسبه Z در فرمول احتمال نهایی از جمع حاصلضرب توابع پتانسیل استفاده می‌شود

پس مثلا برای میانگین گیری برای هر ویدئومانند راه رفتن, بردارهای ویژگی, از همه فریم های همه ی ویدئو های مربوط به راه رفتن با هم میانگین گرفته می شود.هنگامی که داده جدید برای برچسب گذاری به سیستم داده می‌شود بردار ویژگی هر فریم از آن استخراج می‌شود و به جای x در رابطه بالا قرار میگیرد.سپس مقدار توابع پتانسیل با بردار ویژگی استخراج شده از ویدئو مدنظر, به ازای مقادیر مختلف mu و ماتریس کوواریانس که نماینده کنش های مختلف هستند محاسبه می شود.در مرحله نهایی مقدار احتمال به ازای این مقادیر مختلف بدست می آید.‌بیشترین مقدار احتمال به ازای این مقادیر مختلف میانگین ,کوواریانس و توابع پتانسیل نشانگر کنش تشخیص داده شده است.
بنابراین به طور خلاصه برای پیاده سازی با استفاده از مدل مطرح شده ابتدا فریم بندی برای هر ویدئو انجام شده, با استفاده از STIP ویژگی ها استخراج شده,با استفاده از این مقادیر و تابع توزیع Bivariate مقادیر پتانسیل و در نهایت احتمال محاسبه می شود.

//توضیح آنکه تمامی کد ها توسط بنده نوشته شده است.همچنین امکان آپلود عکس ها در سایت وجود نداشت!!

۴. کارهای آینده

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

۵. مراجع

[1] Laptev, Ivan. "On space-time interest points." International Journal of Computer Vision 64.2-3 (2005): 107-123. لینک
[2] Laptev, Ivan, et al. "Learning realistic human actions from movies." Computer Vision and Pattern Recognition, 2008. CVPR 2008. IEEE Conference on. IEEE, 2008. لینک
[3] Marszalek, Marcin, Ivan Laptev, and Cordelia Schmid. "Actions in context." Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on. IEEE, 2009. لینک
[4] Ghazvininejad Marjan, Rabiee Hamid R., Pourdamghani Nima, Khanipour Parisa. "HMM Based Semi-Supervised Learning for Activity Recognition.
[5] Schuldt Christian, Laptev Ivan, Caputo Barbara , "Recognizing Human Actions: A Local SVM Approach"
[6] Aggarwal, J.K. Ryoo, M.S., "Human activity analysis", 2011,ACM Computing Surveys,2011
[7] Jhuang Hueihan, Zuffi Silvia ,Schmid Cordelia, Black, Michael J, "Towards understanding action recognition", 2013, ICCV, 2013
[8] Liu Jingen, Kuipers Benjamin, Savarese Silvio, "Recognizing Human Actions by Attributes"
[9] Maji Subhransu, Bourdev Lubomir, Malik Jitendra, "Action Recognition from a Distributed Representation of Pose and Appearance"
[10] Planck Max, Dhillon Paramveer S, Nowozin Sebastian, Lampert Christoph H, "Combining Appearance and Motion for Human Action Classification in Videos", 2008
[11] Weinland Daniel,Ronfard Remi,Boyer Edmond, "A Survey of Vision-Based Methods for Action Representation , Segmentation and Recognition", 2010
[12] L. R. Rabiner. A tutorial on hidden markov models and selected applications in speech recognition. In Proc. of the
IEEE, volume 77, pages 257–286, 2002.
[13] A. Kapoor and R. Picard. A real-time head nod and shake detector. In Proceedings from the Workshop on Perspective
User Interfaces, November 2001.
[14] A. McCallum, D. Freitag, and F. Pereira. Maximum entropymarkov models for information extraction and segmentation.
In ICML, 2000.
[15] J. Lafferty, A. McCallum, and F. Pereira. Conditional random fields: probabilistic models for segmenting and la-
belling sequence data. In ICML, 2001.
[16] C. Sminchisescu, A. Kanaujia, Z. Li, and D. Metaxas. Conditional models for contextual human motion recognition. In
Int’l Conf. on Computer Vision, 2005.
[17] A. Quattoni, M. Collins, and T. Darrell. Conditional random fields for object recognition. In NIPS, 2004.
[18] M. Brand, N. Oliver, and A. Pentland. Coupled HiddedMarkov models for complex action recognition. In CVPR, 1996
[19] D. Ramanan and D. Forsyth. Automatic annotation of everyday movements. In NIPS, 2003.

۶. پیوندهای مفید


  1. Action

  2. Activity Recognition

  3. Behavior Recognition

  4. physical activity recognition

  5. optical flow

  6. Kalman filtering

  7. Hidden Markov

  8. Depth Camera

  9. Real Time

  10. Different Scaling

  11. Occulusion

  12. Human Variation

  13. Action Variation

  14. logic and reasoning

  15. probabilistic reasoning

  16. Image Segmentation

  17. Parameter Learning

  18. Inference

  19. Gesture

  20. Generative

  21. Discriminative

  22. Sequence Labling

  23. MEMM

  24. Information Extraction

  25. Segmentation

  26. Conditional Random Field

  27. Computer Vision

  28. Different Timesteps

  29. Normal Walk & Wander Walk

  30. Spatial Dependencies

  31. Dataset

  32. Bivariate

یاسر سوری

پیاده سازی شما در دو لینکی که داده بودید انتظارات را برآورده نکرد. لینک اولی که متأسفانه کار نکرد و لینک دوم نیز مشخص نیست که چه کاری را انجام می‌دهد و خیلی شبیه به کد یکی دیگر از دانشجوهاست! شاید اشتباهی رخ داده است.

ضمناً ۲ عدد فایل به عنوان پیاده سازی قابل قبول نیست. لازم است که فایلی به عنوان README وجود داشته باشد که توضیحات درون آن باشد که چگونه اجرا کنیم و ...
ضمنا لازم است کد در سایت github قرار داده شود. در این موارد می‌توانید از حل‌تمرین اصلی درس پرس و جو کنید.

نکته دیگر اینکه گزارش شما از نظر نگارشی بسیار ضعیف است که جا دارد زمان بیشتری روی آن بگذارید.

نتایجی هم که حاصل پیاده سازی خودتان باشد مشاهده نشد!