运行环境:windows10 + Tensorflow 1.6.0 + Python 3.6.4(笔记本无GPU)
参考文章:https://blog.youkuaiyun.com/qq_32799915/article/details/80070711(图像语义分割 DeepLab v3+ 训练自己的数据集)
运行DeeplabV3+,数据集为VOC2012,整个过程参考上文,在运行eval.py时报错,报错的页面如下:Predictions out of bound,刚开始以为是dataset.ignore_label = 255,导致Predictions里出现255,而VOC总共类别数为21(包括背景),从而报错,然而修改ignore_label的值也仍然报错。
曾一度以为可能是版本问题,但仔细查看报错信息,否决了自己的这个想法。
最终不断尝试后发现:是Label数据存在问题。
DeeplabV3+的数据集应包括2个部分,images和labels,image为[n*m*3],jpg格式,label为[n*m*1],png格式。而VOC2012 SegmentationClass中的label数据格式为[n*m*3],只需将label数据从RGB的3通道转为’L'的单通道即可,代码如下:
import numpy as np
from PIL