主要内容

行人和自行车分类使用Deep学习

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

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

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

合成数据生成过程的仿真分析

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

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

numPed = 1;%行人实现的数量numBic = 1;%骑自行车的人数numCar=1;%汽车实现的数量[xPedRec、xBicRec、xCarRec、Tsamp]=帮助包散射信号(numPed、numBic、numCar);

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

[SPed,T,F]=helperDopplerSignatures(xPedRec,Tsamp);[SBic,~,~]=HelperDopperSignatures(xBicRec,Tsamp);[SCar,~,~]=helperdopperlsignatures(xCarRec,Tsamp);

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

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

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

结合对象

由于行人和骑车人的微多普勒特征不同,将单个实现分类为行人或骑车人相对简单。然而,将多个重叠的行人或骑车人分类,加上高斯噪声或汽车噪声,难度要大得多。

如果在同一时间的雷达的检测区域中存在多个对象时,接收的雷达信号的检测信号的来自所有对象的总和。作为一个例子,产生用于行人和骑自行车者与高斯噪声背景所接收的雷达信号。

%设置接收端的高斯噪声电平rx =分阶段。ReceiverPreamp (“收益”,25,“NoiseFigure”,10); xRadarRec=复数(零(大小(xPedRec));为了ii=1:size(xPedRec,3)xRadarRec(:,:,ii)=rx(xPedRec(:,:,ii)+xBicRec(:,:,ii));结尾

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

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

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

生成的训练数据

在此示例中,通过使用由对象的模拟实现中的具有变化的性质,例如,骑自行车的踏板踏以不同的速度和不同的高度以不同的速度行走的行人数据训练CNN。假设雷达被固定在原点,在一个实现中,一个或多个对象是均匀分布在分别沿X和Y轴,米的[5,45]和[-10,10]的矩形区域。

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

1)行人

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

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

  • 速度 - 均匀分布在[0,1.4的间隔H]米/秒,在哪里H是高度值

2)骑自行车

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

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

  • 齿轮传动比 - 一致分布在区间[0.5,6]

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

3)汽车

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

输入到卷积网络是由以分贝表示并归一化到[0,1],如该图所示谱图微多普勒签名:

雷达回波来自不同的物体和物体的不同部分。根据配置的不同,有些回报要比其他回报强得多。更高的回报往往掩盖了较弱的回报。对数缩放通过使收益强度具有可比性来增强特征。振幅归一化有助于CNN更快地收敛。

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

  • 现场有一个行人

  • 一个骑自行车的场景中存在

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

  • 两名行人出现在场景中

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

下载数据

这个例子的数据由20000行人,骑自行车20000,并且通过使用辅助函数产生12500个车信号的helperBackScatterSignalshelperDopplerSignatures.将信号分为两个数据集:一个是没有汽车噪声样本的数据集,一个是有汽车噪声样本的数据集。

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

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

以生成所述第二数据集(与汽车噪声),用于所述第一数据集的程序,除了使用汽车噪声被添加到签名的50%。有和无车签名的比例噪音是在训练和测试数据集相同。

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

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

数据文件如下:

  • trainDataNoCar.mat包含训练数据集trainDataNoCar以及它的标号集火车旅馆

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

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

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

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

网络架构

创建一个包含五个卷积层和一个完全连接层的CNN。前四个卷积层之后是批标准化层、校正线性单元(ReLU)激活层和最大池层。在最后一个卷积层中,最大池层被平均池层替换。输出层是softmax激活后的分类层。有关网络设计指南,请参阅深度学习技巧(深度学习工具箱)

