关于人脸检测/人脸识别

本人目前用树莓派4B仅了解到了人脸检测/人脸识别的四种方法:

  1. 使用OpenCV
  2. 使用OpenMV
  3. 使用face_recognition库
  4. 使用百度智能云的人脸识别

树莓派4B-Python-人脸检测/人脸识别文章目录

  • 关于人脸检测/人脸识别
  • 前言
  • 一、OpenCV
    • 1.OpenCV的简介
    • 2.树莓派上安装OpenCV——Python3环境
    • 3.OpenCV的级联分类器
    • 4.OpenCV的人脸检测代码
  • 二、OpenMV
    • 1.OpenMV的简介
    • 2.OpenMV实现人脸检测的原理
    • 3.OpenMV的人脸检测代码
  • 三、face_recognition库
    • 1.face_recognition的简介
    • 2.树莓派上安装face_recognition
    • 3.face_recognition实现人脸识别的思路
    • 4.人脸识别代码
  • 四、百度智能云的人脸识别
    • 1.百度智能云
    • 2.创建人脸识别项目
    • 3.部署SDK
    • 4.调用百度智能云的人脸识别代码
  • 总结

前言

人脸识别对于大家来说应该都是挺耳熟的,它就是从人脸检测升级而来的。可能就会有人问:这人脸识别和人脸检测有啥不一样咧?
人脸检测是人脸识别的基础,人脸检测是检测到这一图片或这一画面中有人脸,但不知道这是谁的脸;人脸识别便是先给人脸打上了“标签”,告诉电脑某某某1的人脸长这样,每次检测到人脸就拿来与打了“标签”的人脸作对比,相似率达到多少多少(自己设定的值,如80%)时,就认为这张人脸叫某某某1,若达不到,就“不认识”。


一、OpenCV

1.OpenCV的简介

OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

OpenCV用C++语言编写,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要倾向于实时视觉应用,并在可用时利用MMX和SSE指令, 如今也提供对于C#、Ch、Ruby,GO的支持。

OpenCV的具体介绍

2.树莓派上安装OpenCV——Python3环境

有许多大佬已经写过如何安装OpenCV了,本人也就不再“重复造轮子”了。
大概提一下安装步骤吧:

  1. 首先设置好 / 激活摄像头功能,把根目录扩大到整个SD卡等
  2. 安装numpy和其他依赖(若依赖安装出现问题,多半都是因为换源不对,版本分为stretch和buster,看清楚自己用的系统是什么版本,不然换了源一样安装不了部分依赖)
  3. 下载OpenCV3.4.0(有三个压缩包,OpenCV下载链接,两个是OpenCV的文件,另一个是编译到75%左右出错时需要添加的文件

(再另提一下,全程大概出现三个或四个错误,还请做好心理准备,毕竟本人当时也编译了两三天、掉进了好几个坑才编译好的,当然了是因为需要重新编译所以才花那么久的)

  1. 最后解压、设置编译参数、编译(编译过程最为漫长,请耐心等待4~5小时,编译时间跟树莓派运行内存大小有关)

安装:
OpenCV的参考安装文章1
OpenCV的参考安装文章2(子豪兄的文章)

安装OpenCV3.4.0版本在编译过程中出现问题的解决方法:
参考解决方法一
参考解决方法二

当初本人便是结合这两种解决办法才能成功编译的,安装OpenCV的确是挺麻烦,所以需要不断尝试解决那些出现的错误,一般的出错时都会有所提示是在哪个文件夹、哪行代码、哪个文件出了问题,是缺失某个文件还是文件地址错误,都会有所提示,再不懂就仔细揣摩那两个参考解决方法或多百度百度吧。

3.OpenCV的级联分类器

安装OpenCV成功后,在opencv-3.4.0/data中会有好几个文件,其中以下文件存放了OpenCV自带的级联分类器文件,都是已经训练好的文件,可以检测人脸、眼睛、嘴等部位,但效果也并非就是完美的,会存在一些准确率问题,毕竟是开源的嘛,想要准确率很高的还是得自己训练。

这四个文件夹分别是四种检测方法,检测方法的不同自然准确率什么的也会存在差异(这是本人的猜测)。如下图所示为检测各种部位的分类器:

4.OpenCV的人脸检测代码

以下为使用OpenCV对图片里的人进行人脸检测的代码:

import cv2#选择此代码目录下的某个图片文件
img = cv2.imread('image2.jpg',1)# 导入人脸级联分类器,'.xml'文件里包含训练出来的人脸特征
face_engine = cv2.CascadeClassifier('/home/pi/Downloads/opencv-3.4.0/data/haarcascades/haarcascade_frontalface_default.xml')# 检测设置,将图片放大1.1倍(一般设1.1倍,看效果而定)
# 重复检测的次数为5次(检测次数越多,速度越慢,检测也越严格,准确率可能有所提升)
faces = face_engine.detectMultiScale(img,scaleFactor=1.1,minNeighbors=5)# 对图片进行人脸检测,之后得到人脸的坐标(一个矩形框),再用蓝色框框出,线宽为2
for (x,y,w,h) in faces:img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)  # (255,0,0)=(B,G,R)# 显示图片
cv2.imshow('img',img)# 检测是否有按键按下
cv2.waitKey(0)
# 关闭窗口,释放占用的资源
cv2.destroyAllWindows()

以下为OpenCV使用摄像头对人脸和眼睛进行动态检测的代码:

import cv2# 导入人脸级联分类器,'.xml'文件里包含训练出来的人脸特征
face_engine = cv2.CascadeClassifier('/home/pi/Downloads/opencv-3.4.0/data/haarcascades/haarcascade_frontalface_default.xml')# 导入人眼级联分类器,'.xml'文件里包含训练出来的人眼特征
eye_cascade = cv2.CascadeClassifier('/home/pi/Downloads/opencv-3.4.0/data/haarcascades/haarcascade_eye.xml')# 调用摄像头摄像头
cap = cv2.VideoCapture(0)while(True):# 获取摄像头拍摄到的画面# 会得到两个参数,一个为存放是否捕捉到图像(True/False),另一个为存放每帧的图像ret, frame = cap.read()# 每帧图像放大1.1倍,重复检测10次faces = face_engine.detectMultiScale(frame,1.1, 10)img = framefor (x,y,w,h) in faces:# 画出人脸框,蓝色,画笔宽度为2img = cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)# 框选出人脸区域,在人脸区域而不是全图中进行人眼检测,节省计算资源face_area = img[y:y+h, x:x+w]eyes = eye_cascade.detectMultiScale(face_area,1.1,5)# 用人眼级联分类器在人脸区域进行人眼识别,返回的eyes为眼睛坐标列表for (ex,ey,ew,eh) in eyes:#画出人眼框,绿色,画笔宽度为1cv2.rectangle(face_area,(ex,ey),(ex+ew,ey+eh),(0,255,0),1)# 实时展示效果画面cv2.imshow('frame2',img)# 每5毫秒监听一次键盘动作if cv2.waitKey(5) & 0xFF == ord('a'):  #当按下“a”键时退出人脸检测break# 最后,关闭所有窗口
cap.release()
cv2.destroyAllWindows()

二、OpenMV

openmv功能也挺强大的,自身就可以实现各种检测,如颜色检测、物体检测、人脸检测、人脸识别等等,与树莓派也可以通讯,通讯方式可有WiFi、蓝牙、I2C等(具体如何实现本人还未开始研究)。

1.OpenMV的简介

OpenMV是一个开源,低成本,功能强大的机器视觉模块。以STM32F427CPU为核心,集成了OV7725摄像头芯片,在小巧的硬件模块上,用C语言高效地实现了核心机器视觉算法,提供Python编程接口。使用者们(包括发明家、爱好者以及智能设备开发商)可以用Python语言使用OpenMV提供的机器视觉功能,为自己的产品和发明增加有特色的竞争力。

