caffe将若干张图片转化为lmdb文件

转载自:http://blog.csdn.net/c406495762/article/details/68114244


主要思路:将含有文件名称的txt路径,加入到caffe框架已经写好的工具当中


1.将图片名称放入到txt文件中,遍历该文件夹下的文件名,并且用正则表达式进行过滤


def createFileList(images_path, txt_save_path):#用来创建一个txt文件,内容是所有图片的列表
    #打开图片列表清单txt文件
    fw = open(txt_save_path,"w")
    #查看图片目录下的文件,相当于shell指令ls
    images_name = os.listdir(images_path)
    #遍历所有文件名
    for eachname in images_name:
        #正则表达式这里可以根据情况进行更改
        #正则表达式规则:找以cat开头,紧跟010个数字,并以jpg结尾的图片文件
        pattern_cat = r'(^cat\d{0,10}.jpg$)'
        #正则表达式规则:找以fish-bike开头,紧跟010个数字,jpg结尾的图片文件
        pattern_bike = r'(^fish-bike\d{0,10}.jpg$)'
        #正则表达式匹配
        cat_name = re.search(pattern_cat, eachname)
        bike_name = re.search(pattern_bike, eachname)
        #按照规则将内容写入txt文件中
        if cat_name != None:
            fw.write(cat_name.group(0) + ' 1\n')
        if bike_name != None:
            fw.write(bike_name.group(0) + ' 2\n')
    #打印成功信息
    print "生成txt文件成功"
    #关闭fw
    fw.close()

--------------------------------------------------------------------------------------------------------

2.根据创建的txt(里面包含文件夹下面的图片名),利用convert_imageset这个caffe自带工具进行生成lmdb文件

def create_db(caffe_root, images_path, txt_save_path):
    #lmdb文件名字
    lmdb_name = 'img_train.lmdb'
    project_home="/home/xuy/桌面/code/python/caffe/caffe_gen_net_test1/"
    #生成的db文件的保存目录
    lmdb_save_path =project_home+lmdb_name
    # lmdb_save_path = caffe_root + 'my_caffe_project/' + lmdb_name


    #convert_imageset工具路径,这个工具是caffe系统自带的,
    # 因此路径是caffe_root,利用命令,将txt文件中的照片文件名转化为mdb格式
    convert_imageset_path = caffe_root + 'build/tools/convert_imageset'
    cmd = """%s --shuffle --resize_height=256 --resize_width=256 %s %s %s"""
    status, output = commands.getstatusoutput(cmd % (convert_imageset_path, images_path, 
        txt_save_path, lmdb_save_path))
    print output
    if(status == 0):
        print "lmbd文件生成成功"

主要的代码:
 convert_imageset_path = caffe_root + 'build/tools/convert_imageset'
    cmd = """%s --shuffle --resize_height=256 --resize_width=256 %s %s %s"""
    status, output = commands.getstatusoutput(cmd % (convert_imageset_path, images_path, 
        txt_save_path, lmdb_save_path))


---------------------------------------------------------------------------------------------------------------



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值