Example #1
0
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))
Example #2
0
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")
Example #3
0
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)
Example #4
0
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()