1、把自己的数据集按照官方命名格式修改

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Oct 18 11:29:55 2019
change the name of the image
@author: cong
"""import os
#import re
imgs_path = '/home/cong/facenet/dataset/foda_imgs'if os.path.isdir(imgs_path):for s in os.listdir(imgs_path):newdir=os.path.join(imgs_path,s)#print(newdir)filenames = os.listdir(newdir)filenames.sort()for name in filenames:newname = newdir.split('/')[-1]os.rename(newdir + '/' + name, os.path.join(newdir, newname + '_' + '%04d' % int(filenames.index(name)+1)) + '.png')#print(newname)

2、生成自己的pairs.txt。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Fri Oct 18 13:38:56 2019@author: cong
"""import glob
import os.path
import numpy as np
import os
from itertools import combinations
# 图片数据文件夹
INPUT_DATA = '/home/cong/facenet/dataset/foda_imgs'def create_image_lists():matched_result = set()k = 0# 获取当前目录下所有的子目录,这里x 是一个三元组(root,dirs,files),第一个元素表示INPUT_DATA当前目录,# 第二个元素表示当前目录下的所有子目录,第三个元素表示当前目录下的所有的文件sub_dirs = [x[0] for x in os.walk(INPUT_DATA)]for sub_dir in sub_dirs[1:]:# 获取当前目录下所有的有效图片文件extensions = 'png'# 把图片存放在file_list列表里file_list = []# os.path.basename(sub_dir)返回sub_sir最后的文件名file0_list = []dir_name = os.path.basename(sub_dir)file_glob = os.path.join(INPUT_DATA, dir_name, '*.' + extensions)# glob.glob(file_glob)获取指定目录下的所有图片,存放在file_list中file_list.extend(glob.glob(file_glob))file0_list.extend(glob.glob(file_glob))file0_list.sort()# 通过目录名获取类别的名称label_name = dir_name#print(label_name)length = len(file_list)d_com = []d = np.arange(length)for i,j in combinations(d, 2):d_com.append([i,j])base_name1 = file0_list.index(file_list[i])+1  # 获取文件的名称base_name2 = file0_list.index(file_list[j])+1s = label_name+'\t'+str(base_name1)+'\t'+str(base_name2)if s not in matched_result:# 将当前类别的数据放入结果字典matched_result.add(label_name +'\t'+ str(base_name1)+ '\t'+ str(base_name2))k = k + 1#print(len(matched_result))# 返回整理好的所有数据return matched_result, kdef create_pairs():unmatched_result = set()       # 不同类的匹配对k = 0sub_dirs = [x[0] for x in os.walk(INPUT_DATA)]# sub_dirs[0]表示当前文件夹本身的地址,不予考虑,只考虑他的子目录for sub_dir in sub_dirs[1:]:# 获取当前目录下所有的有效图片文件extensions = ['png']file_list = []# 把图片存放在file_list列表里dir_name = os.path.basename(sub_dir)for extension in extensions:file_glob = os.path.join(INPUT_DATA, dir_name, '*.'+extension)# glob.glob(file_glob)获取指定目录下的所有图片,存放在file_list中file_list.extend(glob.glob(file_glob))length_of_dir = len(sub_dirs)a = np.arange(1,length_of_dir)a_com = []for i,j in combinations(a, 2):#print(i,j)a_com.append([i,j])class1 = sub_dirs[i]class2 = sub_dirs[j]# print(class1,'\n',class2)class1_name = os.path.basename(class1)class2_name = os.path.basename(class2)# 获取当前目录下所有的有效图片文件extensions = 'png'file_list1 = []file_list11 = []file_list2 = []file_list22 = []# 把图片存放在file_list列表里file_glob1 = os.path.join(INPUT_DATA, class1_name, '*.' + extension)file_list1.extend(glob.glob(file_glob1))file_list11.extend(glob.glob(file_glob1))file_list11.sort()file_glob2 = os.path.join(INPUT_DATA, class2_name, '*.' + extension)file_list2.extend(glob.glob(file_glob2))file_list22.extend(glob.glob(file_glob2))file_list22.sort()len_of_file = len(file_list1)if file_list1 and file_list2:b = np.arange(len_of_file)b_com = []for m,n in combinations(b, 2):#print(m,n)b_com.append([m,n])base_name1 = file_list11.index(file_list1[m % len(file_list1)])+1  # 获取文件的名称base_name2 = file_list22.index(file_list2[n % len(file_list2)])+1# unmatched_result.add([class1_name, base_name1, class2_name, base_name2])s = class1_name+'\t'+str(base_name1)+'\t'+class2_name+'\t'+str(base_name2)if s not in unmatched_result:unmatched_result.add(class1_name+'\t'+str(base_name1)+'\t'+ class2_name+'\t'+str(base_name2))k = k + 1return unmatched_result, kresult, k1 = create_image_lists()
print(len(result))
# print(result)result_un, k2 = create_pairs()
print(len(result_un))
# print(result_un)file = open('/home/cong/facenet/data/pairs_foda.txt', 'w')result1 = list(result)
result2 = list(result_un)file.write('10 300\n')j = 0
for i in range(10):j = 0print("=============================================第" + str(i) + '次, 相同的')for pair in result1[i*200:i*200+200]:j = j + 1print(str(j) + ': ' + pair)file.write(pair + '\n')print("=============================================第" + str(i) + '次, 不同的')for pair in result2[i*200:i*200+200]:j = j + 1print(str(j) + ': ' + pair)file.write(pair + '\n')

