————————————————————————————————————————————
这段时间一直在整理数据用于训练,但是从网上找到的数据集往往很凌乱,不能满足使用要求。这些数据集少则几万,多则几十万几百万。如果手动去整理这些数据集无疑是一个繁重的工作,甚至无法去做!
这个时候则需要我们写脚本去帮助我们做这件事情!本文作者使用的是shell脚本在linux下面进行文件整理。其他脚本诸如javascript,PHP,Python等应该也可以。
作者仅仅是为了工作而去学习的,作为初学者也是充满了迷茫,写的不好,但是问题总算解决了,现在将个人感悟和学习总结如下。
————————————————————————————————————————————+
一、本文作者整理的数据集
三个关于人脸年龄的数据集:分别是FG-NET,MORPH和CACD2000.
拿MORPH数据集为例,下载的原始数据是所有人物数据都在一个文件夹内。如下图所示:
而我所需要的结果是:
也就是说,我需要将一个人放在一个子文件夹内,并以其名字命名。
本文所写的脚本是以处理CACD2000数据集为例子,该数据集有2000人,照片共计有16w张。
所写shell脚本主要思路如下:
1.观察数据集合的各个文件名字特点,比如CACD中名字命名规则为:
2.命名规则如,42_Adam_Baldwin_0001.jpg, 则我只需要该子文件名字为Adam_Baldwin,那么在检测的时候就需要读取该文件的名字,然后删除左边数第一个左边的字符和从右边数第一个出现符号的字符。
3.删除之后,则该字符串只剩下Adam_Baldwin这个名字,以这个名字为变量mkdir建立新的子文件夹,然后mv,将文件移到该文件夹内即可。
具体shell脚本代码如下:
#!/bin/bash
echo "start..."
#定义文件的路径
folder=