So führen Sie eine Gesichtserkennung mit OpenCV durch

Was brauche ich?

  • Jeder dedizierte oder virtuelle Server
  • Ubuntu
  • OpenCV
  • Python

Was ist Gesichtserkennung?

OpenCV verwendet maschinelle Lernalgorithmen, um nach Gesichtern in einem Bild zu suchen. Da Gesichter so kompliziert sind, gibt es keinen einfachen Test, der Ihnen sagt, ob ein Gesicht gefunden wurde oder nicht. Stattdessen müssen Tausende kleiner Muster und Merkmale aufeinander abgestimmt werden. Die Algorithmen unterteilen die Aufgabe, das Gesicht zu identifizieren, in Tausende kleinere, mundgerechte Aufgaben, von denen jede leicht zu lösen ist. Diese Aufgaben werden auch Klassifikatoren genannt.

Für so etwas wie ein Gesicht könnten Sie 6.000 oder mehr Klassifikatoren haben, die alle übereinstimmen müssen, damit ein Gesicht erkannt wird, natürlich innerhalb der Fehlergrenzen. Aber darin liegt das Problem: Bei der Gesichtserkennung beginnt der Algorithmus oben links im Bild und bewegt sich nach unten über kleine Datenblöcke, wobei er jeden Block betrachtet und ständig fragt: „Ist das ein Gesicht?“ … Ist das ein Gesicht? … Ist das ein Gesicht?’ Da es 6.000 oder mehr Tests pro Block gibt, müssen Sie möglicherweise Millionen von Berechnungen durchführen, was Ihren Computer zum Stillstand bringen wird. Um dies zu umgehen, verwendet OpenCV Kaskaden. Was ist eine Kaskade? Die beste Antwort finden Sie im Wörterbuch: „ein Wasserfall oder eine Reihe von Wasserfällen“.

Wie eine Reihe von Wasserfällen unterteilt die OpenCV-Kaskade das Problem der Gesichtserkennung in mehrere Phasen. Für jeden Block wird ein sehr grober und schneller Test durchgeführt. Wenn dies erfolgreich ist, wird ein etwas detaillierterer Test durchgeführt und so weiter. Der Algorithmus verfügt möglicherweise über 30 bis 50 dieser Stufen oder Kaskaden und erkennt ein Gesicht nur, wenn alle Stufen erfolgreich sind.

Der Vorteil besteht darin, dass der Großteil des Bildes in den ersten Phasen ein Negativ zurückgibt, was bedeutet, dass der Algorithmus keine Zeit damit verschwendet, alle 6.000 Funktionen darauf zu testen. Anstatt Stunden zu dauern, kann die Gesichtserkennung jetzt in Echtzeit durchgeführt werden. Auch wenn die Theorie kompliziert klingt, ist sie in der Praxis recht einfach. Die Kaskaden selbst sind lediglich eine Reihe von XML-Dateien, die OpenCV-Daten enthalten, die zur Erkennung von Objekten verwendet werden. Sie initialisieren Ihren Code mit der gewünschten Kaskade und er erledigt dann die Arbeit für Sie.

Da die Gesichtserkennung so häufig vorkommt, verfügt OpenCV über eine Reihe integrierter Kaskaden zur Erkennung von Gesichtern, Augen, Händen und Beinen.

faceRecognition.py

strong>cv2 importieren

importieren

 sys

# Vom Benutzer bereitgestellte Werte abrufen
imagePath = sys.argv[1]
cascPath = "haarcascade_frontalface_default.xml"

# Erstellen Sie die Haarkaskade
faceCascade = cv2.CascadeClassifier(cascPath)

# Lesen Sie das Bild
image = cv2.imread(imagePath)
grey = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# Gesichter im Bild erkennen
faces = faceCascade.detectMultiScale(
grau,
ScaleFactor=1,1,
minNachbarn=5,
minSize=(30, 30),
flags = cv2.CASCADE_SCALE_IMAGE
)
print("{0} Gesichter gefunden!".format(len(faces)))

# Zeichnen Sie ein Rechteck um die Flächen

für

 (x, y, w, h)

In

 Gesichter:
cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow("Gesichter gefunden", Bild)
cv2.waitKey(0)

Um zu beginnen, verwenden Sie den folgenden Befehl:

python3 faceRecognition.py group-of-people-of-mixed-ethnicity.jpg
haarcascade_frontalface_default.xml

Gefolgt von den folgenden Befehlen, wenn Sie die Bilder verwenden, die als Teil des verlinkten Download-Pakets bereitgestellt werden :

python3 faceRecognition.py crowd-of-white-people.jpg haarcascade_frontalface_default.xml
python3 faceRecognition.py crowd-of-black-

Und

-white-people.jpg haarcascade_frontalface_default.xml

Wenn Sie zur Analyse zu einem anderen Bild wechseln möchten, stellen Sie sicher, dass Sie Zeile 5 von faceRecognition.py ändern :

imagePath = „insert-name-of-image.jpg“

QuellbilderSo führen Sie eine Gesichtserkennung mit OpenCV durch

So führen Sie eine Gesichtserkennung mit OpenCV durch

So führen Sie eine Gesichtserkennung mit OpenCV durch

Eines der Dinge, die Ihnen sofort auffallen werden, ist, dass diese Bilder einen gewissen Fehler aufweisen. Obwohl es gelang, die meisten Gesichter auf den Fotos zu identifizieren, gelang es ihm auch, eine Reihe von Objekten falsch zu klassifizieren, was zu einer fehlerhaften Objektklassifizierung führte. Durch Ändern des Parameters „scaleFactor“  können Sie die Genauigkeit des Erkennungsabgleichs optimieren.

Ausgabe des Gesichtserkennungsskripts

Standardquelle 1.2 1,3-1,4
So führen Sie eine Gesichtserkennung mit OpenCV durch So führen Sie eine Gesichtserkennung mit OpenCV durch So führen Sie eine Gesichtserkennung mit OpenCV durch
So führen Sie eine Gesichtserkennung mit OpenCV durch So führen Sie eine Gesichtserkennung mit OpenCV durch So führen Sie eine Gesichtserkennung mit OpenCV durch
So führen Sie eine Gesichtserkennung mit OpenCV durch So führen Sie eine Gesichtserkennung mit OpenCV durch So führen Sie eine Gesichtserkennung mit OpenCV durch

Abschluss

Gesichtserkennung ist eine der häufigsten Anwendungen für Computer Vision, insbesondere OpenCV. Das Erstellen von Plattformen mithilfe der in OpenCV verwendeten Gesichtserkennungsalgorithmen ist schnell und effizient. Allerdings ist zu bedenken, dass Sie mit vielen eingebetteten Verzerrungen zu kämpfen haben. Dies liegt vor allem an den Trainingssätzen, die zum Trainieren der Gesichtserkennungsalgorithmen verwendet wurden. Es kann jedoch gemildert werden, die Behebung erfordert jedoch Zeit und Geduld. Wenn Sie eine Anwendung oder einen Algorithmus für Computer Vision, insbesondere Gesichtserkennung, entwickeln, berücksichtigen Sie immer zunächst die Auswirkungen der Technologien, die Sie entwickeln. Berücksichtigen Sie die Folgen einer negativen Nutzung, bevor Sie es bauen. Denn wenn die Büchse der Pandora einmal geöffnet ist, kann sie nie wieder geschlossen werden.

Laden Sie Skripte und Bilder zur Gesichtserkennung herunter

  • Möchten Sie Vorschläge zum besten Hosting für dedizierte Server ? Klicken Sie hier und lesen Sie mehr.