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

yuanran0 2018-04-28

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

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

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

人脸识别应用

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

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

WTF?

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

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

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

项目地点:BossComming

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

项目方针:

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

项目情形引见:

  • Python 3.3+或Python 2.7(本教程用6版本)

  • Windows 7或MacOS,以及Linux等体系

  • 一个摄像头和IDLE集成体系(PyCharm)

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

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

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

  • 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):对视频流停止编码

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

本章根基讲解了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,则匹配\t\n\r\f\v中的一个

\S 匹配Unicode非空白

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

\W 匹配Unicode非单子字符

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

(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的文章。同时欢迎在下面评论区留言如何学习python。

相关推荐