我是靠谱客的博主 鳗鱼天空,最近开发中收集的这篇文章主要介绍VOC_2017 数据集转换的坑:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

环境:在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 数据集转换的坑:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(32)

评论列表共有 0 条评论

立即
投稿
返回
顶部