第一步:在中anaconda找到im2rec.py文件,并且准备好自己的数据。
路径:../anaconda3/lib/python3.x/site-packages/mxnet/tools/im2rec.py
关于数据:我的是分类任务,文件目录结构如下:
-mydata
-0
-1.png
-2.png
-xx.png
-1
-1.png
-2.png
-3.png
第二步:生成.lst文件
.lst文件的作用:为生成.rec和.idx文件提供id,类别,文件名等信息。
在im2rec.py路径下运行:
python im2rec.py --list --recursive --no-shuffle mydata ../mydata
参数:
--list:如果设置了此选项,im2rec将通过遍历根文件夹创建图像列表,并输出<prefix>.lst文件。否则im2rec将读取<prefix>.lst并创建<prefix>.rec。
--recursive:如果设置了此选项,则会遍历根目录下的子文件夹。否则只遍历根目录下的图片。
--no-shuffle:如果设置了此选项,则会按文件顺序写入lst。否则将乱序写入。
mydata ==>为.lst和.rec文件的前缀,自己命名。
../mydata ==>为自己数据根目录路径
生成的mydata.lst文件路径在im2rec.py路径下。
.lst文件格式:
0 0.000000 0/1.png
1 0.000000 0/2.png
...
100 1.000000 1/1.png
...
第一列:图片唯一ID,从0开始。
第二列:图片的类别标签,从0开始。
第三列:图片的路径。(根目录后)
第三步:生成.rec和.idx文件
运行:
python im2rec.py mydata.lst --encoding '.jpg' --quality 100 ../mydata
参数:
mydata.lst ==>为刚生成的.lst文件。
../mydata ==>为自己数据根目录路径
--encoding 选择编码类型'.jpg'或'.png',默认是'.jpg'。
--quality 图片质量:JPEG编码的话,取值范围1-100,默认95;
PNG压缩编码的话,取值1-9,数值越大压缩等级越高。(其实内部调用opencv的,0也可以取到)
.idx文件说明:
0 0
1 7736
2 14996
3 23600
4 32560
第一列:图像文件的唯一id(0开始)
第二列:图片文件存储的位置信息
如果需要关于其他文件格式,或者其他任务的例子。请查看:官方文档