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

网站建设需求 百度文库礼品公司网站模板

网站建设需求 百度文库,礼品公司网站模板,东阳网站优化,模板网站建设套餐目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建1#xff09;VGG模型简化版2#xff09;GoogLeNet简化版——MiniGoogLeNet 3. 模型训练及保存 相关其它博客工程源代码下载其它资料下载 前言 本项目专注于解决出国自驾游特定场景下的交… 目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建1VGG模型简化版2GoogLeNet简化版——MiniGoogLeNet 3. 模型训练及保存 相关其它博客工程源代码下载其它资料下载 前言 本项目专注于解决出国自驾游特定场景下的交通标志识别问题。借助Kaggle上的丰富交通标志数据集我们采用了VGG和GoogLeNet等卷积神经网络模型进行训练。通过对网络架构和参数的巧妙调整致力于提升模型在不同类型交通标志识别方面的准确率。 首先我们选择了Kaggle上的高质量交通标志数据集以确保训练数据的多样性和丰富性。接着采用VGG和GoogLeNet等先进的卷积神经网络模型这些模型在图像分类任务上表现卓越。 通过巧妙的网络架构和参数调整本项目致力于提高模型的准确率。我们深入研究了不同交通标志的特征使网络更有针对性地学习这些特征从而增强模型在复杂场景下的泛化能力。 最终本项目旨在为出国自驾游的用户提供一个高效而准确的交通标志识别系统以提升驾驶安全性和用户体验。这一创新性的解决方案有望在自动驾驶和智能导航等领域产生深远的影响。 总体设计 本部分包括系统整体结构图和系统流程图。 系统整体结构图 系统整体结构如图所示。 系统流程图 系统流程如图所示。 运行环境 本部分包括 Python 环境、Anaconda环境。 详见博客。 模块实现 本项目包括3个模块数据预处理、模型构建、模型训练及保存。下面分别给出各模块的功能介绍及相关代码。 1. 数据预处理 本项目使用德国交通标志识别基准数据集(GTSRB)此数据集包含50000张在各种环境下拍摄的交通标志图像下载地址为https://www.kaggle.com/datasets/meowmeowmeowmeowmeow/gtsrb-german-traffic-sign。数据集下载完成后,导入数据并进行预处理。 详见博客。 2. 模型构建 本部分包括VGG模型和GoogLeNet模型简化版。 1VGG模型简化版 通过测试各种简化版模型发现多减少网络的深度(卷积层、池化层、全连接层的层数)少减少网络的宽度(卷积层输出通道数)效果更好。由于本项目的图像尺寸较小此版模型的卷积层输出通道数只减少为VGG-11的一半。输入图像经过3个卷积层、2个最大池化层、1个全连接层和1个Softmax层。卷积层的步幅为1通过填充使输出的宽和高与输入相同前2个卷积层调整为5×5最后一个卷积层保持3×3不变3个卷积层的输出通道数依次为32、64和64。2个最大池化层分别位于第2和第3个卷积层后池化窗口均为2×2步幅为2无填充使输出的宽和高减半每个最大池化层后接一个参数为0.25的Dropout层防止过拟合。最后是一个输出通道数为256的全连接层和1个Softmax层全连接层后接1个参数为0.5的Dropout层防止过拟合。 相关代码如下 #导入需要的包 from tensorflow.keras.models import Sequential from tensorflow.keras.layers import BatchNormalization from tensorflow.keras.layers import Conv2D from tensorflow.keras.layers import MaxPooling2D from tensorflow.keras.layers import Activation from tensorflow.keras.layers import Flatten from tensorflow.keras.layers import Dropout from tensorflow.keras.layers import Dense class VGGN:def build(width, height, depth, classes):#使用Keras框架的Sequential模式编写代码model Sequential()inputShape (height, width, depth)chanDim -1#卷积核大小为5*5步幅为1输出通道数32填充使得输出的宽和高与输入相同model.add(Conv2D(32, (5, 5), paddingsame,input_shapeinputShape))#Relu激活函数批量归一化model.add(Activation(relu))model.add(BatchNormalization(axischanDim)) #卷积核大小为5*5步幅为1输出通道数64填充使得输出的宽和高与输入相同 model.add(Conv2D(64, (5, 5), paddingsame))model.add(Activation(relu))model.add(BatchNormalization(axischanDim))#池化窗口为2*2步幅为2不填充输出的宽和高减半变为16*16model.add(MaxPooling2D(pool_size(2, 2)))#最大池化层后接一个参数为0.25的Dropout层防止过拟合model.add(Dropout(0.25))#卷积核大小为3*3步幅为1输出通道数64填充使得输出的宽和高与输入相同model.add(Conv2D(64, (3, 3), paddingsame))model.add(Activation(relu))model.add(BatchNormalization(axischanDim))#池化窗口为2*2的最大池化层步幅为2不填充输出的宽和高减半变为8*8model.add(MaxPooling2D(pool_size(2, 2)))#最大池化层后接一个参数为0.25的Dropout层防止过拟合model.add(Dropout(0.25))model.add(Flatten())#输出通道数为256的全连接层model.add(Dense(256))model.add(Activation(relu))model.add(BatchNormalization())#全连接层后接一个参数为0.5的Dropout层防止过拟合model.add(Dropout(0.5))#最后是一个softmax层输出各类别的概率model.add(Dense(classes))model.add(Activation(softmax)) return model2GoogLeNet简化版——MiniGoogLeNet MiniGoogLeNet由Inception模块、Downsample模块和卷积模块组成卷积模块包括卷积层、激活函数和批量归一化Inception模块由两个卷积核大小分别为1×1和3×3的卷积模块并联组成这两个卷积模块都通过填充使输入输出的高和宽相同便于通道合并Downsample模块由一个卷积核大小为3×3的卷积模块和一个池化窗口为3×3的最大池化层并联组成卷积模块和最大池化层不填充步幅均为2使得输入经过后宽和高减半。MiniGoogLeNet的输入图片经过一个卷积模块后输出通道数不同的Inception模块最后是一个全局平均池化层和一个Softmax层全局平均池化层将每个通道的高和宽变为1有效地减少了过拟合。 相关代码如下 #导入需要的包 from tensorflow.keras.layers import BatchNormalization from tensorflow.keras.layers import Conv2D from tensorflow.keras.layers import AveragePooling2D from tensorflow.keras.layers import MaxPooling2D from tensorflow.keras.layers import Activation from tensorflow.keras.layers import Dropout from tensorflow.keras.layers import Dense from tensorflow.keras.layers import Flatten from tensorflow.keras.layers import Input from tensorflow.keras.models import Model from tensorflow.keras.layers import concatenate from tensorflow.keras import backend as K class MiniGoogLeNet:#定义卷积模块x表示输入数据K表示输出通道的数量KX、KY表示卷积核的大小def conv_module(x,K,KX,KY,stride,chanDim,paddingsame):#卷积激活函数批量归一化默认填充使得输出的宽和高不变x Conv2D(K, (KX, KY), stridesstride, paddingpadding)(x)x Activation(relu)(x)x BatchNormalization(axischanDim)(x)return x#定义Inception模块x表示输入数据,numK1_1,numK3_3表示两个卷积模块输出通道数量def inception_module(x,numK1_1,numK3_3,chanDim):#并联的两个卷积模块卷积核大小分别为1*1和3*3conv1_1MiniGoogLeNet.conv_module(x,numK1_1,1,1,(1,1),chanDim) conv3_3MiniGoogLeNet.conv_module(x,numK3_3,3,3,(1,1),chanDim) xconcatenate([conv1_1,conv3_3],axischanDim)return x#定义Downsample模块x表示输入数据K表示卷积模块的输出通道数def downsample_module(x,K,chanDim): #并联的卷积模块和最大池化层均使用3*3窗口步幅2不填充输出的宽和高减半 conv3_3MiniGoogLeNet.conv_module(x,K,3,3,(2,2),chanDim,paddingvalid)poolMaxPooling2D((3,3),strides(2,2))(x) xconcatenate([conv3_3,pool],axischanDim)return x#定义模型def build(width, height, depth, classes): inputShape (height, width, depth)chanDim -1 #如果通道在前将chanDim设为1 if K.image_data_format() channels_first: inputShape (depth, height, width) chanDim 1 #使用Keras的Model模式编写代码 inputs Input(shapeinputShape)#输入图片先经过一个卷积核大小3*3输出通道数96的卷积模块x MiniGoogLeNet.conv_module(inputs, 96, 3, 3, (1, 1),chanDim) #2个Inception模块输出通道数3232、32481个Downsample模块x MiniGoogLeNet.inception_module(x, 32, 32, chanDim) x MiniGoogLeNet.inception_module(x, 32, 48, chanDim) x MiniGoogLeNet.downsample_module(x, 80, chanDim) #4个Inception模块输出通道数11248、9664、8080、48961Downsample模块x MiniGoogLeNet.inception_module(x, 112, 48, chanDim) x MiniGoogLeNet.inception_module(x, 96, 64, chanDim) x MiniGoogLeNet.inception_module(x, 80, 80, chanDim) x MiniGoogLeNet.inception_module(x, 48, 96, chanDim) x MiniGoogLeNet.downsample_module(x, 96, chanDim) #2个Inception模块1个Downsample模块1个全局平均池化层1个Dropout层x MiniGoogLeNet.inception_module(x, 176, 160, chanDim) x MiniGoogLeNet.inception_module(x, 176, 160, chanDim) #输出7*7*160176经过平均池化之后变成了1*1*376 x AveragePooling2D((7, 7))(x) x Dropout(0.5)(x) #特征扁平化 x Flatten()(x)#softmax层输出各类别的概率 x Dense(classes)(x) x Activation(softmax)(x) #创建模型 model Model(inputs, x, namegooglenet) return model 3. 模型训练及保存 通过随机旋转等方法进行数据增强选用Adam算法作为优化算法随着迭代的次数增加降低学习速率经过尝试速率设为0.001时效果最好。调用之前的模型以交叉熵为损失函数使用Keras的fit_generator()方法训练模型最后评估并保存到磁盘。 相关代码如下 #设置初始学习速率、批量大小和迭代次数 INIT_LR 1e-3 BS 64 NUM_EPOCHS 10 #使用随机旋转、缩放水平/垂直移位、透视变换、剪切等方法进行数据增强(不用水平或垂直翻转 aug ImageDataGenerator(rotation_range10,zoom_range0.15,width_shift_range0.1,height_shift_range0.1,shear_range0.15,horizontal_flipFalse,vertical_flipFalse,fill_modenearest) print([INFO] compiling model...) #选用Adam作为优化算法初始学习速率0.001随着迭代次数增加降低学习速率 opt Adam(lrINIT_LR, decayINIT_LR / (NUM_EPOCHS * 0.5)) #调用MiniGoogLeNet使用VGG网络时把MiniGoogLeNet更改为VGGN model MiniGoogLeNet.build(width32, height32, depth3,classesnumLabels) #编译模型使用交叉熵作为损失函数 model.compile(losscategorical_crossentropy, optimizeropt,metrics[accuracy]) #使用Keras的fit_generator方法训练模型 print([INFO] training network...) H model.fit_generator(aug.flow(trainX, trainY, batch_sizeBS),validation_data(testX, testY),steps_per_epochtrainX.shape[0] ,epochsNUM_EPOCHS,verbose1) #评估模型打印分类报告 print([INFO] evaluating network...) predictions model.predict(testX, batch_sizeBS) print(classification_report(testY.argmax(axis1),predictions.argmax(axis1), target_nameslabelNames)) #将模型存入磁盘 print([INFO]serializing network to{}....format(output/testmodel.pb)) model.save(output/testmodel.pb) #绘制loss和accuracy随迭代次数变化的曲线 N np.arange(0, NUM_EPOCHS) plt.style.use(ggplot) plt.figure() plt.plot(N, H.history[loss], labeltrain_loss) plt.plot(N, H.history[val_loss], labelval_loss) plt.plot(N, H.history[acc], labeltrain_acc) plt.plot(N, H.history[val_acc], labelval_acc) plt.title(Training Loss and Accuracy on Dataset) plt.xlabel(Epoch #) plt.ylabel(Loss/Accuracy) plt.legend(loclower left) plt.savefig(output/test.png)相关其它博客 基于简化版pythonVGGMiniGoogLeNet的智能43类交通标志识别—深度学习算法应用(含全部python工程源码)数据集模型一 基于简化版pythonVGGMiniGoogLeNet的智能43类交通标志识别—深度学习算法应用(含全部python工程源码)数据集模型三 工程源代码下载 详见本人博客资源下载页 其它资料下载 如果大家想继续了解人工智能相关学习路线和知识体系欢迎大家翻阅我的另外一篇博客《重磅 | 完备的人工智能AI 学习——基础知识学习路线所有资料免关注免套路直接网盘下载》 这篇博客参考了Github知名开源平台AI技术平台以及相关领域专家DatawhaleApacheCNAI有道和黄海广博士等约有近100G相关资料希望能帮助到所有小伙伴们。
http://www.zqtcl.cn/news/133888/

