def load_data(datafile, num_class, save=False, save_path='dataset.pkl'): """ load 17 flowers dataset :param datafile: :param num_class: :param save: :param save_path: :return: """ train_list = open(datafile, 'r') labels = [] images = [] for line in train_list: tmp = line.strip().split(' ') filepath = tmp[0] print(filepath) img = Image.open(filepath) img = prep.resize_image(img, 224, 224) np_img = prep.pil_to_nparray(img) images.append(np_img) # one-hot encoder index = int(tmp[1]) label = np.zeros(num_class) label[index] = 1 labels.append(label) if save: pickle.dump((images, labels), open(save_path, 'wb')) return images, labels
def load_data(datafile, num_class, save=False, save_path='dataset.pkl'): fr = codecs.open(datafile, 'r', 'utf-8') train_list = fr.readlines() labels = [] images = [] for line in train_list: tmp = line.strip().split(' ') fpath = tmp[0] img = cv2.imread(fpath) img = prep.resize_image(img, config.IMAGE_SIZE, config.IMAGE_SIZE) np_img = np.asarray(img, dtype="float32") images.append(np_img) index = int(tmp[1]) label = np.zeros(num_class) label[index] = 1 labels.append(label) if save: pickle.dump((images, labels), open(save_path, 'wb')) fr.close() return images, labels
def image_proposal(img_path): img = cv2.imread(img_path) img_lbl, regions = selectivesearch.selective_search(img, scale=500, sigma=0.9, min_size=10) candidates = set() images = [] vertices = [] for r in regions: # excluding same rectangle (with different segments) if r['rect'] in candidates: continue # excluding small regions if r['size'] < 220: continue if (r['rect'][2] * r['rect'][3]) < 500: continue # resize to 227 * 227 for input proposal_img, proposal_vertice = prep.cropImage(img, r['rect']) # Delete Empty array if len(proposal_img) == 0: continue # Ignore things contain 0 or not C contiguous array x, y, w, h = r['rect'] if w == 0 or h == 0: continue # Check if any 0-dimension exist [a, b, c] = np.shape(proposal_img) if a == 0 or b == 0 or c == 0: continue resized_proposal_img = prep.resize_image(proposal_img, config.IMAGE_SIZE, config.IMAGE_SIZE) candidates.add(r['rect']) img_float = np.asarray(resized_proposal_img, dtype="float32") images.append(img_float) vertices.append(r['rect']) return images, vertices
def image_proposal(img_path): """ using selective search to generate proposals of image :param img_path: :return: """ img = skimage_io.imread(img_path) img_lbl, regions = selectivesearch.selective_search(img, scale=500, sigma=0.9, min_size=10) candidates = set() images = [] vertices = [] for r in regions: # excluding same rectangle if r['rect'] in candidates: continue if r['size'] < 220: continue # resize to 224 * 224 for input proposal_img, proposal_vertice = prep.clip_pic(img, r['rect']) # delete empty if len(proposal_img) == 0: continue x, y, w, h = r['rect'] if w == 0 or h == 0: continue [a, b, c] = np.shape(proposal_img) if a == 0 or b == 0 or c == 0: continue im = Image.fromarray(proposal_img) resized_proposal_img = prep.resize_image(im, 224, 224) candidates.add(r['rect']) img_float = prep.pil_to_nparray(resized_proposal_img) images.append(img_float) vertices.append(r['rect']) return images, vertices