主要内容

使用深度学习的行人和自行车分类

这个例子展示了如何使用深度学习网络和时频分析基于行人和骑自行车者的微多普勒特征进行分类。

放置在雷达前的物体不同部位的运动产生微多普勒信号,可用于识别该物体。这个例子使用卷积神经网络(CNN)来识别行人和骑自行车的人基于他们的签名。

本示例使用模拟数据训练深度学习网络,然后检查该网络在对两种重叠签名进行分类时的表现。

模拟合成数据生成

用于训练网络的数据是使用backscatterPedestrianbackscatterBicyclist从雷达工具箱™。这些函数分别模拟行人和骑自行车者反射信号的雷达后向散射。

辅助函数helperBackScatterSignals生成指定数量的行人、自行车和汽车雷达返回。因为这个例子的目的是区分行人和骑自行车的人,所以这个例子只把汽车的特征作为噪声源。为了了解要解决的分类问题,检查行人、骑自行车者和汽车微多普勒信号的一个实现。(对于每个实现,返回信号都有维度 N ——- - - - - - N ,在那里 N 夏令时间样品和 N 标准时间样本。看到雷达数据立方体为更多的信息。)

numPed = 1;%行人实现的数量numBic = 1;%骑自行车的人数实现numCar = 1;%汽车实现数量[xPedRec, xBicRec xCarRec Tsamp] = helperBackScatterSignals (numPed, numBic numCar);

辅助函数helperDopplerSignatures计算雷达回波的短时傅里叶变换(STFT)以产生微多普勒信号。为了获得微多普勒信号,使用辅助函数对每个信号应用短时傅里叶变换和预处理方法。

(加速、T、F) = helperDopplerSignatures (xPedRec Tsamp);[SBic, ~, ~] = helperDopplerSignatures (xBicRec Tsamp);[伤疤,~,~]= helperDopplerSignatures (xCarRec Tsamp);

绘制行人、骑自行车者和汽车实现的时频图。

