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!