一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

【Caffe實(shí)踐】基于Caffe的DeepID人臉識(shí)別實(shí)現(xiàn)

 openlog 2015-12-06
# -*- coding: utf-8 -*- """ Created on Mon Apr 20 16:55:55 2015 @author: 陳日偉 <riwei.chen@outlook.com> @brief:在lfw數(shù)據(jù)庫(kù)上驗(yàn)證訓(xùn)練好了的網(wǎng)絡(luò) """ import sklearn import numpy as np import matplotlib.pyplot as plt import skimage caffe_root = '/home/crw/caffe-master/' import sys sys.path.insert(0, caffe_root + 'python') import caffe import sklearn.metrics.pairwise as pw def read_imagelist(filelist): ''' @brief:從列表文件中,讀取圖像數(shù)據(jù)到矩陣文件中 @param: filelist 圖像列表文件 @return :4D 的矩陣 ''' fid=open(filelist) lines=fid.readlines() test_num=len(lines) fid.close() X=np.empty((test_num,3,64,64)) i =0 for line in lines: word=line.split('\n') filename=word[0] im1=skimage.io.imread(filename,as_grey=False) image =skimage.transform.resize(im1,(64, 64))*255 if image.ndim<3: print 'gray:'+filename X[i,0,:,:]=image[:,:] X[i,1,:,:]=image[:,:] X[i,2,:,:]=image[:,:] else: X[i,0,:,:]=image[:,:,0] X[i,1,:,:]=image[:,:,1] X[i,2,:,:]=image[:,:,2] i=i+1 return X def read_labels(labelfile): ''' 讀取標(biāo)簽列表文件 ''' fin=open(labelfile) lines=fin.readlines() labels=np.empty((len(lines),)) k=0; for line in lines: labels[k]=int(line) k=k+1; fin.close() return labels def draw_roc_curve(fpr,tpr,title='cosine',save_name='roc_lfw'): ''' 畫(huà)ROC曲線圖 ''' plt.figure() plt.plot(fpr, tpr) plt.plot([0, 1], [0, 1], 'k--') plt.xlim([0.0, 1.0]) plt.ylim([0.0, 1.0]) plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('Receiver operating characteristic using: '+title) plt.legend(loc="lower right") plt.show() plt.savefig(save_name+'.png') def evaluate(itera=500000,metric='cosine'): ''' @brief: 評(píng)測(cè)模型的性能 @param:itera: 模型的迭代次數(shù) @param:metric: 度量的方法 ''' # 轉(zhuǎn)換均值圖像數(shù)據(jù) -->npy格式文件 fin='/media/crw/MyBook/TrainData/LMDB/CASIA-WebFace/10575_64X64/mean.binaryproto' fout='/media/crw/MyBook/TrainData/LMDB/CASIA-WebFace/10575_64X64/mean.npy' blob = caffe.proto.caffe_pb2.BlobProto() data = open( fin , 'rb' ).read() blob.ParseFromString(data) arr = np.array( caffe.io.blobproto_to_array(blob) ) out = arr[0] np.save( fout , out ) #設(shè)置為gpu格式 caffe.set_mode_gpu() net = caffe.Classifier('/home/crw/caffe-master/FaceRecognition/try5_2/deploy.prototxt', '/media/crw/MyBook/Model/FaceRecognition/try5_2/snapshot_iter_'+str(itera)+'.caffemodel', mean=np.load(fout)) #需要對(duì)比的圖像,一一對(duì)應(yīng) filelist_left='./LFW_Test_List/left.list' filelist_right='./LFW_Test_List/right.list' filelist_label='./LFW_Test_List/label.list' print 'network input :' ,net.inputs print 'network output: ', net.outputs #提取左半部分的特征 X=read_imagelist(filelist_left) test_num=np.shape(X)[0] #data_1 是輸入層的名字 out = net.forward_all(data_1 = X) feature1 = np.float64(out['deepid_1']) feature1=np.reshape(feature1,(test_num,160)) #np.savetxt('feature1.txt', feature1, delimiter=',') #提取右半部分的特征 X=read_imagelist(filelist_right) out = net.forward_all(data_1=X) feature2 = np.float64(out['deepid_1']) feature2=np.reshape(feature2,(test_num,160)) #np.savetxt('feature2.txt', feature2, delimiter=',') #提取標(biāo)簽 labels=read_labels(filelist_label) assert(len(labels)==test_num) #計(jì)算每個(gè)特征之間的距離 mt=pw.pairwise_distances(feature1, feature2, metric=metric) predicts=np.empty((test_num,)) for i in range(test_num): predicts[i]=mt[i][i] # 距離需要?dú)w一化到0--1,與標(biāo)簽0-1匹配 for i in range(test_num): predicts[i]=(predicts[i]-np.min(predicts))/(np.max(predicts)-np.min(predicts)) print 'accuracy is :',calculate_accuracy(predicts,labels,test_num) np.savetxt('predict.txt',predicts) fpr, tpr, thresholds=sklearn.metrics.roc_curve(labels,predicts) draw_roc_curve(fpr,tpr,title=metric,save_name='lfw_'+str(itera)) def calculate_accuracy(distance,labels,num): ''' #計(jì)算識(shí)別率, 選取閾值,計(jì)算識(shí)別率 ''' accuracy = [] predict = np.empty((num,)) threshold = 0.2 while threshold <= 0.8 : for i in range(num): if distance[i] >= threshold: predict[i] =1 else: predict[i] =0 predict_right =0.0 for i in range(num): if predict[i]==labels[i]: predict_right = 1.0+predict_right current_accuracy = (predict_right/num) accuracy.append(current_accuracy) threshold=threshold+0.001 return np.max(accuracy) if __name__=='__main__': itera=500000 metric='cosine' evaluate(itera,metric)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    婷婷九月在线中文字幕| 国产国产精品精品在线| 国产大屁股喷水在线观看视频 | 亚洲av日韩一区二区三区四区| 亚洲一区二区三区免费的视频| 欧美日韩国产亚洲三级理论片| 国产成人精品国内自产拍| 亚洲精品国产第一区二区多人| 欧美日韩一区二区三区色拉拉| 97精品人妻一区二区三区麻豆| 国产精品亚洲二区三区| 日本美国三级黄色aa| 午夜精品国产精品久久久| 国产又色又爽又黄的精品视频| 久久99精品国产麻豆婷婷洗澡| 精品一区二区三区中文字幕| 国产精品熟女在线视频| 国产目拍亚洲精品区一区| 欧美日韩乱一区二区三区| 精品一区二区三区乱码中文| 日韩中文字幕在线不卡一区| 亚洲美女国产精品久久| 日韩欧美中文字幕人妻| 亚洲伦理中文字幕在线观看| 日本中文在线不卡视频| 精品欧美国产一二三区| 精品日韩欧美一区久久| 麻豆视频传媒入口在线看| 久久国产亚洲精品成人| 老鸭窝精彩从这里蔓延| 久久亚洲精品中文字幕| 一区二区三区亚洲国产| 亚洲精品国产精品日韩| 日本精品免费在线观看| 欧美又大又黄刺激视频| 不卡免费成人日韩精品| 99久久国产精品免费| 青草草在线视频免费视频| 久久精品国产亚洲av久按摩| 亚洲国产成人爱av在线播放下载| 丰满少妇被猛烈撞击在线视频 |