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

تخمین دوبعدی و سهبعدی موقعیت بدن چه تفاوتی دارند؟
در تخمین دوبعدی، مختصات اندامهای بدن روی یک نمودار با دو محور X و Y مشخص میشود،در تخمین سهبعدی، محور Z هم اضافه میشود و عمق هم در نظر گرفته میشود
در تخمین دوبعدی، مدل مختصات اندامهای بدن را روی دو محور X و Y مشخص میکند؛ اما در تخمین سهبعدی، مدل محور Z را نیز در نظر میگیرد تا عمق اندامها را محاسبه کند.
برای برنامههای تناسب اندام بهتر است از تخمین سهبعدی استفاده شود، چون موقعیت بدن را هنگام ورزش با دقت بیشتری نشان میدهد.
کاربرد تشخیص موقعیت بدن در برنامههای ورزشی و تناسب اندام چیست؟
- مشخص کردن موقعیت بدن هنگام ورزش و انجام حرکات
- تحلیل درست یا غلط بودن حرکات
- نمایش خطاها به کاربر و ارائهی پیشنهاد برای اصلاح
سیستم تخمین سهبعدی حرکات بدن چگونه کار میکند؟
این فرایند شامل استخراج مفاصل بدن و تحلیل موقعیت آنها با الگوریتمهای یادگیری عمیق است. اگر ورودی ویدئو باشد، این کار روی تکتک فریمها انجام میشود و در نتیجه موقعیت مفاصل با دقت بیشتری نسبت به تحلیل یک تصویر تکی به دست میآید.

روشهای مختلفی برای تخمین موقعیت بدن وجود دارد، اما استفاده از یادگیری عمیق رایجترین آنهاست. اگر بدن از زوایای مختلف با چند دوربین رصد شود، دقت بالاتر میرود. با این حال همیشه امکان نصب چند دوربین وجود ندارد و پردازش تصاویر چند دوربین هم به توان پردازشی بالایی نیاز دارد.
چگونه میتوان از تشخیص موقعیت بدن در برنامههای تناسب اندام استفاده کرد؟
فرض کنید هدف، ساخت سیستمی است که ویدئوی ورودی کاربر را بررسی کند و با ویدئوی یک ورزشکار حرفهای مقایسه کند. مراحل کار به این صورت است:
- برش ویدئو بر اساس شروع و پایان حرکت: در هر برش از ویدئو، موقعیت بدن مشخص و با مقادیر مرزی مقایسه میشود. برای مثال در اسکوات میتوان زاویهی زانو و لگن و ارتفاع لگن را بررسی کرد. اگر مقدار از حد مجاز فراتر رفت، حرکت بهعنوان خطا علامتگذاری میشود. تعیین ابتدا و انتهای حرکت را میتوان به کاربر هم سپرد تا دستی انتخاب کند.
- مشخص کردن نقاط دوبعدی یا سهبعدی بدن: بعد از استخراج نقاط، آنها با نقاط ویدئوی مرجع مقایسه میشوند تا تفاوتها مشخص شود. البته مقایسهی کاملاً دقیق ممکن نیست، چون سرعت و تعداد تکرار حرکات در ویدئوها متفاوت است.
- تجزیهی مراحل تمرین: برای حل مشکل بالا، حرکت به چند بخش تقسیم میشود. مثلاً اسکوات به دو بخش پایین رفتن و بالا آمدن تقسیم میشود.
- جستجوی خطا: بعد از تقسیمبندی، خطاها مشخص میشوند. برای مثال اگر در اسکوات زانوها به سمت داخل (به سمت مرکز بدن) متمایل شوند، حرکت اشتباه انجام شده است.
- مقایسهی ویدئوی ورودی با ویدئوی مرجع: هر دو ویدئو به بخشهای مختلف تقسیم میشوند و نقاط بدن در هر بخش و هر فریم مشخص و مقایسه میشود.

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

جمعبندی
تشخیص موقعیت بدن انسان فناوریای مبتنی بر بینایی ماشین است که با استخراج مفاصل بدن از تصویر یا ویدئو، وضعیت قرارگیری اندامها را مشخص میکند. از میان سه مدل اسکلتی، مبتنی بر شکل و مبتنی بر حجم، مدل اسکلتی به دلیل انعطافپذیری بیشتر و کاربرد در هر دو حالت دوبعدی و سهبعدی، رایجترین انتخاب است.
برای برنامههای ورزشی و تناسب اندام، تخمین سهبعدی دقت بهتری دارد و با کمک الگوریتمهای یادگیری عمیق میتوان حرکت کاربر را با ویدئوی یک ورزشکار حرفهای مقایسه کرد، خطاها را پیدا کرد و پیشنهادهایی برای اصلاح حرکت ارائه داد.
سوالات متداول
فناوریای مبتنی بر بینایی ماشین که موقعیت اندامها و مفاصل بدن را از روی تصویر یا ویدئو تشخیص میدهد.
تخمین سهبعدی، چون موقعیت بدن را هنگام ورزش با دقت بیشتری نشان میدهد.
خیر. با یک دوربین هم میتوان موقعیت بدن را تخمین زد. استفاده از چند دوربین دقت را بالا میبرد، اما پردازش سنگینتری میخواهد.
تحلیل حرکات ورزشی، تشخیص سقوط، شناسایی حرکات غیرعادی و سیستمهای امنیتی و نظارتی.

