Dieses Mal möchte ich vorstellen, wie der zur Gesichtserkennung verwendete Kaskadendetektor installiert wird.
MacOS, Python3.6(anaconda), VSCode
① Wählen Sie die gewünschte Cascade-Datei in [Github Repositories] aus (https://github.com/opencv/opencv/tree/master/data/haarcascades). ② Öffnen Sie die Datei und klicken Sie auf Raw ③ Klicken Sie auf dem geöffneten Bildschirm mit der rechten Maustaste und speichern Sie ihn an Ihrem bevorzugten Ort.
Dies ist das Verfahren.
Hier ist der Artikel, auf den ich mich diesmal bezog. Gesichtserkennung und Pupillenerkennung mit Python, OpenCV (Gesichtserkennung, Pupillenerkennung)
xml_path_list = ["./haarcascade_frontalface_default.xml",
"./haarcascade_frontalface_alt.xml",
"./haarcascade_frontalface_alt_tree.xml",
"./haarcascade_frontalface_alt2.xml"]
Dieses Mal dachte ich, ich würde diese vier verwenden, aber ich habe die restlichen drei verwendet, weil die Dateigröße von ** "./haarcascade_frontalface_alt_tree.xml" ** zu groß für die Installation war.
Ich denke, Standard war die genaueste. Ich hatte den Eindruck, dass alt manchmal andere Teile als das Gesicht erkannte und dass alt2 manchmal das Gesicht nicht erkannte.
Dieses Mal habe ich ein Quadrat um die Stelle gemacht, an der das Gesicht erkannt wurde, daher werde ich auch beschreiben, wie es geht.
if len(face_points) == 0:
quit()
for x, y, width, height in face_points: #Holen Sie sich Koordinatenpunkte des Gesichtsbereichs
color = (0, 0, 100)
pen_w = 9
cv2.rectangle(img, (x, y), (x+width, y+height), color, thickness = pen_w)
cv2.imwrite('mosaic' + str(mosaic_num) + str(cnt) + '.jpg', img) #Bild speichern
Verwenden Sie zunächst die if-Anweisung, um festzustellen, ob das Gesicht mit ** detectMultiScale ** erkannt werden kann. Wenn nicht, endet es dort.
Und der in einem Quadrat eingeschlossene Code steht in der for-Anweisung. Geben Sie an, welche Art von Zeile mit ** cv2.rectangle ** eingeschlossen werden soll.
Dieses Mal erklärte ich, wie der Kaskadendetektor installiert wird. Dies ist praktisch, da es automatisch erkannt wird, ohne dass Sie den Gesichtserkennungscode selbst schreiben müssen. Ich habe dies auch für die erste Implementierung verwendet.
Darüber hinaus konnten wir es implementieren, indem wir es in ein Quadrat einschließen. Dies ist praktisch, da Sie auf einen Blick beurteilen können, ob das Gesicht richtig erkannt werden kann. Ich fand es lustig, weil ich das Ergebnis der Bildverarbeitung sehen konnte, sobald ich es ausführte.