دسته‌بندی کنش در ویدئو

تغییرات پروژه از تاریخ 1393/09/15 تا تاریخ 1393/10/13
در دسته‌بندی کنش[^Action] در ویدئو هدف تشخیص وجود یا عدم وجود یک کنش خاص در ویدئو است. کاربردهای بسیار زیادی برای این مسئله می‌توان در نظر گرفت. موارد ساده‌ای از این کنش‌ها را می‌توانید در تصویر زیر مشاهده کنید:

![simple actions](http://www.nada.kth.se/cvap/actions/actions.gif)

# مقدمه
مبحث تشخیص و بازشناسی کنش[^Activity Recognition] یکی از پرکاربردترین مباحث در زمینه هوش مصنوعی است. از جمله کاربردهای آن می توان به مبحث بازشناسی رفتار [^Behavior Recognition]اشاره نمود.
هدف در بازشناسی کنش این است که با مشاهده ی یک سری اعمال عامل و شرایط محیط تشخیص دهیم که عامل چه کاری را انجام می دهد، مثلا در حال دویدن ، راه رفتن و یا آشپزی است. این مبحث به دلیل کمکی که می تواند در زمینه های روانشناسی و جامعه شناسی، پزشکی و ارتباط بین انسان و رایانه کند از دهه 1980 توجه بسیاری را به خود جلب کرده است.
برای درک بهتر از کاربرد بازشناسی کنش به مثال زیر توجه کنید:
مرد مسنی را در نظر بگیرید که به تنهایی زندگی می کند . او صبح از خواب بیدار شده ، اجاق خود را برای درست کردن چای روشن کرده، تستر را نیز روشن کرده و مقداری نان هم از  قفسه بر میدارد. پس از اینکه داروی صبحگاهی خود را مصرف کرد یک سیستم هوشمند به او یادآور می شود که اجاق را خاموش کند. شب همان روز دختر او از طریق یک سایت امن (که هر کسی نتواند به آن دسترسی داشته باشد) یک لیست چک را  که توسط یک شبکه هوشمند در آپارتمان پدرش ایجاد شده است یررسی می کند تا متوجه شود که پدرش غذایش را به خوبی می خورد، داروهایش را به موقع مصرف می کند و مشکلی ندارد. 
**	انواع بازشناسی کنش** :
1.	بر مبنای سنسور،تک کاربره
مثالی برای این مورد می تواند گوشی های هوشمند و سنسورهای موجود در آن ها باشند که می توانند مثلا تعداد گام های روزانه او را اندازه گیری کرده و بازشناسی کنش فیزیکی [^physical activity recognition] انجام داده تا به تخمین انرژی مصرفی روزانه او بپردازد.
2.	بر مبنای سنسور، چند کاربره
در این بخش از مجموعه از سنسور ها برای بازشناسی کنش چند نفر استفاده می شود.
3. بر مبنای سنسور بازشناسی کنش گروهی
بازشناسی کنش در این مورد با دو مورد قبل تفاوت دارد، از این منظر که به کنش از دید گروه به عنوان کل افراد نگاه می کند که به مراتب از موارد قبلی سخت تر است، چرا که علاوه بر پیچیدگی دو مورد قبلی باید به عواملی مانند ارتباط و کنش بین افراد در همکاری با هم نیز توجه شود.
4. 	بر مبنای تصویر
در این مورد بررسی کنش و رفتار عامل با استفاده از ویدئو هایی که توسط دوربینهای مختلف ضبط می شوند انجام می شود. در این زمینه تحقیقات گسترده ای با استفاده از متودهایی همچون جریان نوری[^optical flow]،فیلترینگ کالمن[^Kalman filtering]،مدل مخفی مارکف[^ Hidden Markov] انجام شده است. تحقیقات اخیر از دوربین های RGBD مانند Kinect مایکروسافت برای ردیابی کنش های انسان استفاده کرده اند. 
دوربین های دو بعدی در شناسایی عمق عاجز بودند حال آنکه این مهم با استفاده از دوربین های عمق [^Depth Camera]انجام شده است. اطلاعات سنسوری دریافتی از این دوربین ها برای بازسازی زمان واقع[^Real Time] از اسکلت بدن انسان در حالات مختلف استفاده می شود. این داده های اسکلت اطلاعات مهمی را در اختیار محققان قرار می دهد و به آن ها در بازشناسی کنش های نا آشنا در آینده کمک می کند.
این پروژه نیز شامل دریافت اطلاعات از ویدئو و بازشناسی کنش از طریق آن است.
  در پردازش ویدئو علاوه بر مشکلات قدیمی پردازش تصویر ،مشکلات دیگری نیز وجود دارد که در ذیل به اختصار چند مورد از آن ها بیان شده است :
	  1. مقیاس متفاوت [^ Different Scaling] : افراد مختلف امکان دارد در ویدئو های مختلف دارای مقیاس های متفاوتی باشند حال آنکه کار یکسانی را انجام می دهند.
	  2. حرکت دوربین : امکان دارد دوربین فیلم برداری دوربین دستی همراه با لرزش باشد و یا دوربینی که بر روی پایه ی متحرک نصب شده است.
	  3. حرکت با دوربین : این امکان نیز وجود دارد که عامل مورد مطالعه در حال انجام عملی مانند اسکیت کردن باشد و در نتیجه همراه با دوربین و با سرعت یکسان با دوربین حرکت کند.
	  4. گرفتگی[^ Occulusion] در این حالت ممکن است عمل انجام شده به خوبی قابل تشخیص نباشد . به شکل زیر توجه کنید :
	  ![توضیح تصویر](http://upload7.ir/imgs/2014-10/85600732779800794069.png)
	  5. در هم ریختگی پس زمینه [^Background Clutter ]: حاصل از بقیه اشیاء و یا انسان های موجود در ویدئو
	  6. انسان ها در اندازه ها و شکل های مختلفی هستند [^Human Variation]
	  7. انسان ها ممکن است عمل یکسانی را به اشکال مختلفی انجام دهند . [^Action Variation]
**روش های بازشناسی کنش :**
چهار مورد از روش های بازشناسی در ذیل آمده است.  روش استدلال احتمالی که در این پروژه استفاده می شود توضیح بیشتری داده شده است :
1.	از طریق منطق و استدلال[^logic and reasoning]
2.	باز شناسی کنش مبتنی بر wif
3.	بازشناسی کنش مبتنی بر داده کاوی
4.	از طریق استدلال احتمالاتی[^probabilistic reasoning]
مدل گرافیکی یک مدل احتمالاتی است که وابستگی های شرطی بین متغیر های تصادفی در آن توسط گراف نمایش داده می شوند. مدل های گرافیکی یک چهارچوب منعطف برای مدلسازی مسائلی با تعداد زیاد متغیر و ارتباطات پیچیده بین آن ها فراهم می سازد. از جمله این مدل ها می توان به مدل مخفی مارکف و بیزین اشاره کرد.آقایان چارنیاک و گلدمن در سال  نیز1993 در مقاله ای بیان کردند مدلی که شامل تئوری عدم قطعیت نباشد نمی تواند کامل باشد.
نمونه های ساده ای از مدل های گرافیکی را همانند آنچه در شکل زیر آمده است ، تا به حال زیاد دیده ایم :
![توضیح تصویر](http://mypage.uniserve.com/~zhzhou/MyPapers/BeliefNet/WetGrass.gif)
نمونه هایی از مدل های گرافیکی مسائل واقعی را در شکل زیر مشاهده می کنید :
![  ](http://img.my.csdn.net/uploads/201302/24/1361672124_1304.jpg)
شکل سمت چپ مربوط به مدل گرافیکی بیزین CPCS ،طراحی شده در دانشگاه استنفورد در تشخیص پزشکی بیماری داخلی با 480 گره و بیش از 900 یال است. شکل سمت راست نیز  مثالی واقعی از مدل مارکف استفاده شده در بخش بندی تصویر [^Image Segmentation] است.
امروزه مدل های گرافیکی احتمالاتی از مهم ترین ابزار های مدلسازی و حل مسائل هوش مصنوعی هستند.
[برای اطلاعات بیشتر می توانید به درس PGM(Probabilistic Graphical Models) دانشگاه استنفورد مراجعه کنید]
در این پروژه نیز با کمک مدل های گرافیکی احتمالاتی به مدلسازی و بازشناسی کنش انجام شده توسط عامل هوشمند پرداخته می شود.

# کارهای مرتبط
در این پروژه به کمک مدل های گرافیکی احتمالاتی باید ابتدا مساله مدل شده، کار آموزش پارامتر ها [^Parameter Learning] انجام شده و در نهایت استنتاج [^Inference]انجام شود. در مدل پیشنهادی باید  پارامتر های مورد نظر از میان زنجیره فریم ها استخراج می شوندتا در نهایت عمل انجام شده از آن ها استنتاج شوند.
کارهای کمابیش زیادی در این حوزه انجام شده است که به چند مورد از آن ها اشاره می شود .در حوزه اشارات و حرکات [^Gesture] مدل های تولیدی [^Generative]  مانند مدل مخفی مارکف برای حالات بازو استفاده شده است [12].همچنین Kapoor  و Picard مدل مبتنی بر HMM ,  به صورت زمان واقع برای ردیابی حرکات سر ارائه داده اند[13]. همچنین در [18] بر اساس مشاهدات دو بعدی 2D و مدل HMM  به مدلسازی حرکت انسان پرداخته است.
در [`19]بر اساس مشاهدات سه بعدی 3D مدلسازی حرکت انسان انجام شده است.
جدای مدلهای تولیدی، مدل های تمایزی [^Discriminative] نیز برای حل مساله برچسب گذاری توالی [^Sequence Labling] استفاده می شود. مثلا در [14] از مدل ماکزیمم آنتروپی مارکف [^MEMM]برای استخراج اطلاعات[^Information Extraction] و قطعه بندی [^Segmentation]استفاده شده است.مزیت استفاده از مدل MEMM این است که میتواند مساله همپوشانی  جزئیاتی که در زنجیره مشاهده وجود دارند را مدل کند. تفاوت بین این مدل ها در آن است که در مدلهای Generative  مقدار احتمال توام  محاسبه میشود اما در مدلهای Descriminative  مقدار احتمال شرطی به شرط داشتن داده  حساب می شود.
مدلهای میدان تصادفی شرطی[^Conditional Random Field ] اولین بار توسط [Lafferty et al.  [15 معرفی شد. اخیرا استفاده از این مدل ها در بینایی ماشین[^Computer Vision] نیز زیاد شده است. برای مثال[ Sminchisescu  [16 از این مدل برای دسته بندی فعالیت های حرکتی مانند راه رفتن،پریدن و ... استفاده کرده است. مدل معرفی شده در این مقاله میتواند علاوه بر مساله همپوشانی  جزئیاتی که در زنجیره مشاهده است ،وابستگی هایی که بین مشاهدات در بازه های زمانی مختلف[^Different Timesteps] نیز وجود دارد را مدل کند .مدل CRF  مورد استفاده آن ها در این مقاله همچنین توانایی تمیز دادن بین راه رفتن معمولی و پرسه زدن[^Normal Walk & Wander Walk] را دارد.
مدل های مخفی CRF  نیز توسط [Quattoni  [17 در بازشناسی شی برای مدل کردن وابستگی های فاصله ای [^Spatial Dependencies] در تصاویر Unsegmented Cluttered استفاده شده است.



# آزمایش‌ها

# کارهای آینده# گزارش نتایج آزمایش

همانطور که در مراحل قبل نیز توضیح داده شد روش پایه مورد استفاده روش مدلهای گرافیکی است.در این مرحله از مقاله  به ترتیب کارهای زیر انجام شده است :
۱. استخراج ویژگی ها با استفاده از STIP : یکی از روشهای استخراج ویژگی ها روش STIP است که در آن با استفاده از هسیتوگرام های HOG , HOF  ویژگی های مد نظر بدست می آیند.مزیت استفاده از این روش توجه به زمان در کنار بعد مکان است و بنابراین برای کاربرد هایی مانند ویدئو به خوبی قابل استفاده است.
 شکل زیر یک فریم از فریم ویدئوی دویدن با استفاده از STIP  را نشان می دهد :
![توضیح تصویر](http://upload7.ir/uploads//69020e870c5f9bfc2a69050938cba53a51631436.jpg)
خروجی بالا از دستور زیر ایجاد شده است :
./bin/stipdet -i ./data/video-list.txt -vpath ./data/ -o ./data/walk-samples-stip.txt -det harris3d
که در آن به ترتیب اسامی وید‌ئو ها , آدرس دسترسی به دادگان, و خروجی و در نهایت روش مورد استفاده برای به دست آوردن Interest Point  داده می شود.
۱.۱ مجموعه دادگان [^Dataset] : در این مرحله از داده های  تهیه شده در [1]استفاده شده است.این مجموعه دادگان شامل ۶ کنشِ راه رفتن ,دویدن , آهسته دویدن , تکان دادن دست,مشت زدن و دست تکان دادن  است که در ۴ سناریوی محیط بیرون, محیط بیرون با تغییر در مقیاس, محیط بیرون با لباس مختلف و محیط داخلی خانه و توسط ۲۵ نفر تهیه شده است(شکل ابتدای صفحه) که در این مرحله از ۴ کنش اول استفاده است.نرخ ویدئو در آنها ۲۵ فریم در ثانیه است که به طور میانگین ۴ ثانیه طول فیلمِ هر بخش است.تعداد کل دادگان در حالت ۶ کنش به ۲۳۹۱ عدد میرسد.در این مرحله آموزش با ۶ نفرو آزمایش با ۶ نفر دیگر انجام شده است.
مجموعه دادگان مورد استفاده در این مرحله از لینک زیر قابل دریافت است :
http://www.nada.kth.se/cvap/actions/
۲.به طور کلی در هر مساله که از مدل های گرافیکی استفاده کرده است, مدلی از مساله ایجاد می شود تا از آن برای استنتاج نهایی که همان استخراج مقدار احتمال است استفاده شود.یک مدل ساده شده برای مساله می تواند مدل زیر باشد :
![توضیح تصویر](http://upload7.ir/uploads//83580dc927b4e218b96f1c93aae2079c31f58953.jpg)
 در این پروژه از مدل بالا که مثالی از مدل گرافیکی 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 )مانند زیر تعریف می شود:
![توضیح تصویر](http://upload7.ir/uploads//0b1fbe65ce22bd06b0e4ae4e65856227a38ceeea.png)
که در آن B , C با دو مقدار ۱ با هم اختلاف نظر داشته  و با دو مقدار ۱۰۰ با هم, هم نظر هستند.
 همانطور که در مدل بالا هم مشاهده می شود برچسب هر فریم با استفاده از  ویژگی های استخراج شده و از طریق توابع پتانسیل بدست می آید. شایان ذکر است که در این مرحله از پروژه فرض دیگری استفاده شده است و آن اینکه نیازی به بدست آوردن برچسب های هر فریم نیست و برچسب هر فریم در مرحله آموزش از طریق مجموعه دادگان داده شده و همان برچسب کلی ویدئو است.
برای محاسبه تابع پتانسیل یک فرض ساده کننده استفاده از تابع توزیع نرمال است که رابطه آن به شکل زیر است :
![تابع توزیع نرمال](https://boute.s3.amazonaws.com/125-73ad15f79b11af99bd2477ff3ffc5a35.png)
رابطه مورد استفاده در این مرحله تابع توزیع دوتاشونده [^Bivariate] است که اندکی از رابطه بالا پیچیده تر است چرا که همبستگی بین ویژگی ها نیز در نظر گرفته شده است:
![توضیح تصویر](http://upload7.ir/uploads//2fb9058fc962762743bd7e4343326468b4b60745.jpg)

بنابراین برای استفاده از رابطه بالا نیاز به محاسبه میانگین و ماتریس کوواریانس است.ماتریس کواریانس که طبق شکل زیر محاسبه می شود بیانگر میزان وابستگی ویژگی ها به یکدیگر است .
![توضیح تصویر](http://upload7.ir/uploads//e499512a72229422c1d8f210d548cadcdbf4d860.png)
کد محاسبه کننده این مقادیر  از لینک زیر قابل دسترسی است :
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. [لینک](ftp://ftp.nada.kth.se/CVAP/users/laptev/iccv03.pdf)
[2] Laptev, Ivan, et al. "Learning realistic human actions from movies." Computer Vision and Pattern Recognition, 2008. CVPR 2008. IEEE Conference on. IEEE, 2008. [لینک](http://www.irisa.fr/vista/Papers/2008_cvpr_laptev.pdf)
[3] Marszalek, Marcin, Ivan Laptev, and Cordelia Schmid. "Actions in context." Computer Vision and Pattern Recognition, 2009. CVPR 2009. IEEE Conference on. IEEE, 2009. [لینک](http://www.irisa.fr/vista/Papers/2009_cvpr_marszalek.pdf)
[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.






# پیوندهای مفید
+ [Dataset: KTH](http://www.nada.kth.se/cvap/actions/)
+ [Dataset: Hollywood1 - 2](http://www.di.ens.fr/~laptev/download.html)