本文共 1304 个字数,平均阅读时长 ≈ 4分钟
实验目的
- 了解环境感知传感器目标识别的目的和方法, 掌握MATLAB中的目标检测方法。
- 了解MATLAB的目标检测器和检测函数,掌握车辆识别、行人识别、交通标志识别
实验性质
验证性实验。
实验要求
MATLAB 2020a及以上
实验内容
- 使用MATLAB的车辆检测器和检测函数,对图像中的车辆进行识别。
- 使用MATLAB的行人检测器和检测函数,对图像中的行人进行识别。
- 使用MATLAB的目标检测器和检测函数,对图像中的交通标志进行识别。
- 使用MATLAB的道路检测函数,对图像中的车道线进行识别。
实验准备
对于没有安装MATLAB环境的机器,可以在浏览器中使用MATLAB web版。
实验步骤
1.车辆识别
车辆识别的方法有下面几种方法:
- 基于视觉传感器的车辆识别
- 基于毫米波雷达的车辆识别
- 基于视觉传感器和毫米波雷达融合的车辆识别
- 基于激光雷达的车辆识别
MATLAB中提供了车辆检测器及检测函数,用于识别车辆。
(1)ACF车辆检测器
ACF(Aggregate Channel Features)聚合通道特征是将多个通道特征结合到一起形成 一种聚合特征,结合多通道特征包含的信息,能够高效描述车辆特征。
vehicleDetectorACF为基于聚合通道特征(ACF)的车辆检测器,其调用方式如下:
detector = vehicleDetectorACF(modelName);
其中,modelName为模型名称,detector为车辆检测器
完善下面的matlab程序:
detector= _________________ vehicleDetectorACF('font-rear-view');________________; %定义车辆检测器
I=imread('____c1.png____________'); %读取图像文件
[bboxes,scores]=detect(detector,I);
I=insertObjectAnnotation(I,'rectangle',bboxes,scores,'FontSize',30);
_____imshow(I)______________; %显示检测结果
————————————————
在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:
原始图像
ACF算法车辆识别结果
(2)RCNN车辆检测器
RCNN(Region-based Convolutional Neural Networks)是一种结合区域提名(Region Proposal)和卷积神经网络(CNN)的目标检测方法。
vehicleDetectorFasterRCNN为基于RCNN的车辆检测函数,其调用方式如下:
detector = vehicleDetectorFasterRCNN(modelName);
其中,modelName为模型名称,模型名称为全视图(Full-View)模型,即使用的训练图像是车辆的前、后、左、右侧的图像;detector为RCNN车辆检测器。
完善下面的程序,并在MATLAB命令窗口中输入以下程序。
fasterRCNN=____vehicleDetectorFasterRCNN(‘full-view’);___ _____;
I=imread('___c1.jpg___________');
[bboxes,scores]=detect(fasterRCNN,I);
I=insertObjectAnnotation(I,'rectangle',bboxes,scores,'FontSize',40);
imshow(I);_____________;
————————————————
%定义RCNN车辆检测器
%读取图像文件
%检测车辆
%将检测结果标注到图像
%显示检测结果
在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:
原始图像
RCNN算法车辆识别结果
2.行人识别
MATLAB中提供了行人识别检测器及检测函数,用于行人识别。
(1)ACF行人检测器
peopleDetectorACF为基于聚合通道特征(ACF)的行人检测器函数,调用方式如下:
detector = peopleDetectorACF (modelName);
其中,modelName为模型名称,detector为ACF行人检测器。
在MATLAB命令窗口中输入以下程序,或在其它编辑器中编写后粘贴到MATLAB命令窗口,运行前需要将原始图像另存为下面代码中的原始图像文件。
bboxes为检测到的目标位置,scores为检测置信度分数,I为输入图像。
在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:
原始图像
ACF行人识别算法识别结果
(2)基于HOG特征行人检测
vision.PeopleDetector为基于HOG特征行人检测的函数,其调用方式如下:
detector = vision.peopleDetector (modelName);
detector = vision.peopleDetector (Name, Value);
其中,modelName为模型名称,Name和Value用于设置属性,detector为行人检测器。
在MATLAB命令窗口中输入以下程序,或在其它编辑器中编写后粘贴到MATLAB命令窗口,运行前需要将原始图像另存为下面代码中的原始图像文件。
原始图像
HOG行人识别算法识别结果
3.交通标志识别
MATLAB中没有专门的检测函数,需要通过训练目标检测器进行各种交通标志的检测。
(1)ACF目标检测器
trainACFObjectDetector为训练ACF目标检测器的函数,其调用方式如下:
detector = trainACFObjectDetector (trainingData);
detector = trainACFObjectDetector (trainingData , Name, Value);
其中,trainingData为地面真实训练数据(图像),Name和Value为指定的附加选项,detector为ACF目标检测器。
在MATLAB命令窗口中输入以下程序:
在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:
原始图像
交通标志牌识别结果
4.道路识别
道路识别可使用视觉传感器和激光雷达,通过视觉传感器检测出车道线,提供车辆在当前车道中的位置;而激光雷达把真实的道路转换为汽车识别的道路。
MATLAB中提供了多个道路识别检测函数:
- 检测灰度图像中车道——segmentLaneMarkerRidge
- 抛物线车道边界模型——parabolicLaneBoundary
- 使用抛物线模型寻找车道线边界——findParabolicLaneBoundaries
- 三次方车道边界模型——cubicLaneBoundaryModel
- 使用三次方模型寻找车道线边界——findCubicLaneBoundaries
- 求车道边界坐标值——computerBoundaryModel
- 在图像中插入车道边界——insertLaneBoundary
下面程序使用抛物线车道边界模型识别图像中的车道线
在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:
原始图像
交通标志牌识别结果
评论 (0)