基于VGG-16的驾驶行为分析

执行conda命令完成TensorFlow环境配置,在PyCharm软件中完成其余具体库的安装配置,输入清华仓库镜像,输入命令:
conda config–add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config–set show_channel_urls yes
在Anaconda Prompt中激活TensorFlow环境,输入命令:
activate tensorflow
安装CPU版本的TensorFlow,输入命令:
pip install–upgrade–ignore-installed tensorflow
安装完毕。
在PyCharm中新建项目,使用构建的Anaconda环境,在File→Settings→Project:XXX→Project Interpreter中添加其余需要用到的库,包括OpenCV、NumPy、Keras、OS等。
8.2.3 Android环境
安装Android Studio,新建Android项目。在app/build.gradle文件中添加TensorFlow mobile依赖项,命令如下:
implementation 'org.tensorflow:tensorflow-android:+
完整的app/build.gradle配置代码如下在这里插入图片描述
app/build.gradle里的内容有任何改动,Android Studio会弹出如图8-4所示的提示。图8-4 改动后提示
单击Sync Now或图标,同步该配置,配置完成。
8.3 模块实现
本项目包括4个模块:数据预处理、模型构建、模型训练及保存、模型生成。下面分别给出各模块的功能介绍及相关代码。
8.3.1 数据预处理
本部分包括数据集来源、内容和预处理。
1.数据集来源
使用开源数据集state-farm-distracted-driver-detection,下载地址为:https://www.kaggle.com/c/state-farm-distracted-driver-detection/data,直接在网页上单击Download按钮下载。也可以调用API下载,下载地址为:kaggle competitions download-c state
farm-distracted-driver-detection。数据集包括22424张训练集图片,若干测试集图片。由于是竞赛数据集,测试集的图片没有标签,故不使用。
2.数据集内容
数据集共包括10个驾驶状态:安全驾驶、右手使用手机、右手打电话、左手使用手机、左手打电话、调广播、喝水、向后拿东西、整理头发或化妆、与乘客交流。除安全驾驶外都是危险状态,如图8-5所示。图8-5 数据集中各驾驶状态
3.数据集预处理
数据集中每张图片大小都是640×480像素,从同一角度拍摄的车载监控图片,数据集十分规范,无噪声,不需要进行过多的预处理,在训练前通过图像增广进行预处理产生相似但又不同的训练样本。随机改变训练样本可以降低模型对某些属性的依赖,提高模型的泛化能力。
8.3.2 模型构建
数据加载进模型之后,需要定义模型结构,并优化损失函数。
1.定义模型结构
使用VGG-16网络结构,共13个卷积层、3个全连接层和5个池化层,使用Keras库搭建模型,构建Sequential顺序模型,它由多个网络层线性堆叠而成。

模型训练及保存
在定义模型架构和编译后,通过训练集训练,使模型可以识别数据集中图像的特征。
1.模型训练
模型训练相关代码如下:
在这里插入图片描述
2.模型保存
上述由Keras库生成的模型及权重文件为.h5格式,为了能够被Android程序读取,需要将.h5文件转换为.pb格式的文件,模型被保存后,可以被重用,也可以移植到其他环境中使用。
8.3.4 模型生成
将图片转化为数据,输入TensorFlow的模型中并获取输出。
1.模型导入及调用
本部分包括模型导入及调用的操作方法。
(1)编写代码进行实际预测之前,需要将转换后的模型添加到应用程序的资源文件夹中。在Android Studio中,鼠标右键“项目”,跳转至Add Folder(添加文件夹)部分,并选择Assets Folder(资源文件夹)。在应用程序目录中创建一个资源文件夹,将模型复制到其中,如图8-6所示。图8-6 添加模型
(2)将新的Java类添加到项目的主程序包中,并命名为ImageUtils,ImageUtils为图片工具类,可用于Bitmap、byte、array、Drawable图片类型之间进行转换以及缩放。相关代码如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr Robot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值