简体   繁体   English

AttributeError: 'module' 对象没有属性 'get_frontal_face_detector'

[英]AttributeError: 'module' object has no attribute 'get_frontal_face_detector'

I was trying to use python's dlib library to detect the facial landmarks.我试图使用 python 的 dlib 库来检测面部标志。 I was using the example given on face detector .我正在使用面部检测器上给出的示例。 I have installed all the dependencies before installing dlib.在安装 dlib 之前,我已经安装了所有依赖项。

First I installed cmake and libboost using "sudo apt-get install libboost-python-dev cmake" as given on the link above.首先,我使用上面链接中给出的“sudo apt-get install libboost-python-dev cmake”安装了 cmake 和 libboost。 I then installed dlib using "pip install dlib".然后我使用“pip install dlib”安装了 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:这是我的项目的目录结构: 在此处输入图片说明

Rename your file from dlib.py to something else, say dlib_project.py .将您的文件从dlib.py重命名为其他名称,例如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.您命名为 so 的文件隐藏了具有您需要的所有功能的dlib库,因为它是导入的,而不是库,在层次结构中处于首位。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM