这是5幅图,加上背景共5类。

 

可以参考这篇文章https://blog.csdn.net/u012426298/article/details/81232386

对于一个多类别图片数据库,每个类别都会有一个class frequency, 该类别像素数目除以数据库总像素数目, 求出所有class frequency 的median 值,除以该类别对应的frequency 得到weight:

weight=median(weights)/weights

#coding:utf-8
from __future__ import print_function
import os
import numpy as np
import cv2
w,h=512,512
def find_pic(img,array_list,n_class,pixs):img_sum = np.sum(img == array_list, axis=-1)pix_numbers=img_sum.reshape(-1).tolist().count(3)if pix_numbers:pixs+=pix_numbersn_class+=1return pixs,n_class
def compute_class(pixs,n_class):return pixs/(n_class*w*h)
def frequence():# images_path = './trainannot_visual'images_path = './visual_example'red = np.array([0, 0, 128])yellow = np.array([0, 128, 128])green = np.array([0, 128, 0])blue = np.array([128, 0, 0])back_gro = np.array([0, 0, 0])images_list_path = [os.path.join(images_path,i) for i in os.listdir(images_path)]n_red=0red_pixs=0n_yellow = 0yellow_pixs = 0n_green= 0green_pixs = 0n_blue = 0blue_pixs = 0n_back = 0back_pixs = 0for count,image_path in enumerate(images_list_path):print('{}image'.format(count))img=cv2.imread(image_path)red_pixs, n_red=find_pic(img,red,n_red,red_pixs)yellow_pixs,n_yellow = find_pic(img, yellow,n_yellow,yellow_pixs)green_pixs,n_green = find_pic(img, green,n_green,green_pixs)blue_pixs,n_blue = find_pic(img, blue,n_blue,blue_pixs)#back_pixs,n_back = find_pic(img, back_gro,n_back,back_pixs)print(red_pixs, n_red)print(yellow_pixs,n_yellow)print(green_pixs, n_green)print(blue_pixs, n_blue)print(back_pixs, n_back)f_class_red=compute_class(red_pixs,n_red)f_class_yellow = compute_class(yellow_pixs, n_yellow)f_class_green = compute_class(green_pixs, n_green)f_class_blue = compute_class(blue_pixs, n_blue)f_class_back = compute_class(back_pixs, n_back)print(f_class_red,f_class_yellow,f_class_green,f_class_blue,f_class_back)f_class=[f_class_red,f_class_yellow,f_class_green,f_class_blue,f_class_back]f_class_median=np.median(np.array(f_class))print(f_class_median)print(f_class_median/np.array(f_class))
if __name__ == '__main__':frequence()

这样可以保证占比小的class, 权重大于1, 占比大的class, 权重小于1, 达到balancing的效果.

语义分割中的类别不平衡的权重计算相关推荐

  1. dice系数 交叉熵_语义分割中的损失函数

    1 交叉熵 信息量:当一个事件发生的概率为 ,那么该事件对应的概率的信息量是 . 信息量的熵:信息量的期望,假设 事件 共有n种可能,发生 的概率为 ,那么该事件的熵 为: 相对熵,又称KL散度,如果 ...

  2. 语义分割-Unsupervised Domain Adaptation in Semantic Segmentation:a Review语义分割中的无监督领域自适应:综述

    Unsupervised Domain Adaptation in Semantic Segmentation:a Review语义分割中的无监督领域自适应:综述 0.摘要 1.介绍 1.1.语义分割 ...

  3. 来自CCNet的一种创新:语义分割中的十字交叉视觉注意力

    来自CCNet的一种创新:语义分割中的十字交叉视觉注意力 写在文章开头 看个大概 引入 CCNet之道 整体架构 十字交叉注意力 循环--RCCA 优化类别一致性损失 CCNet效果一览 写在文章末尾 ...

  4. 语义分割中常用的评价指标有哪些?

    语义分割的任务就是预测输入图像每个像素点的类别.简单来说,就是做像素级分类. 图中左侧是一张输入图像,中间图像是对图像每个像素类别人工标记的Ground truth(真实标签),右侧图像是对图像每个像 ...

  5. 语义分割中的深度学习方法全解:从FCN、SegNet到各版本DeepLab

    语义分割中的深度学习方法全解:从FCN.SegNet到各版本DeepLab 原文:https://www.sohu.com/a/155907339_610300 图像语义分割就是机器自动从图像中分割出 ...

  6. 分类中解决类别不平衡问题

    关注微信公众号[Microstrong],我现在研究方向是机器学习.深度学习,分享我在学习过程中的读书笔记!一起来学习,一起来交流,一起来进步吧! 本文同步更新在我的微信公众号里面,公众号文章地址: ...

  7. 语义分割中的一些模型的分类汇总

    语义分割是深度学习中的一个重要应用领域.自Unet提出到现在已经过去了8年,期间有很多创新式的语义分割模型.简单的总结了Unet++.Unet3+.HRNet.LinkNet.PSPNet.DeepL ...

  8. 图像语义分割中的上采样(Upsampling)和下采样(subsampling)

    图像语义分割中的上采样和下采样 1. 下采样(subsampled) 2. 上采样(upsampled) 2.1 线性插值 2.2 单线性插值 2.3 双线性插值 2.4 双线性插值举例 2.5 插值 ...

  9. ”语义分割”中的“语义”

    感谢这篇论文,让我知道了"语义分割"中"语义"这一个词到底是个什么鬼.所谓的语义分割,就是之前的分割,在加上分类啦! 论文:基于内容的图像分割方法综述 姜峰 顾 ...

最新文章

  1. gcore java_获取一直FullGC下的java进程HeapDump的小技巧
  2. 从起源到未来,一文看懂70年的人工智能简史
  3. Java服务器热部署的实现原理
  4. 变量置换方式linux,Shell变量测试与内容置换
  5. Spring Cloud 微服务架构的五脏六腑!
  6. Java中,一切皆是对象,为何数据类型中还分为:基本类型和对象?
  7. 重磅开源 KSQL:用于 Apache Kafka 的流数据 SQL 引擎 2017.8.29
  8. mongo DB for C#
  9. C语言 | 内存对齐03 - 内存对齐的公式
  10. C常量指针 与指针常量区别
  11. BootStrap入门教程 (二)
  12. Netty工作笔记0044---Netty案例源码分析
  13. vscode中如何让vue文件语法高亮_VS code 你们都在用吗?或许你们需要看一下(语言相关)篇...
  14. JS 框架 :后台系统完整的解决方案
  15. 创新不是突然而至——它是慢慢成长的
  16. csp php,CSP策略及绕过方法
  17. 操作系统抖动现象、网络抖动与延迟、函数抖动之防抖与节流
  18. RabbitMQ无法连接
  19. python扫描二维码输出内容_通过python扫描二维码/条形码并打印数据
  20. APP产品经理(一)

热门文章

  1. python8个程序语言_所有程序员必知--2019年最流行的8种编程语言和框架
  2. CV和NLP中的无监督预训练(生成式BERT/iGPT和判别式SimCLR/SimCSE)
  3. 大众点评订单系统分库分表实践
  4. Docker系列之一:入门介绍
  5. HDFS NameNode重启优化
  6. 论文浅尝 | 知识库问答中关系检测的学习表示映射
  7. 打造工业级推荐系统(三):推荐系统的工程实现与架构优化
  8. 圆形进度条以及百分率指示器 Scroller类的练习
  9. 一篇文章学习Python中的多进程
  10. 【实体对齐·HGCN】Jointly Learning Entity and Relation Representations for Entity Alignment