دسته‌بندی کنش‎های انسان بر اساس مکان مفاصل

تغییرات پروژه از تاریخ 1393/08/17 تا تاریخ 1393/09/15
هر اقدام یا کنش یک انسان با استفاده از حرکت دادن مفصل‌هایش انجام می‌گیرد. بنابراین بین انجام یک کنش و نحوه حرکات مفصل‌ها رابطه وجود دارد. هدف از این پروژه تشخیص کنش‌های انسان با استفاده از مسیر حرکت سه‌بعدی مفصل‌ها است. به عبارت دیگر با داشتن اطلاعات مکان مفصل‌های یک فرد در یک بازه زمانی، کنشی که این فرد انجام داده است باید تشخیص داده شود.

# مقدمه
تشخیص کنش‌های انسان یکی از بخش‌های مهم در بینایی ماشین است و بسیاری از سامانه‌های مختلف (مانند سامانه خلاصه سازی ویدئو، تشخیص خودکار حرکات ورزشی، نظارت خودکار در مکان‌های عمومی، تعامل انسان با کامپیوتر بدون استفاده از صفحه کلید و موشواره و ... ) نیاز به تشخیص کنش انسان دارند. بعضی از سامانه‌ها کنش‌های جدیدی برای خود تعریف می‌کنند مثلا در بسیاری از برنامه‌های ارتباط با کامپیوتر یک حرکت خاص با دست، چشم یا سر باعث عملکرد خاصی در برنامه می‌شود. در مقابل این گروه سامانه‌های دیگری هستند که حرکات طبیعی انسان را شناسایی و تحلیل می‌کنند مثلا سامانه نظارت خودکار، نیاز به فهمیدن کنش‌های طبیعی انسان مانند دویدن، توقف، راه رفتن و .. دارد. 
یک راه حل برای تشخیص کنش، استفاده از پردازش تصاویر دو بعدی در ویدئو است [9][7][6][4]. اما با پیشرفت فناوری بسیاری از ابزارهای اندازه‌گیری عمق در دسترس قرار گرفتند (مانند کینکت[^kinect]) و همچنین استفاده از چند دوربین نیز ممکن شد. روش دیگر استفاده از این اطلاعات سه بعدی برای تشخیص کنش است [17][10][8][5][1]. برای محاسبه اطلاعات سه بعدی می‌توان اطلاعات عمق را به صورت مستقیم اندازه‌گیری کرد [5] یا با استفاده از چند دوربین این اطلاعات را به دست آورد.
قسمت اول تشخیص کنش‌های انسان پیدا کردن قسمت‌های مختلف بدن انسان و ردیابی آنها در اطلاعات و ویدئو‌های ورودی است که در این پروژه فرض شده این قسمت انجام شده است. این کار یا با استفاده از چند دوربین و  محاسبه ارتباط بین آنها یا با استفاده از حسگرهای اندازه گیری مکان یا با هر روش دیگری ممکن است انجام شده باشد. حتی اگر این اطلاعات به صورت کاملا دقیق محاسبه شوند هنوز تشخیص کنش‌های انسان پیچیده و دشواره خواهد بود. یکی از دلایل آن ابعاد زیاد اطلاعات بدست آمده است که باعث افزایش محاسبات و خطا در تشخیص کنش می‌شود.
ورودی این پروژه  اطلاعات محاسبه شده سه‌بعدی مکان مفصل‌های یک انسان در یک بازه زمانی هستند و با استفاده از این اطلاعات، کنش مرتبط تشخیص داده خواهد شد. کنش‌های مورد نظر، کنش‌های طبیعی انسان مانند راه رفتن، نشستن، دویدن و ... هستند.


