基于Vgg-Unet模型自动驾驶场景检测

1.VGG

VGG全称是Visual Geometry Group属于牛津大学科学工程系,其发布了一些列以VGG开头的卷积网络模型,可以应用在人脸识别、图像分类等方面,VGG的输入被设置为大小为224x244的RGB图像。为训练集图像上的所有图像计算平均RGB值,然后将该图像作为输入输入到VGG卷积网络。使用3x3或1x1滤波器,并且卷积步骤是固定的。有3个VGG全连接层,根据卷积层+全连接层的总数,可以从VGG11到VGG19变化。最小VGG11具有8个卷积层和3个完全连接层。最大VGG19具有16个卷积层+3个完全连接的层。此外,VGG网络后面没有每个卷积层后面的池化层,也没有分布在不同卷积层下的总共5个池化层。
结构图如下:
在这里插入图片描述
架构图
在这里插入图片描述

2.Unet模型:

Unet是一个优秀的语义分割模型,其主要执行过程与其它语义分割模型类似。与CNN不同的之处在于CNN是图像级的分类,而unet是像素级的分类,其输出的是每个像素点的类别
在这里插入图片描述

主要代码如下:

def get_vgg_encoder(input_height=224,  input_width=224, channels=3):if channel == 'channels_first':img_input = Input(shape=(channels, input_height, input_width))elif channel == 'channels_last':img_input = Input(shape=(input_height, input_width, channels))x = Conv2D(64, (3, 3), activation='relu', padding='same',name='block1_conv1', data_format=channel)(img_input)x = Conv2D(64, (3, 3), activation='relu', padding='same',name='block1_conv2', data_format=channel)(x)x = MaxPooling2D((2, 2), strides=(2, 2), name='block1_pool',data_format=channel)(x)f1 = x# Block 2x = Conv2D(128, (3, 3), activation='relu', padding='same',name='block2_conv1', data_format=channel)(x)x = Conv2D(128, (3, 3), activation='relu', padding='same',name='block2_conv2', data_format=channel)(x)x = MaxPooling2D((2, 2), strides=(2, 2), name='block2_pool',data_format=channel)(x)f2 = x# Block 3x = Conv2D(256, (3, 3), activation='relu', padding='same',name='block3_conv1', data_format=channel)(x)x = Conv2D(256, (3, 3), activation='relu', padding='same',name='block3_conv2', data_format=channel)(x)x = Conv2D(256, (3, 3), activation='relu', padding='same',name='block3_conv3', data_format=channel)(x)x = MaxPooling2D((2, 2), strides=(2, 2), name='block3_pool',data_format=channel)(x)f3 = x# Block 4x = Conv2D(512, (3, 3), activation='relu', padding='same',name='block4_conv1', data_format=channel)(x)x = Conv2D(512, (3, 3), activation='relu', padding='same',name='block4_conv2', data_format=channel)(x)x = Conv2D(512, (3, 3), activation='relu', padding='same',name='block4_conv3', data_format=channel)(x)x = MaxPooling2D((2, 2), strides=(2, 2), name='block4_pool',data_format=channel)(x)f4 = x# Block 5x = Conv2D(512, (3, 3), activation='relu', padding='same',name='block5_conv1', data_format=channel)(x)x = Conv2D(512, (3, 3), activation='relu', padding='same',name='block5_conv2', data_format=channel)(x)x = Conv2D(512, (3, 3), activation='relu', padding='same',name='block5_conv3', data_format=channel)(x)x = MaxPooling2D((2, 2), strides=(2, 2), name='block5_pool',data_format=channel)(x)f5 = xreturn img_input, [f1, f2, f3, f4, f5]def _unet(classes, encoder, l1_skip_conn=True, input_height=416,input_width=608, channels=3):img_input, levels = encoder(input_height=input_height, input_width=input_width, channels=channels)[f1, f2, f3, f4, f5] = levelso = f4o = (ZeroPadding2D((1, 1), data_format=channel))(o)o = (Conv2D(512, (3, 3), padding='valid' , activation='relu' , data_format=channel))(o)o = (BatchNormalization())(o)o = (UpSampling2D((2, 2), data_format=channel))(o)o = (concatenate([o, f3], axis=-1))o = (ZeroPadding2D((1, 1), data_format=channel))(o)o = (Conv2D(256, (3, 3), padding='valid', activation='relu' , data_format=channel))(o)o = (BatchNormalization())(o)o = (UpSampling2D((2, 2), data_format=channel))(o)o = (concatenate([o, f2], axis=-1))o = (ZeroPadding2D((1, 1), data_format=channel))(o)o = (Conv2D(128, (3, 3), padding='valid' , activation='relu' , data_format=channel))(o)o = (BatchNormalization())(o)o = (UpSampling2D((2, 2), data_format=channel))(o)if l1_skip_conn:o = (concatenate([o, f1], axis=-1))o = (ZeroPadding2D((1, 1), data_format=channel))(o)o = (Conv2D(64, (3, 3), padding='valid', activation='relu', data_format=channel, name="seg_feats"))(o)o = (BatchNormalization())(o)o = Conv2D(classes, (3, 3), padding='same',data_format=channel)(o)model = get_segmentation_model(img_input, o)return model

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

