VGG16 - 用于分类和检测的卷积网络

article/2025/8/30 5:14:08

vgg16

VGG16是由牛津大学的K. Simonyan和A. Zisserman在“用于大规模图像识别的非常深卷积网络”的论文中提出的卷积神经网络模型。 该模型在ImageNet中实现了92.7%的前5个测试精度,这是属于1000个类的超过1400万张图像的数据集。它是ILSVRC-2014提交的着名模型之一。它通过一个接一个地用多个3×3内核大小的过滤器替换大型内核大小的过滤器(分别在第一个和第二个卷积层中为11和5)来改进AlexNet。VGG16训练了几周,并使用NVIDIA Titan Black GPU。

 

vgg16架构

 

数据集

ImageNet是一个超过1500万个标记的高分辨率图像的数据集,属于大约22,000个类别。这些图像是从网上收集的,并由人类贴标机使用亚马逊的Mechanical Turk众包工具进行标记。从2010年开始,作为Pascal视觉对象挑战赛的一部分,举办了名为ImageNet大规模视觉识别挑战赛(ILSVRC)的年度比赛。ILSVRC使用ImageNet的一个子集,在1000个类别中分别拥有大约1000个图像。总之,大约有120万个训练图像,50,000个验证图像和150,000个测试图像。ImageNet由可变分辨率图像组成。因此,图像已被下采样到256×256的固定分辨率。给定矩形图像,图像被重新缩放并从结果图像中裁剪出中心256×256色块。

架构

下面描述的架构是VGG16。

VGG16 Artitecture

VGG16架构

cov1层的输入是固定大小的224 x 224 RGB图像。图像通过一堆卷积(转换)层,其中滤镜使用非常小的感受野:3×3(这是捕捉左/右,上/下,中心概念的最小尺寸)。在其中一种配置中,它还使用1×1卷积滤波器,可以看作是输入通道的线性变换(后面是非线性)。卷积步幅固定为1个像素; 转换的空间填充。层输入使得在卷积之后保留空间分辨率,即,对于3×3转换,填充是1像素。层。空间池由五个最大池组执行,这些层跟随一些转换。图层(并非所有转换图层都跟随最大池)。最大池化在2×2像素窗口上执行,

三个完全连接(FC)层跟随一堆卷积层(在不同架构中具有不同的深度):前两个每个具有4096个通道,第三个执行1000路ILSVRC分类,因此包含1000个通道(每个一个类)。最后一层是soft-max层。全连接层的配置在所有网络中都是相同的。

所有隐藏层都配备有整流(ReLU)非线性。还注意到,没有一个网络(除了一个)包含本地响应标准化(LRN),这种标准化不会改善ILSVRC数据集的性能,但会导致内存消耗和计算时间增加。

配置

ConvNet配置如图02所示。网络的名称(AE)。所有配置均遵循架构中存在的通用设计,仅在深度上有所不同:从网络A中的11个权重层(8个转换层和3个FC层)到网络E中的19个权重层(16个转换层和3个FC层) 。转的宽度。层(通道数)相当小,从第一层中的64开始,然后在每个最大池层之后增加2倍,直到达到512。

图:2

用例和实施

不幸的是,VGGNet有两个主要缺点:

  1. 这是  痛苦的缓慢  训练。
  2. 网络体系结构权重本身非常大(涉及磁盘/带宽)。

由于其全部连接节点的深度和数量,VGG16超过533MB。这使得部署VGG成为一项令人厌烦的任务.VGG16用于许多深度学习图像分类问题; 但是,较小的网络架构通常更为理想(例如SqueezeNet,GoogLeNet等)。但它是一个很好的学习目标,因为它很容易实现。

[ Pytorch ]

[ Tensorflow ]

[ Keras ]

结果

VGG16在ILSVRC-2012和ILSVRC-2013竞赛中明显优于上一代机型。VGG16的结果也在争夺分类任务获胜者(GoogLeNet的误差为6.7%),并且大大优于ILSVRC-2013获胜提交的Clarifai,其中外部培训数据达到11.2%,没有它的11.7%。关于单网性能,VGG16架构实现了最佳结果(7.0%测试错误),优于单个GoogLeNet 0.9%。

 

 

