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

Java中利用OpenCV进行人脸识别

OpenCV
概述

​ OpenCV(Open Source Computer Vision Library)是一个开源计算机视觉库,它提供了丰富的工具和算法,用于处理图像和视频数据。该库由一系列高效的计算机视觉算法组成,涵盖了许多领域,包括目标识别、图像处理、机器学习、三维重建等。

以下是OpenCV的一些关键特点和功能:

  1. 跨平台性: OpenCV是一个跨平台的计算机视觉库,支持Windows、Linux、macOS、iOS等多个操作系统。
  2. 图像处理: OpenCV提供了丰富的图像处理功能,包括图像滤波、边缘检测、形态学操作、颜色空间转换等。
  3. 特征检测与描述符: OpenCV包括多种特征检测和描述符算法,如SIFT、SURF、ORB等,用于在图像中寻找关键点并生成描述符。
  4. 目标检测: OpenCV支持多种目标检测算法,其中包括Haar级联分类器、HOG(Histogram of Oriented Gradients)等。
  5. 图像分割: OpenCV包括图像分割算法,用于将图像分成不同的区域或对象。
  6. 计算机视觉: OpenCV涉及计算机视觉的多个领域,如立体视觉、相机标定、运动估计等。
  7. 机器学习: OpenCV集成了一些机器学习算法,包括支持向量机、k近邻、决策树等。
  8. 深度学习: OpenCV对深度学习模型的支持不断增强,包括对常见深度学习框架(如TensorFlow、PyTorch)模型的集成。
  9. 多媒体处理: OpenCV支持对视频流和音频数据的处理,包括捕捉、录制、播放等。
  10. 开源和社区: OpenCV是一个开源项目,拥有庞大的用户社区。这意味着你可以从社区获取支持,分享代码和经验。

使用OpenCV可以在计算机视觉和图像处理项目中加速开发过程。无论是学术研究还是商业应用,OpenCV都提供了丰富的工具和资源,帮助开发者处理图像和视频数据。

其他学习方式:

官网文档地址:https://docs.opencv.org/4.6.0/df/d65/tutorial_table_of_content_introduction.html

教程参考:https://www.w3cschool.cn/opencv/

教程参考:https://www.yiibai.com/opencv/opencv_adding_text.html

下载与安装

1、你可以从OpenCV的GitHub仓库下载Haar级联分类器的XML文件,该文件用于人脸检测。以下是官方的GitHub仓库地址:

https://github.com/opencv/opencv

在该仓库中,Haar级联分类器的XML文件通常位于 data/haarcascades 目录下。具体来说,用于人脸检测的文件是 haarcascade_frontalface_default.xml

你可以通过直接访问GitHub页面下载该文件,或者使用Git工具将整个仓库克隆到本地。以下是通过Git克隆仓库的命令:

git clone https://github.com/opencv/opencv.git

然后,你可以在 opencv/data/haarcascades 目录下找到 haarcascade_frontalface_default.xml 文件。

请注意,OpenCV的GitHub仓库可能会有更新,因此你可能需要查看最新的版本。
在这里插入图片描述

2、下载地址:https://opencv.org/releases/

在这里插入图片描述

下载到本地后,双击进行安装即可

在这里插入图片描述

目录说明

1、安装目录如下:

在这里插入图片描述

build :基于window构建

sources:开源,提供源码

2、这里是Java开发关注java目录即可:

在这里插入图片描述

x64与x86:代表给不同的系统使用

opencv-452.jar:给java操作openvc的程序包

3、由于是64位系统,所以关注x64目录:
在这里插入图片描述

DLL:(Dynamic Link Library)文件为动态链接库文件,又称“应用程序拓展”,是软件文件类型。DLL文件,放置于系统中。当执行某一个程序时,相应的DLL文件就会被调用

实现操作集成依赖
方式一:

