Ejemplo n.º 1
0
def get_single_picture_prediction(model, picture_dir):
    image_tensor = load_and_preprocess_image(
        tf.io.read_file(filename=picture_dir), data_augmentation=False)
    image = tf.expand_dims(image_tensor, axis=0)
    prediction = model(image, training=False)
    pred_class = tf.math.argmax(prediction, axis=-1)
    return pred_class
Ejemplo n.º 2
0
def main():
    # 测试数据集,

    image_raw = tf.io.read_file(filename=test_image_dir)
    image_tensor = load_and_preprocess_image(image_raw)
    image_tensor = tf.expand_dims(image_tensor, axis=0)

    # Load frozen graph using TensorFlow 1.x functions
    with tf.io.gfile.GFile("./frozen_models2/model.pb", "rb") as f:
        graph_def = tf.compat.v1.GraphDef()
        loaded = graph_def.ParseFromString(f.read())

    # Wrap frozen graph to ConcreteFunctions
    frozen_func = wrap_frozen_graph(graph_def=graph_def,
                                    inputs=["Input:0"],
                                    outputs=["Identity:0"],
                                    print_graph=True)

    print("-" * 50)
    print("Frozen model inputs: ")
    print(frozen_func.inputs)
    print("Frozen model outputs: ")
    print(frozen_func.outputs)

    # Get predictions for test images
    predictions = frozen_func(Input=image_tensor)[0]

    # Print the prediction for the first image
    print("-" * 50)
    print("Example prediction reference:")
    print(predictions[0].numpy())
Ejemplo n.º 3
0
def get_list_picture_prediction(model, picture_dir):
    class_name_list = sorted(
        [s for s in os.listdir(picture_dir) if 'README' not in s])
    print('class name:')
    print(class_name_list)
    image_tensor_list = []
    for class_name_item in class_name_list:
        picture_path = os.path.join(picture_dir, class_name_item)
        picture_path_list = os.listdir(picture_path)
        for picture_path_item in picture_path_list:
            image_path = os.path.join(picture_path, picture_path_item)
            image_tensor = load_and_preprocess_image(
                tf.io.read_file(filename=image_path), data_augmentation=False)
            image_tensor_list.append(image_tensor)
    image_tensor_list_length = len(image_tensor_list)
    images = tf.stack(image_tensor_list, axis=0)
    prediction = model(images, training=False)
    pred_class_num_list = tf.math.argmax(prediction, axis=-1)
    pred_class_name_list = []
    true_num = 0
    for index, pred_class_num_item in enumerate(pred_class_num_list):
        if class_name_list[pred_class_num_item] == class_name_list[int(index //
                                                                       5)]:
            true_num = true_num + 1
        pred_class_name_item = class_name_list[pred_class_num_item]
        pred_class_name_list.append(pred_class_name_item)
    return pred_class_name_list, image_tensor_list_length, true_num
Ejemplo n.º 4
0
def get_single_picture_prediction(model, picture_dir):
    image_tensor = load_and_preprocess_image(
        tf.io.read_file(filename=picture_dir), data_augmentation=False)
    image = tf.expand_dims(image_tensor, axis=0)
    prediction = model(image, training=False)
    #print(np.shape(prediction.numpy()))
    return prediction.numpy()
Ejemplo n.º 5
0
def process_features(features, data_augmentation):
    image_raw = features['image_raw'].numpy()
    image_tensor_list = []
    for image in image_raw:
        image_tensor = load_and_preprocess_image(image, data_augmentation=data_augmentation)
        image_tensor_list.append(image_tensor)
    images = tf.stack(image_tensor_list, axis=0)
    labels = features['label'].numpy()

    return images, labels
Ejemplo n.º 6
0
def get_single_picture_prediction(model, picture_dir):
    class_name_list = [
        'dirty_defect', 'edge_defect', 'linear_defect', 'no_defect',
        'yarn_defect'
    ]
    picture_list = os.listdir(picture_dir)
    picture_path = os.path.join(picture_dir, picture_list[0])
    image_tensor = load_and_preprocess_image(
        tf.io.read_file(filename=picture_path), data_augmentation=False)
    image = tf.expand_dims(image_tensor, axis=0)
    prediction = model(image, training=False)
    pred_class_num = tf.math.argmax(prediction, axis=-1)
    pred_class_name = class_name_list[int(pred_class_num)]
    return pred_class_name
Ejemplo n.º 7
0
def get_list_picture_prediction(model, picture_dir):
    class_name_list = ['defect', 'no_defect']
    if 'no_defect' in picture_dir:
        picture_path_list = os.listdir(picture_dir)
    elif 'defect' in picture_dir:
        picture_path_list = os.listdir(picture_dir)
    image_tensor_list = []
    for picture_path_item in picture_path_list:
        picture_path = os.path.join(picture_dir, picture_path_item)
        image_tensor = load_and_preprocess_image(tf.io.read_file(filename=picture_path), data_augmentation=False)
        image_tensor_list.append(image_tensor)
    images = tf.stack(image_tensor_list, axis=0)
    prediction = model(images, training=False)
    pred_class_num_list = tf.math.argmax(prediction, axis=-1)
    pred_class_name_list = []
    for pred_class_num_item in pred_class_num_list:
        pred_class_name_item = class_name_list[pred_class_num_item]
        pred_class_name_list.append(pred_class_name_item)
    return pred_class_name_list
Ejemplo n.º 8
0
            id_cls[i] = item
    return id_cls


if __name__ == '__main__':
    # GPU settings
    gpus = tf.config.list_physical_devices('GPU')
    if gpus:
        for gpu in gpus:
            tf.config.experimental.set_memory_growth(gpu, True)

    model = tf.keras.models.load_model('model.h5',
                                       custom_objects={
                                           'KerasLayer': hub.KerasLayer,
                                           'Dense': tf.keras.layers.Dense
                                       },
                                       compile=False)
    model.summary()

    image_raw = tf.io.read_file(filename=test_image_dir)
    image_tensor = load_and_preprocess_image(image_raw)
    image_tensor = tf.expand_dims(image_tensor, axis=0)

    pred = model(image_tensor, training=False)
    print(pred)
    idx = tf.math.argmax(pred, axis=-1).numpy()[0]
    print(idx)

    # id_cls = get_class_id("./original_dataset")
    #
    # print("The predicted category of this picture is: {}".format(id_cls[idx]))