统计图像分割训练集中的类别分布(代码片段)

yhl_leo yhl_leo     2022-12-13     773

关键词:


本系列文章由 @yhl_leo 出品,转载请注明出处。
文章链接: http://blog.csdn.net/yhl_leo/article/details/52225600


对于一个语义分割数据集,可以使用如下方法统计样本集ground truth的类别分布情况:

import cv2, os
import numpy as np

#amount of classer
CLASSES_NUM = 21

#find imagee in folder dir
def findImages(dir,topdown=True):
    im_list = []
    if not os.path.exists(dir):
        print "Path for  not exist!".format(dir)
        raise
    else:
        for root, dirs, files in os.walk(dir, topdown):
            for fl in files:
                im_list.append(fl)
    return im_list

# amount of images corresponding to each classes
images_count = [0]*CLASSES_NUM
# amount of pixels corresponding to each class
class_pixels_count = [0]*CLASSES_NUM
# amount of pixels corresponding to the images of each class
image_pixels_count = [0]*CLASSES_NUM

image_folder = '../data/gt'
im_list = findImages(image_folder) 

for im in im_list:
    print im
    cv_img = cv2.imread(os.path.join(image_folder, im), cv2.IMREAD_UNCHANGED)
    size_img = cv_img.shape
    colors = set([])
    for i in range(size_img[0]):
        for j in range(size_img[1]):
            p_value = cv_img.item(i,j)
            if not p_value < CLASSES_NUM: # check
                print p_value
            else:
                class_pixels_count[p_value] = class_pixels_count[p_value] + 1
                colors.add(p_value)
    im_size = size_img[0]*size_img[1]
    for n in range(CLASSES_NUM):
        if n in colors:
            images_count[n] = images_count[n] + 1
            image_pixels_count[n] = image_pixels_count[n] + im_size

print images_count
print class_pixels_count
print image_pixels_count

上述代码,主要统计了每一类别所包含的图像数量(images_count),每一类别的像素数目(class_pixels_count)和每一类别对应的图像的总像素数目(image_pixels_count),有了这三组统计结果,就可以进一步计算训练时每一类别的lossclass_weight

mmaction2入门教程04训练ava数据集中的自定义类别(代码片段)

文章目录0前言1(官网)训练AVA数据集中的自定义类别2训练数据集中的自定义类别2.1配置文件2.2执行训练2.3可视化测试0前言在时空行为数据集中,最常出现的就是长尾数据集,即某些类别的动作标签过少,导... 查看详情

深入浅出统计学01(代码片段)

深入浅出统计学框架第一印象集中趋势的度量分散性与变异度的度量概率计算离散概率分布的运用排列与组合几何分布、二项分布及泊松分布正态分布的运用再谈正态分布的运用统计抽样的运用总体和样本的估计置信区间的构建... 查看详情

基于kmeans聚类算法的图像分割(色彩分割)实战(代码片段)

基于Kmeans聚类算法的图像分割(色彩分割)实战图像分割是将一幅图像分割成多个像素区域的任务。属于同一对象类型的所有像素都被分配到同一类别下。图像分类是给一副完整的图像一个类别,目标检测是检测到图像中的所有... 查看详情

swinunet官方代码训练自己数据集(单通道灰度图像的分割)(代码片段)

...xff1a;输入原图输出标签此文中只用了整个数据集中的345张图像用来完成整个分割任务!1、下载官方代码并解压代码地址解压后的文件夹:2、下载数据集并解压数据集地址我们只需要用到以下两个文件夹:分别代表图... 查看详情

one-yolov5v1.2.0released(支持分类,检测,实例分割)(代码片段)

...标检测,实例分割任务原图目标检测:目标检测是指从图像中检测出多个物体并标记它们的位置和类别。目标检测任务需要给出物体的类别和位置信息,通常使用边界框(boundingbox)来表示。目标检测可以应用于自... 查看详情

动手实践系列:cv语义分割!(代码片段)

...e干货 作者:游璐颖,福州大学,Datawhale成员图像分割是计算机视觉中除了分类和检测外的另一项基本任务,它意味着要将图片根据内容分割成不同的块。相比图像分类和检测,分割是一项更精细的工作,... 查看详情

动手实践系列:cv语义分割!(代码片段)

...e干货 作者:游璐颖,福州大学,Datawhale成员图像分割是计算机视觉中除了分类和检测外的另一项基本任务,它意味着要将图片根据内容分割成不同的块。相比图像分类和检测,分割是一项更精细的工作,... 查看详情

数字图像处理(名字的分割与识别)(代码片段)

内容利用所学图像分割技术,将图片中包含的名字进行分割与识别操作步骤利用基于边界的分割技术,提取图像边缘信息,然后根据灰度分布,提供数个可能存在名字的选区框训练一个能识别出图像中是否有名字... 查看详情

根据类别分布在训练和测试之间划分数据集[重复]

】根据类别分布在训练和测试之间划分数据集[重复]【英文标题】:Dividedatasetbetweentrainandtestrespectingclassdistribution[duplicate]【发布时间】:2020-08-1123:25:46【问题描述】:我想在具有以下分布的给定数据集中运行10次机器学习算法np.u... 查看详情

基于卷积神经网络的cifar10图像分类(代码片段)

基于CNN的CIFAR10图像分类一、CIFAR10数据集介绍1.1数据集介绍1.2数据集的下载和测试二、实验步骤2.1定义标签字典2.2数据预处理2.3定义网络结构2.4查看模型摘要2.5模型训练2.6可视化训练过程数据2.7评估模型及预测2.8应用模型及预测... 查看详情

图像分类实战:mobilenetv2从训练到tensorrt部署(pytorch)(代码片段)

...orRT项目结构训练数据增强Cutout和Mixup导入包设置全局参数图像预处理与增强读取数据设置模型定义训练和验证函数测试模型转化及推理转onnxonnx推理转TensorRTTensorRT推理摘要本例提取了植物幼苗数据集中的部分数据做数据集,... 查看详情

unet语义分割模型(keras)|以细胞图像为例(代码片段)

...色标记出来,每一个类别使用一种颜色。常用于医学图像,卫星图像任务。那如何做到将像素点上色呢?其实语义分割的输出和图像分类网络类似,图像分类类别数是一个一维的onehot矩阵。例如:三分类的[0,1,... 查看详情

生成对抗网络与图像分割

深度学习已经在图像分类、检测、分割、高分辨率图像生成等诸多领域取得了突破性的成绩。但是它也存在一些问题。首先,它与传统的机器学习方法一样,通常假设训练数据与测试数据服从同样的分布,或者是在训练数据上的... 查看详情

深度学习unet案例(代码片段)

...5模型预测6总结1任务及数据集简介使Oxford-IIITPetDataset宠物图像分割数据集,包含37种宠物类别,其中有12种猫的类别和25种狗的类别&# 查看详情

cifar-10图像识别(代码片段)

零、学习目标tensorflow数据读取原理深度学习数据增强原理一、CIFAR-10数据集简介是用于普通物体识别的小型数据集,一共包含10个类别的RGB彩×××片(包含:(飞机、汽车、鸟类、猫、鹿、狗、蛙、马、船、卡车)。图片大小均... 查看详情

图像分割u-net:convolutionalnetworksforbiomedicalimagesegmentation(代码片段)

...lNetworksforBiomedicalImageSegmentation中文名称U-Net:用于生物医学图像分割的卷积网络发表时间2015年5月18日平台Miccai2015来源UniversityofFreiburg,Germany文章链接https://arxiv.org/pdf/1505.04597.pdf开源代码官方实现:https://lmb.informatik.uni-freiburg.de/people... 查看详情

附源码医学图像分割入门实践(代码片段)

有一定深度学习图像分割基础,至少阅读过部分语义分割或者医学图像分割文献文章目录1完整源码2数据集3分割任务的思路4代码实现4.1数据预处理4.2模型设计4.3评估指标和损失函数4.4训练4.5模型验证前面的一篇医学图像分割... 查看详情

matlab深度学习采用deeplabv3+实现全景分割(代码片段)

语义分割网络对图像中的每个像素进行分类,从而对图像进行分割。语义分割的应用包括用于自动驾驶的道路分割和用于医疗诊断的癌细胞分割。本文展示了如何使用MATLAB训练语义分割网络Deeplabv3+,实现了自动驾驶场... 查看详情