Pose Estimation
تعرف على كيفية استخدام تقدير الوضع للنقاط الرئيسية لتتبع الحركة. استكشف تطبيقات العالم الحقيقي وابدأ باستخدام Ultralytics YOLO26 للحصول على نتائج سريعة ودقيقة.
تقدير الوضعية هو تقنية رؤية حاسوبية متخصصة تتجاوز مجرد الكشف عن وجود الكائنات إلى فهم هيكلها الهندسي واتجاهها المادي. بينما يرسم object detection القياسي صندوقاً مستطيلاً بسيطاً حول الموضوع، يحدد تقدير الوضعية نقاطاً دلالية محددة، تعرف باسم keypoints، مثل المفاصل في جسم الإنسان (المرفقين، الركبتين، الكتفين) أو الزوايا الهيكل على السيارة. من خلال تعيين هذه المعالم، يمكن لنماذج machine learning إعادة بناء تمثيل هيكلي للموضوع، مما يمكّن الأنظمة من تفسير لغة الجسد، وديناميكيات الحركة، والوضع الدقيق في الفضاء ثنائي الأبعاد أو ثلاثي الأبعاد.
الآليات الأساسية: من الأعلى إلى الأسفل مقابل من الأسفل إلى الأعلى#
يعتمد تقدير الوضعية الحديث بشكل كبير على بنيات deep learning المعقدة، وغالباً ما يستخدِم Convolutional Neural Networks (CNNs) لمعالجة البيانات المرئية. تتبع الخوارزميات عموماً إحدى استراتيجيتين رئيسيتين لتحديد النقاط الرئيسية:
- النهج من أعلى إلى أسفل (Top-Down): تستخدم هذه الطريقة أولاً نموذج كشف الكائنات لتحديد مواقع الحالات الفردية داخل bounding boxes. بمجرد اقتصاص شخص أو كائن من الصورة الأكبر، يتنبأ مقدر الوضعية بالنقاط الرئيسية داخل تلك المنطقة المحددة. غالباً ما يكون هذا النهج دقيقاً للغاية ولكنه قد يعاني من inference latency أعلى مع زيادة عدد الموضوعات في الإطار.
- النهج من أسفل إلى أعلى (Bottom-Up): بالمقابل، تكتشف هذه الاستراتيجية جميع النقاط الرئيسية المحتملة في الصورة بأكملها في وقت واحد (على سبيل المثال، العثور على كل "ركبة يسارية" في حشد من الناس) ثم تستخدم خوارزميات الارتباط لتجميعها في هياكل عظمية فردية. يُفضل هذا النهج عموماً لـ real-time inference في المشاهد المزدحمة لأن التكلفة الحسابية تظل ثابتة نسبياً بغض النظر عن عدد الأشخاص الحاضرين.
تستفيد النماذج المتطورة مثل YOLO26 من بنيات متقدمة شاملة توازن بين هذه الاحتياجات، مما يوفر تقدير وضعية عالي السرعة مناسباً للنشر على أجهزة edge AI والمنصات المحمولة.
تمييز مصطلحات الرؤية الحاسوبية ذات الصلة#
من المفيد تمييز تقدير الوضعية عن مهام التعرف البصري الأخرى لفهم قيمته الفريدة في مهام computer vision:
- Object Detection: يركز على تحديد ما هو الكائن وأين يوجد، ويُخرج صندوقاً مستطيلاً. يتعامل مع الموضوع ككائن صلْب دون فهم مفصليته الداخلية.
- Instance Segmentation: يُنشئ قناعاً مثالياً بالبكسل يحدد الشكل الدقيق للكائن. بينما يوفر التجزئة الحدود، فإنه لا يحدد صراحة المفاصل أو الروابط الهيكل المطلوبة لـ kinematic analysis.
- Pose Estimation: يستهدف بشكل خاص الهيكل الداخلي، ويرسم خريطة للروابط بين المعالم المحددة مسبقاً (على سبيل المثال، من الورك إلى الركبة) لتحليل الوضعية والحركة.
تطبيقات العالم الحقيقي#
أدت القدرة على رقميّة حركة الإنسان والكائنات إلى تطبيقات تحويلية عبر مختلف الصناعات، وغالباً ما يتم تدريبها باستخدام أدوات مثل Ultralytics Platform لإدارة مجموعات البيانات الكبيرة من النقاط الرئيسية المشروحة.
الرعاية الصحية وإعادة التأهيل#
في المجال الطبي، يستخدم AI in healthcare تقدير الوضعية لمراقبة إعادة تأهيل المرضى عن بُعد. من خلال تتبع زوايا المفاصل ومدى الحركة، يمكن للأنظمة الآلية ضمان أداء المرضى لـ physical therapy exercises بشكل صحيح في المنزل. هذا يقلل من خطر الإصابة مرة أخرى ويسمح للأطباء بقياس تقدم التعافي دون الحاجة إلى معدات مخبرية مكلفة.
تحليلات الرياضة#
يستفيد المدربون والرياضيون من sports analytics لتحسين الأداء. يمكن لنماذج تقدير الوضعية تحليل مستوى تأرجح لاعب الغولف، أو طول خطوة العداء، أو الميكانيكا الحيوية للاعب البيسبول دون الحاجة إلى بدلات العلامات التداخلية المستخدمة في motion capture التقليدي. يوفر هذا تعليقات فورية تعتمد على البيانات لتحسين التقنية ومنع إصابات الاستخدام المفرط.
تجارة التجزئة وتحليل السلوك#
في البيئات التجارية، تستخدم أنظمة AI in retail اكتشاف الوضعية لفهم سلوك العملاء، مثل مد اليد للوصول إلى المنتجات على الرفوف العالية أو المكوث في ممرات محددة. تساعد هذه البيانات في تحسين تصميمات المتاجر وتحسين inventory management من خلال ربط الإجراءات البدنية بقرارات الشراء.
مثال برمجى: تقدير الوضعية باستخدام Ultralytics YOLO26#
يعد تنفيذ تقدير الوضعية أمراً مباشراً مع أطر عمل Python الحديثة. يوضح المثال التالي كيفية استخدام حزمة ultralytics لتحميل نموذج YOLO26 مدرب مسبقاً (خلفاً لـ YOLO11) واكتشاف النقاط الرئيسية البشرية في صورة.
from ultralytics import YOLO
# Load the YOLO26 pose model (nano version for speed)
model = YOLO("yolo26n-pose.pt")
# Perform inference on an image source
# The model identifies bounding boxes and specific keypoints (joints)
results = model("https://ultralytics.com/images/bus.jpg")
# Print the xy coordinates of detected keypoints
print(results[0].keypoints.xy)
# Visualize the skeletal results directly
results[0].show()





