opencv 训练人脸对比_Page21-树莓派4B人脸检测与识别(opencv)
申明:本系列专栏相关说明与镜像包、源码等:
塔图:Page00-本系列实验记录说明zhuanlan.zhihu.com
一、人脸检测(后续有时间再补录个操作视频吧)
人脸识别的先决在于先进行人脸检测。
先按本文档的前置章节在Python3.7环境下的安装”完成了环境的搭建工作;
本文主要讲述如何使用 USB-PiCam 实现实时人脸识别:
最常见的人脸检测方式是使用“Haar 级联分类器”。使用基于 Haar 特征的级联分类器的目标检测是 Paul Viola 和 Michael Jones 2001 年在论文《Rapid Object Detection using a Boosted Cascade of Simple Features》中提出的一种高效目标检测方法。这种机器学习方法基于大量正面、负面图像训练级联函数,然后用于检测其他图像中的对象。这里,我们将用它进行人脸识别。最初,该算法需要大量正类图像(人脸图像)和负类图像(不带人脸的图像)来训练分类器。然后我们需要从中提取特征。好消息是 OpenCV 具备训练器和检测器。如果你想要训练自己的对象分类器,如汽车、飞机等,你可以使用 OpenCV 创建一个。
如果不想创建自己的分类器,OpenCV 也包含很多预训练分类器,可用于人脸、眼睛、笑容等的检测。相关的 XML 文件可从该目录下载:haarcascades(在opencv的安装包里data目录下就有,当然下载地址为:https://github.com/opencv/opencv/tree/master/data/haarcascades)
即要检测一张图片需要扫描大于120万个窗口
运行以下代码:
import numpy as np
import cv2faceCascade = cv2.CascadeClassifier('Cascades/haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)
cap.set(3,640) # set Width
cap.set(4,480) # set Heightwhile True:ret, img = cap.read()img = cv2.flip(img, -1)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)faces = faceCascade.detectMultiScale(gray, scaleFactor=1.2,minNeighbors=5, minSize=(20, 20))for (x,y,w,h) in faces:cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)roi_gray = gray[y:y+h, x:x+w]roi_color = img[y:y+h, x:x+w]cv2.imshow('video',img)k = cv2.waitKey(30) & 0xffif k == 27: # press 'ESC' to quitbreak
cap.release()
cv2.destroyAllWindows()
可以进行人脸检测了:
使用 Python 和 OpenCV 执行人脸检测,上面的几行代码就足够了。但务必要注意下面的代码:
faceCascade = cv2.CascadeClassifier(‘Cascades/haarcascade_frontalface_default.xml’) #找对目录
我们也可以加入诸如“眼睛检测”甚至“微笑检测”这样的检测器。在那些用例中,需要把分类器函数和矩形框内加入原有的面部识别区域中,因为在区域外进行识别没有意义。
注意,在树莓派上,分类方法(HaarCascades)会消耗大量算力,所以在同一代码中使用多个分类器将会显著减慢处理速度。在台式机上运行这些算法则非常容易。
在 GitHub(https://github.com/Mjrovai/OpenCV-Face-Recognition/tree/master/FaceDetection)上你可以看到其他的例子:
faceEyeDetection.py
faceSmileDetection.py
faceSmileEyeDetection.py
(运行速度太慢,非常的卡顿)
二、人脸识别(后续有时间再补录个操作视频吧)
参考文档:http://www.52pi.net/archives/1435 (从第5步开始,完全正确,亲测可用)
这里我训练时,用了赵丽颖与杨紫,总地来说,开源库的分辨能力,尚可吧。
如果是真人出镜,效果会明显好得很多。
opencv 训练人脸对比_Page21-树莓派4B人脸检测与识别(opencv)相关推荐
- python人脸对比相似度_python人脸对比
import sys import ssl from urllib import request,parse # client_id 为官网获取的AK, client_secret 为官网获取的SK ...
- opencv训练自己的模型,实现特定物体的识别
1.说明 opencv安装包中有训练好的分类器文件,可以实现人脸的识别.当然,我们也可以训练自己的分类器文件,实现对特定物体的识别.本文章就详细介绍下如何训练自己的分类器文件. 2.效果 我训练的是检 ...
- 机器视觉 OpenCV—python 基于LSTM网络的OCR文本检测与识别
文章目录 一.背景与环境搭建 二.文本检测与识别 一.背景与环境搭建 OpenCV的文本识别流程: OpenCV EAST 文本检测器执行文本检测, 我们提取出每个文本 ROI 并将其输入 Tesse ...
- C#人脸对比服务(基于虹软人脸识别SDKV4.1封装)
软件截图 项目截图 部分代码 using System; using System.Collections.Generic; using System.Linq; using System.Tex ...
- 【毕业设计】深度学习卫星遥感图像检测与识别 -opencv python 目标检测
文章目录 0 前言 1 课题背景 2 实现效果 3 Yolov5算法 4 数据处理和训练 5 最后 0 前言
- python毕业设计 深度学习卫星遥感图像检测与识别 opencv 目标检测
文章目录 0 前言 1 课题背景 2 实现效果 3 Yolov5算法 4 数据处理和训练 0 前言
- 毕设-python 卷积神经网络 机器视觉 目标检测 车牌识别 - opencv 深度学习 机器学习
文章目录 前言 一 课题背景 二 效果演示 2.1 图片检测识别 2.2视频检测识别 三 车牌检测与识别 四 HyperLPR库 4.1 简介 4.2 特点 4.3 HyperLPR的检测流程 4.4 ...
- python人脸识别和人脸对比,face_recognition和OpenCV
前言 先用OpenCV判断图片是否模糊,模糊的话需要重拍: 再用face_recognition检测图片中是否有人脸,有才接着进行下一步: 再用face_recognition计算图片中每张人脸的12 ...
- [计算机视觉]人脸应用:人脸检测、人脸对比、五官检测、眨眼检测、活体检测、疲劳检测
人脸应用在计算机视觉体系中占很大一块,在深度学习火起来之前,基于传统机器学习的人脸应用就已经很成熟了,有很多商用应用场景.本文用一个可以实际运行的Demo来说明人脸应用中常见的技术概念,包含'人脸检测 ...
- 【java】调用百度开发平台ai接口,完成人脸识别(人脸搜索、人脸对比、人脸检测等)功能--------超详细,适合小白
基本流程理解: 我们要使用百度提供的接口去实现某些功能,大致流程如下: 1.注册百度开放平台帐号: 浏览器打开http://ai.baidu.com/,进入百度ai的页面,点击右上角的控制台按钮进行登 ...
最新文章
- 你是怎样给下属分配工作
- Git 配置命令设置
- C语言语句知识结构大学霸IT达人
- Javascript实现整站黑白效果(兼容IE/FF等浏览器)
- 【集合论】有序对 ( 有序对 | 有序三元组 | 有序 n 元祖 )
- Swing中事件的三种处理方法
- 服务端支持的session
- SAP云平台对Kubernetes的支持
- php mysqli不识别,不识别数据库PHP MYSQLi中的密码
- servlet中url-pattern之/与/*的区别
- 镜像浏览器_yiming Win10PE 系统维护光盘镜像
- python类方法为装饰器_类方法的python装饰器
- optistruct入门推荐
- 通信原理及系统系列38——图解过采样和欠采样
- 应用EtherNet IP转Modbus网关连接施耐德PLC和AB PLC
- Tomcat热部署(linux服务器)
- 生物信息学|通过整合药物表型、治疗、化学结构和基因组特征,使用机器学习预测药物-药物相互作用
- 使用poi把Java对象转换成excel
- 一篇挺有意思的文章(转自CSDN)
- 图案设计灵感怎么写_优秀Logo的设计灵感,从何而来?