计算机视觉应用算法的通俗理解 - 网络究竟在里面干了什么(一)

简介: 计算机视觉应用算法的通俗理解 - 网络究竟在里面干了什么(一)

1.计算机视觉的应用算法


计算机视觉有许多算法任务:图像分类,图片相似搜索。图像分割,关键点检测,目标检测,目标跟踪,视频分类,深度估计,人脸检测


这些算法,又有很多各种各样的网络结构,复杂又抽象,我们只知道把数据输入到模型,得到结果,这网络里面怎么处理的数据,处理的过程又是怎么样的,太抽象了。


因此我写这篇文章,是想尽可能把这样抽象过程,描述成小白都能理解的形式。


2.图像的特征与视频特征


再说算法,我们先谈一下,图像的特征和视频的特征,从这些算法任务中,不难看出,算法模型用到的数据,不外乎图片和视频。


所以首先我们要知道图像和视频在机器代码角度下,有哪些有价值的特征。


2.1 图像特征


比如我们大幂幂,我们人的视角,看到的,是五官,衣服,头发这类(宏观一点的),但在机器角度,看到的要更微观很多,微观到每一个像素点(学ps的就知道,做p图,其实是对每个像素块做处理,一张图片也又几千个不同颜色像素块组成)。算法处理图像的最小单位也就是像素块。


基于这样的像素块,机器看到是什么呢

  1. 颜色:每个像素块都有自己的颜色
  2. 形状:基于相似颜色的像素块,可以区分不同的形状
  3. 纹理:有些像素块上还有条纹,类似于一块木地板
  1. 序列:有些像素块之间是有关联的,比如文本,下一章会详细说明


前三者,融合起来就是我们人视角看到的特征:

比如:皮肤的纹理,皮肤的颜色,皮肤形状(就是我们看到的杨幂的脸)

了解“风格迁移”算法的或许更能明白,这些特征的使用。


2.2 视频特征


视频特征,视频其实就是由连续帧的图片,按照时间顺序,组合成的。因此,视频特征里有图像的特征,


除此之外,视频特征由于有连续几张图片的特征,因此会有二张图片或者多张图片对比下的一些特定的特征,比如位置和速度二个特征,这二者其实也就是序列特征


6ed83e0e3a604982bf9e3cf8d40d85a2.png

3.算法通俗理解


接下来,我将用图像的特征和视频的特征来介绍,这些不同算法,在训练和预测过程,算法的网络是怎么处理的。


先介绍图像分类,图像分类是其他算法开发基础,理解了图像分类,就明白后续的计算机视觉算法如何处理的


3.1 图像分类


训练


图像分类,我们数据有图像和图像的label,我们将图像加入到模型,模型根据图像的特征(纹理、颜色、形状),这些特征通过模型组合形成更抽象的五官,模型记住了这个label类别下人的五官,知道了他长什么样了。


婴儿:父母告诉婴儿这个是爸爸,那个是妈妈,婴儿也是根据脸部的特征,五官记住了,这个人是爸爸。


预测


同样预测,我们向模型加入预测的图像,模型同理分解除图像的特征,再组合成更抽象的特征(五官),再与模型之前训练后记住的特征(五官)进行对比,判断。


3.2 目标检测


d8b10178a63f42e79b3edd8c3d8caf22.png


目标检测有点像图像分类


训练


我们数据,是经过标注后的数据,类似于上图这张,我们通过边框和label标注,让模型,只针对边框内的图像,做处理(这里就跟图像分类训练很像了),相当于做抠图,抠下来做图像分类训练。


预测


模型预测的时候,模型先对预测的图片按一定规则在图片上产生一系列的候选区域,如下图所示:


然后模型对每个框做,一个图像分类预测处理,来判断属于的类别,并给出一个类别阈值,找出类别为杨幂的阈值也高的图片,这里可能会出现多个框有重合,如下图所示:


这里就需要对这几个框做一个去重处理,就OK了。


3.3 语义分割


语义分割通俗来说就是有label标签的分割,对每个分割出的区域,都会告诉这个区域是什么类别。


计算机视觉领域还有2个与语义分割相似的重要问题,即图像分割(image segmentation)和实例分割(instance segmentation)。 我们在这里将它们同语义分割简单区分一下。


图像分割:图像分割将图像划分为若干组成区域,这类问题的方法通常利用图像中像素之间的相关性,也就是图像的颜色,形状,纹理之间的相关性,将同一类的事物。划分成一个区域。但这种预测不需要有关图像像素的标签信息,在预测时也无法保证分割出的区域具有我们希望得到的语义。

实例分割:也叫同时检测并分割(simultaneous detection and segmentation),它研究如何识别图像中各个目标实例的像素级区域。与语义分割不同,实例分割不仅需要区分语义,还要区分不同的目标实例。例如,如果图像中有两条狗,则实例分割需要区分像素属于的两条狗中的哪一条。是不是就是目标检测+图像分割,再分下来就是:画框+图像分类+图像分割

