TF-Slim Resnet предварительно обученная модель не может получить правильные результаты

Я использую предварительно обученный resnet50 модель предоставлена tensorflow slim, Когда я использую эту модель для вывода, я не могу получить правильный результат. Кто-нибудь может помочь мне решить проблему? Ниже приведен код, который я использовал для вывода. Метод предварительной обработки изображения, следующий за этой проблемой Предварительная обработка ResNet: VGG или Inception?

import tensorflow as tf
import tensorflow.contrib.slim.nets as nets
import imagenet
import urllib.request
from preprocessing import inception_preprocessing
import matplotlib.pyplot as plt
import numpy as np
slim = tf.contrib.slim
resnet = nets.resnet_v1

if __name__ == '__main__':
    ckpt_file_path = '../model_weights/resnet_v1_50.ckpt'
    url = 'https://upload.wikimedia.org/wikipedia/commons/7/70/EnglishCockerSpaniel_simon.jpg'
    image_string = urllib.request.urlopen(url).read()
    image = tf.image.decode_jpeg(image_string, channels=3)
    processed_image = inception_preprocessing.preprocess_image(image, 224, 224, is_training=False)
    processed_images = tf.expand_dims(processed_image, 0)
    with slim.arg_scope(nets.resnet_utils.resnet_arg_scope()):
        resnet_50, end_points = resnet.resnet_v1_50(inputs=processed_images, num_classes=1000, scope='resnet_v1_50')
        prob = tf.squeeze(resnet_50, axis=[1, 2])
    probabilities = tf.nn.softmax(prob, dim=-1)
    sess = tf.Session()
    saver = tf.train.Saver()
    saver.restore(sess, ckpt_file_path)
    np_image, results = sess.run([image, probabilities])
    results = results[0, 0:]

    plt.figure()
    plt.imshow(np_image.astype(np.uint8))
    plt.axis('off')
    plt.show()

    sorted_inds = [i[0] for i in sorted(enumerate(-results), key=lambda x: x[1])]
    names = imagenet.create_readable_names_for_imagenet_labels()
    for i in range(5):
        index = sorted_inds[i]
        print('Probability %0.2f%% => [%s]' % (results[index] * 100, names[index]))

Вывод кода:

Probability 1.00% => [moving van]
Probability 0.69% => [television, television system]
Probability 0.63% => [English foxhound]
Probability 0.63% => [beagle]
Probability 0.61% => [German short-haired pointer]

Реальные результаты EnglishCockerSpaniel,

0 ответов

Попробуйте использовать resnetv2 из tensorflow slim с начальной предварительной обработкой и размером 299. Ниже приведены результаты для предоставленного изображения.

Вероятность 0,22% => [кокер-спаниель, английский кокер-спаниель, кокер]

Вероятность 0,18% => [Суссекс-спаниель]

Вероятность 0,17% => [английский сеттер]

Вероятность 0,17% => [ищейка, сыщик]

Вероятность 0,17% => [Афганская борзая, Афганская]

Другие вопросы по тегам