前言
深度学习中无论是什么任务,数据集是必不可少的,我们可以使用公开数据集,但实际情况中由于特定的任务我们可能也不得不手动制作数据集。正好本人最近在一个语义分割任务中涉及自己制作数据集,也就是标注图像,虽然有例如labelme、ITKsnap等软件可以用来标注,但MATLAB也提供了一个非常实用的图像标注工具Image Labeler,可以在APP中找到,可以用来标记矩形感兴趣区域 (ROI) 标签、折线 ROI 标签、像素 ROI 标签和场景标签。语义分割任务中用到的是像素ROI标注功能,因此在本篇博客中记录一下使用的方法,详细的示例可以参考: https://www.mathworks.com/help/vision/ug/get-started-with-the-image-labeler.html.
语义分割
基本概念
个人理解,图像分割是为图像中的每个像素点分配一个标签,表示一个类别。在语义分割中,表示某种属性的所有区域内的像素点往往具有相同的类别,比如常见的分割CT中的肝脏区域,一个街景图像中分割所有的行人。还有一种分割称为实例分割,其实结合面向对象编程从字面意思也可以想到,一个类拥有多个实例,一个街景图像中也有多个行人,实例分割中每个行人的类别都不一样。
标注结果
标注过程
其标注的过程如下:
写到这里,整个标注流程算是完了,但是我在实际使用过程中遇到一个非常现实的问题,比如你得到了其他软件标注的文件,想修改部分标注的结果该怎么办呢/p>
加载其他软件标注的文件
APP中有一个明显的Import Labels图标,你可以从文件或者工作空间加载标注好的文件,但是只能从文件中加载.mat文件,无法加载整个文件夹,这就有点麻烦了,其实你从上面的内容可以想到,导出的是一个 groundTruth对象,加载的时候也必须是这样一个对象。MATLAB官方给出了一个详细的说明关于如何去创建这样一个对象:
https://www.mathworks.com/help/vision/ref/groundtruth.html.这里结合我的理解说一下,首先对于一个完整的标注流程,必须有三个要素:原始图像,标签的定义和标注的结果,MATLAB中打开上面的gTruth.mat可以发现三个属性

刚好对应那三个要素,你要想在MATLAB中开始一个标注会话,那么你必须要指定这三个要素,你必须创建一个groundTruth对象,这里我们就不使用上面的例子了,如果我们当前路径下的Imgs、Lables分别保存的是一个数据集中的图像和标注结果,有M个文件,那么下面我给出一段代码用于创建这个groundTruth对象:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!