OpenMV上的机器视觉算法包括寻找色块、人脸检测、眼球跟踪、边缘检测、标志跟踪等。可以用来实现非法入侵检测、产品的残次品筛选、跟踪固定的标记物等。使用者仅需要写一些简单的Python代码,即可轻松的完成各种机器视觉相关的任务。小巧的设计,使得OpenMV可以用到很多创意的产品上。比如,可以给自己的机器人提供周边环境感知能力;给智能车增加视觉巡线功能;给智能玩具增加识别人脸功能,提高产品趣味性等;甚至,可以给工厂产品线增加残次品筛选功能等。

openmv的具体介绍1
openmv的具体介绍2(星瞳科技)

2.OpenMV实现人脸检测的原理

openmv内置了人脸检测的算法,是利用Haar算子来进行人脸的检测,可以快速的在视野中找到人脸,但获取图像后必须将图像转变成灰度图才可以进行计算(将图像转为灰度图可以提高其人脸检测的速度),然后做框出人脸位置等步骤。

3.OpenMV的人脸检测代码

代码如下:
(需要人脸与该模块摄像头在30cm左右的距离内才可以检测到人脸)

import sensor, time, image# 重置感光元件
sensor.reset()# 感光元件设置
sensor.set_contrast(3)
sensor.set_gainceiling(16)# HQVGA和灰度对于人脸识别效果最好
sensor.set_framesize(sensor.HQVGA)
sensor.set_pixformat(sensor.GRAYSCALE)
#注意人脸识别只能用灰度图哦sensor.set_vflip(True) # 设置画面垂直翻转
sensor.set_hmirror(True) # 设置画面左右翻转# 加载Haar算子
# 默认情况下,这将使用所有阶段,更低的satges更快,但不太准确。
face_cascade = image.HaarCascade("frontalface", stages=25)
#image.HaarCascade(path, stages=Auto)加载一个haar模型。haar模型是二进制文件,
#这个模型如果是自定义的,则引号内为模型文件的路径;也可以使用内置的haar模型,
#比如“frontalface” 人脸模型或者“eye”人眼模型。
#stages值未传入时使用默认的stages。stages值设置的小一些可以加速匹配,但会降低准确率。
print(face_cascade)# FPS clock
clock = time.clock()while (True):clock.tick()# 拍摄一张照片img = sensor.snapshot()# 找到对象# 注意:低比例因子缩小图像更多,检测更小的对象# 阈值越高,检出率越高,假阳性越多。objects = img.find_features(face_cascade, threshold=1, scale=1.5)#image.find_features(cascade, threshold=0.5, scale=1.5),thresholds越大,#匹配速度越快,错误率也会上升。scale可以缩放被匹配特征的大小。#在找到的目标上画框,标记出来for r in objects:img.draw_rectangle(r)# 打印FPS。# 注:实际FPS更高,流FB使它更慢。print(clock.fps())

三、face_recognition库

1.face_recognition的简介

face_recognition库是最为简洁的人脸识别库,可以直接通过捕捉图片中128维的人脸向量进行存储,打上“标签”,假设为某某某2,再与其他图片/画面中捕获128维的人脸向量做对比,相似度达到一定值后便判定刚刚识别的是某某某2的人脸。

(128维的人脸向量:也就是会在人脸上获取128个点的向量之类的,好比如眉毛的轮廓、鼻子的轮廓、嘴的轮廓等许多个点组成的线)

face_recognition库的介绍与使用方法网址

face_recognition的视频教程(在播放到37分后为安装教程,50分后为使用教程)

2.树莓派上安装face_recognition

有两种方法(本人试的是第一种):
方法一

  1. 若之前安装过cmake的,就先将cmake升级一下
sudo apt --upgrade install cmake

再安装face_recognition

pip3 install face_recognition
  1. 若没安装过cmake,就先安装一下下
sudo apt install cmake

再安装face_recognition

pip3 install face_recognition

方法二

在Ubuntu上安装

参考这位博主的文章

3.face_recognition实现人脸识别的思路

  1. 加载已知图片和待识别图片
  2. 对图片中的人脸进行编码
  3. 建立人脸库
  4. 识别待识别图片中的人脸
  5. 标记姓名并展示
  6. 释放资源

