瀏覽代碼

Update labelme2voc.py to use --labels for labels.txt

Kentaro Wada 6 年之前
父節點
當前提交
585ee0a22e

+ 1 - 1
examples/bbox_detection/README.md

@@ -17,7 +17,7 @@ labelme data_annotated --labels labels.txt --nodata --autosave
 #   - data_dataset_voc/JPEGImages
 #   - data_dataset_voc/Annotations
 #   - data_dataset_voc/AnnotationsVisualization
-./labelme2voc.py labels.txt data_annotated data_dataset_voc
+./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt
 ```
 
 <img src="data_dataset_voc/JPEGImages/2011_000003.jpg" width="33%" /> <img src="data_dataset_voc/AnnotationsVisualization/2011_000003.jpg" width="33%" />

+ 19 - 18
examples/bbox_detection/labelme2voc.py

@@ -23,24 +23,25 @@ import labelme
 
 def main():
     parser = argparse.ArgumentParser(
-        formatter_class=argparse.ArgumentDefaultsHelpFormatter)
-    parser.add_argument('labels_file')
-    parser.add_argument('in_dir', help='input dir with annotated files')
-    parser.add_argument('out_dir', help='output dataset directory')
+        formatter_class=argparse.ArgumentDefaultsHelpFormatter
+    )
+    parser.add_argument('input_dir', help='input annotated directory')
+    parser.add_argument('output_dir', help='output dataset directory')
+    parser.add_argument('--labels', help='labels file')
     args = parser.parse_args()
 
-    if osp.exists(args.out_dir):
-        print('Output directory already exists:', args.out_dir)
-        quit(1)
-    os.makedirs(args.out_dir)
-    os.makedirs(osp.join(args.out_dir, 'JPEGImages'))
-    os.makedirs(osp.join(args.out_dir, 'Annotations'))
-    os.makedirs(osp.join(args.out_dir, 'AnnotationsVisualization'))
-    print('Creating dataset:', args.out_dir)
+    if osp.exists(args.output_dir):
+        print('Output directory already exists:', args.output_dir)
+        sys.exit(1)
+    os.makedirs(args.output_dir)
+    os.makedirs(osp.join(args.output_dir, 'JPEGImages'))
+    os.makedirs(osp.join(args.output_dir, 'Annotations'))
+    os.makedirs(osp.join(args.output_dir, 'AnnotationsVisualization'))
+    print('Creating dataset:', args.output_dir)
 
     class_names = []
     class_name_to_id = {}
-    for i, line in enumerate(open(args.labels_file).readlines()):
+    for i, line in enumerate(open(args.labels).readlines()):
         class_id = i - 1  # starts with -1
         class_name = line.strip()
         class_name_to_id[class_name] = class_id
@@ -52,22 +53,22 @@ def main():
         class_names.append(class_name)
     class_names = tuple(class_names)
     print('class_names:', class_names)
-    out_class_names_file = osp.join(args.out_dir, 'class_names.txt')
+    out_class_names_file = osp.join(args.output_dir, 'class_names.txt')
     with open(out_class_names_file, 'w') as f:
         f.writelines('\n'.join(class_names))
     print('Saved class_names:', out_class_names_file)
 
-    for label_file in glob.glob(osp.join(args.in_dir, '*.json')):
+    for label_file in glob.glob(osp.join(args.input_dir, '*.json')):
         print('Generating dataset from:', label_file)
         with open(label_file) as f:
             data = json.load(f)
         base = osp.splitext(osp.basename(label_file))[0]
         out_img_file = osp.join(
-            args.out_dir, 'JPEGImages', base + '.jpg')
+            args.output_dir, 'JPEGImages', base + '.jpg')
         out_xml_file = osp.join(
-            args.out_dir, 'Annotations', base + '.xml')
+            args.output_dir, 'Annotations', base + '.xml')
         out_viz_file = osp.join(
-            args.out_dir, 'AnnotationsVisualization', base + '.jpg')
+            args.output_dir, 'AnnotationsVisualization', base + '.jpg')
 
         img_file = osp.join(osp.dirname(label_file), data['imagePath'])
         img = np.asarray(PIL.Image.open(img_file))

+ 1 - 1
examples/instance_segmentation/README.md

@@ -17,7 +17,7 @@ labelme data_annotated --labels labels.txt --nodata
 #   - data_dataset_voc/SegmentationClassVisualization
 #   - data_dataset_voc/SegmentationObject
 #   - data_dataset_voc/SegmentationObjectVisualization
-./labelme2voc.py labels.txt data_annotated data_dataset_voc
+./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt
 ```
 
 <img src="data_dataset_voc/JPEGImages/2011_000003.jpg" width="33%" /> <img src="data_dataset_voc/SegmentationClassVisualization/2011_000003.jpg" width="33%" /> <img src="data_dataset_voc/SegmentationObjectVisualization/2011_000003.jpg" width="33%" />  