​ 这里使用IDEA进行开发,导入opencv-460.jar库,使用快捷键 Ctrl+Shift+Alt+S打开,选择库项,导入Java库:

在这里插入图片描述

方式二:

​ 创建一个maven项目(springboot也行),并引入依赖,在pom.xml文件中添加:

<!--添加 OpenCV 依赖-->
<dependency><groupId>org.openpnp</groupId><artifactId>opencv</artifactId><version>4.5.1-1</version> <!-- 替换为你所需的 OpenCV 版本 -->
</dependency>
Java代码示例
方式一:

​ 以下是一个简单的Java代码示例,演示如何使用OpenCV进行人脸识别。这个示例使用了OpenCV的Haar级联分类器来检测图像中的人脸。确保你已经将OpenCV的JAR文件添加到你的Java项目中。

import nu.pattern.OpenCV;
import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;/*** 描述:Java中利用OpenCV进行人脸识别** @author 为一道彩虹*/
public class FaceRecognition
{public static void main(String[] args){// 加载 OpenCV 库OpenCV.loadShared();// 读取图像String imagePath = "D://Test/1553247564696949.jpg";Mat image = Imgcodecs.imread(imagePath);// 加载人脸分类器String xmlFile = "D://haarcascade_frontalface_alt.xml";CascadeClassifier faceDetector = new CascadeClassifier(xmlFile);// 人脸检测MatOfRect faceDetections = new MatOfRect();faceDetector.detectMultiScale(image, faceDetections);// 绘制人脸框for (Rect rect : faceDetections.toArray()){Imgproc.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));}// 显示结果HighGui.imshow("Detected Face", image);HighGui.waitKey();// 释放资源image.release();}
}

确保替换 imagePathxmlFile 为你实际的图像文件路径和Haar级联分类器的XML文件路径。

原图:

在这里插入图片描述

利用 OpenCV进行人脸检测的结果:

在这里插入图片描述

方式二:

​ 除了上述方式,还可以将opencv-452.jar安装到本地仓库或私有仓库,然后在pom.xml中引入依赖。

在这里插入图片描述

pom.xml文件中,通过坐标的形式引入

<!-- 加载lib目录下的opencv包 -->
<dependency><groupId>org.opencv</groupId><artifactId>opencv</artifactId><version>4.5.2</version><scope>system</scope><systemPath>${basedir}/lib/opencv-460.jar</systemPath>
</dependency>
验证
public class MyTest 
{// 调用OpenCV库文件static {System.loadLibrary(Core.NATIVE_LIBRARY_NAME);}public static void main(String args[]){// 创建一个3X3的对角矩阵Mat a = Mat.eye(3, 3, CvType.CV_8UC1);System.out.println(a.dump());}
}

执行上述代码,不出意外将出现如下异常:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no opencv_java460 in java.library.pathat java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)at java.lang.Runtime.loadLibrary0(Runtime.java:871)at java.lang.System.loadLibrary(System.java:1122)

解决方案有2种:

1.将D:\Java\opencv\build\java\x64\opencv_java452.dll文件拷贝至下面2个目录,任选其一即可。

在这里插入图片描述

在这里插入图片描述

2.通过指定虚拟机参数解决:

try
{String openCVDllName = "D:\\Java\\opencv\\build\\java\\x64\\opencv_java452.dll";// 本文使用 openCV4.5.2System.load(openCVDllName);
}
catch (SecurityException e)
{System.out.println(e.toString());System.exit(-1);
}
catch (UnsatisfiedLinkError e)
{System.out.println(e.toString());System.exit(-1);
}

​ 以下是一个简单的Java代码示例,演示如何使用OpenCV进行人脸识别。这个示例使用了OpenCV的Haar级联分类器来检测图像中的人脸。确保你已经将OpenCV的JAR文件添加到你的Java项目中。