指针-矩阵变换

任务描述 给定一个矩阵,请编程将其按照以下约定的操作方式变换后输出。 相关知识 参考之前的关卡。 编程要求 根据提示,在右侧编辑器的Begin-End区域内补充代码。 测试说明 输入:第一行三个正整数 n,m 和 q 分别表示矩阵 A…

深入探究数据结构与算法:构建强大编程基础

文章目录 1. 为什么学习数据结构与算法?1.1 提高编程技能1.2 解决复杂问题1.3 面试准备1.4 提高代码效率 2. 学习资源2.1 经典教材2.2 在线学习平台2.3 学习编程社区 3. 数据结构与算法的实际应用3.1 排序算法3.2 图算法3.3 字符串匹配算法 4. 结论 🎉欢…

企业架构LNMP学习笔记26

通过Keepalived可以实现主服务器整机不可用,实现VIP的切换。保证用户可以通过VIP进行访问服务。但是实际上,往往不是服务器整机不可用,只是对应的服务或者软件不可用。 比如说,nginx提供的web的服务,nginx进程关闭。 …

3D印刷电路板在线渲染查看工具

从概念上讲,这是有道理的,因为PCB印制电路板上的走线从一个连接到下一个连接的路线基本上是平面的。 然而,我们生活在一个 3 维世界中,能够以这种方式可视化电路以及相应的组件,对于设计过程很有帮助。本文将介绍KiCad…

Unity设置TextMeshPro文本超出范围显示...

TextMtshPro文本超出范围,展示省略。选择Overflow为Ellipsis。

Redis缓存预热、缓存雪崩、缓存击穿、缓存穿透

文章目录 Redis缓存预热、缓存雪崩、缓存击穿、缓存穿透一、缓存预热1、问题排查2、解决方案(1)准备工作(2)实施(3)总结 二、缓存雪崩1、解决方案 三、缓存击穿1、解决方案(1)互斥锁…

2023数学建模国赛B题完整论文来啦!(含一二问求解代码及三四问仿真模拟代码)

大家好呀,从昨天发布赛题一直到现在,总算完成了全国大学生数学建模竞赛B题完整的成品论文。 本论文可以保证原创,保证高质量。绝不是随便引用一大堆模型和代码复制粘贴进来完全没有应用糊弄人的垃圾半成品论文。 说实话团队通宵一直到现在做…

Matlab 如何选择采样频率和信号长度

Matlab 如何选择采样频率和信号长度 1、概述 在实际信号分析中经常会遇到要分辨出频率间隔为 的两个分量,在这种情形中如何选择采样频率和信号的长度呢? 2、案例分析 设有一个信号由三个正弦信号组成,其频率分别为 ,即&#xf…

