基于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.mzph.cn/news/67905.shtml

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

相关文章

系统错误码指示确立+日志模块手动配置

1,系统错误码指示确立 对于前后端分离的系统设计中,后端建立错误码指示对于前端非常重要可以指示错误存在地方;以用户注册为例; public interface SystemCode{int SYSTEM_USER_ERROR_ADD_FAIL 10000;int SYSTEM_USER_INFO_ADD …

Miniconda3环境迁移

问题: conda之前安装的默认路径空间满了没法进行安装,为此将其进行迁移,但是迁移之后报错 bash: /data/anaconda3/bin/conda: /home/anaconda3/bin/python: 坏的解释器: 没有那个文件或目录解决方案: 1、修改~/.bashrc中的环境…

B093-springsecurity整合jwt和RSA

目录 前后端分离后springsecurity核心filter的应用场景介绍JWT令牌的组成部分JWT案例导包TestJwt RSARsaUtilsTestRSA分析图 JWTRSA导包JwtUtilsTestRSAJWT 完善spring-security整合后且不连数据库的代码案例流程分析图 前后端分离后springsecurity核心filter的应用场景介绍 账…

15 验证差分时钟输入转单端

供给FPGA的时钟有单端时钟,也有差分时钟,当输入是差分时钟时,需要将差分时钟转换为单端时钟输出来作为FPGA的系统工作时钟。 本次使用锁相环来实现差分到单端时钟的转换。 FPGA代码实现如下: TOP层 timescale 1ns / 1ps // // …

Java设计模式:四、行为型模式-09:模板模式

文章目录 一、定义:模板模式二、模拟场景:模板模式三、改善代码:模板模式3.0 引入依赖3.1 工程结构3.2 模板模式结构图3.3 爬取商品生成海报实现3.3.1 HTTP获取连接类3.3.2 定义执行顺序的抽象类3.3.3 当当爬取抽象实现类3.3.4 京东爬取抽象实…

分享2款微课录制软件,保证让你满意!

“录微课用什么软件呀,真的服了,平台自带的录屏画质太差了,完全看不清讲的内容,而且音质也不是很好,大家有没有微课录制的软件推荐,谢谢啦” 随着教育方式的转型和技术的发展,微课程成为了一种…

【面试经典150题】跳跃游戏

题目链接 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 1 < nums…

422规范详解

概述&#xff1a; 全称为EIA-TIA-422-B&#xff0c;于1994年发布。 典型电路由一个发送器和N个接收器以及一个中断匹配电阻组成。 发送器&#xff1a; 差分输出电压值在2V~10V之间。 4.1.1 发送器输出阻抗 要求A/B之间的差分阻抗≤100Ω。 4.1.2 开路特性 要求差分电压≤…

Ansible 常用命令50条

以下是 Ansible 常用的 50 条命令&#xff1a; ansible --version: 查看 Ansible 版本信息。ansible all -m ping: 检查所有主机的连通性。ansible-playbook playbook.yml: 运行指定的 Ansible Playbook 文件。ansible-doc module_name: 查看指定模块的帮助文档。ansible-conf…

Hadoop服务脚本

#!/bin/bash process("NameNode" "SecondaryNameNode" "DataNode" "NodeManager" "ResourceManager") JAVA_HOME"/opt/software/jdk1.8.0_371" HADOOP_HOME"/opt/software/hadoop-3.3.6"# 定义颜色的AN…

从过滤器初识责任链设计模式

下面用的过滤器都是注解方式 可以使用非注解方式,就是去web.xml配置映射关系 上面程序的执行输出是 再加一个过滤器 下面来看一段程序 输出结果 和过滤器是否非常相识 但是上面这段程序存在的问题:在编译阶段已经完全确定了调用关系,如果你想改变他们的调用顺序或者继续添加一…

时序预测 | MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络时间序列预测

时序预测 | MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络时间序列预测 目录 时序预测 | MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神经网络时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.MATLAB实现TCN-BiLSTM时间卷积双向长短期记忆神…

淘宝API接口:提高电商运营效率与用户体验的利器(淘宝API接口使用指南)

淘宝API接口&#xff1a;提高电商运营效率与用户体验的利器 随着电商行业的快速发展&#xff0c;淘宝作为国内最大的电商平台之一&#xff0c;不断探索和创新&#xff0c;以满足不断变化的用户需求和商家需求。其中&#xff0c;淘宝API接口便是其创新的一个重要方面。本文将深…

【代码实现】DETR原文解读及代码实现细节

1 模型总览 宏观上来说&#xff0c;DETR主要包含三部分&#xff1a;以卷积神经网络为主的骨干网&#xff08;CNN Backbone&#xff09;、以TRM(Transformer)为主的特征抽取及交互器以及以FFN为主的分类和回归头&#xff0c;如DETR中build()函数所示。DETR最出彩的地方在于&…

[羊城杯 2020] easyphp

打开题目&#xff0c;源代码 <?php$files scandir(./); foreach($files as $file) {if(is_file($file)){if ($file ! "index.php") {unlink($file);}}}if(!isset($_GET[content]) || !isset($_GET[filename])) {highlight_file(__FILE__);die();}$content $_GE…

Spring 6.0和SpringBoot 3.0新特性

目录 主要更新内容是以下几个&#xff1a; AOT编译 Spring Native GraalVM SpringBoot3生成二进制可执行文件底层流程 主要更新内容是以下几个&#xff1a; A Java 17 baselineSupport for Jakarta EE 10 with an EE 9 baselineSupport for generating native images with…

Vue项目中处理key=value格式的数据-案例

返回值 {qrCode: expiredAt1693821779265&token449d599830b8486a9c7b15e0bc3f036c, listenUri: wss://ws.abcdtest.link/?token0f63c64883ed7ea338e100a28946aba654165ad0f} expiredAt1693821779265&token449d599830b8486a9c7b15e0bc3f036c 需要处理上面的字符串 co…

独家!微信正在灰测一款全新消金产品

来源 | 镭射财经&#xff08;leishecaijing&#xff09; 「镭射财经」独家获悉&#xff0c;微信将推出一款名为“微信分期”的新消费信贷产品&#xff0c;目前该产品正处于小范围灰测阶段&#xff0c;还未正式上线。上线后&#xff0c;微信将运营微信分付和微信分期两款自营消…

【Sentinel】核心API-Entry与Context

文章目录 一、Entry1、Entry的声明2、使用API自定义资源3、基于SentinelResource注解标记资源 二、Context1、Context介绍2、Context的初始化3、AbstractSentinelInterceptor4、ContextUtil 一、Entry 1、Entry的声明 默认情况下&#xff0c;Sentinel会将controller中的方法作…

python 基于http方式与基于redis方式传输摄像头图片数据的实现和对比

目录 0. 需求1. 基于http方式传递图片数据1.1 发送图片数据1.2 接收图片数据并可视化1.3 测试 2. 基于redis方式传递图片数据2.1 发送图片数据2.2 接收图片数据并可视化2.3 测试 3. 对比 0. 需求 在不同进程或者不同语言间传递摄像头图片数据&#xff0c;比如从java实现的代码…