智能网联汽车实验三 传感器目标识别

智能网联汽车实验三 传感器目标识别

 BreakAndCreate
2023-05-21 / 0 评论 / 138 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年05月21日,已超过496天没有更新,若内容或图片失效,请留言反馈。
本文共 1304 个字数,平均阅读时长 ≈ 4分钟

实验目的

  1. 了解环境感知传感器目标识别的目的和方法, 掌握MATLAB中的目标检测方法。
  2. 了解MATLAB的目标检测器和检测函数,掌握车辆识别、行人识别、交通标志识别

实验性质

验证性实验。

实验要求

MATLAB 2020a及以上

实验内容

  1. 使用MATLAB的车辆检测器和检测函数,对图像中的车辆进行识别。
  2. 使用MATLAB的行人检测器和检测函数,对图像中的行人进行识别。
  3. 使用MATLAB的目标检测器和检测函数,对图像中的交通标志进行识别。
  4. 使用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)______________;                                     %显示检测结果
————————————————

在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:
原始图像
lhwaykmb.png
ACF算法车辆识别结果
lhwaz8ad.png

(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车辆检测器

%读取图像文件

%检测车辆

%将检测结果标注到图像

%显示检测结果

在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:
原始图像
lhwb1aj8.png
RCNN算法车辆识别结果
lhwb1gw5.png

2.行人识别

MATLAB中提供了行人识别检测器及检测函数,用于行人识别。

(1)ACF行人检测器

peopleDetectorACF为基于聚合通道特征(ACF)的行人检测器函数,调用方式如下:

detector = peopleDetectorACF (modelName); 

其中,modelName为模型名称,detector为ACF行人检测器。
在MATLAB命令窗口中输入以下程序,或在其它编辑器中编写后粘贴到MATLAB命令窗口,运行前需要将原始图像另存为下面代码中的原始图像文件。
lhwb2843.png
bboxes为检测到的目标位置,scores为检测置信度分数,I为输入图像。
在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:
原始图像
lhwb2i70.png
ACF行人识别算法识别结果
lhwb33t7.png

(2)基于HOG特征行人检测

vision.PeopleDetector为基于HOG特征行人检测的函数,其调用方式如下:

detector = vision.peopleDetector (modelName);
detector = vision.peopleDetector (Name, Value);

其中,modelName为模型名称,Name和Value用于设置属性,detector为行人检测器。
在MATLAB命令窗口中输入以下程序,或在其它编辑器中编写后粘贴到MATLAB命令窗口,运行前需要将原始图像另存为下面代码中的原始图像文件。
lhwb3lbl.png
原始图像
lhwb3unf.png
HOG行人识别算法识别结果
lhwb44vq.png

3.交通标志识别

MATLAB中没有专门的检测函数,需要通过训练目标检测器进行各种交通标志的检测。

(1)ACF目标检测器

trainACFObjectDetector为训练ACF目标检测器的函数,其调用方式如下:

detector = trainACFObjectDetector (trainingData);
detector = trainACFObjectDetector (trainingData , Name, Value);

其中,trainingData为地面真实训练数据(图像),Name和Value为指定的附加选项,detector为ACF目标检测器。
在MATLAB命令窗口中输入以下程序:
lhwb4ojc.png
在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:
原始图像
lhwb5bna.png
交通标志牌识别结果
lhwb5fvx.png

4.道路识别

道路识别可使用视觉传感器和激光雷达,通过视觉传感器检测出车道线,提供车辆在当前车道中的位置;而激光雷达把真实的道路转换为汽车识别的道路。

MATLAB中提供了多个道路识别检测函数:

  1. 检测灰度图像中车道——segmentLaneMarkerRidge
  2. 抛物线车道边界模型——parabolicLaneBoundary
  3. 使用抛物线模型寻找车道线边界——findParabolicLaneBoundaries
  4. 三次方车道边界模型——cubicLaneBoundaryModel
  5. 使用三次方模型寻找车道线边界——findCubicLaneBoundaries
  6. 求车道边界坐标值——computerBoundaryModel
  7. 在图像中插入车道边界——insertLaneBoundary
    下面程序使用抛物线车道边界模型识别图像中的车道线
    lhwb5x4e.png
    lhwb61r7.png
    在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:
    原始图像
    lhwb6t57.png
    交通标志牌识别结果
    lhwb6yj8.png
1

打赏

海报

正在生成.....

评论 (0)

语录
取消