資源簡(jiǎn)介
基于CNN的靜態(tài)手勢(shì)識(shí)別系統(tǒng),完整代碼實(shí)現(xiàn),可以基于二值化模型和高斯膚色模型對(duì)手掌分割,不包含訓(xùn)練好的CNN權(quán)值文件,需要的可以看博客另外下載。

代碼片段和文件信息
#?-*-?coding:?utf-8?-*-
from?keras.backend.tensorflow_backend?import?set_session
import?tensorflow?as?tf
from?keras.models?import?Sequential
from?keras.layers?import?Dense?Dropout?Activation?Flatten
from?keras.layers?import?Conv2D?MaxPooling2D?ZeroPadding2D
from?keras.optimizers?import?SGD?RMSprop?adam
from?keras.utils?import?np_utils
import?time
#?可以通過(guò)下面的代碼主動(dòng)創(chuàng)建一個(gè)使用了ConfigProto的Session,再注入到Keras的后端中去
config?=?tf.ConfigProto()
#?避免默認(rèn)將顯存吃滿
config.gpu_options.allow_growth?=?True
set_session(tf.Session(config=config))
import?numpy?as?np
#?import?matplotlib.pyplot?as?plt
import?os
#?import?theano
from?PIL?import?Image
#?SKLEARN
from?sklearn.utils?import?shuffle
from?sklearn.model_selection?import?train_test_split
import?json
import?cv2
import?matplotlib
#?matplotlib.use(“TkAgg“)
from?matplotlib?import?pyplot?as?plt
#?通過(guò)引入這個(gè)backend,就可以讓Keras來(lái)處理兼容性,將后端的名字設(shè)為K
from?keras?import?backend?as?K
K.set_image_dim_ordering(‘th‘)??#?theano
WeightFileName?=?[“binmask_CnnModel.hdf5“?“skin_mask_CnnModel.hdf5“]
label_dict?=?{‘zero‘:?0?‘one‘:?1?‘two‘:?2?‘three‘:?3?‘four‘:?4?‘five‘:?5
??????????????‘six‘:?6?‘seven‘:?7?‘eight‘:?8?‘nine‘:?9?‘ok‘:?10}
#?input?image?dimensions
img_rows?img_cols?=?200?200
#?number?of?channels
#?For?grayscale?use?1?value?and?for?color?images?use?3?(RGB?channels)
img_channels?=?1
#?Number?of?epochs?to?train?(change?it?accordingly)
nb_epoch?=?15??#?25
#?Total?number?of?convolutional?filters?to?use
nb_filters?=?32
#?Max?pooling
nb_pool?=?2
#?Size?of?convolution?kernel
nb_conv?=?3
##?NOTE:?If?you?change?this?then?dont?forget?to?change?Labels?accordingly
#?nb_classes?=?5
nb_classes?=?11
#?Batch_size?to?train
batch_size?=?32
class?GestureRecognize():
????def?getModel(self):
????????self.model?=?self.loadCNN(0)
????????return?self.model
????def?__init__(self?wf_index=0?parent=None):
????????if?wf_index?==?0:
????????????self.model?=?self.getModel()
????????????print(‘-----GestureRecognize----‘)
????????????print(self.model)
????????else:
????????????self.wf_index?=?wf_index
????????????self.model?=?None
????????????print(‘-----GestureRecognize(?parameter?..)----‘)
????def?export_cnn_net_framework(self):
????????if?self.model?==?None:
????????????print(‘model?get?failed!‘)
????????????return
????????#?Model?summary
????????self.model.summary()
????????#?Model?conig?details
????????self.model.get_config()
????????from?keras.utils?import?plot_model
????????model_net_framework_name?=?‘cnn_model_‘?+?time.strftime(‘%Y-%m-%d_%H-%M-%S‘
????????????????????????????????????????????????????????????????time.localtime(time.time()))?+?‘.png‘
????????plot_model(self.model?to_file=model_net_framework_name?show_shapes=True)
????????print(‘except?sucessfully!‘)
????def?loadCNN(self?wf_index?weight_name=‘binmask_CnnModel.hdf5‘):
????????model?=?Sequential()
????????model.add(Conv2D(nb_filters?(nb_conv?nb_conv)
??????????
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????10302??2017-12-20?13:46??Cnn_Gesture_Test\gesture_recognize.py
?????文件???????6623??2017-12-13?11:43??Cnn_Gesture_Test\ico\fail.png
?????文件??????50430??2017-12-20?13:56??Cnn_Gesture_Test\ico\gesture.png
?????文件???????5940??2017-12-13?11:43??Cnn_Gesture_Test\ico\ok.png
?????文件?????106935??2017-12-20?14:06??Cnn_Gesture_Test\ico\ti
?????文件???????1929??2017-12-14?20:48??Cnn_Gesture_Test\imgs_test\eight_24.png
?????文件???????1929??2017-12-14?20:48??Cnn_Gesture_Test\imgs_test\eight_25.png
?????文件???????1929??2017-12-14?20:48??Cnn_Gesture_Test\imgs_test\eight_26.png
?????文件???????2168??2017-12-14?20:48??Cnn_Gesture_Test\imgs_test\eight_27.png
?????文件???????2168??2017-12-14?20:48??Cnn_Gesture_Test\imgs_test\eight_28.png
?????文件???????2168??2017-12-14?20:48??Cnn_Gesture_Test\imgs_test\eight_29.png
?????文件???????2696??2017-12-14?20:43??Cnn_Gesture_Test\imgs_test\five_38.png
?????文件???????2696??2017-12-14?20:43??Cnn_Gesture_Test\imgs_test\five_39.png
?????文件???????2696??2017-12-14?20:43??Cnn_Gesture_Test\imgs_test\five_40.png
?????文件???????2715??2017-12-14?20:43??Cnn_Gesture_Test\imgs_test\five_41.png
?????文件???????2131??2017-12-14?20:42??Cnn_Gesture_Test\imgs_test\four_69.png
?????文件???????2131??2017-12-14?20:42??Cnn_Gesture_Test\imgs_test\four_70.png
?????文件???????2017??2017-12-14?20:42??Cnn_Gesture_Test\imgs_test\four_71.png
?????文件???????2017??2017-12-14?20:42??Cnn_Gesture_Test\imgs_test\four_72.png
?????文件???????2017??2017-12-14?20:42??Cnn_Gesture_Test\imgs_test\four_73.png
?????文件???????1619??2017-12-14?20:49??Cnn_Gesture_Test\imgs_test\nine_31.png
?????文件???????1607??2017-12-14?20:49??Cnn_Gesture_Test\imgs_test\nine_32.png
?????文件???????1607??2017-12-14?20:49??Cnn_Gesture_Test\imgs_test\nine_33.png
?????文件???????1607??2017-12-14?20:49??Cnn_Gesture_Test\imgs_test\nine_34.png
?????文件???????1607??2017-12-14?20:49??Cnn_Gesture_Test\imgs_test\nine_35.png
?????文件???????2321??2017-12-14?20:17??Cnn_Gesture_Test\imgs_test\ok_74.png
?????文件???????2307??2017-12-14?20:17??Cnn_Gesture_Test\imgs_test\ok_75.png
?????文件???????2307??2017-12-14?20:17??Cnn_Gesture_Test\imgs_test\ok_76.png
?????文件???????2307??2017-12-14?20:17??Cnn_Gesture_Test\imgs_test\ok_77.png
?????文件???????2290??2017-12-14?20:17??Cnn_Gesture_Test\imgs_test\ok_78.png
............此處省略3351個(gè)文件信息
評(píng)論
共有 條評(píng)論