一、采集数据
安装labelme:pip install labelme
打开labelme:labelme
将收集好的照片(320×320,png格式)存放到一个文件夹中,例如我的是F:\test
,再此文件夹下再创建个文件夹label
用于存放标签文件
使用labelme打开数据存放的文件夹路径
进行标记
保存的时候选择创建的label
文件夹
最终的结果如下
二、制作数据集
U-net所用的数据集是VOC格式类型,也就是需要掩码
需要将这些标签文件转换为二值图像
创建一个文件夹mask
用于存放二值图像
将json格式转换为二值图像
这里是0和255,但有的数据集需要0和1,也就是目标图像设置为1
只需要将label_png[label_png > 0] = 255
中的255改成1即可。
# -*- coding: UTF-8 -*-
from __future__ import print_function
import argparse
import glob
import math
import json
import os
import os.path as osp
import shutil
import numpy as np
import PIL.Image
import PIL.ImageDraw
import cv2def json2png(json_folder, png_save_folder):if osp.isdir(png_save_folder):shutil.rmtree(png_save_folder)os.makedirs(png_save_folder)json_files = os.listdir(json_folder)for json_file in json_files:json_path = osp.join(json_folder, json_file)os.system("labelme_json_to_dataset {}".format(json_path))label_path = osp.join(json_folder, json_file.split(".")[0] + "_json/label.png")png_save_path = osp.join(png_save_folder, json_file.split(".")[0] + ".png")label_png = cv2.imread(label_path, 0)label_png[label_png > 0] = 255cv2.imwrite(png_save_path, label_png)# shutil.copy(label_path, png_save_path)# breakif __name__ == '__main__':# !!!!你的json文件夹下只能有json文件不能有其他文件json2png(json_folder=r"F:\test\label",#json文件所在位置png_save_folder=r"F:\test\mask")#生成二值图像的位置
至此,数据集的采集和制作已经完成