【Image】图像处理

计算机视觉 CV

Perception

如自动驾驶领域。

只要是从所谓的图像当中去抽取信息的过程,我们都叫做Perception。

  • 视觉检测可以涵盖二维检测,如车辆、人和信号灯的检测。
  • 另外,还可以控制三维信息,直接在三维空间中操作数据。

image-20231030232343568

SLAM

SLAM 全称 Simultaneous Localization and Mapping。

  • 计算机视觉领域不仅包括检测,还可以进行分割、车道线检测等任务。
  • SLAM(同时定位和地图构建)是一个重要的概念,用于定位和制图。
  • SLAM技术在VR和AR中的应用需要解决同时定位和制图的问题。

image-20231030232426124

视差和深度信息

  • 视差是深度信息的一种表示,与深度信息本质相同。
  • 生成深度信息对于改变场景视角非常重要,比如为VR和AR创建不同视角。
  • 生成深度信息通常需要复杂的数学和算法。

三维建模和修复

  • 三维建模允许将现实世界的对象小型化,如无人机。
  • 图像修复工作包括通过周围信息自动填充被删除的内容。
  • 逆过程也可能是可行的,例如从图像中删除不想看到的对象。

计算机视觉是一个广泛的领域,包括了众多任务和应用,从二维检测到三维建模和修复。这个领域需要深厚的数学和算法知识,但也为许多领域的科学和技术进步提供了新的可能性。

image-20231030232508335

人脸和图像修复

  • 人脸驱动和美化: 你可以使用CV技术来实现人脸驱动,例如将一张人脸的表情应用到另一张脸上。此外,你还可以使用CV技术进行美颜处理,例如瘦脸。

image-20231030233024992

  • 图像修复: CV技术可以帮助修复图像中的缺陷或损坏,例如自动填充图像中缺失的部分,根据周围的信息进行补全。
  • 对象移除: 你可以使用CV技术从图像中删除不需要的对象或元素,使图像更清晰或美观。

image-20231030233000011

总结一下什么是CV

CV就是从图像、视频或者其他媒介中提取信息

• Extract Info from Image / Video / Other types of data: depth map / IR image / disparity map / point clouds / …

  • Image

    image-20231031000151569

  • Video

    image-20231031000245069

  • Other types of data

    • 深度图 (depth map): 深度图是一种图像,但它不使用颜色来表示图像中的内容,而是使用灰度值。这些灰度值实际上表示物体距离相机的距离,而不是颜色信息。较暗的区域通常表示距离较远,而较亮的区域表示距离较近。

    • 红外图像 (IR image): 红外图像是使用红外相机捕获的图像,它具有不同的信息呈现方式。这种图像在某些应用中很有用,例如夜视设备。

    • 视差图 (disparity map): 视差图是计算机视觉中的一个关键概念,它表示左右相机看同一点时的距离差异。这些差异可用于计算深度信息,就像深度图一样。

    • 点云 (point clouds): 点云是一组三维点的集合,通常用于表示物体的表面或场景的三维结构。它在无人车等领域中广泛应用,用于建立场景的三维模型。image-20231031000308570

生成模型 Generative Model

生成模型的定义: 生成模型是一种能够生成新数据,尤其是与现有数据相关的数据的模型。这些模型可以创建新的图像、文本、声音等内容。

image-20231101161438402

  • 人脸转换: 使用生成模型,可以实现人脸的转换。例如,将一个侧脸的照片转化为正面的照片,这在过去是难以想象的。

  • 照片上色: 生成模型可用于给黑白照片上色,提高图像的质量,使图像更生动。

  • 去除反光: 生成模型也可以用于去除图像中的反光,改善照片质量。

  • 文本描述生成图像: 这个模型的另一个重要应用是从文本描述生成图像。用户可以提供文本描述,生成模型会生成符合描述的图像。

    image-20231101161510462

  • 多模态生成: 最新的生成模型可以处理多种不同类型的数据,如图像、文本、音频等。这使得可以在不同模态之间进行转化,例如,生成带有文本描述的图像和音频。

    image-20231101161552654

  • 商业应用: 生成模型还具有商业潜力,如影视业中,它可以用于实现电影角色的语言切换,使角色的表情、口型保持不变,只是语言切换为不同语种,从而扩大电影的受众。

