Python TypeError:应为二进制或unicode字符串,已获取项{

Python TypeError:应为二进制或unicode字符串,已获取项{,python,tensorflow,opencv,image-recognition,Python,Tensorflow,Opencv,Image Recognition,我使用自定义代码使用网络摄像头实时识别对象,但在创建标签的过程中出现了此错误,我使用的是python 3.7和TensorFlow 1.15,这是错误的,有更简单的方法使用实时对象识别吗 标签地图: labels = [ {'name':'1DIG', 'id':1}, {'name':'2DIG', 'id':2}, {'name':'3DIG', 'id':3}, {'name':'4DIG', 'id':4}, ] with open(ANNOTATI

我使用自定义代码使用网络摄像头实时识别对象,但在创建标签的过程中出现了此错误,我使用的是python 3.7和TensorFlow 1.15,这是错误的,有更简单的方法使用实时对象识别吗

标签地图:

labels = [
    {'name':'1DIG', 'id':1},
    {'name':'2DIG', 'id':2}, 
    {'name':'3DIG', 'id':3}, 
    {'name':'4DIG', 'id':4},
]

with open(ANNOTATION_PATH + '\label_map.pbtxt', 'w') as f:
    for label in labels:
        f.write('item { \n')
        f.write('\tname:\'{}\'\n'.format(label['name']))
        f.write('\tid:{}\n'.format(label['id']))
        f.write('}\n')
tf记录的代码:

!python {SCRIPTS_PATH + '/generate_tfrecord.py'} -x {IMAGE_PATH + '/train'} -l {ANNOTATION_PATH + '/label_map.pbtxt'} -o {ANNOTATION_PATH + '/train.record'}
!python {SCRIPTS_PATH + '/generate_tfrecord.py'} -x{IMAGE_PATH + '/test'} -l {ANNOTATION_PATH + '/label_map.pbtxt'} -o {ANNOTATION_PATH + '/test.record'}
错误:

 Traceback (most recent call last):
      File "Tensorflow/scripts/generate_tfrecord.py", line 62, in <module>
        label_map_dict = label_map_util.get_label_map_dict(label_map)
      File "C:\Users\Gabriel\AppData\Local\Programs\Python\Python37\lib\site-packages\object_detection\utils\label_map_util.py", line 164, in get_label_map_dict
        label_map = load_labelmap(label_map_path)
      File "C:\Users\Gabriel\AppData\Local\Programs\Python\Python37\lib\site-packages\object_detection\utils\label_map_util.py", line 133, in load_labelmap
        label_map_string = fid.read()
      File "C:\Users\Gabriel\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\lib\io\file_io.py", line 122, in read
        self._preread_check()
      File "C:\Users\Gabriel\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\lib\io\file_io.py", line 84, in _preread_check
        compat.as_bytes(self.__name), 1024 * 512)
      File "C:\Users\Gabriel\AppData\Local\Programs\Python\Python37\lib\site-packages\tensorflow_core\python\util\compat.py", line 71, in as_bytes
        (bytes_or_text,))
    TypeError: Expected binary or unicode string, got item {
      name: "1DIG"
      id: 1
    }
    item {
      name: "2DIG"
      id: 2
    }
    item {
      name: "3DIG"

      id: 3
    }
   item {
      name: "4DIG"
      id: 4
    }
回溯(最近一次呼叫最后一次):
文件“Tensorflow/scripts/generate_tfrecord.py”,第62行,在
label\u map\u dict=label\u map\u util.get\u label\u map\u dict(label\u map)
文件“C:\Users\Gabriel\AppData\Local\Programs\Python\37\lib\site packages\object\u detection\utils\label\u map\u util.py”,第164行,在get\u label\u map\u dict中
标签映射=加载标签映射(标签映射路径)
文件“C:\Users\Gabriel\AppData\Local\Programs\Python\Python37\lib\site packages\object\u detection\utils\label\u map\u util.py”,第133行,在load\u labelmap中
label\u map\u string=fid.read()
文件“C:\Users\Gabriel\AppData\Local\Programs\Python\Python37\lib\site packages\tensorflow\u core\Python\lib\io\File\u io.py”,第122行,已读
self.\u预读\u检查()
文件“C:\Users\Gabriel\AppData\Local\Programs\Python\Python37\lib\site packages\tensorflow\u core\Python\lib\io\File\u io.py”,第84行,在预读检查中
兼容字节(自身名称),1024*512)
文件“C:\Users\Gabriel\AppData\Local\Programs\Python\Python37\lib\site packages\tensorflow\u core\Python\util\compat.py”,第71行,以字节为单位
(字节或文本)
TypeError:应为二进制或unicode字符串,已获取项{
名称:“1DIG”
身份证号码:1
}
项目{
名称:“2DIG”
身份证号码:2
}
项目{
名称:“3DIG”
身份证号码:3
}
项目{
名称:“4DIG”
身份证号码:4
}

最后一项后的标签中有一个逗号。请将其删除

我在另一个链接中找到了答案:


您可能还需要检查
xml\u df.to\u csv
位置

错误持续性我也有同样的问题,此链接也可以使用