简介

通过深度学习技术搭建残差网络,使用 CompsCars数据集进行车型识别模型的训练,并将训练好的模型移植到了Android端,实现了通过手机扫一扫的方式进行汽车车型识别的功能。

项目涉及到的技术点较多,需要开发者有一定的技术功底。如:python语言的使用、深度学习框架pytorch的使用、爬虫脚本的理解、Java语言的使用、Android平台架构的理解等等。

虽然属于跨语言开发,但是要求并不高,只要达到入门级别即可看懂本项目,并可以尝试一些定制化的改造。毕竟框架已经搭建好了,只需要修改数据源、重新训练出模型,就可以实现一款新的应用啦。

模型训练精度

以下是使用Resnet-34进行400次车型识别训练的 train-validation图表。

以下是使用Resnet-34进行400次车型识别训练 Top-1的错误率。

以下是使用Resnet-34进行400次车型识别训练 Top-5的错误率。

扫一扫识别功能

以下是移植到android平台后进行识别的结果展示图。

使用的技术&框架

  • 开发语言:Python、Java
  • 技术框架:pytorch、resnet-34、Android平台
  • 可选借助平台:百度AI平台
  • 项目构成:模型训练项目、爬虫项目、APP开发项目

软/硬件需求

机器要求

因为涉及到机器学习模型训练,所以你应该拥有一台用来训练模型的机器,且需要搭载支持CUDA的GPU(如:GeForce、GTX、Tesla等),显存大小,自然是越大越好。

本人项目环境:

  • windows10 专业版;GeForce MAX150;独显 2G;1T硬盘

也就是说这是最低配了,你至少要和我同一配置。

开发工具

  • Pycharm:用来训练模型、pyhton爬虫、模型移植脚本
  • Android Studio:用来开发安卓APP

数据集

数据集是项目最重要的一部分,有了数据集才能开始训练

本项目使用的是

训练模型主要分为五个模块:启动器、自定义数据加载器、网络模型、学习率/损失率调整以及训练可视化。

启动器是项目的入口,通过对启动器参数的设置,可以进行很多灵活的启动方式,下图为部分启动器参数设置。

任何一个深度学习的模型训练都是离不开数据集的,根据多种多样的数据集,我们应该使用一个方式将数据集用一种通用的结构返回,方便网络模型的加载处理。

这里使用了残差网络Resnet-34,代码中还提供了Resnet-18、Resnet-50、Resnet-101以及Resnet-152。残差结构是通过一个快捷连接,极大的减少了参数数量,降低了内存使用。

以下为残差网络的基本结构和Resnet-34 部分网络结构图。


除了最开始看到的train-val图表、Top-、Top-5的error记录表以外,在训练过程中,使用进度条打印当前训练的进度、训练精度等信息。打印时机可以通过上边提到的 启动器 优雅地配置。

以下为最终的项目包架构。


  1. pytorch_train
  2. |-- data -- 存放读取训练、校验、测试数据路径的txt
  3. | |-- train.txt
  4. | |-- val.txt
  5. | |-- test.txt
  6. |-- result -- 存放最终生成训练结果的目录
  7. |-- util -- 模型移植工具
  8. |-- clr.py -- 学习率
  9. |-- dataset.py -- 自定义数据集
  10. |-- flops_benchmark.py -- 统计每秒浮点运算次数
  11. |-- logger.py -- 日志可视化
  12. |-- mobile_net.py -- 网络模型之一 mobile_net2
  13. |-- resnet.py -- 网络模型之一 Resnet系列
  14. |-- run.py -- 具体执行训练、测试方法
  15. |-- start.py -- 启动器

