做网站卖掉,帮客户做网站图片被告侵权,网站建设公司内部情况,成都旅游几月份去最佳时间一、打开labelme工具进行数据标注 二、数据格式转换
2.1 标签转换
运行Anaconda Prompt#xff0c;进入json标签文件所在目录#xff0c;逐个转换#xff0c;分布运行
labelme_json_to_dataset 0000.json
labelme_json_to_dataset 0001.json
labelme_json_to_dataset 000…一、打开labelme工具进行数据标注 二、数据格式转换
2.1 标签转换
运行Anaconda Prompt进入json标签文件所在目录逐个转换分布运行
labelme_json_to_dataset 0000.json
labelme_json_to_dataset 0001.json
labelme_json_to_dataset 0002.json
labelme_json_to_dataset 0003.json
labelme_json_to_dataset 0004.json
labelme_json_to_dataset 0005.json结束后会得到这些文件夹 看看里面是什么内容。。
2.2 生成二值图标签和train.py 创建一个data_json_train空文件夹 在data_json_train下创建images、clips、gt_image、gt_binary_image、gt_instance_image 共5个文件夹 在images下创建data空文件夹 在data下创建annotations空文件夹 将2.1节的生成的文件复制到annotations文件夹下 在data_json_train下创建data.py代码如下
# data.py
import cv2
from skimage import measure, color
from skimage.measure import regionprops
import numpy as np
import os
import copy# 优化的地方应该用文件的名字来命名新的文件而不是简单的进行 1 操作就进行对图片文件的命名
# BUG 已解决
def skimageFilter(gray):binary_warped copy.copy(gray)binary_warped[binary_warped 0.1] 255gray (np.dstack((gray, gray, gray)) * 255).astype(uint8)labels measure.label(gray[:, :, 0], connectivity1)dst color.label2rgb(labels, bg_label0, bg_color(0, 0, 0))gray cv2.cvtColor(np.uint8(dst * 255), cv2.COLOR_RGB2GRAY)return binary_warped, graydef moveImageTodir(path, targetPath, name):if os.path.isdir(path):image_name gt_image/ str(name) .pngbinary_name gt_binary_image/ str(name) .pnginstance_name gt_instance_image/ str(name) .pngtrain_rows image_name binary_name instance_name \norigin_img cv2.imread(path /img.png)origin_img cv2.resize(origin_img, (1280, 720))cv2.imwrite(targetPath / image_name, origin_img)img cv2.imread(path /label.png)img cv2.resize(img, (1280, 720))gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)binary_warped, instance skimageFilter(gray)cv2.imwrite(targetPath / binary_name, binary_warped)cv2.imwrite(targetPath / instance_name, instance)print(success create data name is : , train_rows)return train_rowsreturn Noneif __name__ __main__:print(--------------开始执行----------------)#count 1with open(./train.txt, w) as file:for images_dir in os.listdir(./images):dir_name os.path.join(./images, images_dir /annotations)for annotations_dir in os.listdir(dir_name):json_dir os.path.join(dir_name, annotations_dir)if os.path.isdir(json_dir):# train_rows moveImageTodir(json_dir, ./, str(count).zfill(4))# 利用 json 文件夹的名字来对生成的图片进行命名比较好对应train_rows moveImageTodir(json_dir, ./, json_dir.split(\\)[-1])file.write(train_rows)#count 1运行data.py会生成train.txt以及gt_imagegt_binary_imagegt_instance_image下会生成转换后的标签 看下gt_binary_image下的东西。。
由于标注的数据少所有val.txt复制train.txtx的内容。 使用train.txtgt_imagegt_binary_imagegt_instance_image就可以进行训练了
大功告成