⌈ 传知代码 ⌋ 微表情识别系统

💛前情提要💛

本文是传知代码平台中的相关前沿知识与技术的分享~

接下来我们即将进入一个全新的空间,对技术有一个全新的视角~

本文所涉及所有资源均在传知代码平台可获取

以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦!!!

以下内容干货满满,跟上步伐吧~


📌导航小助手📌

  • 💡本章重点
  • 🍞一. 概述
  • 🍞二. 核心逻辑
  • 🍞三. 使用方式
  • 🫓总结


💡本章重点

  • 微表情识别系统

🍞一. 概述

面部表情图像预处理是面部表情识别的重要步骤,主要目的是在于提取特征之前排除一切与面部表情无关的干扰因素。例如,环境光照、姿势和不同背景等。在干扰排除后,将人类面部直接与公共参考系相对接、使每个面部特征对应的语义位置精准无误。人脸检测、人脸对齐、数据增强、人脸一是实现面部表情图像预处理的主要方法


🍞二. 核心逻辑

人脸检测:

# 初始化字典,并保存Haar级联检测器名称及文件路径
detectorPaths = {"face": "haarcascade_frontalface_default.xml"
}
'''
加载Haar级联检测器:
创建一个空字典detectors,用于存储加载的检测器。
使用cv2.CascadeClassifier()加载XML文件,并将检测器存储在detectors字典中。
'''
# 初始化字典以保存多个Haar级联检测器
print("[INFO] loading haar cascades...")
detectors = {}# 遍历检测器路径
for (name, path) in detectorPaths.items():# 加载Haar级联检测器并保存到mappath = os.path.sep.join([args["cascades"], path])
detectors[name] = cv2.CascadeClassifier(path)
'''
图像处理:
从磁盘读取输入图像,使用imutils.resize函数将图像宽度调整为500像素。
将图像转换为灰度图以便进行人脸检测。
'''
# 从磁盘读取图像,缩放,并转换灰度图
print(args['image'])
image = cv2.imread(args["image"])
image = imutils.resize(image, width=500)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
'''
执行面部检测:
使用人脸检测器执行面部检测,得到面部的边界框坐标。
'''
# 使用合适的Haar检测器执行面部检测
faceRects = detectors["face"].detectMultiScale(gray, scaleFactor=1.05, minNeighbors=5, minSize=(30, 30),
flags=cv2.CASCADE_SCALE_IMAGE)
'''
眼睛和嘴巴检测:
对于每个检测到的面部,分别在面部ROI中应用眼睛和嘴巴检测器,得到相应的边界框坐标。
'''
# 遍历检测到的所有面部
for (fX, fY, fW, fH) in faceRects:# 提取面部ROIfaceROI = gray[fY:fY + fH, fX:fX + fW]# 在面部ROI应用左右眼级联检测器eyeRects = detectors["eyes"].detectMultiScale(faceROI, scaleFactor=1.1, minNeighbors=10,minSize=(15, 15), flags=cv2.CASCADE_SCALE_IMAGE)# 在面部ROI应用嘴部检测smileRects = detectors["smile"].detectMultiScale(faceROI, scaleFactor=1.1, minNeighbors=10,minSize=(15, 15), flags=cv2.CASCADE_SCALE_IMAGE)

多人脸检测:

在这里插入图片描述
Haar是一种特征描述,随着时代的进步Haar也从Haar Basic的三种简单特征扩展到了Haar-Like以及到现在的Haar Extended。但是万变不离其宗,我们笼统得把他们分成三类:中心特征,线性特征, 边缘特征。特征模板内有白色和黑色两种矩形,并定义该模板的特征值为白色矩形像素和减去黑色矩形像素和。Haar特征值反映了图像的灰度变化情况

在这里插入图片描述
Haar原来就是一些固定的特征模型,在人脸识别这个特助的领域中可以局部的契合图像特征。

级联示意图:

在这里插入图片描述
卷积神经网络,FaceCNN 类:

初始化:定义了一个包含卷积层、批量归一化、RReLU激活函数、池化层和全连接层的卷积神经网络结构。
前向传播方法 (forward):定义了模型的前向传播过程。

在这里插入图片描述


🍞三. 使用方式

在这里插入图片描述
功能分别是中文显示识别结果以及用英文显示识别结果以及相应的置信度计算结果展示。

在这里插入图片描述

设置中文字体

font = cv2.FONT_HERSHEY_SIMPLEX
font_chinese = cv2.FONT_HERSHEY_SIMPLEX 

指定中文字体文件路径,替换成你自己的中文字体文件路径

font_path = ''
font_chinese = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText()

确保你已经下载并设置好中文字体文件路径。

text = f"{} ()"
cv2.putText()

将 cv2.putText 函数的 font 参数替换为 font_chinese,以确保使用中文字体。

置信度计算:

在这里插入图片描述


🫓总结

综上,我们基本了解了“一项全新的技术啦” 🍭 ~~

恭喜你的内功又双叒叕得到了提高!!!

感谢你们的阅读😆

后续还会继续更新💓,欢迎持续关注📌哟~

💫如果有错误❌,欢迎指正呀💫

✨如果觉得收获满满,可以点点赞👍支持一下哟~✨

【传知科技 – 了解更多新知识】

在这里插入图片描述
加粗样式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/22320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++ Thread多线程并发记录(3)线程创建总结

1.启动线程传递全局函数 #include <iostream> #include <thread>void Th1(int id){std::cout << "Create global fun. id " << id << std::endl; } void TH1(const int &id){std::cout << "Create global fun. id &…

软件质量保障复习

注&#xff1a;&#xff08;红色字体是作业题&#xff09; 一、软件全方位缺陷检测 1.什么是软件&#xff1f; 2.什么是软件质量&#xff1f; 3.什么是软件缺陷&#xff1f; 4.软件缺陷有哪些类型&#xff1f;&#xff08;软件缺陷的表现&#xff09; 5.为什么需要软件全…

leetcode74搜索二维矩阵

题目 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 fa…

推荐系统三十六式学习笔记:原理篇.内容推荐|04|画鬼容易画人难:用户画像的“能”和“不能”

目录 什么是用户画像&#xff1f;用户画像的关键因素用户画像构建的方法总结&#xff1a; 今天我来跟你聊一聊用户画像那些事。 什么是用户画像&#xff1f; 用户画像对应的英文是User Profile ,它原本用于营销领域。营销人员需要对营销的客户有更精准的认识&#xff0c;从而能…

NeuralForecast 推理 - 最简单的推理方式

NeuralForecast 推理 - 最简单的推理方式 flyfish 最简单的保存和加载模型代码 import pandas as pd import numpy as npAirPassengers np.array([112.0, 118.0, 132.0, 129.0, 121.0, 135.0, 148.0, 148.0, 136.0, 119.0],dtypenp.float32, )AirPassengersDF pd.DataFram…

培养核心人才,落实IPD体系

IPD体系已经成为业界公认的研发管理优秀框架与实践&#xff0c;不过在企业范围内&#xff0c;真正落实IPD体系、并且取得收益&#xff0c;却并非一件容易的事情&#xff0c;流程体系建立好了&#xff0c;却发现找不到合适人员去落实&#xff0c;任命了相关团队和成员&#xff0…

大文件上传处理:分卷压缩

大文件上传处理&#xff1a;分卷压缩 大文件上传处理&#xff1a;分卷压缩1、分卷压缩&#xff08;1&#xff09;Bandizip压缩工具&#xff1a;&#xff08;2&#xff09;分卷压缩后&#xff1a; 2、分卷压缩解压3、解压缩工具下载 大文件上传处理&#xff1a;分卷压缩 1、分卷…

第 400 场 LeetCode 周赛题解

A 候诊室中的最少椅子数 计数&#xff1a;记录室内顾客数&#xff0c;每次顾客进入时&#xff0c;计数器1&#xff0c;顾客离开时&#xff0c;计数器-1 class Solution {public:int minimumChairs(string s) {int res 0;int cnt 0;for (auto c : s) {if (c E)res max(res, …

i.MX8MP平台开发分享(TMU功能介绍篇)

概述 温度监控单元&#xff08;TMU&#xff09;监控并报告来自一个或多个芯片上远程温度测量点的温度。温度管理单元的特性&#xff1a; 温度测量范围&#xff1a;-40至105C。监控功能&#xff1a; 单点或多点监控超出范围指示高/低温度范围监控即时和平均温度监控可编程低通…

为什么住宅代理在负载测试中表现良好?

住宅代理在负载测试中表现好源于其独特的优势&#xff0c;尤其是在模拟真实条件下评估系统性能方面。无论是 Web 应用程序、服务器还是其他在线服务&#xff0c;它们都需要面对来自不同地理位置和不同网络条件的用户请求。在本文中&#xff0c;我们将深入探讨为什么驻地代理是负…

PS插件一键轻松搞定电商产品摄影图!

在电商行业中&#xff0c;一张高质量的产品摄影图往往能够吸引更多潜在消费者的目光&#xff0c;从而增加产品的销量。然而&#xff0c;对于许多电商卖家和摄影师来说&#xff0c;后期处理产品图片却是一个既耗时又费力的工作。 最近我发现一款PS插件可以一键生成电商产品摄影…

Day07 待办事项功能页面设计

​ 当前章节待办事项页面设计最终效果图: 一.布局设计 整个 待办事项页面 主要分上下布局,也就是分2行进行设计。第1 行 放搜索框和添加待办按钮,第2行 放置待办事项的内容。 那么 在视图中,怎么将页面分上下2行?就使用到Grid中 的 Grid.RowDefinitions ,就能实现将页面分…

Codeforces Round 950 (Div. 3) A B

A. Problem Generator time limit per test: 1 second memory limit per test: 256 megabytes input: standard input output: standard output Vlad is planning to hold m m m rounds next month. Each round should contain one problem of difficulty levels ‘A’, ‘B’…

Spring Cloud系列——使用Sentinel进行微服务保护

文章目录 一、引言1. 雪崩问题的产生原因2. 解决雪崩问题的思路 二、微服务保护1. 服务保护方案1.1 请求限流1.2 线程隔离1.3 服务熔断 2. Sentinel2.1 安装2.2 微服务整合2.2.1 请求限流2.2.2 线程隔离①OpenFeign整合Sentinel②配置线程隔离 2.2.3 服务熔断①编写降级逻辑②配…

计算机网络学习记录 网络层 Day4(下)

计算机网络学习记录 网络层 Day4 &#xff08;下&#xff09; 你好,我是Qiuner. 为记录自己编程学习过程和帮助别人少走弯路而写博客 这是我的 github https://github.com/Qiuner ⭐️ ​ gitee https://gitee.com/Qiuner &#x1f339; 如果本篇文章帮到了你 不妨点个赞吧~ 我…

【数据结构】双向带头(哨兵位)循环链表 —详细讲解(赋源码)

欢迎来到我的Blog&#xff0c;点击关注哦&#x1f495; 前面介绍单向不带头&#xff08;哨兵位&#xff09;链表&#xff0c;双向相比于单向而言&#xff0c;存贮&#xff0c;查找&#xff0c;会更加便利。 前言 双向循环列表是一种特殊的数据结构&#xff0c;它结合了双向链表…

MySQL 存储过程(一)

本篇主要介绍MySQL存储过程的相关内容 目录 一、什么是存储过程&#xff1f; 二、基本语法 创建存储过程 调用存储过程 查看存储过程 删除存储过程 三、变量 系统变量 用户自定义变量 局部变量 四、存储过程的参数 in out inout 一、什么是存储过程&#xff1f…

摄像头对人脸进行性别和年龄的判断

摄像头对人脸性别和年龄判断 导入必要的库加载预训练的人脸检测模型加载预训练的性别和年龄识别模型定义性别和年龄的标签列表打开摄像头从摄像头读取一帧转换为灰度图像检测人脸遍历检测到的人脸显示视频流按 ‘q’ 或点击窗口的“”退出循环释放摄像头和销毁所有窗口全部代码…

python中的while循环

没有循环时&#xff0c;想打印0-100之间的数字&#xff0c;则需要循环多次&#xff0c;例&#xff1a; print(0) print(1) print(2) print(3) ... print(99) 但是使用循环的话&#xff0c;就不会有那么麻烦 while 循环 while 这个单词有“在……时”的含义&#xff0c;whil…

【UnityShader入门精要学习笔记】第十七章 表面着色器

本系列为作者学习UnityShader入门精要而作的笔记&#xff0c;内容将包括&#xff1a; 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更&#xff0c;有始无终 我的GitHub仓库 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 表面着色器…