AttributeError: 'module' object has no attribute 'get_frontal_face_detector'

我是研究僧i 提交于 2020-04-16 02:08:18

问题


I was trying to use python's dlib library to detect the facial landmarks. I was using the example given on face detector. I have installed all the dependencies before installing dlib.

First I installed cmake and libboost using "sudo apt-get install libboost-python-dev cmake" as given on the link above. I then installed dlib using "pip install dlib".

My code:

import sys
import os
import dlib
import glob
from skimage import io

predictor_path = 'shape_predictor_68_face_landmarks.dat'
faces_folder_path = './happy'
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor(predictor_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)))
    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 = predictor(img, d)
        print("Part 0: {}, Part 1: {} ...".format(shape.part(0),
                                                  shape.part(1)))
        # Draw the face landmarks on the screen.
        win.add_overlay(shape)

    win.add_overlay(dets)
    dlib.hit_enter_to_continue() 

But when I run the program, I get the following error:

Traceback (most recent call last):
  File "dlib.py", line 2, in <module>
    import dlib
  File "/home/shivam/musicplayer/dlib.py", line 6, in <module>
    detector = dlib.get_frontal_face_detector() #Face detector
AttributeError: 'module' object has no attribute 'get_frontal_face_detector'

Here is the directory structure of my project:


回答1:


Rename your file from dlib.py to something else, say dlib_project.py.

Your file, named so, is shadowing the dlib library that has all of the functionality you need, as it is imported instead of the library, being first in the hierarchy.



来源:https://stackoverflow.com/questions/39518871/attributeerror-module-object-has-no-attribute-get-frontal-face-detector

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!