计算机视觉 1-8章 (硕士)
文章目录
- 零、前言
- 1.先行课程:python、深度学习、数字图像处理
- 2.查文献
- 3.环境安装
- 第一章:概论
- 1.计算机视觉的概念
- 2.机器学习
- 第二章:图像处理相关基础
- 1.图像的概念
- 2.图像处理
- 3.滤波器
- 4.卷积神经网络CNN
- 5.图像的多层表示:图像金字塔
- 6.人类对比敏感度函数
- 第三章:图像的特征
- 1.图像特征
- 2.特征点、角点
- (1)Harris角点特征检测
- (2)SIFT特征描述子
- 3.图像边缘、边缘检测
- 第四章:图像对齐问题
- 1.图像对应
- (1)概念
- (2)SIFT特征算法
- (3)SURF特征算法
- 2.图像对齐
- (1)概念
- (2)RANSAC
- (3)仿射变换 (六自由度)
- (4)刚体的对齐
- (5)非刚体的对齐
- 第五章:二值图像分析
- 1.二值图像的定义和通途
- 2.二值图像的创建
- 3.二值图像特征计算
- 第六章:纹理特征及分析
- 1.纹理分析
- 2.纹理的定义
- (1)纹理的定义、类型
- (2)纹理特征分析
- (3)共生矩阵:灰度共生矩阵GLCM
- (4)局部二值模式算子 (LBP算子)
- 3.GAN网络
- 第七章:图像分割
- 1.图像分割的定义、目标、本质
- 2.图像分割算法的种类
- (1)OTSU方法 (最大类间方差法)
- (2)区域生长 (Region growing)
- (3)分裂合并算法
- (4)能量方法:蛇模型、水平集模型
- (5)聚类分割方法
- (6)图割(Graph-based segmentation)
- 第八章:语义分割
- 1.语义分割的概念
- 2.基于CNN的语义分割
- 3.基于FCN的语义分割
- 4.语义分割网络架构
- (1)编码器-解码器(encoder-decoder)结构
- (2)空洞卷积的结构
- (3)隐神经
零、前言
每章内容:
1.深度学习概念
2.filter,滤波:去噪,增强
3.多层特征表达:全局特征、局部特征、点特征、边缘特征
4.图像对齐
5.二值图像
6.纹理特征
1.先行课程:python、深度学习、数字图像处理
2.查文献
1.查文献的网址
①dblp:dblp.org
②paperswithcode
2.查文献的关键词
①image matching:图像匹配
②tiny object
3.环境安装
1.Python的安装:https://blog.csdn.net/Edward1027/article/details/142702722
2.Anaconda软件安装与环境配置:https://blog.csdn.net/Edward1027/article/details/142703627
3.PyTorch的安装:https://blog.csdn.net/Edward1027/article/details/142722503
标识符:数字、字母、下划线,且首字符不能是数字
第一章:概论
1.计算机视觉的概念
1.计算机视觉是什么?
计算机视觉(Computer Vision) 是人工智能和计算机科学的一个重要分支,旨在让计算机从图像、视频或其他视觉数据中自动理解、分析和解释现实世界的信息。计算机视觉模仿了人类的视觉系统,试图通过算法来让计算机“看懂”并“理解”图像和视频。
2.计算机视觉的主要任务是什么?
计算机视觉的目标是使机器能够像人类一样“看到”、“理解”、并分析视觉信息,它的主要任务包括:图像分类(Image Classification)、目标检测(Object Detection)、图像分割(Image Segmentation)、物体跟踪(Object Tracking)、人脸识别(Face Recognition)、动作识别(Action Recognition)、三维重建(3D Reconstruction)、图像生成与合成(Image Generation and Synthesis)、场景理解(Scene Understanding)、光流估计(Optical Flow Estimation)
3.多模态输入(图像、文本),视觉语言模型
4.图像是2D的,视觉是理解2D→3D的。
5.模型 = 形式 + 参数
模型的形式不变,模型的参数可调节。比如 y = kx + b,这个形式不变,但参数k b可变。
6.pytorch[批量大小batch size,通道数channels,高 height,宽width(空域尺度)]
2.机器学习
1.机器学习的框架
2.机器学习算法的常见类型
①有监督学习
②无监督学习
③增强学习
3.常见的机器学习问题
4.感知器、神经元
5.卷积神经网络:5层卷积、3层神经元,输出1000个类别
权重矩阵的维度:权重矩阵通常是二维的,形状为 [输入维度×输出维度]
6.前馈网络和反馈网络
7.计算机视觉的应用:
8.计算机视觉算法的流程
(1)传统算法
(2)深度学习算法
9.深度学习
感知器、神经元、前馈神经网络、反馈神经网络、卷积神经网络
第二章:图像处理相关基础
1.图像的概念
1.图像是二维空间中的像素集合。
2.三种图像:
①彩色图像:RGB,一个像素是24bit,有RGB三个颜色通道,每个通道8bit,0-255
②灰度图像:0-255,一个像素是8bit,灰度像素是0-255,0是黑,255是白
③二值图像:只有0和1,一个像素是1bit
3.彩色图像转灰度图像
在很多图像处理任务中,彩色图像的灰度值是通过将每个像素的RGB值按照一定的加权比例合并计算得出的。最常用的公式基于人眼对不同颜色的敏感度,一般的加权公式为:
G r a y = 0.299 R + 0.587 G + 0.114 B Gray=0.299R+0.587G+0.114B Gray=0.299R+0.587G+0.114B
在这个公式中,红色、绿色和蓝色通道的贡献不同,因为人眼对绿色最敏感,对蓝色最不敏感。
2.图像处理
1.图像预处理:低频→高频
①低级处理:图像锐化和去噪
②中级处理:识别物体
③高级处理:图像理解,物体位置
扩展数据集的方法:将图像进行剪切、旋转、翻转 (数据集越多,神经网络学到的知识越多)
3.滤波器
1.滤波:先算卷积和,再对应相乘相加
2.滤波器的作用:
①图像增强处理:去除噪声、图像修复、超分辨率重建
②特征提取:边缘检测、角点信息
低通滤波器:用于去除图像中的噪声、平滑信号。
高通滤波器:用于图像锐化、边缘检测。
带通滤波器:在生物医学信号处理中,用于提取心电图中的特定频率成分。
带阻滤波器:在音频处理中,用于去除特定的噪声频段(如50Hz电源噪声)。
[10,10,10]
[255,255,255]
[255,255,255]
4.卷积神经网络CNN
分类,只需要下采样。
分割、检测、超分辨率重建,要下采样再上采样。
①下采样(downsampling):提取特征、对齐维度、减少计算量
②上采样(upsampling):还原细节
5.图像的多层表示:图像金字塔
1.图像金字塔:0层、1层、2层、3层(顶层)。原始图像为0层。
2.图像金字塔的构建方法
①上采样:由第k层删除第k-1层图像,图像尺寸加倍 (由上层采样得到下层,图像由小变大,增加图像的分辨率)
②下采样/降采样:由第k层产生第k+1层图像,图像尺寸减半 (由下层采样得到上层,图像由大变小,减少图像的分辨率)
3.常见的图像金字塔
①高斯金字塔
②拉普拉斯金字塔
4.图像金字塔的用途:
①视觉感知
②消除噪声
③分析纹理
④识别目标和场景
⑤标记图像特征
6.人类对比敏感度函数
1.对比敏感度函数(Contrast Sensitivity Function, CSF)描述了人眼对不同空间频率的对比度变化的敏感度,它反映了人类视觉系统如何感知图像中的细节。人类的视觉对中等空间频率的变化最敏感,而对非常高或非常低频率的变化不太敏感。
2.人类对中等空间频率的感知最好
第三章:图像的特征
1.图像特征
1.什么是图像特征?
(1)图像特征是数字图像全局或者局部的特点。例如:点特征、形状特征、颜色特征
(2)特征是指图像中的某些局部区域或模式,它们在图像处理和计算机视觉中可以帮助描述、辨别或识别图像中的内容。不同的特征可以表示图像的边缘、角点、纹理或颜色分布等。
(3)以下是图像中几个常见特征的例子:
①角点特征:角点是图像中的独特点,通常是边缘相交的地方或局部变化比较明显的区域。在图中的第二个例子,砖墙的复杂纹理中,角点特征会出现在每个砖块的交汇处。
②边缘特征:图像中的边缘是亮度突然变化的区域,通常表示物体的轮廓。在图中的第一个例子中,使用边缘检测算法可以提取人脸的轮廓作为特征。
③颜色特征:颜色是自然场景中特别明显的特征。在图中的第三个例子,森林场景中可以提取绿色和棕色区域作为颜色特征,反映树木和地面的分布。
这些特征被提取后可以用于物体识别、场景理解、跟踪等计算机视觉任务。
(4)图像显著特征(Salient Features)是指在图像中最能引起注意的区域或点,通常包括边缘、角点、纹理、颜色对比等。这两者之间有紧密的联系,因为显著特征往往对应于人类视觉最敏感的区域或频率。
2.图像特征的分类
(1)特征从整体-局部结构分类:
①全局特征:是指图像全局属性的描述,颜色特征和纹理特征是图像典型的全局特征
②局部特征:是指图像中灰度有明显变化的局部点或者局部区域特性。边缘特征、点特征、形状特征、局部区域特征是图像典型局部特征。
③从全局到局部感知的特征:是指从全局图像中感知到的图像中目标特性。空间位置特征是图像典型的这类特征。
(2)特征从属性分类:
①颜色特征
②形状特征
③纹理特征
④运动特征
3.常见特征:
①颜色特征 (全局特征)
②形状特征 (局部特征)
③纹理特征 (全局特征)
④空间位置特征 (从全局到局部感知的特征)
⑤局部区域特征
⑥边缘特征
⑦点特征
2.特征点、角点
1.特征点是指像中具有显著性和独特性的点,包括边缘、纹理区域和斑点等
2.角点,是图像上局部的区域灰度有明显变化的像素点。
3.角点是特征点的子集
4.角点的检测方法
①Harris角点特征提取
②尺度不变特征变换算法 (SIFT算法)
③加速鲁邦特征检测算法 (SURF算法)
④快速角点特征检测方法
⑤高斯拉普拉斯算子检测方法
⑥基于Hessian矩阵的特征检测方法
(1)Harris角点特征检测
(2)SIFT特征描述子
关键点(keypoint)描述子128维:4*4*8
整体对齐 与 局部对齐
3.图像边缘、边缘检测
1.边缘的定义
边缘:一个区域向另一个区域过渡的交接处,即强度不连续的过渡区,称为边缘。
2.图像边缘特征的用途
①目标识别
②图像几何信息计算:灭点、灭线
灭点:两条或多条平行线向远处地平线伸展直至聚合的一点
灭线:平面上,所有直线灭点的轨迹
3.常见的边缘类型:
①阶跃边缘
②斜坡边缘
③脊边缘
④屋顶边缘
4.常用边缘检测算法
①梯度边缘检测方法
②非最大抑制边缘检测方法
③Canny边缘检测器
④Roberts算子边缘检测器
⑤Prewitt算子边缘检测器
⑥Sobel算子边缘检测器
⑦拉普拉斯算子
⑧LOG算子边缘检测器
用于计算梯度偏导数的滤波器模板,通常称之为梯度算子、边缘算子和边缘检测子等。
5.其他
①池化:平均池化(averagepooling)、最大池化(maxpooling)
②步长
③pytorch差值函数
第四章:图像对齐问题
1.图像对应
(1)概念
①对应点
②对应目标
③特征匹配:点对点匹配(point to point matching)
优点:高准确度
缺点:速度慢,每个点都是128维的SIFT特征
对应与对齐的区别:
对齐要变换
(2)SIFT特征算法
SIFT(Scale Invariant Feature Transform):尺度不变特征转换
SIFT由David Lowe在1999年提出。SIFT的主要特点是能够在尺度和旋转上保持不变性,因此在图像匹配、物体识别等任务中具有广泛应用。用于图像特征点检测和描述。
1.SIFT特征描述具有尺度不变和旋转不变特性,对光照变化和仿射变换具有很强的鲁棒性。
2.SIFT存在的问题:128维特征的维度太大,计算相似性的时间复杂度较高
总结:SIFT的点特征信息丰富,但计算速度慢
(3)SURF特征算法
2.图像对齐
(1)概念
1.2D图像对齐的基本步骤
①求特征点
②特征点匹配
③求变换矩阵:求图像之间的对应变换参数
④b图像变形与a图像对齐:得到两视点图像对齐关系
⑤图像拼合
(2)RANSAC
基于RANSAC的优化算法:
RANSAC的核心思想是通过随机抽样和迭代,寻找一个能最大限度拟合“内点”(inliers)的模型,忽略那些被认为是“外点”(outliers)的数据。
(3)仿射变换 (六自由度)
整体对齐:仿射变换矩阵
局部对齐
变形:每个点×M矩阵 = 变形后的图像
仿射变换在计算机图形学中广泛应用,例如图像的旋转、缩放和裁剪;在机器学习中的数据预处理和数据增强也常用仿射变换来生成不同视角下的图像。
(4)刚体的对齐
(5)非刚体的对齐
第五章:二值图像分析
1.二值图像的定义和通途
1.优点
存储只需要1bit
2.用途
①目标实例分离
②目标形状分析
③用于缺陷检测
2.二值图像的创建
1.传统方法:分割策略
(1)基于阈值方法
(2)基于区域方法
(3)基于能量方法
①如果是彩色图像:先灰度化,再二值化
②如果是灰度图像:直接二值化
单阈二值化就一个阈值。
多阈二值化,有多个阈值,阈值用阈值函数f(x,y)表示。
对于多阈值二值化,存在多个阈值Tk(k=1,2,…,n),每个阈值Tk将像素的灰度级别划分为一个区间。如果像素的灰度值f(x,y)落在某个区间内,则赋予该像素对应的二值化结果g(x,y)。
2.深度学习方法:语义分割
利用训练好的语义分割模型进行预测
3.前景:比阈值大,前景是1,白色
背景:比阈值小,背景是0,黑色
4.确定阈值、以分离前景和背景
3.二值图像特征计算
1.二值图像的特征计算
①二值图像的面积:为1的元素的个数
②二值图像目标的方向及伸长率
2.4连通、8连通
3.前景、背景、洞
4.欧拉数
E = C - H
欧拉数 = 连通数 - 洞数
5.连通成份标记
①递归算法
②序贯算法
6.中轴,主骨架,细化
有边界点就剥去
7.利用数学形态学方法处理二值图像
形态学算子:
①膨胀(dilation):或运算,中心击中,4邻域补上,多了外边界
②腐蚀(erosion):整体与运算,全部集中,少了外边界。用途:将粘连的物体分离开
③开运算:先腐蚀,后膨胀
④闭运算:先膨胀,后腐蚀。用途:去除小的孔洞
先开后闭构成噪声滤波器
第六章:纹理特征及分析
1.纹理分析
1.纹理研究两个的目的:
①研究纹理的观赏特性
②纹理分析
2.纹理分析的目标:
纹理特征提取,图像分割与分类,目标识别与分析,医疗诊断,纹理合成,遥感图像分析,人脸分析,生物特征识别
2.纹理的定义
(1)纹理的定义、类型
1.纹理的定义
定义1: 按一定规则对元素或基元进行排列所形成的重复模式。
定义2:当图像函数近似周期性的变化,则图象中的对应区域就具有恒定的纹理
2.纹理的类型
①规则纹理
②随机纹理
(2)纹理特征分析
3.纹理特征分析
(1)统计分析方法:通过纹理的灰度分布情况来描述纹理一些特征,比如利用粗糙度特征对区域进行分类。图像局部区域统计中,常用纹理特征统计方法有:灰度共生矩阵(GLCM)、局部二值模式(LBP) 算法、自相关函数、灰度游程、灰度分布
(2)结构分析法
(3)模型分析法
(4)频谱分析法
(3)共生矩阵:灰度共生矩阵GLCM
4.共生矩阵统计方法
共生矩阵:是对纹理中相距一定距离两像素的灰度分布进行统计的矩阵
共生矩阵是统计纹理特征的基础
色阶是0-2,所以共生矩阵是3×3。
若色阶是0-3,则共生矩阵是4×4。
5.自相关函数
纹理粗,则缓降
纹理细,则速降
(4)局部二值模式算子 (LBP算子)
6.局部二值模式算子
(1)概念
局部二值模式 (Local Binary Patterns,LBP)是一种用于图像纹理特征提取的算子。LBP算子在计算图像中像素的局部纹理模式时,能够很好地描述图像的纹理信息,常用于图像分类、纹理分析、目标检测、人脸识别等任务中。
(2)LBP计算
局部二值模式 LBP( Local Binary Pattern )是一种非参数算子,用于描述图像特征
先统计LBP值值,然后分析纹理的模式
(3)LBP算子的应用
①每个像素可以计算得到局部二值模式特征
②整幅图像划分为若干的子区域,每个子区域提取局部二值模式特征,用直方图表示
③整幅图像特征:用所有统计直方图组成
④整幅图像的特征统计量,用于虹膜图像分割、分类识别等。
7.分形理论
Koch曲线
分形维数特征 (FD)
8.傅里叶变化频谱图 (频域变换)
靠近原点的是低频,远离原点的是高频
9.纹理分类方法
3.GAN网络
1.GAN网络的定义
生成对抗网络,generative adversarial network,GAN网络
2.GAN网络的组成
GAN 由两个主要的神经网络组成:
①生成器 (Generator,G):生成器负责从随机噪声中生成伪造的数据。其目的是尽可能骗过判别器,使判别器认为这些生成的数据是真实的。生成器是一个神经网络,它接受一个随机的输入向量(通常是噪声),然后输出与真实数据相似的样本。
②判别器 (Discriminator,D):判别器的任务是区分输入数据是真实数据还是生成数据。它接受真实样本和生成样本作为输入,并输出它们是“真实”还是“伪造”的概率。判别器也是一个神经网络,它通过不断学习来提高区分能力。
跨层连接
3.GAN的工作流程
(1)GAN 的训练过程是生成器和判别器之间的“对抗”过程,类似于一个博弈过程:
①生成器的目标: 生成器通过学习产生与真实样本尽量相似的假样本,以最大程度地欺骗判别器,使其无法区分生成的假样本和真实样本。
②判别器的目标: 判别器则要提高自身区分真假样本的能力,即最大化它在区分真实数据与伪造数据上的准确性。
(2)整个训练过程就像一个博弈游戏:
①生成器试图生成高质量的伪造数据来欺骗判别器。
②判别器则不断改进,力图准确识别伪造数据。
这种对抗性的训练最终会使生成器越来越擅长生成逼真的数据,直到判别器难以区分生成数据和真实数据。
4.GAN的损失函数
损失函数Loss越大,网络调参的粒度越大。
结合Encoder-Decoder 网络结构和 GAN (Generative Adversarial Networks)
5.GAN网络的应用
①图像修复:Image Inpainting
6.代码
①train.py
②test.py
③model:model.py(3-1)、training(3-2)
④configs.py
⑤DataSet.py
第七章:图像分割
本章内容:
①什么是图像分割
②图像分割的目标及本质
③图像分割算法的种类
④区域分割常用算法
⑤图像分割的难点
1.图像分割的定义、目标、本质
1.图像分割的定义:就是把图像分成若干个特定的、具有独特性质的区域
2.分割目标
①把人们感兴趣的部分从图像中提取出来
②有选择地对感兴趣对象定位
3.分割的本质:对图像上的每一个像素点分类
torch.argmax()
2.图像分割算法的种类
1.基于阈值分割方法
2.基于边缘分割方法
3.基于区域分割方法
4.基于能量分割方法
5.基于图论分割算法
6.基于学习分割方法
(1)OTSU方法 (最大类间方差法)
0-255可分出254个类间方差,比较出最大的类间方差。
(2)区域生长 (Region growing)
(3)分裂合并算法
分裂规则:灰度均方差>1.5则分裂
合并规则:灰度均方差≤2.5,则合并
(4)能量方法:蛇模型、水平集模型
1.蛇模型 (主动轮廓线模型 Active contour model)
蛇模型的核心思想是,通过定义一个可变形的曲线(即“蛇”),在图像中不断调整其形状,使其逐渐收缩到目标物体的边缘。这个过程通过能量最小化来实现。
内部能量的影响(平滑性和弹性)
外部能量的影响(图像梯度)
2.水平集模型
符号距离函数 SDF
(5)聚类分割方法
聚类概念:特征无监督学习,没有标签
将一系列无标签的数据(像素)输入到算法中,然后根据数据之间的相似性,
将它们分成几组(簇),这种能够找到这些簇的算法称为聚类算法
1.K-means聚类算法
缺点:只考虑了颜色,没有考虑位置信息
2.均值漂移聚类
加入了位置信息
(6)图割(Graph-based segmentation)
第八章:语义分割
1.语义分割的概念
1.语义概念的来源: 语言所蕴含的意义就是语义(semantic)
2.图像或视频具有语义:图像或视频是从三维客观世界采集得到的信息,其中蕴含着现实世界中事物所代表概念的含义,以及这些含义之间的关系,就是其语义。
3.图像语义分割概念 (semantic segmentation):把图像或视频内容按照其含义,进行对象分割
像素级分割本质:标注出像素所属类别(heightwidth1)
2.基于CNN的语义分割
3.基于FCN的语义分割
4.语义分割网络架构
人们提出了不同形式的网络结构解决语义分割问题,例如:
(1)编码器-解码器(encoder-decoder)结构
1.U-Net
2.SegNet
(2)空洞卷积的结构
灰度值隔开一个写一个。膨胀卷积、感受野。
backbone骨干网络
(3)隐神经
相关文章:
计算机视觉 1-8章 (硕士)
文章目录 零、前言1.先行课程:python、深度学习、数字图像处理2.查文献3.环境安装 第一章:概论1.计算机视觉的概念2.机器学习 第二章:图像处理相关基础1.图像的概念2.图像处理3.滤波器4.卷积神经网络CNN5.图像的多层表示:图像金字…...
SpringMVC
七、SpringMVC (1)SpringMVC简介 SpringMVC概述 SpringMVC技术与Servlet技术功能等同,均属于web层开发技术,web程序大都基于三层架构实现 如果所有的处理都交给Servlet来处理的话,所有的东西都耦合在一起,…...
使用llama.cpp进行量化和部署
git clone https://github.com/ggerganov/llama.cpp cd llama.cpp 🖥️ CPU 版本 cmake -B build_cpu cmake --build build_cpu --config Release 🖥️ CUDA 版本 cmake -B build_cuda -DLLAMA_CUDAON cmake --build build_cuda --config Release -j …...
iOS构建版本以及Hbuilder打iOS的ipa包全流程
目录 Hbuilder打ipa包 打包之前进行应用配置 应用版本号设置 使用广告标识设置 iOS-云打包 下载并转移安装包 使用Transporter提交版本 应用简介 下载应用 账号登录 提交安装包到apple store connect 在apple开发者平台上确认 总结 本篇文章详细的介绍了使用Hbuil…...
DB-GPT V0.6.2 版本更新:牵手libro社区、GraphRAG图谱构建能力增强等
DB-GPT V0.6.2版本现已上线,快速预览新特性: 新特性 1、DB-GPT 社区和 libro 社区共同发布 AWEL Notebook 功能 libro:灵活定制、轻松集成的 Notebook 产品方案。 社区地址:https://github.com/difizen/libro 使用教程…...
Chrome 浏览器 131 版本新特性
Chrome 浏览器 131 版本新特性 一、Chrome 浏览器 131 版本更新 1. 在 iOS 上使用 Google Lens 搜索 自 Chrome 126 版本以来,用户可以通过 Google Lens 搜索屏幕上看到的任何图片或文字。 要使用此功能,请访问网站,并点击聚焦时出现在地…...
数据结构初识
目录 1.初识 2.时间复杂度 常见时间复杂度举例: 3.空间复杂度 4.包装类&简单认识泛型 4.1装箱和拆箱 5.泛型 6.泛型的上界 7.泛型方法 8.List接口 1.初识 1.多画图 2.多思考 3.多写代码 4.多做题 牛客网-题库/在线编程/剑指offer 算法篇:…...
[ 应急响应进阶篇-2 ] Linux创建后门并进行应急处置-1:超级用户帐号后门
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...
设计模式:4、命令模式(双重委托)
目录 0、定义 1、命令模式包括四种角色 2、命令模式的UML类图 3、代码示例 0、定义 将一个请求封装为一个对象,从而使用户可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。 1、命令模式包括四种角色 接…...
第27天 安全开发-PHP应用TP 框架路由访问对象操作内置过滤绕过核心漏洞
时间轴 演示案例 TP 框架-开发-配置架构&路由&MVC 模型 TP 框架-安全-不安全写法&版本过滤绕过 TP 框架-开发-配置架构&路由&MVC 模型 参考: https://www.kancloud.cn/manual/thinkphp5_1 1、配置架构-导入使用 去thinkphp官网可以看到&…...
[数组双指针] 0167. 两数之和 II - 输入有序数组
文章目录 1. 题目链接2. 题目大意3. 示例4. 解题思路5. 参考代码 1. 题目链接 167. 两数之和 II - 输入有序数组 - 力扣(LeetCode) 2. 题目大意 描述:给定一个下标从 1 开始计数、升序排列的整数数组:numbers 和一个目标值 targ…...
常用数据结构详解
文章目录 线性数据结构稀疏数组链表单向链表双向链表约瑟夫问题 栈栈实现中缀表达式栈实现后缀表达式中缀表达式转后缀表达式 队列哈希表 非线性数据结构二叉树二叉树的遍历及查找二叉树的删除顺序存储二叉树线索化二叉树 哈夫曼树二叉排序树平衡二叉树多路查找树2-3树B树B树B*…...
css iframe标签使用
<iframe> 标签用于在网页中嵌入另一个 HTML 页面。它非常灵活,可用于嵌入内容,比如其他网站、视频、地图等。以下是有关 <iframe> 的详细介绍及使用方法: 基本语法 <iframe src"URL" width"宽度" height…...
NVR管理平台EasyNVR多品牌NVR管理工具的流媒体视频融合与汇聚管理方案
随着信息技术的飞速发展,视频监控已经成为现代社会安全管理和业务运营不可或缺的一部分。无论是智慧城市、智能交通、还是大型企业、校园安防,视频监控系统的应用都日益广泛。NVR管理平台EasyNVR,作为功能强大的流媒体服务器软件,…...
GISBox VS QGIS:你更倾向于易用性还是追求开源及高度定制化
在地理信息系统(GIS)领域,随着技术的进步和应用场景的多样化,越来越多的GIS软件出现在市场上,为用户提供多样化的选择。对于企业和个人开发者来说,选择最适合自己的GIS软件至关重要。本文将从多个角度对比G…...
OpenCV与AI深度学习|16个含源码和数据集的计算机视觉实战项目(建议收藏!)
本文来源公众号“OpenCV与AI深度学习”,仅用于学术分享,侵权删,干货满满。 原文链接:分享|16个含源码和数据集的计算机视觉实战项目 本文将分享16个含源码和数据集的计算机视觉实战项目。具体包括: 1. 人…...
联通光猫(烽火通信设备)改桥接教程
一、获得超级密码 1.打开telnet连接权限 http://192.168.1.1/telnet?enable1&key9070D3BECD70(MAC地址)2.连接光猫获取密码 telnet 192.168.1.1 用户名:admin 密码:Fh9070D3BECD70连接成功后 load_cli factory show admin_…...
12 —— Webpack中向前端注入环境变量
需求:开发模式下打印语句生效,生产模式下打印语句失效 使用Webpack内置的DefinePlugin插件 const webpack require(webpack) module.exports { plugins: [ new webpack.DefinePlugin({ process.env.NODE_ENV:JSON.stringify(process.env.NODE_ENV) }…...
Azure Kubernetes Service (AKS)资源优化策略
针对Azure Kubernetes Service (AKS)的资源优化策略,可以从多个维度进行考虑和实施,以提升集群的性能、效率和资源利用率。以下是一些关键的优化策略: 一、 Pod资源请求和限制 设置Pod请求和限制:在YAML清单中为所有Pod设置CPU和…...
根据返回字段名进行查询数据的方法
在Java后端开发中,根据前端返回的字段名动态查询数据库是一种常见的需求。这种需求通常通过使用反射和动态SQL来实现。下面是一个完整的代码示例,它展示了如何根据前端返回的字段名动态查询数据库中的数据。 一、根据前端返回的字段名动态查询数据库中的…...
使用ENSP实现静态路由
一、双路由器静态路由 1.项目拓扑 2.项目实现 (1)路由器AR1配置 进入系统试图 sys将路由器命名为R1 sysname R1进入g0/0/0接口 int g0/0/0将g0/0/0接口IP地址配置为1.1.1.1/24 ip address 1.1.1.1 24进入g0/0/1接口 int g0/0/1将g0/0/1接口IP地址配置为192.168.1.1/24 ip ad…...
SpringBoot3+Vue3开发图书馆管理系统
1 项目介绍 图书馆管理系统,管理图书、用户、借书、还书、实时监测归还是否逾期,逾期未归还会生成违规记录。违规状态不可借阅图书。需缴纳罚金,消除违规记录。可动态设置图书最多累计借阅数量上限和最长借阅天数上限,当用户满足…...
常见的 git 提交备注类型
在 Git 提交中,常见的提交备注(commit message)遵循一定的约定,这有助于代码管理、版本控制以及团队协作。fix 和 feat 是常见的提交类型,下面是这两个的含义,以及其他常见的提交类型。 常见的 Git 提交备…...
Redis 的代理类注入失败,连不上 redis
在测试 redis 是否成功连接时,发现 bean 没有被创建成功,导致报错 根据报错提示,需要我们添加依赖: <dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId>&l…...
Hook 技术:修改 Android 系统属性,提升应用调试和定制化能力
Hook 技术:修改 Android 系统属性,提升应用调试和定制化能力 我知道很多小伙伴,尤其是玩 Android 的开发者,都会有这种需求: 想修改设备的 系统属性,比如 设备型号、API 版本、屏幕分辨率 或 密度&#x…...
Excel如何把两列数据合并成一列,4种方法
Excel如何把两列数据合并成一列,4种方法 参考链接:https://baijiahao.baidu.com/s?id=1786337572531105925&wfr=spider&for=pc 在Excel中,有时候需要把两列或者多列数据合并到一列中,下面介绍4种常见方法,并且提示一些使用注意事项,总有一种方法符合你的要求:…...
英文版本-带EXCEL函数的数据分析
一、问题: 二、表格内容 三、分析结果 四、具体的操作步骤: 销售工作表公式设计与数据验证 类别(Category)列公式: 在Category列(假设为D列),根据ProductCode在Catalogue工作表中查找…...
LangChain入门
LangChain入门 | 豆包MarsCode AI 刷题 本篇文章为《LangChain 实战课》前三节课的总结性文章,主要内容包含内容梳理与总结,学习记录,以及一些思考。 01开篇词|带你亲证AI应用开发的“奇点”时刻 内容 这篇文章介绍…...
STM32-- 串口介绍
rs485、rs232、rs422 rs485使用: max3485:3.3v左右驱动 max485:5v左右驱动,不过有时候3.3v驱动也可以使用,具体有什么问题或者通过电路规避问题还没有了解过。 rs485和rs422有相同的地方,485满足422的规…...
【Python TensorFlow】进阶指南(续篇三)
在前几篇文章中,我们探讨了TensorFlow的高级功能,包括模型优化、分布式训练、模型解释等多个方面。本文将进一步深入探讨一些更具体和实用的主题,如模型持续优化的具体方法、异步训练的实际应用、在线学习的实现细节、模型服务化的最佳实践、…...
仓颉——申请内测、环境搭建、编译测试
2024年6月21日,华为仓颉正式公开发布。 不少同学看过仓颉白皮书后,都在找SDK从哪下载,HelloWorld怎么跑。仓颉公众号也及时发布了内测的方式,我也亲自走了一遍整个流程, 一,申请内测 关注“仓颉编程语言…...
C语言教程指针笔记整理(二)
https://www.bilibili.com/video/BV1cx4y1d7Ut?spm_id_from333.788.videopod.episodes&vd_sourcee8984989cddeb3ef7b7e9fd89098dbe8&p107 本篇为贺宏宏老师C语言教程指针部分笔记整理 //8-19 一维数组和二维数组 // int arr[4] [][][][] //含义: //1.arr…...
3.无重复字符的最长子串 python
无重复字符的最长子串 题目描述示例 1:示例 2:示例 3:提示:题目链接 解题思路Python 实现详细解释 题目描述 给定一个字符串 s ,请你找出其中不含有重复字符的最长 子串的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子…...
NIST 发布后量子密码学转型战略草案
美国国家标准与技术研究所 (NIST) 发布了其初步战略草案,即内部报告 (IR) 8547,标题为“向后量子密码标准过渡”。 该草案概述了 NIST 从当前易受量子计算攻击的加密算法迁移到抗量子替代算法的战略。该草案于 2024 年 11 月 12 日发布,开放…...
高危,Laravel参数注入漏洞安全风险通告
今日,亚信安全CERT监控到安全社区研究人员发布安全通告,披露了Laravel 参数注入漏洞(CVE-2024-52301)。在受影响的版本中,Application.php 文件的 detectEnvironment 函数直接使用了 $_SERVER[argv],但没有检查运行环境是否为 CLI…...
【漏洞复现】|智互联SRM智联云采系统quickReceiptDetail SQL注入漏洞
漏洞描述 智互联(深圳)科技有限公司SRM智联云采系统针对企业供应链管理难题,及智能化转型升级需求,智联云采依托人工智能、物联网、大数据、云等技术,通过软硬件系统化方案,帮助企业实现供应商关系管理和采购线上化、移动化、智能…...
【Visual Studio系列教程】如何在 VS 上编程?
上一篇博客中,我们介绍了《什么是 Visual Studio?》。本文,我们来看第2篇《如何在 VS 上编程?》。阅读本文大约10 分钟。我们会向文件中添加代码,了解 Visual Studio 编写、导航和了解代码的简便方法。 本文假定&…...
Pytest-Bdd-Playwright 系列教程(12):步骤参数 parsers参数解析
Pytest-Bdd-Playwright 系列教程(12):步骤参数 & parsers参数解析 前言一、什么是步骤参数?二、pytest-bdd 的步骤参数用法2.1 简单字符串解析2.2 自定义正则表达式解析2.3 参数类型转换 三、案例:基于 pytest-bdd…...
java 增强型for循环 详解
Java 增强型 for 循环(Enhanced for Loop)详解 增强型 for 循环(也称为 “for-each” 循环)是 Java 从 JDK 5 开始引入的一种便捷循环语法,旨在简化对数组或集合类的迭代操作。 1. 基本语法 语法格式 for (类型 变量…...
RUST学习教程-安装教程
文章目录 参考文档安装教程更新卸载 参考文档 https://course.rs/first-try/installation.html 安装教程 Linux或者mac安装教程 curl --proto https --tlsv1.2 https://sh.rustup.rs -sSf | sh安装完成,当出现command not found的时候,需要source一下…...
第十六届蓝桥杯模拟赛(第一期)-c++/c
c/c蓝桥杯模拟赛题解,非常详细 质因数 1、填空题 【问题描述】 如果一个数 p 是个质数,同时又是整数 a 的约数,则 p 称为 a 的一个质因数。 请问 2024 有多少个质因数。 【答案提交】 这是一道结果填空的题,你只需要算出结果后提…...
使用uniapp编写APP的文件上传
使用uniapp插件文件选择、文件上传组件(图片,视频,文件等) - DCloud 插件市场 实用效果: 缺陷是只能一个一个单独上传...
Go语言从入门到精通
go相关命令 //对go源码进行编译,生成.exe文件 go build go文件名//直接运行go源码(生成.exe文件执行后,又删除.exe文件) go run go文件名go中的package和import /*package:用来声明这个文件是属于哪个包的*/ package…...
捉虫记录02-Nacos访问失败
目录 一、问题 二、排查 三、解决方案 一、问题 在访问nacos的时候出现以下问题: 二、排查 先用docker logs nacos来查找报错信息 docker logs nacos 看问题报错就是数据源问题,nacos没能连接上mysql 三、解决方案 第一步 docker restart mysql …...
安宝特方案 | AR助力紧急救援,科技守卫生命每一刻!
在生死时速的紧急救援战场上,每一秒都至关重要!随着科技的发展,增强现实(AR)技术正在逐步渗透到医疗健康领域,改变着传统的医疗服务模式。 安宝特AR远程协助解决方案,凭借其先进的技术支持和创新…...
超详细:Redis分布式锁
如何基于 Redis 实现一个最简易的分布式锁? 不论是本地锁还是分布式锁,核心都在于“互斥”。 在 Redis 中, SETNX 命令是可以帮助我们实现互斥。SETNX 即 SET if Not eXists (对应 Java 中的 setIfAbsent 方法),如果 key 不存在…...
@Autowired 和 @Resource思考(注入redisTemplate时发现一些奇怪的现象)
1. 前置知识 Configuration public class RedisConfig {Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {RedisTemplate<String, Object> template new RedisTemplate<>();template.setConnectionFactory(facto…...
MTK主板定制_联发科主板_MTK8766/MTK8768/MTK8788安卓主板方案
主流市场上的MTK主板通常采用联发科的多种芯片平台,如MT8766、MT6765、MT6762、MT8768和MT8788等。这些芯片基于64位Cortex-A73/A53架构,提供四核或八核配置,主频可达2.1GHz,赋予设备卓越的计算与处理能力。芯片采用12纳米制程工艺…...
k8s篇之控制器类型以及各自的适用场景
1. k8s中控制器介绍 在 Kubernetes 中,控制器(Controller)是集群中用于管理资源的关键组件。 它们的核心作用是确保集群中的资源状态符合用户的期望,并在需要时自动进行调整。 Kubernetes 提供了多种不同类型的控制器,每种控制器都有其独特的功能和应用场景。 2. 常见的…...
VideoCrafter模型部署教程
一、介绍 VideoCrafter是一个功能强大的AI视频编辑和生成工具,它结合了深度学习和机器学习技术,为用户提供了便捷的视频制作和编辑体验。 系统:Ubuntu22.04系统,显卡:4090,显存:24G 二、基础…...