CV范式 Paradigm of CV

我们可以从低层次(low level)、中层次(mid level)和高层次(high level)的角度总结计算机视觉(CV)的发展:

  1. 低层次(Low Level):

    • 低层次计算机视觉主要关注从原始图像中提取基础信息,如角点和边缘
    • 角点是图像中的突出点,通常位于物体的角部分,而边缘是具有不同亮度或颜色的地方。
    • 基础信息提取的过程需要进行数学建模,例如计算图像的梯度,以获得变化信息。

    image-20231101170139296

  2. 中层次(Mid Level):

    • 中层次计算机视觉涉及从基础信息中提炼出更具语义的特征。
    • 特征工程是一个常见的任务,它涉及到描述字(特征点/特征向量)的生成。
    • 这些描述字通常包含关于物体方向、周围区域的信息以及其他特征,例如尺度和旋转不变性 (放缩或旋转后仍然是角点)。

    image-20231101170247320

  3. 高层次(High Level):

    • 在高层次计算机视觉中,利用从基础信息和特征中提取的信息进行语义任务。
    • 这包括利用经典工具(如SVM)或神经网络(如CNN)来执行任务,如物体识别或图像分类。
    • 语义任务可以涵盖更高级的概念,例如对象检测、人脸识别、图像分割等。

CNN

image-20231101202624846

  • pre-algorithm

    1. 数据预处理和增广:这个阶段涉及数据的准备,包括对图像或数据进行预处理,如翻转、遮挡、添加噪音等,以增加数据的多样性。还包括对标签(label)的操作,如标注错误以改进模型的泛化能力。
  • in-algorithm

    1. 网络结构(Backbone):这个阶段涉及网络的结构设计,如卷积神经网络(CNN)的骨干结构(Backbone)。这是模型的基本框架,可以包括各种类型的神经网络结构,如Transformer、U-Net等。
    2. 网络连接和结构调整(Neck):这个阶段是连接Backbone和Head之间的过渡,通常包括一些网络连接和结构调整,以适应特定的任务。
    3. (Head):Headnetwork,有些用于做分割、有些用于做分类…
    4. 训练策略(Training Control):在这个阶段,确定如何训练模型,包括学习策略、训练策略、优化器的选择等。这是模型训练的关键部分。
  • post-algorithm
    5. 后处理和损失函数(Loss Functions):最后一个阶段涉及模型输出的后处理,以及损失函数的选择。损失函数的选择取决于任务的不同,如目标检测、分割等。

image-20231102111954914

  1. CNN层级结构:

    • Layer:CNN层级结构的基本组成单元。它包括卷积层(Convolutional Layer)、池化层(Pooling Layer)、批归一化层(Batch Normalization Layer)、全连接层(Fully Connected Layer)和丢弃层(Dropout Layer)。卷积层用于提取特征,池化层用于降低空间维度,批归一化层有助于加速训练,全连接层用于输出预测,丢弃层用于防止过拟合。
    • Module:模块是由多个层级组合而成的结构,用于构建更复杂的CNN模型。例如,残差块(ResBlock)是一种常见的模块,它包含跳跃连接,有助于解决梯度消失问题。其他模块包括CBAM(Convolutional Block Attention Module)和SE-Net(Squeeze-and-Excitation Network),它们用于增强模型的特征学习能力。
    • Network:网络是由多个模块组合而成的CNN结构。常见的CNN网络结构包括VGG、ResNet、UNet、MobileNet等。它们在不同的任务中表现出色,如图像分类、目标检测、分割等。

    image-20231102112040990

  2. CNN应用:

    • 目标检测(Detection):目标检测是在图像中识别和定位物体的任务。常见的检测算法包括Faster R-CNN、YOLO(各个版本如YOLOv2、YOLOv3、YOLOv4、YOLOv7、YOLOv8)、RetinaNet、FPN(Feature Pyramid Network)、CenterNet等。这些算法结合了卷积神经网络和目标框回归方法,实现了高效的目标检测。
    • 生成对抗网络(GAN):GAN是一种生成模型,由生成器和判别器组成,用于生成与真实数据相似的数据。常见的GAN算法包括原始GAN、Wasserstein GAN(WGAN)、条件GAN、Pix2Pix、Cycle-GAN等。GAN用于图像生成、风格迁移、图像超分辨率等任务。
    • 关键点检测(Keypoint Detection):关键点检测是在图像中定位关键点的任务,例如人体关节的位置。Hourglass网络是一种常用于关键点检测的CNN结构,它具有逐级降采样和上采样层,用于生成关键点热图。
    • 三维相关(3D Related):3D视觉任务涵盖了立体匹配、点云分析、物体姿态估计等。一些重要的算法包括GANet、LEAStereo、PointNet、Voxelnet、MiDas、PoseCNN、SSD-6D等,它们用于从多视图或点云数据中重建三维信息。
    • 图像分割(Segmentation):图像分割任务涉及将图像中的不同区域分配给不同的类别。常用的分割网络包括UNet、ENet、PANet等,它们具有编码-解码结构,有助于精确的语义分割。
    • 模型加速(Acceleration):模型加速方法用于减少深度学习模型的复杂度,以便在资源受限的设备上进行推断。这些方法包括网络剪枝(Network Slimming)、知识蒸馏(Knowledge Distillation)以及使用轻量级模型如MobileNet、ShuffleNet、GhostNet等。
    • 神经架构搜索(NAS):神经架构搜索是一种自动化的深度学习模型设计方法,其目标是找到最佳的网络结构。EfficientNet是一个成功的NAS例子,它通过均衡了模型宽度、深度和分辨率,实现了高性能的图像分类。

