前言

因为photoshop功能的强大,以及工具的方便,虽然其不是专门的语义分割标注工具,但是仍然可以用其工具进行有效的标注,本文是在吸取经验教训的基础上写的,希望能够帮到所有用这个方法标注的人。
本文的主要内容:photoshop 2020的使用和注意事项、批量转换标签的方法(快速像素替换)
另外可以使用的软件:Pixel Annotation Tool 可以使用涂抹标注,但是这里为了可以多掌握一项技能就用PS了,主要是功能很多,对以后的学习以及工作都有好处,虽然麻烦点,但是掌握的东西多点,是个比较万金油的工具。

一、注意事项

注意这个很重要,否则所有的标签全部报废,所以写在前面,谨记前人走过的弯路才能不让自己过于抓狂,首先将软件调成以下设置
1.套索的设置

首先找到工具栏里的套索,设置羽化0 不勾选消除锯齿,否则会出现过度色,后面可以用套索进行多边形标注。套索和矩形选框工具是不会产生过度色的。
2.油漆桶的设置

找到油漆桶设置成这个样式,否则会出现过渡色
3.快速选择工具(请谨慎得使用)
除魔棒以外的其他工具会出现过渡色,但是我会在接下来的过程中告诉你如何规避它,尽量避免两个颜色相交,如果遇上边界相交的地方最好使用套索工具
4.图层必须用白色作为底色,用黑色的话颜色会污染,随后不要在图片里选用白色标注了,注意白色为背景色,在之后的图片转换再换成黑色
5.使用图层进行做标签记得最后保存的时候透明要调成不透明100

二、Photoshop制作标签图片

方法简述:首先打开软件,然后打开图片,建立色板,建立图层,创建画板,选择区域,使用油漆桶进行喷漆,标注完成后输出图片
1.色板建立

选择自己要进行标注的颜色将其放在一个文件夹里
2.图层和画板的建立


将标签图层至于顶端,然后使用套索和油漆桶将图层变为全白,并设置一定的透明度,不要让图层影响图片

  1. 选择区域以及标注
    这里使用快速选择工具选择轮廓,并用油漆桶(G)进行标注


    注意!!!!!!如果两个颜色边界有重叠,请使用套索工具防止过渡色的产生,不然会产生杂色影响边界
    4.输出标签为png

三、转换成语义分割的标签

1.标注做好了,那么如何将图片转换为只有1、2、3等数值的标签呢?首先我们得制作一个纯色的color_map,将自己标注的颜色都存进去,如下:

黑色得放进去,注意图片一定得是纯色没有过渡色的,用套索工具加油漆桶即可完成
2.对图片的颜色进行编码
为了使每个颜色对应一维向量里的特定值,我们必须对颜色立方体进行编码,将三维降为二维,可以将BGR颜色视为256进制的三位数转换为十进制表示的数字
下列是代码:

def matColorCode(mat):#颜色编码函数 牺牲内存b = (mat[:, :, 0]).astype(np.uint32)  # 读取蓝通道  转成32位防止溢出g = (mat[:, :, 1]).astype(np.uint32)  # 读取绿通道r = (mat[:, :, 2]).astype(np.uint32)  # 读取红通道return b * 256 * 256 + g * 256 + r

3.将colormap转为二维矩阵,并去掉重复的数字,就是颜色表了:

import cv2
import numpy as npdef matColorCode(mat):#颜色编码函数 牺牲内存b = (mat[:, :, 0]).astype(np.uint32)  # 读取蓝通道  转成32位防止溢出g = (mat[:, :, 1]).astype(np.uint32)  # 读取绿通道r = (mat[:, :, 2]).astype(np.uint32)  # 读取红通道return b * 256 * 256 + g * 256 + rcmap=cv2.imread(cmap,-1)
cmap = matColorCode(cmap)
cmap=np.unique(cmap)#去重
print('cmap',cmap)#输出颜色表里的数字

4.读取png格式图片批量转换成标签

import globimages = glob.glob(path + '/*.png')#标签为PNG格式 读取这些东西就行了
images.sort()
for fileLocation in images:#filelocation为图片的绝对路径img=cv2.imread(fileLocation,-1)if img.max()>20:#防止误操作img = matColorCode(img)#接上面的函数number = 0#从零开始for i in cmap:img = np.where(img == i, number, img)#依次替换像素number += 1img = np.where(img > number, 0, img)cv2.imwrite(fileLocation,img)#print(fileLocation)#输出路径查看哪些图片处理完了

5.完整批量标签转换代码

path为标签路径 cmap为colormap的绝对路径

import cv2
import numpy as np
import glob
def changeImgLabel(path,cmap):def matColorCode(mat):#颜色编码函数 牺牲内存b = (mat[:, :, 0]).astype(np.uint32)  # 读取蓝通道  转成32位防止溢出g = (mat[:, :, 1]).astype(np.uint32)  # 读取绿通道r = (mat[:, :, 2]).astype(np.uint32)  # 读取红通道return b * 256 * 256 + g * 256 + r#编码cmap = cv2.imread(cmap,-1)cmap = matColorCode(cmap)cmap = np.unique(cmap.astype(np.uint64))print('cmap',cmap)images = glob.glob(path + '/*.png')#标签为PNG格式 读取这些东西就行了images.sort()for fileLocation in images:img = cv2.imread(fileLocation,-1)if img.max()>20:#防止误操作img = matColorCode(img)#接上面的函数number = 0for i in cmap:img = np.where(img == i, number, img)number += 1img = np.where(img > number, 0, img)cv2.imwrite(fileLocation,img.astype(np.uint8)#存储print(fileLocation)
#-------------------------------------------------
代码使用范例
path=r'F:\BaiduNetdiskDownload\U_net_dataset\colormap.png'#颜色表存放路径
path1=r'F:\BaiduNetdiskDownload\U_net_dataset'#标签存放路径
changeImgLabel(path1,cmap=path)

四、总结

希望大家能够吸取经验,少走弯路,祝大家数据集制作顺利,如有不足之处,请大家在下面留言

Photoshop 深度学习 数据集标签制作 、注意事项 以及标签颜色的编码、统计和快速像素颜色替换(python)相关推荐

  1. 深度学习数据集制作工作_创建我的第一个深度学习+数据科学工作站

    深度学习数据集制作工作 My Home Setup 我的家庭设置 Creating my workstation has been a dream for me, if nothing else. 创 ...

  2. 深度学习数据集标注工具、图像语料数据库等资源

    NLP+VS︱深度学习数据集标注工具.图像语料数据库.实验室搜索ing... 2017年02月07日 12:12:01 阅读数:27032 ~~因为不太会使用opencv.matlab工具,所以在找一 ...

  3. NLP+VS︱深度学习数据集标注工具、图像语料数据库、实验室搜索ing..

    一.NLP标注工具 来源:<构想:中文文本标注工具(附开源文本标注工具列表)> Chinese-Annotator   来源:https://github.com/crownpku/Chi ...

  4. NLP+VS︱深度学习数据集标注工具、图像语料数据库、实验室搜索ing....

    from: https://blog.csdn.net/sinat_26917383/article/details/54908389 一.NLP标注工具 来源:<构想:中文文本标注工具(附开源 ...

  5. 【图像标注】NLP+VS︱深度学习数据集标注工具、图像语料数据库、实验室搜索ing

    因为不太会使用opencv.matlab工具,所以在找一些比较简单的工具.  .  . 一.NLP标注工具BRAT BRAT是一个基于web的文本标注工具,主要用于对文本的结构化标注,用BRAT生成的 ...

  6. 深度学习数据集定义与加载

    深度学习数据集定义与加载 深度学习模型在训练时需要大量的数据来完成模型调优,这个过程均是数字的计算,无法直接使用原始图片和文本等来完成计算.因此与需要对原始的各种数据文件进行处理,转换成深度学习模型可 ...

  7. 深度学习之数据处理——如何将图片和标签打乱并划分为训练集和测试集

    深度学习之数据处理--如何将图片和标签打乱并划分为训练集和测试集 记录我的第一篇CSDN博客 最近我在网上找到Office31数据集,这个数据集中包含了三个子数据集,分别为:Amazon.dslr.w ...

  8. 深度学习数据集的准备

    深度学习数据集的准备 下面介绍一个做了很久的项目,其中最简单的一部分是将该乳腺X线数据集进行有病没病的分类训练,说到训练最基本的就是数据集的准备,在这里先讲讲数据集怎么准备.下图是原始数据集的一部分. ...

  9. 捡漏!用谷歌图片搜索自制深度学习数据集 | 教程

    铜灵 编译整理 量子位 出品 | 公众号 QbitAI 就怕前脚刚立志搞个新研究,后脚就发现没有合适的数据集可用.AI工程师从入门到放弃,可能就是这么一会的功夫. 别找了,现在深度学习数据集也能自制了 ...

  10. 深度学习数据集怎么找?

    人工智能的无名英雄就是数据,许多许多标注或未标注的数据.研究部门和公司也都认识到数据民主化是加快人工智能的必要步骤.事实上,我们很难用一篇文章来说明哪些开放数据集是有用的,那么深度学习数据集怎么找?本 ...

最新文章

  1. EMC全球调查显示:企业对新的安全威胁还未做好准备
  2. 单元测试 Mocking 类库需具备的特性
  3. Slog64_项目上线之ArthurSlog个人网站上线3
  4. 在CentOS 6.3中安装与配置JDK-7
  5. C# 温故而知新:Stream篇(六)
  6. java treemap_Java TreeMap lastEntry()方法与示例
  7. 计组之中央处理器:5、微程序控制器(组成、原理、概念对比)
  8. 歌谣舞台_高光时刻 || 哈油宝藏男孩沈家麒登上吉林卫视和广东卫视青春歌谣舞台!...
  9. 字典树从第i个构造HDU2846
  10. #华为云·寻找黑马程序员# 如何实现一个优雅的Python的Json序列化库
  11. 推荐10款最好的免费项目管理工具
  12. 论文研读-AI4VIS-可视化推荐-VizML: 一种基于机器学习的可视化推荐方法
  13. 【RMVA】雇佣兵系统(1)
  14. TreeSet,海康威视java校招面试题
  15. 向量和矩阵求导(运用迹性质求导)
  16. (读后摘抄)《计算机程序设计语言的发展》_王汝传
  17. Unity-简单的坦克大战的一些思路
  18. 一个简单的问卷调查服务端设计
  19. eWebEditor不能正常使用的解决办法
  20. python爬虫可以爬取个人信息吗_手把手教你利用Python网络爬虫获取旅游景点信息...

热门文章

  1. 【信号与系统】Multisim 仿真信号合成与分解
  2. Lenovo 320-15IKB DG421 DG521 DG721 NM-B241 REV1.0笔记本点位图
  3. 500种精美字体下载,做设计做视频必备!
  4. 2022软工K班结对编程任务
  5. 项目管理的扫地僧---PRINCE2,学过PMP的必进!
  6. 微信php开发实例,微信小程序php后端开发实例
  7. python合并多个txt文件
  8. WPS Office 2019 For Linux 设置显示语言
  9. 红米6 Pro最简单卡刷开发版开启ROOT权限的教程
  10. 离散元pfc 岩土工程