+ 33 - 26
examples/instance_segmentation/labelme2voc.py

@@ -16,28 +16,29 @@ import labelme
 
 def main():
     parser = argparse.ArgumentParser(
-        formatter_class=argparse.ArgumentDefaultsHelpFormatter)
-    parser.add_argument('labels_file')
-    parser.add_argument('in_dir')
-    parser.add_argument('out_dir')
+        formatter_class=argparse.ArgumentDefaultsHelpFormatter
+    )
+    parser.add_argument('input_dir', help='input annotated directory')
+    parser.add_argument('output_dir', help='output dataset directory')
+    parser.add_argument('--labels', help='labels file')
     args = parser.parse_args()
 
-    if osp.exists(args.out_dir):
-        print('Output directory already exists:', args.out_dir)
-        quit(1)
-    os.makedirs(args.out_dir)
-    os.makedirs(osp.join(args.out_dir, 'JPEGImages'))
-    os.makedirs(osp.join(args.out_dir, 'SegmentationClass'))
-    os.makedirs(osp.join(args.out_dir, 'SegmentationClassPNG'))
-    os.makedirs(osp.join(args.out_dir, 'SegmentationClassVisualization'))
-    os.makedirs(osp.join(args.out_dir, 'SegmentationObject'))
-    os.makedirs(osp.join(args.out_dir, 'SegmentationObjectPNG'))
-    os.makedirs(osp.join(args.out_dir, 'SegmentationObjectVisualization'))
-    print('Creating dataset:', args.out_dir)
+    if osp.exists(args.output_dir):
+        print('Output directory already exists:', args.output_dir)
+        sys.exit(1)
+    os.makedirs(args.output_dir)
+    os.makedirs(osp.join(args.output_dir, 'JPEGImages'))
+    os.makedirs(osp.join(args.output_dir, 'SegmentationClass'))
+    os.makedirs(osp.join(args.output_dir, 'SegmentationClassPNG'))
+    os.makedirs(osp.join(args.output_dir, 'SegmentationClassVisualization'))
+    os.makedirs(osp.join(args.output_dir, 'SegmentationObject'))
+    os.makedirs(osp.join(args.output_dir, 'SegmentationObjectPNG'))
+    os.makedirs(osp.join(args.output_dir, 'SegmentationObjectVisualization'))
+    print('Creating dataset:', args.output_dir)
 
     class_names = []
     class_name_to_id = {}
-    for i, line in enumerate(open(args.labels_file).readlines()):
+    for i, line in enumerate(open(args.labels).readlines()):
         class_id = i - 1  # starts with -1
         class_name = line.strip()
         class_name_to_id[class_name] = class_id
@@ -49,31 +50,37 @@ def main():
         class_names.append(class_name)
     class_names = tuple(class_names)
     print('class_names:', class_names)
-    out_class_names_file = osp.join(args.out_dir, 'class_names.txt')
+    out_class_names_file = osp.join(args.output_dir, 'class_names.txt')
     with open(out_class_names_file, 'w') as f:
         f.writelines('\n'.join(class_names))
     print('Saved class_names:', out_class_names_file)
 
     colormap = labelme.utils.label_colormap(255)
 
-    for label_file in glob.glob(osp.join(args.in_dir, '*.json')):
+    for label_file in glob.glob(osp.join(args.input_dir, '*.json')):
         print('Generating dataset from:', label_file)
         with open(label_file) as f:
             base = osp.splitext(osp.basename(label_file))[0]
             out_img_file = osp.join(
-                args.out_dir, 'JPEGImages', base + '.jpg')
+                args.output_dir, 'JPEGImages', base + '.jpg')
             out_cls_file = osp.join(
-                args.out_dir, 'SegmentationClass', base + '.npy')
+                args.output_dir, 'SegmentationClass', base + '.npy')
             out_clsp_file = osp.join(
-                args.out_dir, 'SegmentationClassPNG', base + '.png')
+                args.output_dir, 'SegmentationClassPNG', base + '.png')
             out_clsv_file = osp.join(
-                args.out_dir, 'SegmentationClassVisualization', base + '.jpg')
+                args.output_dir,
+                'SegmentationClassVisualization',
+                base + '.jpg',
+            )
             out_ins_file = osp.join(
-                args.out_dir, 'SegmentationObject', base + '.npy')
+                args.output_dir, 'SegmentationObject', base + '.npy')
             out_insp_file = osp.join(
-                args.out_dir, 'SegmentationObjectPNG', base + '.png')
+                args.output_dir, 'SegmentationObjectPNG', base + '.png')
             out_insv_file = osp.join(
-                args.out_dir, 'SegmentationObjectVisualization', base + '.jpg')
+                args.output_dir,
+                'SegmentationObjectVisualization',
+                base + '.jpg',
+            )
 
             data = json.load(f)
 

