人工智能实现程序员“防”BOSS?刷脸就发短信,8行代码人脸报警

如今一个攻城狮就能搞定人脸的深度进修算法,这要多感激打动国外开源框架,虽然达不到旷世face++和诸多人脸公司的深度,可是实际应用已经没有太大压力。下图就是tensorflow写的人脸5点定位加情感测试。

人脸识别应用

前不久搜集上爆红某公司,一人脸识别开发师用摄像头识别老板,当老板靠进本身的工位的时辰,电脑主动切换到本身工作时的界面。

WTF?

你还在觉得这个梗是网上辟谣的?

还在觉得人脸识别手艺实现特别复杂、高峻上?

NO!你OUT了,今天小编用最最简单易懂的代码讲解,给大师带来这款防火、防盗、防老板的终极利器——

项目地点:BossComming

项目方针:

  • 识别特定人物,并经由过程手机信息的编制提示你:你的老板来啦!

项目情形引见:

  • Python 3.3+或Python 2.7(本教程用6版本)
  • Windows 7或MacOS,以及Linux等体系
  • 一个摄像头和IDLE集成体系(PyCharm)

下载完Python3.6,并设置装备安排相干的体系情形,按win键+R键输入cmd,

翻开呼吁提示符,输入呼吁安装一下依靠:

  • pip3 install face_recognition
  • pip3install jpush

代码讲解:

下载本教程的项目,我们起头逐条代码的讲解人脸识别代码,保证在列位吃瓜群众“深切”到人工智能规模的教程傍边。video_capture = cv2.VideoCapture(0)

  1. # Load a sample picture and learn how to recognize it.
  2. obama_image = face_recognition.load_image_file("BOSS2.bmp")
  3. obama_face_encoding = face_recognition.face_encodings(obama_image)[0]
  4. whileTrue:
  5. ret, frame = video_capture.read()
  6. face_locations = face_recognition.face_locations(frame)
  7. face_encodings = face_recognition.face_encodings(frame, face_locations)

其中cv2.VideoCapture函数界说摄像头工具,0为第一个摄像头,一样平常为笔记本内置摄像头。

face_recognition.load_image_file:读取项目下的图片文件

face_recognition.face_encodings:对图片停止编码

while True:进入死轮回

video_capture.read:是一个前往当前帧的函数,它能前往两个参数,ret和frame

  • 第一个参数是bool型的ret,其值为True或False,代表有没有读到图片
  • 第二个参数是frame,是当前截取一帧的图片。

face_recognition.face_locations(frame):获取视频流帧,识别人脸

face_recognition.face_encodings(frame, face_locations):对视频流停止编码

本章根基讲解了bosscoming这个成心思项目的团体框架和实现。更多细节请关注我们,将在后面文章出现。

下面分享分享Python正则表达式的知识:

(1). 正则表达式语法

1.1 字符与字符类

1 特殊字符:.^$?+*{}[]()|

以上特殊字符要想使用字面值,必须使用进行转义

2 字符类

1. 包含在[]中的一个或者多个字符被称为字符类,字符类在匹配时如果没有指定量词则只会匹配其中的一个。

2. 字符类内可以指定范围,比如[a-zA-Z0-9]表示a到z,A到Z,0到9之间的任何一个字符

3. 左方括号后跟随一个^,表示否定一个字符类,比如[^0-9]表示可以匹配一个任意非数字的字符。

4. 字符类内部,除了之外,其他特殊字符不再具备特殊意义,都表示字面值。^放在第一个位置表示否定,放在其他位置表示^本身,-放在中间表示范围,放在字符类中的第一个字符,则表示-本身。

5. 字符类内部可以使用速记法,比如d s w

3 速记法

. 可以匹配除换行符之外的任何字符,如果有re.DOTALL标志,则匹配任意字符包括换行

d匹配一个Unicode数字,如果带re.ASCII,则匹配0-9

D 匹配Unicode非数字

s匹配Unicode空白,如果带有re.ASCII,则匹配 中的一个

S 匹配Unicode非空白

w匹配Unicode单词字符,如果带有re.ascii,则匹配[a-zA-Z0-9_]中的一个

W 匹配Unicode非单子字符

