目标检测雷达目标cfar检测算法(代码片段)

ZhiZhao ZhiZhao     2022-11-07     449

关键词:

目录

一、概述

1、基本概念

雷达的检测过程可用门限检测来描述。几乎所有的判断都是以接收机的输出与某个门限电平的比较为基础的,如果接收机输出的包络超过了某一设置门限,就认为出现了目标。
雷达在探测时会受到噪声、杂波和干扰的影响,因而采用固定门限进行目标检测时会产生一定的虚警,特别是当杂波背景起伏变化时虚警率会急剧上升,严重影响雷达的检测性能。因此,根据雷达杂波数据动态调整检测门限,在虚警概率保持不变的情况下实现目标检测概率最大化,这种方法称为恒虚警率(Constant False Alarm Rate,CFAR)检测技术。

2、基础知识

雷达在判决过程中,可能会出现两类错误。第一类是在没有目标时判断为有目标,这类错误称为虚警。另一类是在有目标时判断为没有目标,这类错误称为漏警。以上两类错误以一定的概率出现,分别称为虚警概率和漏警概率。

二、CFAR检测算法

目前,研究人员针对各种杂波环境下提出了许多高效的CFAR检测算法,大体可分为两类:一类是均值类CFAR(CA-CFAR)算法,该类算法应用的前提是假设背景杂波是均匀分布的;另一类是有序统计类CFAR(OS-CFAR)算法,这类算法是为了应对邻域内多目标情况而设计的。不同CFAR检测算法各有优劣,都是针对具体情况而设计,我们只需要学习CFAR的基本原理以及熟悉几种典型的CFAR检测算法即可。

1、基本原理

CFAR检测器的输入一般包括检测单元 Y Y Y 2 n 2n 2n 个参考单元。参考单元位于检测单元两侧,前后各 n n n 个。保护单元主要用在单目标情况下,防止目标能量泄漏到参考单元影响检测效果。设参考门限电平为 V T H V_TH VTH V T H = T × Z V_TH=T×Z VTH=T×Z,其中: Z Z Z 为总的杂波功率水平的估计, T T T 为门限因子,则当 Y > V T H Y>V_TH Y>VTH 时,认为有目标;反之,认为没有目标。
CFAR算法的处理流程如下图所示:


一般情况下,杂波同噪声相互独立,且平方律检波后都满足指数分布。参考单元的概率密度函数为:

H 0 H_0 H0 表示为没有目标, P [ Y > T Z ∣ H 0 ] P[Y>TZ|H_0] P[Y>TZH0] 则表示为在没有目标的条件下判断为有目标的概率,从而得到虚警概率的表达式为:

式中, μ μ μ 是噪声功率; Z Z Z 为随机变量,它的分布取决于CFAR算法的类型以及参考单元的分布; M Z ( u ) u = T / 2 μ M_Z(u)_u=T/2μ MZ(u)u=T/2μ 为矩母函数。

2、几种典型的CFAR检测算法

不同类型CFAR算法的差异主要体现为对参考单元处理的不同,亦为 Z Z Z 值选取的不同。在背景噪声独立同分布时,通过确定常数 T T T 来达到恒定的虚警概率。不同的检测算法,其确定常数 T T T 的方法也会相应的有所区别。下面将对几种典型CFAR算法的虚警概率表达式进行推导。

(1)CA(Cell Averaging)-CFAR检测算法

背景杂波功率水平 Z Z Z 的计算方式为 2 n 2n 2n个参考单元之和:
Z = ∑ i = 1 n X i + ∑ i = n + 1 2 n X i = ∑ i = 1 2 n X i Z=\\sum_i=1^nX_i+\\sum_i=n+1^2nX_i=\\sum_i=1^2nX_i Z=i=1nXi+i=n+12nXi=i=12nXi
在推导 P f a P_fa Pfa T T T 的关系之前,我们先给出伽马(Γ)分布的相关知识。
Γ Γ Γ 分布的概率密度函数为:

其中, α , β α,β αβ 是两个参数,当 α = 1 , β = 2 μ α=1,β=2μ α=1β=2μ时,式(3)就退化成为式(1)中的指数分布; Γ ( α ) Γ(α) Γ(α)就是数学中的伽马函数,对于正整数 α α α,有 Γ ( α ) = ( α − 1 ) ! Γ(α)=(α-1)! Γ(α)=(α1)
G ( α , β ) G(α,β) G(α,β) Γ Γ Γ 分布的概率分布函数,若 X X X 为服从 Γ Γ Γ 分布的随机变量,则有 :

X X X 的矩母函数为:

假设输入信号中的各变量满足独立同分布的条件,则对于 2 n 2n 2n个随机变量之和的矩母函数等于各随机变量的矩母函数之积,所以有:

将式(5)和式(6)以及 u = T / 2 μ u=T/2μ u=T/2μ 代入式(2),可得:

即可得到虚警概率 P f a P_fa Pfa 与门限因子 T T T 的关系:

(2)GO-CFAR、SO-CFAR检测算法

