十博体育投注官网

如何制作人脸识别软件十博体育投注官网

今天, 我写这篇文章是为了讨论如何使用OpenCV库在Python中制作人脸识别软件,...

写的 尼尔·帕特尔 · 9分钟阅读 > <路径 d="M12 .288l2.833 8.718h9.167l-7.417 5.389 2.833 8.718-7.416-5.388-7.417 5.388 2.833-8.718-7.416-5.389h9.167z">
如何制作人脸识别软件

人工智能和机器学习的最新成果之一是人脸或人脸识别软件或应用.

面部识别系统正在慢慢渗透到十博体育投注的日常生活中. 他们可以从人群中认出你,并确定你是一个人, 哪些会导致各种各样的结果. 他们可以解锁你的手机屏幕, 支付您的购买, 把你囚禁, 在办公室记录你的出勤情况, 并且可以做更多超出十博体育投注想象的事情. 我正在开发一种面部识别算法我的面部识别软件甚至可以识别出你想的图片. 还能帮你画出仙女女王. 让十博体育投注回到主题上来.

创建面部识别软件或十博体育投注官网有两种常见的方法

  1. 第一种方法是使用预先训练 模型 如 dlibDeepFaceFaceNet和其他. 所以今天十博体育投注将讨论这个方法. 这将花费更少的时间和努力.
  2. 制作人脸检测软件的第二种方法是从头开始创建一个神经网络. 该方法适用于具有复杂特征的多用途人脸识别系统. 那需要更多的时间和精力, 还有训练数据库里的数百万张照片, 而不是事先训练好的模型, 哪一个在迁移学习中只需要数千张图像.

世界上最大的人工智能公司

今天,我写这篇文章来讨论

如何在Python中使用OpenCV库DLib制作人脸识别软件

但是这些人脸识别软件在实践中是如何工作的呢, 它们有多准确, 谁有权力在公共门户上使用它们? 让十博体育投注自己用免费的开源软件和朋友的照片来找出答案吧. 让我继续告诉你, 这类面部识别软件安装在公司办公室等私人区域.

让十博体育投注把制作人脸识别软件所需要的所有东西列个清单

  1. 你需要下载 崇高的文本 下载完成后, 打开文本编辑器Sublime text并继续安装说明. 这就是十博体育投注创建代码的地方,这些代码最终会变成软件.

2. 检查以确定是否 Python 3 已安装在您的机器上. 这是最被推荐的用python制作图像识别软件的编程语言. 这是十博体育投注创建代码所使用的语言. 在Mac或Windows电脑上打开终端(在十博体育投注官网的实用程序文件夹下)或命令提示符(单击Windows + X并选择命令提示符)来实现这一点. 然后按enter键输入以下内容:

3. 返回终端或命令提示符,并键入以下命令, 在每一行之后按回车键安装所需的包. 到第四行要花点时间,dlib.

pip3安装cmake
pip3安装face_recognition
pip3安装numpy
pip3安装dlib
pip3安装opencv-python

我将在下面的第2节中继续设置此代码

在知道如何制作人脸识别软件之前,十博体育投注先要经过人脸检测和识别的过程

面部识别过程从安装在任何设备上的摄像头十博体育投注官网开始. 申请书是写在 Golang 并作为一个本地控制台十博体育投注官网运行在这两个 Raspbian 和Ubuntu. 当十博体育投注官网第一次启动时,必须使用JSON配置文件设置本地相机ID和相机阅读器类型.
在那之后, 这个程序可以利用计算机视觉和深度神经网络来发现流中的潜在面孔.

有两种基本的方法都是有效的:

  1. TensorFlow对象检测模型
  2. 咖啡的脸跟踪

这两种解决方案都被证明是有效的,现在被包括在 OpenCV图书馆.

一旦面部识别软件拍下了一张脸, 裁剪后的图像将通过HTTP表单数据请求发送到后端. 然后,API将此面部图像保存在本地文件系统和检测日志中, 以及一个personID.

图2:欧几里德距离

如何用python创建人脸识别软件

在后端,算法查找具有该值的记录 “机密”= false 并使用Dlib函数创建了一个128维的向量来描述这张脸的品质. 然后,程序使用欧几里德距离将这个向量与数据库中所有的面部记录进行比较,看看这个新面孔是否与之前记录的任何面孔相匹配.

如何制作人脸检测算法

上图是Dlib函数代码的表示, 与索引点对应的部分的脸. 使用上述算法, 十博体育投注可以创建一个人脸识别软件,它可以检测出80%以上的人脸. 这只是一个演示代码来表示结构.

了解人脸识别软件的制作阶段