VGG

后续补充

残差网络 ResNet

后续补充

UNet

Unet最初由Olaf Ronneberger、Philipp Fischer和Thomas Brox于2015年提出,用于图像分割任务。Unet的设计灵感来自生物医学图像处理领域,特别是用于细胞分割的应用。该网络架构在医学图像分割、计算机视觉和许多其他领域的图像分析任务中非常成功。

Unet的关键特点是其编码器-解码器结构,其中编码器用于捕获图像的上下文信息,而解码器用于还原分割结果的空间分辨率。以下是Unet架构的主要组成部分:

  1. 编码器(Encoder):编码器部分由卷积层和池化层组成,用于逐渐降低输入图像的空间分辨率并提取特征。每一层都会增加特征的抽象性,从边缘和纹理信息到更高级别的语义信息。

  2. 解码器(Decoder):解码器部分由反卷积层和/或上采样层组成,用于逐步增加特征图的分辨率,并将上下文信息与高分辨率特征图相结合,以生成分割结果。解码器的每一层都通过跳跃连接(skip connections)与相应编码器层相连接,以帮助细节保留和避免信息丢失。

  3. 损失函数:通常使用像素级别的损失函数,如交叉熵损失或Dice损失,来衡量模型的输出与实际分割掩码之间的差异。

Unet的主要优点包括:

  • 良好的上下文信息捕获:由于编码器部分逐渐减小图像尺寸,可以捕获更广泛的上下文信息,有助于准确的分割任务。

  • 跳跃连接:跳跃连接有助于维护高分辨率特征的信息,从而提高分割的细节和准确性。

  • 相对较少的参数:相对于一些其他深度学习模型,Unet通常具有相对较少的参数,这有助于减少训练和推理的计算成本。

Transpose Convolution & Upsampling

Transpose Convolution(转置卷积,也称为反卷积或分数步长卷积)和上采样都是用于增加图像或特征图的空间分辨率的技术,通常用于深度学习中的图像处理任务,如图像分割或生成任务。

  1. 转置卷积(Transpose Convolution):

    • 转置卷积是一种卷积运算的逆操作,它用于将特征图的空间分辨率扩展,从而使特征图变得更大。
    • 在标准卷积操作中,卷积核滑动并执行池化操作,将输入特征图的空间分辨率降低。转置卷积的操作与之相反,可以将特征图的分辨率增加。
    • 转置卷积的卷积核通常包含零填充,以扩大特征图的大小。它还具有可学习的权重参数,可以在训练中调整,以适应特定任务。
    • 转置卷积通常用于解码器部分,用于从编码器获得的低分辨率特征图生成高分辨率分割结果。
  2. 上采样(Upsampling):

    • 上采样是一种简单的操作,它通过插值技术将低分辨率图像或特征图的大小增加到所需的分辨率。
    • 常见的上采样方法包括最邻近插值、双线性插值和双三次插值等。这些方法可以根据需要平滑地增加图像的大小。
    • 上采样通常用于从编码器到解码器传递信息,以便在分割任务中恢复特征图的分辨率。例如,它可以用于跳跃连接中,以将低分辨率特征图上采样到与解码器特征图相匹配的分辨率,并将它们相结合以生成分割结果。

