2017-06-04 3 views
0

Ich versuche dlib für die Gesichtserkennung. Aber wenn ich das Programm ausführe, habe ich einen Fehler mit skimage. Kann mir jemand helfen? Ich habe versucht, es zu lösen, aber ich kann nichtVon skimage Import io Fehler zurückverfolgen

from skimage.io import imread 
import sys 
import os 
import dlib 
import glob 
import numpy 



if len(sys.argv) != 4: 
print(
    "Call this program like this:\n" 
    " ./face_recognition.py shape_predictor_68_face_landmarks.dat dlib_face_recognition_resnet_model_v1.dat ../examples/faces\n" 
    "You can download a trained facial shape predictor and recognition model from:\n" 
    " http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2\n" 
    " http://dlib.net/files/dlib_face_recognition_resnet_model_v1.dat.bz2") 
exit() 

predictor_path = sys.argv[1] 
face_rec_model_path = sys.argv[2] 
faces_folder_path = sys.argv[3] 


detector = dlib.get_frontal_face_detector() 
sp = dlib.shape_predictor(predictor_path) 
facerec = dlib.face_recognition_model_v1(face_rec_model_path) 

win = dlib.image_window() 


for f in glob.glob(os.path.join(faces_folder_path, "*.jpg")): 
print("Processing file: {}".format(f)) 
img = io.imread(f) 

win.clear_overlay() 
win.set_image(img) 

# Ask the detector to find the bounding boxes of each face. The 1 in the 
# second argument indicates that we should upsample the image 1 time. This 
# will make everything bigger and allow us to detect more faces. 
dets = detector(img, 1) 
print("Number of faces detected: {}".format(len(dets))) 

# Now process each face we found. 
for k, d in enumerate(dets): 
    print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}".format(
     k, d.left(), d.top(), d.right(), d.bottom())) 
    # Get the landmarks/parts for the face in box d. 
    shape = sp(img, d) 
    # Draw the face landmarks on the screen so we can see what face is currently being processed. 
    win.clear_overlay() 
    win.add_overlay(d) 
    win.add_overlay(shape) 

    # Compute the 128D vector that describes the face in img identified by 
    # shape. In general, if two face descriptor vectors have a Euclidean 
    # distance between them less than 0.6 then they are from the same 
    # person, otherwise they are from different people. He we just print 
    # the vector to the screen. 
    face_descriptor = facerec.compute_face_descriptor(img, shape) 
    print(face_descriptor) 
    # It should also be noted that you can also call this function like this: 
    # face_descriptor = facerec.compute_face_descriptor(img, shape, 100) 
    # The version of the call without the 100 gets 99.13% accuracy on LFW 
    # while the version with 100 gets 99.38%. However, the 100 makes the 
    # call 100x slower to execute, so choose whatever version you like. To 
    # explain a little, the 3rd argument tells the code how many times to 
    # jitter/resample the image. When you set it to 100 it executes the 
    # face descriptor extraction 100 times on slightly modified versions of 
    # the face and returns the average result. You could also pick a more 
    # middle value, such as 10, which is only 10x slower but still gets an 
    # LFW accuracy of 99.3%. 


    dlib.hit_enter_to_continue() 

Und meine Fehlermeldung wie diese

Traceback (most recent call last): 
File "C:/Users/Android/Downloads/Compressed/dlib-19.4/dlib-19.4/python_examples/face_recognition.py", line 48, in <module> 
from skimage.io import imread 
File "C:\Users\Android\AppData\Local\Programs\Python\Python35\lib\site-packages\skimage\io\__init__.py", line 11, in <module> 
from ._io import * 
File "C:\Users\Android\AppData\Local\Programs\Python\Python35\lib\site-packages\skimage\io\_io.py", line 7, in <module> 
from ..color import rgb2grey 
File "C:\Users\Android\AppData\Local\Programs\Python\Python35\lib\site-packages\skimage\color\__init__.py", line 1, in <module> 
from .colorconv import (convert_colorspace, 
File "C:\Users\Android\AppData\Local\Programs\Python\Python35\lib\site-packages\skimage\color\colorconv.py", line 59, in <module> 
from scipy import linalg 
File "C:\Users\Android\AppData\Local\Programs\Python\Python35\lib\site-packages\scipy\__init__.py", line 61, in <module> 
from numpy._distributor_init import NUMPY_MKL # requires numpy+mkl 
ImportError: cannot import name 'NUMPY_MKL' 

helfen Bitte mir bei meinem Problem. Vielen Dank vor

Antwort

0

Imread ist aus dem Mahotas-Paket verfügbar.

Beispiel:

import mahotas as mh 
from mahotas.features import surf 
image = mh.imread('zipper.jpg', as_grey=True) 
Verwandte Themen