python2.7交通标志识别图_(四)深度学习初探:基于LeNet-5卷积神经网络的交通标志识别...

本文介绍了如何使用Tensorflow在Linux环境下,基于LeNet-5卷积神经网络进行交通标志识别。首先搭建Tensorflow环境,然后对德国交通标志数据集进行处理和可视化。接着,通过调整LeNet-5模型以适应32x32x3的图像,进行训练和验证,最后评估模型性能,并展示了对新图片的预测过程。
摘要由CSDN通过智能技术生成

1.项目任务

在常见深度学习模型的基础上(本文为LeNet-5),调整模型结构和参数,使用Tensorflow进行部署。利用公开的德国交通标志数据集进行训练,得到模型,并利用该模型对新的图片进行预测。全文运行环境Linux, 使用语言Python3。需要说明的是,本项目来源于Udacity,在Udacity无人驾驶工程师课程作业的基础上演化而来。

无人驾驶工程师课程_无人车培训_无人驾驶_自动驾驶基础技术-优达学城(Udacity)官网​cn.udacity.comv2-a71d438699d144a84c1787c572076e25_180x120.jpg

2. 整体思路整体流程

总体而言,本文注重梳理卷积神经网络实现的基本逻辑,希望通过这个小项目打开深度学习的大门,拨开深度学习这颗“大洋葱”最外面的一层表皮,至于里面的果实及本文中未理解清楚的一部分,希望能有机会在后面的学习中解决。

3. 项目实施

3.1 环境搭建

本项目在Linux环境中运行,使用python3搭建Tensorflow模型进行运算。因此第一步先在Linux下搭建Tensorflow运行环境。可以采用anaconda作为python的环境管理仓库,在anaconda中直接通过命令行安装tensorflow。

3.1.1 Anaconda 的安装

Anaconda 为我们提供了很好的python环境管理机制,使同一台电脑上能够允许多个版本的python共存,且相互不干扰;它还能创建独立的环境,相当于在一台主机中分割出一个个独立的空间,存放不同的工作环境。

# 首先到官网上下载anaconda

wget https://repo.continuum.io/archive/Anaconda3-5.0.1-Linux-x86_64.sh

# 安装anaconda

bash Anaconda3-5.0.1-Linux-x86_64.sh

# 将anaconda添加到环境变量

echo 'export PATH="~/anaconda3/bin:$PATH"' >> ~/.bashrc

# 更新环境变量

source .bashrc

# 更新anaconda

conda upgrade --al

具体可以参考:linux命令 安装anaconda​blog.csdn.net

3.1.2 Tensorflow的安装

Tensorflow目前最常使用的是版本1.1.1, 它除了正常迭代的版本号之外,还有CPU和GPU之分。本文中的项目模型复杂度不高,需要的算力CPU就能解决,因此在这里选择安装CPU版本的tensorflow。

# 创建一个单独运行的环境,取名py37,采用python3

conda create --name = py37 python=3

# 激活刚刚创建的环境

source acitvate py37

# 安装CPU版本的Tensorflow(此过程需联网)

conda install -c conda-forge tensorflow

安装完成后,我们需要检查tensorflow是否安装好,进入pyhon环境:

import tensorflow as tf

如果没有报错,证明该环境中已经有了tensorflow,安装正确。

激活环境后,进入jupyter notebook工作环境:

#直接键入 jupyter notebook

PS-1:在调试过程中需要掌握一些anaconda常用命令,列举如下,已经会的可直接跳过:

1)查看版本:conda --version

2)创建环境:conda create -n py37 python=3

3)删除环境:conda remove -n py37 --all

4)查看本机所有环境:conda env list

5)激活环境:activate py37

6)安装第三方软件包:conda install 包名 或 pip install 包名

7)卸载第三方软件包: conda remove 包名 或 pip uninstall 包名

8)切换到base环境:activate

PS-2: GPU版本Tensorflow的安装

1)pip install tensorflow-gpu

需要注意的是,不要在同一个环境中共存CPU和GPU版本的Tensorflow, 容易出现环境混乱。

3.2 数据集处理

3.2.1 数据集导入

本文使用的数据集是公开的德国交通标志数据集, 下载地址:German Traffic Sign Benchmarks​benchmark.ini.rub.dev2-84e5324deea0745c8bf90f2e61a68400_ipico.jpg

已经被分为了训练集,验证集和测试集三个部分,分别是三个.p 文件,将三个载入。

# 导入pickle模块,用于加载数据,如果该句报错,需要使用anaconda 安装pickle包。在导入其他包

# 的过程中,如果出现没有该模块的情况,也需要使用anaconda安装。

# pickle 用来将python的对象序列化和解序列化

import pickle

# 找到三个数据文件的路径

training_file = '/home/project_our/project2/traffic-signs-data/train.p'

validation_file='/home/project_our/project2/traffic-signs-data/valid.p'

testing_file = '/home/project_our/project2/traffic-signs-data/test.p'

# 加载数据

with open(training_file, mode='rb') as f:

train = pickle.load(f)

with open(validation_file, mode='rb') as f:

valid = pickle.load(f)

with open(testing_file, mode='rb') as f:

test = pickle.load(f)

# 将数据分为图片和标签两个部分,X部分为图片&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值