制作一个带有人脸识别技术的移动应用, 你必须首先弄清楚你需要做什么步骤. 鉴定程序的几个步骤是什么?

  • 一开始是人脸检测. 首先,系统必须对图像中的人脸进行检测. This isn’t about identifying a person yet; it’s just about the fact that you’re staring at a human face. 如果制作面部检测软件的想法对你有吸引力, 你不需要更高级的东西, 的程序.
  • 参考点的确定现在还有很多更敏感的工作要做. 这个程序在脸上寻找可以用来确定一个人的独特品质的参考点(特征). 以前, 眼睛被认为是主要的参考点, 但是今天的计算技术已经发展到包含70多个关键方面.
  • 为了使匹配过程更容易,需要改变人脸以获得正面图片.
  • 计算特征描述符现在是描述符, 哪一组特征是描述一个人的脸而不受年龄影响的, 发型, 或其他因素, 被确定. 更具体地说, 十博体育投注需要一幅特定的数字肖像, 面对向量, 为了进行更准确的比较.
  • 面部对比. 将生成的数字人脸向量与数据库中包含的条目进行匹配是第五阶段.
  • 人脸识别是一个人(或, 更准确地说, 他或她的脸),当找到匹配的.

第二节:

如何用python创建人脸识别软件

pip3安装cmake
pip3安装face_recognition
pip3安装numpy
pip3安装dlib
pip3安装opencv-python

如果最后的命令要求你安装Xcode(适用于mac),去App Store并安装. 这可能需要一段时间,因为它是相当大. 然后重新输入最后一行(pip3 install OpenCV-python)并按回车.

制作和运行十博体育投注安装的十博体育投注官网

1. 将下面的代码复制粘贴到崇高的文本的开源代码段中.

#code分叉和调整从http://github.com/年龄itgey/face_recognition/blob/master/examples/facerec_from_webcam_faster.py
#扩展,只需添加更多的人到known_people文件夹

进口face_recognition
进口cv2
将numpy作为np导入
进口操作系统
进口一滴

#获取一个引用到webcam #0(默认)
video_capture = cv2.VideoCapture (0)

#make array of sample pictures with encoding .创建图片编码
known_face_encodings = []
known_face_names = []
目录名=操作系统.路径.目录名(__file__)
路径=操作系统.路径.加入(目录名,known_people /)

#创建所有保存的JPG文件路径的数组
List_of_files = [f for f in glob.一团(路径+‘*.jpg”))
#找到一些已知的面孔
number_files = len (list_of_files)

名称= list_of_files.副本()

