i[y, px, 0] = 255 i[y + d - 1, px, 0] = 255 return i print ("Loading model ...") data = np.loadtxt(os.path.join(args.d, args.features), delimiter = ',') / 255 labels = np.loadtxt(os.path.join(args.d, args.labels), np.uint8) lines = [i.strip().split(" ") for i in open(os.path.join(args.d, args.labelmapping))] labelmap = dict([(int(n), l) for l, n in lines]) clf = KNeighborsClassifier(n_neighbors = 7, algorithm = 'brute') clf.fit(data, labels) img = resize_rgb_image(read_rgb_image(args.i), (32, 32)) d = [] for i, details in normed_windows(img, [1.0], details = True): arr = flatten(i) / 255 arr = np.reshape(arr, (1, -1)) t = clf.predict(arr) c = t[0] print (c, labelmap[c]) distances, idx = clf.kneighbors(arr) distances = [d for d, p in zip(distances.flatten(), idx.flatten()) if labels[p] == c] s = sum(distances) / len(distances) d.append([s, c, details]) d = sorted(d) for s, c, details in d[:3]: print (s, labelmap[c], details) img = box(img, details[1], details[2], details[0])
args = p.parse_args() def labels_and_files(): for i in os.listdir(args.i): for j in os.listdir(os.path.join(args.i, i)): yield (i, os.path.join(args.i, i, j)) if not os.path.exists(args.o): os.makedirs(args.o) f = open(os.path.join(args.o, args.features), "w") l = open(os.path.join(args.o, args.labels), "w") mapping = {} for lb, fn in labels_and_files(): if not lb in mapping: mapping[lb] = len(mapping) c = mapping[lb] print(c, lb, fn) img = resize_rgb_image(read_rgb_image(fn), (32, 32)) for i in normed_windows(img, [1.0]): d = flatten(i) f.write(",".join([str(k) for k in d]) + "\n") l.write(str(c) + "\n") m = open(os.path.join(args.o, args.labelmapping), "w") for k, v in mapping.items(): m.write(k + " " + str(v) + "\n")
p.add_argument('--features', default = "features.txt") p.add_argument('--labelmapping', default = "map.txt") args = p.parse_args() def labels_and_files(): for i in os.listdir(args.i): for j in os.listdir(os.path.join(args.i, i)): yield (i, os.path.join(args.i, i, j)) if not os.path.exists(args.o): os.makedirs(args.o) f = open(os.path.join(args.o, args.features), "w") l = open(os.path.join(args.o, args.labels), "w") mapping = {} for lb, fn in labels_and_files(): if not lb in mapping: mapping[lb] = len(mapping) c = mapping[lb] print (c, lb, fn) img = resize_rgb_image(read_rgb_image(fn), (32, 32)) for i in normed_windows(img, [1.0]): d = flatten(i) f.write(",".join([str(k) for k in d]) + "\n") l.write(str(c) + "\n") m = open(os.path.join(args.o, args.labelmapping), "w") for k, v in mapping.items(): m.write(k + " " + str(v) + "\n")