Обучение сиамской нейронной сети распознаванию людей по сканированию ног

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

Развертки стопы, которые я использую, выглядят следующим образом:- Пример (масштаб уменьшен до 96x96)

В своей первой попытке я последовал этому руководству https://towardsdatascience.com/one-shot-learning-with-siamese-networks-using-keras-17f34e75bb3d и использовал его со своими данными. Тем не менее, у меня было много колебаний в точности 20-позиционного теста одного выстрела в разные эпохи, иногда до 60%, а затем до 10-12% после следующих 1000 эпох.

Изображение архитектуры, использованное в приведенном выше руководстве - архитектура

Я рассмотрел возможность того, что, возможно, мой набор данных был более сложным, чем тот, который использовался в руководстве для идентификации букв, и поэтому решил опробовать архитектуру Facenet. Однако я не могу получить более 20-25% 20-стороннего одного снимка проверить точность, используя это. Однако здесь точность намного более стабильна.

Теперь мой вопрос, является ли эта точность низкой из-за моего небольшого размера набора данных (у меня есть набор данных из 900 индивидуальных футов, т.е. 900 классов с 8 изображениями в каждом) или мне следует попробовать какую-то другую архитектуру? Кроме того, поможет ли перенос обучения, скажем, с использованием весов из Facenet?

Другая возможность может заключаться в том, что 8 примеров ног, представленных для каждой в моем наборе данных, очень похожи (минимальная разница в освещении, почти всегда в центре и т.д.), что может препятствовать правильному извлечению функций CNN. Если это так, следует ли мне увеличивать изображения?

Любая помощь приветствуется!

0 ответов

Другие вопросы по тегам