详细一些的说明 / 步骤:

  1. 传入人脸1图片
  2. 传入人脸2图片
  3. 传入需要检测的人脸图片
  4. 获取需要检测的人脸图片的人脸位置
  5. 对人脸1进行编码(识别这样类似的脸就是人脸1)
  6. 对人脸2进行编码(识别这样类似的脸就是人脸2)
  7. 知道的人脸编码列表
  8. 知道的人脸名字列表
  9. 获取需要检测的图片中人脸编码
  10. 在需要检测的图片上遍历出(top,right,bottom,left),face_encoding
  11. 使用方框将人脸框起来
  12. 将已知人脸和需要检测中未知人脸进行比较
  13. 若检测不出则在未知人脸上显示unknown
  14. 若检测得出,就将对应名字列表中的名字在人脸上显示
  15. 在方框上显示文字
  16. 显示图片
  17. 检测键盘是否按下,若按下则停止
  18. 销毁显示的窗口

4.人脸识别代码

该代码是将检测速度提升了,其实其他提速的方法也挺(可能也许大概八成)简单的,可以用于参考:
1.替换人脸检测方法成OpenCV的Haar人脸检测方法;(好像是在输出位置的向量上需要转换,有些麻烦,原理上是可以的)
2.换成在灰度图上检测;(按道理可以,但本人还未成功,猜测是颜色格式没转换好的问题)
3.将画面大小按比例缩小再检测;
4.将按比例缩小后的画面作为显示的画面;
5.采用多个CPU一起检测(目前还没尝试成功,但据说可以);
6.使用神经棒加速;(猜测可以)
7. …(目前知识有限,待续)

以下代码仅采用了将画面大小按比例缩小的方法,速度提升了10s左右:
(这是指从程序开始到显示画面的时间减少了10s左右,实际上还是会花15s左右做预处理。检测到人脸后的延迟为3s左右,这也跟网络延迟有关)

import face_recognition
import cv2
import numpy as np# 用opencv获取摄像头画面
video_capture = cv2.VideoCapture(0)# 获取obama图片,提取128维的人脸向量
obama_image = face_recognition.load_image_file("obama.jpg")
obama_face_encoding = face_recognition.face_encodings(obama_image)[0]# 获取biden图片,提取128维的人脸向量
biden_image = face_recognition.load_image_file("biden.jpg")
biden_face_encoding = face_recognition.face_encodings(biden_image)[0]# 存储128维的人脸向量
known_face_encodings = [obama_face_encoding,biden_face_encoding
]# 存储人脸名字
known_face_names = ["Barack Obama","Joe Biden"
]# 初始化
face_locations = []
face_encodings = []
face_names = []
process_this_frame = Truewhile True:ret, frame = video_capture.read()# 将画面缩小4倍small_frame = cv2.resize(frame, (0, 0), fx=0.25, fy=0.25)
# 将BGR颜色格式转换为RGBrgb_small_frame = small_frame[:, :, ::-1]if 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 = []for face_encoding in face_encodings:matches = face_recognition.compare_faces(known_face_encodings, face_encoding)name = "Unknown"face_distances = face_recognition.face_distance(known_face_encodings, face_encoding)best_match_index = np.argmin(face_distances)if matches[best_match_index]:name = known_face_names[best_match_index]face_names.append(name)process_this_frame = not process_this_framefor (top, right, bottom, left), name in zip(face_locations, face_names):# 此处将前面缩小的比例还原(放大4倍),这样才可以在原图像上框对人脸top *= 4right *= 4bottom *= 4left *= 4cv2.rectangle(frame, (left, top), (right, bottom), (0, 0, 255), 2)cv2.rectangle(frame, (left, bottom - 35), (right, bottom), (0, 0, 255), cv2.FILLED)font = cv2.FONT_HERSHEY_DUPLEXcv2.putText(frame, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1)# 此处是显示原图像,若将显示的图像换成缩小4倍后的图像,速度也能提升cv2.imshow('Video', frame)if cv2.waitKey(1) & 0xFF == ord('q'):breakvideo_capture.release()
cv2.destroyAllWindows()

四、百度智能云的人脸识别

1.百度智能云

利用百度智能云的人脸识别系统实现人脸识别也是很简单的,但是树莓派需要在联网的情况下才可以使用该人脸识别,除非部署了离线版的人脸识别系统。