虽然转置卷积和上采样都可以用于增加特征图的分辨率,但它们之间存在一些差异。转置卷积通常包含可学习的参数,可以更好地适应特定任务,而上采样是一种简单的插值技术,通常不包含可学习的参数。在实际应用中,根据任务和性能要求,可以选择使用其中一种或两种技术来进行上采样操作。

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

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

相关文章

IDEA新建jdk8 spring boot项目

今天新建spring boot项目发现JDK版本最低可选17。 但是目前用的最多的还是JDK8啊。 解决办法 Server URL中设置: https://start.aliyun.com/设置完成后,又可以愉快的用jdk8创建项目了。 打包的jar无法运行 小伙伴可能会发现,默认的配置打…

9、ble_mesh基础

node节点,不属于网络的设备称为未配置设备。未配置的设备无法发送或接收网格消息;但是,它会向 Provisioners 宣传其存在。 Provisioner供应,验证,邀请,加入网络成为节点。 一个节点有多个控制或开关&#x…

四通道 DMOS 全桥驱动MS35631N/MS35631

MS35631N/MS35631 是一款四通道 DMOS 全桥驱动器,可以驱动两 个步进电机或者四个直流电机。每个全桥的驱动电流在 24V 电源下可以 达到 1.2A 。 MS35631N/MS35631 集成了固定关断时间的 PWM 电流校正 器,以及一个 2bit 的非线性 DAC &…

美颜SDK技术对比,深入了解视频美颜SDK的工作机制

如何在实时视频中呈现更加自然、美丽的画面,而这正是美颜SDK技术发挥作用的领域之一。本文将对几种主流视频美颜SDK进行深入比较,以揭示它们的工作机制及各自的优劣之处。 随着科技的不断进步,美颜技术已经从简单的图片处理发展到了视频领域…

Vue3-22-组件-插槽的使用详解

插槽是干啥的 插槽 就是 组件中的一个 占位符, 这个占位符 可以接收 父组件 传递过来的 html 的模板值,然后进行填充渲染。 就这么简单,插槽就是干这个的。要说它的优点吧,基本上就是可以使子组件的内容可以被父组件控制&#xf…

商业办公楼烟雾预警,这个方法我只说一次!

烟感监控在现代社会中扮演着至关重要的角色,不仅在火灾预防和安全管理中具有关键性的作用,同时也对人们的生命财产安全起到了至关重要的保护作用。 随着科技的不断发展,烟感监控系统的功能日益强大,为各行业提供了更加智能、高效的…

python图像二值化处理

目录 1、双峰法 2、P参数法 3、迭代法 4、OTSU法 图像的二值化处理是将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的只有黑和白的视觉效果。二值化是图像分割的一种最简单的方法,可以把灰度图像转换成二值图像。具体实现是将大…

lambda自定义比较规则-sort函数或优先队列

Lambda表达式的一般形式为 [captures](params){body}对于优先队列的自定义排序规则&#xff0c;常见方法是写成结构体形式 struct cmp{bool operator()(pair<int,int> map1,pair<int,int> map2){return map1.second>map2.second;} }; priority_queue<pair&…

electron与cesium组件入门应用功能

electron与cesium组件入门应用功能 运行应用效果图&#xff1a; electron应用目录&#xff0c;需要包括三个文件: index.html main.js package.json (一)、创建一个新项目 目录名称&#xff1a;project_helloWolrd (二)、生成package.json文件 npm init --yes(三&#x…

饥荒Mod 开发(十六):五格装备栏

