- Q: Метод наименьших квадратов
МНК — это математический подход, который помогает найти такую функцию (линию, кривую), которая наилучшим образом аппроксимирует (приближает) набор экспериментальных данных. Проще говоря, МНК решает задачу: по имеющимся точкам подобрать кривую (часто прямую, но не обязательно) так, чтобы сумма расстояний от точек до этой кривой была минимальной.
В opencv формула (фон * коэффициент + сдвиг)
Метод крайне чувствителен к выбросам. Если в данных присутствуют аномальные точки (шум, ошибки измерений), МНК даст искажённый результат. В таких случаях предпочтительнее использовать робастные алгоритмы, например RANSAC. - Q: Разница между детектированием и распознаванием
Детектирование (face detection) отвечает на вопрос «есть ли на изображении лицо и где оно?». На выходе получается bounding box (иногда ещё ключевые точки: глаза, нос, рот). Модель не знает, чьё это лицо. Примеры: Haar cascades, HOG, MTCNN, RetinaFace, YOLO-face.Распознавание (face recognition) отвечает на вопрос «чьё это лицо?». На вход подаётся уже найденное и выровненное лицо. Модель превращает его в вектор признаков (эмбеддинг, например 128- или 512-мерный). Затем этот вектор сравнивают с базой известных лиц по расстоянию или косинусной близости. Примеры: FaceNet, ArcFace, dlib ResNet.
Детекция нужна много где без всякого распознавания: автофокус камеры, подсчёт людей, размытие лиц. Распознавание же без детекции невозможно, потому что лицо сначала нужно найти. Отсюда и ощущение, что это одно и то же.
Эмбеддинг — это короткий список чисел (вектор), в который нейросеть превращает лицо. Он подобран так, что у фотографий одного человека векторы получаются близкими, а у разных людей далёкими. Представьте, что каждое лицо нужно описать фиксированным набором чисел: «насколько широкие скулы», «какое расстояние между глазами», «какая форма носа» и так далее. Получается «паспорт» лица из N чисел, например:
123Иван, фото 1: [ 0.12, -0.53, 0.88, 0.07, ... ] (128 чисел)Иван, фото 2: [ 0.10, -0.49, 0.91, 0.05, ... ] ← почти то же самоеПётр: [-0.71, 0.33, 0.02, 0.64, ... ] ← сильно отличается

