Heim >Backend-Entwicklung >Python-Tutorial >Gesichtserkennung in Python in der KI

Gesichtserkennung in Python in der KI

伊谢尔伦
伊谢尔伦Original
2017-04-29 09:41:212463Durchsuche

Mit der schockierenden Leistung von alphago im letzten Jahr ist KI erneut zum Liebling der Technologieunternehmen geworden. KI umfasst viele Bereiche, und die Gesichtserkennung in der Bilderkennung ist einer der interessanten Zweige. Baidus BFR, die offene Plattform von Face++, Hanwang, iFlytek usw. bieten alle Gesichtserkennungs-APIs. Für erfahrene Programmierer können Sie einen kleinen Code schreiben, um zu sehen, wie viele Personen sich auf einem Bild befinden , nur zum Spaß und erfordert nur 7 Zeilen Code.  

 import cv2
  face_patterns = cv2.CascadeClassifier('/usr/local/opt/opencv3/share/OpenCV/haarcascades/haarcascade_frontalface_default.xml')
  sample_image = cv2.imread('/Users/abel/201612.jpg')
  faces = face_patterns.detectMultiScale(sample_image,scaleFactor=1.1,minNeighbors=5,minSize=(100, 100))
  for (x, y, w, h) in faces:
  cv2.rectangle(sample_image, (x, y), (x+w, y+h), (0, 255, 0), 2)
  cv2.imwrite('/Users/abel/201612_detected.png', sample_image);

  Zeile 1 stellt OpenCV vor

Open Source ist großartig, es ermöglicht uns, unseren Horizont zu erweitern und muss das Rad nicht neu erfinden. Anstatt PIL zu verwenden und es mit einem bestimmten Algorithmus zu kombinieren, wird direkt OpenCV (http://opencv.org) verwendet. OpenCV ist eine plattformübergreifende Computer-Vision-Bibliothek, die auf den Betriebssystemen Linux, Windows und Mac OS basiert. Sie ist in C/C++ geschrieben. MATLAB und andere Schnittstellen zur Implementierung vieler allgemeiner Algorithmen in der Bildverarbeitung und Computer Vision.

Zeile 2 lädt den Klassifikator cv2.CascadeClassifier

CascadeClassifier ist ein Kaskadenklassifikator, der für die Gesichtserkennung in Opencv verwendet wird. Diese Klasse kapselt den Zielerkennungsmechanismus, d. h. den Schiebefenstermechanismus + kaskadierende Klassifikatoren . Die Datenstruktur besteht aus zwei Hauptteilen: Data und FeatureEvaluator. Data speichert die aus der aus dem Training erhaltenen XML-Datei geladenen Klassifikatordaten, während es bei FeatureEvaluator um das Laden, Speichern und Berechnen von Features geht. Die hier verwendete Trainingsdatei ist haarcascade frontalface default.xml, die standardmäßig in OpenCV bereitgestellt wird. Was die spezifischen Prinzipien von Haar und LBP betrifft, können Sie auf die relevanten Dokumente von opencv verweisen. Sie können einfach als Gesichtsmerkmalsdaten verstanden werden.

Zeile 3 Laden Sie das Zielbild imread

Gesichtserkennungssysteme sind im Allgemeinen unterteilt in: Gesichtsbildsammlung, Gesichtsbildvorverarbeitung, Gesichtsbildmerkmalsextraktion sowie Abgleich und Erkennung. Der Einfachheit halber lesen Sie das Bild ein:

Zeile 4 Erkennung mehrerer Skalen „detektierenMultiScale“

Rufen Sie die Funktion „DetectMultiScale“ in CascadeClassifier für die Erkennung mehrerer Skalen auf, die Einzelskalenmethode aufgerufen wird. Parameterbeschreibung:

scaleFactor ist der Skalierungsfaktor des Bildes

minNeighbors ist die Anzahl der Nachbarn, die für jedes Kaskadenrechteck beibehalten werden sollen, was als Anzahl der Gesichter um eine Person verstanden werden kann

MinSize ist die Größe des Erkennungsfensters

Diese Parameter können für das Bild angepasst werden und das Verarbeitungsergebnis gibt eine rechteckige Objektliste mit Gesichtern zurück.

Zeilen 5 und 6 zeichnen einen Rahmen für jedes Gesicht

Durchlaufen Sie die rechteckige Objektliste des Gesichts, ermitteln Sie die Koordinaten, Breite und Höhe des Gesichtsrechtecks ​​und zeichnen Sie es dann in Originalbild Um den rechteckigen Rahmen zu verlassen, wird die Rechteckmethode von OpenCV aufgerufen, bei der die Farbe des rechteckigen Rahmens einstellbar ist.

Zeile 7 Speichern Sie die Testergebnisse

Das Geheimnis liegt nicht in diesen 7 Codezeilen, sondern in der zugehörigen Implementierung in OpenCV. Auch die chinesische Website von OpenCV ist ein guter Ort zum Lernen und Erleben.

Daher sind die 7 Codezeilen nur eine Spielerei, der eigentliche Kern ist OpenCV. Bei der Installation der OpenCV-Umgebung gibt es einige Fallstricke. Notieren Sie sich diese daher besonders.

Mac-basierte OpenCV-Umgebung

Es wird empfohlen, Brew zur Installation zu verwenden. Wenn brew nicht installiert ist, führen Sie zuerst den folgenden Befehl aus:

 $/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

Geben Sie dann das Ziellager $brew tap homebrew/science an

OpenCV3 installieren $brew install opencv3

Die Installationsgeschwindigkeit hängt vom Netzwerk ab. Nach der Installation müssen Sie die Python-Entwicklung binden Umgebung. Es gibt viele Methoden:

 1) Umgebungsvariablen hinzufügen und die Site-Pakete von opencv zum PYTHONPATH hinzufügen

 2) Verwenden Sie ln Soft Connection, um cv2.so mit der Site zu verknüpfen. Pakete der Python-Umgebung

 3) cp cv2.so direkt in das Site-Packages-Verzeichnis der Python-Umgebung

Führen Sie einfacher den folgenden Befehl aus:

 echo /usr/local/opt/opencv3/lib/python2.7/site-packages >> /usr/local/lib/python2.7/site-packages/opencv3.pth
  mkdir -p /Users/hecom/.local/lib/python2.7/site-packages
  echo 'import site; site.addsitedir("/usr/local/lib/python2.7/site-packages")' >> /Users/hecom/.local/lib/python2.7/site-packages/homebrew.pth

Das obige ist der detaillierte Inhalt vonGesichtserkennung in Python in der KI. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn