R2AU-Net: 基于循环残差注意力和半监督学习范式的道路裂缝分割算法

简介: R2AU-Net: 基于循环残差注意力和半监督学习范式的道路裂缝分割算法

6fc4641149d9d70d62c89c2a364bce4d.png

Title: A FEW-SHOT ATTENTION RECURRENT RESIDUAL U-NET FOR CRACK SEGMENTATION


Paper: https://arxiv.org/pdf/2303.01582.pdf


Code: https://github.com/ikatsamenis/CrackMap


导读

从图片中识别道路破损程度是道路养护的重要日常工作,随着人工智能领域的兴起,深度学习技术在道路基础设施的自动视觉检查中起着至关重要的作用。

69b84f3b35b427270d205d5d47673586.png

为更好的动态适应用户反馈,本文主要探讨了一种关于小样本语义分割的道路裂缝自动分割算法,其基于具有循环残差和注意力模块的U-Net架构——Recurrent Residual and Attention U-Net。当一些新的校正样本被送入分类器时,采用再训练策略可以动态地微调U-Net的权重。大量实验表明,在名为CrackMap的新数据集上,所提出的小样本R2AU-Net框架在Dice和IoU指标方面优于其他最先进的网络,


背景介绍

基于道路裂缝分割的工作主要可分为两类,即基于传统图像处理算法和基于现代深度学习算法。


传统方法

基于传统图像处理的方法大都是一些手工设计的模板按照一定的规律进行特征提取,如利用边缘、灰度、纹理等信息,此类方法不仅费时费力,极度依赖于专家经验,而且鲁棒性也非常差,只能适用于特定的环境下。


深度学习

基于深度学习的方法大都是基于卷积神经网络或者Transformer等架构进行端到端的特征提取。以道路裂缝分割为例,可以建模为一个二值分割网络,以原图作为输入,掩码图作为输出,通过训练自动学习出最优的参数。

e14445138ceff463a284bfb7b6d938e0.png

方法

Framework

71cecf1c14da7836196d2da9b6089e3f.png

如图1(a)所示,本文基于U-Net网络并结合循环残差和注意力模块提出了一种适用于道路裂缝分割的网络,称为R2AU-Net。与标准U-Net相比,R2AU-Net 结合了递归残差卷积层,可确保更好地表示分割任务的特征和注意力区域,以突出显示通过跳跃连接传递的显着特征。


此外,本文针对以往方法仅能从以训练的标注数据中学习的限制,引入了一种基于 R2AU-Net 的半监督学习范式few-shot refinement方案,它能够根据用户的反馈灵活的调整模型的行为和权重,进一步提高分割性能,如图1(b)所示.


R2AU-Net

R2AU-Net 这块没什么好讲的,拆开看就是一个Recurrent Residual U-Net + Attention U-Net 的超级缝合怪。作者强调该“魔改”模型是特意针对分割RGB图像中的裂缝而设计的,因此提供了对自动化和机器人驱动的维护过程至关重要的各种指标和属性的详细信息,例如几何形状、类型、方向、长度 、密度和裂纹形状。


关于语义分割这一块这里我们不会详细描述,感兴趣的小伙伴可以直接跳转到我们的语义分割大总结,强烈安利给还没看过的小伙伴,分上、下两个篇章:

d78409fbe91b852d357aeaa062607ca9.png6fab18ae678fbf6023e23c523b32091a.png

995c48099ae793d07fe79dc555a8375b.png

Few-shot learning for segmentation refinement



如上图所示,这是一种动态整改方案,可以基于用户反馈,提供网络的整体性能。简单点讲,这其实就是增量学习的范畴,其核心思想是如何保持原有知识尽可能不被遗忘的前提下学习新的知识。

具体地,对于一个给定的图像位置 ( i , j ) (i, j)(i,j),我们用 image.png 表示当前位置所对应的像素值。其次,对于每个输入 n,我们计算出它们的平均图像置信度得分image.png如下所示:

image.png

其中 C和 R分别对应于图像的列和行。同时,image.png

