第一篇
一、专有名词
1. YOLO核心创新点:
用一个神经网络,就同时完成“找出目标”(定位)和“判断类别”(分类)这两个任务。
因为传统的检测要将这两步骤分开。
2. 神经网络:(技术)
一个神经网络相当于一个完整的公司架构,里面会有很多层。
神经网络是一个数学函数,它接收输入数据,通过一系列计算,产生输出结果。这个函数的特点是:由大量简单的计算单元(神经元)组成,这些单元分层连接,通过调整连接强度(权重)来学习。(即:输入层、隐藏层、输出层)
已知类型:
CNN(卷积神经网络):专门处理图像,像看图片时先看局部在看整体。
Transformer架构:擅长处理序列数据,同时现在也可以处理图像。
其他。
3. 神经网络的工具箱:(工具)
已知类型:
PyTorch:研究首选,灵活好调试。像乐高一样可以边搭边改。
TensorFlow:工业部署强,像标准化工厂生产线。
4. 具体网络实现方法:(方案选择)
已知类型:
YOLO:是用CNN架构实现的具体目标检测方案
5. 检测流程:(开发者视角流程)
要做目标检测 → 选择方案(YOLO算法) → 技术选型(CNN架构) → 开发工具写代码(PyTorch框架) → 训练 → 产出模型 → 得到YOLO模型文件(.pt)
6. 神经网络工作流程:(算法内部流程)
输入图片 → 一路缩小尺寸,提取高级特征,即下采样(骨干网络) → 将高层特征图上采样到与低层特征图相同尺寸,然后进行特征融合(对应尺度),即上采样+融合(颈部网络) → 同时输出位置和类别(检测头) → 边界框 + 类别标签
> CNN神经网络在处理图像时,首先会逐渐缩小图片的尺寸,这就是下采样。变成一张张小的特征图,接下来就是要将它们放大回去,这就是上采样。
7. CNN卷积神经网络
主要有三大模块组成,分别是特征提取模块、特征融合模块、预测输出模块。即对应Backbone主干、Neck颈部、Head头部三部分。其中每个模块又有很多层组成。
8. 上采样:相当于放大地图,看到更多的细节。
四大类方法:
基于插值的方法(传统)
最近邻插值
双线性插值
双三次插值
基于学习的方法(可训练)
反卷积
亚像素卷积
基于注意力的方法(高级)
注意力上采样
可变形卷积上采样
基于生成模型的方法
生成对抗网络上采样
9. 下采样:相当于缩小地图,看到更大的范围。(池化层)
三种主要方法:
最大池化:即取区域的最大值,保留显著特征,但容易丢失细节信息。
平均池化:即取区域的平均值,保留整体信息,但可能模糊重要特征。
步长卷积:卷积时跳步采样,可学习,效果好,但计算复杂。
10. 轻量级网络:是指计算量小、参数少的网络。
11. 损失函数:衡量预测与真实值差异的函数
12. 优化器:更新网格参数的算法
13. 通道拆分:将一个特征图的通道数拆分成多组,一部分进行复杂的计算以提取更丰富的特征,另外的则直接保留原始信息,最后将他们合并。
14. 通道洗牌:在分组的时候,由于不同组之间的学习交流可能会变弱。洗牌操作就是有规律地打乱不同组的通道顺序,确保后面的层都能利用所有特征。
15. 坐标注意:这是一种注意力机制,分别关注x、y方向上的哪些位置更重要,而不是关注哪个区域重要。
二、论文1中的核心创新点:
1. CSSCA模块(用于骨干网络):
目的:替代YOLOv3中残差块同时引入注意力机制,减少参数和计算量。
构成:通过通道拆分和洗牌,将输入通道分组,一部分进行深度卷积等复杂计算,另一部分直接短路,最后进行通道洗牌,降低了计算复杂度。
2. CSPEB模块(用于颈部网络):
目的:替代YOLOv3颈部中连续堆叠的5个CBL模块,增强特征融合能力并降低内存访问成本。
构成:将特征图分成两部分,一部分进行深度卷积等变换,另一部分直接连接,最后合并。
3. SIoU损失函数(用于检测头):
目的:替代YOLOv3中原有的IoU损失,加速训练收敛并提高边界框回归精度。
原理:SIoU Loss在IoU损失的基础上,额外考虑了向量角度(预测框与真实框中心点的连线方向)和形状(宽高比)的不匹配代价。
4. 其他:
CBH模块:将原YOLOv3中的CBL(Conv+BN+LeakyReLU)模块中的激活函数替换为Hardswish。该函数计算更高效,更适合移动设备,且能缓解梯度消失问题。
5. 网络结构:

三、解析
1. 机载:是指安装在车辆或移动设备上
2. 主干模块:是整个网络的“骨架”或“特征提取器”
3. 骨干网络:特征提取主干
4. 颈部网络:特征融合部分
5. 检测头:输出预测结果
6. 注意力机制:增强重要特征并抑制无关特征
7. 深度可分离卷积:减少计算量的卷积方式
四、vue3
1.watch监视器:监视数据的变化
类型:
ref定义的数据(基本、对象 )
reactive定义的对象
函数返回的一个值(getter函数)
一个包含上面内容的数组
语法:
watch(对象,()=>{} )
2.生命周期:一个vue实例从创建到销毁的整个过程
创建阶段:将数据变成响应式数据
挂载阶段:渲染模板
更新阶段:数据修改,更新视图
销毁阶段:销毁实例
3.路由:key+value
工作模式:history模式(带#)、hash模式(不带#)
组件
一般组件:放在components文件夹下
路由组件:需要靠路由的规则渲染出来,pages/views
命名
字符串(不推荐)
对象:name | path
路由的跳转
4.搭建pinia环境:是vue.js的状态管理库(vuex的替代品)
引入:import
创建:createPinia()
安装:app.use(pinia)