Windows版本Dlib配置链接: 地址
1.准备工作
Dlib库下载链接: 地址
首先需要Cmake以及编译C++成python程序的工具【参考1】
- sudo apt-get install libboost-python-dev cmake
如果没有setuptools工具的需要安装,指令如下:
python2.x:
wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
python3.x
wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python3.4
2.安装dlib
接着cd到Dlib的目录运行,参考:地址
运行:(如果提示没权限记得 sudo su)
- python setup.py install
3.测试
- python
- import dlib
4.运行人脸检测
下面来运行经典的Dlib的landmark~
先安装下pip,参考链接:地址
- sudo apt-get install python-pip python-dev build-essential
- sudo pip install --upgrade pip
- sudo pip install --upgrade virtualenv
然后安装skimage.io模块,参考: 地址
- sudo pip install scikit-image
- sudo apt-get install python-skimage
人脸检测
新建fr.py
- #!/usr/bin/python
- # The contents of this file are in the public domain. See LICENSE_FOR_EXAMPLE_PROGRAMS.txt
- #
- # This example program shows how to find frontal human faces in an image. In
- # particular, it shows how you can take a list of images from the command
- # line and display each on the screen with red boxes overlaid on each human
- # face.
- #
- # The examples/faces folder contains some jpg images of people. You can run
- # this program on them and see the detections by executing the
- # following command:
- # ./face_detector.py ../examples/faces/*.jpg
- #
- # This face detector is made using the now classic Histogram of Oriented
- # Gradients (HOG) feature combined with a linear classifier, an image
- # pyramid, and sliding window detection scheme. This type of object detector
- # is fairly general and capable of detecting many types of semi-rigid objects
- # in addition to human faces. Therefore, if you are interested in making
- # your own object detectors then read the train_object_detector.py example
- # program.
- #
- #
- # COMPILING/INSTALLING THE DLIB PYTHON INTERFACE
- # You can install dlib using the command:
- # pip install dlib
- #
- # Alternatively, if you want to compile dlib yourself then go into the dlib
- # root folder and run:
- # python setup.py install
- # or
- # python setup.py install --yes USE_AVX_INSTRUCTIONS
- # if you have a CPU that supports AVX instructions, since this makes some
- # things run faster.
- #
- # Compiling dlib should work on any operating system so long as you have
- # CMake and boost-python installed. On Ubuntu, this can be done easily by
- # running the command:
- # sudo apt-get install libboost-python-dev cmake
- #
- # Also note that this example requires scikit-image which can be installed
- # via the command:
- # pip install scikit-image
- # Or downloaded from http://scikit-image.org/download.html.
- import sys
- import dlib
- from skimage import io
- detector = dlib.get_frontal_face_detector()
- win = dlib.image_window()
- for f in sys.argv[1:]:
- print("Processing file: {}".format(f))
- img = io.imread(f)
- # 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 i, d in enumerate(dets):
- print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}".format(
- i, d.left(), d.top(), d.right(), d.bottom()))
- win.clear_overlay()
- win.set_image(img)
- win.add_overlay(dets)
- dlib.hit_enter_to_continue()
- # Finally, if you really want to you can ask the detector to tell you the score
- # for each detection. The score is bigger for more confident detections.
- # The third argument to run is an optional adjustment to the detection threshold,
- # where a negative value will return more detections and a positive value fewer.
- # Also, the idx tells you which of the face sub-detectors matched. This can be
- # used to broadly identify faces in different orientations.
- if (len(sys.argv[1:]) > 0):
- img = io.imread(sys.argv[1])
- dets, scores, idx = detector.run(img, 1, -1)
- for i, d in enumerate(dets):
- print("Detection {}, score: {}, face_type:{}".format(
- d, scores[i], idx[i]))
运行:
- python fr.py 1.jpeg
效果如图: