学习前言
有些小伙伴问怎么制作数据集,其实我也没有去制作过……所以也要学学啦,
![在这里插入图片描述](https://img-blog.csdnimg.cn/20190723144346254.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc5MTk2NA==,size_16,color_FFFFFF,t_70#pic_center)
制作工具Labelme
这里要用到Labelme工具。
在cmd终端运行
pip install labelme
即可安装!
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191118103300395.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc5MTk2NA==,size_16,color_FFFFFF,t_70#pic_center)
安装完成后直接使用:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191118103631166.png#pic_center)
运行结果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191118103653578.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc5MTk2NA==,size_16,color_FFFFFF,t_70)
Labelme的使用
点击画面上的open就可以打开图片。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191118103824732.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc5MTk2NA==,size_16,color_FFFFFF,t_70#pic_center)
点击create polygons就可以开始描点了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191118103956442.png#pic_center)
比如我们对猫描点。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191118104314403.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc5MTk2NA==,size_16,color_FFFFFF,t_70#pic_center)
点击Save就可以保存了!
然后新建一个cmd窗口。
cd到json文件所放的地方。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191118104547179.png#pic_center)
运行如下代码:
labelme_json_to_dataset <文件名>.json
即:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20191118104646353.png#pic_center)
得到如下文件:
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019111810471720.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDc5MTk2NA==,size_16,color_FFFFFF,t_70)
其中label.png就是所得标签。
标签文件内容
利用如下代码查看label.png的格式。
img = Image.open("猫_json/label.png")
img = np.array(img)
print(img.shape)
输出为:
(1080, 1920)
其实现在这个png文件已经是单通道的了,一个通道8个字节。对于本例而言,里面最后一维度只有两个值,背景为0,猫身上的像素点为1。
我之前在对语义分割训练内容进行讲解的时候说到过,标签文件里面RGB三个通道的值都是它的类,这个标签与之同理,只是从三个通道数减少到了一个通道数,对于这个通道数仅为1的标签文件而言,其实直接获取它单个像素点上的值就是它的类。