当前位置: 首页 > news >正文

计算机视觉 之 经典模型汇总

文章目录

  • 早期特征工程模型
    • SIFT(尺度不变特征变换) 2004
    • HOG(方向梯度直方图) 2005
    • Haar特征 + AdaBoost(2001)
  • 深度学习模型
    • LeNet-5 (1998)
    • AlexNet (2012)
      • 转置卷积

早期特征工程模型

SIFT(尺度不变特征变换) 2004

在这里插入图片描述
在这里插入图片描述

HOG(方向梯度直方图) 2005

在这里插入图片描述

Haar特征 + AdaBoost(2001)

在这里插入图片描述

深度学习模型

LeNet-5 (1998)

  • 地位:首个成功应用于数字识别的卷积神经网络(CNN),奠定了 CNN 的基础架构。
  • 结构:包含卷积层、池化层、全连接层,输入为 32×32 的手写数字图像。
  • 特点:
    • 首次验证了卷积操作(局部感受野、权值共享)在图像处理中的优势,大幅减少参数数量。
    • 仅适用于简单任务(如 MNIST 手写数字识别),对复杂图像效果有限。

AlexNet (2012)

  • 地位:深度学习引爆计算机视觉的标志性模型,在 ImageNet 竞赛中准确率远超传统方法。
  • 结构:8 层网络(5 层卷积 + 3 层全连接),首次使用 ReLU 激活函数、Dropout 数据增强
  • 特点:
    • 突破了传统神经网络的计算瓶颈,证明了深度 CNN 在大规模图像识别中的潜力。
    • 引入 GPU 加速训练,推动了深度学习硬件和软件的发展。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import torch.nn as nn 
# AlexNet 网络结构
# 其实就是 前面5个卷积层,后面3个全连接层
# 卷积层:
# 1. 卷积层1:输入3通道,输出96个特征图,卷积核大小11x11,步长4,填充2
# 2. 卷积层2:输入96个特征图,输出256个特征图,卷积核大小5x5,步长2,填充2
# 3. 卷积层3:输入256个特征图,输出384个特征图,卷积核大小3x3,步长1,填充1
# 4. 卷积层4:输入384个特征图,输出384个特征图,卷积核大小3x3,步长1,填充1
# 5. 卷积层5:输入384个特征图,输出256个特征图,卷积核大小3x3,步长1,填充1
# 全连接层:
# 1. 全连接层1:输入256x5x5,输出4096
# 2. 全连接层2:输入4096,输出4096
# 3. 全连接层3:输入4096,输出10
class AlexNet(nn.Module):def __init__(self):super(AlexNet, self).__init__()self.conv = nn.Sequential(nn.Conv2d(3,96,kernel_size=11,stride=4),nn.ReLU(),nn.MaxPool2d(kernel_size=3,stride=2),# 减小卷积窗口nn.Conv2d(96,256,kernel_size=5,padding=2),nn.ReLU(),nn.MaxPool2d(kernel_size=3,stride=2),# 连续三个卷积层nn.Conv2d(256,384,kernel_size=3,padding=1),nn.ReLU(),nn.Conv2d(384,384,kernel_size=3,padding=1),nn.ReLU(),nn.Conv2d(384,256,kernel_size=3,padding=1),nn.ReLU(),nn.MaxPool2d(kernel_size=3,stride=2))self.fc = nn.Sequential(nn.Linear(256*5*5,4096),nn.ReLU(),nn.Dropout(0.5),nn.Linear(4096,4096),nn.ReLU(),nn.Dropout(0.5),nn.Linear(4096,10))def forward(self,img):feature = self.conv(img)output = self.fc(feature.view(img.shape[0],-1))return output

分析

  • ReLU激活函数,一般在这个卷积层全连接层后面,用于:

    • 解决梯度消失的问题
    • 使得神经网络可以学习到这个复杂的非线性映射
  • Dropout 这个全连接层使用(卷积层参数共享并且参数量比较少),训练的时候启用,但是推理的时候关闭(PyTorch 会自动处理,通过model.train()和model.eval()控制

    • 通过随机丢弃神经元,减少神经元间的共适应,降低过拟合。
    • 相当于集成多个子网络,提升泛化能力

转置卷积

  • 作用:
    • CNN 可视化:可将卷积得到的特征图还原到像素空间,用于观察特征图对哪些模式响应最大,从而可视化卷积操作提取出的特征。
    • 图像分割:在全卷积网络(FCN)中,需要对图像进行像素级的分割,通过反卷积将特征图尺寸还原到原来的大小,实现上采样操作。
    • 生成模型:在生成对抗网络(GAN)中,需要从输入向量生成图像,通过反卷积将提取的特征图还原到和原图同样尺寸的大小,生成最终的图像。
  • 与卷积的区别:卷积通常会使图像尺寸变小,用于提取特征;而反卷积主要用于将特征图尺寸扩大,实现上采样。虽然反卷积看上去像是正向卷积的逆运算,但它只能还原原始图像的尺寸不能真的恢复原始图像内容,即输出特征图的每个元素值与原始输入图像对应位置的元素值是不一样的。
    在这里插入图片描述
http://www.lryc.cn/news/586558.html

相关文章:

  • 粒子滤波|粒子滤波的相关算法理论介绍
  • 内容总监的效率革命:用Premiere Pro AI,实现视频画幅“一键重构”
  • 菜鸟的C#学习(二)
  • 直播录屏技术揭秘:以抖音直播录屏为例
  • 系统性学习C语言-第十五讲-深入理解指针(5)
  • 【华为OD】MVP争夺战2(C++、Java、Python)
  • JVM--虚拟线程
  • 数据结构之并查集和LRUCache
  • STP生成树划分实验
  • 飞算JavaAI:重新定义Java开发效率的智能引擎
  • 【机器学习实战笔记 16】集成学习:LightGBM算法
  • Waiting for server response 和 Content Download
  • 【离线数仓项目】——电商域DWS层开发实战
  • BugBug.io 使用全流程(202507)
  • 计算机毕业设计Java停车场管理系统 基于Java的智能停车场管理系统开发 Java语言实现的停车场综合管理平台
  • STM32中的RTC(实时时钟)详解
  • 《Spring 中上下文传递的那些事儿》Part 8:构建统一上下文框架设计与实现(实战篇)
  • 利用docker部署前后端分离项目
  • 【攻防实战】记一次DC2攻防实战
  • 电网失真下单相锁相环存在的问题
  • CANoe实操学习车载测试课程、独立完成CAN信号测试
  • Spring Boot整合MyBatis+MySQL+Redis单表CRUD教程
  • 前端面试宝典---项目难点2-智能问答对话框采用虚拟列表动态渲染可视区域元素(10万+条数据)
  • 快速排序递归和非递归方法的简单介绍
  • Armstrong 公理系统深度解析
  • 人机协作系列(三)个体创业者的“新物种革命”
  • Agent任务规划
  • 分布式系统高可用性设计 - 缓存策略与数据同步机制
  • PostgreSQL安装及简单应用
  • 后端定时过期方案选型