For I in range(number_files):
    全局变量()[' im年龄_{}”.格式(我))= face_recognition.load_im年龄_file (list_of_files[我])
    全局变量()[' im年龄_encoding_{}”.格式(我))= face_recognition.face_encodings (globals () [' im年龄_{}”.格式(我)])[0]
    known_face_encodings.追加(globals () [' im年龄_encoding_{}”.格式(我))

    #创建已知名称的数组
    名称[我]=名称[我].替换(“known_people / ", " ")  
    known_face_names.追加(名称[我])

#初始化一些变量
face_locations = []
face_encodings = []
face_names = []
process_this_frame = True

而真正的:
    #抓取一帧视频
    Ret, frame = video_capture.read ()

    #调整视频帧的大小为1/4大小,以更快的人脸识别处理
    small_frame = cv2.调整(frame, (0,0)), fx=0.25, fy=0.25)

    #将图像从BGR颜色(OpenCV使用)转换为RGB颜色(face_recognition使用)
    Rgb_small_frame = small_frame[:,:,::-1]

    只处理视频的每一帧以节省时间
    如果process_this_frame:
        #查找当前视频帧中所有的人脸和人脸编码
        face_locations = face_recognition.face_locations (rgb_small_frame)
        face_encodings = face_recognition.face_encodings (rgb_small_frame face_locations)

        face_names = []
        对于face_encoding中的face_encoding:
            #看看这张脸是否与已知的脸相匹配
            匹配= face_recognition.compare_faces (known_face_encodings face_encoding)
            name = "未知"

            # #如果在known_face_encodings中找到匹配,只使用第一个.
            #如果匹配为True:
            # first_match_index =匹配.指数(真正的)
            # name = known_face_names[first_match_index]

            #或者,使用与新面孔距离最小的已知面孔
            face_distances = face_recognition.face_distance (known_face_encodings face_encoding)
            best_match_index = np.argmin (face_distances)
            如果匹配(best_match_index):
                name = known_face_names [best_match_index]

            face_names.追加(名字)

    Process_this_frame =不是Process_this_frame


    #显示结果
    For (top, right, bottom, left), name in zip(face_locations, face_names):
        #缩放面部位置,因为十博体育投注检测到的帧被缩放到1/4大小
        顶级* = 4
        对* = 4
        底* = 4
        左* = 4

        #在脸周围画一个框
        cv2.矩形(frame, (left, top), (right, bottom), (0,0,255), 2)

        #画一个标签,在脸下面写上名字
        cv2.矩形(frame, (left, bottom - 35), (right, bottom), (0,0,255), cv2.填满)
        字体= cv2.FONT_HERSHEY_DUPLEX
        cv2.putText(框架,名称,(左+ 6,底- 6),字体,1.0, (255, 255, 255), 1)

    #显示生成的图像
    cv2.imshow(“视频”,帧)

    #按键盘上的'q'退出!
    如果cv2.waitKey (1) & 0 xff = =奥德(问):
        打破

#释放摄像头手柄
video_capture.release ()
cv2.destroyAllWindows ()

2. 用上面写的算法保存这个文件作为人脸识别.Py在系统中, 然后创建一个名为known people的文件夹(确保这个文件夹也在Desktop文件夹中).

3. 现在,十博体育投注可以通过保存人脸的图像,将想要识别的人的照片添加到“已知人物”文件夹中. 确保照片中的个人面朝前,并且是照片中唯一的一个人(必要时裁剪). 每个文件都有十博体育投注希望在屏幕上显示的人名. 只有.在这个场景中将使用JPG文件.

4. 要执行十博体育投注官网, 返回到终端(Mac)或命令提示符(Windows),输入以下内容并单击回车.

cd桌面
python3 recognise_face.py

<---- if an error mess年龄 appears try:----!>

python recognise_face.py


按Ctrl + c与终端窗口选择将退出程序.

总而言之,人脸识别过程可以分为四个步骤.

  1. 检测帧中出现的任何人脸.
  2. 做一个面具, 在脸上找到精确的斑点, 比如鼻尖和眼角,如图2所示:欧几里德距离. 然后, 仅使用保持原始形状的更改, 比如旋转和缩放, 重新定位掩模,使其指向正前方.
  3. 编码过程. 这个阶段需要找到一张脸的基本特征(通过计算机视觉),在同一个人的照片中会有相似之处,但在其他人的照片中会有不同之处.
如何用python制作人脸识别软件

世界舞台上的人脸识别程序

彭博社估计,全球面部识别市场的价值将达到7美元.到2022年达到760亿. (从4.2017年是50亿美元).

在这方面, 了解全球哪里的人从面部识别软件(十博体育投注官网)中赚的钱最多,这将是一件很有趣的事情, 网站, 和其他项目). 下图给出了这个问题的答案.

人脸识别软件需求逐年增加

在人脸识别软件中识别人脸的方法

  • 二维识别是目前流行的人脸识别方法. 它是基于二维图片的比较和使用.
  • 三维识别. 这种方法越来越受欢迎, 尽管事实上它仍然明显低于之前的那个. 它利用了重建三维图像的能力. 苹果的Face ID是最著名的3D扫描仪之一.
  • 在一个受控的环境中,人脸识别被执行. The recognition model is straightforward; it presupposes a motionless and controllable background. 在这种情况下, 一个面部识别十博体育投注官网可以轻松地分离单个元素(比如眼睛), 鼻子, 和嘴巴),并重新创造了整个物品(一张人脸).
  • 基于颜色的人脸识别. 该软件检查图像中正常肤色的区域,并试图捕捉, 分析, 识别面部部分.
  • 基于皮肤纹理的人脸识别. 十博体育投注正在处理高分辨率的照片,可以对皮肤的纹理进行详细的评估, 包括线, 皱纹, 和毛孔.
  • 基于运动的人脸搜索它与具有运动效果的视频图像有关. 在这种情况下,软件应该检查特定的参考点, 比如眨眼, 眉毛, 鼻子, 额头, 或嘴唇. 一旦这些元素被识别,算法就会尝试建模并识别人脸, 并与数据库中的数据进行比较.
  • 使用热成像的人脸识别. 近年来, 热成像相机在识别人脸方面越来越受欢迎. 此外,该地区每年都在不断演变.

如何制作人脸识别手机应用?

最重要的问题无疑是如何用python编写人脸识别软件. 你需要什么资源来实现你的理念?

有很多选择,十博体育投注将描述3个最流行的.

本地api

为和roid或iOS构建人脸识别应用的最直接方法是使用苹果和谷歌的Native api. 它不贵,易于执行,不需要任何额外的费用或努力. 当然,不会有很多功能,但谁知道呢,也许足够完成工作了.

第三方解决方案

制作人脸识别软件是一种易于使用的第三方解决方案是第二种选择. 和, 让十博体育投注说, 这些工具的选择范围之广会让你大吃一惊:许多公司都有api,可以用来开发面部检测十博体育投注官网. 你觉得这些怎么样?

  • 视觉识别API是亚马逊众多开发产品之一(还包括购物平台和云解决方案). 此外,游戏还提供付费和免费选择.
  • 的Luxand.云API使开发者能够创建可以评估人类性的十博体育投注官网, 年龄, 情感状态, 和更多的. BASIC, PRO和ULTRA是公司提供的三个价格包.
  • FaceMark是一个简单而可靠的API解决方案,为重新创建整个面部和轮廓提供了大量的参考点, 以及易用性和多种价格选择.

深度学习如何消除人脸识别软件的错误

改进面部识别技术的最具创新性的方法之一是深度学习. 人脸嵌入是从有人脸的照片中提取的. 不同的脸会有不同的面部嵌入. 而最有效的方法就是训练一个深度神经网络.

从长远来看, 虽然, 如果面部识别系统有独特的特征, 这可能是最好的选择. 以下是最重要的考虑事项.

  • 正确选择CNN的架构和损失功能
  • 推理时间优化 
  • 摄像头和其他硬件的强大功能

2回答“如何制作人脸识别软件十博体育投注官网”

留下一个回复