日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

NIST指纹数据识别(二)数据处理

發布時間:2024/3/12 68 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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中。

import cv2 import random as rd def get_random_batch(image_list,label_list,image_H,image_W,batch_size,classes):image_batch = np.zeros(batch_size,image_H*image*W)label_batch = np.zeros(batch_size,classes)start = rd.randint(0,len(image_list)-batch_size)end = start + batch_sizedef convertgray(img):if len(img.shape) > 2:gray = np.mean(img, -1)return grayelse:return imgfor i in range(start, end):image = cv2.imread(image_list[i])image = convert2gray(image)image_batch[i-start,:] = image.fatten()label_batch[i-start,:] = label_list[i] return image_batch, label_batch

好了,今天先介紹到這里,之后會把神經網絡這一塊放上來,也會用tensorflow里的函數重新實現下數據讀取。看完之后如果有疑問可以聯系我交流,郵箱982827552@qq.com,完整代碼放在我的github上了,希望大家可以順手給個星啊。
github:https://github.com/xiaoye74/NIST_fingerprint/blob/master/README.md#input-part

轉載請注明出處,謝謝

總結

以上是生活随笔為你收集整理的NIST指纹数据识别(二)数据处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。