计算机视觉CV期末总复习

1.计算机视觉基础

数字图像表示

二值图像

仅包含黑白两种颜色的图像,只使用1个比特为(0黑或1白)表示

彩色图像:分不同的颜色空间

gray灰度图像

每个像素只有一个采样颜色,取值范围0--255,为8比特位,0为黑,255为白

RGB颜色空间

(0,0,0)为黑,(255,255,255)为白,对机器友好的色彩模式,没那么人性化

CMY/CMYK颜色空间 

C青、M洋红(品红)、Y黄色、K黑色

HSV颜色空间

H色调S饱和度V明度

 YUV 颜色空间

Y明亮度、U色度、V浓度(饱和度)

储存格式:

  • 平面格式
  • 紧凑格式

2.opencv

通用开源功能强大的图像处理和计算机视觉库

主要功能及模块

  • 内置了基本数据结构和输入输出结构
  • 图像处理操作
  • 圆形界面操作
  • 视频分析
  • 3D重建

基本操作

读写显示图像

就是imread()将图片读入内存,支持jpg、png

img.shape(512,512,3)中图像三个数代表高、宽、通道数 ,分辨率为512x512,三个数代表彩色图像为三维数组。

img.dtype结果输出为uint8,说明每个数组用1个字节(8位)表示,每个数组元素为rgb通道值

img.size输出为shape中三个数的乘积

写就是imwrite,将数组转化为图像保存

显示图像imshow

waitkey

没有按键返回-1,有的话返回对应按键的ASCII码(A 65 Z90  a97 z122)。负数或零表示无限等待。设置数字参数等待时间结束返回-1,单位为毫秒,1秒 = 1000毫秒。 

读写播放视频

把VideoCapture参数设置为0调用摄像头

写入文件: 

图像平滑

概念:平滑也称作模糊。为抑制遥感图像因传感器和大气因素影响出现的噪声,使图像亮度趋于平缓的方法。目的是使图像亮度平缓渐变,减小突变梯度,改善图片质量。

图像滤波

均值滤波

dst = cv2.blur(src,ksize,anchor,borderType)

src原图形、ksize卷积核大小(高宽通常相同,为正奇数)、a锚点(可选参数)、b边界值处理方式(可选参数)

import cv2

img=cv2.imread('lena.jpg')

cv2.imshow('img',img)

img2=cv2.blur(img,(5,5))

cv2.imshow('imgBlur',img2)

cv2.waitKey(0)

方框滤波

