-
大小: 33.96MB文件類(lèi)型: .zip金幣: 1下載: 0 次發(fā)布日期: 2023-07-28
- 語(yǔ)言: 其他
- 標(biāo)簽: olivettiface??人臉識(shí)別??
資源簡(jiǎn)介
本文檔是CNN卷積神經(jīng)網(wǎng)絡(luò),用TensorFlow、Kreas兩個(gè)框架對(duì)olivettifaces人臉數(shù)據(jù)集進(jìn)行識(shí)別
代碼片段和文件信息
#?-*-?coding:utf-8?-*-
#?-*-?author:zzZ_CMing??CSDN?address:https://blog.csdn.net/zzZ_CMing
#?-*-?2018/06/05;11:41
#?-*-?python3.5
“““
olivetti?Faces是紐約大學(xué)組建的一個(gè)比較小的人臉數(shù)據(jù)庫(kù)。有40個(gè)人,每人10張圖片,組成一張有400張人臉的大圖片。
像素灰度范圍在[0255]。整張圖片大小是1190*942,20行320列,所以每張照片大小是(1190/20)*(942/20)=?57*47
程序需配置h5py:python?-m?pip?install?h5py
博客地址:https://blog.csdn.net/zzZ_CMing,更多機(jī)器學(xué)習(xí)源碼
“““
import?numpy?as?np
from?PIL?import?Image
from?keras.models?import?Sequential
from?keras.layers?import?Dense?Dropout?Activation?Flatten
from?keras.layers?import?Conv2D?MaxPooling2D
from?keras.optimizers?import?SGD????#?梯度下降的優(yōu)化器
from?keras.utils?import?np_utils
from?keras?import?backend?as?K
#?讀取整張圖片的數(shù)據(jù),并設(shè)置對(duì)應(yīng)標(biāo)簽
def?get_load_data(dataset_path):
????img?=?Image.open(dataset_path)
????#?數(shù)據(jù)歸一化。asarray是使用原內(nèi)存將數(shù)據(jù)轉(zhuǎn)化為np.ndarray
????img_ndarray?=?np.asarray(img?dtype?=?‘float64‘)/255
????#?400?pictures?size:?57*47?=?2679??
????faces_data?=?np.empty((400?2679))
????for?row?in?range(20):??
???????for?column?in?range(20):
???????????#?flatten可將多維數(shù)組降成一維
???????????faces_data[row*20+column]?=?np.ndarray.flatten(img_ndarray[row*57:(row+1)*57?column*47:(column+1)*47])
????#?設(shè)置圖片標(biāo)簽
????label?=?np.empty(400)
????for?i?in?range(40):
????????label[i*10:(i+1)*10]?=?i
????label?=?label.astype(np.int)
????#?分割數(shù)據(jù)集:每個(gè)人前8張圖片做訓(xùn)練,第9張做驗(yàn)證,第10張做測(cè)試;所以train:320valid:40test:40
????train_data?=?np.empty((320?2679))
????train_label?=?np.empty(320)
????valid_data?=?np.empty((40?2679))
????valid_label?=?np.empty(40)
????test_data?=?np.empty((40?2679))
????test_label?=?np.empty(40)
????for?i?in?range(40):
????????train_data[i*8:i*8+8]?=?faces_data[i*10:i*10+8]?#?訓(xùn)練集對(duì)應(yīng)的數(shù)據(jù)
????????train_label[i*8:i*8+8]?=?label[i*10?:?i*10+8]???#?訓(xùn)練集對(duì)應(yīng)的標(biāo)簽
????????valid_data[i]?=?faces_data[i*10+8]???#?驗(yàn)證集對(duì)應(yīng)的數(shù)據(jù)
????????valid_label[i]?=?label[i*10+8]???????#?驗(yàn)證集對(duì)應(yīng)的標(biāo)簽
????????test_data[i]?=?faces_data[i*10+9]????#?測(cè)試集對(duì)應(yīng)的數(shù)據(jù)
????????test_label[i]?=?label[i*10+9]????????#?測(cè)試集對(duì)應(yīng)的標(biāo)簽
????train_data?=?train_data.astype(‘float32‘)
????valid_data?=?valid_data.astype(‘float32‘)
????test_data?=?test_data.astype(‘float32‘)
???????
????result?=?[(train_data?train_label)?(valid_data?valid_label)?(test_data?test_label)]
????return?result
#?CNN主體
def?get_set_model(lr=0.005decay=1e-6momentum=0.9):
????model?=?Sequential()
????#?卷積1+池化1
????if?K.image_data_format()?==?‘channels_first‘:
????????model.add(Conv2D(nb_filters1?kernel_size=(3?3)?input_shape?=?(1?img_rows?img_cols)))
????else:
????????model.add(Conv2D(nb_filters1?kernel_size=(2?2)?input_shape?=?(img_rows?img_cols?1)))
????model.add(Activation(‘tanh‘))
????model.add(MaxPooling2D(pool_size=(2?2)))
????#?卷積2+池化2
????model.add(Conv2D(nb_filters2?kernel_size=(3?3)))
????model.add(Activation(‘tanh‘))??
????model.add(MaxPooling2D(pool_size=(2?2)))
????model.add(Dropout(0.25))??
????#?全連接層1+分類(lèi)器層
????model.add(Flatten())??
????model.add(Dense(1000))???????#Full?connection
????model.add(Activation(‘tanh‘))?
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????目錄???????????0??2018-07-16?14:43??olivettifaces人臉數(shù)據(jù)庫(kù)識(shí)別\CNN_Kreas_olivettifaces\
?????文件????????6314??2018-07-16?14:43??olivettifaces人臉數(shù)據(jù)庫(kù)識(shí)別\CNN_Kreas_olivettifaces\CNN+Kreas框架識(shí)別oli人臉數(shù)據(jù)庫(kù).py
?????文件????21019712??2018-07-04?09:30??olivettifaces人臉數(shù)據(jù)庫(kù)識(shí)別\CNN_Kreas_olivettifaces\model_weights.h5
?????文件?????1182905??2018-03-22?16:20??olivettifaces人臉數(shù)據(jù)庫(kù)識(shí)別\CNN_Kreas_olivettifaces\olivettifaces.gif
?????目錄???????????0??2018-07-09?14:17??olivettifaces人臉數(shù)據(jù)庫(kù)識(shí)別\CNN_tf_olivettifaces\
?????文件?????1182905??2018-03-22?16:20??olivettifaces人臉數(shù)據(jù)庫(kù)識(shí)別\CNN_tf_olivettifaces\olivettifaces.gif
?????文件????14751774??2018-07-04?09:33??olivettifaces人臉數(shù)據(jù)庫(kù)識(shí)別\CNN_tf_olivettifaces\params.pkl
?????文件???????15755??2018-07-05?13:58??olivettifaces人臉數(shù)據(jù)庫(kù)識(shí)別\CNN_tf_olivettifaces\train_CNN.py
?????文件????????7331??2018-03-23?16:22??olivettifaces人臉數(shù)據(jù)庫(kù)識(shí)別\CNN_tf_olivettifaces\use_CNN.py
評(píng)論
共有 條評(píng)論