Stand Ford dogs 数据集制作lmdb(caffe)

本文介绍了如何处理斯坦福狗数据集,通过并发批量resize和随机裁剪将图片调整为224*224,并生成lmdb文件。同时,文章还涉及了创建标签txt文件、修改creat_imagenet.sh脚本以及计算训练集均值的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

斯坦福的狗数据集,图片尺寸很随意,需要resize到最短边为250(另一个边根据这个缩放因子进行调整),然后随机裁剪成224*224大小的图片,最后分别对测试集和验证集生成lmdb和均值文件,以便于训练

并发批量resize+随机裁剪

在jupyter 中

#随机裁剪,padding为10,先resize到250,再padding再使用224*224的裁剪
def random_crop(num):
#     print(num)
#     new_img={}
    image=data[num]
    img_h = image.shape[0]
    img_w = image.shape[1]
    if img_h > img_w :
        rate=250.0/img_w
    else : 
        rate =250.0/img_h
    image=cv2.resize(image, (0, 0), fx=rate, fy=rate, interpolation=cv2.INTER_CUBIC) 
#     oshape_h = 270#pading=10 250+10*2
#     oshape_w = 270
    img_h = image.shape[0]
    img_w = image.shape[1]
    padding=10
    img_pad = np.zeros([img_h+20, img_w+20, 3], np.uint8)
    img_pad[padding:padding + img_h, padding:padding + img_w, 0:3] = image
    nh = np.random.randint(0, 26)#产生0-26的随机数
    nw = np.random.randint(0, 26)
    new_img=img_pad[nh:nh + 224, nw:nw + 224]
    return new_img

并发:十个线程读取十张图片,十个进程处理十张图片,十个进程(写IO不知为什么线程和进程速度无差别)写处理完的十张图片

def get_data(i, img_path_i):
    data[i]=cv2.imread(img_path_i)
def io(img_data,path):  #data[i]
    img=np.uint8(img_data)
    cv2.imwrite(path,img_data)


from multiprocessing import Pool
path='/home/data/StanfordDogsDataset/merge/test/'
new_path='/home/data/S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值