import org.opencv.core.*;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
import org.opencv.objdetect.CascadeClassifier;/*** 描述:描述:Java中利用OpenCV进行人脸识别** @author 为一道彩虹*/
public class DetectFaceDemo
{public static void detectFace(String imagePath, String outFile) throws Exception{System.out.println("开始人脸检测...");// 加载人脸分类器String xmlFile = "D://haarcascade_frontalface_alt.xml";CascadeClassifier faceDetector = new CascadeClassifier(xmlFile);Mat image = Imgcodecs.imread(imagePath);// 在图片中检测人脸MatOfRect faceDetections = new MatOfRect();faceDetector.detectMultiScale(image, faceDetections);System.out.println(String.format("检测到 %s个人脸", faceDetections.toArray().length));// 绘制人脸框Rect[] rects = faceDetections.toArray();if (rects != null && rects.length > 1){for (Rect rect : rects){// 在每一个识别出来的人脸周围画出一个方框Imgproc.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0), 3);}}// 存储Imgcodecs.imwrite(outFile, image);System.out.println(String.format("人脸检测结果,人脸检测图片文件为:%s", outFile));}public static void main(String[] args) throws Exception{try{String openCVDllName = "D:\\Java\\opencv\\build\\java\\x64\\opencv_java452.dll";// 本文使用 openCV4.5.2System.load(openCVDllName);}catch (SecurityException e){System.out.println(e.toString());System.exit(-1);}catch (UnsatisfiedLinkError e){System.out.println(e.toString());System.exit(-1);}// 人脸测试String imagePath = "D:\\Test\\1553247564696949.jpg";detectFace(imagePath, "D:\\face2.png");}
}

利用 OpenCV进行人脸检测的结果:

在这里插入图片描述

在这里插入图片描述

总结:

在Java中使用OpenCV进行人脸识别通常涉及以下步骤:

  1. 安装 OpenCV: 首先,确保你已经在你的Java项目中安装了OpenCV库。你可以通过Maven或手动下载并添加OpenCV的JAR文件到你的项目中。
  2. 加载 OpenCV 库: 在你的Java代码中,你需要加载OpenCV库。这可以通过以下方式之一完成:
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

或者,如果你使用的是OpenCV的Java wrapper,你可以使用:

nu.pattern.OpenCV.loadShared();
  1. 读取图像: 使用OpenCV的 Mat 类来加载图像。这是OpenCV中表示图像的数据结构。
Mat image = Imgcodecs.imread("path/to/your/image.jpg");
  1. 加载人脸分类器: 为了进行人脸检测,你需要使用Haar级联分类器。OpenCV提供了训练好的人脸检测器,你可以从OpenCV官方网站下载。
String xmlFile = "path/to/haarcascade_frontalface_default.xml";
CascadeClassifier faceDetector = new CascadeClassifier(xmlFile);
  1. 人脸检测: 使用加载的分类器对图像进行人脸检测。
MatOfRect faceDetections = new MatOfRect();
faceDetector.detectMultiScale(image, faceDetections);
  1. 绘制人脸框: 遍历检测到的人脸并在图像上绘制矩形框。
for (Rect rect : faceDetections.toArray()) 
{Imgproc.rectangle(image, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), new Scalar(0, 255, 0));
}
  1. 显示结果: 可以使用OpenCV的窗口显示图像。
HighGui.imshow("Detected Face", image);
HighGui.waitKey();
  1. 释放资源: 当你完成所有操作后,确保释放OpenCV对象。
image.release();

请注意,以上代码只是一个简单的示例。在实际应用中,你可能需要处理图像的各种情况,例如图像预处理、性能优化等。此外,你还可以使用深度学习模型进行人脸识别,OpenCV也提供了对深度学习模型的支持。

先赞后看,养成习惯!!!^ _ ^ ❤️ ❤️ ❤️
码字不易,大家的支持就是我的坚持下去的动力。点赞后不要忘了关注我哦!

相关文章:

Java中利用OpenCV进行人脸识别

