ClassMix: Segmentation-Based Data Augmentation for Semi-Supervised Learning学习笔记

ClassMix结合伪标签和一致性正则化,优化了CutMix中的标签污染问题。它通过混合图像和标签,强制网络预测保持一致,利用Mean-Teacher和熵最小化策略。实验在Cityscapes和PascalVOC2012数据集上进行,表明在某些情况下能取得SOTA性能,但在类别较少或分布不同的数据集上效果会受影响。

相关介绍

从DAFormer溯源到这篇文章,ClassMix主要是集合了伪标签和一致性正则化,思想来源于CutMix那条研究路线,但是优化了CutMix中的标签污染的情况,后续会说。一致性正则化的半监督学习在图像分类中取得了显著的进展,主要利用强大的数据增强对未标记图片加强一致性,然而在半监督语义分割中被证明是无效的。

主要思想

  1. 从一张图片中随机选取一半的类粘贴到另外一张图片上,形成一个新的样本,标签也不需要真正注释,只需要获取原来的两张图对应的标签即可。
  2. 利用网络学习原始图像的像素级语义(利用有标签的数据集训练网络),对混合的图像的预测被强制训练成和混合前一致。
  3. 根据分类一致性正则化趋势,还继承了熵最小化,来鼓励网络进行低熵预测。

方法

在这里插入图片描述
如图所示,ClassMix使用两张没有标记的图片A、B,然后分别通过网络f(θ)生成对应的Sa、Sb。随机获取Sa中的一半的类,然后获取到类别像素点的位置为1,其余位置为0,生成一个Mask掩码M,把A、B两张图片作为输入同时加上掩码M,生成一张增强的图片Xa,其对应的标签Ya,通过Sa,Sb和M获取对应的标签Ya,由于混合策略的性质,刚开始可能会出现人工标签,但随着训练的进行,会越来越少。
伪代码如下:
在这里插入图片描述

Mean-Teacher

阅读一下 Mean teachers are better role models: Weight-aver

### 查询依赖库的可用版本列表 以下是对四个依赖库的可用版本列表的查询和总结: #### 1. `com.google.mlkit:segmentation` 版本列表 `com.google.mlkit:segmentation` 是 Google ML Kit 提供的图像分割功能模块。根据官方文档和 Maven Central 的信息,以下是该库的部分可用版本[^5]: - `16.0.0-beta3` - `16.0.0-beta2` - `16.0.0-beta1` #### 2. `com.google.mlkit:segmentation-selfie` 版本列表 `com.google.mlkit:segmentation-selfie` 是专门用于自拍图像分割的模块。以下是其部分可用版本[^6]: - `17.0.0-beta5` - `17.0.0-beta4` - `17.0.0-beta3` - `17.0.0-beta2` - `17.0.0-beta1` #### 3. `com.google.mlkit:face-detection` 版本列表 `com.google.mlkit:face-detection` 是 Google ML Kit 提供的人脸检测功能模块。以下是其部分可用版本[^7]: - `16.1.8` - `16.1.7` - `16.1.6` - `16.1.5` - `16.1.4` #### 4. `org.opencv:opencv-android` 版本列表 `org.opencv:opencv-android` 是 OpenCV 提供的 Android 平台支持库。以下是其部分可用版本[^8]: - `4.5.5` - `4.5.4` - `4.5.3` - `4.5.2` - `4.5.1` - `4.5.0` ### 示例代码:如何在 Gradle 中添加依赖 以下是一个示例代码,展示如何在 `build.gradle` 文件中添加这些依赖库: ```gradle dependencies { // 图像分割模块 implementation 'com.google.mlkit:segmentation:16.0.0-beta3' // 自拍图像分割模块 implementation 'com.google.mlkit:segmentation-selfie:17.0.0-beta5' // 人脸检测模块 implementation 'com.google.mlkit:face-detection:16.1.8' // OpenCV Android 库 implementation 'org.opencv:opencv-android:4.5.5' } ``` ### 注意事项 在使用这些依赖库时,请确保项目的 `minSdkVersion` 和 `targetSdkVersion` 满足库的最低要求。此外,某些 beta 版本可能存在不稳定的情况,建议在生产环境中优先选择稳定版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值