dst=cv2.boxFilter(src,ddepth,ksize[,anchor[,normalize[,borderType]])

ddepth目标图像深度,一般用-1表示与原图像深度一致,n归一化

import cv2

img=cv2.imread('lena2.jpg')

cv2.imshow('img',img)

img2=cv2.boxFilter(img,-1,(3,3),normalize=False)

cv2.imshow('imgBlur',img2)

cv2.waitKey(0)

高斯滤波

import cv2

img=cv2.imread('lena2.jpg')

cv2.imshow('img',img)

img2=cv2.GaussianBlur(img,(5,5),0,0)

cv2.imshow('imgBlur',img2)

cv2.waitKey(0)

中值滤波 

dst = cv2.medianBlur(src,ksize)

ksize为整形,>1的正奇数

import cv2
img=cv2.imread('lena2.jpg')
cv2.imshow('img',img)
img2=cv2.medianBlur(img,9)
cv2.imshow('imgBlur',img2)
cv2.waitKey(0)

双边滤波

import cv2
img=cv2.imread('lena2.jpg')
cv2.imshow('img',img)
img2=cv2.bilateralFilter(img,9,100,100)
cv2.imshow('imgBlur',img2)
cv2.waitKey(0)

 卷积

上述五个滤波均通过参数设置卷积核,但2D卷积可自定义卷积核

图像分割 

概念:把图像分为具有若干特性的、具有独特性质的区域,并提出感兴趣目标的技术和过程。

感兴趣的为前景或目标,其余为背景

主要方法:基于阈值的分割、基于边缘、基于区域、基于聚类、基于图论、基于深度学习

基于阈值的分割

即把前景和背景进行划分

  • 全局阈值分割
  • 自适应阈值处理
  • 迭代法阈值分割

边缘检测

检测出图像中所有灰度值变化较大的点,点连接成线条,即为图像边缘。

目的是标识数字图像中变化明显的点,减少数据量,剔除不相关信息,保留结构属性。 

作用:提取物体重要特征

常见边缘检测方法:

soble边缘检测 

边缘:像素值发生跃迁的地方(变化率、导数最大处)。

图像梯度:导数差分。图像是二维离散函数,导数为差分,该差分称为图像梯度。

求原图边缘信息可以将原图像和一阶导数算子进行卷积 

sobel算子:又称一阶微分算子 。缺点:易受影响,用高斯滤波降噪

sobel边缘检测就是把高斯滤波和微分结合执行卷积,抗噪

x = cv2.Sobel(img,cv2.CV_16S,1,0)
y = cv2.Sobel(img,cv2.CV_16S,0,1)

拉普拉斯边缘检测

使用图像矩阵和拉普拉斯核进行卷积。本质是计算该点水平垂直四个相邻点平均点的差值。和sobel一样通过卷积计算边缘。

求原图边缘信息利用二阶差分计算 

dst = cv2.Laplacian(img,cv2.CV_8U)
8位无符号整数,这是一种常见的数据类型,用于表示像素值。

canny边缘检测

多阶段检测方法,比较复杂

  • 高斯滤波去除噪声
  • sobel核进行滤波,计算梯度
  • 边缘使用非极大值预测
  • 双阈值筛选:检测边缘双阈值去除假阳性(误检)
  • 分析边缘连接性,保留真正的,消除不明显的边缘
dst  = cv2.Canny(img,threshold1=50,threshold2=150)

当噪声很大时可通过高斯滤波提升效果:

 

 几何变换

色彩空间

img2 = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)灰度图

img2 = cv2.cvtColor(img,cv2.COLOR_BGR2RGB)RGB色彩

img2 = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)HSV色彩空间

img2 = cv2.cvtColor(img,cv2.COLOR_BGR2YCrCb)YUV/YCrCb色彩空间

图像变换

读图像:img = cv2.imread('1.png')显示:cv2.('img',img),注意这里的引号图像名必须有

缩放

通过cv2.resize(img,dsize,dx=x,dy=y)dsize代表转换后图像大小

  • 当为None时dxdy不能为0,且此时转换后图像宽度为:原图像宽度xdx,高度xdy
  • 不为None时转换后大小以dsize为准,其格式为元组,(width,height),代表宽高。

还有一个插值方式:interpolation :

  • 最近邻:cv2.INTERNEAREST
  • 双线性:cv2.LINEAR
翻转

cv2.flip(img,flipcode),flipcode有三种:

  • 0:x轴,垂直翻转
  • >0:y轴,水平翻转
  • <0:水平垂直翻转 
仿射变换 

包括了平移、旋转、缩放、映射。基本思想就是获得变换矩阵m

再通过cv2.warpAffine(img,m,dsize)仿射变换

  • 平移m:np.float32([[1,0,100],[0,1,50]]),右移100,下移50
  • 缩放:[[0.5,0,0],[0,0.5,0]]

旋转:通过cv2.getRoatation.Martix2D(center,angle,scale)获得m:

  • 中心:(width/2,heigh/2)
  • 旋转角度
  • 目标图与原图比例

 三点映射:通过cv2.AffineTransform(src,dst)获得m:

  • src:原图三点坐标:np.float32([[0,0],[],[]])
  • dst:目标图三点坐标

透视:通过cv2.warpPerspective(img,m,dsize)

m通过cv2.getPerspectiveTransform(src,dst)获得m:

  • src:原图四点坐标:np.float32([[0,0],[],[]])
  • dst:目标图四点坐标

 3.深度学习基础

基础

全连接:该层的某一个神经元与下一层的每一个神经元都连接

卷积:提取特征 过程:

无跨步strides=1 边界填充padding分:

  • arbitrary padding 任意填充
  • half padding 半填充
  • full padding 全填充 

二维卷积:

卷积层nn.Conv2d(in_channels=1,out_channels=2,kernel_size=5,stride=2,padding=2)

激活函数:nn.ReLU()线性整流单元

