如何用公网部署人脸识别设备
① 如何线上部署用python基于dlib写的人脸识别算法
python使用dlib进行人脸检测与人脸关键点标记
Dlib简介:
首先给大家介绍一下Dlib
我使用的版本是dlib-18.17,大家也可以在我这里下载:
之后进入python_examples下使用bat文件进行编译,编译需要先安装libboost-python-dev和cmake
cd to dlib-18.17/python_examples
./compile_dlib_python_mole.bat 123
之后会得到一个dlib.so,复制到dist-packages目录下即可使用
这里大家也可以直接用我编译好的.so库,但是也必须安装libboost才可以,不然python是不能调用so库的,下载地址:
将.so复制到dist-packages目录下
sudo cp dlib.so /usr/local/lib/python2.7/dist-packages/1
最新的dlib18.18好像就没有这个bat文件了,取而代之的是一个setup文件,那么安装起来应该就没有这么麻烦了,大家可以去直接安装18.18,也可以直接下载复制我的.so库,这两种方法应该都不麻烦~
有时候还会需要下面这两个库,建议大家一并安装一下
9.安装skimage
sudo apt-get install python-skimage1
10.安装imtools
sudo easy_install imtools1
Dlib face landmarks Demo
环境配置结束之后,我们首先看一下dlib提供的示例程序
1.人脸检测
dlib-18.17/python_examples/face_detector.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 THE DLIB PYTHON INTERFACE# Dlib comes with a compiled python interface for python 2.7 on MS Windows. If# you are using another python version or operating system then you need to# compile the dlib python interface before you can use this file. To do this,# run compile_dlib_python_mole.bat. This 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 -U scikit-image# Or downloaded from . import sys
import dlib
from skimage import io
detector = dlib.get_frontal_face_detector()
win = dlib.image_window()
print("a");for f in sys.argv[1:]:
print("a");
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.# 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) for i, d in enumerate(dets):
print("Detection {}, score: {}, face_type:{}".format(
d, scores[i], idx[i]))5767778798081
我把源代码精简了一下,加了一下注释: face_detector0.1.py
# -*- coding: utf-8 -*-import sys
import dlib
from skimage import io#使用dlib自带的frontal_face_detector作为我们的特征提取器detector = dlib.get_frontal_face_detector()#使用dlib提供的图片窗口win = dlib.image_window()#sys.argv[]是用来获取命令行参数的,sys.argv[0]表示代码本身文件路径,所以参数从1开始向后依次获取图片路径for f in sys.argv[1:]: #输出目前处理的图片地址
print("Processing file: {}".format(f)) #使用skimage的io读取图片
img = io.imread(f) #使用detector进行人脸检测 dets为返回的结果
dets = detector(img, 1) #dets的元素个数即为脸的个数
print("Number of faces detected: {}".format(len(dets))) #使用enumerate 函数遍历序列中的元素以及它们的下标
#下标i即为人脸序号
#left:人脸左边距离图片左边界的距离 ;right:人脸右边距离图片左边界的距离
#top:人脸上边距离图片上边界的距离 ;bottom:人脸下边距离图片上边界的距离
for i, d in enumerate(dets):
print("dets{}".format(d))
print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}"
.format( i, d.left(), d.top(), d.right(), d.bottom())) #也可以获取比较全面的信息,如获取人脸与detector的匹配程度
dets, scores, idx = detector.run(img, 1)
for i, d in enumerate(dets):
print("Detection {}, dets{},score: {}, face_type:{}".format( i, d, scores[i], idx[i]))
#绘制图片(dlib的ui库可以直接绘制dets)
win.set_image(img)
win.add_overlay(dets) #等待点击
dlib.hit_enter_to_continue()041424344454647484950
分别测试了一个人脸的和多个人脸的,以下是运行结果:
运行的时候把图片文件路径加到后面就好了
python face_detector0.1.py ./data/3.jpg12
一张脸的:
两张脸的:
这里可以看出侧脸与detector的匹配度要比正脸小的很多
2.人脸关键点提取
人脸检测我们使用了dlib自带的人脸检测器(detector),关键点提取需要一个特征提取器(predictor),为了构建特征提取器,预训练模型必不可少。
除了自行进行训练外,还可以使用官方提供的一个模型。该模型可从dlib sourceforge库下载:
arks.dat.bz2
也可以从我的连接下载:
这个库支持68个关键点的提取,一般来说也够用了,如果需要更多的特征点就要自己去训练了。
dlib-18.17/python_examples/face_landmark_detection.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 and# estimate their pose. The pose takes the form of 68 landmarks. These are# points on the face such as the corners of the mouth, along the eyebrows, on# the eyes, and so forth.## This face detector is made using the classic Histogram of Oriented# Gradients (HOG) feature combined with a linear
② 汉王人脸考勤机如何设置外网访问,就是不是局域网内,在其他地方也可以通过软件之类的可以查看考勤数据
可以通过固定ip把数据上传到服务器上不过必须有一个公网ip才能实现外网访问。
1.考勤机连接到本版地局域网上,权通过本地电脑把数据上传到服务器上,通过本地电脑和服务器汉王软件连接。
汉王人脸识别考勤机总代理,北京旭日中升如果需要方案我这边可以给你提供
③ 人脸识别终端怎么安装
人脸识别终端怎么安装,他在的话直接就是说直接在我们手机上就可以直接安装就可以。
④ 人脸识别本地部署和云端部署的区别
云端部署包括云服务,数据以及管理都交由服务商来统一管理,优点在于方便专高效,属数据不易丢失,而缺点在于数据的安全性有隐患,不如本地部署高。如果在这方面没有要求的话尽量选择云部署吧~参考网站:http://www.techshino.com
⑤ 我现在有个公网IP,请问如何能影射到服务器的内网IP上,需要什么设备吗
您好,基于对安全性要求的不同,可能有2种情况:
1、仅OA应用,直接在路由器内(防火墙容等设备)上对OA所在服务器进行端口映射,几乎不增加任何设备(路由器都支持),操作也比较方便。
2、安全性要求高,那么可能你需要让用户先VPN拨入你的内网,然后才可以访问OA,那么需要你的路由器(防火墙等)支持VPN功能,如果不支持,你可能需要部署一台服务器做VPN接入,那么这台服务器也就需要做端口映射了。
个人觉得第1种方式就足够了。。路由器的映射的话,不知道你路由器的具体型号,不过这都可以直接在所在品牌的官网去下载使用手册就可以了,很简单
⑥ 企业如何应用人脸识别系统
企业人脸识别系统可以用在考勤或者出入门禁上,而且现在人脸识别技术已经很普遍了,免费的SDK包网上都有开放的,虹软的还可以
⑦ vue如何将项目部署到服务器上并且使外网能够访问到
你的服务器是什么系统啊 ,,,linux LINUX、WINDOWS、NETWARE、UNIX。。
在linux
首先服务器安装node git nginx vue-cli
安装好nginx 用你的公网ip访问就可以看到 下面的页面
这就可以了
还有 用express 部署这个 简单些
⑧ 怎么给公网ip上的服务器部署ssl证书
您好!
可以的!请登陆Gworg注册公网IP SSL证书,最快只需15分钟!
⑨ 公司需要在软件中加入人脸识别功能,请问有没有人知道国内哪些平台有提供人脸识别SDK
其实国抄内人脸识别市场还挺大的,袭技术也足够成熟。我司的考勤系统用的是云脉的人脸识别移动考勤,识别率和识别速度都很稳定,用起来挺顺手。据说在云脉的SDK开发者平台上就可以下载SDK,如果图省事的话,还可以直接定制现成的系统。
⑩ 人脸识别是怎么实现的
人脸识别一般是对人脸使用摄像头/摄像机采集视频流/图像数据,并自动在图像数据中跟踪和检测人脸,从而对检测到的人脸进行脸部比对的一系列相关技术,也可以叫做面部识别、人像识别、脸部识别。
像云脉人脸识别可对人脸三维朝向,做精准到“度”的判断,采集到的最优人脸照片经过灰度归一化、二值化处理后,通过人脸特征值算法提取特征值,然后建模入库。现场或线上采集照片与其本人证件照进行特征值比对,从而判定是否为本人持证。