# کارهای مرتبط
اگر کلاسه‌بندی مثل SVM و Bayesian Networks فقط با مکان مفاصل بدن کنش‌ها را تشخیص دهد، نمی‌تواند به خوبی عمل کند. زیرا کنش‌های متفاوتی هستند که این الگو برای آنها یکسان است. Fengjun  برای یادگیری کنش‌ها، یک مدل جدید ارائه می‌دهد و در ادامه برای پیدا کردن یک کنش جدید، آن را با مدل‌های قبلی مقایسه می‌کند. در مدل آنها برای اندازه‌گیری فاصله ابتدا برای هر مفصل فاصله تا مدل محاسبه می‌شود و سپس مجموع وزن‌دار فاصله‌های اندازه‌گیری شده به عنوان فاصله‌ی نهایی در نظر گرفته می‌شود. در نهایت مدل با کمترین فاصله به عنوان نتیجه نهایی اعلام می‌شود [1]رده‌بندی مثل SVM و شبکه بیز [^Bayesian Networks] فقط با مکان مفاصل بدن کنش‌ها را تشخیص دهد، نمی‌تواند به خوبی عمل کند. زیرا کنش‌های متفاوتی هستند که این الگو برای آنها یکسان است. فنگجان  [1]  برای یادگیری کنش‌ها، یک مدل فضایی زمانی [^spatiotemporal] جدید ارائه می‌دهد و در ادامه برای پیدا کردن یک کنش جدید، آن را با مدل‌های قبلی مقایسه می‌کند. در مدل آنها برای اندازه‌گیری فاصله ابتدا برای هر مفصل فاصله تا مدل محاسبه می‌شود و سپس مجموع وزن‌دار فاصله‌های اندازه‌گیری شده به عنوان فاصله‌ی نهایی در نظر گرفته می‌شود. در نهایت مدل با کمترین فاصله به عنوان نتیجه نهایی اعلام می‌شود.
ایلماز [20] روشی برای استفاده از حجم تصویر یک شی در طول زمان   [^spatio temporal volumes]   (STV) برای تشخیص کنش‌های مختلف ارائه کرده‌  است. تصویر یک شی را در نظر بگیرید. این تصویر در طول زمان به صورت یک حجم است. آنها ویژگی‌های مختلف هندسی از STV‌‌‌‌ استخراج کردند. در اینجا مسئله رده‌بندی کنش به مسئله پیدا کردن یک شی سه بعدی صلب [^rigid] تبدیل می‌شود. برای تعیین شباهت بین دو شی، که از دو کنش استخراج شده‌اند، دوران و انتقالی را پیدا می‌کنند که فاصله اقلیدسی بین دو شی را حداقل کند.
![شکل 1- تصویر کنش‌های حرکت پروانه، راه رفتن و دویدن در طول زمان[22]](http://s6.uplod.ir/i/00475/4cc65gbdwly1.png)
گورلیک  هم از حجم تصویر شی در طول زمان استفاه کرده است[22]. چند نمونه از STV در شکل بالا نشان داده شده است. دراین روش پس زمینه حذف شده است و سپس حبابهای[^blob] استخراج شده برای تشکیل حجم شی بر روی هم قرار گرفته‌اند. برای هر کنش دو نوع ویژگی محلی [^local]  و کلی [^global] در نظر می‌گیرند. حل معادله پواسون [^Solution to the Poisson equation] را برای استخراج ویژگی‌های محلی به کار می‌برند. برای استخراج ویژگی کلی STV از ممان وزن‌دار ،که از رابطه 1 محاسبه می‌شود، استفاده می‌کنند. در این رابطه x,y,t نشان‌دهنده مکان،‌w یک تابع وزن و g اندازه تصویر را نشان می‌دهند. در نهایت  این ویژگی‌ها را برای رده‌بندی کنش‌ها به کار می‌برند. 
رابطه 1)                        $$m_{pqr}=\int_{-\infty}^{\infty}{\int_{-\infty}^{\infty}{\int_{-\infty}^{\infty}{w(x,y,t) g(x,y,t) x^p y^q t^r dxdydt}}}$$

