目标识别与跟踪算法matlab_Matlab深度学习----自动驾驶中的移动目标识别与跟踪(含代码)...

目标识别与跟踪算法matlab_Matlab深度学习----自动驾驶中的移动目标识别与跟踪(含代码)..._第1张图片

资源下载与技术交流

本文所展示的自动驾驶中的移动目标提取与跟踪技术,全过程的代码以及相应的数据资源,详见下方链接。

  1. 链接:https://pan.baidu.com/s/1Y_d5qb91bD-ZHXqRbBVN0g
  2. 提取码:pv2x

相关联的,技术讨论,详见下方链接。

若谷:自动驾驶行业交流群及公约​zhuanlan.zhihu.com
目标识别与跟踪算法matlab_Matlab深度学习----自动驾驶中的移动目标识别与跟踪(含代码)..._第2张图片

本篇技术报告,以自动驾驶中的车辆识别为例说明。各个步骤的主要操作以及相关代码,配合描述。

整个项目的最新版 源代码和技术交流,请Email联系博主: 380545156[at]qq[dot]com.

文本简介

从影像中自动提取目标,并进行稳定跟踪,是自动驾驶感知系统的重要目标。本技术博文,介绍了基于卷积神经网络技术(CNN)的车辆图像目标识别的全过程,包括:

  • l 数据准备与数据标注;
  • l 数据训练与感知模型;
  • l 仿真与测试;
  • l 模型系统与部署;

目标识别与跟踪算法matlab_Matlab深度学习----自动驾驶中的移动目标识别与跟踪(含代码)..._第3张图片

主要收获

  • 基于CNN卷积神经网络的深度学习,对图像进行目标识别的全过程;

主要参考本文的全体结构;

  • CNN卷积神经网络的大多数工具、函数和命令。

主要参考本文所附带的代码,带有详细注释。

  • CNN深度学习的工程技术开发效率

工程技术在乎方法的稳定可靠和使用效率。CNN深度学习开发的代码,也撰写了将近6000行,技术在累积,方法也在优化。详见第五部分。欢迎补充。

  • 学习CNN深度学习方法的信心

尽管自认有比较好的数学和建模基础,但是没有出现合理的工程结果,都是很难服众的。

有了这几个神经网络应用案例,对于更大规模的CNN深度学习,有更强劲的信心。

任务目标

目标识别与跟踪算法matlab_Matlab深度学习----自动驾驶中的移动目标识别与跟踪(含代码)..._第4张图片

如图所示,从包含车辆的图片中,标识车辆的位置

▌一、数据准备与数据标注

Data Pre-processing for Deep Learning

数据标注的方法详见另外一篇博文。

在本案例中,同一个数据集,用60%的影像数据,用于训练,10%用于验证,剩余30%,用于测试。

%% R_CNN_withData

▌二、数据训练与感知模型

Design and Train a YOLOv2 Network in MATLAB

%% Create Faster R-CNN Detection Network

创建目标检测网络的几种方法

  1. R-CNN
  2. fast-RCNNLayers
  3. faster-RCNNLayers
  4. SSD (Single Shot MultiBox Defender)
  5. labelImg
  6. yolov2Layers YOLO (You Only Look Once)
  7. yolov3Layers YOLO V3

目标识别与跟踪算法matlab_Matlab深度学习----自动驾驶中的移动目标识别与跟踪(含代码)..._第5张图片

本文采用的是ResNet-50 模型。

%% 使用 resnet50, 加载预训练的 ResNet-50 模型
featureExtractionNetwork = resnet50

% 选择 'activation_40_relu' 作为特征提取层,以将 'activation_40_relu' 后面的层替换为检测子网络。
% 此特征提取层输出以 16 为因子的下采样特征图。
% 该下采样量是空间分辨率和提取特征强度之间一个很好的折中,因为在网络更深层提取的特征能够对更强的图像特征进行编码,但以空间分辨率为代价。
% 选择最佳特征提取层需要依靠经验分析。
featureLayer = 'activation_40_relu'   % Select 'activation_40_relu' as the feature extraction layer. 
numClasses = width(vehicleDataset)-1  % Define the number of classes to detect. 

% 创建 fasterRCNN目标检测网络
lgraph = fasterRCNNLayers(inputSize,numClasses,anchorBoxes,featureExtractionNetwork,featureLayer)

其他几个NN模型,可以参考:

若谷:深度学习中的几种开源神经网络模型​zhuanlan.zhihu.com
目标识别与跟踪算法matlab_Matlab深度学习----自动驾驶中的移动目标识别与跟踪(含代码)..._第6张图片

▌三、仿真模型与测试

Import Pre-trained Deep Learning Networks into MATLAB

%% Data Augmentation

目标识别与跟踪算法matlab_Matlab深度学习----自动驾驶中的移动目标识别与跟踪(含代码)..._第7张图片
数据训练会根据统计的参数,决定是否进行下一轮的数据训练

▌四、模型系统运行部署与移植

运行过程中,因为要训练模型,非常耗时。当然,如果你的电脑非常好使,速度会快很多。

目标识别与跟踪算法matlab_Matlab深度学习----自动驾驶中的移动目标识别与跟踪(含代码)..._第8张图片
options 

五、提升工程技术开发效率

  • 时间分配

由于深度学习的开发中,往往计算过程耗时较大,时间统计不可谓不重要;

目标识别与跟踪算法matlab_Matlab深度学习----自动驾驶中的移动目标识别与跟踪(含代码)..._第9张图片

因此,在开发过程中,设置一些时间统计,有助于分配开发调试中的工作安排;

%% Time comsuption
  • 过程数据输出多,增加屏幕

过程数据较多,往往IDE无法显示过往的log数据。因此,将产生的log数据,实时记录并保存,有助于提升调试效率。

diary是matlab中的日志工具,可以将Command Window 中的内容保存到文件中去。使用方法:

在命令行中输出:

diary 

对应的的文件将会保存在path路径下的yourlogfile.txt文件里。

同时,可以使用:

diary off,diary on命令来关闭、打开日志。

%% Time comsuption and 数据日记

你可能感兴趣的:(目标识别与跟踪算法matlab)