实验三 传感器目标识别


【实验目的】

       1、了解环境感知传感器目标识别的目的和方法, 掌握MATLAB中的目标检测方法。

       2、了解MATLAB的目标检测器和检测函数,掌握车辆识别、行人识别、交通标志识别和道路识别等目标识别方法。

【实验性质】

验证性实验。

【实验要求】

       MATLAB 2020a及以上

      

【实验内容】

       1、使用MATLAB的车辆检测器和检测函数,对图像中的车辆进行识别。

       2、使用MATLAB的行人检测器和检测函数,对图像中的行人进行识别。

       3、使用MATLAB的目标检测器和检测函数,对图像中的交通标志进行识别。

       4、使用MATLAB的道路检测函数,对图像中的车道线进行识别。

【实验准备】

       对于没有安装MATLAB环境的机器,可以在浏览器中使用MATLAB web版。

【实验步骤】

       1、车辆识别

车辆识别的方法有下面几种方法:

(1)基于视觉传感器的车辆识别

(2)基于毫米波雷达的车辆识别

(3)基于视觉传感器和毫米波雷达融合的车辆识别

(4)基于激光雷达的车辆识别

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)______________;                                     %显示检测结果

在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:

实验三 传感器目标识别_第1张图片

                

实验三 传感器目标识别_第2张图片

原始图像

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

%读取图像文件

%检测车辆

%将检测结果标注到图像

%显示检测结果

在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:

实验三 传感器目标识别_第3张图片

        实验三 传感器目标识别_第4张图片

原始图像                                

RCNN算法车辆识别结果

       2、行人识别

   

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

(1)ACF行人检测器

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

detector = peopleDetectorACF (modelName); 

    其中,modelName为模型名称,detector为ACF行人检测器。

在MATLAB命令窗口中输入以下程序,或在其它编辑器中编写后粘贴到MATLAB命令窗口,运行前需要将原始图像另存为下面代码中的原始图像文件。

    bboxes为检测到的目标位置,scores为检测置信度分数,I为输入图像。

在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:

实验三 传感器目标识别_第5张图片

实验三 传感器目标识别_第6张图片        

原始图像

ACF行人识别算法识别结果

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

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

detector = vision.peopleDetector (modelName);

detector = vision.peopleDetector (Name, Value);

    其中,modelName为模型名称,Name和Value用于设置属性,detector为行人检测器。

在MATLAB命令窗口中输入以下程序,或在其它编辑器中编写后粘贴到MATLAB命令窗口,运行前需要将原始图像另存为下面代码中的原始图像文件。

实验三 传感器目标识别_第7张图片

bboxes为检测到的目标位置,scores为检测置信度分数,I为输入图像。

在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:

实验三 传感器目标识别_第8张图片

        实验三 传感器目标识别_第9张图片

原始图像

HOG行人识别算法识别结果

       3、交通标志识别

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

    (1)ACF目标检测器

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

detector = trainACFObjectDetector (trainingData);

detector = trainACFObjectDetector (trainingData , Name, Value);

    其中,trainingData为地面真实训练数据(图像),Name和Value为指定的附加选项,detector为ACF目标检测器。

    在MATLAB命令窗口中输入以下程序:

   实验三 传感器目标识别_第10张图片

在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:

实验三 传感器目标识别_第11张图片

 实验三 传感器目标识别_第12张图片

原始图像

交通标志牌识别结果

       4、道路识别

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

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

(1)检测灰度图像中车道——segmentLaneMarkerRidge

(2)抛物线车道边界模型——parabolicLaneBoundary

(3)使用抛物线模型寻找车道线边界——findParabolicLaneBoundaries

(4)三次方车道边界模型——cubicLaneBoundaryModel

(5)使用三次方模型寻找车道线边界——findCubicLaneBoundaries

(6)求车道边界坐标值——computerBoundaryModel

(7)在图像中插入车道边界——insertLaneBoundary

    下面程序使用抛物线车道边界模型识别图像中的车道线

实验三 传感器目标识别_第13张图片

 实验三 传感器目标识别_第14张图片

在下面表格区域内放置实验中所使用到的原始图像及识别结果图像:

实验三 传感器目标识别_第15张图片

实验三 传感器目标识别_第16张图片

原始图像

交通标志牌识别结果

你可能感兴趣的:(matlab,图像处理,计算机视觉)