sunyanfang01 пре 5 година
родитељ
комит
02c8e57446
4 измењених фајлова са 49 додато и 8 уклоњено
  1. 18 8
      paddlex/tools/x2coco.py
  2. 8 0
      paddlex/tools/x2imagenet.py
  3. 13 0
      paddlex/tools/x2seg.py
  4. 10 0
      paddlex/tools/x2voc.py

+ 18 - 8
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

+ 8 - 0
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!"

+ 13 - 0
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__()
     

+ 10 - 0
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