OpenCV ist eine Open Source-Bibliothek, die für die Bildverarbeitung verwendet werden kann. Es kann auch in Python verwendet werden, sodass es auch beim maschinellen Lernen verwendet werden kann. Dieses Mal werde ich versuchen, das Gesicht mit diesem OpenCV zu erkennen.
Diese Betriebsumgebung
Laden Sie das Bild, erkennen Sie das Gesicht im Bild und zeigen Sie die Koordinaten und die Größe des Gesichts an. Danach wird das erkannte Gesicht als rotes Quadrat angezeigt. OpenCV verfügt über mehrere Feature-Datendateien (Kaskadendateien), die zur Gesichtserkennung verwendet werden können. Dieses Mal verwenden wir "haarcascade_frontalface_alt.xml" als Datendatei, die das Gesicht erkennt, wenn es nach vorne zeigt. Außerdem erkennen wir diesmal das folgende Bild (`` before.jpg``` im Quellcode).
Referenzquelle: https://www.pakutaso.com/assets_c/2016/03/SAYA151005380I9A8403-thumb-autox1600-21549.jpg
front_face.py
#coding: utf-8
import cv2
cascade_file = "haarcascade_frontalface_alt.xml"
image_file = "before.jpg "
img = cv2.imread(image_file)
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cascade = cv2.CascadeClassifier(cascade_file)
face_list = cascade.detectMultiScale(img_gray, minSize=(150, 150))
if len(face_list) == 0:
print("Fail recognise")
quit()
for (x, y, w, h) in face_list:
print("Gesichtskoordinaten=", x, y, w, h)
color = (0, 0, 225)
pen_w = 8
cv2.rectangle(img, (x, y), (x+w, y+h), color, thickness = pen_w)
cv2.imwrite("after.jpg ", img)
Als ich es ausführte, bekam ich den folgenden Fehler.
OpenCV Error: Assertion failed (!empty()) in detectMultiScale, file /home/travis/miniconda/conda-bld/conda_1486587069159/work/opencv-3.1.0/modules/objdetect/src/cascadedetect.cpp, line 1639
Traceback (most recent call last):
File "face_front.py", line 11, in <module>
face_list = cascade.detectMultiScale(img_gray, minSize=(150, 150))
cv2.error: /home/travis/miniconda/conda-bld/conda_1486587069159/work/opencv-3.1.0/modules/objdetect/src/cascadedetect.cpp:1639: error: (-215) !empty() in function detectMultiScale
--Ursache
Als ich es nachgeschlagen habe, scheint es ein Fehler zu sein, der durch den falschen Pfad der Kaskadendatei verursacht wurde.
Als erste Hilfe konnte ich diese Kaskadendatei in das Verzeichnis mit dem Quellcode kopieren und verwenden.
Das Ergebnis der Ausführung ist das folgende Bild.
Von der Installation von OpenCV3.1 unter Ubuntu16.04 LTS bis zum Gesichtserkennungstest
Recommended Posts