NIST指纹数据识别(二)数据处理
數(shù)據(jù)處理
數(shù)據(jù)分析
NIST指紋數(shù)據(jù)介紹
前面一篇文章簡單介紹了NIST指紋數(shù)據(jù)集的大概形式和組成,一張圖片配一個標(biāo)簽的txt文件。兩個文件名相同(.png和.txt)由于圖片和標(biāo)簽是分開的。我們需要生成兩個對應(yīng)的批次來對圖片和標(biāo)簽進(jìn)行處理。
數(shù)據(jù)準(zhǔn)備
首先,我們先對標(biāo)簽進(jìn)行處理,觀察下圖標(biāo)簽格式。
我們這次只對指紋紋型進(jìn)行分析,所以只關(guān)注class屬性。共有W,A,R,L,T五種屬性。所以可以采用獨(dú)熱編碼 ,原理很簡單,即每個標(biāo)簽用一個numpy數(shù)組表示,數(shù)組有5個元素,按照W,A,R,L,T的順序,只在該圖片對應(yīng)的類型的數(shù)組元素處置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這樣,我們就得到了一張標(biāo)簽對應(yīng)的獨(dú)熱編碼形式。其他其他的文件打開等等就先不放在這里了。有興趣的可以去我的github拿完整的代碼。
順便提一句,我這里是先建立了兩個列表,一個是圖片路徑列表和對應(yīng)的標(biāo)簽列表。
處理好標(biāo)簽之后,我們開始生成供訓(xùn)練用的batch。因為沒有怎么看tensorflow的queue和producer這里。所以這里就簡單粗暴的用自己的方式生成batch。
第一步,為了保證shuffle的效果,我用randint先生成一個讀取的start位置。為了均衡性能問題,就不一個個都隨機(jī)生成了,就直接在start+batch_size處設(shè)置end。然后迭代輸入的圖片和標(biāo)簽列表,送入batch中。
好了,今天先介紹到這里,之后會把神經(jīng)網(wǎng)絡(luò)這一塊放上來,也會用tensorflow里的函數(shù)重新實(shí)現(xiàn)下數(shù)據(jù)讀取。看完之后如果有疑問可以聯(lián)系我交流,郵箱982827552@qq.com,完整代碼放在我的github上了,希望大家可以順手給個星啊。
github:https://github.com/xiaoye74/NIST_fingerprint/blob/master/README.md#input-part
轉(zhuǎn)載請注明出處,謝謝
總結(jié)
以上是生活随笔為你收集整理的NIST指纹数据识别(二)数据处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OV代码签名和EV代码签名证书区别
- 下一篇: c语言把一个文件中的内容复制到另外一个文