win10 tensorflow ssd制作自己的数据集出现错误

 图像标注后,用了自己的图像名字,报错如下:(最终还是采用原文件命名格式)

_sys.exit(main(argv))
  File "D:/work/SSD-Tensorflow-master/tf_convert_data.py", line 58, in main
    pascalvoc_to_tfrecords.run(FLAGS.dataset_dir, FLAGS.output_dir, FLAGS.output_name)
  File "D:\work\SSD-Tensorflow-master\datasets\pascalvoc_to_tfrecords.py", line 218, in run
    _add_to_tfrecord(dataset_dir, img_name, tfrecord_writer)
  File "D:\work\SSD-Tensorflow-master\datasets\pascalvoc_to_tfrecords.py", line 177, in _add_to_tfrecord
    _process_image(dataset_dir, name)
  File "D:\work\SSD-Tensorflow-master\datasets\pascalvoc_to_tfrecords.py", line 103, in _process_image
    labels.append(int(VOC_LABELS[label][0]))
KeyError: 'Photovoltaic'

这个错误是因为程序里分类的标签都没改。按照博客修改相关文件里的数据就成功了。

 

参考修改博客:https://blog.csdn.net/comway_Li/article/details/85239484

将xml转变为txt文件,不知道对图像有没有影响:https://blog.csdn.net/w5688414/article/details/78395177/

然后报错:

Dataset directory: ./VOC2007/test/
Output directory: ./tfrecords
>> Converting image 156/158Traceback (most recent call last):
  File "D:/work/SSD-Tensorflow-master/tf_convert_data.py", line 63, in <module>
    tf.app.run()
  File "C:\Users\11327\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\platform\app.py", line 125, in run
    _sys.exit(main(argv))
  File "D:/work/SSD-Tensorflow-master/tf_convert_data.py", line 58, in main
    pascalvoc_to_tfrecords.run(FLAGS.dataset_dir, FLAGS.output_dir, FLAGS.output_name)
  File "D:\work\SSD-Tensorflow-master\datasets\pascalvoc_to_tfrecords.py", line 218, in run
    _add_to_tfrecord(dataset_dir, img_name, tfrecord_writer)
  File "D:\work\SSD-Tensorflow-master\datasets\pascalvoc_to_tfrecords.py", line 177, in _add_to_tfrecord
    _process_image(dataset_dir, name)
  File "D:\work\SSD-Tensorflow-master\datasets\pascalvoc_to_tfrecords.py", line 116, in _process_image
    bboxes.append((float(bbox.find('ymin').text) / shape[0],
ZeroDivisionError: float division by zero

最终查到原因:

看报错信息:总是在156这一张图上报错,标注图像里这一张是存在问题的(现在还没查出来为什么读不出这个图片的高和宽)。就是xml文件图片高宽都是0,但是标注框是有数据的,于是有0被除的错误产生,另外还有数据集里不要放其他数据,比如数据集的压缩包,这样读数据什么的是会报错的。

我就手动把宽高都加上了,然后问题就解决了。转化为tf_recored文件程序不报错了。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值