Как рассчитать точность LFW модели распознавания лиц?

Вопрос или проблема

В своем исследовании я заметил, что многие алгоритмы распознавания лиц представляют точность своих моделей в терминах точности на наборе данных LFW. Я понял, что LFW — это открытая база данных, и скачал её.

Я разработал собственную модель DNN для распознавания лиц, реализованную по архитектуре, аналогичной facenet. Кто-нибудь может помочь с процедурой расчета точности LFW для моей модели?

Facenet должна встраивать изображения в многомерное пространство таким образом, чтобы похожие изображения находились близко (относительно заданной метрики расстояния) друг к другу, а разные изображения — дальше друг от друга.

Это означает, что для расчета точности вашей модели вам нужно найти пороговое расстояние d, которое обеспечивает наивысшую точность. Имея такое расстояние, вы можете рассчитать точность, как это делается для бинарного классификатора. То есть точность — это «Количество правильно классифицированных пар/Количество пар».

Например, рассмотрим три изображения A1,A2 для человека A и B1 для человека B. И предположим, что ваша DNN встраивает изображения так, что попарное L2 расстояние (т.е. евклидово расстояние) равно 1, 3 и 7. Тогда вы можете увидеть, что если использовать пороговое значение расстояния 2, вы получите 100% точность, в противном случае только 66%.

+----------+--------------+-------------+------+------+
|   Пара   | Истинное значение | L2-расстояние | d=2  | d=4  |
+----------+--------------+-------------+------+------+
| A1 A2    |            1 |           1 |    1 |    1 |
| A1 B1    |            0 |           3 |    0 |    1 |
| A2 B1    |            0 |           7 |    0 |    0 |
+----------+--------------+-------------+------+------+
| Точность |              |             | 1.00 | 0.66 |
+----------+--------------+-------------+------+------+

Если вы используете Tensorflow, вы можете следовать инструкциям Дэвида Сандберга для расчета показателей оценки (включая точность) вашей модели здесь.

ВАЖНО: Чтобы сравнить производительность вашего подхода с другими подходами, вы должны следовать одному из протоколов набора данных LFW. Протоколы подробно описаны здесь (см. Раздел 4). В основном, у них есть особый взгляд на набор данных, который просит вас сообщить среднюю точность + показатели ошибок на 10 частях этого набора данных.

.

Ответ или решение

Чтобы рассчитать точность модели распознавания лиц на наборе данных LFW (Labeled Faces in the Wild), необходимо следовать определённой процедуре, которая позволит вам сравнить результаты вашей нейронной сети с другими моделями. Давайте рассмотрим этот процесс подробнее.

Пошаговое руководство по расчету точности на наборе данных LFW

1. Подготовка данных:
Сначала убедитесь, что вы правильно скачали и подготовили набор данных LFW. Этот набор представляет собой один из стандартов в индустрии распознавания лиц и состоит из изображений людей, снимки которых были сделаны в различных условиях.

2. Встраивание изображений:
Ваша модель DNN, подобная архитектуре FaceNet, должна преобразовать каждое изображение в векторное представление в многомерном пространстве. Основная задача здесь — добиться, чтобы векторы, представляющие одно и то же лицо, были ближе друг к другу (в соответствии с выбранной метрикой расстояния, например, евклидовой), чем векторы, представляющие разные лица.

3. Выбор метрики и порогового значения:
Выберите метрику расстояния (обычно используется L2 или косинусное расстояние). Затем определите пороговое значение d, которое максимизирует точность модели. Пороговое значение определяет, являются ли две пары изображений идентичными: расстояние между их векторами должно быть меньше d для утверждения, что на них один и тот же человек.

4. Расчет точности:
Для вычисления точности используйте формулу для бинарных классификаторов:
[ \text{Точность} = \frac{\text{Количество правильно классифицированных пар}}{\text{Общее количество пар}} ]

5. Использование протоколов LFW:
Для объективного сравнения с другими моделями следуйте протоколам LFW. Эти протоколы включают 10-кратное кросс-валидацию и выведение средней точности и ошибок. Этот метод описан в документе Huang и др., ECCV 2008.

Примеры и соображения

Допустим, у вас есть три изображения: A1 и A2 — фото человека A, B1 — фото человека B. Ваша модель встраивает их так, что евклидовы расстояния между векторами: A1-A2 — 1, A1-B1 — 3, A2-B1 — 7. При d=2 точность будет 100%, а при d=4 — 66%.

Важные моменты:

  • Используйте библиотеку для обработки изображений, такую как TensorFlow, для реализации этой процедуры. Например, следуйте инструкциям Дэвида Сандберга, представленным тут.
  • Убедитесь, что ваш код воспроизводит все шаги протокола LFW для корректного сравнения.

Следование этим шагам поможет вам точно оценить производительность вашей модели и сравнить её результаты с другими существующими решениями в области распознавания лиц.

Оцените материал
Добавить комментарий

Капча загружается...