2.创建人脸识别项目

1.首先需要在百度智能云上创建一个账号,或者使用百度账号登录;
2.进入后创建一个人脸识别应用;






3.下图框出的三个内容后面会用到,因此需要记下;


4.创建用户组和用户(用户组和用户的名称都只能是数字或英文,不能有中文)








5.给用户上传用户的正面照(上传不同的照片越多越好)


6.下载SDK




将SDK压缩包解压得到以下文件:


3.部署SDK

在树莓派4B上部署SDK:
1.先通过U盘或VNC的文件传输将SDK文件夹传输给树莓派

2. 安装pip(若已经安装了则跳过安装pip)和setuptools

2.1 安装setuptools
2.1.1 下载安装包(此安装包为2020.8.14更新的49.6.0版本)

wget https://files.pythonhosted.org/packages/38/cc/db23dbe4efc464c3c0111fedf7d46de8888f05b09488d610f6f8ab6e2544/setuptools-49.6.0.zip

2.1.2 解压

unzip setuptools-49.6.0.zip

2.1.3 安装

cd setuptools-49.6.0
sudo python setup.py build
sudo python setup.py install

2.2 安装pip(若已经安装了的就跳过)
方法一:

sudo apt-get install -y python-pip

方法二:
2.2.1 下载(此安装包为2020.8.11更新的20.2.2版本)

wget https://files.pythonhosted.org/packages/73/8e/7774190ac616c69194688ffce7c1b2a097749792fea42e390e7ddfdef8bc/pip-20.2.2.tar.gz

2.2.2 解压(注意版本是否一致)

tar zxvf pip-20.2.2.tar.gz

2.2.3 安装(安装前请看清楚下载好的文件夹名是否一致,随着更新,版本会不一样)

cd ../pip-20.2.2/
sudo python3 setup.py install

3. 安装SDK
假设传输过来的SDK文件放在了Download文件夹内,则先进入该文件夹内:

cd Downloads/aip-python-sdk-2.2.15

然后再安装:

sudo pip install baidu-aip

得到类似如下图所示画面就说明SDK已经安装成功:

接下来还需安装API:

sudo python3 setup.py install

这样就可以调用百度智能云的人脸识别了

4.调用百度智能云的人脸识别代码

当使用以下代码后,会生成一个名为“ming_dan”的文本在当前文件夹内,用于记录检测人的姓名和时间。

from aip import AipFace
from picamera import PiCamera
import urllib.request
import RPi.GPIO as GPIO
import base64
import time
import datetime
#百度人脸识别API账号信息
APP_ID = '19127770'
API_KEY = 'bgaoZtrDyFm097RZy4zc1b1p'
SECRET_KEY = '8dPNLaUyG7HKBDHU848y6gS7lZHvfQU3'
client = AipFace(APP_ID, API_KEY, SECRET_KEY)#创建一个客户端用以访问百度云
#图像编码方式
IMAGE_TYPE='BASE64'
camera = PiCamera()#定义一个摄像头对象
#用户组
GROUP = 'one'#照相函数
def getimage():camera.resolution = (1024,768)#摄像界面为1024*768camera.start_preview()#开始摄像time.sleep(1)camera.capture('faceimage.jpg')#拍照并保存time.sleep(1)
#对图片的格式进行转换
def transimage():f = open('faceimage.jpg','rb')img = base64.b64encode(f.read())return img
#上传到百度api进行人脸检测
def go_api(image):result = client.search(str(image, 'utf-8'), IMAGE_TYPE, GROUP);#在百度云人脸库中寻找有没有匹配的人脸if result['error_msg'] == 'SUCCESS':#如果成功了name = result['result']['user_list'][0]['user_id']#获取名字score = result['result']['user_list'][0]['score']#获取相似度if score > 80:#如果相似度大于80if name == 'qin_guan_lin':   # 此为自己设置的用户组中的用户名(只能是由字母和数字组成)name1 = '小霖'name = name1print('相似度为:%.2f' % score)print("欢迎%s!" % name)time.sleep(0.5)if name == 'lin_xiu_li':name2 = '小莉'name = name2print('相似度为:%.2f' % score)print("欢迎%s!" % name)time.sleep(0.5)if name == "qin_wen_hua":name3 = '小华'name = name3print('相似度为:%.2f' % score)print("欢迎%s!" % name)time.sleep(0.5)else:print('相似度为:%.2f' % score)print("抱歉,识别失败!请重试!")name = 'Unknow'return 0#curren_time = time.asctime(time.localtime(time.time()))#获取当前时间curren_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')#将人员出入的记录保存到Log.txt中f = open('ming_dan.txt','a')f.write("姓名:" + name + "   " + "时间:" + str(curren_time)+'\n')f.close()return 1if result['error_msg'] == 'pic not has face':print('检测不到人脸')time.sleep(1)return 0else:print(result['error_code']+' ' + result['error_code'])return 0
#主函数
if __name__ == '__main__':a = 0#while True:while a < 2:print('准备')if True:getimage()#拍照img = transimage()#转换照片格式res = go_api(img)#将转换了格式的图片上传到百度云if(res == 1):#是人脸库中的人print("开门")else:print("关门")print('稍等三秒进入下一个')time.sleep(1)a += 1

