تشخیص موقعیت بدن انسان، فناوری ای است که می تواند موقعیت اندام های مختلف بدن انسان را تعیین کند. چنین فناوری کاربردهای مختلفی دارد. از جمله ی این کاربردها می توان به یافتن حرکات نامتعارف، تشخیص سقوط و تشخیص درست انجام دادن حرکات ورزشی اشاره نمود. برخی از سیستم های امنیتی و نظارتی نیز به چنین فناوری مجهز هستند تا احتمال وقوع حادثه را پیش بینی کنند.
تشخیص موقعیت بدن چیست؟
تعیین موقعیت بدن انسان یک فناوری مبتنی بر بینایی ماشین است که می تواند وضعیت قرار گیری بدن انسان را تشخیص دهد. اجزای اصلی سیستم تشخیص موقعیت بدن انسان، مدل سازی بدن است. سه مدل برای بدن انسان وجود دارد:
مدل اسکلتی(Skeleton-based): که شامل مجموعه ای از مفاصل مانند زانوها، شانه، آرنج، مچ و جهت آن هاست که ساختار اسکلت بدن انسان را تشکیل می دهند. این مدل به دلیل انعطاف پذیری مناسب هم در سیستم های دو بعدی و هم سه بعدی کاربرد دارد.
مدل مبتنی بر شکل(Contour-based): در این مدل سازی، از شکل و پهنای تنه و اندام بدن استفاده می شود. بخش های مختلف بدن با استفاده از مستطیل های مختلف ترسیم می گردند.
مدل مبتنی بر حجم(Volume-based): در این روش از شکل های سه بعدی برای نشان دادن قسمت های مخالف بدن استفاده می شود تا حجم آن قسمت ها مشخص گردد.
در ادامه تصویر هر سه مدل را مشاهده می کنید.
درادامه درباره ی مدل اسکلتی صحبت می کنیم که می تواند از مدل های سه بعدی و دو بعدی بدست آید.
تخ مین دو بعدی وضعیت بدن، مختصات قرارگیری بدن انسان را در یک نمودار دو بعدی در راستای محور X و Y در نظر می گیرد. در یک نمودار سه بعدی نیز وضعیت بدن انسان در یک نمودار سه بعدی در راستای محورهای X، Y و Z مشخص می شود.
وقتی که می خواهیم، موقعیت بدن انسان را در برنامه های تناسب اندام محاسبه کنیم، بهتر است از تخمین سه بعدی استفاده کنیم. به این دلیل که این مدل ها موقعیت بدن انسان را در حین ورزش کردن با دقت بهتری نشان می دهند.
از فناوری تشخیص موقعیت بدن انسان در برنامه های ورزشی و تناسب اندام می توان برای موارد زیر استفاده کرد:
- مشخص کردن موقعیت بدن در حین ورزش کردن و انجام حرکات
- تحلیل درست انجام دادن حرکات
- نمایش خطاها به کاربر
سیستم تخمین سه بعدی حرکات بدن چگونه کار می کند؟
در ادامه تصویری از ساختار اسکلتی بدن انسان و نقاط مرتبط با آن مشخص شده است. این فرایند اصولا شامل استخراج مفصل های بدن انسان و تحلیل موقعیت بدن انسان با استفاده از الگوریتم های یادگیری عمیق است. اگر لازم باشد تخمین موقعیت بدن انسان در یک فیلم ویدئویی ضبط شده مشخص گردد، این کار در تمام فریم های ویدئو انجام می شود. در نتیجه موقعیت مفصل های بدن با دقت بهتری نسبت به حالتی که فقط از یک تصویر برای تخمین موقعیت استفاده می شود، انجام می شود.
روش های مختلفی برای تخمین موقعیت بدن انسان وجود دارند. اما یکی از روش های متداول استفاده از الگوریتم های یادگیری عمیق است. همچنین اگر بتوان موقعیت بدن انسان را از زاویه های مختلف توسط دوربین های مختلف رصد کرد، دقت بهتری بدست می آید. ولی چنین موقعیتی همیشه فراهم نیست همچنین پردازش تصاویر دریافتی از دوربین های مختلف به توان پردازشی بالایی نیاز دارد.
چگونه می توان از فناوری تشخیص موقعیت بدن انسان در برنامه های تناسب اندام استفاده کرد؟
تشخیص موقعیت بدن انسان، فناوری جدیدی است که کاربرد آن در برنامه های تناسب اندام نیز مورد توجه قرار گرفته است. در ادامه ساخت چنین سیستمی را بررسی می کنیم.
فرض کنید که هدف این سیستم، دریافت فایل ورودی و بررسی آن و همچنین مقایسه آن با فایلی است که یک ورزشکار حرفه ای آن حرکات را انجام می دهد. مراحل این کار به صورت زیر انجام می شود:
- برش ویدئوی ورودی بر اساس شروع و پایان ورزش: در هر برش از ویدئو، موقعیت بدن مشخص می شود و با مقدارهای مشخص کننده ی مرزی مقایسه می گردد. برای مثال در حرکت اسکوات می توان زاویه ی دست ها و موقعیت دست ها را با استفاده از مقدار ارتفاع مشخص کرد و در صورت فراتر رفتن حرکات از مقادیر مرزی، خطا بودن اشتباه مشخص می شود. البته می توان تعیین ابتدا و انتهای ورزش را به عهده ی کاربر گذاشت تا این قسمت به صورت دستی مشخص گردد.
- مشخص نمودن نقاط دو بعدی یا سه بعدی در بدن فرد: بعد از اینکه نقاط مشخص شدند، با نقاط موجود در ویدئوی اصلی مقایسه می شوند تا تفاوت ها مشخص گردد. البته نمی توان خیلی مقایسه ی دقیقی به دست آورد به دلیل اینکه در ویدئوها، سرعت انجام حرکات و همچنین تکرارشان متفاوت است.
- تجزیه ی مراحل تمرین: برای حل مسئله ی بالا در مقایسه ی ویدئوها می توان حرکات را به چند بخش تبدیل کرد. مثل حرکت اسکوات به دو بخش اسکوات به سمت پایین و بالا تقسیم می شود.
- جستجو برای یافتن خطا: بعد از اینکه مراحل بالا انجام شد، خطاها مشخص می شود. مثلا در حرکت اسکوات اگر زانوها به قسمت مرکز نزدیک شوند، نشان دهنده ی انجام اشتباه حرکت اسکوات است.
- مقایسه ی ویدئوی ورودی با ویدئوی اصلی: در هر دو ویدئو، باید انجام حرکات به بخش های مختلف تقسیم شود و سپس نقاط بدن در هر قسمت و در هر فریم مشخص گردد. این قسمت ها در هر دو ویدئو مقایسه می گردد.
تمامی این مراحل در گام های زیر انجام می شود:
- سرعت ویدئوی اصلی کم یا زیاد می شود تا سرعتش مطابق سرعت ویدئوی ورودی باشد.
- مدل اسکلتی هر دو ویدئو با هم منطبق می گردند تا زاویه ی چرخش آن ها با هم مطابقت داشته باشد.
- سایز اسکلت موقعیت بدن هر دو ویدئو باید با هم یکسان باشد. ویدئوی ورودی می تواند در هر فاصله ای ضبط شود.
- نقاط هر دو ویدئو در هر فریم مقایسه می شوند تا درست انجام ندادن حرکات مشخص شود.
- مقایسه برای تمام مفاصل انجام می شود. موقعیت دست ها، زانو، شانه و … مقایسه می گردد.
- در انتها نتایج نشان داده می شوند و پیشنهادهایی برای بهبود حرکات به کاربر داده می شود.