提交 487e14b8 编写于 作者: K Kentaro Wada

Fix image orienation in instance_segmentation/labelme2voc.py

上级 9b5bb5ae
...@@ -4,14 +4,12 @@ from __future__ import print_function ...@@ -4,14 +4,12 @@ from __future__ import print_function
import argparse import argparse
import glob import glob
import json
import os import os
import os.path as osp import os.path as osp
import sys import sys
import imgviz import imgviz
import numpy as np import numpy as np
import PIL.Image
import labelme import labelme
...@@ -66,73 +64,72 @@ def main(): ...@@ -66,73 +64,72 @@ def main():
f.writelines('\n'.join(class_names)) f.writelines('\n'.join(class_names))
print('Saved class_names:', out_class_names_file) print('Saved class_names:', out_class_names_file)
for label_file in glob.glob(osp.join(args.input_dir, '*.json')): for filename in glob.glob(osp.join(args.input_dir, '*.json')):
print('Generating dataset from:', label_file) print('Generating dataset from:', filename)
with open(label_file) as f:
base = osp.splitext(osp.basename(label_file))[0] label_file = labelme.LabelFile(filename=filename)
out_img_file = osp.join(
args.output_dir, 'JPEGImages', base + '.jpg') base = osp.splitext(osp.basename(filename))[0]
out_cls_file = osp.join( out_img_file = osp.join(
args.output_dir, 'SegmentationClass', base + '.npy') args.output_dir, 'JPEGImages', base + '.jpg')
out_clsp_file = osp.join( out_cls_file = osp.join(
args.output_dir, 'SegmentationClassPNG', base + '.png') args.output_dir, 'SegmentationClass', base + '.npy')
if not args.noviz: out_clsp_file = osp.join(
out_clsv_file = osp.join( args.output_dir, 'SegmentationClassPNG', base + '.png')
args.output_dir, if not args.noviz:
'SegmentationClassVisualization', out_clsv_file = osp.join(
base + '.jpg', args.output_dir,
) 'SegmentationClassVisualization',
out_ins_file = osp.join( base + '.jpg',
args.output_dir, 'SegmentationObject', base + '.npy')
out_insp_file = osp.join(
args.output_dir, 'SegmentationObjectPNG', base + '.png')
if not args.noviz:
out_insv_file = osp.join(
args.output_dir,
'SegmentationObjectVisualization',
base + '.jpg',
)
data = json.load(f)
img_file = osp.join(osp.dirname(label_file), data['imagePath'])
img = np.asarray(PIL.Image.open(img_file))
PIL.Image.fromarray(img).save(out_img_file)
cls, ins = labelme.utils.shapes_to_label(
img_shape=img.shape,
shapes=data['shapes'],
label_name_to_value=class_name_to_id,
) )
ins[cls == -1] = 0 # ignore it. out_ins_file = osp.join(
args.output_dir, 'SegmentationObject', base + '.npy')
# class label out_insp_file = osp.join(
labelme.utils.lblsave(out_clsp_file, cls) args.output_dir, 'SegmentationObjectPNG', base + '.png')
np.save(out_cls_file, cls) if not args.noviz:
if not args.noviz: out_insv_file = osp.join(
clsv = imgviz.label2rgb( args.output_dir,
label=cls, 'SegmentationObjectVisualization',
img=imgviz.rgb2gray(img), base + '.jpg',
label_names=class_names, )
font_size=15,
loc='rb', img = labelme.utils.img_data_to_arr(label_file.imageData)
) imgviz.io.imsave(out_img_file, img)
imgviz.io.imsave(out_clsv_file, clsv)
cls, ins = labelme.utils.shapes_to_label(
# instance label img_shape=img.shape,
labelme.utils.lblsave(out_insp_file, ins) shapes=label_file.shapes,
np.save(out_ins_file, ins) label_name_to_value=class_name_to_id,
if not args.noviz: )
instance_ids = np.unique(ins) ins[cls == -1] = 0 # ignore it.
instance_names = [str(i) for i in range(max(instance_ids) + 1)]
insv = imgviz.label2rgb( # class label
label=ins, labelme.utils.lblsave(out_clsp_file, cls)
img=imgviz.rgb2gray(img), np.save(out_cls_file, cls)
label_names=instance_names, if not args.noviz:
font_size=15, clsv = imgviz.label2rgb(
loc='rb', label=cls,
) img=imgviz.rgb2gray(img),
imgviz.io.imsave(out_insv_file, insv) label_names=class_names,
font_size=15,
loc='rb',
)
imgviz.io.imsave(out_clsv_file, clsv)
# instance label
labelme.utils.lblsave(out_insp_file, ins)
np.save(out_ins_file, ins)
if not args.noviz:
instance_ids = np.unique(ins)
instance_names = [str(i) for i in range(max(instance_ids) + 1)]
insv = imgviz.label2rgb(
label=ins,
img=imgviz.rgb2gray(img),
label_names=instance_names,
font_size=15,
loc='rb',
)
imgviz.io.imsave(out_insv_file, insv)
if __name__ == '__main__': if __name__ == '__main__':
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册