Chamfer Distance
تقيس مسافة شامفر مدى تقارب مجموعات النقاط أو الأسطح ثلاثية الأبعاد أو حدود الكائنات، ما يدعم إعادة البناء والتجزئة وتدريب النماذج.
مسافة شامفر مقياس لمدى تقارب مجموعتين من النقاط، وتُحسب من المسافة بين كل نقطة وأقرب جار لها في المجموعة الأخرى. تشير القيم الأقل إلى توافق أكبر. في الرؤية الحاسوبية، تقارن المسافة السحب النقطية ثلاثية الأبعاد—وهي مجموعات من الإحداثيات المكانية المأخوذة بالمعاينة—وحدود الكائنات ثنائية الأبعاد. لا يؤثر ترتيب النقاط، ويمكن أن يختلف عدد النقاط في كل مجموعة.
تعود أصولها إلى مطابقة شامفر، التي قدمها H. G. Barrow وJ. M. Tenenbaum وR. C. Bolles وH. C. Wolf عام 1977 من أجل مطابقة الأشكال الممثلة بمنحنيات الصور. في التصميم بمساعدة الحاسوب الميكانيكي (CAD)، الشطفة حافة مشطوفة تصف أبعادها سمة مادية.
كيفية حساب مسافة شامفر#
لوجود مجموعتين غير فارغتين من النقاط، A وB، يتكون تعريف شائع يعتمد على المسافة المربعة من ثلاث خطوات:
- اعثر لكل نقطة في A على أقرب جار لها في B، ثم ربّع المسافة الإقليدية واحسب متوسط هذه القيم.
- كرّر العملية من B إلى A.
- اجمع متوسطي الاتجاهين.
يفرض الاتجاه الأول عقوبة على النقاط المتوقعة البعيدة عن السطح المرجعي؛ أما الاتجاه العكسي فيفرض عقوبة على المناطق المرجعية غير الموجودة في التنبؤ. تستخدم هذه العملية حساب أقرب جار نفسه الذي تقوم عليه أقرب الجيران k، مع جار واحد لكل استعلام. يدعم تنفيذ مسافة شامفر في PyTorch3D الحساب ثنائي الاتجاه وأحادي الاتجاه.
يؤدي استخدام المسافات المربعة أو غير المربعة، وكذلك الجمع أو حساب المتوسط، إلى تغيير الدرجة. وهناك اصطلاح شائع آخر يحسب متوسط متوسطي الاتجاهين، ما ينتج نصف قيمة مجموعهما. ولذلك، يُعد اصطلاح المسافة ووحدات الإحداثيات والتطبيع جزءًا من تعريف المقياس في أي تجربة.
يستخدم هذا الحساب في PyTorch torch.cdist لحساب المسافات الإقليدية الزوجية:
import torch
a = torch.tensor([[0.0, 0.0], [2.0, 0.0]])
b = torch.tensor([[0.0, 0.0], [3.0, 0.0]])
# Reduce squared distances in each nearest-neighbor direction.
distances = torch.cdist(a, b, p=2)
squared_distances = distances.square()
a_to_b = squared_distances.min(dim=1).values.mean()
b_to_a = squared_distances.min(dim=0).values.mean()
chamfer = a_to_b + b_to_a
print(f"Squared Chamfer distance: {chamfer.item():.2f}")الناتج هو 1.00: كل متوسط اتجاهي هو 0.50. وتكون النتيجة صفرًا لمجموعتي نقاط متطابقتين.
خسارة شامفر في تدريب النماذج#
خسارة شامفر هي مسافة شامفر المستخدمة بوصفها دالة خسارة. تتنبأ الشبكة العصبية بإحداثيات النقاط، ويوفر الانتشار العكسي تدرجات تحركها نحو النقاط المرجعية. يجعل اختيار أقرب جار الهدف قابلًا للاشتقاق على أجزاء: ففي منطقة تبقى فيها التعيينات ثابتة، توفر المسافات المربعة تدرجات للإحداثيات.
من التطبيقات التأسيسية شبكة توليد مجموعات النقاط (PSGN)، التي أنشأها Haoqiang Fan وHao Su وLeonidas J. Guibas، وعُرضت في CVPR 2017. وتستخدم مسافة شامفر هدفًا تدريبيًا من أجل إعادة البناء ثلاثي الأبعاد من صورة واحدة، إذ تتنبأ بالسحابة النقطية لكائن انطلاقًا من صورة فوتوغرافية. ويدعم هدف مجموعة النقاط هذا التعلم دون الحاجة إلى مطابقات محددة مسبقًا بين النقاط.
تطبيقات إعادة البناء والتجزئة#
في إعادة البناء ثلاثي الأبعاد، تقارن مسافة شامفر الأسطح المتوقعة المأخوذة بالمعاينة بالهندسة المرجعية. كما تدعم ملاءمة الشبكات المجسمة: إذ تُحسّن الرؤوس بحيث تقترب العينات المأخوذة من الشبكة من العينات المستهدفة. وفي ملاءمة شبكة مجسمة من كرة إلى دولفين، يؤدي تحسين خسارة شامفر وحدها إلى سطح غير متجانس؛ وتعمل تسوية الحواف والأعراف ولابلاس على تقييد البنية المحلية للشبكة.
في تجزئة الكائنات، تقيس مسافة شامفر الاختلاف المكاني بين الخطوط المحيطية المتوقعة والمعلّمة المأخوذة بالمعاينة. وتتيح تجزئة YOLO26 من Ultralytics إحداثيات المضلعات عبر Masks.xy، ما يوفر مجموعات نقاط لتقييم الحدود خارجيًا باستخدام مسافة شامفر. وعلى خلاف التقاطع على الاتحاد القائم على المساحة، تعبّر مسافة الخطوط المحيطية عن مدى تباعد الحدود.
مقاييس ذات صلة وتفسير الدرجات#
توضح ثلاثة مفاهيم ذات صلة ما الذي تقيسه الدرجة:
- تستخدم مسافة هاوسدورف أكبر اختلاف بين أقرب الجيران، مع التركيز على أسوأ عدم تطابق في الحدود أو الأسطح.
- تجد مسافة ناقل الأرض نقلًا بأقل تكلفة يحافظ على الكتلة بين التوزيعات، مع ربط التعيينات عبر مجموعات النقاط.
- تعالج مسافة شامفر المراعية للكثافة تفاوت أخذ العينات محليًا. تسمح مطابقة شامفر العادية لعدة نقاط بمشاركة أقرب جار واحد، لذا قد تسجل العناقيد الكثيفة أخطاء صغيرة رغم ضعف تجانس أخذ العينات.
لذلك، يؤثر كل من كثافة أخذ العينات والمحاذاة والمعالجة المسبقة للبيانات في المقارنات. ووحدة المسافة غير المربعة هي وحدة الإحداثيات، أما وحدة المسافة المربعة فهي مربعها. ويؤدي تحويل السحابتين من الأمتار إلى السنتيمترات إلى ضرب مسافة شامفر غير المربعة في 100، والمربعة في 10,000.