否则为 0,其中检测阈值设置为 0.5。因此,置信度分数仅考虑深度分类器提供的图像 n nn 上的破裂区域。随后,我们根据 In分数对图像进行排名。排名较低的图像的 5% 提供给工程师专家,他们纠正模型的分割输出。最后,经过细化(纠正)的小样本标注数据被反馈到网络以更新模型的权重。


关于增量学习的更多内容解读请移步至下方链接观看。

1f539ff769b10d4d59ec9e85dae06bc2.png

实验

f5e24ae511d038532683c2883a5deee6.png

9f9ddc89b5fce16ff8048ecd84e8ae7a.png

总结

今天给大家介绍的这篇工作本身没什么创新性,旨在传递给大家一个观点。就是现有的网络基础架构其实已经发展得很成熟了,无论是经典的 CNNs 还是近几年大火的 Transformer,现在新出的工作几乎都是大力出奇迹的节奏,通过堆积显卡跑消融实验发篇论文,真心不建议大多数小伙伴去卷这个方向。反而像今天这篇工作,笔者感觉真挺好,结合已有的工作探索一些新的“组合”,多去尝试解决一些实际的场景。


写在最后

如果您也对人工智能和计算机视觉全栈领域感兴趣,强烈推荐您关注有料、有趣、有爱的公众号『CVHub』,每日为大家带来精品原创、多领域、有深度的前沿科技论文解读及工业成熟解决方案!欢迎添加小编微信号:cv_huber,一起探讨更多有趣的话题!


目录
相关文章
|
6天前
|
开发框架 算法 搜索推荐
C# .NET面试系列九:常见的算法
#### 1. 求质数 ```c# // 判断一个数是否为质数的方法 public static bool IsPrime(int number) { if (number < 2) { return false; } for (int i = 2; i <= Math.Sqrt(number); i++) { if (number % i == 0) { return false; } } return true; } class Progr
67 1
|
6天前
|
机器学习/深度学习 存储 计算机视觉
【CVPR2020】ECA-Net:深度卷积神经网络的有效通道注意力
【CVPR2020】ECA-Net:深度卷积神经网络的有效通道注意力
268 1
【CVPR2020】ECA-Net:深度卷积神经网络的有效通道注意力
|
6天前
|
机器学习/深度学习 监控 算法
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
yolov8+多算法多目标追踪+实例分割+目标检测+姿态估计(代码+教程)
174 1
|
6天前
|
算法 数据挖掘 计算机视觉
Python利用K-Means算法进行图像聚类分割实战(超详细 附源码)
Python利用K-Means算法进行图像聚类分割实战(超详细 附源码)
223 0
|
6天前
|
算法 TensorFlow 算法框架/工具
基于直方图的图像阈值计算和分割算法FPGA实现,包含tb测试文件和MATLAB辅助验证
这是一个关于图像处理的算法实现摘要,主要包括四部分:展示了四张算法运行的效果图;提到了使用的软件版本为VIVADO 2019.2和matlab 2022a;介绍了算法理论,即基于直方图的图像阈值分割,通过灰度直方图分布选取阈值来区分图像区域;并提供了部分Verilog代码,该代码读取图像数据,进行处理,并输出结果到&quot;result.txt&quot;以供MATLAB显示图像分割效果。
|
6天前
|
算法 测试技术 C++
【动态规划】【数学】【C++算法】805 数组的均值分割
【动态规划】【数学】【C++算法】805 数组的均值分割
|
6天前
|
算法 C#
C# .Net Core bytes转换为GB/MB/KB 算法
C# .Net Core bytes转换为GB/MB/KB 算法
50 0
|
6天前
|
算法 测试技术 C#
【动态规划】【数学】【C++算法】805 数组的均值分割
【动态规划】【数学】【C++算法】805 数组的均值分割
|
6天前
|
存储 算法 JavaScript
|
6天前
|
机器学习/深度学习 算法 搜索推荐
快速排序:高效分割与递归,排序领域的王者算法
快速排序:高效分割与递归,排序领域的王者算法
40 1