2020-05-09 21:36:08

往期的文章我们分享了人脸的识别以及如何进行人脸年龄的检测,本期文章我们结合人脸识别的

模型进行人脸年龄的实时检测

人脸年龄的检测步骤

0、打开摄像头,获取图片数据

1、对图片进行人脸的检测

2、把检测到的人脸数据给年龄检测模型去检测

3、把检测结果实时呈现到图片上

import numpy as np
import cv2
import os
AGE_LIST = ["(0-2)", "(4-6)", "(8-12)", "(15-20)", "(25-32)","(38-43)", "(48-53)", "(60-100)"]
prototxtFacePath =  "model/deploy.prototxt"
weightsFacePath = "model/res10_300x300_ssd_iter_140000.caffemodel"
faceNet = cv2.dnn.readNet(prototxtFacePath, weightsFacePath)
prototxtAgePath = "model/age_deploy.prototxt"
weightsAgePath = "model/age_net.caffemodel"
ageNet = cv2.dnn.readNet(prototxtAgePath, weightsAgePath)

初始化模型年龄段,由于模型是按照年龄段来进行训练的,当然你也可以使用大量的数据,进行更准确的年龄模型训练

然后cv2.dnn.readNet加载人脸识别的模型,可参考往期文章

顺便在这里介绍一下由人工智能研究所出品的专栏,人工智能目标检测与目标追踪

有兴趣的小伙伴们可以一起探讨学习

最后cv2.dnn.readNet加载人脸年龄的模型

与图片识别不一样的是,若需要实时识别,需要打开摄像头,进行图片的实时显示与识别

capture = cv2.VideoCapture()
time.sleep(2.0)

capture = cv2.VideoCapture() 这行代码便打开电脑配置的默认摄像头,当打开后,稍微延时,等待摄像头的打开,摄像头打开后,便可以获取视频帧的图片

while True:ret, frame = capture.read()frame = cv2.resize(frame, (400*600))results = predict_age(frame, faceNet, ageNet) # 建立的新类for result in results:text = "{}: {:.2f}%".format(result ["age"][0], result ["age"][1] * 100)(startX, startY, endX, endY) = result ["loc"]y = startY - 10 if startY - 10 > 10 else startY + 10cv2.rectangle(frame, (startX, startY), (endX, endY),(0, 0, 255), 2)cv2.putText(frame, text, (startX, y),cv2.FONT_HERSHEY_SIMPLEX, 0.45, (0, 0, 255), 2)cv2.imshow("Frame", frame)key = cv2.waitKey(1) & 0xFFif key == ord("q"):break
cv2.stop()
cv2.destroyAllWindows()

人脸更多属性

在 while true 里面我们实时获取射频帧ret, frame = capture.read()

为了神经网络的快速计算,我们把图片resize一下frame = cv2.resize(frame, (400*600)),获取一个小尺寸的图片,(400*600)这里是指的图片的尺寸(宽400,长600)

然后把获取到的图片给神经网络进行预测判断,这里新建一个类,里面主要处理神经网络的年龄识别

这部分代码与往期文章代码一致,详细代码解析,可以参考往期文章:

当获取到结果后,我们实时显示在视频帧中

 def predict_age(frame, faceNet, ageNet):results = [](h, w) = frame.shape[:2] #获取图片尺寸blob = cv2.dnn.blobFromImage(frame, 1.0, (300, 300),(104.0, 177.0, 123.0))#计算图片blob值faceNet.setInput(blob)#人脸检测detections = faceNet.forward()
for i in range(0, detections.shape[2]):#当检测到人脸后confidence = detections[0, 0, i, 2]if confidence > 0.5:#判断大于0.5置信度的人脸box = detections[0, 0, i, 3:7] * np.array([w, h, w, h])(startX, startY, endX, endY) = box.astype("int")face = frame[startY:endY, startX:endX]#获取人脸在图片中的位置if face.shape[0] < 20 or face.shape[1] < 20:continue#小的人脸忽略faceBlob = cv2.dnn.blobFromImage(face, 1.0, (227, 227),(78.4263377603, 87.7689143744, 114.895847746),swapRB=False)ageNet.setInput(faceBlob)preds = ageNet.forward()#进行人脸年龄的识别i = preds[0].argmax()age = AGE_LIST[i]ageConfidence = preds[0][i]d = {"loc": (startX, startY, endX, endY), "age": (age, ageConfidence)}results.append(d)#获取人脸的坐标数据,以及人脸的年龄数据return results

公牛(BULL)转换插头/一转三插座/无线转换插座/电源转换器 3位分控插座GN-9333

¥37

购买

文章中提供的模型,年龄检测是一个阶段的检测,若想得到更精确的年龄检测,需要大量的数据进行计算训练,当然,小伙伴们也可以使用人工智能研究所出品的:

小程序:AI人工智能工具

来进行人脸更多属性的检测

人脸检测

关于人脸性别的检测,我们下期分享!

