diff --git a/paddlex/tools/x2coco.py b/paddlex/tools/x2coco.py index 5bbc90100f2aabce5c6d6c85d214cb8464babafb..595a6e6d328d08ff9aa8000c5afb465786c31431 100644 --- a/paddlex/tools/x2coco.py +++ b/paddlex/tools/x2coco.py @@ -55,22 +55,28 @@ class X2COCO(object): annotation["id"] = object_id + 1 return annotation - def convert(self, image_input_dir, json_input_dir, dataset_save_dir): - assert osp.exists(image_input_dir), "he image folder does not exist!" - assert osp.exists(json_input_dir), "The json folder does not exist!" + def convert(self, image_dir, json_dir, dataset_save_dir): + """转换。 + Args: + image_dir (str): 图像文件存放的路径。 + json_dir (str): 与每张图像对应的json文件的存放路径。 + dataset_save_dir (str): 转换后数据集存放路径。 + """ + assert osp.exists(image_dir), "he image folder does not exist!" + assert osp.exists(json_dir), "The json folder does not exist!" assert osp.exists(dataset_save_dir), "The save folder does not exist!" # Convert the image files. new_image_dir = osp.join(dataset_save_dir, "JPEGImages") if osp.exists(new_image_dir): shutil.rmtree(new_image_dir) os.makedirs(new_image_dir) - for img_name in os.listdir(image_input_dir): + for img_name in os.listdir(image_dir): if is_pic(img_name): shutil.copyfile( - osp.join(image_input_dir, img_name), + osp.join(image_dir, img_name), osp.join(new_image_dir, img_name)) # Convert the json files. - self.analyse_json(new_image_dir, json_input_dir) + self.parse_json(new_image_dir, json_dir) coco_data = {} coco_data["images"] = self.images_list coco_data["categories"] = self.categories_list @@ -84,6 +90,8 @@ class X2COCO(object): class LabelMe2COCO(X2COCO): + """将使用LabelMe标注的数据集转换为COCO数据集。 + """ def __init__(self): super(LabelMe2COCO, self).__init__() @@ -127,7 +135,7 @@ class LabelMe2COCO(X2COCO): right_bottom_r - left_top_r ] - def analyse_json(self, img_dir, json_dir): + def parse_json(self, img_dir, json_dir): image_id = -1 object_id = -1 labels_list = [] @@ -168,6 +176,8 @@ class LabelMe2COCO(X2COCO): class EasyData2COCO(X2COCO): + """将使用EasyData标注的检测或分割数据集转换为COCO数据集。 + """ def __init__(self): super(EasyData2COCO, self).__init__() @@ -196,7 +206,7 @@ class EasyData2COCO(X2COCO): annotation["id"] = object_id + 1 return annotation - def analyse_json(self, img_dir, json_dir): + def parse_json(self, img_dir, json_dir): from pycocotools.mask import decode image_id = -1 object_id = -1 diff --git a/paddlex/tools/x2imagenet.py b/paddlex/tools/x2imagenet.py index aeea7d14d99820d0d1ba0b72e2829dd5287c0000..676eaec8d1193c230b01695c968e76536e8632e0 100644 --- a/paddlex/tools/x2imagenet.py +++ b/paddlex/tools/x2imagenet.py @@ -23,10 +23,18 @@ import numpy as np from .base import MyEncoder, is_pic, get_encoding class EasyData2ImageNet(object): + """将使用EasyData标注的分类数据集转换为COCO数据集。 + """ def __init__(self): pass def convert(self, image_dir, json_dir, dataset_save_dir): + """转换。 + Args: + image_dir (str): 图像文件存放的路径。 + json_dir (str): 与每张图像对应的json文件的存放路径。 + dataset_save_dir (str): 转换后数据集存放路径。 + """ assert osp.exists(image_dir), "The image folder does not exist!" assert osp.exists(json_dir), "The json folder does not exist!" assert osp.exists(dataset_save_dir), "The save folder does not exist!" diff --git a/paddlex/tools/x2seg.py b/paddlex/tools/x2seg.py index d4b12e74c7257e63edf78df5ea95ff360eea9cf4..8e18407c0dc5084923f5c4d462b32a63fc6616f0 100644 --- a/paddlex/tools/x2seg.py +++ b/paddlex/tools/x2seg.py @@ -29,6 +29,7 @@ class X2Seg(object): self.labels2ids = {'_background_': 0} def shapes_to_label(self, img_shape, shapes, label_name_to_value): + # This function is based on https://github.com/wkentaro/labelme/blob/master/labelme/utils/shape.py. def shape_to_mask(img_shape, points, shape_type=None, line_width=10, point_size=5): mask = np.zeros(img_shape[:2], dtype=np.uint8) @@ -102,6 +103,12 @@ class X2Seg(object): return color_map def convert(self, image_dir, json_dir, dataset_save_dir): + """转换。 + Args: + image_dir (str): 图像文件存放的路径。 + json_dir (str): 与每张图像对应的json文件的存放路径。 + dataset_save_dir (str): 转换后数据集存放路径。 + """ assert osp.exists(image_dir), "The image folder does not exist!" assert osp.exists(json_dir), "The json folder does not exist!" assert osp.exists(dataset_save_dir), "The save folder does not exist!" @@ -130,6 +137,8 @@ class X2Seg(object): class JingLing2Seg(X2Seg): + """将使用标注精灵标注的数据集转换为Seg数据集。 + """ def __init__(self): super(JingLing2Seg, self).__init__() @@ -198,6 +207,8 @@ class JingLing2Seg(X2Seg): class LabelMe2Seg(X2Seg): + """将使用LabelMe标注的数据集转换为Seg数据集。 + """ def __init__(self): super(LabelMe2Seg, self).__init__() @@ -246,6 +257,8 @@ class LabelMe2Seg(X2Seg): class EasyData2Seg(X2Seg): + """将使用EasyData标注的分割数据集转换为Seg数据集。 + """ def __init__(self): super(EasyData2Seg, self).__init__() diff --git a/paddlex/tools/x2voc.py b/paddlex/tools/x2voc.py index b241716240b14d280d1746b6054dd2b871ed198b..63749cfc4d02b73390a8918fdcb44a1aa0c3af0c 100644 --- a/paddlex/tools/x2voc.py +++ b/paddlex/tools/x2voc.py @@ -27,6 +27,12 @@ class X2VOC(object): pass def convert(self, image_dir, json_dir, dataset_save_dir): + """转换。 + Args: + image_dir (str): 图像文件存放的路径。 + json_dir (str): 与每张图像对应的json文件的存放路径。 + dataset_save_dir (str): 转换后数据集存放路径。 + """ assert osp.exists(image_dir), "The image folder does not exist!" assert osp.exists(json_dir), "The json folder does not exist!" assert osp.exists(dataset_save_dir), "The save folder does not exist!" @@ -49,6 +55,8 @@ class X2VOC(object): class LabelMe2VOC(X2VOC): + """将使用LabelMe标注的数据集转换为VOC数据集。 + """ def __init__(self): pass @@ -119,6 +127,8 @@ class LabelMe2VOC(X2VOC): class EasyData2VOC(X2VOC): + """将使用EasyData标注的分割数据集转换为VOC数据集。 + """ def __init__(self): pass