質問内容
手話の単語を認識するCNNを自作したのですが、これを用いてリアルタイムのカメラの映像に学習した手話の単語が出てきたときにそれを認識するようなものを作りたいと考えています。これを実装する方法や読むといい本などがあれば教えてもらいたいです。
ソースコード
自作したCNNのソースコードです。
テストデータで確認してみたところ正解率は93%でした。
python
1import keras 2import pickle 3import pandas as pd 4import numpy as np 5import seaborn as sns 6from keras import models 7from keras import layers 8from keras import optimizers 9from pandas import Series,DataFrame 10from keras.utils import to_categorical 11from keras.optimizers import RMSprop 12from keras.preprocessing.image import ImageDataGenerator 13from sklearn.preprocessing import LabelBinarizer 14 15#csv読み込み 16sign_train = pd.read_csv("sign_mnist_train.csv",sep=",") 17lb=LabelBinarizer() 18 19#特訓データ 20train_data=sign_train.drop(['label'],axis=1) 21train_data = train_data.values.reshape(-1,28,28,1) 22train_data=train_data.astype('float32')/255 23train_label=sign_train['label'] 24train_label=lb.fit_transform(train_label) 25 26#モデル 27model=models.Sequential() 28model.add(layers.Conv2D(32,(3,3),activation='relu',input_shape=(28,28,1))) 29model.add(layers.MaxPooling2D((2,2))) 30model.add(layers.Conv2D(64,(3,3),activation='relu')) 31model.add(layers.MaxPooling2D((2,2))) 32model.add(layers.Conv2D(64,(3,3),activation='relu')) 33model.add(layers.Flatten()) 34model.add(layers.Dense(64,activation='relu')) 35model.add(layers.Dropout(0.1)) 36model.add(layers.Dense(64,activation='relu')) 37model.add(layers.Dropout(0.1)) 38model.add(layers.Dense(24,activation='softmax')) 39 40#学習の取り決め 41model.compile(optimizer='adam',loss='categorical_crossentropy',metrics=['acc']) 42 43#学習 44history=model.fit(train_data,train_label,epochs=20,batch_size=200) 45 46#保存 47with open('model.pickle', mode='wb') as f: 48 pickle.dump(model, f)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。