如今,可以使用多少个版本的Python来安装DLIB知识。其中,它还将解释具有不同版本的Python的Python的安装。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!
本文目录清单:
1. python pip安装dlib失败了?2。如何基于Dlib 3的Python部署面部识别算法。问题:
兼容问题,相应的软件包支持的操作系统,受支持的Python版本
安装问题,某些袋子只能通过源代码安装,或安装离线车轮方法
支票包的安装文件
python使用dlib执行面部检测和面部关键点标记
Dlib简介:
首先,介绍Dlib
DLIB是一个跨平台C ++公共库。除了线程支持,网络支持,测试和许多工具外,DLIB还是机器学习的功能强大的C ++库,包括机器学习中常用的许多常用算法。在同一时间,它支持一个大型数值算法的数量,例如矩阵,大整数,随机数操作等。
DLIB还包含大量图形模型算法。
最重要的是,DLIB的文档和示例非常详细。
Dlib主页:
该博客描述的面部标签的算法也来自DLIB库。Dlib用回归时间算法的合奏实现一个毫秒的面对准
本文非常出名。它将自动弥补Google上的一毫秒。这是CVPR 2014(国际计算机视觉和模型识别会议)的最高国际论文。毫秒级可以达到相当准确的面部标记,其中包括大约一半 - 千边线,脸部尚不清楚。论文本身的算法非常复杂。有兴趣的学生可以下载它。
Dlib实现了这篇最新论文的算法,因此Dlib脸的Facemark算法非常先进,并且Dlib的面部检测库也很准确。我们的项目受硬件的限制。在这种情况下,我以前尝试过一些面部库,并且识别率非常低,而DLIB的效果简直是出乎意料的。
与C ++相比,我仍然更喜欢使用Python。同时,DLIB也支持Python,但我在配置过程中触摸了很多指甲。Internet上的大多数DLIB信息用于C ++。DLIB,在这里与您分享:
Dlib用于Python配置:
因为它是使用Python来开发计算机视觉事物,所以这些Python的科学计算库是必不可少的。在这里,我介绍了常用的科学计算库的安装。安装这些图书馆的学生可以忽略正确的正确。
我的环境是Ubuntu14.04:
每个人都知道Ubuntu带有Python2.7,许多Ubuntu System软件基于Python2.7。一旦我的系统的Python版本变得混乱,我的大脑想卸载Python2.7,然后…………似乎提醒我我想卸载数千个软件。我没有直接看。当我对Ctrl + C做出反应时,系统消失了一半...
因此,我发现我想制作一个系统,这句话比RM -RF ...功能更强大。
sudo apt-get删除python2.71
首先安装两个Python第三张库的下载和安装工具。ubuntu14.04似乎已预先安装easy_install
以下过程在终端中执行:
1.安装PIP
sudo apt-get安装python-pip1
2.安装轻松安装
sudo apt-get install python-stetoops1
3.测试easy_install
有时,系统环境很复杂,安装时将安装在其他Python版本上。
sudo easy_install Mechanizize1
4.测试安装是否成功
输入python壳进入终端
python1
进入Python壳后
导入机械化1
如果没有错误,则安装成功。如果找不到,它可能是其他Python版本的途径。
同时,我还测试了PIL的基本库
进口pil1
如果没有错误,则意味着PIL已预先安装
5.安装numpy
下一个安装numpy
首先,您需要安装python-dev来编译扩展库
sudo apt-get安装python-dev1
之后,您可以安装Numpy,并安装易于安装
sudo easy_install numpy1
有时您有时会使用Easy-Antall安装Numpy进行下载,并且只能使用APT-GET安装:
sudo apt-get安装numpy1
不建议这样做的原因是,在系统环境或更多python版本之后,您可能不知道要安装numpy安装numpy,然后非常麻烦。我几次遇到了这个问题。我不知道它是运气还是什么,所以风险仍然很大,因此请尝试使用Easy-Antall安装它。
测试了类似的导入numpy
Python
导入numpy1234
如果没有错误,它将成功
以下安装过程是相同的,我将以相同的方式对其进行反映。不要忘记测试每个步骤。
6.安装Scipy
sudo apt-fin安装python-scipy1
7.安装matplotlib
sudo apt-get安装python-matplotlib1
8.安装Dlib
当时安装DLIB的过程太困难了。我在互联网上说我不知道该如何匹配。我不匹配它。我基本上尝试了stackoverflow上的方法。我已经设置了,这真的很棒。18.18我没有亲自配备自己,我没有谈论它。我将与您分享我的配置过程18.17:
1.首先,您必须安装libboost,否则不能使用它。
sudo apt-get安装libboost-python-dev cmake1
2.在DLIB的官方网站上下载DLIB,您将下载带有DLIB库的C ++版本的压缩软件包和示例文档,Python Dlib库的代码示例等。
我使用的版本是DLIB-18.17,每个人都可以在这里下载:
输入Python_examples后,使用BAT文件进行编译。该编译需要安装第一python-dev和cmake
CD至DLIB-18.17/PYTHON_EXAMPLES
https://www.shouxicto.com/article/compile_dlib_python_module.bat 123
之后,您将获得DLIB.SO,并将其复制到DistapaPages目录以使用它。
在这里,您也可以使用我直接编译.So库,但是您还必须安装LibBoost,否则Python无法致电SO Library,下载地址:
复制。
sudo cp dlib.so/usr/lib/python2.7/dist-packages/1
最新的DLIB18.18似乎没有此BAT文件。相反,它是一个设置文件,因此安装它不应该很麻烦。您可以直接安装18.18,也可以直接下载和复制我的.SO库。这两个方法不应该麻烦?
有时需要以下两个库。建议您一起安装
9.安装弹丸
sudo apt-get安装python-skimage1
10.安装iMtools
sudo easy_install imtools1
Dlib面对地标演示
环境配置结束后,让我们首先查看DLIB提供的示例程序
1.面部检测
DLIB-18.17/python_examples/face_detector.py源程序:
补充人的面孔。Face,如果您是互联网制作#或加倍的互联网。导入系统
导入dlib
从弹丸导入io
检测器= dlib.get_frontal_face_detector()
win = dlib.image_window()
打印(“ a”);对于sys.argv [1:]:
打印(“ a”);
打印(“处理文件:{}”。格式(f))
img = io.imread(f)
#第二个参数中的1表示我们应该对图像进行示例
# 1次。这将使一切变得更大,并使我们能够发现更多
#面。
dets =检测器(IMG,1)
print(“检测:{}”。
print(“检测{}:左:{} top:{}右:{}底部:{}”。格式(
i,d.left(),d.top(),d.richt(),d.bottom()))))
win.clear_overlay()
win.set_image(img)
win.add_overlay(DETS)
探测器匹配。这可以用来#打破识别异常方向的面孔。如果(lan(sys.argv [1:])0):
img = io.imread(sys.argv [1])
dets,得分,idx = detector.run(img,1)for i,d in e Menumerate(dets):
print(“检测{},得分:{},face_type:{}”。格式(
我简化了源代码并添加了一个注:face_detector0.1.py
# - * - 编码:UTF-8 - * - 导入系统
导入dlib
从弹丸导入io#使用dlib的frontal_face_detector作为我们的功能提取器= dlib.get_frontal_face_detector()#parameter,sys.argv [0]表示代码本身,因此参数从fting sys.sys.sys.argv [1:]获取图片路径,:#output当前处理的图片地址处理的图片地址
打印(“处理文件:{}”。格式(f)##
img = io.imream(f)#use检测器用于返回的结果
dets =检测器(img,1)#dets元素编号是面孔的数量
print(“检测到面孔的数量:{}”。格式(len(dets))##
#我是面部序列号
#left:面部脸左边界之间的距离;右:面部右侧的左边界的距离
#top:脸部面部边界之间的距离;底部:脸部面部图片之间的边界之间的距离
对于,d在枚举中(设计):
打印(“ dets {}”。格式(d))
print(“检测{}:左:{}顶部:{}右:{}底部:{}”
.format(i,d.left(),d.top(),d.richt(),d.bottom())##也可以获取更全面的信息,例如获得面部和检测器的匹配程度
dets,得分,idx = detector.run(img,1)
对于,d在枚举中(设计):
print(“检测{},dets {},得分:{},face_type:{}”。格式(i,d,scores [i],idx [i]))))))))))))))))
#draw thuption(DLIB的UI库可以直接绘制DETS)
win.set_image(img)
win.add_overlay(dets)#waiting用于单击
dlib.hit_enter_to_continue()12345678911111131314171920222222222222272728293333333434344444444444950
分别测试一个人的脸和多个面孔。以下是操作的结果:
只需在运行时将图片文件路径添加到背面
python face_detector0.1.py https://www.shouxicto.com/article/data/3.jpg12
一张脸:
双面人:
在这里,我们可以看到侧面和探测器的匹配比正面小得多
2.面部的钥匙点提取
面部检测我们使用DLIB自己的面部检测器(检测器)。关键点提取需要特征提取器。为了构建功能提取器,预训练模型至关重要。
除了自己培训外,您还可以使用官方模型。该模型可以从DLIB SourceForge库下载:
arks.dat.bz2
您也可以从我的连接中下载:
该库支持提取68个关键点。一般来说,这足够了。如果您需要更多功能点,则需要训练自己。
DLIB-18.17/python_examples/face_landmark_detection.py源程序:
功能与线性结合
以下是在Ubuntu下为Python安装Dlib的方法:
1.在官方网站DLIB官方网站上下载最新版本的DLIB
由于DLIB最初是C ++库,因此它被安装为Python第三部分库。
2.下载Boost将C ++编译到Python中,并同时下载CMAKE
命令:sudo apt-get安装libboost-python-dev cmake1111
3.然后切换到DLIB-18.17/python_examples目录
然后运行
https://www.shouxicto.com/article/compile_dlib_python_module.bat 11
它将生成dlib。
4.此脚本还添加了执行权限
这样,可以在DLIB-18.17/python_examples中导入DLIB库,但不能
在Python第三库的文件夹下复制Dlib.SO
sudo cp dlib.so/usr/lib/python2.7/dist-packages/11
因此安装了dlib库
因为该项目中有许多依赖库,所以我只是下载了Anaconda。这是Python发行版本,包括Python和许多常见的软件库,并且再次安装了Bag Manager Conda.Python。
1.下载Anaconda的链接:
我下载了与Python2.7版本相对应的64个-bit Anaconda4.2.0,我的计算机系统是Win64。
2.当前的问题被转换为如何使用Anaconda(Anaconda不包含DLIB库)安装第三张库,在您自己的计算机上运行cmd.exe,并直接在默认路径上直接执行以下程序以成功安装它:
conda install -c menpo dlib = 18.18
3.如果执行正常,则应显示上面的图。几天来困扰我的问题终于解决了。太多的弯路也是学习的过程。我希望每个人都能获得一些东西。
简单的介绍
该库可以通过Python或命令行实现面部识别功能。在户外面部检测数据库基础标准中,在深度学习面部识别技术中使用DLIB的准确率为99.38%。
GitHub上有相关的链接和API文档。
下面提供的一些相关源代码或文档。库的当前版本为v0.2.0。单击文档以查看API文档。我们可以查看一些与功能相关的说明。
安装
安装配置非常简单,只需逐步按照Github上的说明即可。
根据您的Python版本输入说明:
PIP安装face_rcognition11
或者
PIP3安装face_rcognition11
通常,在安装过程中会出现错误,并且在安装DLIB时会发生错误,并且错误可能卡在此处。由于pip在编译DLIB时会出现错误,因此我们需要手动编译DLIB以进行安装。
根据给出的解决方案:
1.首先下载DLIB的源代码。
git克隆
2.编译Dlib。
CD Dlib
mkdir构建
CD构建
cmake .. -ddlib_use_cuda = 0 -duse_avx_instructions = 1
CMAKE -BUILD1234512345
3.编译并安装Python扩展程序包。
CD ..
python3 setup.py install -yes use_avx_instructions -no dlib_use_cuda121212
注意:此安装步骤被认为没有GPU,因此不支持CUDA。
手动编译Dlib后,我们可以在Python中导入Dlib。
恢复后,您可以成功配置它。
根据您的Python版本输入说明:
PIP安装face_rcognition11
或者
PIP3安装face_rcognition11
安装成功后,我们可以在Python中正常导入face_recognition。
写面部识别程序
写PY文件:
# - * - 编码:UTF-8 - * -
#
#侦探面
导入face_recognition
导入CV2
#阅读图片并识别脸部
img = face_recognition.load_image_file(“ silicon_valley.jpg”)
face_locations = face_recogninion.face_locations(img)
打印face_locations
#调用OpenCV功能显示图像
img = cv2.imread(“ silicon_valley.jpg”)
CV2.NamedWindow(“原始图片”)
cv2.imshow(“原始图片”,img)
#每个人的脸和标记
facenum = len(face_locations)
对于我的范围(0,facenum):
top = face_locations [i] [0]
正确= face_locations [i] [1]
底部= face_locations [i] [2]
左= face_locations [i] [3]
开始=(左,顶部)
end =(右,底部)
颜色=(55,255,155)
厚度= 3
cv2.Rectangle(IMG,开始,结束,颜色,厚度)
#显示识别结果
CV2.NamedWindow(“识别”)
cv2.imshow(“识别”,img)
CV2.Waitkey(0)
注意:此处使用Python-OpnCV。您必须配置OpenCV以成功运行。
操作结果:
该程序在当前目录中读取指定的图片,然后识别该人的脸,并标记每个人的脸。
(使用美国戏剧硅谷的图片)
编写面部比较程序
首先,我在目录中放了几张图片:
这是一张工作的照片和奥巴马的照片,还有一张未知的照片。
编程:
#adm图片中的脸
导入face_recognition
jobs_image = face_recognition.load_image_file(“ jobs.jpg”);
obama_image = face_recognition.load_image_file(“ obama.jpg”);
unknown_image = face_recognition.load_image_file(“ unknown.jpg”);
jobs_encoding = face_recognition.face_encodings(jobs_image)[0]
obama_encoding = face_recognition.face_encodings(obama_image)[0]
unknown_encoding = face_recognition.face_encodings(unknown_image)[0]
结果= face_recognition.compare_faces([jobs_encoding,obama_encoding],unknown_encoding)
标签= ['jobs','obama']
打印('结果:'+str(结果))
对于I范围(0,LEN(结果)):
如果结果[i] == true:
print('该人是:'+标签[i])12345678910111313141718123478911111121314161718
操作结果:
未知的照片是通过乔布斯确定的。
真实的时间识别相机
代码:
# - * - 编码:UTF-8 - * -
导入face_recognition
导入CV2
video_capture = cv2.VIDEOCAPTURE(1)
obama_img = face_recognition.load_image_file(“ obama.jpg”)
obama_face_encoding = face_recognition.face_encodings(obama_img)[0]
face_locations = []
face_encodings = []
face_names = []
process_this_frame = true
而真:
ret,frame = video_capture.read()
small_frame = cv2.Resize(帧,(0,0),fx = 0.25,fy = 0.25)
如果process_this_frame:
face_locations = face_recogninion.face_locations(small_frame)
face_encodings = face_recognition.face_encodings(small_frame,face_locations)
face_names = []
对于face_encodings中的face_encoding:
match = face_recognition.compare_faces([[obama_face_encoding],face_encoding)
如果匹配[0]:
名称=“巴拉克”
别的:
名称=“未知”
face_names.append(名称)
process_this_frame = not proces_this_frame
for(顶部,右,底部,左),zip名称(face_locations,face_names):)::
顶 *= 4
正确 *= 4
底部 *= 4
左 *= 4
cv2.Rectangle(框架,(左,顶部),(右下,底部),(0,0,255),2)
cv2.Rectangle(帧,(左,底部-35),(右,底部),(0,0,255),2)
font = cv2.font_hershey_duplex
cv2.putText(帧,名称,(左+6,底部6),字体,1.0,(255,255,255),1)
cv2.imshow('视频',框架)
如果cv2.waitkey(1)0xff == orde('q'):
休息
Video_capture.Release()
识别结果:
我在手机上的百度上尝试了几张照片,该程序认可了奥巴马。
这个图书馆很酷!
可以使用不同版本的Python安装和安装多少个版本的Python。我想知道您是否从中找到了所需的信息?如果您想进一步了解此信息,请记住要收集对该网站的关注。