好的。首先,需要明确一点,dlib模块对于Windows系统用户来说,安装起来相对来说比较麻烦。以下是Win10环境下python3.7安装dlib模块的攻略,具体步骤如下:
步骤一:安装CMake
在dlib官网上需要下载CMake工具。下载地址:https://cmake.org/download/。
这里选择 cmake-3.19.1-windows-x86_64.msi 版本,下载后进行安装。
步骤二:安装Visual Studio build tools
dlib没有Windows环境的wheel包,因此需要安装Visual Studio build tools进行本地编译。
打开Visual Studio官网,下载对应版本的Visual Studio build tools即可。这里选择了 Visual Studio Build Tools 2019,下载后进行安装。
步骤三:安装Boost
(1)在dlib官网上选择下载 Boost C++ Libraries 的源代码,并解压到一个文件夹中,例如 E:\libraries\boost_1_70_0
。
(2)打开Vistual Studio x64 Native Tools Command Prompt
,切换到解压后的Boost源代码目录下,运行以下命令:
.\bootstrap.bat
.\b2
注意: 这里的命令使用了当前已安装的Visual Studio build tools版本。如果你使用其他版本的Visual Studio build tools,那么这里的命令也需要作出相应的调整。
步骤四:安装dlib
(1)确保已安装Python,推荐使用conda载入多个版本的Python,在命令行中运行以下命令安装依赖包:
conda install numpy pandas matplotlib
(2)在命令行中运行以下命令,安装dlib:
pip install dlib==19.18.0 --verbose --no-cache-dir --install-option= --fast-build --no-use-pep517
注意: dlib 需要特别慎重,建议在创建虚拟环境后进行安装。
这里给出一个使用dlib训练图像分类器的示例,代码如下:
import dlib
import cv2
# 加载训练数据
svm = cv2.ml.SVM_create()
svm.setType(cv2.ml.SVM_C_SVC)
svm.setKernel(cv2.ml.SVM_LINEAR)
svm.setTermCriteria((cv2.TERM_CRITERIA_MAX_ITER, 100, 1e-6))
# 加载图像数据并进行训练
data = dlib.get_frontal_face_detector() # 加载人脸检测器的数据
print('begin training')
for i in range(1, 41):
# 加载当前训练数据集
face_folder = 'faces/s' + str(i) + '/'
for j in range(1, 11):
# 加载当前图像
image_path = face_folder + str(j) + '.pgm'
img = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
img = cv2.resize(img, (32, 32))
hog = dlib.vector_to_matrix(dlib.extract_image_chip(img, dlib.rectangle(0, 0, 32, 32)))
# 训练模型
svm.train(hog, cv2.ml.ROW_SAMPLE, [i])
另外还有一个使用dlib进行人脸检测的示例,代码如下:
import dlib
import cv2
detector = dlib.get_frontal_face_detector() # 加载人脸检测器
image = cv2.imread('test.jpg')
# 缩小图像,加快计算速度
small_image = cv2.resize(image, (int(image.shape[1]/2), int(image.shape[0]/2)))
# 将图像从BGR格式转为RGB格式,因为dlib检测器只支持RGB格式
rgb_image = cv2.cvtColor(small_image, cv2.COLOR_BGR2RGB)
# 对图像进行人脸检测
dets = detector(rgb_image, 1)
# 遍历检测出的人脸位置
for i, d in enumerate(dets):
cv2.rectangle(small_image, (d.left(), d.top()), (d.right(), d.bottom()), (0, 255, 0), 2)
cv2.imwrite('result.jpg', small_image)
希望对你有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Win10环境python3.7安装dlib模块趟过的坑 - Python技术站