как сбросить метки обнаружения объекта в рассол? - PullRequest
0 голосов
/ 15 апреля 2020

У меня есть метки обнаружения объектов, как показано ниже.

item{
    id: 1
    name: 'red_light'
}
item{
    id: 2
    name: 'blue_light'
}
item{
    id: 3
    name: 'blue_left'
}
item{
    id: 4
    name:'red_left'
}
{
    id: 5
    name: 'yellow_light'
}

Используя метки в кокосовом автомате ssd mobli enet v2, я собираюсь обнаружить сигналы traffi c. Как я могу создать рассол для этикеток? Когда я загружаю данные о маринаде, они должны выглядеть примерно так:

{1:'red_light', 2:'blue_light', 3:'blue_left', 4:'red_left', 5:'yellow_light'}

Я буду признателен за ваш совет.

1 Ответ

0 голосов
/ 16 апреля 2020

Не стоит придерживаться оригинального формата меток и пытаться конвертировать его. Вместо этого просто введите желаемый результат, как показано ниже.

import argparse
import pickle

# construct the argument parse and parse the arguments
ap = argparse.ArgumentParser()
ap.add_argument("-l", "--labels", required=True,
    help="path to output labels file")
args = vars(ap.parse_args())

LABEL_ENCODINGS = {"red_light": 1, 
    "blue_light": 2, 
    "blue_left": 3, 
    "red_left": 4, 
    "yellow_light": 5, 
}

# reverse the label encoding dictionary
labels = {v: k for (k, v) in LABEL_ENCODINGS.items()}

# save the class labels to disk
f = open(args["labels"], "wb")
f.write(pickle.dumps(labels))
f.close()
...