Обнаружение объекта Tensorflow: печать идентификатора класса вместо имени класса - PullRequest
0 голосов
/ 05 мая 2020

Я изучаю Tensorflow последние два месяца и пытаюсь построить модель, которая обнаружит игральные карты. Я могу успешно сделать это на своем Raspberry Pi, используя модель, которую я обучил с 300+ изображениями. Я тестирую модель с помощью object_detection.py с моей камерой Pi. Я изменил это, чтобы экспортировать изображение с ограничивающей рамкой и идентификатором метки на изображении. Это здорово, но мне просто нужно, чтобы экспорт был идентифицирован как карта, а не изображение с ограничивающей рамкой.

Я отредактировал код Object_detction, чтобы просто распечатать имя обнаруженного объекта. Моя проблема в том, что я вывожу идентификатор вместо имени! Код:

vis_util.visualize_boxes_and_labels_on_image_array(
            frame,
            np.squeeze(boxes),
            np.squeeze(classes).astype(np.int32),
            np.squeeze(scores),
            category_index,
            use_normalized_coordinates=True,
            line_thickness=8,
            min_score_thresh=0.40)

    boxes = np.squeeze(boxes)
    cards = np.squeeze(classes).astype(np.int32)
    #cards = [category_index.get(value)]
    max_boxes_to_draw = boxes.shape[0]
    scores = np.squeeze(scores)
    min_score_thresh=0.5
    for i in range(min(max_boxes_to_draw, boxes.shape[0])):

        if scores is None or scores[i] > min_score_thresh:
            print("Detection", cards[i])

Выход: Обнаружение 21 Обнаружение 8 Обнаружение 8 Обнаружение 8 Обнаружение 8 Обнаружение 8 Обнаружение 9

Для справки https://github.com/tensorflow/models/tree/master/research/object_detection

...