CVAT是一个非常方便的标注平台,可以实现半自动标注,导出的格式也是非常全面,基本的图像检测分割算法需要的标注信息格式它都涵盖。
使用官方的YOLOv8代码正常来说可以直接转成YOLO格式供使用。
但是我这里的YOLO格式导出后txt里面没有标注内容,不知道为什么,因此采用了先转COCO格式,再手动代码转YOLO格式。而在CVAT标注中如果使用了Draw new mask这个按点标注的功能的话,在导出的COCO的Json文件中会出现类似与这种格式
这其实是RLE格式的标注信息,可以使用如下代码转化为普通的segmentation像素点格式。
####RLE格式标签###转化
import numpy as np
import matplotlib.pyplot as plt
rle = [339224, 5, 1, 2, 591, 10, 589, 11, 588, 12, 588, 12, 587, 13, 587, 12, 589, 6, 594, 6, 594, 5, 594, 5, 594, 5, 594, 6, 593, 6, 593, 6, 594, 5, 594, 5, 594, 5, 595, 5, 594, 5, 595, 4, 596, 4, 595, 5, 595, 5, 594, 5, 595, 5, 594, 5, 595, 5, 596, 3, 603986]
assert sum(rle) == 600*1600
M = np.zeros(600*1600)
N = len(rle)
n = 0
val = 1
for pos in range(N):
val = not val
for c in range(rle[pos]):
M[n] = val
n += 1
# np.savetxt('test.txt',M)
GEMFIELD = M.resha