最大选择GO(Greatest Of)-CFAR是选取前面 n n n 个参考单元之和与后面 n n n 个参考单元之和中的大者作为背景杂波功率水平 Z Z Z ;而最小选择SO(Smallest Of)-CFAR是选取前面 n n n 个参考单元之和与后面 n n n 个参考单元之和中的小者作为背景杂波功率水平 Z Z Z

对于GO-CFAR算法,Z的概率密度函数为 f Z ( z ) f_Z(z) fZ(z),进而推导其虚警概率为 P f a , g o P_fa,go Pfa,go,如下式:

同理,可得到SO-CFAR算法的概率密度函数为 f Z ( z ) f_Z(z) fZ(z),虚警概率为 P f a , s o P_fa,so Pfa,so,如下式:

(3)OS-CFAR检测算法

顺序统计量OS(Order Statistic)CFAR的原理是先对参考单元从小到大排序,再选取第 k k k 个样本作为 Z Z Z
设 OS-CFAR 算法的虚警概率为 P f a , o s P_fa,os Pfa,os,根据参考文献中的公式推导可得:

k k k 为OS-CFAR中的参数,其值的选取对算法的检测性能有较大影响。

(4) 补充说明

GO、SO、OS三类CFAR检测算法的门限因子 T T T 难以用数学表达式表示,可以通过迭代运算的方式求解出来。
当求解出门限因子 T T T 后,便可以将其代入检测概率的表达式,得到在不同信噪比的条件下,检测概率的变化情况。
在参考文献[4]和[5]中给出了检测概率 P d P_d Pd 的计算方法。

三、不同CFAR检测算法性能对比

1、MATLAB仿真结果

为了比较不同CFAR算法的检测性能,建立CA、GO、SO、OS四类CFAR算法的检测概率与信噪比的关系曲线,信噪比设置为0~30dB,参考单元的数目 2 n 2n 2n 分别取16、24、32、48、64、128,保护单元左右各3个,虚警概率 P f a = 1 0 − 6 P_fa=10^-6 Pfa=106
MATLAB仿真结果如下图所示。

2、MATLAB代码

% ------ 程序功能:四类CFAR检测算法的检测概率与SNR的关系 %
clc
clear all;
close all;

%% 参数设置
R = 24;                     % 参考单元长度
n = R/2;                    % 半滑窗长度
k = R*3/4;                  % os-cfar的参数
P_fa = 1e-6;                % 虚警概率
SNR_dB = (0:30);            % 信噪比
SNR = 10.^(SNR_dB./10);     % 信号功率与噪声功率的比值
syms T;                     % 门限因子的符号变量
%% CA-CFAR
T_CA = P_fa^(-1/R)-1;           % CA-CFAR的门限因子
Pd_CA = (1+T_CA./(1+SNR)).^(-R);    % CA-CFAR的检测概率

%% SO-CFAR、GO-CFAR
Pfa_SO = 0;
syms T
for i = 0:n-1
    Pfa_SO = Pfa_SO+2*nchoosek(n+i-1,i)*(2+T)^(-(n+i));     % SO-CFAR的虚警概率表达式
end
T1_SO = solve(Pfa_SO == P_fa, T);       % 求解出虚警概率为P_fa时对应的门限因子T
T2_SO = double(T1_SO);
T_SO = T2_SO(T2_SO == abs(T2_SO));      % SO-CFAR的门限因子

Pfa_GO = 2*(1+T)^(-n)-Pfa_SO;           % GO-CFAR的虚警概率表达式
T1_GO = solve(Pfa_GO == P_fa, T);       % 求解出虚警概率为P_fa时对应的门限因子T
T2_GO = double(T1_GO);
T_GO = T2_GO(T2_GO == abs(T2_GO));      % GO-CFAR的门限因子

Pd_SO = 0;
Pd_GO = 0;
for j = 0:n-1
    Pd_SO = Pd_SO+2*nchoosek(n+j-1,j).*(2+T_SO./(1+SNR))查看详情  

autoware使用激光雷达进行目标检测(代码片段)

...环境感知一般的流程为:分割地面,从而减少地面的点对目标检测的影响点云聚类,将目标按照点的分布进行 查看详情

雷达编程实战之恒虚警率(cfar)检测

在雷达系统中,目标检测是一项非常重要的任务。检测本身非常简单,它将信号与阈值进行比较,超过阈值的信号则认为是目标信号,所以目标检测的真正工作是寻找适当的阈值。由于目标误检的严重后果,... 查看详情

雷达编程实战之恒虚警率(cfar)检测

在雷达系统中,目标检测是一项非常重要的任务。检测本身非常简单,它将信号与阈值进行比较,超过阈值的信号则认为是目标信号,所以目标检测的真正工作是寻找适当的阈值。由于目标误检的严重后果,... 查看详情

自动驾驶激光点云3d目标检测voxelnet论文简述(代码片段)

...自苹果公司算法团队,这篇论文对于刚学习激光雷达目标检测的同学来讲非常有参考价 查看详情

os-cfar