总结

  1. 本人是在了毕业设计上用到了opencv,简单的用了下人脸检测和口罩检测,唯独麻烦的是训练口罩检测的级联分类器,由于想要精度高所以训练花费的时间也是非常久的,当时是正样本与负样本的比例为500:1500,训练20层,准确率设在了90%以上,单单前面十几层就花费了两三天时间,后面几层花费的时间更久,大概算来得花费二十天左右吧(大概是哪里出了问题导致了这个结果,比如图片大小、灰度图、设置的准确率等等吧),最终因为时间太久的缘故停止了训练。
  2. openmv3这个模块是舍友的毕业设计用到的,后面是因为不想要了才给(丢给)本人玩(研究)的,当时就乐开了花(毕竟一直听说这个小玩意的功能挺厉害的)。openmv3这个小玩意儿呢是手动调节焦距的,然后还发现它的像素并不是很好(大概是因为镜头的问题吧),不过有多种镜头可以更换,就是那些镜头和配件什么的有点点贵…学习嘛,肯定是要有所代价的。
  3. face_recognition是偶然间发现的,居然还有这么一个库可以直接实现人脸识别,可是在本人使用之后发现有点问题,这个问题不知道是不是本人问题(有点尴尬),先是识别本人照片后,使用摄像头去捕捉、识别其他人脸时,发现,别人脸上本该显示的应该是“unknown”,然而却许多次都是显示本人的名字!!??(这是说明本人的脸是大众脸么…)
  4. 百度智能云的人脸识别就厉害多了,只要系统上上传的图片合格,并且样式多一些,识别的准确率就会更高,甚至有时候只是露个侧脸都能识别出。但也存在一些小问题,比如说:对手机上显示的人脸图片也能识别,所以若用于做门禁之类的话,需谨慎哦。当然,前面三种方法也存在这个小问题的。

这四种方法都是本人所尝试过的,但由于自身能力还是有所不足,有些地方写得或描述得不是很好,还望见谅。

可能有个bug,就是手机上的CSDN APP在显示代码时不显示完整,许多都会下面一半代码就空了,但是在电脑网页上代码却是显示完整的。

##2020.8.30
(该文章用于给自己今年所经历的,做一个总结和回忆)