按照lfw pairs.txt的格式生成自己的pairs.txt相关推荐

  1. html文件转为txt,html转txt文件怎么实现?html转txt的方法详解!

    HTML转TXT很简单,需要一台计算机即可操作,只需要把网页HTML文档的扩展名.html改成TXT文本格式的扩展名,即可用记事本打开. 如果没有显示扩展名的需要计算机设置显示扩展名. 下面我们介绍如 ...

  2. 3D物体分类---ModelNet .OFF格式生成多视角图像(Blender方法之第二步)

    3D物体分类---ModelNet .OFF格式生成多视角图像(Blender方法之第二步) 强烈建议使用Blender方法!!! 说明 2 python调用Blender生成多视角图像 2.1 Bl ...

  3. python 将YOLO(txt)格式的标注数据批量转换为PascalVOC(XML)格式的标注数据

    python 将YOLO(txt)格式的标注数据批量转换为PascalVOC(XML)格式的标注数据 准备工作 修改代码路径 运行代码 程序bug(没时间看所以还没解决): 准备工作 需在目标文件夹中 ...

  4. yolo图像检测数据集格式转换:xml 与 txt格式相互转换

    格式介绍 一图流介绍的比较详细,一般图像检测数据集格式为txt或者xml格式,在使用labelimg进行标注的时候,可以设置获得不同格式的数据集,以满足不同算法训练格式要求: 一般建议使用pascal ...

  5. Python重装时记录所有库 生成requirement 使用requirements.txt

    Python 生成requirement 使用requirements.txt python项目中必须包含一个 requirements.txt 文件,用于记录所有依赖包及其精确的版本号.以便新环境部 ...

  6. (原创)按照一定的格式生成一定数量的随机数的例子

    在很多时候需要按照一定的格式生成一定数量的随机数,下面是实现方法 下面是自己写的类 public class MyRandom  {   private string _strin;   privat ...

  7. 计算机二级目录设置,word2设置标题格式,生成目录,奇偶页设置等等,适用考计算机二级办公软件,也适用于毕业论文格式设置...

    word2设置标题格式,生成目录,奇偶页设置等等,适用考计算机二级办公软件,也适用于毕业论文格式设置 这是第2部分word资料 , 跟之前的第一部份word资料合为一份 第二题 2.在正文前按序插入节 ...

  8. java 9999 符号_按格式生成序号,如0001,0002...9999

    /*** * 按格式生成序号,如0001,0002...9999 * @param idx 序号号码 * @param scale 位数 * @return 按位数格式化的序号,如0019 */ pu ...

  9. python图片保存为txt文件_python实现对文件中图片生成带标签的txt文件方法

    在深度学习中经常需要生成带标签的图片名称列表,xxxlist.txt文件,下面写一个简单的python脚本生成该文件列表. import os def generate(dir,label): fil ...

最新文章

  1. 二值网络--XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks
  2. Cocos2dx利用intersectsRect函数检测碰撞
  3. [ext/iconv/iconv.lo] Error 1
  4. LeetCode 1640. 能否连接形成数组(哈希)
  5. mysql显示nan_Python将dataframe连接到MySQL时出现NaN[mysqlconnector]
  6. matlab2c使用c++实现matlab函数系列教程-exp函数
  7. mysql数据库学习——2,数据库的选定,创建,删除和变更
  8. Android QFIL 烧录
  9. 持久层框架的比较Hibernate与 MyBatis
  10. 微信H5开发问题集锦
  11. java实现单词首字母小写转大写
  12. 网络邻居中打不开计算机,怎么解决Win7 64位旗舰版系统中网上邻居打不开
  13. 二维光子晶体禁带的遗传优化算法实现
  14. 【spring】spring异步执行的使用与源码分析
  15. ttkefu怎么取消英文版?显示中文版
  16. 使用Python来操作邮箱
  17. jeecms服务器响应失败,后台提示“服务请求发生了错误”,原因不明
  18. BeanFactory 和 ApplicationContext的区别
  19. 【零基础学Python】海龟画图篇 :第十九节--海龟画图实际应用|用法总结
  20. 利用Python3.x 删除字符串中的特殊字符——即ASCII控制字符

热门文章

  1. 举个栗子!Tableau 技巧(199):用 Prep 正则表达式拆分复杂字段
  2. Comet实现的新选择
  3. 修改微软输入法的时间日期格式
  4. 【优化调度】基于粒子群算法求解梯级水电站调度问题matlab代码
  5. vmware部署优麒麟系统
  6. 2019_GDUT_新生专题V算法优化 F. Expedition POJ 2431
  7. python实现1/n倍频程计算
  8. Win10笔记本扩展显示屏模糊处理办法
  9. 数字IC后端流程——(二)布局规划Floorplan
  10. 形容长得丑的30句经典句子