人工智能实现程序员“防”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)

# Load a sample picture and learn how to recognize it.

obama_image = face_recognition.load_image_file("BOSS2.bmp")

obama_face_encoding = face_recognition.face_encodings(obama_image)[0]

whileTrue:

ret, frame = video_capture.read()

face_locations = face_recognition.face_locations(frame)

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,尖括号中放入组名来为一个组起一个别名,后面通过(?P=name)来引用 前面捕获的内容。如(? Pw+)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,小编给大家分享一个直播学习平台

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180430A0JPE200?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券