树莓派4B-Python-四种人脸检测/人脸识别相关推荐

  1. python识别人脸多种属性_人脸检测及识别python实现系列(4)——卷积神经网络(CNN)入门...

    人脸检测及识别python实现系列(4)--卷积神经网络(CNN)入门 上篇博文我们准备好了2000张训练数据,接下来的几节我们将详细讲述如何利用这些数据训练我们的识别模型.前面说过,原博文给出的训练 ...

  2. 初学入门 | 一种快速准确的人脸检测、识别和验证系统

    即将迎来了2019世界人工智能大会,相信这个会议又一次推动人工智能的发展,有兴趣的同学可以去参加感受一下人工智能的热度,绝不会低于这个夏天的高温. 今天"计算机视觉战队"为大家分析 ...

  3. 一种快速准确的人脸检测、识别和验证系统(入门)

    即将迎来了2019世界人工智能大会,相信这个会议又一次推动人工智能的发展,有兴趣的同学可以去参加感受一下人工智能的热度,绝不会低于这个夏天的高温. 今天"计算机视觉战队"为大家分析 ...

  4. 一种快速准确的人脸检测、识别和验证系统

    即将迎来了2019世界人工智能大会,相信这个会议又一次推动人工智能的发展,有兴趣的同学可以去参加感受一下人工智能的热度,绝不会低于这个夏天的高温. 今天"计算机视觉战队"为大家分析 ...

  5. 基于opencv的人脸检测与识别(python)(1)

    基于opencv的人脸检测与识别(python语言)(1) 人脸检测和识别技术就目前而言,已经相对成熟,各类算法层出不穷,这都归功于各位奋斗在一线的大佬的努力(站在巨人的肩膀上的感觉就是爽).本文是参 ...

  6. (转)如何应用MTCNN和FaceNet模型实现人脸检测及识别

    https://zhuanlan.zhihu.com/p/37705980 人脸检测与人脸识别 人脸检测是对人脸进行识别和处理的第一步,主要用于检测并定位图片中的人脸,返回高精度的人脸框坐标及人脸特征 ...

  7. 人脸检测和识别的开源库总结

    背景 人脸相关的任务有以下几种: 人脸检测(将图片中包含的人脸进行初步定位,以及关键点如眼睛.鼻子.嘴巴等更精细的定位,文章封面即为典型人脸检测结果): 人脸跟踪(视频中跟踪人脸位置变化): 人脸验证 ...

  8. 人脸检测算法代码python_Python有多强大!20行代码实现人脸检测与识别

    题记:大二的时候发现人生苦短,所以信了拍神,开始学Python.学了大半年之后成功转行做前端了.来写个教程帮助大家入门Python. Python优点 Python是一种简单易学.功能强大的编程语言, ...

  9. mtcnn人脸检测python_基于mtcnn和facenet的实时人脸检测与识别系统开发

    简介:本文主要介绍了实时人脸检测与识别系统的详细方法.该系统基于python/opencv2/tensorflow环境,实现了从摄像头读取视频,检测人脸,识别人脸的功能.本系统代码地址:real ti ...

最新文章

  1. NeurIPS 2020放榜,接收率史上最低!AC:低接收率带不来有趣的论文
  2. Ubuntu14.04LTS下安装tensorflow(Anaconda3+pycharm+tensorflow+CPU)
  3. struts2教程(3)--请求参数处理
  4. tornado 模板
  5. 使用纯粹的ABAP位操作实现两个整数相加
  6. 扫地机器人欠压检测电路_扫地机器人智能家居必备!靠传感器感知外界环境?...
  7. CentOS+Nginx+Supervisor部署ASP.NET Core项目
  8. 笨办法学 Python · 续 练习 34:分析器
  9. 如何查找MySQL中查询慢的SQL语句
  10. Atitit。木马病毒原理机密与概论以及防御
  11. 统一配置管理工具confd
  12. mybatis动态sql片段与分页,排序,传参的使用与一对多映射与resultMap使用
  13. 《软件需求工程》 读书笔记之二
  14. 用html制作ps,ps制作图片的步骤
  15. 如何把kafka Log4j1.x升级到Log4j2.x ?
  16. c语言:数组插入处理
  17. c#语言-正方形,圆形,利用接口实现周长及面积的计算
  18. vue.js实现带表情评论功能前后端实现(仿B站评论)
  19. VC++调节笔记本屏幕亮度(附源码)
  20. pages改变文档背景和改变文字背景

热门文章

  1. js 浏览器缓存机制
  2. 【全流程】中世界双手剑
  3. C#数据结构-约瑟夫问题
  4. kotlin中使用匿名内部类
  5. sublime中如何使用markdown
  6. HRNet、HRNet V2网络结构解读
  7. 美国面试之旅——面试经验分享(ZZ)
  8. android_Quantity Strings (Plurals)
  9. C语言递归实现k的n次方
  10. 学习设计模式的好网站