层=[imageInputLayer([size(S,1),size(S,2),1],“归一化”'没有任何')convolution2dLayer(10,16,“填充”“相同”maxPooling2dLayer(10,'走吧'32岁的,2)convolution2dLayer (5“填充”“相同”maxPooling2dLayer(10,'走吧'32岁的,2)convolution2dLayer (5“填充”“相同”maxPooling2dLayer(10,'走吧'32岁的,2)convolution2dLayer (5“填充”“相同”)batchNormalizationLayer reluLayer 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

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

选择= trainingOptions (“亚当”...“执行环境”“gpu”...“MiniBatchSize”, 128,...“MaxEpochs”30岁的...'italllearnrate',1e-2,...“LearnRateSchedule”“分段”...'学习ropfactor',0.1%,...“LearnRateDropPeriod”,10,...“洗牌”“every-epoch”...“详细”假的,...“情节”“培训进度”);

分类签名不车内噪音

加载无汽车噪音的数据集,并使用辅助功能helperPlotTrainData要绘制训练数据集中五个类别中每个类别的一个示例,

负载(完整文件(TEMPDIR,“PedBicCarData”“trainDataNoCar.mat”))%负荷训练数据集负载(完整文件(TEMPDIR,“PedBicCarData”“testDataNoCar.mat”))%负载测试数据集负载(完整文件(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

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

figure confusionchart(testLabelNoCar、predTestLabel);

利用汽车噪声对特征进行分类

为了分析汽车噪声的影响,对含有汽车噪声的数据进行分类培训生网络,在没有汽车噪音的情况下进行训练。

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

负载(完整文件(TEMPDIR,“PedBicCarData”'testDataCarNoise.mat'))

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

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

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

混淆图(testLabelCarNoise、predTestLabel);

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

通过将汽车噪音添加到训练数据集中来重新训练CNN

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

负载(完整文件(TEMPDIR,“PedBicCarData”'trainDataCarNoise.mat'))

使用汽车噪声损坏的训练数据集对网络进行再训练。在30个时代中,训练过程几乎达到了90%的准确率。

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

将汽车噪声测试数据集输入网络trainedNetCarNoise.预测精度是大约87%,这比没有汽车噪声样本训练网络的性能高约15%。

predTestLabel =分类(trainedNetCarNoise testDataCarNoise);testAccuracy = mean(predTestLabel == testLabelCarNoise)
测试精度=0.8728

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

混淆图(testLabelCarNoise、predTestLabel);

案例研究

为了更好地了解网络的性能,研究其重叠的特征分级性能。本节仅仅是为了说明。由于GPU训练的不确定性的行为,你可能不,当你重新运行这个例子得到本节中的相同的分类结果。

例如,没有汽车噪声的汽车噪声损坏测试数据的特征码#4有两个自行车手,具有重叠的微多普勒特征码。网络正确预测场景中有两个自行车手。

K = 4;于imagesc(T,F,testDataCarNoise(:,:,:,k))的轴xy包含(“时间(s)”) ylabel ('频率(Hz)')标题(“地面真相:”+ +字符串(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,“重叠长度”, noverlap);为了ii=1:2子批次(1,2,ii)图像Sc(T,F,10*log10(abs(Sc(:,:,ii)))xlabel(“时间(s)”) ylabel ('频率(Hz)')标题(“自行车运动员”)轴心广场xy标题([“自行车”num2str(II)])C =彩条;c.Label.String =“dB”结尾

骑自行车者2号的信号幅度比骑自行车者1号的信号幅度小得多,而且两个骑自行车者的信号重叠。当它们重叠时,无法从视觉上区分这两个签名。但是,神经网络可以正确地对场景进行分类。

另一个令人感兴趣的情况是,当网络将汽车噪音与骑自行车的人混淆时,如汽车噪音损坏测试数据的签名#267所示:

图k = 267;于imagesc(T,F,testDataCarNoise(:,:,:,k))的轴xy包含(“时间(s)”) ylabel ('频率(Hz)')标题(“地面真相:”+ +字符串(testLabelCarNoise (k))”,预测:“+串(predTestLabel(K)))

骑车的签名是弱相比,这款车的,和签名具有从车内噪声尖峰。因为汽车的签名非常类似,一个骑自行车蹬踏或低速行人行走的,并具有小微多普勒效应,有很高的可能性,即网络将现场误判。

工具书类

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

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

[3] Belgiovane,D.,和C. C.陈。“行人的微多普勒特征及自行车汽车雷达传感器在77 GHz的。”在第十一届欧洲天线与传播会议,2912–2916. 巴黎:欧洲天线和传播协会,2017年。

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

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