零基础入门语义分割-TASK01 赛题理解

本文介绍了遥感图像的地表建筑物识别任务,讲解了赛题要求、数据读取方法以及RLE编码和解码的实现。通过训练集和测试集的读取,利用rle_decode函数将编码转换为mask矩阵,为构建比赛baseline奠定了基础。评估标准采用Dice系数,衡量预测结果与真实标签的匹配程度。
摘要由CSDN通过智能技术生成

零基础入门语义分割-TASK01 赛题理解


一学习主题:理解赛题内容解题流程
一学习内容:赛题理解、数据读取、比赛baseline构建
一学习成果:比赛baseline 提交

赛题理解

遥感技术应用于地表覆盖检测、植被面积检测和建筑物检测任务。
目标任务:地表建筑物识别,识别图片中的地表建筑具体像素位置
将地表航拍像素划分为有建筑物和无建筑物两类

数据读取

train_mask.csv:存储图片的标注的rle编码;
train:存储训练集图片
test:存储测试集图片
rle编码的具体的读取代码如下:

import numpy as np
import pandas as pd
import cv2

# 将图片编码为rle格式
def rle_encode(im):
    '''
    im: numpy array, 1 - mask, 0 - background
    Returns run length as string formated
    '''
    pixels = im.flatten(order = 'F')
    pixels = np.concatenate([[0], pixels, [0]])
    runs = np.where(pixels[1:] != pixels[:-1])[0] + 1
    runs[1::2] -= runs[::2]
    return ' '.join(str(x) for x in runs)

# 将rle格式进行解码为图片
def rle_decode(mask_rle, shape=(512, 512)):
    '''
    mask_rle: run-length as string formated (start length)
    shape: (height,width) of array to return 
    Returns numpy array, 1 - mask, 0 - background

    '''
    s = mask_rle.split()
    starts, lengths = [np.asarray(x, dtype=int) for x in (s[0:][::2], s[1:][::2])]
    starts -= 1
    ends = starts + lengths
    img = np.zeros(shape[0]*shape[1], dtype=np.uint8)
    for lo, hi in zip(starts, ends):
        img[lo:hi] = 1
    return img.reshape(shape, order='F')

读取样例:

train_mask = pd.read_csv('train_mask.csv', sep='\t', names=['name', 'mask'])

# 读取第一张图,并将对于的rle解码为mask矩阵
img = cv2.imread('train/'+ train_mask['name'].iloc[0])
#对第一张图的mask矩阵进行解码
mask = rle_decode(train_mask['mask'].iloc[0])
#比较第一张图的解码和原来的mask举着
print(rle_encode(mask) == train_mask['mask'].iloc[0])
# 结果为True

评估标准

赛题使用Dice coefficient来衡量选手结果与真实标签的差异性,Dice coefficient可以按像素差异性来比较结果的差异性。Dice coefficient的具体计算方式如下
在这里插入图片描述
RLE全称(run-length encoding),翻译为游程编码或行程长度编码,对连续的黑、白像素数以不同的码字进行编码。RLE是一种简单的非破坏性资料压缩法,经常用在在语义分割比赛中对标签进行编码。
RLE编码应用:
大量白色或黑色的区域单色影像图
电脑生成的同色区块的彩色图像(如建筑绘图纸)
TIFF文件
PDF文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值