Тренинг сиамской нейронной сети для идентификации людей из футсканов - PullRequest
0 голосов
/ 29 марта 2020

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

Используемые мной футсканы выглядят так: - Пример (уменьшено до 96x96)

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

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

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

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

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

Любая помощь будет высоко ценится!

...