OpenCV 概述 ​ OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源计算机视觉库&#xff0c;它提供了丰富的工具和算法&#xff0c;用于处理图像和视频数据。该库由一系列高效的计算机视觉算法组成&#xff0c;涵盖了许多领域&#xff0c;包括目…...

23111708[含文档+PPT+源码等]计算机毕业设计基于javaweb的旅游网站前台与后台旅景点

文章目录 **论文截图&#xff1a;****实现&#xff1a;****代码片段&#xff1a;** 编程技术交流、源码分享、模板分享、网课教程 &#x1f427;裙&#xff1a;776871563 下面是系统运行起来后的部分截图&#xff1a; 论文截图&#xff1a; 实现&#xff1a; 代码片段&#xf…...

Windows安装nvm【node.js版本管理工具】

目录 下载安装包 安装 配置 配置node的国内镜像源 配置npm的国内镜像源 常用命令 查看可安装的node版本 安装指定的版本 查看已有的node版本列表 切换版本 下载安装包 https://github.com/coreybutler/nvm-windows/releases/tag/1.1.11 安装 安装过程就不贴了&#xff0…...

让资产权利归于建设者:Kiosk使过程变得更简单

区块链凭借着其将人的权利地位置于平台之上的能力&#xff0c;可以重塑互联网&#xff0c;而自托管为个人提供了控制和管理其资产和数据的能力。链上交易支持建设者和客户之间的点对点交易。这些特质联合起来&#xff0c;可以将数字世界从基于价值提取的模式转变为基于价值创造…...

MLP感知机python实现

from torch import nn from softmax回归 import train_ch3 import torch import torchvision from torch.utils import data from torchvision import transforms# ①准备数据集 def load_data_fashion_mnist(batch_size, resizeNone):# PyTorch中的一个转换函数&#xff0c;它…...

Es 拼音搜索无法高亮

目录 背景&#xff1a; Es 版本&#xff1a; 第一步 第二步 &#xff08;错误步骤 - 只是记录过程&#xff09; 第三步 第四步 第五步 第六步 第七步 背景&#xff1a; app 原有的搜索功能无法进行拼音搜索&#xff0c;产品希望可以支持&#xff0c;例如内容中含有&a…...

java线性并发编程介绍-锁(二)

2.5 重量锁底层ObjectMonitor 需要去找到openjdk&#xff0c;在百度中直接搜索openjdk&#xff0c;第一个链接就是 找到ObjectMonitor的两个文件&#xff0c;hpp&#xff0c;cpp 先查看核心属性&#xff1a;http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/69087d08d473…...

Java JPA详解:从入门到精通

描述&#xff1a;本文详细介绍了Java JPA的概念、使用方法以及常见问题&#xff0c;帮助读者从入门到精通掌握JPA。 关键词&#xff1a;Java JPA、Hibernate、持久层框架、ORM、数据库访问 一、Java JPA概述 Java Persistence API&#xff08;JPA&#xff09;是JavaEE 5规范…...

使用Open3D库处理3D模型数据的实践指南

目录 引言 一、安装Open3D库 二、加载3D模型数据 三、处理3D模型数据 1、去除模型中的无效面 2、提取模型特征 四、存储处理后的3D模型数据 五、可视化处理后的3D模型数据 六、注意事项 结论 引言 在处理3D模型数据时&#xff0c;Open3D库是一个功能强大且易于使用的…...

代码随想录算法训练营第五十八天丨 动态规划part18

739. 每日温度 思路 首先想到的当然是暴力解法&#xff0c;两层for循环&#xff0c;把至少需要等待的天数就搜出来了。时间复杂度是O(n^2) 那么接下来在来看看使用单调栈的解法。 什么时候用单调栈呢&#xff1f; 通常是一维数组&#xff0c;要寻找任一个元素的右边或者左边…...

Pytest自动化测试框架介绍

