A Density Clustering-Based CFAR Algorithm for Ship Detection in SAR Images
摘要——传统恒虚警率 (CFAR) 算法中基于滑动窗口的杂波选择策略,导致在复杂环境下同一目标的像素之间存在不同的杂波质量。为了解决这个问题,本文提出了一种基于密度聚类的改进 CFAR 算法。首先,使用双参数 CFAR 来检测船舶目标。然后,根据空间距离和检测阈值(spatial distance and detection threshold)对每个检测到的目标像素执行密度聚类,以提高目标检测精度。最后,通过利用像素被聚类的次数来消除由散斑噪声(speckle noise)引起的虚警。
实验结果表明,与用于合成孔径雷达 (SAR) 图像中船舶检测的常规 CFAR 算法和超像素级 CFAR 检测器 (SP-CFAR) 相比,所提出的算法在异构杂波场景和密集目标场景中实现了超过 14.8% 的检测精度提升,同时在强噪声环境下保持了不高于 0.13% 的低虚警率。
索引术语——恒虚警率 (CFAR),密度聚类,船舶检测,合成孔径雷达 (SAR)。
II. CFAR DETECTORS
传统的 CFAR 算法是一种基于滑动窗口的自适应阈值检测算法 [15]。我们可以基于虚警概率 PfaP_{fa}Pfa 获得检测阈值 TTT 。假设一个概率密度函数为 p(x)p(x)p(x) 的分布,标准的 CFAR 公式表明,检测阈值 TTT 和虚警概率 PfaP_{fa}Pfa 之间的关系如下
Pfa=∫T∞p(x)dx.(1)P_{fa} = \int_{T}^{\infty} p(x)dx. \tag{1}Pfa=∫T∞p(x)dx.(1)
在这封信中,我们使用伽马分布 [12] 来对背景杂波进行建模。一个形状参数为 LLL 、均值为 μ\muμ 的伽马分布的概率密度函数是
p(x)=(Lμ)LxL−1e−Lx/μΓ(L),L,μ,x>0(2)p(x) = \left(\frac{L}{\mu}\right)^L \frac{x^{L-1}e^{-Lx/\mu}}{\Gamma(L)}, \quad L, \mu, x > 0 \tag{2}p(x)=(μL)LΓ(L)xL−1e−Lx/μ,L,μ,x>0(2)
其中 Γ(α)=∫0∞yα−1e−ydy\Gamma(\alpha) = \int_{0}^{\infty} y^{\alpha-1}e^{-y}dyΓ(α)=∫0∞yα−1e−ydy 是伽马函数。参数估计是使用矩估计法进行的。
III. IMPROVED CFAR BASED ON DENSITY CLUSTERING
基于密度的聚类算法将簇定义为密度相连点的最大群组,允许对任意形状进行聚类。基于密度的带噪声应用空间聚类 (DBSCAN) 算法 [16] 是一种代表性的基于密度的聚类算法,它需要两个手动设置的参数:MinPts\text{MinPts}MinPts 和 eee 。MinPts\text{MinPts}MinPts 表示一个簇内存在所需的最少点数,而 eee 定义了像素被包含在一个簇内所必需的最小距离。该算法从一个正在访问的样本开始,并探索其半径 eee 内的相邻样本。如果相邻样本的数量大于或等于 MinPts\text{MinPts}MinPts ,则正在访问的样本及其相邻样本被分配到同一个簇,并且该正在访问的样本被标记为已访问。然后,它迭代地寻找簇中未访问样本的邻域样本以扩展该簇,直到簇中所有的点都被标记为已访问。
在传统的CFAR算法中,是为不同的像素点采用各自不同的滑动窗口来获取杂波样本的。此举导致,在复杂环境下,同一船舶目标内部不同位置的像素所对应的杂波质量良莠不齐。由于杂波质量不佳,一些船舶像素点可能会因此被漏检。SAR图像的一个普遍特征是:船舶目标表现为高强度像素的密集分布,而背景则通常呈现为这类像素的稀疏分布。基于这一特征,我们将每一个由传统CFAR算法检测到的目标像素都视为一个种子点。
海面并非绝对平滑。风、浪等会造成海面粗糙,形成一些随机的散射体,偶尔会将一部分能量散射回雷达,形成一些孤立的、随机分布的亮点。这就是“稀疏分布”的来源。
我们针对每一个由传统CFAR算法识别出的目标像素,都对其执行一轮基于空间距离和检测阈值的聚类操作。在聚类过程中,我们遵循“聚类共享策略”,期间CFAR阈值 TTT 保持固定。对于待测像素点周围区域内任何强度大于 TTT 的潜在目标像素,都会被添加到与该待测像素相同的簇中。对于那些可能因杂波质量不佳而被传统CFAR算法漏检的目标像素,可以通过应用当前待测像素(即种子点)所对应的检测阈值来对其进行再判断,从而有效地减少漏检。完整的算法流程图如图 1 所示。
- 统计分析:对这些样本进行统计分析,估算出背景杂波的统计模型参数(例如,如果您之前看到的,估算伽马分布的参数 LLL 和 μ\muμ)。
- 计算阈值 T:将这些参数代入公式(1)(即 PfaP_{fa}Pfa 与检测阈值 TTT 之间的关系式),计算出一个可以保证恒虚警率的、动态的、专门用于当前这个待测像素的检测阈值 TTT。
当双参数 CFAR 算法检测到一个目标像素时,便会在此像素上随之启动一个基于密度的聚类过程。需要手动设定邻域大小 n×nn \times nn×n 以及邻域内像素数量的阈值 MinPtsMinPtsMinPts 。空间距离和检测阈值被结合起来用以确定邻域像素。邻域内强度大于当前检测阈值的像素被视为邻域像素。
该算法过程可分为以下六个步骤:
-
当双参数 CFAR 检测到目标像素时,将该像素分配到一个簇并对其进行访问。
-
通过结合空间距离和检测阈值,找到当前访问像素的邻域像素。在当前访问像素半径范围内的像素被视为邻域像素。我们将半径设置为 2(n−1)/2\sqrt{2}(n-1)/22(n−1)/2 ,并使用以下方程组来计算样本点之间的距离:
D(i,j)=τ(xi−xj)2+(yi−yj)2D(i, j) = \tau\sqrt{(x_i - x_j)^2 + (y_i - y_j)^2}D(i,j)=τ(xi−xj)2+(yi−yj)2
τ={1,if Ij>T∞,else(3) \tau = \begin{cases} 1, & \text{if } I_j > T \\ \infty, & \text{else} \end{cases} \tag{3} τ={1,∞,if Ij>Telse(3)
其中 iii 和 jjj 是不同的像素。τ\tauτ 是一个基于检测阈值的距离因子。IjI_jIj 代表像素 jjj 的强度。TTT 是从当前杂波计算出的检测阈值。
-
如果邻域像素的数量大于或等于 MinPtsMinPtsMinPts ,则将邻域像素添加到该簇中,并将当前访问像素标记为已访问。如果邻域像素的数量小于 MinPtsMinPtsMinPts ,则直接将当前访问像素标记为已访问。
-
在簇中寻找新的未访问像素作为当前访问像素,并返回到步骤 2)。如果簇中所有像素都已被标记为已访问,则一个完整的簇就形成了,并进入步骤 5)。
-
使用双参数 CFAR 寻找新的目标像素,并返回到步骤 1);如果 SAR 图像中的所有像素都已被双参数 CFAR 处理完毕,则进入步骤 6)。
-
根据像素被聚类的次数来最终确定目标像素。