Геометрия

Площади и периметры

YOLO вычисляет IoU - Intersection over Union - тысячи раз за кадр. IoU = площадь пересечения / площадь объединения. Под капотом: формула Гаусса (shoelace) за O(n). Та же формула, которую 18-летний Гаусс записал в 1795 году, сегодня работает в каждом детекторе объектов реального времени - от Tesla Autopilot до систем видеонаблюдения.

  • **Object detection (YOLO, Faster R-CNN):** IoU = отношение площадей полигонов, вычисляется shoelace; non-maximum suppression фильтрует перекрывающиеся bbox по IoU > 0.5
  • **GIS и PostGIS:** ST_Area, ST_Intersection - shoelace для полигонов территорий, государственных границ, flood zones
  • **Computer vision:** circularity = 4piA/P^2 в OpenCV для сегментации клеток, обнаружения дефектов, roundness QC
  • **Monte Carlo integration:** случайные точки для оценки площади нерегулярных регионов - параллелизуется на GPU, используется в ray tracing и физических движках

Предварительные знания

  • Окружность и эллипс

Формулы площадей

1795 год. Карл Фридрих Гаусс, 18 лет. Записывает формулу площади полигона через координаты вершин. Через 200 лет она войдёт в каждую библиотеку компьютерной геометрии - от PostScript до PyTorch3D. Но начинается всё с базовых фигур.

Площадь - скалярная мера размера плоской фигуры. Для базовых фигур существуют замкнутые формулы; для произвольных полигонов - алгоритмические методы. Ключевой факт: круг как предел правильного $n$-угольника при $n \to \infty$ - это не метафора, а точный предел.

ФигураФормула площадиКлючевой факт
Треугольник (основание-высота)$S = \tfrac{1}{2} b h$b - основание, h - перпендикулярная высота
Треугольник (формула Герона)$S = \sqrt{s(s-a)(s-b)(s-c)}$$s = (a+b+c)/2$ - полупериметр; только стороны
Параллелограмм$S = b \cdot h = |\mathbf{a} \times \mathbf{b}|$Модуль векторного произведения
Правильный $n$-угольник$S = \tfrac{n r^2 \sin(2\pi/n)}{2}$$r$ - радиус описанной окружности
Трапеция$S = \tfrac{(a+b) h}{2}$$a, b$ - основания, $h$ - высота
Круг$S = \pi r^2$Предел правильного $n$-угольника при $n \to \infty$

**Зачем Герон?** Формула $\tfrac{1}{2}bh$ требует высоту - её надо ещё найти. Формула Герона работает только по трём сторонам. Это критично в вычислительной геометрии, где вершины заданы координатами, а перпендикуляры неудобны.

Стороны треугольника 3, 4, 5. Площадь по формуле Герона:

Формула Гаусса (Shoelace) и IoU в ML

Tesla FSD обрабатывает 8 камер по 30 кадров в секунду. Каждый кадр - сотни bounding boxes. Каждый bbox - расчёт IoU (Intersection over Union). IoU = площадь пересечения / площадь объединения. Обе площади - это shoelace formula. 240 площадей в секунду на одной камере.

**Формула Гаусса (shoelace)** для полигона с вершинами $(x_1,y_1), \ldots, (x_n,y_n)$: $$S = \frac{1}{2} \left| \sum_{i=1}^{n} (x_i y_{i+1} - x_{i+1} y_i) \right|$$ индексы по модулю $n$. **Знаковая площадь** (без модуля): положительная - обход CCW, отрицательная - CW. Это ориентация полигона.

Знак площади - не технический артефакт. В компьютерной графике ориентация полигона определяет направление нормали (front-face vs back-face culling). В GIS - порядок обхода территории. YOLO и Faster R-CNN используют знаковую площадь для расчёта IoU при non-maximum suppression.

Shoelace - O(n) по числу вершин. Для convex hull из $n$ точек - O(n log n) (сортировка), потом O(n) для площади. В PostGIS, Shapely, CGAL, PyTorch3D - везде одна и та же 8-строчная функция.

Временная сложность вычисления площади $n$-угольника по формуле Гаусса:

Составные фигуры и Монте-Карло

Фигуры сложной формы - не проблема: любую область можно разбить на простые части (inclusion-exclusion) или оценить методом Монте-Карло. Это два полярных подхода: аналитический и численный.