1、什么是单元测试框架 单元测试是指在软件开发当中&#xff0c;针对软件的最小单位&#xff08;函数&#xff0c;方法&#xff09;进行正确性的检查测试。 2、单元测试框架主要做什么 测试发现&#xff1a;从多个文件里面去找到我们需要的测试用例。 测试执行&#xff1a;按…...

基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(五)

公共字段自动填充 1.1 问题分析1.2 实现思路1.3 代码开发1.3.1 步骤一1.3.2 步骤二1.3.3 步骤三 1.4 功能测试 1.1 问题分析 在前面我们已经完成了后台系统的员工管理功能和菜品分类功能的开发&#xff0c;在新增员工或者新增菜品分类时需要设置创建时间、创建人、修改时间、修…...

Oracle 监控的指标有哪些和oracle巡检的内容

日常监控指标&#xff1a; 性能指标&#xff1a; 查询响应时间CPU利用率内存利用率磁盘 I/O 活动网络吞吐量 空间管理&#xff1a; 表空间使用率数据文件增长情况Undo 表空间使用率临时表空间使用率 会话和连接&#xff1a; 活跃会话数等待事件监控连接数和连接池效率 数据库对…...

Uniapp有奖猜歌游戏系统源码 带流量主

有奖猜歌游戏是一款基于uni-app、uniCloud、uniAD 开发的小游戏,通过猜歌曲、观看广告赚取现金奖励。 本游戏基本特征如下: 1、玩家可以通过猜歌、做任务等方式直接获取现金奖励 2、玩家可以通过猜歌、拆红包、做任务等方式获取金币奖励,当金币累积到一定数量可以兑换现金 3…...

【算法与数据结构】前言

算法与数据结构是OI中不可或缺的一部分。 今天&#xff0c;让我们走进算法与数据结构独特世界。 性能 算法与数据结构都是完成任务的方法。 方法就要有性能。 有效率就有描述性能的语言。 这就是复杂度。 复杂度的描述 由于复杂度描述的是大致性能&#xff0c;所以采用的是…...

(六)什么是Vite——热更新时vite、webpack做了什么

vite分享ppt&#xff0c;感兴趣的可以下载&#xff1a; ​​​​​​​Vite分享、原理介绍ppt 什么是vite系列目录&#xff1a; &#xff08;一&#xff09;什么是Vite——vite介绍与使用-CSDN博客 &#xff08;二&#xff09;什么是Vite——Vite 和 Webpack 区别&#xff0…...

贝加莱MQTT功能

贝加莱实现MQTT Client端的功能库和例程 导入库和例程&#xff0c;AS Logical View中分别通过Add Object—Library&#xff0c;Add—Program插入MQTT库和例程。 将例程Sample放置于CPU循环周期中 定义证书存放路径&#xff0c;在AS Physical View 中&#xff0c;右击PLC—Con…...

基于JavaWeb+SSM+购物系统微信小程序的设计和实现

基于JavaWebSSM购物系统微信小程序的设计和实现 源码获取入口前言主要技术系统设计功能截图Lun文目录订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 前言 第一章 绪 论 1.1选题背景 互联网是人类的基本需求&#xff0c;特别是在现代社会&#xff0c;…...

为什么需要Code Review?

1. Code Review 是什么&#xff1f; 代码审查&#xff08;Code Review&#xff09;是软件开发过程中对代码进行系统性检查和评审的一项活动。它是指团队成员之间相互检查彼此编写的代码&#xff0c;以确保代码质量、可读性和符合编码标准等。 2. Code Review 的必要性 ● 提…...

【计算机网络笔记】ICMP(互联网控制报文协议)

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…...

Git教程1:生成和提交SSH公钥到远程仓库

要生成 Git 的公钥并将其提交到远程仓库&#xff0c;你可以按照以下步骤进行操作&#xff1a; 打开命令行终端&#xff0c;并确保已经安装了 Git。在终端中输入以下命令来生成 SSH 密钥对&#xff1a;ssh-keygen -t rsa -b 4096 -C "your_emailexample.com"这将生成…...