池化层:nn.MaxPool2d(kernel_size=(2,2),stride=2,padding=0) 作用:降低维度,减小特征图尺寸

avg_pool = nn.AvgPool2d(kernel_size=2, stride=2)  # 池化窗口大小为 2x2,步幅为 2

关于激活函数: 激活函数

分组卷积:通过一个参数 groups来确定分组

深度可分离卷积:DSC

两部分:逐通道depthwise卷积,逐行逐列卷积(逐点pointwise卷积)

逐通道卷积就是把输入的k个通道分别通过单个卷积得到k个输出

逐点卷积:

  • 通过1x1卷积和把逐通道卷积得到的k个特征图进行融合
  • 能够通过改变卷积核的数量改变最终输出通道数

转置卷积和反卷积:反卷积即转置卷积的另一种表达。本质就是上采样增加特征图尺寸。应用如:图像分割、对抗网络

3D卷积:即读视频,添加了一个时间维度。4,3,3分别代表时间维度,高,宽

训练可视化 


writer = SummaryWriter(log_dir="./log", 
        comment='test_tensorboard', 
        filename_suffix="test")

writer.add_scaler()标量数据可视化
writer.add_histogram()数据分布可视化
writer.add_image()特征图可视化
writer.add_graph()模型可视化

标量数据可视化,区别在于add_scalars的dict是字典,而不是常量

模型优化

数据增强:

from torchvision import transforms
transforms.Compose([
    transforms.ToTensor(),
    transforms.Resize((224, 224)),
    transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225))
])

正则化:

L1正则化:权值向量w中各个元素的绝对值之和。比如 向量A=[1,-1,3], 那么A的L1范数为 |1|+|-1|+|3|。L = L+λ |W|
L2正则化:权值向量中各个元素的平方和然后再求平方根,对参数进行二次约束,参数w变小,但不为零,不会形成稀疏解 。它会使优化求解稳定快速,使权重平滑。所以L2适用于特征之间没有关联的情况。L(w) = Loss(y, y_pred) + λ * ||w||^2

通过weight_decay参数实现L2正则化。

optimizer = torch.optim.Adam(model.parameters(), 
                            lr=0.001, 
                            weight_decay=0.01)
这里的weight_decay参数就是L2正则化中的λ参数。

过拟合:解决方法:数据增强、正则化、早停、增加数据集大小

DenseNet

经典卷积

AlexNet,共8层,ReLu

VGG16,13层卷积3层全连接。通过增加网络层数能提高模型性能,且多个小卷积核替换大卷积核,softmax

GoogleNet 22层 softmax

ResNet 输入输出间引入恒等映射,解决网络退化问题

DenseNet 

共121层,分4个DenseBlock,且每个DenseBlock(下左图)内部都采用稠密连接。可理解为:

更激进的残差连接,创新点每层的输出都有前面所有层在channel维度上连接在一起,作为下一层的输入。

DenseNet121共四个DenseBlock,每个block间使用Transition Layer进行特征降维。

 

ResAttentionNet 

ResNet

网络深度增加时,网络的表现先是逐渐增加至饱和,然后迅速下降,出现网络退化问题

两种残差结构:

ResNet18, 34(浅层网络)的残差块的基本单元是BasicBlock 3、ResNet50, 101, 152 (深层网络)的残差块的基本单元是Bottleneck。原因是bottleneck计算量是basicBlock的1/16,常用于更深的网络,目的是减少计算和参数量

 ResAttentionNet

残差注意力网络,是一种结合了注意力机制和ResNet的卷积神经网络,旨在提升图像分类任务的性能。 该网络由多个注意力模块堆叠而成,每个模块包含:

  • 软掩膜分支( soft mask branch)
  • 主干分支(trunk branch)

软掩膜分支采用自底向上(bottom-up)和自顶向下(top-down)的结构,学习生成一个掩膜(mask),该掩膜作为权重的形式与主干分支的输出特征图相乘,从而生成最终的注意力感知特征图‌。 Mix Attention对每个通道和每个空间位置使用Sigmoid激活函数。

YOLO 

目标检测:找出图像中所有感兴趣的目标,确定他们的位置和类别。图像识别的四大任务:

  • 分类、定位、检测、分割