...分位数以获得检测阈值。  OS-CFAR旨在克服当干扰目标位于背景单元中时,单元平均CFAR(CA-CFAR)会导致检测性能下降的问题。CA-CFAR算法的主要问题是在强干扰附近容易出现漏检小目标的错误。由于目标和干扰靠得很近,... 查看详情

如何快速入门深度学习目标检测?(代码片段)

学习目标了解目标检测的任务知道目标检测的常用数据集知道目标检测算法的评价指标掌握非极大值NMS算法的应用了解常用的目标检测算法分类1.目标检测目标检测(ObjectDetection)的任务是找出图像中所有感兴趣的目标&#x... 查看详情

转:目标检测算法总结(代码片段)

目标检测是很多计算机视觉任务的基础,不论我们需要实现图像与文字的交互还是需要识别精细类别,它都提供了可靠的信息。本文对目标检测进行了整体回顾,第一部分从RCNN开始介绍基于候选区域的目标检测器,包括FastR-CNN... 查看详情

目标检测算法总结(代码片段)

转自:https://www.cnblogs.com/guoyaohua/p/8994246.html目标检测是很多计算机视觉任务的基础,不论我们需要实现图像与文字的交互还是需要识别精细类别,它都提供了可靠的信息。本文对目标检测进行了整体回顾,第一部分从RCNN开始介... 查看详情

目标检测算法改进-sppnet(详解)(代码片段)

目标检测算法之改进-SPPNet学习目标1.SPPNet1.1映射1.2spatialpyramidpooling2.SPPNet总结3.总结4.问题学习目标目标说明SPPNet的特点说明SPP层的作用【目标检测算法】R-CNN(详解)R-CNN的速度慢在哪?每个候选区域都进行了卷积操... 查看详情

目标检测算法r-cnn(详解)(代码片段)

目标检测算法之R-CNN学习目标1.目标检测-Overfeat模型1.1滑动窗口1.2Overfeat模型总结2.目标检测-R-CNN模型2.1完整R-CNN结构2.2候选区域(RegionofInterest)得出2.3CNN网络提取特征2.4特征向量训练分类器SVM2.5非最大抑制(NMS)2.... 查看详情

菜品识别系统(faster-rcnn目标检测算法)(代码片段)

目录一、Faster-RCNN目标检测算法的介绍二、效果展示三、环境配置四、图片数据集准备五、代码具体实现一、Faster-RCNN目标检测算法的介绍Faster-RCNN算法由于其较高的检测准确率成为主流的目标检测算法之一,相比较YOLO系列算... 查看详情

从零开始学习目标检测:yolo算法详解(代码片段)

从零开始学习目标检测:YOLO算法详解文章目录从零开始学习目标检测:YOLO算法详解1.🌟什么是目标检测?2.🌟传统的目标检测与基于深度学习的目标检测3.🌟目标检测算法的工作流程4.🌟目标检测可以干什... 查看详情

openmmlab目标检测(代码片段)

OpenMMLab目标检测1.目标检测简介1.1滑窗2.基础知识2.1边界框(BoundingBox)2.2交并比IntersectionOverUnion2.3置信度ConfidenceScore2.4非极大值抑制Non-MaximumSuppression2.5边界框回归BoundingBoxRegression2.6边界框编码BboxCoding3.两阶段目标检测算... 查看详情

目标检测基于matlabgui背景差分算法视频运动物体跟踪含matlab源码1915期(代码片段)

一、背景差分法和帧间差分法的车辆运动目标检测简介1引言运动目标检测是从图像序列中检测运动目标.通过运动目标检测可以得到图像中的运动目标,获取图像中的运动信息.运动目标检测在医学辅助诊断、航天航空、军事导弹... 查看详情

目标检测算法ssd(singleshotmultiboxdetector)(代码片段)

SSD:SingleShotMultiBoxDetector学习目标1.SSD1.1简介1.2结构1.3流程1.4Detector&classifier1.4.1PriorBox层-defaultboxes1.4.2localization与confidence2.训练与测试流程2.1train流程2.2test流程3.比较4.总结学习目标目标知道SSD的结构说明Detect 查看详情

目标检测算法fasterr-cnn(详解)(代码片段)

FasterR-CNN学习目标1.FasterR-CNN2.RPN原理2.1anchors3.FasterRCNN训练3.1FasterR-CNN的训练3.2候选区域的训练4.效果对比5.FasterR-CNN总结6.总结7.问题8.开源kerasFasterRCNN模型介绍学习目标目标了解FasterR-CNN的特点知道RPN的原理以及作用【目标检测算... 查看详情

yolo系列目标检测算法-yolov7(代码片段)

YOLO系列目标检测算法目录YOLO系列目标检测算法总结对比YOLOv1YOLOv2YOLOv3YOLOv4Scaled-YOLOv4YOLOv5YOLOv6YOLOv7深度学习知识点总结专栏链接:https://blog.csdn.net/qq_39707285/article/details/124005405此专栏主要总结深度学习中的知识点,从各大数据... 查看详情