至于分割出来不同区域的颜色,其实是指定的


到这里从图像分类,目标检测,图像分割是不是看起来像是一层一层算法叠加的。


3.4 关键点检测


哎呀这精致的脸庞。


关键点本质上是一种特征。它是对一个固定区域或者空间物理关系的抽象描述,描述的是一定邻域范围内的组合或上下文关系,可以说是图像中纹理、颜色、形状的高维聚合。


前面说图像分类的时候,杨幂的五官通过纹理、颜色、形状可以找出来,那人体的形状也同样可以找出来。


关键点检测方法总体上可以分成两个类型,一个种是用坐标回归的方式来解决,另一种是将关键点建模成热力图,通过像素分类任务,回归热力图分布得到关键点位置

相关文章
|
22天前
|
机器学习/深度学习 人工智能 算法
猫狗宠物识别系统Python+TensorFlow+人工智能+深度学习+卷积网络算法
宠物识别系统使用Python和TensorFlow搭建卷积神经网络,基于37种常见猫狗数据集训练高精度模型,并保存为h5格式。通过Django框架搭建Web平台,用户上传宠物图片即可识别其名称,提供便捷的宠物识别服务。
229 55
|
13天前
|
存储 监控 算法
员工上网行为监控中的Go语言算法:布隆过滤器的应用
在信息化高速发展的时代,企业上网行为监管至关重要。布隆过滤器作为一种高效、节省空间的概率性数据结构,适用于大规模URL查询与匹配,是实现精准上网行为管理的理想选择。本文探讨了布隆过滤器的原理及其优缺点,并展示了如何使用Go语言实现该算法,以提升企业网络管理效率和安全性。尽管存在误报等局限性,但合理配置下,布隆过滤器为企业提供了经济有效的解决方案。
54 8
员工上网行为监控中的Go语言算法:布隆过滤器的应用
|
13天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
145 80
|
1天前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a实现时间序列预测,采用CNN-GRU-SAM网络结构。卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征。完整代码含中文注释和操作视频,运行效果无水印展示。算法通过数据归一化、种群初始化、适应度计算、个体更新等步骤优化网络参数,最终输出预测结果。适用于金融市场、气象预报等领域。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
|
4天前
|
机器学习/深度学习 算法 PyTorch
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
软演员-评论家算法(Soft Actor-Critic, SAC)是深度强化学习领域的重要进展,基于最大熵框架优化策略,在探索与利用之间实现动态平衡。SAC通过双Q网络设计和自适应温度参数,提升了训练稳定性和样本效率。本文详细解析了SAC的数学原理、网络架构及PyTorch实现,涵盖演员网络的动作采样与对数概率计算、评论家网络的Q值估计及其损失函数,并介绍了完整的SAC智能体实现流程。SAC在连续动作空间中表现出色,具有高样本效率和稳定的训练过程,适合实际应用场景。
24 7
深度强化学习中SAC算法:数学原理、网络架构及其PyTorch实现
|
7天前
|
机器学习/深度学习 算法
基于遗传优化的双BP神经网络金融序列预测算法matlab仿真
本项目基于遗传优化的双BP神经网络实现金融序列预测,使用MATLAB2022A进行仿真。算法通过两个初始学习率不同的BP神经网络(e1, e2)协同工作,结合遗传算法优化,提高预测精度。实验展示了三个算法的误差对比结果,验证了该方法的有效性。
|
9天前
|
机器学习/深度学习 数据采集 算法
基于PSO粒子群优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-GRU-SAM网络在时间序列预测中的应用。算法通过卷积层、GRU层、自注意力机制层提取特征,结合粒子群优化提升预测准确性。完整程序运行效果无水印,提供Matlab2022a版本代码,含详细中文注释和操作视频。适用于金融市场、气象预报等领域,有效处理非线性数据,提高预测稳定性和效率。
|
8天前
|
算法 网络协议 Python
探秘Win11共享文件夹之Python网络通信算法实现
本文探讨了Win11共享文件夹背后的网络通信算法,重点介绍基于TCP的文件传输机制,并提供Python代码示例。Win11共享文件夹利用SMB协议实现局域网内的文件共享,通过TCP协议确保文件传输的完整性和可靠性。服务器端监听客户端连接请求,接收文件请求并分块发送文件内容;客户端则连接服务器、接收数据并保存为本地文件。文中通过Python代码详细展示了这一过程,帮助读者理解并优化文件共享系统。
|
19天前
|
JSON 算法 Java
Nettyの网络聊天室&扩展序列化算法
通过本文的介绍,我们详细讲解了如何使用Netty构建一个简单的网络聊天室,并扩展序列化算法以提高数据传输效率。Netty的高性能和灵活性使其成为实现各种网络应用的理想选择。希望本文能帮助您更好地理解和使用Netty进行网络编程。
36 12
|
26天前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。