概述
环境:在win10 cmd下操作。没有在anaconda,个人觉得anaconda不好用。。。(可能是因为我不会用,哈哈略)
一、路径问题
报错1:FileNotFoundError: [WinError 3] 系统找不到指定的路径。: '${DATASET_DIR}\Annotations\'
报错2:cd5Ҳudcbbudcb5udcbdָudcb6udca8udcb5udcc4·udcbeudcb6udca1udca3
; No such process
原因:路径定义的不对,应该是在cmd定义变量的时候,少了最后的斜杠
知识点:WIN10 CMD 变量定义、查看及引用
1,在cmd控制台定义变量:
set OUTPUT_DIR=D:Projectsxxxxxxxxx_tfrecord
set DATASET_DIR=D:Projectsxxxxxxxxx_voc2007
最后标红的斜杠不要忘了
使用等于号给变量赋值时,等于号前后不要有空格!!!否则空格也会成为被赋的值
2,查看变量的值:
set OUTPUT_DIR
set DATASET_DIR
3,使用定义了的变量,前后加%即可
%OUTPUT_DIR%
二、字符编码问题
报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
解决:需要修改源代码pascalvoc_common.py,具体如下
# 修改前:image_data = tf.gfile.FastGFile(filename, 'r').read()
# 修改后:
with tf.gfile.FastGFile(filename, 'rb') as f:
image_data = f.read()
# 原作者可能没注意这方面,或者这是windows cmd底下才会报的错
三、类别问题:
报错: labels.append(int(VOC_LABELS[label][0]))
KeyError: 'house'
原因:你手动标注的物体类别还没增加到pascalvoc_common.py中去,要先增加,再转换数据
解决:在把数据转换为voc_2017之前,就需要修改物体类别。由于是我们自定义的物体,因此,要修改SSD-Tensorflow-master中关于物体类别的定义,打开SSD-Tensorflow-master/datasets/pascalvoc_common.py文件,进行修改,将VOC_LABELS中的其它无关类别全部删掉,增加标注的物体的名称、ID、类别,如下:
VOC_LABELS = {
'none': (0, 'Background'),
'cat': (1, 'Animal'),
}
最后
以上就是鳗鱼天空为你收集整理的VOC_2017 数据集转换的坑:的全部内容,希望文章能够帮你解决VOC_2017 数据集转换的坑:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复