Bilderkennung mit SVM und Local Binary Pattern

Okay, fangen wir an.

Die Welt hat sich verändert, Mensch wird durch Maschine ersetzt.

In diesem Medium erkläre ich Ihnen, wie Sie einen wirklich einfachen Geschlechtsprädiktor erstellen. Sie können es mit ein paar Codezeilen ändern und es in die Lage versetzen, eine Gesichtserkennungsaufgabe auszuführen, die Ihren Namen anhand von Bildern vorhersagen kann. Die Gesichtserkennung ist in der KI-Welt sehr beliebt, also worauf warten Sie noch?


Hier verwende ich einige Bibliotheken, die mir sehr helfen,

  • Flasche
  • gelernt
  • matplotlib
  • Lokales binäres Muster
  • und mehr

Die Maschine kennt nur Zahl und Zahl (ich denke schon, wenn es Ihnen nichts ausmacht), also müssen wir die Bildpixel in Zahlen umwandeln. Use Local Binary Pattern ist eine gute Sache, da es ein einfaches Konzept zum Konvertieren von Bildern in Zahlen bietet, obwohl es für die weitere Forschung nicht gut ist.

LBP unterteilt das Bild in einige Bereiche und zählt die Dichte des Gradienten in allen Bereichen und verarbeitet es dann zu einem Histogramm.


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)

Ein Teil meines LBP-Codes, das Ergebnis wird das beschriebene Histogramm sein, oder wir können einfach sagen, dass es sich um eine Reihe von Zahlenfeldern handelt. Hier sieht man.

Das Ergebnis, das Sie aus dem obigen Code erhalten, können wir als Datensatz bezeichnen.

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]

Dies ist ein Beispiel für einen Datensatz, den ich aus einem Bild erhalten habe, ich habe LBP verwendet und dieser Datensatz kann jetzt für das Training verwendet werden. Vergessen Sie nicht, es auch mit einem Nummernschild zu beschriften. Ich habe zum Beispiel 1 für männlich, 0 für weiblich markiert.

Ich werde Ihnen nicht viel mehr über den Rest meiner Arbeit erzählen, also gehen wir zum Prädiktor.

Als erstes sollten Sie Label- und Datenvariablen definieren.

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

sklearn wird Ihnen sehr dabei helfen, einen SVM-Prädiktor mit nur wenigen Codezeilen zu erstellen.

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

Alles ist eingestellt. Ihr Trainingscode ist einsatzbereit, jetzt müssen Sie nur noch den Testcode erstellen. Einfach

testing = [dataset]

prediction = model.predict(testing)[0]

Nachdem der Code ausgeführt wurde, sehen Sie das Ergebnis basierend auf dem Label im Datentraining.

result = print(prediction)

Das ist alles von mir. Sie können unter überprüfen mein github-repo.

Ich habe versucht, es auf Heroku bereitzustellen, leider funktioniert es nicht und ich habe keine Ahnung, wie ich es lösen soll, aber es funktioniert gut auf Ihrem lokalen Server.

Similar Posts

Leave a Reply

Your email address will not be published.