贝茄莱BR AS实时数据采集功能

实时数据采集功能在PLC系统调试过程中&#xff0c;有助于调试人员对变量变化进行监测&#xff0c;通过波形对比&#xff0c;反应不同变量间的相互作用。该测试目的在于验证贝加莱系统组态软件的实时数据采集功能。 贝加莱系统组态软件提供Trace功能&#xff0c;连接PLC&#x…...

Git的基本操作以及原理介绍

文章目录 基本操作创建git仓库配置name和email .git目录的结构git add & git commit.git目录结构的变化 git追踪管理的数据git的版本回退回退的原理回退的三种情况 版本库中文件的删除git分支管理分支的删除合并分支时的冲突分支的合并模式分支策略git stash不要在master分…...

2023安全与软工顶会/刊中区块链智能合约相关论文

2023安全与软工顶会/刊中区块链智能合约相关论文 前言软工顶会ISSTAFSEASEICSE 软工顶刊TOSEMTSE 安全顶会S&PUSENIX SecurityCCSNDSS 前言 主要整理了2023年四大安全顶会、四大软工顶会和两个软工顶刊中&#xff0c;有关区块链智能合约的相关论文。 搜索方式是&#xff1…...

word文档转换为ppt文件,怎么做?

大家是否会遇到需要将word文档转换为ppt文件的情况&#xff1f;除了反反复复粘贴复制以外&#xff0c;还有其他方法可以转换文件格式&#xff0c;今天给大家分享word转换ppt方法。 首先我们先将word文件打开大纲模式 然后我们将文中的大标题设置为1级标题&#xff0c;副标题设…...

机器视觉选型-什么时候用远心镜头

物体厚 当被检测物体厚度较大&#xff0c;需要检测不止一个平面时&#xff0c;典型应用如食品盒&#xff0c;饮料瓶等。 物体位置变化 当被测物体的摆放位置不确定&#xff0c;可能跟镜头成一定角度时。 物体上下跳动 当被测物体在被检测过程中上下跳动&#xff0c;如生产线上下…...

quartz笔记

Quartz-CSDN博客 上面是Quartz的一些基本知识,如果对quartz的基本API不是很了解的话,建议先看下上面的 和Linux Crontab对比 1.执行粒度: Linux Crontab是进程级 quart是线程级 2.跨平台性: Crontab只能在Linxu运行 quart是java实现,可以跨平台 3.调度集上 Crontab的…...

ER 图是什么

文章目录 前言什么是 ER图ER 图实例简化的 ER 图总结 前言 产品经理在梳理产业业务逻辑的过程中&#xff0c;非常重要的一项工作就是梳理各个业务对象之间的关系。如果涉及对象很对的时候&#xff0c;没有工具支持的话很难处理清楚。今天我们就来介绍一个梳理业务对象关系的工…...

PLC电力载波通讯,一种新的IoT通讯技术

前言: PLC-IoT 是 PLC 技术应用在物联场景的创新实践,有效解决电力线路信号干扰、衰减问题,支持 IP 化通信能力,使能终端设备智能化,构建智慧边缘联接。PLC让传统IoT有了更多的连接可能: 电力线通信技术适用的场景包括电力配用电网络、城市智慧路灯、交通路口信号灯、园…...

Elasticsearch:通过摄取管道加上嵌套向量对大型文档进行分块轻松地实现段落搜索

作者&#xff1a;VECTOR SEARCH 向量搜索是一种基于含义而不是精确或不精确的 token 匹配技术来搜索数据的强大方法。 然而&#xff0c;强大的向量搜索的文本嵌入模型只能按几个句子的顺序处理短文本段落&#xff0c;而不是可以处理任意大量文本的基于 BM25 的技术。 现在&…...

OpenCV图像纹理

