在使用labelme标记完图像后,我们可以使用labelme自带的一套转换工具:labelme_json_to_dataset.exe 将每个图片对应的json文件转化为一个后缀为_json的文件夹。 文件夹内容如下:
其中最重要的是名为label.png的16位图片,包含了具体哪一个像素作为mask的重要信息,在实际应用中,我们还需要通过一套C++脚本将16位图转成8位,否则模型无法读取。
另一个要提到的重要问题是名为_viz.png的图片,点开如下
可以看到我们要学习的对象已经用不同的颜色区分开了,可以看到灰色代表0号class:背景,我们希望系统是别的对象bottle是1号class,用红色标记。加入后边的酒杯作为另一个对象被标记,则有可能被自动显示为蓝色或绿色,作为2号class:cup。
这种机制的缺陷在于,每张图片上同种类型的对象只能有一个,否则即使在标记时被标记为多个,作为mask显示时仍会被认为属于同一个对象(被一个boundingbox框住)。以下图为例:
我在手动标记时标记了3个鼠标,然而因为他们属于同一class,导致这3个鼠标最终被判定为一个对象。之前我在cup数据集中使用了大量含有多个cup的图片,使得模型反复将两个甚至三个茶杯当做一个整体来识别。效