+ 1 - 1
examples/semantic_segmentation/README.md

@@ -16,7 +16,7 @@ labelme data_annotated --labels labels.txt --nodata
 #   - data_dataset_voc/JPEGImages
 #   - data_dataset_voc/SegmentationClass
 #   - data_dataset_voc/SegmentationClassVisualization
-./labelme2voc.py labels.txt data_annotated data_dataset_voc
+./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt
 ```
 
 <img src="data_dataset_voc/JPEGImages/2011_000003.jpg" width="33%" /> <img src="data_dataset_voc/SegmentationClassPNG/2011_000003.png" width="33%" /> <img src="data_dataset_voc/SegmentationClassVisualization/2011_000003.jpg" width="33%" />

+ 24 - 20
examples/semantic_segmentation/labelme2voc.py

@@ -16,25 +16,26 @@ import labelme
 
 def main():
     parser = argparse.ArgumentParser(
-        formatter_class=argparse.ArgumentDefaultsHelpFormatter)
-    parser.add_argument('labels_file')
-    parser.add_argument('in_dir', help='input dir with annotated files')
-    parser.add_argument('out_dir', help='output dataset directory')
+        formatter_class=argparse.ArgumentDefaultsHelpFormatter
+    )
+    parser.add_argument('input_dir', help='input annotated directory')
+    parser.add_argument('output_dir', help='output dataset directory')
+    parser.add_argument('--labels', help='labels file')
     args = parser.parse_args()
 
-    if osp.exists(args.out_dir):
-        print('Output directory already exists:', args.out_dir)
-        quit(1)
-    os.makedirs(args.out_dir)
-    os.makedirs(osp.join(args.out_dir, 'JPEGImages'))
-    os.makedirs(osp.join(args.out_dir, 'SegmentationClass'))
-    os.makedirs(osp.join(args.out_dir, 'SegmentationClassPNG'))
-    os.makedirs(osp.join(args.out_dir, 'SegmentationClassVisualization'))
-    print('Creating dataset:', args.out_dir)
+    if osp.exists(args.output_dir):
+        print('Output directory already exists:', args.output_dir)
+        sys.exit(1)
+    os.makedirs(args.output_dir)
+    os.makedirs(osp.join(args.output_dir, 'JPEGImages'))
+    os.makedirs(osp.join(args.output_dir, 'SegmentationClass'))
+    os.makedirs(osp.join(args.output_dir, 'SegmentationClassPNG'))
+    os.makedirs(osp.join(args.output_dir, 'SegmentationClassVisualization'))
+    print('Creating dataset:', args.output_dir)
 
     class_names = []
     class_name_to_id = {}
-    for i, line in enumerate(open(args.labels_file).readlines()):
+    for i, line in enumerate(open(args.labels).readlines()):
         class_id = i - 1  # starts with -1
         class_name = line.strip()
         class_name_to_id[class_name] = class_id
@@ -46,25 +47,28 @@ def main():
         class_names.append(class_name)
     class_names = tuple(class_names)
     print('class_names:', class_names)
-    out_class_names_file = osp.join(args.out_dir, 'class_names.txt')
+    out_class_names_file = osp.join(args.output_dir, 'class_names.txt')
     with open(out_class_names_file, 'w') as f:
         f.writelines('\n'.join(class_names))
     print('Saved class_names:', out_class_names_file)
 
     colormap = labelme.utils.label_colormap(255)
 
-    for label_file in glob.glob(osp.join(args.in_dir, '*.json')):
+    for label_file in glob.glob(osp.join(args.input_dir, '*.json')):
         print('Generating dataset from:', label_file)
         with open(label_file) as f:
             base = osp.splitext(osp.basename(label_file))[0]
             out_img_file = osp.join(
-                args.out_dir, 'JPEGImages', base + '.jpg')
+                args.output_dir, 'JPEGImages', base + '.jpg')
             out_lbl_file = osp.join(
-                args.out_dir, 'SegmentationClass', base + '.npy')
+                args.output_dir, 'SegmentationClass', base + '.npy')
             out_png_file = osp.join(
-                args.out_dir, 'SegmentationClassPNG', base + '.png')
+                args.output_dir, 'SegmentationClassPNG', base + '.png')
             out_viz_file = osp.join(
-                args.out_dir, 'SegmentationClassVisualization', base + '.jpg')
+                args.output_dir,
+                'SegmentationClassVisualization',
+                base + '.jpg',
+            )
 
             data = json.load(f)