LBP描述 LBP&#xff08;Local Binary Pattern&#xff0c;局部二值模式&#xff09;是一种用来描述图像局部纹理特征的算子&#xff1b;它具有旋转不变性和灰度不变性等显著的优点。它是首先由T. Ojala, M.Pietikinen, 和D. Harwood 在1994年提出&#xff0c;用于纹理特征提取…...

自媒体写手提问常用的ChatGPT通用提示词模板

如何撰写一篇具有吸引力和可读性的自媒体文章&#xff1f; 如何确定自媒体文章的主题和受众群体&#xff1f; 如何为自媒体文章取一个引人入胜的标题&#xff1f; 如何让自媒体文章的开头更加吸引人&#xff1f; 如何为自媒体文章构建一个清晰、逻辑严谨的框架&#xff1f;…...

分类预测 | Matlab实现PSO-LSTM-Attention粒子群算法优化长短期记忆神经网络融合注意力机制多特征分类预测

分类预测 | Matlab实现PSO-LSTM-Attention粒子群算法优化长短期记忆神经网络融合注意力机制多特征分类预测 目录 分类预测 | Matlab实现PSO-LSTM-Attention粒子群算法优化长短期记忆神经网络融合注意力机制多特征分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1…...

3GPP TS38.201 NR; Physical layer; General description (Release 18)

TS38.201是介绍性的标准&#xff0c;简单介绍了RAN的信道组成和PHY层承担的功能&#xff0c;下图是PHY层相关标准的关系。 文章目录 结构信道类型调制方式PHY层支持的过程物理层测量其他标准TS 38.202: Physical layer services provided by the physical layerTS 38.211: Ph…...

【GitLab】-HTTP 500 curl 22 The requested URL returned error: 500~SSH解决

写在前面 本文主要介绍通过SSH的方式拉取GitLab代码。 目录 写在前面一、场景描述二、具体步骤1.环境说明2.生成秘钥3.GitLab添加秘钥4.验证SSH方式4.更改原有HTTP方式为SSH 三、参考资料写在后面系列文章 一、场景描述 之前笔者是通过 HTTP Personal access token 的方式拉取…...

【如何学习Python自动化测试】—— 自动化测试环境搭建

1、 自动化测试环境搭建 1.1 为什么选择 Python 什么是python&#xff0c;引用python官方的说法就是“一种解释型的、面向对象、带有励志语义的高级程序设计语言”&#xff0c;对于很多测试人员来说&#xff0c;这段话包含了很多术语&#xff0c;而测试人员大多是希望利用编程…...

在通用jar包中引入其他spring boot starter,并在通用jar包中直接配置这些starter的yml相关属性

场景 我在通用jar包中引入 spring-boot-starter-actuator 这样希望引用通用jar的所有服务都可以直接使用 actuator 中的功能&#xff0c; 问题在于&#xff0c;正常情况下&#xff0c;actuator的配置都写在每个项目的yml文件中&#xff0c;这就意味着&#xff0c;虽然每个项目…...

Seaborn 回归(Regression)及矩阵(Matrix)绘图

Seaborn中的回归包括回归拟合曲线图以及回归误差图。Matrix图主要是热度图。 1. 回归及矩阵绘图API概述 seaborn中“回归”绘图函数共3个&#xff1a; lmplot&#xff08;回归统计绘图&#xff09;&#xff1a;figure级regplot函数&#xff0c;绘图同regplot完全相同。(lm指lin…...

nginx学习(1)

一、下载安装NGINX&#xff1a; 先安装gcc-c编译器 yum install gcc-c yum install -y openssl openssl-devel&#xff08;1&#xff09;下载pcre-8.3.7.tar.gz 直接访问&#xff1a;http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz&#xff0c;就…...

CLEARTEXT communication to XX not permitted by network security policy 报错

