由于笔者刚刚开始相关的知识的学习,在这里打算做个学过东西的一个详细的记录,当作课后的复习,内容比较比较详细,方便大家一起学习和讨论。

本人能力有限,欢迎大佬指正错误、提出建议。

先介绍第一种算法——haar

haar是一种很早的传统的人脸识别的算法,具体原理可以看一下大佬的文章。大佬的一个haar算法的介绍

其说说白了,Haar主要根据人脸特征如眉毛,鼻子等的灰度图的变换进行识别人脸的。

haar用法:主要在于要加载一个haar相关的xml文件,可以在GitHub上面下载下载地址;

1.创造一个探测器

2.调用创建的探测器去探测到图片人脸的信息

3.根据探测到的信息去框选出人脸。

下面我将基于haar算法做一个视频的人脸识别。

整个代码是比较简单的。

思路为:
构造haar人脸检测器
获取视频流
检测每一帧画面
画人脸框并显示

#这里首先介绍一下视频流的一个处理
import cv2cap = cv2.VideoCapture(0)while True:ret,frame = cap.read()frame = picture_processing(frame)cv2.imshow('demo',frame)if cv2.waitKey(10) & 0xFF == 27:breakcap.release()
cv2.destroyAllWindows()

基于这个视频流,再进行人脸的检测

人脸检测器的构造

face_detector = cv2.CascadeClassifier(r"D:\Python\3\face_detection\cascades\haarcascade_frontalface_default.xml")

然后根据人脸检测器就可以进行特征提取和rectangle的绘制了。

整体的代码如下:

import cv2def picture_processing(img):img = cv2.flip( img ,1)return imgface_detector = cv2.CascadeClassifier(r"D:\Python\3\face_detection\cascades\haarcascade_frontalface_default.xml")cap = cv2.VideoCapture(0)while True:ret,frame = cap.read()frame = picture_processing(frame)frame_gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)detections = face_detector.detectMultiScale( frame_gray, minNeighbors=7 )for (x, y, w, h) in detections:cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),5)cv2.imshow('demo',frame)if cv2.waitKey(10) & 0xFF == 27:breakcap.release()
cv2.destroyAllWindows()

后面介绍第二种方法——hog

hog和上述的haar调用方式方法是很像的,二者在精度和速度上面是有差别。

注意:hog探测器的创建时调用dlib这个包,而不用直接下载,所以我用的更多的还是hog。

由于和上面的方法很像,就不详细的讲解了,直接放源码:

import dlib
import cv2def picture_processing(img):img = cv2.flip( img ,1)return img# 构造HOG人脸检测器
hog_face_detetor = dlib.get_frontal_face_detector()cap = cv2.VideoCapture(0)while True:ret,frame = cap.read()frame = picture_processing(frame)frame_gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)# 输入检测的图片获得检测的人脸信息detections = hog_face_detetor( frame_gray, 1 )#根据检测到的人脸信息框选for face in detections:x = face.left()y = face.top()r = face.right()b = face.bottom()cv2.rectangle( frame_gray, (x, y), (r, b), (0, 255, 0), 5 )cv2.imshow('demo',frame)if cv2.waitKey(10) & 0xFF == 27:breakcap.release()
cv2.destroyAllWindows()

