mirror of
https://github.com/huchenlei/HandRefinerPortable.git
synced 2026-02-01 18:49:46 +00:00
67 lines
1.7 KiB
Python
67 lines
1.7 KiB
Python
"""
|
|
Copyright (c) Microsoft Corporation.
|
|
Licensed under the MIT license.
|
|
|
|
"""
|
|
|
|
|
|
import os
|
|
import os.path as op
|
|
import numpy as np
|
|
import base64
|
|
import cv2
|
|
import yaml
|
|
from collections import OrderedDict
|
|
|
|
|
|
def img_from_base64(imagestring):
|
|
try:
|
|
jpgbytestring = base64.b64decode(imagestring)
|
|
nparr = np.frombuffer(jpgbytestring, np.uint8)
|
|
r = cv2.imdecode(nparr, cv2.IMREAD_COLOR)
|
|
return r
|
|
except:
|
|
return None
|
|
|
|
|
|
def load_labelmap(labelmap_file):
|
|
label_dict = None
|
|
if labelmap_file is not None and op.isfile(labelmap_file):
|
|
label_dict = OrderedDict()
|
|
with open(labelmap_file, 'r') as fp:
|
|
for line in fp:
|
|
label = line.strip().split('\t')[0]
|
|
if label in label_dict:
|
|
raise ValueError("Duplicate label " + label + " in labelmap.")
|
|
else:
|
|
label_dict[label] = len(label_dict)
|
|
return label_dict
|
|
|
|
|
|
def load_shuffle_file(shuf_file):
|
|
shuf_list = None
|
|
if shuf_file is not None:
|
|
with open(shuf_file, 'r') as fp:
|
|
shuf_list = []
|
|
for i in fp:
|
|
shuf_list.append(int(i.strip()))
|
|
return shuf_list
|
|
|
|
|
|
def load_box_shuffle_file(shuf_file):
|
|
if shuf_file is not None:
|
|
with open(shuf_file, 'r') as fp:
|
|
img_shuf_list = []
|
|
box_shuf_list = []
|
|
for i in fp:
|
|
idx = [int(_) for _ in i.strip().split('\t')]
|
|
img_shuf_list.append(idx[0])
|
|
box_shuf_list.append(idx[1])
|
|
return [img_shuf_list, box_shuf_list]
|
|
return None
|
|
|
|
|
|
def load_from_yaml_file(file_name):
|
|
with open(file_name, 'r') as fp:
|
|
return yaml.load(fp, Loader=yaml.CLoader)
|