from __future__ import print_function
import tensorflow as tf
import numpy as np
import os
import TensorflowUtils as utils
import read_MITSceneParsingData as scene_parsing
import datetime
import BatchDatsetReader as dataset
import random
from six.moves import cPickle as pickle
from tensorflow.python.platform import gfile
import glob
from six.moves import xrange
FLAGS = tf.flags.FLAGS
tf.flags.DEFINE_string("data_dir", "Data_zoo\\MIT_SceneParsing\\", "path to dataset")
tf.flags.DEFINE_string("image_dir", "Data_zoo\\MIT_SceneParsing\\ADEChallengeData2016", "path to dataset")
DATA_URL = 'http://data.csail.mit.edu/places/ADEchallenge/ADEChallengeData2016.zip'
def read_dataset(data_dir):
pickle_filename = "MITSceneParsing.pickle"
pickle_filepath = os.path.join(data_dir, pickle_filename)
if not os.path.exists(pickle_filepath):
utils.maybe_download_and_extract(data_dir, DATA_URL, is_zipfile=True)
SceneParsing_folder = os.path.splitext(DATA_URL.split("/")[-1])[0]
#SceneParsing_folder = os.path.splitext(DATA_URL.split("\\")[-1])[0]
result,images, masks= create_image_lists(os.path.join(data_dir, SceneParsing_folder))
print ("Pickling ...")
with open(pickle_filepath, 'wb') as f:
pickle.dump(result, f, pickle.HIGHEST_PROTOCOL)
else:
print ("Found pickle file!")
SceneParsing_folder = os.path.splitext(DATA_URL.split("/")[-1])[0]
result,images, masks = create_image_lists(os.path.join(data_dir, SceneParsing_folder))
training_records = result['training']
validation_records = result['validation']
#del result
return images, masks
def create_image_lists(image_dir):
if not gfile.Exists(image_dir):
print("Image directory '" + image_dir + "' not found.")
return None
directories = ['training', 'validation']
image_list = {}
for directory in directories:
file_list = []
image_list[directory] = []
file_glob = os.path.join(image_dir, "images", directory, '*.' + 'png')#Data_zoo\MIT_SceneParsing\ADEChallengeData2016\images\training\*.png
file_list.extend(glob.glob(file_glob))
if directory=='training':
images = []
#txt_path = r'C:\Users\Administrator\Desktop\train_multitask.txt'
#txt1 = open(txt_path, 'w')
for f in file_list:
#txt1.write(f+ '\n')
images.append(f)
else:
masks = []
#txt_path = r'C:\Users\Administrator\Desktop\validation_multitask.txt'
#txt2 = open(txt_path, 'w')
for f in file_list:
#txt2.write(f+ '\n')
masks.append(f)
if not file_list:
print('No files found')
else:
for f in file_list:
filename = os.path.splitext(f.split("\\")[-1])[0]
annotation_file = os.path.join(image_dir, "annotations", directory, filename + '.png')
if os.path.exists(annotation_file):
record = {'image': f, 'annotation': annotation_file, 'filename': filename}
image_list[directory].append(record)
else:
print("Annotation file not found for %s - Skipping" % filename)
random.shuffle(image_list[directory])
no_of_images = len(image_list[directory])
print ('No. of %s files: %d' % (directory, no_of_images))
return images, masks
images, masks=create_image_lists(FLAGS.image_dir)
PSP笔记(1)
最新推荐文章于 2022-09-07 11:20:35 发布