3

Я новичок в Caffe. Я пытаюсь реализовать Neural Network Fully Convolution (FCN-8s) для семантической сегментации. У меня есть данные изображений и данные ярлыков, которые являются обоими изображениями. Это для пиксельных прогнозов.Этикетки в кафе как изображения

Я попытался использовать ImageData как тип данных, но он запрашивает целочисленную метку, которая не применима к этому сценарию. Просьба сообщить, как я могу дать Caffe 2D-метку. Должен ли я предпочитать LMDB вместо ImageData? Если да, то как мне продолжить? Я не мог найти хороший учебник/документацию для такой ситуации.

ответ

4

Поскольку вам нужно достичь пиксельных прогнозов, вы не можете использовать единую метку как истину заземления. Вместо этого вы должны использовать матрицу наземных истин.

Один из парней 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()