Как построить систему распознавания лиц с нуля? - PullRequest
1 голос
/ 22 марта 2019

Я создаю прототип для системы распознавания лиц и при написании алгоритма у меня возникло несколько вопросов.

Алгоритм:

  1. Соберите пару (A (i), P (i), N (i)) -набора якорных, позитивных, негативных изображений сотрудников, работающих в компании XYX.

  2. Использование градиентного спуска обучает функцию потери триплета для изучения параметров CNN.На самом деле, здесь я тренирую сиамскую сеть (Идея запуска двух идентичных CNN 'на 2 разных входах [один раз на A (i) -P (i) и затем A (i) -N (i))], а затем сравнивать их).

    enter image description here enter image description here Эти изученные параметры обеспечат, что расстояние между сглаженным n-dim-кодированием тех же изображений будет небольшим идругое изображение будет большим.!

  3. Теперь создайте базу данных, в которой вы будете хранить кодировку каждого учебного образа сотрудников компании XYX!

    Просто сделайте прямой проход через обученный CNN и сохраните соответствующую кодировку каждого изображения в базе данных

  4. Во время теста у вас естьобраз сотрудника компании XYX и образ постороннего лица!

    • Вы пройдете оба тестовых изображения через CNN и получите соответствующие кодировки!

    • Теперь, Возникает вопрос о том, как найти сходство между кодированием тестового изображения и всем кодированием обучающего изображения в базе данных?

      • Первый вопрос , Вы хотите косинусное сходство или мне нужно сделать что-то еще?Можете ли вы добавить больше ясности?

      • Второй вопрос , Кроме того, с точки зрения эффективности, как бы вы справились со сценарием, в котором у вас есть 100 000 сотрудников, обучающих-кодирующих изображения в базе данных и длякаждому новому человеку нужно посмотреть эти 100 000 кодировок и вычислить косинусное сходство и дать результат в течение <2 секунд?Любое предложение по этой части? </p>

    • Третий вопрос обычно для задачи распознавания лиц, если мы используем подход (Image--> CNN -> SoftMax -> output), каждый раз, когда к вашей организации присоединяется новый человек, вам необходимо переподготовку сети, поэтому это плохой подход!
    • Эту проблему можно решить, используя 2-й подход, в котором мы используем функцию дистанционного обучения "d (img1, img2)" над парой изображенийсотрудники, как указано выше в пункт 1 до 3 .

      • Мой вопрос относится к случаю присоединения нового сотрудника к организации. Как эта функция заученного расстояния сможет обобщать, когда она не использоваласьв тренировочном комплекте вообще?Не проблема ли измененного распределения данных тестового и обучающего набора?Любое предложение в этом отношении

Может ли кто-нибудь помочь в понимании этих концептуальных глюков?

1 Ответ

0 голосов
/ 27 марта 2019

После проведения некоторого литературного исследования по проверке лица и распознаванию / обнаружению исследовательских работ в области компьютерного зрения.Я думаю, что получил ответ на все мои вопросы, поэтому я пытаюсь ответить на него здесь.

Первый вопрос, вы бы сделали косинусное сходство?Можете ли вы добавить больше ясности?

  • Найдите минимальное расстояние между тестом и каждым сохраненным изображением поезда, просто вычислив евклидово расстояние между ними.

  • Не держите пороговое значение, скажем, 0,7, а минимальное расстояние составляет <0,7, верните имя сотрудника, иначе "нет ошибки в базе данных!"</p>

Второй вопрос. Кроме того, с точки зрения эффективности, как бы вы справились со сценарием, в котором в базе данных присутствует 100 000 сотрудников, обучающих кодировке изображений и длякаждому новому человеку нужно посмотреть эти 100 000 кодировок и вычислить косинусное сходство и дать результат в течение <2 секунд? </em>

  • Следует отметить, что во время тренировки 128-мерное плаваниевектор используется, но он может быть квантован до 128 байтов без потери точности.Таким образом, каждая грань компактно представлена ​​128-мерным байтовым вектором, который идеально подходит для крупномасштабной кластеризации и распознавания.Меньшие вложения возможны при незначительной потере точности и могут использоваться на мобильных устройствах

Третий вопрос: - Прежде всего, мы изучаемсетевые параметры глубокой CNN (сиамские н / ж) путем минимизации функции потери триплета!

  • Во-вторых, предполагалось, что вы обучили эти весовые коэффициенты модели на огромном наборе данных миллионов людей, что эти весовые коэффициенты изучили обе функции более высокого уровня, такие как личность человека, пол и т. Д.!А также низкоуровневые элементы, такие как края, относящиеся к человеческим лицам.
  • Теперь существует предположение, что эти параметры модели вместе могут представлять любое человеческое лицо как минимум !, так что вы продолжите и сохраните кодировку "новый человек" вчерез базу данных, сделав пересылку вперед, а затем используйте ответ 1, чтобы вычислить, принадлежит ли человек организации или нет (проблема распознавания лиц).Более того, в статье FaceNet упоминается, что мы храним набор из около миллиона изображений, который имеет то же распределение, что и наш обучающий набор, но не разделяет личность.
  • Третий Отличие этих двух методов состоит в том, как мы тренируем эти весовые коэффициенты модели в первом методе с использованием функции потерь: кросс-энтропия softmax против функции потерь во втором методе:функция потери триплета!
...