原文链接:自制COCO 实例分割dataset并测试效果(从采集到测试)
核心内容流程:
1, labelme 标注
2,labelme自带工具转换到coco
3,coco自带api显示
自制COCO 实例分割dataset并测试效果
- 自制实例分割数据集
流程:采集->标注->测试
1.1 前期准备
自制采集工具:wxpython_camera,支持普通摄像头和zed mini,图片采集分辨率自己在代码里改
标注工具:labelme
labelme标注效果:
采集程序运行效果:
1.2 采集->标注
用labelme打开采集完成的文件夹,使用create polygon标注好保存标注的分类和文件后。在开发环境执行下面语句安装labelme库和官方项目以及pycocotool库
程序要安装库也要安装
pip install labelme
克隆官方项目
git clone https://github.com/wkentaro/labelme.git
windows pycocotool执行这个
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI
1
2
3
4
5
6
使用labelme官方仓库的方法生成对应coco格式的数据集
使用官方仓库examples/instance_segmentation文件夹下的labelme2coco.py对数据集进行格式转换
使用官方仓库examples/instance_segmentation文件夹下的labelme2coco.py对数据集进行格式转换
python labelme2coco.py <你数据集的路径> <转换后的数据集路径> --labels <labels文件路径>
1
2
下面为labels文件的格式,正常命名labels.txt就行,第一第二行保留,从_background_下开始写
ignore
background
teeth_top
teeth_bottom
uvula
tongue
pp_wall
tonsil_right
tonsil_left
1
2
3
4
5
6
7
8
9
1.3 测试
随便挑一张图片进行测试,使用pycocotool将一张图片的所有类型标注都输出
from pycocotools.coco import COCO
import matplotlib.pyplot as plt
import matplotlib
import cv2
matplotlib.use(‘Qt5Agg’)
file = “…/…/oral_dataset/annotations.json”
pic_path = “…/…/oral_dataset/JPEGImages/0.jpg”
im = cv2.imread(pic_path)
plt.imshow(im); plt.axis(‘off’)
cc = COCO(file)
把img id是0的图片拿来测试,就是第一张图
annIds = cc.getAnnIds(imgIds=0)
anns = cc.loadAnns(annIds)
cc.showAnns(anns)
plt.show()