当前位置: 首页 > news >正文

使用OpenCV 和 Dlib 实现年龄性别预测

文章目录

    • 引言
    • 1.系统架构
    • 2.代码解析
      • 2.1 模型初始化
      • 2.2 核心函数实现
        • (1) 人脸检测函数 getBoxes()
        • (2) 中文文本显示函数
    • 3. 主循环流程
    • 4.关键技术点
    • 5.总结

引言

在计算机视觉领域,人脸检测与属性分析是一项基础且重要的技术。本文将详细介绍如何使用OpenCV和深度学习模型实现一个实时的人脸检测系统,该系统不仅能定位人脸位置,还能预测性别和年龄段。这个系统可以广泛应用于智能监控、人机交互、广告投放等场景。

1.系统架构

本系统由三个核心模块组成:

  1. 人脸检测模块:定位图像中的人脸位置
  2. 性别识别模块:预测检测到的人脸性别
  3. 年龄预测模块:估计检测到的人脸年龄段

2.代码解析

2.1 模型初始化

# 加载预训练模型
faceNet = cv2.dnn.readNet("opencv_face_detector_uint8.pb", "opencv_face_detector.pbtxt")
ageNet = cv2.dnn.readNet("age_net.caffemodel", "deploy_age.prototxt")
genderNet = cv2.dnn.readNet("gender_net.caffemodel", "deploy_gender.prototxt")# 定义年龄段和性别分类标签
ageList = ['0-2岁','4-6岁','8-12岁','15-20岁','25-32岁','38-43岁','48-53岁','60-100岁']
genderList = ['男性','女性']

这里我们加载了三个预训练模型:

  • 人脸检测模型(基于SSD框架)
  • 年龄预测模型(Caffe格式)
  • 性别识别模型(Caffe格式)

2.2 核心函数实现

(1) 人脸检测函数 getBoxes()
def getBoxes(net, frame):# 图像预处理blob = cv2.dnn.blobFromImage(frame, 1.0, (300,300), [104,117,123], True, False)# 模型推理net.setInput(blob)detections = net.forward()# 解析检测结果faceBoxes = []for i in range(detections.shape[2]):confidence = detections[0,0,i,2]if confidence > 0.7:  # 置信度阈值# 坐标转换x1 = int(detections[0,0,i,3] * frameWidth)y1 = int(detections[0,0,i,4] * frameHeight)x2 = int(detections[0,0,i,5] * frameWidth)y2 = int(detections[0,0,i,6] * frameHeight)faceBoxes.append([x1,y1,x2,y2])# 绘制人脸框cv2.rectangle(frame,(x1,y1),(x2,y2),(0,255,0),2)return frame, faceBoxes

这段代码定义了一个名为 getBoxes 的函数,用于通过深度学习模型检测图像中的人脸并返回人脸边界框。以下是详细解析:


1.函数功能

  • 输入
    • net:预加载的深度学习模型(通常是Caffe或TensorFlow格式的SSD、YOLO等人脸检测模型)
    • frame:输入的图像帧(OpenCV格式的BGR图像)
  • 输出
    • 返回两个值:
      1. 绘制了人脸框的图像帧(frame
      2. 检测到的人脸边界框列表(faceBoxes,每个框格式为 [x1, y1, x2, y2]

2.关键步骤解析

(1) 图像预处理

blob = cv2.dnn.blobFromImage(frame, 1.0, (300,300), [104,117,123], True, False)
  • 作用:将输入图像转换为深度学习模型所需的Blob格式
  • 参数说明
    • 1.0:缩放因子(保持原图亮度)
    • (300,300):模型要求的输入尺寸(SSD模型常用)
    • [104,117,123]:BGR通道的均值(用于归一化)
    • True:交换R和B通道(OpenCV用BGR,模型通常需要RGB)
    • False:不裁剪图像

(2) 模型推理

net.setInput(blob)
detections = net.forward()
  • detections结构
    返回一个4维数组,格式为(batch_size, 1, num_detections, 7),其中:
    • 最后一个维度7包含:[_, _, confidence, x1_norm, y1_norm, x2_norm, y2_norm]
    • 坐标是归一化后的值(0~1之间)

(3) 解析检测结果

for i in range(detections.shape[2]):confidence = detections[0,0,i,2]  # 获取置信度if confidence > 0.7:  # 过滤低置信度检测# 将归一化坐标转换为实际像素坐标x1 = int(detections[0,0,i,3] * frameWidth)y1 = int(detections[0,0,i,4] * frameHeight)x2 = int(detections[0,0,i,5] * frameWidth)y2 = int(detections[0,0,i,6] * frameHeight)faceBoxes.append([x1,y1,x2,y2])
  • 置信度阈值0.7(可调整,值越高检测越严格)
  • 坐标转换:将模型输出的归一化坐标乘以图像宽/高,得到实际像素坐标

(4) 绘制人脸框

cv2.rectangle(frame, (x1,y1), (x2,y2), (0,255,0), int(round(frameHeight/150)), 6)
  • (0,255,0):绿色框(BGR格式)
  • frameHeight/150:动态调整框线粗细(基于图像高度)
  • 6:线型(实线)

3. 典型应用场景

# 示例用法
net = cv2.dnn.readNetFromCaffe("deploy.prototxt", "res10_300x300_ssd_iter_140000.caffemodel")
frame = cv2.imread("test.jpg")
processed_frame, boxes = getBoxes(net, frame)
cv2.imshow("Detection", processed_frame)
  • 需要预加载的模型文件(如Caffe的.prototxt.caffemodel

4. 输出示例
假设检测到一个人脸:

  • faceBoxes[[120, 80, 320, 280]]
    (表示人脸框左上角(120,80),右下角(320,280))
  • frame:原始图像上绘制了绿色矩形框

5. 注意事项

  1. 模型选择
    需确保net与输入的Blob尺寸匹配(这里是300x300的SSD模型)。
  2. 性能优化
    高分辨率图像可先缩放到合理尺寸再检测。
  3. 阈值调整
    confidence > 0.7可根据实际场景调整(值越高漏检越多,但误检越少)。

6.总结
这段代码实现了一个基于深度学习的人脸检测流水线,完成了从图像预处理、模型推理到结果解析的全过程,是构建实时人脸识别、表情分析等系统的核心组件之一。


(2) 中文文本显示函数
def cv2AddChineseText(img, text, position, textColor=(0,255,0), textSize=30):# 将OpenCV图像转换为PIL格式img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))draw = ImageDraw.Draw(img)# 加载中文字体fontStyle = ImageFont.truetype("simsun.ttc", textSize, encoding="utf-8")draw.text(position, text, textColor, font=fontStyle)# 转换回OpenCV格式return cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR)

3. 主循环流程

cap = cv2.VideoCapture(0)
while True:_, frame = cap.read()frame = cv2.flip(frame, 1)  # 镜像处理# 人脸检测frame, faceBoxes = getBoxes(faceNet, frame)# 对每个检测到的人脸进行属性分析for faceBox in faceBoxes:x1,y1,x2,y2 = faceBoxface = frame[y1:y2, x1:x2]# 性别预测blob = cv2.dnn.blobFromImage(face, 1.0, (277,277), mean)genderNet.setInput(blob)gender = genderList[genderNet.forward()[0].argmax()]# 年龄预测ageNet.setInput(blob)age = ageList[ageNet.forward()[0].argmax()]# 显示结果result = f"{gender},{age}"frame = cv2AddChineseText(frame, result, (x1,y1-30))cv2.imshow("Face Analysis", frame)if cv2.waitKey(1) == 27:  # ESC键退出break

4.关键技术点

  1. 模型选择

    • 人脸检测:使用轻量级的SSD模型
    • 性别/年龄识别:使用Caffe框架的CNN模型
  2. 图像预处理

    • 均值减法归一化
    • 尺寸调整
    • BGR到RGB通道转换
  3. 性能优化

    • 置信度阈值过滤(0.7)
    • 动态调整检测框线宽

5.总结

本文介绍了一个完整的实时人脸属性分析系统,从模型加载、图像预处理到属性预测和结果显示。该系统展示了如何将多个深度学习模型集成到一个实用的应用中。可以根据实际需求调整模型参数、优化性能或扩展功能。

完整代码已在上文给出,建议在实际应用中:

  1. 根据场景调整置信度阈值
  2. 考虑添加异常处理机制
  3. 对模型输出进行后处理以提高准确性

相关文章:

使用OpenCV 和 Dlib 实现年龄性别预测

文章目录 引言1.系统架构2.代码解析2.1 模型初始化2.2 核心函数实现(1) 人脸检测函数 getBoxes()(2) 中文文本显示函数 3. 主循环流程4.关键技术点5.总结 引言 在计算机视觉领域,人脸检测与属性分析是一项基础且重要的技术。本文将详细介绍如何使用OpenCV和深度学习…...

SSTI学习

1,什么是模板 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,利用模板引擎来生成前端的html代码,模板引擎会提供…...

0基础学习鸿蒙开发-HarmonyOS4

一、初识 1. 开发工具 官网 开发-HarmonyOS NEXT鸿蒙应用开发平台-华为开发者联盟 2. ArkTS 二、TypeScript 基本语法 1.变量声明 2. 条件控制 注意 在TypeScrips中 空字符串数字0、null、undefined 都坡认为是false 其它值则为true if (num) {// num 非空执行 } 3. 循环迭…...

原生 IP(Native IP)

目录 一、核心特点 二、原生 IP 的常见应用 三、原生 IP vs. 数据中心 IP 四、如何获取原生 IP? 五、原生 IP 的优缺点 六、实际案例 原生 IP(Native IP) 是指由互联网服务提供商(ISP)直接分配给用户的 IP 地址&…...

python + whisper 读取蓝牙耳机, 转为文字

1. 起因, 目的: 看到别人做了类似的效果。所以自己也想试试看。动手。 2. 先看效果 3. 过程: 我用的是蓝牙耳机,EDIFIER W820NB 先找到声音,设置为 Hands-Free 模式 代码 1 ,查找设备名称, 看看哪个是能用的。 我…...

Prometheus实战教程:k8s平台-使用文件服务发现案例

date: 2025-03-06 tags:- prometheus --- 1查看NODE-IPkubectl get node -o wideNAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIMEk8s-node01 Ready &…...

黄金量化:高频实时的贵金属API

在风云变幻的投资领域,贵金属黄金市场一直备受瞩目。近期,黄金等贵金属报价API,价格走势犹如过山车,引发投资者高度关注。据 iTick 数据显示,截至 2025 年 5 月 6 日 15:30,黄金 TD 价格为 792.97 元 / 克&…...

人工智能在医疗运营编程中的应用综述

引言 随着人工智能技术的迅猛发展,医疗行业正经历一场深刻的变革。人工智能不再仅限于辅助诊断或医学影像分析,而是逐步渗透到医疗运营的各个环节。医疗运营编程作为医院管理的核心,涵盖了从患者入院到出院的全过程管理,包括资源分配、工作流程优化、收入管理、供应链控制等…...

【心海资源】0U攻击工具|一键模仿地址生成+余额归集+靓号生成系统

内容: 这是一款集合多种区块链辅助功能的0U攻击工具,无需部署环境、无需复杂配置,打开即可使用。主要功能包括: 0U攻击模块:模拟常见0U攻击场景,实现交易干扰与诱导。模仿地址生成:快速批量生成…...

Jenkins忘记admin密码后的恢复步骤

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 时间较长没有使用…...

基于深度学习的智能仓储异常检测系统设计与实现

一、项目场景 该设备主要应用于制造业、物流中心和仓储管理等场景。在制造业生产线上,该系统可用于实时监测产品的码垛状况,确保产品符合安全标准,避免因堆叠不当导致的产品损坏和生产停滞。在物流中心,系统能够监测卸货和入库过…...

安装篇--CentOS 7 虚拟机安装

CentOS 7 作为一个稳定且广泛使用的 Linux 发行版,是学习服务器管理和搭建各种服务(例如 Hadoop 集群)的理想平台。本次教程将教会大家如何在 VMware Workstation 虚拟机软件中一步步安装 CentOS 7 桌面环境。 准备工作: 确保您的…...

【Fifty Project - D23】

今日完成记录 TimePlan完成情况8:30 - 9:30《挪威的森林》√14:00 - 16:00修改大论文√16:00 - 17:30和老板讨论√ 早上在轰隆隆的火车声和时而从窗帘钻进的刺眼阳光中醒来,并没有意识到假期已…...

从零开始学java--集合类(2)

集合类 目录 集合类 Queue 队列的使用: 双端队列(Deque) Map和Set 概念: 模型: Map 常见方法说明: 注意: TreeMap和HashMap的区别: Set 常见方法说明: 注…...

在Star-CCM+中实现UDF并引用场数据和网格数据

在Star-CCM中实现UDF并引用场数据和网格数据 Star-CCM中的用户自定义函数(UDF)允许用户通过Java或C/C编程扩展软件功能。下面我将详细介绍如何实现UDF并引用模拟数据。 1. UDF基础实现方法 1.1 创建UDF的步骤 在Star-CCM中,右键点击"工具" → “用户函…...

WebRTC 服务器之SRS服务器性能优化配置

1.概述 SRS (Simple Realtime Server) 中提供的各种性能优化选项。这些选项允许您针对不同场景优化 SRS,从而在延迟、吞吐量和资源利用率之间取得平衡。有关常规配置的信息,请参阅配置。 1.1 性能提升目标 流媒体服务器的性能通常…...

n8n 中文系列教程_20. n8n高效开发秘诀:单步调试与测试用例实战指南

在n8n低代码开发中,你是否遇到过工作流运行时出错却难以定位问题?或者精心设计的流程在处理新数据时突然崩溃?单步调试和测试用例是解决这些痛点的关键!本文将带你掌握精准调试技巧和高效测试方法,确保你的自动化流程稳…...

手机携号转网查询,一键查看号码是否可转网!

在现代社会,手机已经成为人们生活不可或缺的一部分。随着通讯技术的不断发展,手机用户们也有了更多的选择权利,比如携号转网。那么,如何方便地查询一个手机号是否可以进行携号转网呢?今天,我们就来介绍一款…...

多线程网络编程:粘包问题、多线程/多进程服务器实战与常见问题解析

多线程网络编程:粘包问题、多线程/多进程服务器实战与常见问题解析 一、TCP粘包问题:成因、影响与解决方案 1. 粘包问题本质 TCP是面向流的协议,数据传输时没有明确的消息边界,导致多个消息可能被合并(粘包&#xf…...

【ArcGISPro】属性规则--属性联动

新建要素 直接点击【完成】 设置全局ID <...

五一感想:知识产权加速劳动价值!

今天是五一劳动节&#xff0c;祝各位网友劳动节快乐&#xff0c;昨天《中华人民共和国民营经济促进法》通过&#xff0c;普推知产老杨看到其中第三十三条专门就是针对知识产权的&#xff0c;加强对民营经济的原始创新保护。 一个普通的小物件白牌可能就卖1元钱&#xff0c;但是…...

ORACLE EBS 12.1 启用https 简单策略

Oracle EBS 启用https的官方文档是Document 376700.1, Enabling TLS in Oracle E-Business Suite Release 12.1&#xff0c;上面各种配置比较繁琐&#xff0c;我们参照Using Load-Balancers with Oracle E-Business Suite Release 12.0 and 12.1 (Doc ID 380489.1) 这个文档来利…...

Sublime PrettyJson 快捷键

一、进入快捷键编辑页 二、添加格式化、去掉格式化 快捷键 [ { "keys": ["ctrlcommandj"], "command": "pretty_json"}, { "keys": ["ctrlcommandm"], "command": "un_pretty_json"}…...

【计算机网络】TCP为什么可靠?解决了哪些问题?

TCP提供了&#xff1a; 1.可靠传输 2.流量控制 3.拥塞控制 4.连接管理 解决了数据在不可靠IP网络上的传输问题。 下面具体分析这4个方面。 1.可靠性传输&#xff1a; TCP确保数据包在网络传输过程中 不丢失、不重复&#xff0c;并且按顺序到达。 通过确认(ACK)、重传机制以…...

AI服务器的作用都有哪些?

根据网络环境的飞速发展&#xff0c;人工智能技术逐渐入驻到各个行业当中&#xff0c;其中AI服务器则是一种专门用来运行人工智能算法和模型的硬件设备&#xff0c;通常具备高性能计算、大容量存储和并行计算等多种功能&#xff0c;本文就来详细讲解一下AI服务器的作用&#xf…...

移动应用开发:自定义 View 处理大量数据的性能与交互优化方案

实现 1 万条数据下流畅滑动与灵敏交互的完美平衡。 一、数据渲染优化&#xff1a;从 1 万条到丝滑体验 &#xff08;一&#xff09;视图复用机制 视图复用是提升大量数据渲染性能的关键策略。以一个简单的自定义列表视图为例&#xff0c;我们可以构建如下的复用池管理机制&a…...

在 Ubuntu 下使用 ESP-IDF 通过串口烧录 ESP32

1. 准备工作 (1) 安装 ESP-IDF 环境 确保已完成 ESP-IDF 的安装和配置&#xff08;参考官方文档&#xff09;&#xff1a; bash 复制 下载 git clone --recursive https://github.com/espressif/esp-idf.git cd esp-idf ./install.sh . ./export.sh (2) 连接开发板 通过…...

探索SQLMesh中的Jinja宏:提升SQL查询的灵活性与复用性

在数据工程和数据分析领域&#xff0c;SQL是不可或缺的工具。随着项目复杂度的增加&#xff0c;如何高效地管理和复用SQL代码成为了一个重要课题。SQLMesh作为一款强大的工具&#xff0c;不仅支持标准的SQL语法&#xff0c;还引入了Jinja模板引擎的宏功能&#xff0c;极大地提升…...

【Linux】Linux中的调度和切换

一、引入基本概念 在任何的分时操作系统中&#xff0c;其调度都是较为公平的调度。在来回顾一下关于优先级为什么会被限制的问题&#xff1a; Linux为什么调整优先级是要受到限制的呢&#xff1f;&#xff1f; 如果不加限制&#xff0c;将自己进程的优先级调整到非常高&#xf…...

.NET 通过回调函数执行 Shellcode启动进程

在红队活动往往需要考虑如何在实际环境中绕过防御机制,启动木马进程。今天,我们将深入探讨一种较少被提及但非常有趣的技术——利用 EnumPwrSchemes 函数回调来执行shellcode。 0x01 EnumPwrSchemes函数 EnumPwrSchemes 是 Windows 操作系统中的一个 API 函数,位于 C:\Win…...

快速体验 .NET9 提供的 HybridCache 混合缓存

.NET 9 引入了 HybridCache&#xff0c;这是一个新的高性能、分布式就绪的内存缓存实现&#xff0c;旨在为现代 Web 应用提供更高效的数据缓存机制。它结合了本地缓存&#xff08;如 IMemoryCache&#xff09;和分布式缓存&#xff08;如 Redis、Garnet、SQL Server&#xff09…...

使用docker配置Mysql

Docker 命令 下面是一个常用的 Docker 命令&#xff0c;用于启动 MySQL 容器&#xff0c;并将数据挂载到本地目录&#xff1a; docker run -d \--name mysql-server \-e MYSQL_ROOT_PASSWORDyourpassword \-e MYSQL_DATABASEyourdb \-e MYSQL_USERyouruser \-e MYSQL_PASSWOR…...

stm32之输出比较OC和输入捕获IC

目录 1.输出比较OC1.1 简介1.2 PWM简介1.3 输出比较通道1.3.1 通用定时器1.3.2 高级定时器 1.4 PWM基本结构1.6 舵机1.7 直流电机1.7.1 引入&#xff1a;MX1508 芯片1.7.2 TB6612芯片 1.8 结构体和API1.8.1 结构体1.8.2 API1. TIM_OC1Init / TIM_OC2Init / TIM_OC3Init / TIM_O…...

为什么Transformer推理需要做KV缓存

一、我们先来回忆一下在transformer中KV在哪里出现过&#xff0c;都有什么作用&#xff1f; α的计算过程&#xff1a; 这里引入三个向量&#xff1a; 图中的q为Query&#xff0c;用来匹配key值 图中的k为key,用来被Query匹配 图中的Value&#xff0c;是用来被进行加权平均的 由…...

Stream和Collections工具类

Stream流 Java 8 API添加了一个新的抽象称为流Stream&#xff0c;可以让你以一种声明的方式处理数据。Stream使用一种类似用SQL语句从数据库查询数据的直观方式来提供一种对Java集合运算和表达的高阶抽象。这种风格将要处理的元素集合看作一种流&#xff0c;流在管道中传输&am…...

结合Hutool 突增突降检测的算法

在 Hutool 中虽然没有直接提供“突增突降检测”的算法&#xff0c;但可以通过其提供的工具类&#xff08;如 CollUtil、ArrayDeque、MathUtil 等&#xff09;结合滑动窗口、差分分析等方法&#xff0c;快速实现突增突降检测逻辑。以下是基于 Hutool 的实现思路和示例代码&#…...

java springboot deepseek流式对话集成示例

1.直接上代码-后端&#xff1a; RestController CrossOrigin(origins "*") public class DeepSeekController {private static final String API_URL "https://api.deepseek.com/v1/chat/completions";private final ObjectMapper objectMapper new Ob…...

技术对暴力的削弱

信息时代的大政治分析&#xff1a;效率对暴力的颠覆 一、工业时代勒索逻辑的终结 工厂罢工的消亡 1930年代通用汽车罢工依赖工厂的物理集中、高资本投入和流水线脆弱性&#xff0c;通过暴力瘫痪生产实现勒索。 信息时代企业分散化、资产虚拟化&#xff08;如软件公司可携带代码…...

RAG框架搭建(基于Langchain+Ollama生成级RAG 聊天机器人)

目录 一 Ollama安装 Windows 系统安装 验证安装 二 Langchain安装 2.1 先创建一个虚拟环境 2.2 安装最新版 langchain​ 三 基于 Langchain私有模型&#xff0c;构建一个生成级RAG 聊天机器人 3.1 初始化LLM 3.2 增强生成 3.3生成嵌入 3.4 生成并存储嵌入 一 Ol…...

spring cloud gateway(网关)简介

Spring Cloud Gateway 是一个基于 Spring WebFlux 构建的强大且广泛使用的 API 网关。它负责处理所有进入的请求&#xff0c;并将它们路由到相应的后端服务。 Gateway 的主要作用&#xff1a; 统一的入口点 (Single Entry Point)&#xff1a; 它为所有的客户端请求提供了一个…...

webrtc 视频直播

webrtc 是一种开源的音视频通信技术&#xff0c;可以不借助中间媒介建立浏览器点对点&#xff08;peer-to-peer&#xff09;连接&#xff0c;实现音视频以及其他数据的传输。webrtc具有平台兼容性&#xff0c;低延迟与高实时的优点。今天主要记录一下webrtc的使用记录&#xff…...

【Elastsearch】如何获取已创建的api keys

在Elasticsearch中&#xff0c;可以通过API获取已创建的API密钥&#xff08;API keys&#xff09;。以下是具体步骤和示例&#xff1a; 1.使用GET请求获取API密钥 Elasticsearch提供了GETAPI&#xff0c;用于列出当前用户可以访问的所有API密钥。 请求格式 plaintext GET /_se…...

AI Agent开发第57课-AI用在销售归因分析场景中-用随机森林从0构建自己的“小模型”

开篇 在前一篇《机器学习的基础-线性回归如何应用在商业场景中》里,我们说到了如果我们只是简单的分析和预测一下投入广告费用和销售额增长是否存在必然关系,我们用了线性回归法得到了分析,得到的分析结果极其精准,以及提到了:如果当销售因素是非线性的并且有着额外一些如…...

Elasticsearch知识汇总之ElasticSearch部署

五 ElasticSearch部署 部署Elasticsearch&#xff0c;可以在任何 Linux、MacOS 或 Windows 机器上运行 Elasticsearch。在Docker 容器 中运行 Elasticsearch 。使用Elastic Cloud on Kubernetes 设置和管理 Elasticsearch、Kibana、Elastic Agent 以及 Kubernetes 上的 Elasti…...

高等数学第五章---定积分(§5.4反常积分)

5.4 反常积分 前面我们学习了定积分 ∫ a b f ( x ) d x \int_a^b f(x) d x ∫ab​f(x)dx&#xff0c;其中积分区间 [ a , b ] [a, b] [a,b] 是有限区间&#xff0c;且被积函数 f ( x ) f(x) f(x) 在 [ a , b ] [a, b] [a,b] 上是连续的&#xff08;或至多有有限个第一类间…...

UE5 ML机械学习肌肉反应与布料反应

在查找Ai过渡动画的过程中,通过米哈游鹿鸣的展示,了解到的机械学习技术 https://dev.epicgames.com/documentation/zh-cn/unreal-engine/using-the-machine-learning-deformer-in-unreal-engine#%E5%85%88%E5%86%B3%E6%9D%A1%E4%BB%B6 https://dev.epicgames.com/documentati…...

UE5 诺伊腾动捕使用笔记

AxisStudio使用说明 诺伊腾动捕有两个软件,分别是AxisStudio和Axis Post 打开软件后选择"工程" 分为两种工程,一种是PN Studio和PN3,这两个工程对于不同的骨骼方式(也可以修改) 以PNStudio的2.0-Carwheel举例 右侧的数据为你的目标骨骼的尺寸,例如我现在是Metahuma…...

【测试开发】概念篇 - 从理解需求到认识常见开发、测试模型

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;博客仓库&#xff1a;https://gitee.com/JohnKingW/linux_test/tree/master/lesson &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &…...

【2025年】基于电脑的jdk1.8通过idea创建springboot2.x版本(非常简洁快速)

【2025年】基于电脑的jdk1.8通过idea创建springboot2.x版本 提示&#xff1a;帮帮志会陆续更新非常多的IT技术知识&#xff0c;希望分享的内容对您有用。本章分享的是springboot的使用。前后每一小节的内容是存在的有&#xff1a;学习and理解的关联性。【帮帮志系列文章】&…...

在sheel中运行Spark

RDD基本概念 Resilient Distributed Dataset 叫做弹性分布式数据集&#xff0c;是Spark中最基本的数据抽象&#xff0c;是分布式计算的实现载体&#xff0c;代表一个不可变&#xff0c;可分区&#xff0c;里面的元素并行计算的集合。 Dataset&#xff1a; 一个数据集合&#xf…...