已经证明,表示深度有利于分类准确性,并且可以使用具有显着增加的深度的传统ConvNet架构来实现ImageNet挑战数据集上的最新性能。


http://chatgpt.dhexx.cn/article/xuyF7REh.shtml

相关文章

VGG-16网络结构详解

VGG,又叫VGG-16,顾名思义就是有16层,包括13个卷积层和3个全连接层,是由Visual Geometry Group组的Simonyan和Zisserman在文献《Very Deep Convolutional Networks for Large Scale Image Recognition》中提出卷积神经网络模型&…

经典卷积神经网络——VGG16

VGG16 前言一、VGG发展历程二、VGG网络模型三、VGG16代码详解1.VGG网络架构2.VGG16网络验证2.读取数据,进行数据增强3.训练模型,测试准确率 四、VGG缺点 前言 我们都知道Alexnet是卷积神经网络的开山之作,但是由于卷积核太大,移动…

VGG16网络模型的原理与实现

VGG 最大的特点就是通过比较彻底地采用 3x3 尺寸的卷积核来堆叠神经网络,这样也加深整个神经网络的深度。这两个重要的改变对于人们重新定义卷积神经网络模型架构也有不小的帮助,至少证明使用更小的卷积核并且增加卷积神经网络的深度,可以更有…

深度学习——VGG16模型详解

1、网络结构 VGG16模型很好的适用于分类和定位任务,其名称来自牛津大学几何组(Visual Geometry Group)的缩写。 根据卷积核的大小核卷积层数,VGG共有6种配置,分别为A、A-LRN、B、C、D、E,其中D和E两种是最…

RK3399平台开发系列讲解(PCI/PCI-E)5.54、PCIE INTx中断机制

文章目录 一、PCIe中断过程二、PCIE 控制器支持的中断三、PCIE 控制器注册中断四、PCIe设备中断号分配沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章将介绍RK3399平台PCIE总线中断INTx相关内容。 一、PCIe中断过程 层级结构为:PCIe设备 => PCIe控制器 =&g…

RK3399—中断

中断是操作系统最常见的事件之一,无论是系统层的“软中断”还是CPU底层的“硬中断”都是编程时常用的。中断的作用之一是充分利用CPU资源,正常情况下,CPU执行用户任务,当外设触发中断产生时,CPU停止当前任务&#xff0…

基于RK3399分析Linux系统下的CPU时钟管理 - 第3篇

1. 时钟系统结构 rockchip的时钟系统代码位于drivers/clk/rockchip,目录整体结构如下: ├── rockchip │ ├── clk.c---------------时钟系统注册 │ ├── clk-cpu.c-----------CPU调频 │ ├── clk-ddr.c-----------DDR调频 │ ├──…

基于RK3399+PID的手持稳定云台的设计与实现

手持稳定云台的主要作用是将外界环境因数引起的相机姿态变化进行隔离。如因操作者运动造成的机体震动、风阻力矩等,为了确保工作中相机的视轴始终保持期望的姿态不动。云台相机要拍摄出高质量的影像最重要的就是保证相机的视轴相对目标保持稳定。因此在相机拍摄的过…

RK3399学习

RK3399学习 韦东山rk3399:http://dev.t-firefly.com/forum-460-1.html firefly官网教程:http://wiki.t-firefly.com/zh_CN/Firefly-RK3399/started.html firefly官网3399资料:http://dev.t-firefly.com/forum-263-1.html 100ask 3399-pc教…

RK3399平台开发系列讲解(内核入门篇)1.53、platform平台设备