در روشی که چیا ارائه کرده است [5] ابتدا برای حذف خطا  از فیلتر گوسی [^Gussian]  در حوضه مکان استفاده کرده است. سپس برای استخراج نقاط ویژگی[^Feature point] فیلتر گابور [^Gabor] را در حوضه زمان به کار برده است. الگوریتم ارائه شده توسط آنها نقاط ویژگی وابسته به مکان و زمان [^Space Time Interest Point (STIP)] را استخراج می‌کند و یک مدل محلی سه بعدی می‌سازد.
لی از شار نوری [^Optical flow] به عنوان ویژگی استفاده کرده است[21]. آنها شار نوری را از قسمت‌های مختلف تصویر در فضای رنگی rgb استخراج کرده‌اند.  لی همچنین برای کاهش ابعاد PCA را به کار برده و پس از آن برای نشان دادن هر کنش در هر دید از مدل مخفی مارکف [^Hidden Markov Model] کمک گرفته است.
![محیط سیاه‌نمای استخراج شده و سیگنال ویژگی یک بعدی [19]](http://s1.freeupload.ir/i/00052/iu4urfbz52nk.png)
در روشی که ونگ ارائه کرده است [19] برای تشخیص کنش‌ها ابتدا سیاه‌نمای [^Silhouette] تصویر استخراج می‌شود. سپس محیط سیاه‌نمای استخراج شده با فاصله‌های ثابت نمونه برداری می‌شود. درادامه فاصله این نقاط تا مرکز ثقل [^center of gravity]‌ شی به عنوان ویژگی‌ها محاسبه می‌شوند. این ویژگی برای مستقل بودن از بزرگنمایی نسبت به اندازه و تعداد نرمال‌سازی می‌شوند. مطابق شکل بالا ویژگی‌های استخراج شده یک سیگنال یک بعدی را تشکیل می‌دهند. تعداد این نقاط زیاد هست و اطلاعات آنها همپوشانی دارد بنابراین از PCA برای کاهش این نقاط استفاده‌ می‌کنند. در اینجا برای رده‌بندی کنش‌ها از روش نزدیکترین همسایه[^Nearest neighbor]  استفاده شده است.  آنها مجموع فاصله اقلیدسی نقاط ویژگی متناظر را به عنوان معیار فاصله به کار برده‌اند. همچنین معیار فاصله دیگری که بررسی کرده‌اند فاصله اقلیدسی نرمال شده است.
شلاپا [8]یک مدل مستقل از دید[^view] برای شناسایی کنش‌ها طراحی کرده است. در مدل آنها هر کنش یک دنباله از مکان‌های بدن هست. در اینجا فرض شده است که مسیر حرکت یکی از نقاط کلیدی بدن در یک صفحه در فضای سه بعدی هست. مثلا در کنش راه رفتن محل سر، شانه‌ها و پا در یک تناوب در یک صفحه قرار دارند. آنها با این فرض یک ویژگی مستقل از دید ارائه داده‌اند.
![گراف وزن‌دار مدل کننده یک کنش](http://s1.freeupload.ir/i/00052/09y5yqskpnmf.png)
برندل[6]  مدلی را ارائه داده‌است که می‌تواند کنش‌های یک ویدئو را تشخیص دهد. روش ارائه شده می‌تواند یک کنش را با استفاده از قطعه‌بندی‌کردن[^segmentation] یک ویدئو، به صورت یک گراف وزن‌‌دار مدل کند. آنها فرض کرده‌اند قسمت‌های مختلف در یک کنش دارای رابطه ثابتی هستند. آنها ابتدا ویدئو ورودی را قطعه‌بندی میکنند و سپس در مدل ساخته شده، هر بخش را با یک گره و رابطه بین بخش‌های مختلف را با یال‌ها نشان می‌دهد. یک نمونه از گراف ساخته شده در شکل بالا نشان داده شده است.
جمالی‌فر  [17]برای رده‌بندی کنش‌ها از مکان سه‌بعدی مفصل‌ها در یک بازه زمانی استفاده می‌کند. آنها ویژگی جدیدی برای تشخیص کنش‌ها ارائه داده‌اند. برای محاسبه ویژگی از پارامترهای مدل پویای فرآیند گوسی [^Gaussian process dynamical model] استفاده می‌کنند. در روش ارائه شده، با استفاده از پارامترهای به دست آمده توسط این مدل برای هر نمونه داده،‌ ویژگی‌های مناسب استخراج می‌شود و از این ویژگی‌ها برای رده‌بندی استفاده می‌کنند. آنها برای رده‌بندی کنش‌ها با استفاده از ویژگی جدید خود از رده‌بند SVM استفاده کرده‌اند. دلیل استفاده از این رده‌بند، بردن بردار ویژگی‌ها به فضاهای بالاتر است. همچنین روش KNN را برای این کار مناسب دانسته‌اند.

# آزمایش‌ها
 
# کارهای آینده

# مراجع
[1] Lv, Fengjun, Ramakant Nevatia, and Mun Wai Lee. "3D human action recognition sing spatio-temporal motion templates." In Computer Vision in Human-Computer Interaction, pp. 120-130., 2005
[2] Bulling, Andreas, Ulf Blanke, and Bernt Schiele. "A tutorial on human activity recognition using body-worn inertial sensors." In ACM Computing Surveys (CSUR) 46, 2014
 [3] Golparvar-Fard, Mani, Arsalan Heydarian, and Juan Carlos Niebles. "Vision-based action recognition of earthmoving equipment using spatio-temporal features and support vector machine classifiers." In Advanced Engineering Informatics 27,
 pp. 652-663, 2013
[4] Zhu, Yuke, Tian Lan, Yijian Yang, Steven N. Robinovitch, and Greg Mori. "Latent Spatio-temporal Models for Action Localization and Recognition in Nursing Home Surveillance Video." In IAPR Conference on Machine Vision Applications (MVA). 2013.
[5] Xia, Lu, and J. K. Aggarwal. "Spatio-temporal depth cuboid similarity feature for activity recognition using depth camera." In Computer Vision and Pattern Recognition (CVPR), IEEE Conference on, pp. 2834-2841, 2013.
[6] Brendel, William, and Sinisa Todorovic. "Learning spatiotemporal graphs of human activities." In Computer Vision (ICCV), IEEE International Conference on, pp. 778-785, 2011
[7] A. Oikonomopoulos, I. Patras and M. Pantic. “Spatiotemporal saliency for human action recognition.” In Proc. Of IEEE Int’l Conf. on Multimedia and Expo (ICME’05), 2005.
[8] V. Parameswaran and R. Chellappa. “View invariants for human action recognition.” In Proc. of CVPR, pp. 613-619, 2003.
 [9] A. Shokoufandeh, S.J. Dickinson, C. Jonsson, L. Bretzner and T. “Lindeberg. On the representation and matching of qualitative shape at multiple scales.” In Proc. of ECCV, pp. 759-775, 2002.
[10] L. Campbell and A. Bobick. “Recognition of human body motion using phase space constraints.” In Proc. of ICCV, pp. 624-630, 1995.
 [11] C. Rao, A. Yilmaz and M. Shah. “View-Invariant Representation and Recognition of Actions.” In Int’l Journal of Computer Vision 50(2), Nov. 2002, pp. 203-226.
[12] D Weinland, R Ronfard, and E Boyer, "Free viewpoint action recognition using motion history volumes," In Computer Vision and Image Understanding, pp. 249-257, 2006.
 [13] J. K. Aggarwal and M. S. Ryoo, "Human activity analysis: A review," In ACM Computing Surveys, 2011.
 [14] J. Davis and A. Bobick. “The Representation and Recognition of Action Using Temporal Templates.” In Proc. Of CVPR, pp. 928-934, 1997.
 [15] Aaron F. Bobick and James W. Davis, "The recognition of human movement using temporal templates," In Pattern Analysis and Machine Intelligence, IEEE Transactions on, , pp. 257-267, 2001.
 [16] Weinland, Daniel, Remi Ronfard, and Edmond Boyer. "A survey of vision-based methods for action representation, segmentation and recognition." In Computer Vision and Image Understanding 115, pp. 224-241, 2011.
[17] Jamalifar, Hamed, Vahid Ghadakchi, and Shohreh Kasaei. "3D human action recognition using Gaussian processes dynamical models." In Telecommunications (IST), Sixth International Symposium on, pp. 1179-1183, 2012.
[18] Somasundaram, Guruprasad, Anoop Cherian, Vassilios Morellas, and Nikolaos Papanikolopoulos. "Action recognition using global spatio-temporal features derived from sparse representations." Computer Vision and Image Understanding, pp.1-13, 2014
[19] Wang, Liang, Tieniu Tan, Huazhong Ning, and Weiming Hu. "Silhouette analysis-based gait recognition for human identification." Pattern Analysis and Machine Intelligence, IEEE Transactions, pp. 1505-1518, 2003.
 [20] Yilmaz, Alper, and Mubarak Shah. "Actions sketch: A novel action representation." In Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference, pp. 984-989, 2005.
[21] Ahmad, Mohiuddin, and Seong-Whan Lee. "Human action recognition using multi-view image sequences." In Automatic Face and Gesture Recognition, 2006. FGR 2006. 7th International Conference, pp. 523-528, 2006.
[22] Gorelick, Lena, Moshe Blank, Eli Shechtman, Michal Irani, and Ronen Basri. "Actions as space-time shapes." Pattern Analysis and Machine Intelligence, IEEE Transactions, pp. 2247-2253, 2007.



# پیوندهای مفید
+ [CMU Graphics Lab Motion Capture Database](http://mocap.cs.cmu.edu/search.php?subjectnumber=%&motion=%)