У меня есть python
face recognition
, где я использую модель open-face
и SVM
для обнаружения и распознавания лиц. Ниже приведены общие шаги по распознаванию изображения:
- Обнаружение лица с использованием модели распознавания лиц: Причина использования модели с открытым лицом вместо каскада HAAR заключается в том, что каскад не может обнаружить боковое лицо
- Извлечение врезания лица: Извлечение врезания лица 128 d с использованием модели открытого лица
Обучение: использование SVM
Я тренирую встраивание лица с соответствующей меткой, как показано ниже:
params = {"C": [0.001, 0.01, 0.1, 1.0, 10.0, 100.0, 1000.0], "gamma": [1e-1, 1e-2, 1e-3, 1e-4, 1e-5]}
model = GridSearchCV(SVC(kernel="rbf", gamma="auto", probability=True), params, cv=3, n_jobs=-1)
model.fit(data["embeddings"], labels)
Тестирование: извлечение встраивания граней тестового изображения и прогнозирование результатов, например ниже:
model.predict_proba()
У меня есть unknown
случайный набор данных лица и known
набор данных лица. Проблема здесь в том, что, если я добавляю около 30 изображений известных людей и если у меня есть около 10 изображений неизвестных, это значит, что он хорошо распознает известного человека, но если заходит какой-то неизвестный человек, он также распознает этого неизвестного человека как известного человека с высоким достоверность, которая в действительности должна быть неизвестна.
Если я добавлю больше случайного человека в набор данных unknown
, скажем, около 50 изображений, и если у меня есть 30 изображений известных людей. Он хорошо распознает изображение известного человека, но уверенность низкая, и если появляется какой-либо неизвестный человек, он теперь распознается как неизвестный
Похоже, что для получения хороших результатов распознавания лиц нам нужно иметь примерно столько же known and unknown
изображение человека, которое практически невозможно, так как изображения известных людей могут увеличиться до 100 или более, чем для каждого известного человека, которого мы добавляем. Я очень смущен здесь и не уверен, что делать. Есть ли другой способ узнать known/unknown
человека. Пожалуйста помоги. Спасибо