🚀返回专栏总目录 文章目录 一、设备配置-非设备树1.1、资源1.2、平台数据1.3、声明平台设备二、设备配置 - DTS沉淀、分享、成长,让自己和他人都能有所收获!😄 📢平台设备在内核中表示为struct platform_device的实例。 有两种方法可以把有关设备所需的资源(IRQ、DMA…

RK3399 Android7.1 编译

RK3399 Android7.1 编译 文章目录 RK3399 Android7.1 编译前言设置 Linux 编译环境安装 JDK可选- 更新默认的 Java 版本 安装所需的程序包(Ubuntu 14.04) 下载 Android SDK 前言 RK官网编译 Android搭建编译环境 设置 Linux 编译环境 使用的环境Linux 16.0.4 安装 JDK 如…

基于RK3399+5G的医用视频终端设计

当前在各种先进的信息通信技术的驱动下,医疗行业已呈现出信息化、移动化、智能化的发展趋势。特别是 5G 通信技术的落地应用推动了智慧医疗行业的 蓬勃发展,涌现出大量基于 5G 技术的医疗健康应用与服务,进一步融合了 5G 、 物联网与大数据…

RK3399平台开发系列讲解(PCI/PCI-E)PCIE相关配置说明

🚀返回专栏总目录 文章目录 一、DTS 配置二、menuconfig 配置三、cmdline 配置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将介绍在使用 RK3399 平台 PCIE 时候的配置。 一、DTS 配置 ep-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 此项是设置 PCIe…

RK3399快速上手 | 02-rockchip rk3399 linux sdk的使用(编译内核、编译uboot)

更新时间更新内容2022-09-15增加内核编译方法2022-10-21增加uboot编译方法和sdk开发版配置链路分析一、sdk区别 瑞芯微提供了两套sdk,一套是通过官方git仓库释放,适合于项目使用,另一套是通过github释放,适合于爱好者。 本文中使用从瑞芯微官方释放的正式linux sdk 2.7版…

RK3399平台开发系列讲解(中断篇)中断控制器驱动初始化

🚀返回专栏总目录 文章目录 一、设备树源文件1.1、gic控制器节点1.2、timer节点二、中断控制器匹配表三、中断控制器初始化3.1、函数of_irq_init3.2、函数gicv3_of_init3.3、函数gic_init_bases沉淀、分享、成长,让自己和他人都能有所收获!😄 一、设备树源文件 ARM64架构…

RK3399平台开发系列讲解(内存篇)15.34、 Linux 进程内存布局

🚀返回专栏总目录 文章目录 一、抽象内存布局二、32位机器 Linux 进程内存布局三、64位机器 Linux 进程内存布局沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 我们一起来看下进程内部的虚拟内存布局,或者说单一进程是如何安排自己的各种数据的。 一、抽象内存布…

RK3399平台开发系列讲解(内核调试篇)2.50、嵌入式产品启动速度优化

平台内核版本安卓版本RK3399Linux4.4Android7.1🚀返回专栏总目录 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢启动速度是嵌入式产品一个重要的性能指标,更快的启动速度会让客户有更好的使用体验,在某些方面还会节省能耗,因为可以直接关机而不需要休眠。 启动速…

钉钉F1 RK3399 咸鱼80元板子使用记录

1.简单介绍 12V电源&#xff0c;建议2A&#xff0c; 默认插电不开机&#xff0c;有大佬找到金属罩下的焊盘&#xff0c;短接可上电开机。 在usb旁边的旁边有个端子接口&#xff0c;短接就可以开机&#xff0c;建议找个一样大的接口接个开关&#xff0c;到目前为止还未测试需要…

RK3399平台开发系列讲解(网络篇)7.38、网卡驱动程序数据结构

平台内核版本安卓版本RK3399Linux4.4Android7.1🚀返回专栏总目录 文章目录 一、套接字缓冲区结构:sk_buff二、网络接口结构:net_device沉淀、分享、成长,让自己和他人都能有所收获!😄 📢处理网卡设备时需要使用两种数据结构。 struct sk_buff结构在include/linux/skb…

RK3399平台开发系列讲解(中断篇)中断控制器(Generic Interrupt Controller)

🚀返回专栏总目录 文章目录 一、GIC硬件的实现形态二、主要的功能块三、中断类型四、中断状态沉淀、分享、成长,让自己和他人都能有所收获!😄 📢外围设备不是把中断请求直接发给处理器,而是发给中断控制器,由中断控制器转发给处理器。ARM公司提供了一种标准的中断控制…