Chamfer Distance
Chamfer mesafesi, nokta kümelerinin, 3B yüzeylerin veya nesne sınırlarının ne kadar iyi eşleştiğini ölçerek yeniden yapılandırma, segmentasyon ve model eğitimini destekler.
Chamfer mesafesi, iki nokta kümesinin ne kadar iyi eşleştiğini ölçer ve her nokta ile diğer kümedeki en yakın komşusu arasındaki mesafeye göre hesaplanır. Daha düşük değerler, kümelerin daha iyi eşleştiğini gösterir. Bilgisayarlı görü alanında bu ölçüt; örneklenmiş uzamsal koordinat koleksiyonları olan 3B nokta bulutlarını ve 2B nesne sınırlarını karşılaştırır. Noktaların sırası önemli değildir ve kümeler farklı sayıda nokta içerebilir.
Bu ölçütün kökeni, 1977'de H. G. Barrow, J. M. Tenenbaum, R. C. Bolles ve H. C. Wolf tarafından görüntü eğrileriyle temsil edilen şekilleri eşleştirmek için ortaya atılan chamfer eşleştirmeye dayanır. Mekanik CAD'de pah, boyutları fiziksel bir özelliği tanımlayan eğimli bir kenardır.
Chamfer Mesafesi Nasıl Hesaplanır#
Boş olmayan iki nokta kümesi A ve B için, kareli mesafeye dayalı yaygın bir tanım üç adımdan oluşur:
- A kümesindeki her nokta için B kümesinde en yakın komşuyu bul, Öklid mesafesinin karesini al ve bu değerlerin ortalamasını hesapla.
- B'den A'ya doğru aynı işlemi tekrarla.
- İki yönlü ortalamayı topla.
İlk yön, referans yüzeyden uzaktaki tahmin noktalarını cezalandırır; ters yön ise tahminde eksik kalan referans bölgelerini cezalandırır. Bu işlem, her sorgu için tek bir komşu kullanan k-en yakın komşu yönteminin temelindeki aynı en yakın komşu işleminden yararlanır. PyTorch3D'nin Chamfer uygulaması, çift yönlü ve tek yönlü hesaplamaları destekler.
Kareli veya karesiz mesafe kullanılması ve toplam ya da ortalama indirgemesi puanı değiştirir. Yaygın bir diğer yöntemde iki yönlü ortalama alınır; böylece sonuç, bunların toplamının yarısı olur. Dolayısıyla mesafe tanımı, koordinat birimleri ve normalizasyon, bir deneyde ölçütün tanımının parçasıdır.
Bu PyTorch hesabı, ikili Öklid mesafelerini hesaplamak için torch.cdist kullanır:
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}")Çıktı 1.00 değeridir: yönlü ortalamaların her biri 0.50 değeridir. Özdeş nokta kümeleri sıfır verir.
Model Eğitiminde Chamfer Kaybı#
Chamfer kaybı, kayıp fonksiyonu olarak kullanılan Chamfer mesafesidir. Bir sinir ağı nokta koordinatlarını tahmin eder ve geri yayılım, noktaları referans noktalara yaklaştıran gradyanları sağlar. En yakın komşu seçimi, amacı parçalı olarak türevlenebilir hâle getirir: eşleştirmelerin sabit kaldığı bir bölgede kareli mesafeler koordinat gradyanları sağlar.
Temel uygulamalardan biri, Haoqiang Fan, Hao Su ve Leonidas J. Guibas'ın geliştirdiği ve CVPR 2017'de sunulan Nokta Kümesi Üretim Ağı (PSGN)'dir. Bu yöntem, bir nesnenin nokta bulutunu fotoğraftan tahmin ederek tek görüntüden 3B yeniden yapılandırma için Chamfer mesafesini eğitim amacı olarak kullanır. Bu nokta kümesi amacı, önceden tanımlanmış nokta-nokta eşleştirmeleri olmadan öğrenmeyi destekler.
Yeniden Yapılandırma ve Segmentasyon Uygulamaları#
3B yeniden yapılandırmada Chamfer mesafesi, örneklenmiş tahmin yüzeylerini referans geometriyle karşılaştırır. Ayrıca ağ uydurmayı destekler: ağ örneklerinin hedef örneklere yaklaşması için köşeler optimize edilir. Küreyi yunus ağına uydurma işleminde yalnızca Chamfer kaybını optimize etmek, yüzeyin düzensiz olmasına yol açar; kenar, normal ve Laplace düzenlileştirmesi yerel ağ yapısını sınırlar.
Örnek segmentasyonunda Chamfer mesafesi, örneklenmiş tahmin konturları ile anotasyonlu konturlar arasındaki uzamsal uyuşmazlığı ölçer. Ultralytics YOLO26 segmentasyonu, Masks.xy üzerinden poligon koordinatlarını sunarak harici Chamfer tabanlı sınır değerlendirmesi için nokta kümeleri sağlar. Alan tabanlı Kesişim/Birleşim ölçütünün aksine, kontur mesafesi sınırların birbirinden ne kadar uzakta olduğunu ifade eder.
İlgili Ölçütler ve Puanların Yorumlanması#
Puanın neyi ölçtüğünü açıklığa kavuşturan üç ilgili kavram:
- Hausdorff mesafesi, en büyük en yakın komşu uyuşmazlığını kullanarak en kötü sınır veya yüzey eşleşmezliğini öne çıkarır.
- Earth Mover mesafesi, nokta kümeleri arasındaki eşleştirmeleri birbirine bağlayarak dağılımlar arasında minimum maliyetli ve kütleyi koruyan bir taşıma bulur.
- Yoğunluğu dikkate alan Chamfer mesafesi, yerel örneklemedeki düzensizliği ele alır. Standart Chamfer eşleştirmesi, birçok noktanın aynı en yakın komşuyu paylaşmasına izin verir; bu nedenle yoğun kümeler, örnekleme eşit dağılmamış olsa bile düşük hata alabilir.
Bu nedenle örnekleme yoğunluğu, hizalama ve veri ön işleme karşılaştırmaları etkiler. Karesiz mesafe koordinat birimine, kareli mesafe ise bu birimin karesine sahiptir. Her iki bulut da metreden santimetreye dönüştürüldüğünde karesiz Chamfer mesafesi 100, kareli Chamfer mesafesi ise 10.000 ile çarpılır.