(2) 组与捕获

    1 ()的作用:

      1. 捕获()中正则表达式的内容以备进一步利用处理,可以通过在左括号后面跟随?:来关闭这个括号的捕获功能

      2. 将正则表达式的一部分内容进行组合,以便使用量词或者|

    2 反响引用前面()内捕获的内容:

      1. 通过组号反向引用

        每一个没有使用?:的小括号都会分配一个组好,从1开始,从左到右递增,可以通过i引用前面()内表达式捕获的内容

      2. 通过组名反向引用前面小括号内捕获的内容

        可以通过在左括号后面跟随?P<name>,尖括号中放入组名来为一个组起一个别名,后面通过(?P=name)来引用 前面捕获的内容。如(? P<word>w+)s+(?P=word)来匹配重复的单词。

    3 注意点:

      反向引用不能放在字符类[]中使用。

2. Python正则表达式模块

 2.1 正则表达式处理字符串主要有四大功能

    1. 匹配 查看一个字符串是否符合正则表达式的语法,一般返回true或者false

    2. 获取正则表达式来提取字符串中符合要求的文本

    3. 替换查找字符串中符合正则表达式的文本,并用相应的字符串替换

    4. 分割使用正则表达式对字符串进行分割。

2.2 Python中re模块使用正则表达式的两种方法

    1. 使用re.compile(r, f)方法生成正则表达式对象,然后调用正则表达式对象的相应方法。这种做法的好处是生成正则对象之后可以多次使用。

    2. re模块中对正则表达式对象的每个对象方法都有一个对应的模块方法,唯一不同的是传入的第一个参数是正则表达式字符串。此种方法适合于只使用一次的正则表达式

大家喜欢的话,想学习的可以评论Python,小编给大家分享一个直播学习平台

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java达人

HashMap庖丁解牛

感谢erixhao的作品,长文需细品: Code Walkthrough是我们新的一个系列,主要以阅读,分析源代码为主要目的,特此介绍一下。我们先以最经典的JD...

22490
来自专栏C语言及其他语言

[每日一题]矩阵乘法

本次的题目来源于C语言网比赛栏目八月月赛第一题,记得去试试看看自己能不能AC哦!!! 题目描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数) 例如: ...

37250
来自专栏C/C++基础

C++0x 通用属性

C++在不断的发展,但每一阶段的C++标准提供的功能都很难完全满足现实需求,于是为了弥补标准的不足或者扩增特性应用场景所需的特性,各大C++编译器厂商多多少少在...

13620
来自专栏杨建荣的学习笔记

对一道if-else相关的程序题的简单分析(r5笔记第45天)

今天同事在微信群里提出了一个问题,看似是一个面试题。 大体的意思就是补充下面if条件使得输出 Hello World if(){ System.out.prin...

36750
来自专栏tkokof 的技术,小趣及杂念

位运算实用指南

说明 : 想来这应该是初次接触移位操作符时一定会了解到的知识点,根据2进制的整数表示方法应该不难理解,原因细节不再赘述~

7310
来自专栏韩伟的专栏

OO玩法:基于对象

“基于对象”的特点 什么是“基于”对象呢?就是关注“对象之间”的关系,而不是关注对象和类的关系。“面向对象编程”(OOP)的概念已经诞生了很多年,在业界可谓深入...

34840
来自专栏算法修养

接口和多态性

如果你又加了一个百度外卖,那么eat函数中又要new 一个BaiDu() ,给开发带来麻烦。我们希望的是,如果代码要扩展了,那么代码要尽最大可能的进行很小的改动...

9930
来自专栏苦逼的码农

从零打卡leetcode之day 1--两数之和

不过心里才两个循环时间复杂度可是n的平方,心想肯定得超时,不过还是大胆提交一下提交,呵呵,居然通过了。。。。

13410
来自专栏WeaponZhi

轻松初探 Python 篇(五)—dict 和 set 知识汇总

这是「AI 学习之路」的第 5 篇,「Python 学习」的第 5 篇 dict dict 是 Python 内置的字典类型,熟悉 Java 的同学可以把它类比...

31890
来自专栏web前端教室

【视频】- 5分钟学习<函数式编程>

温馨提示:视频请点此观看 // 视频文字版: JavaScript 函数式编程是一个存在了很久的话题, 现在ES6语法对于函数式编程更为友好,所以开始变的更...

25460

扫码关注云+社区

领取腾讯云代金券