У меня есть пространство взвешенных прямоугольников на плоскости, т.е. пар
![$(r, w)\in \mathcal R \times [0, 1]$ $(r, w)\in \mathcal R \times [0, 1]$](https://dxdy-03.korotkov.co.uk/f/e/8/6/e86a2ac2d010fa94777a2a895a345a5d82.png)
, где

. Каждый прямоугольник может соответствовать некоторому объекту (

), а вес выражает уверенность в том, что прямоугольник соответствует к какому-либо объекту. Мне нужно объединить прямоугольники, которые принадлежат одному и тому же объекту.
Например, если б было известно кто кому соотвествтует, то лучшим решением было бы взвешенное среднее всех прямоугольников:

.
Моя идея -- ввести метрику, например:
![$$d(x,y) = ([1 - \frac {\lambda (x_r \cap y_r)}{\lambda (x_r \cup y_r)}] + d_{\mathbb R^2}(x_{\mathrm{center}}, y_{\mathrm{center}})) \cdot (1 + x_w)(1 + y_w)$$ $$d(x,y) = ([1 - \frac {\lambda (x_r \cap y_r)}{\lambda (x_r \cup y_r)}] + d_{\mathbb R^2}(x_{\mathrm{center}}, y_{\mathrm{center}})) \cdot (1 + x_w)(1 + y_w)$$](https://dxdy-01.korotkov.co.uk/f/0/0/1/00138fb9014f5a8b52c0e86a5cea8c3282.png)
т.е. чем больший вес -- тем больше мы штрафуем расстояние между прямоугольниками. Затем применить какой-то алгоритм кластеризации ко всему этому и считать, что прямоугольники относятся к одному и тому же объекту, если они лежат в одном кластере. Результатом сделать среднее взвешенное по каждому кластеру.
Буду благодарен за любую помощь!