Coggle 30 Days of ML(23年6月)


## Part1 内容介绍

本次学习内容将聚焦于计算机视觉竞赛(苹果叶片病害分类和建筑物变化检测),分别为图像分类任务和语义分割任务。本月学习内容包括:

  • CNN网络/VIT网络/CLIP网络
  • 图像分类损失函数与分割损失函数
  • 计算机视觉中数据增强方法

## Part2 活动安排

  • 免费学习活动,不会收取任何费用。
  • 请各位同学添加下面微信,并回复【竞赛学习】,即可参与。


## Part3 积分说明和奖励

为了激励各位同学完成的学习任务,将学习任务根据难度进行划分,并根据是否完成进行评分难度高中低的任务分别分数为3、2和1。在完成学习后(本次活动,截止7月1),将按照积分顺序进行评选 Top3 的学习者。

打卡地址:https://shimo.im/forms/7GVxPfAGLeolSWmr/fill

昵称 任务1 任务2 任务3 任务4 任务5 任务6 任务7
咳咳
夜的第七章
徐乜乜
pikachu2biubiu
vhyury
抹茶味的曲奇
余愿
Guang
zjr
阿水

Top1的学习者将获得以下奖励

  • 蓝牙黑胶音箱
  • Coggle 竞赛专访机会

Top2-3的学习者将获得以下奖励

  • 20元红包
  • Coggle 竞赛专访机会

历史活动打卡链接,可以参考如下格式:


## Part4 图像分类与语义分割

### 背景介绍

【赛题1】苹果叶片病害大赛提供了具有长尾分布特征的大量苹果叶片的病害图片集,涉及9类病害,参赛选手需基于提供的样本构建模型,实现苹果的病害图像识别。

本次比赛为参赛选手提供了九类自然环境下苹果叶片的病害图像数据:包括图像及其所属病害标签。数据主体为实验室和自然环境条件下的农作物图像,每张图像的主体突出度,背景复杂程度、光照条件,图像清晰度均存在一定差别。

https://challenge.xfyun.cn/topic/info?type=apple-diseases

【赛题2】建筑物变化检测大赛以“吉林一号”高分辨率卫星遥感影像作为数据集,参赛选手需基于提供的样本构建模型,预测双时相影像中建筑物变化发生的位置与分布范围。

本次大赛提供吉林一号高分辨率遥感影像作为数据源,影像分辨率优于1米,由长光卫星技术股份有限公司拍摄、标注、构建。其中,初赛提供训练数据集2500对,测试数据集500对,复赛提供测试数据集500对。

https://challenge.xfyun.cn/topic/info?type=high-resolution-2023

### 环境配置

实践环境建议以Python3.7+,且需要安装如下库:

  • numpy
  • pandas
  • opencv
  • pytorch

### 学习打卡

任务名称 难度/分值
任务1:两个赛题数据可视化 低/1
任务2:苹果病害数据加载与数据增强 中/2
任务3:苹果病害模型训练与预测 中/2
任务4:苹果病害模型优化与多折训练 高/3
任务5:建筑物检测数据加载与数据增强 高/2
任务6:建筑物检测模型训练与预测 中/2
任务7:建筑物检测优化与多折训练 高/3

打卡地址:https://shimo.im/forms/7GVxPfAGLeolSWmr/fill

实践比赛地址:

#### 任务1:两个赛题数据可视化

在这个任务中,参赛选手需要对两个赛题的数据进行可视化。对于苹果病害数据,选手可以展示苹果叶片的病害图像以及它们所属的标签。对于建筑物检测数据,选手需要使用"吉林一号"高分辨率卫星遥感影像作为数据集。选手需要展示这些卫星影像,并可视化其中的建筑物变化。

#### 任务2:苹果病害数据加载与数据增强

数据加载阶段,选手需要编写代码来读取和处理提供的图像数据。数据增强阶段,选手可以使用各种图像处理技术和方法,如旋转、缩放、翻转、亮度调整等,来增强数据集的多样性和数量。

  • 步骤1:使用OpenCV或者PIL加载数据集
  • 步骤2:使用torchvision或者OpenCV实现图像分类任务的数据增强,可参考👇
A.Compose([
    A.RandomRotate90(),
    A.Resize(256, 256),
    A.RandomCrop(224, 224),
    A.HorizontalFlip(p=0.5),
    A.RandomContrast(p=0.5),
    A.RandomBrightnessContrast(p=0.5),
    A.Normalize(mean=(0.485, 0.456, 0.406), std=(0.229, 0.224, 0.225))
])

#### 任务3:苹果病害模型训练与预测

参赛选手需要使用加载和增强后的苹果病害数据集,构建模型并进行训练和预测。选手可以选择适合的深度学习框架和模型架构,并使用训练集进行模型训练。然后,选手需要使用训练好的模型对测试集中的苹果叶片病害图像进行预测。

  • 步骤1:自定义数据集读取
  • 步骤2:自定义CNN模型
class XunFeiNet(nn.Module):
    def __init__(self):
        super(XunFeiNet, self).__init__()

        model = models.resnet18(True)
        model.avgpool = nn.AdaptiveAvgPool2d(1)
        model.fc = nn.Linear(512, 9)
        self.resnet = model

    def forward(self, img):        
        out = self.resnet(img)
        return out
  • 步骤3:模型训练与验证
def train(train_loader, model, criterion, optimizer):
    model.train()
    train_loss = 0.0
    for i, (input, target) in enumerate(train_loader):
        input = input.cuda(non_blocking=True)
        target = target.cuda(non_blocking=True)

        # compute output
        output = model(input)
        loss = criterion(output, target)

        # compute gradient and do SGD step
        optimizer.zero_grad()
        loss.backward()
        optimizer.step()

        if i % 20 == 0:
            print('Train loss', loss.item())

        train_loss += loss.item()

    return train_loss/len(train_loader)

#### 任务4:苹果病害模型优化与多折训练

参赛选手需要对苹果病害模型进行优化,并进行多折交叉验证训练。选手可以通过调整模型架构、超参数调优、正则化等方法来优化模型的性能。此外,选手还需要实现多折交叉验证来更准确地评估模型的性能和泛化能力。

#### 任务5:建筑物检测数据加载与数据增强

参赛选手需要加载"吉林一号"高分辨率卫星遥感影像数据集,并进行数据增强。数据加载阶段,选手需要编写代码来读取和处理卫星遥感影像数据。数据增强阶段,选手可以使用各种图像处理技术和方法,如旋转、缩放、翻转、亮度调整等,来增强数据集的多样性和数量。

#### 任务6:建筑物检测模型训练与预测

参赛选手需要使用加载和增强后的建筑物检测数据集,构建模型并进行训练和预测。选手可以选择适合的深度学习框架和模型架构,并使用训练集进行模型训练。然后,选手需要使用训练好的模型对测试集中的卫星遥感影像进行建筑物检测。

#### 任务7:建筑物检测模型优化与多折训练

参赛选手需要对建筑物检测模型进行优化,并进行多折交叉验证训练。选手可以通过调整模型架构、超参数调优、正则化等方法来优化模型的性能。此外,选手还需要实现多折交叉验证来更准确地评估模型的性能和泛化能力。



© 2019-2023 coggle.club 版权所有     京ICP备20022947    京公网安备 11030102010643号