使用pytorch进行深度学习网络模型训练,实现车型识别相关推荐

  1. 【毕业设计_课程设计】基于深度学习网络模型训练的车型识别系统

    文章目录 0 项目说明 1 简介 2 模型训练精度 3 扫一扫识别功能 4 技术栈 5 模型训练 6 最后 0 项目说明 基于深度学习网络模型训练的车型识别系统 提示:适合用于课程设计或毕业设计,工作 ...

  2. [Github项目]基于PyTorch的深度学习网络模型实现

    2019 年第 48 篇文章,总第 72 篇文章 本文大约 1500 字,阅读大约需要 4 分钟 今天主要分享两份 Github 项目,都是采用 PyTorch 来实现深度学习网络模型,主要是一些常用 ...

  3. [深度学习] - 网络模型训练过程的 loss 变化分析 (loss / val_loss / test_loss)

    目录 一.train set 和 test set 基础知识 二.分析 loss 和 val_loss (test_loss) 变化情况 一.train set 和 test set 基础知识 tra ...

  4. 深度学习网络模型训练中loss为nans的总结

    在网络训练中经常出现loss为nans的情况. 主要原因有如下: 梯度爆炸 原因:巨大的梯度值使model的学习过程off-track. 检测方法:查看运行时日志,您应该查看每个迭代的损失值.您会注意 ...

  5. 深度学习网络模型训练过程中的Loss问题合集

    把数据集随机分为训练集,验证集和测试集,然后用训练集训练模型,用验证集验证模型,根据情况不断调整模型,选择出其中最好的模型,再用训练集和验证集数据训练出一个最终的模型,最后用测试集评估最终的模型 训练 ...

  6. 深度学习100问之提高深度学习模型训练效果(调参经验)

    声明 1)本文仅供学术交流,非商用.所以每一部分具体的参考资料并没有详细对应.如果某部分不小心侵犯了大家的利益,还望海涵,并联系博主删除. 2)博主才疏学浅,文中如有不当之处,请各位指出,共同进步,谢 ...

  7. 深度学习网络模型——RepVGG网络详解、RepVGG网络训练花分类数据集整体项目实现

    深度学习网络模型--RepVGG网络详解.RepVGG网络训练花分类数据集整体项目实现 0 前言 1 RepVGG Block详解 2 结构重参数化 2.1 融合Conv2d和BN 2.2 Conv2 ...

  8. GPU信息查看以及确认Pytorch使用了GPU计算模块进行深度学习的训练

    GPU信息查看以及确认Pytorch使用了GPU计算模块进行深度学习的训练 目录 GPU信息查看以及确认Pytorch使用了GPU计算模块进行深度学习的训练 GPU基础信息查看 Pytorch是否使用 ...

  9. 收藏 | PyTorch深度学习模型训练加速指南2021

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者:LORENZ KUHN 编译:ronghuaiyang ...

最新文章

  1. 硬盘自检死机解决办法
  2. call_user_func_array 笔记
  3. [家里蹲大学数学杂志]第418期南开大学2013年实变函数期末考试试题参考解答
  4. etc目录名字的意思---挖Linux中的古老缩略语
  5. 深度学习(十二)——Winograd(2)
  6. 关于 springboot 的自动配置
  7. python roberts滤波_Python 图像处理 OpenCV (12): Roberts 算子、 Prewitt 算子、 Sobel 算子和 Laplacian 算子边缘检测技术...
  8. 基于C#和SQL SERVER的企业进销存管理系统的设计和实现
  9. wakeonlan 远程唤醒开机软件(网络唤醒)
  10. java 别名现象_引用与对象赋值时的别名现象
  11. 网络----OSI模型
  12. office365 word如何关闭首字母大写
  13. 计算机专业的学生买什么电脑,设计类学生买什么电脑
  14. Python实现excel表合入
  15. CANOE入门:CAPL语言实现诊断发送和接收
  16. Pre-Trained_Models_Past_Present_and_Future
  17. CentOS Linux release 7.4.1708 (Core)操作系统安全加固
  18. ftp给服务器上传文件,ftp上传文件给服务器
  19. 安信可A9(GPRS模块)快速联网,使用机智云开发IOT应用教程
  20. 【ffmpeg】最全简单实用教程|安装音频视频剪切融合拼接抽帧等

热门文章

  1. excel中录制宏只执行一半的命令,没有执行全部如何解决?
  2. 参数估计-两个参数总体区间估计、样本量确定(三)
  3. 搭建自己的V Rising自建服务器,以及常见的V Rising服务器问题解决方案
  4. Linux设备驱动之IIO子系统——IIO框架及IIO数据结构
  5. STM32MP157驱动开发——Linux IIO驱动(上)
  6. 雷特智能家居龙海祁:从专业调光到全宅智能,20年专注成就专业
  7. python 逆序_python中逆序
  8. 为什么团建这么招人恨
  9. excel 错位插入_excel表格错位怎么解决?excel数据错位
  10. 香格里拉是如何策划成功的?