def get_annotation(path, id): db = leveldb.LevelDB(path) datum_string = db.Get(id) if not datum_string: print "Not found {0}".format(id) return None return caffe.io.datum_to_array(Datum.FromString(datum_string))
def get_image(path, id): with lmdb.open(path, readonly=True, lock=False) as env: with env.begin() as txn: datum_string = txn.get(id) if not datum_string: print "Not found {0}".format(id) return None return np.array(Image.open(StringIO(Datum.FromString(datum_string).data)), dtype="uint8")
def mnist_lmdb_to_h5(src, tgt): with lmdb.open(src, map_size=1099511627776, readonly=True) as lmdb_env: numSamples = int(lmdb_env.stat()['entries']) with lmdb_env.begin(write=False) as txn: with txn.cursor() as cur: with h5py.File(tgt, 'w') as fd: fd.create_dataset('data', (numSamples, 1, 28, 28), dtype=np.float32) fd.create_dataset('label', (numSamples, ), dtype=np.float32) for key, val in cur: d = Datum.FromString(val) img = np.array(np.fromstring( d.data, dtype=np.uint8).reshape(1, 28, 28), dtype=np.float32) / 255.0 index = int(key) fd['data'][index, :, :, :] = img fd['label'][index] = float(d.label)
import cv2 from caffe.proto.caffe_pb2 import Datum import numpy as np import lmdb from IPython import embed env = lmdb.open('./mnist_test_lmdb') with env.begin() as txn: raw_data = txn.get(b'00000000') datum = Datum.FromString(raw_data) img = np.fromstring(datum.data, dtype=np.uint8) embed()