饥荒Mod 开发(十五)&#xff1a;小地图显示物品 源码 饥荒中的装备栏只有3个实在太少了&#xff0c;手&#xff0c;头&#xff0c;身体。 身体上装备的物品会有冲突&#xff0c;很多不能一起装备&#xff0c;比如 衣服&#xff0c;项链&#xff0c;背包等。 而这三种物品又有自…

概率论复习

第一章&#xff1a;随机概率及其概率 A和B相容就是 AB 空集 全概率公式与贝叶斯公式&#xff1a; 伯努利求概率&#xff1a; 第二章&#xff1a;一维随机变量及其分布&#xff1a; 离散型随机变量求分布律&#xff1a; 利用常规离散性分布求概率&#xff1a; 连续性随机变量…

Docker单点部署[8.11.3] Elasticsearch + Kibana + ik分词器

文章目录 一、Elasticsearch二、Kibana三、访问四、其他五、ik分词器第一种&#xff1a;在线安装第二种&#xff1a;离线安装 Elasticsearch 和 Kibana 版本一般需要保持一致才能一起使用&#xff0c;但是从 8.x.x开始&#xff0c;安全验证不断加强&#xff0c;甚至8.x.x之间…

Linux - 非root用户使用systemctl管理服务

文章目录 方式一 &#xff08;推荐&#xff09;1. 编辑sudoers文件&#xff1a;2. 设置服务文件权限&#xff1a;3. 启动和停止服务&#xff1a; 方式二1. 查看可用服务&#xff1a;2. 选择要配置的服务&#xff1a;3. 创建自定义服务文件&#xff1a;4. 重新加载systemd管理的…

安防监控视频管理平台EasyCVR v3.4版如何取消首次登录强制重置密码的操作?

在视频监控领域&#xff0c;智慧安防平台EasyCVR平台采用了开放式的网络结构&#xff0c;支持高清视频的接入和传输、分发&#xff0c;能提供实时远程视频监控、视频录像、录像回放与存储、告警、语音对讲、云台控制、平台级联、磁盘阵列存储、视频集中存储、云存储等丰富的视频…

【Spring】12 EmbeddedValueResolverAware 接口

文章目录 1. 简介2. 作用3. 使用3.1 创建并实现接口3.2 配置 Bean3.3 创建启动类3.4 启动 4. 应用场景总结 Spring 框架提供了许多回调接口&#xff0c;以便开发者在 Bean 的生命周期中执行一些特定操作。其中之一是 EmbeddedValueResolverAware 接口&#xff0c;本文将深入探…

【Qt之Quick模块】2.创建Qt Quick UI工程

前言 上个文档对Qucik模块进行了概述&#xff0c;及创建Quick应用程序流程。 这个文档是创建Quick UI工程。 Qt Quick UI原型 Qt Quick UI原型项目对于测试或原型化用户界面非常有用&#xff0c;或者只是为了进行QML编辑而设置一个单独的项目。但是不能用它们进行应用程序开…

智能优化算法应用:基于蛾群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于蛾群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于蛾群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蛾群算法4.实验参数设定5.算法结果6.参考文献7.MA…

Mongodb复制集架构

目录 复制集架构 复制集优点 复制集模式 复制集搭建 复制集常用命令 复制集增删节点 复制集选举 复制集同步 oplog分析 什么是oplog 查看oplog oplog大小 复制集架构 复制集优点 数据复制: 数据在Primary节点上进行写入&#xff0c;然后异步地复制到Secondary节点&a…

[ CTF ]【天格】战队WriteUp-第七届“强网杯”全国安全挑战赛

第七届“强网杯”全国安全挑战赛 2023.12.16~2023.12.17 文章目录 【Misc】Pyjail ! Its myFILTER !!!easyfuzz谍影重重2.0签到Pyjail ! Its myRevenge !!!server_8F6C72124774022B.py 问卷调查 【Reverse】ezre 【Web】happygame 【强网先锋】石头剪刀布TrieSpeedUpezreez_fmt…

6TIM定时器

STM32的定时器功能众多&#xff0c;拥有基本定时功能&#xff0c;输出比较功能&#xff08;如产生PWM波等&#xff09;&#xff0c;输入捕获&#xff08;测量方波信号&#xff09;&#xff0c;读取正交编码器的波形。 1.中断原理 TIM定时器的基本功能是对输入的时钟进行计数&…