相关文章:

  • 域名注册信息查询网站推广seo是什么
  • 做外贸网站哪家公司好常见的管理系统
  • 网站设计报价方案微信公众号外包
  • 网站设计遇到难题wordpress qq 微博
  • 网站模板种类长沙seo推广优化
  • 郑州网络建站公司wordpress安装及配置
  • 福州移动网站建设公司注册地址怎么写
  • 网站线上投票怎样做做铁艺需要什么网站
  • 襄阳营销型网站建设网站开发语言排行榜
  • 网站架构演变流程淄博亿泰
  • 电子商务网站功能介绍招商网站建设
  • 哈尔滨模板网站建站市场监督管理局12315
  • 做网站图片处理问题淘宝客推广
  • 科目一速成网站建设适合网络科技的公司名字
  • 解决网站兼容性问题网站关于我们怎么做
  • 网站建设教学视频百度云盘wap什么意思网络语言
  • 做psd模板下载网站搜索网站哪个好
  • 企业排名重庆网站seo优化
  • 怎么做免费域名网站永兴网站建设
  • 网站seo新手台州公司网站外包
  • html简单网站成品免费网站编辑属于什么行业
  • 装修网站设计平台景区网站建设策划案
  • 哪些网站布局设计做的比较好的商洛市城乡建设规划局网站
  • dw中旅游网站怎么做简单大气网站源码
  • 物流网站建设模板黄页网站推广app免费下载
  • iis添加网站的物理路径有资源的公众号
  • 答建设网站建网站的设备
  • 网站新闻专题怎么做python 做网站 用哪个框架好
  • 聊城做网站做的不错的网页链接打不开
  • 网站建设遇到的问题wordpress首页布局修改