目标检测学习算法可分两类:单阶段onestage和双阶段twostage

twostage:

  • 先进行区域生成RP(包含待检测目标物体的预选框),在进行卷积分类
  • 任务流程:特征提取、生成RP、分类/定位回归
  • 常见算法:R-CNN、Fast R-CNN、Faster R-CNN、R-FCN、SPP-Net

onestage:

  • 无RP,直接在网络中提取特征预测物体类别和位置
  • 流程:特征提取、分类/定位回归
  • 常见算法:YOLO v1-YOLOv3、OverFeat、SSD、RetinaNet

onestage核心理念:

端到端的目标检测,经过一个CNN即可得到最终的检测结果(创新点)

端到端指的是整个系统的输入和输出通过一个统一的模型直接连接,无需中间步骤

核心:通过在原图密集抽样产生大量boundingbox(边界框),在进行分类和回归

YOLOv1

如何使用卷积进行目标检测的呢?三步

  • 卷积提取特征
  • 对特征图分类预测得到分类信息
  • 使用特征图进行物体位置检测得到bbox边界框坐标

模块1

在经过卷积后得到7x7x30的矩阵,7x7代表划分的网格数,30为2x5+20,2个框、5个结果、20个类别

卷积最后一层会输出SXS的特征图,映射到原始图像,原始图像就会被分成SXS的网格gridcell。如果样本的真实标签GroundTruth落在某个网格,该网格负责预测该物体,网格预测出B个边界框,最终使用和真实标签的IOU较大的框。

IOU:预测框和真实框的交叠率,二者交集/并集,结果为1最佳,

  • 缺点是无交集时永远为0,于是引入GIOU

模块二 

NMS非极大值抑制:选取邻域分类数值最高的,抑制低的窗口

置信度:指的是模型对于检测到的目标属于特定类别的确定程度。即模型预测的边界框(bounding box)中确实存在目标的概率。

回归坐标

指的是bbox(预测边界框)的坐标

计算过程

col,row指的是中心坐标的框相对于原坐标的偏移量  

训练过程 

过程:根据图像的标注框(GroundTruth)与模型输出的7X7X30的预测结果进行比较,计算loss和梯度,反向调整参数

训练样本:一个网格会使用2个bbox回归预测,最终使用IOU(预测框和真实框的交叠率)较大的框检测物体

损失函数 3个:

关于坐标损失中根号作用:用于改善回归中相同距离,小框产生误差更大的问题,即对小框惩罚更重。 

缺点

YOLOv5 

模型结构

输入端

mosaic数据增强:四张图片进行随机缩放、裁剪、排布之后再拼接

letterbox自适应图片缩放:确保图片缩放时保持长宽比,同时填充空白部分适应模型输入要求

自适应锚框anchor box计算:anchor,用于预测框计算时的参考框,基于此预测只需再参考框上进行精修即可,好处:收敛更快、效果更好

Backbone结构

Focus结构

切片操作。举例演示如将4×4×3的图像切片后变成2×2×12的特征图。如下图左:

CSP

该结构将基础层的特征映射划分为两部分,然后通过跨阶段层次结构将它们合并,在减少了计算量的同时可以保证准确率。Yolov5s中设计了两种CSP结构,以CSP1_X结构应用于Backbone主干网络,另一种CSP2_X结构则应用于Neck中。

Neck

Prediction 

GIOU损失函数

优点

  • 模型推理速度快
  • 可进行实时检测,准确率高
  • 促进了目标检测领域技术更新
  • 促进卷积网络工业化应用的发展

U-Net

图像分割概述

概念:根据灰度、色彩、空间纹理、几何形状等图像将空间分成若干互不相交的区域。这些特征在同一区域表现相似性,不同区域表现明显不同。

方法主要分两种:语义分割、实例分割

图像分割广泛应用于医疗、自动驾驶、地质检测、人像美妆 

UNET图像分割

主要成就

核心思想

模型结构

编码-解码,也称作下采样-上采样。可以总结为:收缩路径提取特征,扩张路径恢复像素。总体上就是同层跳跃连接的U型结构,能融合更多的空间和几何信息

