语义分割调色板代码

下面代码的主要作用:根据你的类别数量,生成相同数量的颜色。
比如你有21个类别(voc是20个class和1个background),就可生成相应21个不同的颜色。

def make_palette(num_classes):"""Maps classes to colors in the style of PASCAL VOC.Close values are mapped to far colors for segmentation visualization.See http://host.robots.ox.ac.uk/pascal/VOC/voc2012/index.html#devkitTakes:num_classes: the number of classes 输入为类别数目Gives:palette: the colormap as a k x 3 array of RGB colors 输出为k×3大小的RGB颜色数组"""palette = np.zeros((num_classes, 3), dtype=np.uint8)#xrange() 函数用法与 range 完全相同,所不同的是生成的不是一个数组,而是一个生成器for k in range(0, num_classes):label = ki = 0while label:  #按一定规则移位产生调色板palette[k, 0] |= (((label >> 0) & 1) << (7 - i)) #>>为二进制右移palette[k, 1] |= (((label >> 1) & 1) << (7 - i))palette[k, 2] |= (((label >> 2) & 1) << (7 - i))label >>= 3i += 1return palette

这几行代码的主要作用:根据语义分割得到的map和调色板生成最终的结果。seg是语义分割的结果,每个像素代表相应的类别,palette是上一个代码生成的调色板。

#产生一个可视化的类别数组
def color_seg(seg, palette):"""Replace classes with their colors.Takes:seg: H x W segmentation image of class IDs seg是score层产生的类别图(即每一像素的值是0-(num_classes-1)中的一个)Gives:H x W x 3 image of class colors生成一张三通道的彩色图(其中每一种颜色对应一种类别),实际生成是H×W×3的数组,需要经过python中但PIL库调用函数Image.fromarray将此数组转化为一张彩色图(详见infer.py最后几行)"""return palette[seg.flat].reshape(seg.shape + (3,)) #按照类别进行上色

效果图如下

语义分割 调色板代码相关推荐

  1. 85.4% mIOU!NVIDIA:使用多尺度注意力进行语义分割,代码已开源!

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 下载论文PDF和源代码: 链接:https://pan.baidu ...

  2. 语义分割MIoU代码解析

    1. MIoU 源码解析TensorFlow 和 PyTorch 源码解析 2.[语义分割]语义分割评估指标mIOU 3. 语义分割代码阅读-评价指标mIoU的计算 4. 深度学习计算机视觉图像分割领 ...

  3. python 图像语义分割mIOU代码详解

    mIOU公式在此不赘述. 1.fast_hist(label.flatten(), pred.flatten(), num_classes) 2.生成关于像素的混淆矩阵 k = (a >= 0) ...

  4. 图像分割技术语义分割代码_用5行代码对150类对象进行语义分割

    图像分割技术语义分割代码 It is now possible to perform segmentation on 150 classes of objects using ade20k model ...

  5. 点云语义分割:PointNet训练S3DIS数据集

    文章目录 一.数据准备 1.1.数据下载 二.训练 三.测试 四.6折交叉验证 项目地址:pointnet 此次我们是用pointnet网络来做语义分割.代码在pointnet项目中的sem_seg文 ...

  6. 语义分割:最简单的代码实现!

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 分割对于图像解释任务至关重要,那就不要落后于流行趋势,让我们来实施 ...

  7. SegICP:一种集成深度语义分割和位姿估计的框架(附代码)

    SegICP: Integrated Deep Semantic Segmentation and Pose Estimation 代码地址:在公众号「3D视觉工坊」,后台回复「SegICP」,即可直 ...

  8. 天池赛题解析:零基础入门语义分割-地表建筑物识别-CV语义分割实战(附部分代码)

    赛题内容 赛题背景 赛题以计算机视觉为背景,要求选手使用给定的航拍图像训练模型并完成地表建筑物识别任务.为更好的引导大家入门,我们为本赛题定制了学习方案和学习任务,具体包括语义分割的模型和具体的应用案 ...

  9. CV之IS:利用pixellib库基于deeplabv3_xception模型对《庆余年》片段实现语义分割/图像分割简单代码全实现

    CV之IS:利用pixellib库基于deeplabv3_xception模型对<庆余年>片段实现语义分割/图像分割简单代码全实现 目录 利用pixellib库基于deeplabv3_xc ...

最新文章

  1. 客户资料查询传递数据格式
  2. 4名矿工控制50%算力 去中心化是不是谎言?
  3. WordPress 设置图片的默认显示方式(尺寸/对齐方式/链接到)
  4. 几种常用通信协议:IIC协议、SPI协议、UART协议
  5. 怎么查找那台电脑中了ARP病毒
  6. Matlab图像剪切,超出图像区域指定颜色填充
  7. IT Monitor
  8. JSP的改动需要重启应用服务器才能生效?
  9. ASP .NET MVC 之Entity Framework入门教程及源码
  10. mysql报错级别_MySQL启动出现几个警告级别错误
  11. iOS 后台语音播报功能开发过程中的那些坑
  12. Docker学习总结(22)——Docke run命令详解
  13. Android集成Zxing
  14. linux|文本编辑
  15. python token_Python实现JWT(JSON Web Token)认证
  16. 面向对象java试题_经典面向对象试题,用Java做,要详细点的!先谢过了
  17. 编程基础(五)—— 虚拟内存
  18. MATLAB-阶乘运算
  19. Smartdrv在安装操作系统中的作用
  20. 数据总线、地址总线、控制总线

热门文章

  1. 2023最新STM32毕业设计项目集合
  2. 微信jssdk开发java版_微信jssdk
  3. 服务器升级debian9_如何在Debian 9上设置PageKite前端服务器
  4. 【QT学习笔记】基于QT的天气预报
  5. http://www.52mybb.com/ 我爱我宝贝
  6. carbon安装win7 thinkpad x1_联想thinkpad x1 carbon 2019 wifi版笔记本使用u启动u盘安装win7系统教程...
  7. pytorch_lesson16.2 架构对学习/鲁棒性的影响(VGG16复现+感受野+平移不变性)+架构对参数量的影响(1*1卷积核+分组卷积与深度分离卷积+NiN网络复现)
  8. 手机端调起支付宝支付
  9. 单屏(全屏)适配解决方案(jQuery插件)
  10. Word数据对比左右并排看