Я работаю над проектом face recognition
, в котором у меня есть 2 набора данных изображений
-> person x
-> image_1.jpg
-> image_2.jpg
...
...
-> image_n.jpg
-> person y
-> image_1.jpg
-> image_2.jpg
...
...
-> image_n.jpg
Я извлекаю все face
изображения и затем также извлекаю лицо embeddings
. Затем я сохраняю все embeddings
с их names
в формате, как показано ниже:
data = {"embeddings": knownEmbeddings, "names": knownNames}
Затем я использую SVM
для обучения модели, как показано ниже:
le = LabelEncoder()
labels = le.fit_transform(data["names"])
print(labels) # This outputs 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1
recognizer = SVC(C=1.0, kernel="linear", probability=True)
recognizer.fit(data["embeddings"], labels) # data["embeddings"] is a list of ndarrays
После этого шага модель обучена и готова прогнозировать результаты.
Для тестирования я читаю тестовое face
изображение, извлекаю face embeddings
и затем передаю его в модель, как показано ниже:
preds = recognizer.predict(test_emb)
Предсказание, которое он дает, каждый раз неверно, поэтому мне было интересно, если есть в любом случае я могу построить результаты модели recognizer
, чтобы увидеть, что происходит неправильно.? Есть ли какой-то другой способ проверить, почему модель дает неправильное предикационное значение Пожалуйста помоги. Спасибо