合宙Air724UG LuatOS-Air LVGL API控件-图片 (Image)

图片 (Image) 图片IMG是用于显示图像的基本对象类型,图像来源可以是文件,或者定义的符号。 示例代码 -- 创建图片控件 img lvgl.img_create(lvgl.scr_act(), nil) -- 设置图片显示的图像 lvgl.img_set_src(img, "/lua/luatos.png") -- 图片…

2023国赛数学建模C题思路代码 - 蔬菜类商品的自动定价与补货决策

# 1 赛题 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此, 商超通常会根据各商品的历史销售和需 求情况每天进行补货。 由于商超销售的蔬菜…

中科驭数携DPU系列创新产品亮相2023服贸会

9月2日至6日,由商务部、北京市政府主办的2023年中国国际服务贸易交易会(简称“服贸会”)在北京举行。在电信、计算机和信息服务专题展馆,中科驭数等一批国家专精特新“小巨人”携最新数据处理器DPU亮相,展示了多项创新…

【LeetCode75】第五十题 无限集中的最小数字

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 这是我们在LeetCode75里遇到的第二道设计类题目,难度比上一次的设计题目要难上一些。 题目假设我们拥有一个从1开始的无限集…

跨境电商产业链,服务商的“霸道”你见识过吗?(测评补单)

跨境电商行业的服务商众多,涉及到从前期培训和店铺注册准备到中期选品软件、营销服务、流量投放和支付等多个环节。然而,行业乱象也日益严重,出现了一些不良现象,如恶意竞争、高价要求、割韭菜等。 卖家在选择服务商时应谨慎&…

Matlab图像处理-最大类间方差阈值选择法(Otsu)

基本思想 最大类间方差阈值选择法又称为Otsu 算法,该算法是在灰度直方图的基础上用最小二乘法原理推导出来的,具有统计意义上的最佳分割阈值。它的基本原理是以最佳阈值将图像的灰度直方图分割成两部分,使两部分之间的方差取得最大值&#x…

win10/11安裝時 OOBE強制跳過登入Microsoft賬戶

Windows11官方正式版ISO,目前版本号为22621.963,微软维持每个月发布一次ISO的节奏。每周还会有一些补丁在线推送,目前更新到了22621.1105。同时,还有Beta和Dev通道推送预览版。Dev通道的更为激进还不稳定,目前版本号为…

安装SAPGUI 8.0

SAP_GUI_for_Windows_8.00_Comp.64\PRES1\GUI\Windows\Win64

苹果计划2024年AirPods引入新接口,后续升级体温测量、听力测试

据彭博社马克・古尔曼(Mark Gurman)报道,苹果公司计划在最早2024年为其旗舰无线耳机AirPods和AirPods Max引入USB-C端口,并试图将其所有基于Lightning接口的配件改用USB-C接口。 据古尔曼表示,AirPods Pro将率先改用新…

Docker部署Springboot项目

Docker部署Springboot项目 在学习的若依的过程中,想尝试学习使用Docker实现SpringBoot项目的部署,于是实践如下: 项目打包完成后,放到服务器的目录结构如下: cd / mkdir ruoyidockerfile文件内容 笔者这里是配置读取…

微信小程序的开发---tabBar的介绍

目录 一、tabBar的介绍 二、tabBar的6个组成部分 三、tabBar节点的配置项 四、tab项的配置选项 五、tabBar的使用 一、tabBar的介绍 tabBar是移动端应用常见的页面效果,用于实现多页面的快速切换。小程序中通常将其分为: (1)…

企业架构LNMP学习笔记3

服务器基本环境配置: 1、安装虚拟机,centos7.9 操作系统; 2、网络配置; 3、机器名FQDN设置; 4、DNS解析设置,本地hosts设置; 5、配置yum源环境; 6、vim安装配置; …