在进行网络请求时&#xff0c;日志中打印 CLEARTEXT communication to XX not permitted by network security policy 原因&#xff1a; Android P系统网络访问安全策略升级&#xff0c;限制了非加密的流量请求 Android P系统限制了明文流量的网络请求&#xff0c;之下的版本…...

91.移动零(力扣)

问题描述 代码解决以及思想 class Solution { public:void moveZeroes(vector<int>& nums) {int left 0; // 左指针&#xff0c;用于指向当前非零元素应该放置的位置int right 0; // 右指针&#xff0c;用于遍历数组int len nums.size(); // 数组长度while …...

PatchMatchNet笔记

PatchMatchNet笔记 1 概述2 PatchmatchNet网络结构图2.1 多尺度特征提取2.2 基于学习的补丁匹配 3 性能评价 PatchmatchNet: Learned Multi-View Patchmatch Stereo&#xff1a;基于学习的多视角补丁匹配立体算法 1 概述 特点   高速&#xff0c;低内存&#xff0c;可以处理…...

实时人眼追踪、内置3D引擎,联想ThinkVision裸眼3D显示器创新四大应用场景

11月17日&#xff0c;在以“因思而变 智领未来”为主题的Think Centre和ThinkVision 20周年纪念活动上&#xff0c;联想正式发布了业内首款2D/3D 可切换裸眼3D显示器——联想ThinkVision 27 3D。该产品首次将裸眼2D、3D可切换技术应用在显示器领域&#xff0c;并拓展了3D技术多…...

SELinux零知识学习十四、SELinux策略语言之客体类别和许可(8)

接前一篇文章&#xff1a;SELinux零知识学习十三、SELinux策略语言之客体类别和许可&#xff08;7&#xff09; 一、SELinux策略语言之客体类别和许可 4. 客体类别许可实例 &#xff08;2&#xff09;文件客体类别许可 文件客体类别有三类许可&#xff1a;直接映像到标准Lin…...

Unity——URP相机详解

2021版本URP项目下的相机&#xff0c;一般新建一个相机有如下组件 1:Render Type(渲染类型) 有Base和Overlay两种选项&#xff0c;默认是Base选项 Base:主相机使用该种渲染方式&#xff0c;负责渲染场景中的主要图形元素 Overlay&#xff08;叠加&#xff09;:使用了Oveylay的…...

CRUD-SQL

文章目录 前置insertSelective和upsertSelective使用姿势手写sql&#xff0c;有两种方式 一、增当导入的数据不存在时则进行添加&#xff0c;有则更新 1.1 唯一键&#xff0c;先查&#xff0c;后插1.2 批量插1.2.1 批次一200、批次二200、批次三200&#xff0c;有一条数据写入失…...

【C语言 | 数组】C语言数组详解(经典,超详细)

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…...

第三十三节——组合式API生命周期

一、基本使用 组合式api生命周期几乎和选项式一致。注意组合式api是从挂载阶段开始 <template><div></div> </template> <script setup> import {onBeforeMount, onMounted,onBeforeUpdate, onUpdated, onBeforeUnmount, onUnmounted, } from …...

【Linux】Alibaba Cloud Linux 3 安装 PHP8.1

一、系统安装 请参考 【Linux】Alibaba Cloud Linux 3 中第二硬盘、MySQL8.、MySQL7.、Redis、Nginx、Java 系统安装 二、安装源 rpm -ivh --nodeps https://rpms.remirepo.net/enterprise/remi-release-8.rpm sed -i s/PLATFORM_ID"platform:al8"/PLATFORM_ID&q…...

【容器化】Kubernetes(k8s)

文章目录 概述Docker 的管理痛点什么是 K8s云架构 & 云原生 架构核心组件K8s 的服务注册与发现组件调用流程部署单机版部署主从版本Operator来源拓展阅读 概述 Docker 虽好用&#xff0c;但面对强大的集群&#xff0c;成千上万的容器&#xff0c;突然感觉不香了。 这时候就…...