NIST指纹数据识别(二)数据处理
数据处理
数据分析
NIST指纹数据介绍
前面一篇文章简单介绍了NIST指纹数据集的大概形式和组成,一张图片配一个标签的txt文件。两个文件名相同(.png和.txt)由于图片和标签是分开的。我们需要生成两个对应的批次来对图片和标签进行处理。
数据准备
首先,我们先对标签进行处理,观察下图标签格式。
我们这次只对指纹纹型进行分析,所以只关注class属性。共有W,A,R,L,T五种属性。所以可以采用独热编码 ,原理很简单,即每个标签用一个numpy数组表示,数组有5个元素,按照W,A,R,L,T的顺序,只在该图片对应的类型的数组元素处置1,其他置0,即可表示。代码如下。
import numpy as np import os def switch_pos(word):switcher = {"W":0,"A":1,"R":2,"L":3,"T":4}return switcher.get(word, "nothing")def text2vec(word,classes):vector = np.zeros(classes) # float64pos = switch_pos(word) # index of the wordvector[pos] = 1return vector这样,我们就得到了一张标签对应的独热编码形式。其他其他的文件打开等等就先不放在这里了。有兴趣的可以去我的github拿完整的代码。
顺便提一句,我这里是先建立了两个列表,一个是图片路径列表和对应的标签列表。
处理好标签之后,我们开始生成供训练用的batch。因为没有怎么看tensorflow的queue和producer这里。所以这里就简单粗暴的用自己的方式生成batch。
第一步,为了保证shuffle的效果,我用randint先生成一个读取的start位置。为了均衡性能问题,就不一个个都随机生成了,就直接在start+batch_size处设置end。然后迭代输入的图片和标签列表,送入batch中。
好了,今天先介绍到这里,之后会把神经网络这一块放上来,也会用tensorflow里的函数重新实现下数据读取。看完之后如果有疑问可以联系我交流,邮箱982827552@qq.com,完整代码放在我的github上了,希望大家可以顺手给个星啊。
github:https://github.com/xiaoye74/NIST_fingerprint/blob/master/README.md#input-part
转载请注明出处,谢谢
总结
以上是生活随笔为你收集整理的NIST指纹数据识别(二)数据处理的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: OV代码签名和EV代码签名证书区别
- 下一篇: c语言把一个文件中的内容复制到另外一个文