**Inclusion-exclusion для площадей:** $$S(A \cup B) = S(A) + S(B) - S(A \cap B)$$ Для несвязных фигур пересечение пусто, суммирование работает напрямую. Для перекрывающихся - вычитаем площадь пересечения. IoU = $S(A \cap B) / S(A \cup B)$ - прямое применение этой формулы.

Монте-Карло - когда аналитика недоступна. Бросаем случайные точки в bounding box, считаем попавшие внутрь фигуры. Сходится как $O(1/\sqrt{n})$ - медленно, но работает для любой формы, включая фракталы и нерегулярные контуры. В computer vision это используется для оценки площади сегментированных регионов произвольной формы.

Монте-Карло параллелизуется напрямую: каждая точка независима. На GPU можно запустить миллиарды сэмплов параллельно - именно поэтому Монте-Карло живёт в физических движках, ray tracing и RLHF.

Как изменится ошибка оценки Монте-Карло при увеличении числа сэмплов в 4 раза?

Изопериметрическое неравенство

Пчёлы знали ответ тысячи лет. Математики доказали в XIX веке. При фиксированном периметре максимальную площадь даёт круг - и только круг. Это изопериметрическое неравенство, и оно живёт в компьютерном зрении как метрика roundness.

**Изопериметрическое неравенство:** $$4\pi A \leq P^2$$ где $A$ - площадь, $P$ - периметр. Равенство достигается только для круга. **Circularity (мера круглости):** $C = 4\pi A / P^2 \in (0, 1]$. Для круга $C=1$, для квадрата $C=\pi/4 \approx 0.785$, для вытянутого эллипса $C \ll 1$.

В биомедицинской компьютерной графике circularity - стандартный дескриптор клеток под микроскопом. Раковые клетки меняют форму: $C$ падает. В OpenCV: `4 * pi * cv2.contourArea(cnt) / cv2.arcLength(cnt, True)**2`. Та же формула Гаусса, тот же изопериметр.

Периметр правильного $n$-угольника, вписанного в окружность $r$: $P = n \cdot 2r \sin(\pi/n)$. При $n \to \infty$ предел - длина окружности $2\pi r$. Это тот же механизм, которым древние вычисляли $\pi$: Архимед использовал $n=96$.

Фигура имеет периметр $P=12$. Максимально возможная площадь:

Ключевые идеи

  • **Герон:** $S = \sqrt{s(s-a)(s-b)(s-c)}$ - площадь треугольника только по сторонам, без высоты
  • **Shoelace:** $S = \tfrac{1}{2}|\sum(x_i y_{i+1} - x_{i+1} y_i)|$ - площадь любого полигона за $O(n)$; знак даёт ориентацию CCW/CW
  • **IoU = shoelace:** детекция объектов в реальном времени - прямое применение формулы Гаусса
  • **Монте-Карло:** случайные точки для сложных форм, ошибка $O(1/\sqrt{n})$, параллелизуется на GPU
  • **Изопериметрия:** $4\pi A \leq P^2$, равенство только для круга; circularity = стандартный дескриптор в CV

Связанные темы

Площади связывают планиметрию с векторной алгеброй, вычислительной геометрией и численными методами:

  • Координатная геометрия — Shoelace выводится через векторное произведение
  • Векторная геометрия — Площадь параллелограмма = |a x b|
  • Геометрия в CS — Shoelace - примитив convex hull и polygon algorithms

Вопросы для размышления

  • Знак площади shoelace определяет ориентацию полигона (CCW vs CW) без дополнительных проверок. Какой физический смысл это имеет в 3D-графике при рендеринге?
  • Монте-Карло сходится как $1/\sqrt{n}$. Почему на GPU это всё равно быстро - даже несмотря на медленную сходимость?
  • Изопериметрическое неравенство говорит, что при фиксированном периметре площадь максимальна у круга. Как это связано с тем, почему мыльные пузыри всегда сферические?

Связанные уроки

  • geo-06 — Shoelace выводится через векторное произведение координатной геометрии
  • geo-11 — Площадь параллелограмма = |a x b|, векторная интерпретация shoelace
  • geo-13 — Shoelace - примитив convex hull, polygon clipping, computational geometry
  • calc-11-definite — Интеграл как предел сумм площадей - то же мышление, другой масштаб
  • trig-05 — Изопериметрическое неравенство связывает площадь и периметр через тригонометрию
  • trig-01
Площади и периметры

0

1

Войти