Как использовать зоопарк модели обнаружения объектов Tensorflows с предварительно обученными моделями, но без файлов меток (.pbtxt) - PullRequest
0 голосов
/ 13 июня 2019

Я пытаюсь запустить обнаружение объекта Tensorflow.К сожалению, я обнаружил, что все предварительно обученные модели Tensorflow поставляются без файлов меток.Как я могу получить эти файлы?Все, что я хочу сделать, это проверить обнаружение объекта для нескольких изображений и отобразить метки.Следующий код - это то, что у меня есть.К сожалению, почти во всех руководствах используются файлы меток (.pbtxt), которых у меня нет.На соответствующей странице загрузки Tensorflow Модель обнаружения Tensorflow zoo сказано, что файлы меток включены в загрузку, но это не так.Я скачал разные модели.Ни у одной из моделей не было файла этикетки.Я был бы очень признателен, если бы кто-нибудь мог мне помочь.

Мой Код:

import tensorflow as tf
import cv2
import os

def get_frozen_graph(graph_file):
    """Read Frozen Graph file from disk."""
    with tf.gfile.FastGFile(graph_file, "rb") as f:
        graph_def = tf.GraphDef()
        graph_def.ParseFromString(f.read())
    return graph_def

# The TensorRT inference graph file downloaded from Colab or your local machine.
pb_fname = os.path.join(os.getcwd(), "faster_rcnn_inception_resnet_v2_atrous_coco_2018_01_28", "frozen_inference_graph.pb")
trt_graph = get_frozen_graph(pb_fname)

input_names = ['image_tensor']

# Create session and load graph
tf_config = tf.ConfigProto()
tf_config.gpu_options.allow_growth = True
tf_sess = tf.Session(config=tf_config)
tf.import_graph_def(trt_graph, name='')

tf_input = tf_sess.graph.get_tensor_by_name(input_names[0] + ':0')
tf_scores = tf_sess.graph.get_tensor_by_name('detection_scores:0')
tf_boxes = tf_sess.graph.get_tensor_by_name('detection_boxes:0')
tf_classes = tf_sess.graph.get_tensor_by_name('detection_classes:0')
tf_num_detections = tf_sess.graph.get_tensor_by_name('num_detections:0')


IMAGE_PATH = os.path.join(os.getcwd(), "testimages", "000002_491724089556.png")
image = cv2.imread(IMAGE_PATH)
image = cv2.resize(image, (300, 300))

scores, boxes, classes, num_detections = tf_sess.run([tf_scores, tf_boxes, tf_classes, tf_num_detections], feed_dict={
    tf_input: image[None, ...]
})
boxes = boxes[0]  # index by 0 to remove batch dimension
scores = scores[0]
classes = classes[0]
num_detections = int(num_detections[0])

1 Ответ

0 голосов
/ 21 июня 2019

В конце концов, я мог решить свою проблему сам. Документация Tensorflow неисправна на месте. Файлы меток (.pbtxt) поставляются с Tensorflow и находятся в папке / models / research / object_detection / data /. Они не находятся в папке, которую вы загружаете, когда вы просто получаете модель Model Zoo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...