编码就是典型的重复结构:卷积--ReLU激活--池化,且每次下采样都把通道的数量加倍。这里的下采样由卷积和最大池化实现。

  • 蓝色箭头:卷积,编码的卷积是无填充的3x3,尺寸减2,通道数不变,用于特征提取。解码层的卷积是无填充的3x3,尺寸减2,但通道数减半,用于信息解析。
  • 红色:2x2最大池化操作,步长为2,尺寸减半,用于降低维度
  • 灰色:复制裁剪,裁剪同层压缩路径的特征尺寸使其与当前扩展路径特征尺寸一致,合并,用于信息补充
  • 绿色:2x2转置卷积,尺寸加倍,通道数量减半,用于上采样
  • 青色:无填充的1x1卷积,尺寸不变,通道数为分类数,用于分类

解码是上采样的过程,可以看到,每次卷积通道减小一半(128--64),两次卷积变成原来的1/4,但合并为1/2 :

数据增强方式:

弹性形变,以获得形变不变性。通过模拟图像中可能出现的形变,如拉伸和压缩,来增强训练数据的多样性,从而使模型能够更好地泛化到未见过的形变。

Overlip-tile

处理需要保持输出尺寸与输入尺寸一致,以及需要为边界区域提供上下文信息的场景中。

优势

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

web安全常用靶场

这里写自定义目录标题 phpstydy2018pikachuxss-labs phpstydy2018 网盘地址 提取码: nxnw ‌phpStudy是一款专为PHP开发者设计的集成环境工具&#xff0c;主要用于简化PHP开发环境的搭建过程。‌ 它集成了Apache、MySQL、PHP等核心组件&#xff0c;用户只需进行一次性安装&a…

每天40分玩转Django:Django实战 - 在线打印服务系统

Django实战 - 在线打印服务系统 一、系统功能概览表 模块主要功能技术要点文件上传PDF/Word文件上传、文件验证文件处理、MIME类型验证异步处理文件转换、打印队列Celery、Redis通知邮件打印状态通知、订单确认SMTP、邮件模板 二、系统架构设计 2.1 模型设计 # models.py …

WPS计算机二级•数据查找分析

听说这里是目录哦 通配符&#x1f30c;问号&#xff08;?&#xff09;星号&#xff08;*&#xff09;波形符&#xff08;~&#xff09; 排序&#x1f320;数字按大小排序以当前选定区域排序以扩展选定区域排序 文字按首字母排序 快速筛选分类数据☄️文字筛选数字筛选颜色筛选…

基于海思soc的智能产品开发(camera sensor的两种接口)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于嵌入式开发设备来说&#xff0c;除了图像显示&#xff0c;图像输入也是很重要的一部分。说到图像输入&#xff0c;就不得不提到camera。目前ca…

网安入门之MySQL后端基础

数据库 (Database) 数据库是指长期存储在计算机中的&#xff0c;有组织、可共享的数据集合。它通过表、列、行等结构来组织数据&#xff0c;目的是使数据可以高效存储、检索和管理。数据库通常包括多个表&#xff0c;每个表存储与特定主题或对象相关的数据 数据库管理系统 (D…

概率基本概念 --- 离散型随机变量实例

条件概率&独立事件 随机变量 - 离散型随机变量 - 非离散型随机变量 连续型随机变量奇异性型随机变量 概率表示 概率分布函数概率密度函数概率质量函数全概率公式贝叶斯公式 概率计算 数学期望方差协方差 计算实例 假设有两个离散型随机变量X和Y&#xff0c;它们代…

w139华强北商城二手手机管理系统

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;原创团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文…

LLM大语言模型中RAG切片阶段改进策略

切片方法的特点和示例&#xff1a; Token 切片 适合对 Token 数量有严格要求的场景&#xff0c;比如使用上下文长度较小的模型时。 示例文本&#xff1a; “LlamaIndex是一个强大的RAG框架。它提供了多种文档处理方式。用可以根据需选择合适的方法。” 使用Token切片(chunk…

Earth靶场

打开靶机后使用 arp-scan -l 查询靶机 ip 我们使用 nmap 进行 dns 解析 把这两条解析添加到hosts文件中去&#xff0c;这样我们才可以访问页面 这样网站就可以正常打开 扫描ip时候我们发现443是打开的&#xff0c;扫描第二个dns解析的443端口能扫描出来一个 txt 文件 dirsear…