%绘制对象的第一个实现图subplot(1,3,1) imagesc(T,F, ?的频率(赫兹))标题(“行人”)轴广场xy次要情节(1、3、2)显示亮度图像(T, F, SBic(:,: 1)包含(“时间(s)”)标题(“自行车”)轴广场xy次要情节(1、3、3)显示亮度图像(T, F,疤痕(:,:1)标题(“汽车”)轴广场xy

归一化光谱图(STFT绝对值)表明,这三个天体具有明显的特征。具体而言,行人和骑自行车者的光谱图分别具有丰富的由手臂和腿的摆动和车轮的转动引起的微多普勒特征。相比之下,在本例中,汽车被建模为带有刚体的点目标,因此汽车的频谱图显示,短期多普勒频移变化很小,说明微多普勒效应很小。

结合对象

由于行人和骑自行车者的微多普勒特征是不同的,因此将单个实现分类为行人或骑自行车者是相对简单的。然而,分类多个重叠的行人或骑自行车的人,加上高斯噪声或汽车噪声,是非常困难的。

如果雷达的探测区域同时存在多个目标,则接收到的雷达信号是所有目标探测信号的总和。以高斯背景噪声为例,生成一个行人和骑自行车的人的雷达信号。

%设置接收端的高斯噪声电平rx =分阶段。ReceiverPreamp (“获得”25岁的“NoiseFigure”10);xRadarRec =复杂(0(大小(xPedRec)));2 = 1:尺寸(xPedRec, 3) xRadarRec(:,:,(二)= rx (xPedRec (:,:, ii) + xBicRec(:,:,(二));结束

然后利用短时傅里叶变换获得接收信号的微多普勒特征。

(年代,~,~)= helperDopplerSignatures (xRadarRec Tsamp);图显示亮度图像(T、F S (:,: 1))绘制第一个实现xy包含(“时间(s)”) ylabel (的频率(赫兹))标题(“一个行人和一个骑自行车的人的光谱图”

由于行人和骑自行车的人的特征在时间和频率上重叠,很难区分这两个物体。

生成的训练数据

在这个例子中,您通过使用由具有不同属性的物体的模拟实现组成的数据来训练CNN——例如,骑自行车的人以不同的速度蹬车,不同高度的行人以不同的速度行走。假设雷达固定在原点,在一个实现中,一个物体或多个物体沿X轴和Y轴分别均匀分布在[5,45]和[- 10,10]米的矩形区域内。

这三个随机调优的对象的其他属性如下:

1)行人

  • 高度-均匀分布在[1.5,2]米的区间内

  • 航向-均匀分布在[- 180,180]度区间内

  • 速度-均匀分布在[0,1.4h米/秒,在那里h为高度值

2)骑自行车

  • 航向-均匀分布在[- 180,180]度区间内

  • 速度-均匀分布在[1,10]米/秒的间隔内

  • 齿轮传动比-均匀分布在[0.5,6]区间内

  • 踩踏板或滑行- 50%的可能性踩踏板(滑行意味着骑自行车的人在不踩踏板的情况下行驶)

3)汽车

  • 速度-沿X和Y方向均匀分布在[0,10]米/秒的间隔内

卷积网络的输入是微多普勒信号,由以分贝表示的声谱图组成,归一化为[0,1],如图所示:

雷达回波来源于不同的物体和物体的不同部分。根据配置的不同,有些回报率要比其他回报率高得多。高回报往往掩盖低回报。对数缩放通过使返回强度具有可比性来增强功能。振幅归一化可以帮助CNN更快地收敛。

数据集包含以下场景的实现:

  • 现场有一个行人

  • 现场有一个骑自行车的人

  • 现场有一个行人和一个骑自行车的人

  • 现场有两名行人

  • 两个骑自行车的人出现在现场

下载数据

本示例的数据包括使用helper函数生成的20,000个行人、20,000个自行车和12,500个汽车信号helperBackScatterSignalshelperDopplerSignatures.将信号分为两个数据集:一个是没有汽车噪声样本的数据集,一个是有汽车噪声样本的数据集。

对于第一个数据集(不含汽车噪声),将行人和自行车信号合并,加入高斯噪声,计算微多普勒特征,对待分类的5个场景分别生成5000个特征。

在每个类别中,训练数据集保留80%的签名(即4000个签名),测试数据集保留20%的签名(即1000个签名)。

为了生成第二个数据集(带有汽车噪声),除了在50%的签名中加入汽车噪声外,还遵循第一个数据集的步骤。在训练数据集和测试数据集中,有噪声和无噪声特征的比例是相同的。

下载并解压缩数据在您的临时目录,其位置由MATLAB®指定tempdir命令。数据大小为21gb,下载过程可能需要一些时间。如果您有不同的文件夹中的数据tempdir,请在后续说明中修改目录名称。

%下载数据dataURL =“https://ssd.mathworks.com/金宝appsupportfiles/SPT/data/PedBicCarData.zip”;saveFolder = fullfile (tempdir,“PedBicCarData”);zipFile = fullfile (tempdir,“PedBicCarData.zip”);如果~存在(zipFile“文件”) websave (zipFile dataURL);elseif~存在(saveFolder“dir”%解压数据解压缩(zipFile tempdir)结束

数据文件如下:

  • trainDataNoCar.mat包含训练数据集trainDataNoCar以及它的标号集trainLabelNoCar

  • testDataNoCar.mat包含测试数据集testDataNoCar以及它的标号集testLabelNoCar

  • trainDataCarNoise.mat包含训练数据集trainDataCarNoise以及它的标号集trainLabelCarNoise

  • testDataCarNoise.mat包含测试数据集testDataCarNoise以及它的标号集testLabelCarNoise

  • TF.mat包含微多普勒信号的时间和频率信息。

网络体系结构

创建一个CNN与五个卷积层和一个完全连接层。前四个卷积层之后是批处理归一化层、整流线性单元(ReLU)激活层和最大池化层。在最后的卷积层中,最大池化层被平均池化层取代。输出层是激活softmax后的分类层。有关网络设计指导,请参见深度学习技巧(深度学习工具箱)

images = [imageInputLayer([size(S,1),size(S,2),1], images = [imageInputLayer([size(S,1), 1],]“归一化”“没有”16) convolution2dLayer(10日,“填充”“相同”maxPooling2dLayer(10,“步”32岁的,2)convolution2dLayer (5“填充”“相同”maxPooling2dLayer(10,“步”32岁的,2)convolution2dLayer (5“填充”“相同”maxPooling2dLayer(10,“步”32岁的,2)convolution2dLayer (5“填充”“相同”maxPooling2dLayer(5,“步”32岁的,2)convolution2dLayer (5“填充”“相同”reluLayer averageepooling2dlayer (2,“步”,2) softmaxLayer (5) softmaxLayer classificationLayer
图层数组:1”图像输入400 x144x1图片2”卷积16 10 x10旋转步[1]和填充“相同”3“批量标准化批量标准化4”ReLU ReLU 5”麦克斯池10 x10马克斯池步(2 - 2)和填充[0 0 0 0]6”卷积32 5 x5旋转步[1]和填充“相同”7”批量标准化批量正常化8“ReLU ReLU 9”麦克斯池10 x10马克斯池步(2 - 2)和填充[0 0 0 0]10“卷积32 5 x5的隆起与步幅[1]和填充相同11”批量标准化批量标准化12“ReLU ReLU 13”马克斯池10 x10马克斯池步(2 - 2)和填充[0 0 0 0]14“卷积32 5 x5旋转步[1]和填充“相同”15“批量标准化批量标准化16”ReLU ReLU 17”麦克斯池5 x5 Max池步(2 - 2)和填充(0 0 0 0)18”卷积32 5 x5旋转步[1]和填充“相同”19“批量标准化批量正常化20”ReLU ReLU 21“平均池2 x2平均池与stride[2 2]和填充[0 0 0]22 "全连接5全连接层23 " Softmax Softmax 24

指定优化求解器和超参数来训练CNN使用trainingOptions.本例使用ADAM优化器和128的迷你批处理大小。使用CPU或GPU训练网络。使用GPU需要并行计算工具箱™。要查看支持的图形处理器,请参见金宝appGPU支金宝app持情况(并行计算工具箱).其他参数请参见trainingOptions(深度学习工具箱).这个例子使用GPU进行训练。

选择= trainingOptions (“亚当”...“ExecutionEnvironment”“图形”...“MiniBatchSize”, 128,...“MaxEpochs”30岁的...“InitialLearnRate”1飞行,...“LearnRateSchedule”“分段”...“LearnRateDropFactor”, 0.1,...“LearnRateDropPeriod”10...“洗牌”“every-epoch”...“详细”假的,...“阴谋”“训练进步”);

分类信号没有汽车噪音

在没有汽车噪音的情况下加载数据集并使用helper函数helperPlotTrainData要绘制训练数据集中五个类别中的每个类别的一个示例,

负载(fullfile (tempdir“PedBicCarData”“trainDataNoCar.mat”))%负荷训练数据集负载(fullfile (tempdir“PedBicCarData”“testDataNoCar.mat”))%负载测试数据集负载(fullfile (tempdir“PedBicCarData”“TF.mat”))%加载时间和频率信息helperPlotTrainData (trainDataNoCar trainLabelNoCar T、F)

训练你创造的CNN。您可以在培训过程中查看准确性和损失情况。在30个时代,训练过程达到了几乎95%的准确率。

trainedNetNoCar = trainNetwork (trainDataNoCar、trainLabelNoCar层,选择);

使用训练有素的网络和分类函数获取测试数据集的预测标签testDataNoCar.的变量predTestLabel包含网络预测。在没有汽车噪声的情况下,该网络对测试数据集的准确率约为95%。

predTestLabel =分类(trainedNetNoCar testDataNoCar);testAccuracy = mean(predTestLabel == testLabelNoCar)
testAccuracy = 0.9530

使用混淆矩阵查看关于每个类别的预测性能的详细信息。训练后的网络的混淆矩阵表明,在每个类别中,网络对测试数据集中信号的标签都有很高的准确性。

图confusionchart (testLabelNoCar predTestLabel);

用汽车噪声分类信号

为了分析汽车噪声的影响,对含有汽车噪声的数据进行分类trainedNetNoCar网络,训练时没有汽车噪音。

加载汽车噪声损坏的测试数据集testDataCarNoise.mat

负载(fullfile (tempdir“PedBicCarData”“testDataCarNoise.mat”))

将汽车噪声破坏测试数据集输入网络。由于网络没有看到包含汽车噪声的训练样本,测试数据集的预测准确率明显下降到70%左右。

predTestLabel =分类(trainedNetNoCar testDataCarNoise);testAccuracy = mean(predTestLabel == testLabelCarNoise)
testAccuracy = 0.7176

混淆矩阵表明,大多数预测错误发生在网络从“行人”、“行人+行人”或“行人+自行车”类别中接收场景并将其分类为“自行车人”时。

confusionchart (testLabelCarNoise predTestLabel);

汽车噪声严重影响了分类器的性能。为了解决这个问题,使用包含汽车噪音的数据来训练CNN。

通过将汽车噪声添加到训练数据集对CNN进行再训练

加载受汽车噪声影响的训练数据集trainDataCarNoise.mat

负载(fullfile (tempdir“PedBicCarData”“trainDataCarNoise.mat”))

利用受汽车噪声干扰的训练数据集对网络进行再训练。在30个时代,训练过程达到了近90%的准确率。

trainedNetCarNoise = trainNetwork (trainDataCarNoise、trainLabelCarNoise层,选择);

将汽车噪声破坏测试数据集输入网络trainedNetCarNoise.预测准确率约为87%,比无汽车噪声样本训练的网络性能高出约15%。

predTestLabel =分类(trainedNetCarNoise testDataCarNoise);testAccuracy = mean(predTestLabel == testLabelCarNoise)
testAccuracy = 0.8728

混淆矩阵表明了网络trainedNetCarNoise在预测有一个行人的场景和有两个行人的场景时表现得更好。

confusionchart (testLabelCarNoise predTestLabel);

案例研究

为了更好地理解网络的性能,请检查其对重叠签名的分类性能。这一节只是为了举例说明。由于GPU训练的不确定性行为,当你重新运行这个例子时,你可能不会在本节得到相同的分类结果。

例如,汽车噪声损坏的测试数据的特征#4,它没有汽车噪声,有两个具有重叠微多普勒特征的自行车。网络准确预测现场有两名骑车人。

k = 4;显示亮度图像(T、F testDataCarNoise (:,:,:, k))轴xy包含(“时间(s)”) ylabel (的频率(赫兹))标题(“地面实况:”+ +字符串(testLabelCarNoise (k))”,预测:“+字符串(predTestLabel (k)))

从情节来看,签名似乎只来自一个骑自行车的人。加载数据CaseStudyData.mat场景中两个物体的。数据包含沿快时间求和的返回信号。对每个信号应用STFT。

负载CaseStudyData.matM = 200;FFT窗长β= 6;%的窗口参数w = kaiser (M,β);% kaiser窗地板(R = 1.7 * (m - 1) /(β+ 1);%粗略的估计noverlap =先生;%重叠长度(Sc, F, T) = stft (x, 1 / Tsamp,“窗口”w,“FFTLength”M * 2,“OverlapLength”, noverlap);2 = 1:2次要情节(1、2、2)显示亮度图像(T F 10 * log10 (abs (Sc (:,: ii))))包含(“时间(s)”) ylabel (的频率(赫兹))标题(“自行车”)轴广场xy标题([“自行车”Num2str (ii)]) c = colorbar;c.Label.String =“数据库”结束

2号自行车手的签名的振幅比1号的要弱得多,两个自行车手的签名是重叠的。当它们重叠时,这两个签名在视觉上无法区分。然而,神经网络可以正确地分类场景。

另一个有趣的例子是,当网络混淆了汽车噪音和骑自行车的人,如在汽车噪音损坏的测试数据的签名#267:

图k = 267;显示亮度图像(T、F testDataCarNoise (:,:,:, k))轴xy包含(“时间(s)”) ylabel (的频率(赫兹))标题(“地面实况:”+ +字符串(testLabelCarNoise (k))”,预测:“+字符串(predTestLabel (k)))

与汽车相比,骑自行车的人的特征较弱,而且特征有汽车噪音的尖峰。由于汽车的特征与骑自行车或低速行走的行人的特征极为相似,且微多普勒效应很小,网络对场景的错误分类的可能性很大。

参考文献

[1]陈,V. C.雷达中的微多普勒效应.伦敦:Artech House, 2011。

Gurbuz, S. Z.和Amin, M. G.。基于深度学习的雷达人体运动识别:室内监测的应用前景IEEE信号处理杂志.2019年第36卷第4期16-28页。

比利时风信子,D.,陈冠希。77 GHz汽车雷达传感器行人和自行车的微多普勒特性在第十一届欧洲天线与传播会议,2912 - 2916。巴黎:欧洲天线与传播协会,2017。

A.罗伯逊,R.默里-史密斯和F.费奥拉内利。“基于汽车雷达和深度神经网络的不同运动目标的实用分类”。雷达,声纳和导航.第12卷第10期,2017年,第1082-1089页。

Parashar, K. N., M. C. Oveneke, M. Rykunov, H. Sahli, and A. Bourdoux。基于卷积自动编码器的微多普勒特征提取用于低延迟目标分类在2017 IEEE雷达会议(RadarConf), 1739 - 1744。西雅图:IEEE 2017。