人脸框选多种算法的实现相关推荐

  1. 【优秀课设】基于OpenCV的Python人脸识别、检测、框选(遍历目录下所有照片依次识别 视频随时标注)

    基于OpenCV的Python人脸识别.检测.框选 (遍历目录下所有照片依次识别 视频随时标注) 移步: https://blog.csdn.net/weixin_53403301/article/d ...

  2. matlab算概率,用matlab计算概率,再次吐槽某些吧友国战比赛七框选将的建议

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 国战比赛讲求观赏性,一国独大根本谈不上观赏性.大魏国的出现,和选将框的多少有非常直接关系.我发现吧里不少高等级玩家建议国战比赛七框选将,我很不赞同,这就是 ...

  3. 游戏中常用的寻路算法的分享(3):A*算法的实现

    概述 剥除代码,A* 算法非常简单.算法维护两个集合:OPEN 集和 CLOSED 集.OPEN 集包含待检测节点.初始状态,OPEN集仅包含一个元素:开始位置.CLOSED集包含已检测节点.初始状态 ...

  4. 关于寻路算法的一些思考(3):A*算法的实现

    概述 剥除代码,A* 算法非常简单.算法维护两个集合:OPEN 集和 CLOSED 集.OPEN 集包含待检测节点.初始状态,OPEN集仅包含一个元素:开始位置.CLOSED集包含已检测节点.初始状态 ...

  5. 查找算法的实现c语言,查找算法的实现(C语言版)

    <查找算法的实现(C语言版)>由会员分享,可在线阅读,更多相关<查找算法的实现(C语言版)(6页珍藏版)>请在人人文库网上搜索. 1.芬梨受交峙东喊济雏狈违晕裂赵檀芬逛温乌摄阿 ...

  6. 基于MATLAB的图像压缩感知 算法的实现

    摘要 获取项目源文件,联系Q:1415736481,可指导毕设,课设 数据压缩技术是提高无线数据传输速度的有效措施之一.传统的数据压缩技术是基于奈奎斯特采样定律进行采样,并根据数据本身的特性降低其冗余 ...

  7. python边缘检测代码_python Canny边缘检测算法的实现

    图像边缘信息主要集中在高频段,通常说图像锐化或检测边缘,实质就是高频滤波.我们知道微分运算是求信号的变化率,具有加强高频分量的作用.在空域运算中来说,对图像的锐化就是计算微分.对于数字图像的离散信号, ...

  8. 干货回顾丨TensorFlow四种Cross Entropy算法的实现和应用

    交叉熵介绍 交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小,常见的Loss函数就是均方平方差(Mean Squared Er ...

  9. Bug2算法的实现(RobotBASIC环境中仿真)

    移动机器人智能的一个重要标志就是自主导航,而实现机器人自主导航有个基本要求--避障.之前简单介绍过Bug避障算法,但仅仅了解大致理论而不亲自动手实现一遍很难有深刻的印象,只能说似懂非懂.我不是天才,不 ...

最新文章

  1. ASP网络编程从入门到精通 下载
  2. pandas DataFrame 写入excel是列表 读取变字符串的解决办法
  3. POJ 3259 Wormholes(负权环路)
  4. WebFlux基础之响应式编程
  5. javascript学习总结1
  6. 使用代理下载android系统源码和SDK
  7. 汇编语言-008(条件跳转应用 、loopnz 条件循环指令使用 、loopz 条件循环指令使用 、 if语句编写汇编时 、while语句编写汇编时 、循环内的if语句嵌套)
  8. xStream:Security framework of XStream not initialized, XStream is probably vulnerable.
  9. Tosca 添加 modules,添加Library,引用重复步骤
  10. linux块设备驱动简述(Linux驱动开发篇)
  11. Modown v7.3无限制版+ Erphpdown12.3插件 + 工单系统
  12. 根据卫星星历在cesium画卫星轨迹
  13. python做物联网控制_一步步搭建物联网系统——简单物联网
  14. Codeforces1457 C. Bouncing Ball(思维+dp)
  15. 铁流:苹果为何不找IBM,而选择中国浪潮
  16. 2021年中国纺织钩环市场趋势报告、技术动态创新及2027年市场预测
  17. OCJP 考试题之八
  18. 3、Kubernetes的基本使用
  19. 第一课c语言课前准备
  20. 无与伦比的工业设计 iPhone 4详细评测

热门文章

  1. Content-Type简析
  2. 数据流程图 状态图 流程图
  3. 转:三星电子CEO:一切决策都要从认清自己开始
  4. 银行卡大小的充电宝,你有吗?
  5. hibernate-validator和validation-api
  6. 记一次openvpn server部署
  7. 基于Spring+Struts+Hibernate实现的健康管理平台
  8. innerHTML动态拼接html,innerHTML动态添加html代码和脚本兼容多个浏览器
  9. 量子计算机云服务,快人一步 IBM量子计算机开始提供云服务
  10. 企业税务筹划的注意事项