def main(): config = Config() image_process = ImageProcess() try: if (len(sys.argv) != 3): print('Use model_path image_file_name.') return image = cv2.imread(sys.argv[2]) image = cv2.resize(image, (config.image_size[0], config.image_size[1])) image = image_process.equalize_histogram(image) if (len(image) == 0): print('File open error: ', sys.argv[2]) return drive_run = DriveRun(sys.argv[1]) measurments = drive_run.run(image) print(measurments) except KeyboardInterrupt: print('\nShutdown requested. Exiting...')
class DriveBatch: ########################################################################### # model_path = 'path_to_pretrained_model_name' excluding '.h5' or 'json' # data_path = 'path_to_drive_data' e.g. ../data/2017-09-22-10-12-34-56' def __init__(self, model_path): self.model = None self.num_test_samples = 0 self.config = Config() self.net_model = NetModel(model_path) self.net_model.load() self.image_process = ImageProcess() ########################################################################### # def _prepare_data(self, data_path): folder_name = data_path[data_path.rfind('/'):] # get folder name folder_name = folder_name.strip('/') csv_path = data_path + '/' + folder_name + '.csv' # use it for csv file name self.drive = DriveData(csv_path) self.drive.read() self.test_data = list( zip(self.drive.image_names, self.drive.measurements)) self.num_test_samples = len(self.test_data) print('\nTest samples: ', self.num_test_samples) ########################################################################### # def run(self, data_path): self._prepare_data(data_path) fname = data_path + '_log.csv' file = open(fname, 'w') #print('image_name', 'label', 'predict', 'abs_error') bar = ProgressBar() file.write('image_name, label, predict, abs_error\n') for image_name, measurement in bar(self.test_data): image_fname = data_path + '/' + image_name + self.config.fname_ext image = cv2.imread(image_fname) image = cv2.resize( image, (self.config.image_size[0], self.config.image_size[1])) image = self.image_process.equalize_histogram(image) npimg = np.expand_dims(image, axis=0) predict = self.net_model.model.predict(npimg) #print(image_name, measurement[0], predict[0][0],\ # abs(measurement[0]-predict[0][0])) log = image_name+','+str(measurement[0])+','+str(predict[0][0])\ +','+str(abs(measurement[0]-predict[0][0])) file.write(log + '\n') file.close() print(fname, 'created.')