#tensorflow #object-detection #object-detection-api
#tensorflow #обнаружение объекта #object-detection-api
Вопрос:
Я пытаюсь создать детектор объектов, используя tensorflow из учебника YouTube. Я создал среду conda и установил все необходимые пакеты. Теперь, когда я пытаюсь запустить его скрипт в VSCode, он показывает эту ошибку.
Traceback (most recent call last):
File "updated_old_example.py", line 79, in <module>
categories = label_map_util.convert_label_map_to_categories(label_map,max_num_classes=NUM_CLASSES, use_display_name=True)
File "/Users/Home/Desktop/Project/Object_Detection/models/research/object_detection/utils/label_map_util.py", line 133, in convert_label_map_to_categories
if item.HasField('frequency'):
ValueError: Protocol message StringIntLabelMapItem has no field frequency.
Я впервые сталкиваюсь с этой ошибкой. Некоторые исправления были бы очень признательны.
Ответ №1:
Я никогда раньше не сталкивался с подобной проблемой, но после загрузки новых моделей из tensorflow API эта ошибка просто появляется. Затем я попытался сравнить файл, который записан в сообщении об ошибке, со старой версией моделей API tensorflow, вот где появляется ошибка. все, что вам нужно сделать, это найти этот файл:
Object_Detection/models/research/object_detection/utils/label_map_util.py", line 133
затем удалите этот код
if item.HasField('frequency'):
if item.frequency == string_int_label_map_pb2.LVISFrequency.Value(
'FREQUENT'):
category['frequency'] = 'f'
elif item.frequency == string_int_label_map_pb2.LVISFrequency.Value(
'COMMON'):
category['frequency'] = 'c'
elif item.frequency == string_int_label_map_pb2.LVISFrequency.Value(
'RARE'):
category['frequency'] = 'r'
if item.HasField('instance_count'):
category['instance_count'] = item.instance_count