id-cnn的去斑精度和泛化能力肯定还能往上窜一窜

合成孔径雷达(SAR)凭借能穿透云雾和昼夜成像的本事,成了监测地表的好帮手,可惜乘性斑点噪声总是像层马赛克挡着看不清楚。以前的去斑法子大多得靠滤波或者统计模型,想在保住边缘和压掉噪声之间找平衡,难上加难。这篇文章里的ID-CNN模型,头一回把端到端学习拉进了SAR图像处理这摊事儿。它不需要像以前那样先取对数再反演的那一套繁杂步骤,直接用一组卷积层去猜斑点,然后把它从图像里抠出来,流程一下子就变简单了。 噪声模型这块,假设有张带噪的图Y,干净的图X,还有噪声F,咱们能把关系式写成Y = X乘以F。这里的F服从伽马分布,是SAR特有的乘性毛病。直接把图像丢进对数域虽然能把噪声变得线性,但还得额外做一遍对数跟反对数的运算,这不仅容易出数值不稳定的问题、还会掉一些信息;再说了,这种分开的两步走没法子一起联合起来优化。这篇文章有个好点子,干脆把Y看作X跟F的倒数相乘(F′),也就是Y = X除以F′。网络只要把F′估出来,再经过个除法残差层就能把斑点抵消掉,这就既保住了端到端的特性,又不用怕数值溢出了。 ID-CNN的架构也挺讲究:噪声估计子用了八层卷积来“磨镜片”,除了最后一层以外,每层都放了64个1×1的滤波器加上批归一化和ReLU。为了不让边缘混叠太严重,步长一直设成1;为了缓解深层梯度消失的麻烦,还搞了个跳过连接把浅层的特征直接加到深层去。至于网络末端的除法残差层,激活函数选了Tanh把输出压在[-1,1]之间。这里面做的Y除以估计的F′的操作能直接把斑点消掉。 损失函数这块儿选了欧氏距离加上TV正则这种黄金组合。先看看像素级的欧氏损失怎么算;再就是为了防止出现那种像楼梯一样的伪影,加了个TV损失来鼓励空间平滑;最后把这俩的线性组合当总损失值。 实验部分先搞了个合成数据集:拿UCID和BSD-500这俩库的数据来当底子,通过随机乘性斑点操作搞出3665对图像。每对图都是256×256大小的,训练集、验证集和测试集按7:1:2的比例分好。 在合成测试集上试了一把,ID-CNN的PSNR提升了大概3分贝、SSIM涨了约0.04;换到真实SAR数据里看效果也不错——道路建筑的轮廓变清楚了,斑点基本都看不到了。 最后小结一下:ID-CNN用端到端的路子把深度学习带到了SAR去斑的领域。它通过除法残差层把噪声估计和图像重建一次性搞定了。实验证明这套方法不管是在合成还是真实的数据上都有明显的进步。给以后做多通道、多极化SAR处理的人打下了基础。等到更大规模的训练数据和更高分辨率的图一到位,ID-CNN的去斑精度和泛化能力肯定还能往上窜一窜。