Kafka 消费者专题

目录 消费者消费者组消费方式消费规则独立消费主题代码示例&#xff08;极简&#xff09;代码示例&#xff08;独立消费分区&#xff09; offset自动提交代码示例&#xff08;自动提交&#xff09;手动提交代码示例&#xff08;同步&#xff09;代码示例&#xff08;异步&#…

重庆大学软件工程复试怎么准备?

重大软件复试相对来说不算刁钻&#xff0c;关键是对自己的竞赛和项目足够了解&#xff0c;能应对老师的提问。专业课范围广&#xff0c;英文文献看个人水平&#xff0c;难度不算大&#xff0c;整体只要表现得得体从容&#xff0c;以及充分的准备&#xff0c;老师不会为难你。 …

Hadoop•FinalShell连接VMware免密登录

听说这是目录哦 FinalShell连接VMware&#x1f324;️解决重连失效FinalShell的使用 免密登录⛈️能量站&#x1f61a; FinalShell连接VMware&#x1f324;️ 保持虚拟机的开机状态&#xff0c;打开FinalShell&#xff0c;如果虚拟机关机或者挂起&#xff0c;连接就会断开。 …

List-顺序表--2

目录 1、ArrayList 2、ArrayList构造方法 3、ArrayList常见方法 4、ArrayList的遍历 5、ArrayList的扩容机制 6、ArrayList的具体使用 6.1、杨辉三角 6.2、简单的洗牌算法 1、ArrayList 在集合框架中&#xff0c;ArrayList 是一个普通的类&#xff0c;实现了 List 接口…

通过串口通信控制led灯的亮灭

初始化led灯的gpio接口控制灯的亮灭 初始化uart1串口 将gpio9和gpio10设置为复用模式进行串口通信 通过串口的输入输出函数实现串口通信控制led灯的亮灭

git知识点汇总

git init 初始化一个git仓库&#xff0c;后面可以加仓库名&#xff0c;在当前目录下创建指定名称的目录并在该目录下创建仓库&#xff0c;若不加则直接在当前目录下创建仓库。git仓库的三个区域&#xff1a;工作区&#xff08;当前目录&#xff09;、暂存区&#xff08;.git/in…

电子电气架构 --- 中央HPC架构

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 所谓鸡汤,要么蛊惑你认命,要么怂恿你拼命,但都是回避问题的根源,以现象替代逻辑,以情绪代替思考,把消极接受现实的懦弱,伪装成乐观面对不幸的…

让 Agent 具备语音交互能力:技术突破与应用前景(16/30)

让 Agent 具备语音交互能力&#xff1a;技术突破与应用前景 一、引言 在当今数字化时代&#xff0c;人机交互方式正经历着深刻的变革。从早期的命令行界面到图形用户界面&#xff0c;再到如今日益普及的语音交互&#xff0c;人们对于与机器沟通的便捷性和自然性有了更高的追求…

L27.【LeetCode笔记】2 的幂(五种解法)

目录 1.题目 2.自解 方法1:调用log函数 代码 提交结果 方法2:循环 提交结果 3.优解 方法3:位运算n & (n-1) 0 代码 提交结果 方法4:位运算lowbit 代码 提交结果 4.投机取巧的方法 代码 提交结果 1.题目 https://leetcode.cn/problems/power-of-two/?env…

第0章 机器人及自动驾驶SLAM定位方法全解析及入门进阶学习建议

嗨&#xff0c;各位同学大家好&#xff01;笔者自985硕士毕业后&#xff0c;在机器人算法领域已经深耕 7 年多啦。这段时间里&#xff0c;我积累了不少宝贵经验。本专栏《机器人工程师带你从零入门SLAM》将结合下面的SLAM知识体系思维导图及多年的工作实战总结&#xff0c;将逐…

密码学原理技术-第十一章-Hash Functions

文章目录 总结Why we need hash functionsDigital Signature with a Hash FunctionBasic Protocol for Digital Signatures with a Hash FunctionPrincipal input–output behavior of hash functions Security propertiesThe three security requirements of hash functionsWh…