首页 文章

Caffe中的标签作为图像

提问于
浏览
3

我是Caffe的新手 . 我正在尝试实现用于语义分割的完全卷积神经网络(FCN-8s) . 我有图像数据和标签数据,它们都是图像 . 这是用于按像素预测的 .

我尝试使用ImageData作为数据类型,但它要求一个整数标签,这不适用于这种情况 . 请建议如何给Caffe一个2D标签 . 我应该更喜欢LMDB而不是ImageData吗?如果是这样,我该怎么办?对于像这样的情况,我找不到任何好的教程/文档 .

1 回答

  • 4

    由于您需要实现 pixel-wise 预测,因此不能将单个标签用作基础事实 . 相反,你应该使用标签的地面真实矩阵 .

    其中一个Caffe人写了一个代码片段,用于创建带有图像数据的LMDB,参见here

    import caffe
    import lmdb
    from PIL import Image
    
    in_db = lmdb.open('image-lmdb', map_size=int(1e12))
    with in_db.begin(write=True) as in_txn:
        for in_idx, in_ in enumerate(inputs):
            # load image:
            # - as np.uint8 {0, ..., 255}
            # - in BGR (switch from RGB)
            # - in Channel x Height x Width order (switch from H x W x C)
            im = np.array(Image.open(in_)) # or load whatever ndarray you need
            im = im[:,:,::-1]
            im = im.transpose((2,0,1))
            im_dat = caffe.io.array_to_datum(im)
            in_txn.put('{:0>10d}'.format(in_idx), im_dat.SerializeToString())
    in_db.close()
    

相关问题