寒假過程中,畫了3天採集海賊王角色資料並進行標註,然後花了1天時間使用神經網路訓練資料集,並進行驗證
序號資料夾
含義數量
0lufei
路飛117 張
1suolong
索隆90 張
2namei
娜美84 張
3wusuopu
烏索普77張
4qiaoba
喬巴102 張
5shanzhi
山治47 張
6luobin
羅蘋105張
對人臉部分進行提取
使用matlab軟體的 imcrop 函式對整張進行部分截圖,並將不同的角色儲存至不同的資料夾中,詳見
/blob/master/hzw/imc.m
使用方法:
在matlab命令列介面輸入角色名稱
使用vgg16網路進行訓練,詳見我的vgg16_notebook
對進行預處理
# 引數設定
from matplotlib import pyplot
from keras.preprocessing.image import imagedatagenerator
datagen = imagedatagenerator(rotation_range=
30,
width_shift_range=
0.1, height_shift_range=
0.1,
brightness_range=
[0.8
,1.5],
zoom_range=
[0.8
,1.2],
horizontal_flip=
false
, vertical_flip=
false
, rescale=1/
128.0
, featurewise_center=
true
)# 看一下增強的結果
datagen.fit(train_data)
for batch_data, batch_label in datagen.flow(train_data, train_label, batch_size=9)
: batch_data = batch_data
batch_data = np.clip(batch_data,0,
1)print
(batch_data.
max())
print
(batch_data.
min())
for i in
range(9
):pyplot.imshow(batch_data[i]
) pyplot.show(
)break
增強的結果
匯入keras中的vgg16模型, 並修改為自己的網路
from keras.layers import input, dense, dropout, activation, flatten
from keras.models import model
import numpy as np
tbatchsize =
64'''第一步:選擇模型'''
#vgg16要求大小最少48
model_vgg = vgg16(include_top=
false
, input_shape=
(128
,128,3
))for layer in model_vgg.layers:
layer.trainable =
false
model = flatten(name=
'flatten'
)(model_vgg.output)
model = dense(
500, activation=
'relu'
, name=
'fc1'
)(model)
model = dense(
500, activation=
'relu'
, name=
'fc2'
)(model)
model = dropout(
0.5)
(model)
model = dense(
7, activation=
'softmax'
)(model)
model = model(inputs=model_vgg.
input
, outputs = model, name =
'vgg16'
)model.
compile
(loss=
'categorical_crossentropy'
, optimizer=
'adam'
, metrics=
['accuracy'
])
實驗結果
將以及識別的結果使用 matplotlib列印出來
同時使用inception v3實驗了一下,發現效果不好,有同學明白的話希望能幫助我一下.
經典卷積神經網路之 VGG16
命名 16表示除pooling layer外使用conv layer的層數 1.vggnet探索了卷積神經網路的深度與其效能之間的關係,通過反覆堆疊3 3的小型卷積核和2 2的最大池化層,vggnet成功地構築了16 19層深的卷積神經網路 2.vggnet結構簡潔,整個網路都使用了同樣大小的卷積核...
卷積神經網路 經典神經網路模型之VGG 16
vgg 16其中的16含義為 含有權重引數的有16層,共包含引數約為1.38億,這是乙個相當大的網路。但是其網路結構很規整簡潔,沒有那麼多的超引數,專注於構建簡單的網路結構 都是幾個卷積層後面跟乙個最大池化層 通過不斷的加深網路結構來提公升效能 但是由此也會帶來訓練的特徵數量非常大的缺點。其網路結構...
深入理解卷積神經網路 VGG16
二 分析 vgg16 的過程 三 理解神經網路 vgg 16 四 用vgg16 來做乙個影象識別案例 vgg是由simonyan 和zisserman在文獻 very deep convolutional networks for large scale image recognition 中提出卷...