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

来源:互联网 发布:以此为政,不亦惑乎翻译 编辑:程序博客网 时间:2024/05/16 15:29

转载自: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))


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



阅读全文
0 0
原创粉丝点击