def main(): tl.check_arguments(sys.argv, 1, "You have to specify settings file!\n./classify.py settings_file") settings_filename = sys.argv[1] settings = tl.load_settings(settings_filename) caffe_prototxt = settings["caffe_prototxt"] caffe_model = settings["caffe_model"] test_list = settings["test_list"] caffe.set_mode_gpu() net = caffe.Net(caffe_prototxt, caffe_model, caffe.TEST) transformer = create_transformer(net) img_test_names, img_test_labels = tl.read_img_names_from_csv(test_list, skip_header=False, delimiter=',') submission_file, confusion_matrix, accuracy = classify_images(net, transformer, img_test_names, img_test_labels, settings) if (settings["print_csv"]): print "Results written to " + submission_file print "Accuracy: " + str(accuracy) # Confusion matrix if (settings["conf_matrix"]): plt.figure(figsize=(2,2), dpi=200) plt.clf() plt.imshow(confusion_matrix, norm=LogNorm()) #plt.colorbar() plt.savefig(settings["conf_matrix_path"])
def prepare_data(settings): db_names = settings["db_names"] input_img_lists = settings["input_img_lists"] input_img_dirs = settings["input_img_dirs"] for db, input_list, input_dir in zip(db_names, input_img_lists, input_img_dirs): img_names, img_labels = tl.read_img_names_from_csv(input_list, skip_header=False, delimiter=",", append_string=".png") img_idxs = [li.labels[cls] for cls in img_labels] if not tl.exist_dir(db): print "Creating " + db + " lmdb database." tl.imgs_to_lmdb(input_dir, img_names, db, labels=img_idxs) else: print "Database " + db + " already exists!"