使用深度学习opencv 进行人脸年龄的实时检测相关推荐

  1. 深度学习 + OpenCV,Python实现实时视频目标检测

    选自PyimageSearch 机器之心编译 参与:路雪.李泽南 使用 OpenCV 和 Python 对实时视频流进行深度学习目标检测是非常简单的,我们只需要组合一些合适的代码,接入实时视频,随后加 ...

  2. opencv 计数后不动了 训练模型时_用OpenCV,深度学习和Python进行年龄识别

    (给Python编程开发加星标,提升编程技能.) 在本教程中,您将学习如何使用OpenCV,深度学习和Python执行年龄的自动识别/预测. 学完本教程后,您将能够以相当高的精确度去自动预测静态图像文 ...

  3. 深度学习之视频人脸识别系列二:人脸检测与对齐

    作者 | 东田应子 [磐创AI导读]本文是深度学习之视频人脸识别系列的第二篇文章,介绍人脸检测与对齐的相关算法.欢迎大家关注我们的公众号:磐创AI. 一.人脸检测与关键点检测 问题描述: 人脸检测解决 ...

  4. 「每周CV论文推荐」 初学深度学习单图三维人脸重建需要读的文章

    基于图像的人脸三维重建在人脸分析与娱乐领域里有巨大的应用场景,本文来介绍初学深度学习单张图像人脸三维重建必须要读的文章. 作者&编辑 | 言有三 1 3DMM与数据集 虽然这里推荐的是深度学习 ...

  5. 【深度学习】DIY 人脸识别技术的探索(一)

    [深度学习]DIY 人脸识别技术的探索(一) 文章目录 摘要 问题重述 模型假设 定义与符号说明 问题分析 模型的建立与求解 参考 摘要 伴随着人工智能技术的发展,人们对信息安全有了更高的要求,传统的 ...

  6. 【深度学习】DIY 人脸识别技术的探索(二)

    [深度学习]DIY 人脸识别技术的探索(二) 文章目录 训练模型 工具 结果展示 问题二的模型建立与求解 基于 KNN 的人脸识别模型 训练模型 MTCNN 可以并行训练(3 个网络同时训练,前提是内 ...

  7. 蚂蚁金服张洁:基于深度学习的支付宝人脸识别技术解秘-1

    蚂蚁金服张洁:基于深度学习的支付宝人脸识别技术解秘(1) 2015-08-13 10:22 于雪 51CTO 字号:T | T 用户身份认证是互联网金融发展的基石.今年三月,在德国汉诺威举办的IT展览 ...

  8. 深度学习下的人脸识别技术:从“后真相”到“无隐私”

    2019-06-17 14:27:08 图片来源@视觉中国 文|五矩研究社,作者|劫镖 2018年7月,<大西洋月刊>曾发表过一篇人脸识别的文章,名字叫做<开启假视频时代>,文 ...

  9. 深度学习之视频人脸识别系列一:介绍

    作者 | 东田应子 [导读]本文是深度学习之视频人脸识别系列的第一篇文章,介绍了人脸识别领域的一些基本概念,分析了深度学习在人脸识别的基本流程,并总结了近年来科研领域的研究进展,最后分析了静态数据与视 ...

最新文章

  1. Ubuntu下常用但是我容易忘记的命令总结(未完待续)
  2. 【Red Hat 】vim编辑器的常用命令以及使用技巧
  3. ubuntu squid 做http代理
  4. 解决 IDEA 调用其他类的时候自动加上包路径和类名的情况_idea 快捷键汇总(转)...
  5. Android 第二十课 广播机制(大喇叭)----发送自定义广播(包括发送标准广播和发送有序广播)
  6. mongodb 3.0版本安装
  7. a标签的CSS伪类,点击后变色
  8. Machine Learning for Communication Networks
  9. 利用linux打造工科男的办公娱乐利器 ——以centos为例
  10. 视频ToneMapping(HDR转SDR)中的颜色空间转换问题(BT2020转BT709,YCbCr、YUV和RGB)
  11. AutoRunner 功能自动化测试项目实训之认识自动化测试工具AutoRunner(二)
  12. UWB定位系统油库人员定位解决方案
  13. vm 无法打开本地文件进行写入
  14. Day 9 淘宝静态页面练习 reset.css样式重置 头部信息结构及样式 自定义图标的样式
  15. 办公自动化oa按计算机分类,办公室自动化oa按计算机分类属于什么
  16. 360校招笔试算法题
  17. Echarts曲线渐变色lineStyle
  18. C++基础知识—— 基本输入输出
  19. UI 自动化的页面对象管理工具之实现思路
  20. 华为算法工程师面试经历汇总

热门文章

  1. 腾讯面试题:char 和 varchar的最大长度是多少,以及他们之间的区别(看完你就能和面试官笑谈人生了)
  2. 2021-05-27Series(三):Series和ndarray对比学习 转
  3. 多gpu训练梯度如何计算,求和是否要求平均
  4. 敏感性与特异性理解笔记
  5. np.array 与np.asarray区别
  6. 使用visual vm 分析线程(上)
  7. 介绍Smart Client组件网站
  8. LIVE 预告 | CVPR 2021 预讲 · 迁移学习前沿与进展
  9. 上交张伟楠副教授:基于模型的强化学习算法,基本原理以及前沿进展(附视频)
  10. 智源青年科学家张新雨:从模型平均到集成学习、迁移学习