Хорошо, приступим.

Мир изменился, человека заменили машиной.

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

Здесь я использую какую-то библиотеку, которая мне очень помогает,

  • Колба
  • Sklearn
  • matplotlib
  • Локальный двоичный шаблон
  • и больше

Машина знает только число и число (я так думаю, если вы не возражаете), поэтому нам нужно преобразовать пиксель изображения в числа. Использование локального двоичного шаблона - это хорошо, потому что он предлагает простую концепцию преобразования изображения в число, даже если это не годится для дальнейших исследований.

LBP разделит изображение на несколько областей и посчитает плотность градиента в каждой области, а затем обработает ее в гистограмме.

lbp = feature.local_binary_pattern(image, self.numPoints,                          self.radius, method="uniform")                         
(hist, _) = np.histogram(lbp.ravel(),                          bins=np.arange(0, self.numPoints + 3),                          range=(0, self.numPoints + 2))                                                 
                       
hist = hist.astype("float")                         
hist /= (hist.sum() + eps)

Часть моего кода LBP, результатом будет описанная гистограмма или мы просто можем сказать, что это набор массивов чисел. Здесь вы можете увидеть.

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

Dataset
[0.021636221875666023,0.01754288260189137,0.009927043885038529,0.007963911784350686,0.007880374248151202,0.008311984851848529,0.007031075963456462,0.009189128981943098,0.01198763644462577,0.016122744486500164,0.023543662285554212,0.038496881265261615,0.05056805524608687,0.04409389619062696,0.029669748273516275,0.023641122744453607,0.014465916685210422,0.01357484963241594,0.008311984851848529,0.010581421251934477,0.008854978837145167,0.01077634216973327,0.012377478280223356,0.019659166852278264,0.02316774337265654,0.5506237469361903]

Это пример набора данных, который я получил из одного изображения, я использовал LBP, и теперь этот набор данных можно использовать для обучения. Не забудьте также обозначить его числовым ярлыком. Я обозначил 1 для мужчины, 0 для женщины в примере.

Я не скажу вам больше об остальной части моей работы, поэтому перейдем к предсказателю.

Прежде всего, вы должны определить переменные метки и данных.

E.g i have three datasets
datas = [[dataset],[dataset],[dataset]]
label = [1,0,0] 
1= male, 0=female

sklearn очень поможет вам сделать предсказатель SVM всего несколькими строчками кода.

model = LinearSVC(C=100.0, random_state=42)                         model.fit(datas, label)

Все готово. Ваш обучающий код готов к использованию, теперь вам нужно только написать тестовый код. Простой

testing = [dataset]
prediction = model.predict(testing)[0]

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

result = print(prediction)

Это все от меня. Вы можете проверить это в моем репозитории на github.

Я пытался развернуть его на Heroku, к сожалению, он не работает, и я не знаю, как его решить, но он отлично работает на вашем локальном сервере. Https://gender-recognition.herokuapp.com/