資源簡介
手勢識別,使用OpenCV,scikit-learn等庫對手勢進行機器學習,識別食指所指方向;上、下、左、右四個方向(包含數據集)
代碼片段和文件信息
#?-*-?coding:?utf-8?-*-
#?@auth
#?使用SVM對手勢方向進行訓練?分類
import?cv2
import?numpy?as?np?
from?os?import?listdir
from?sklearn.svm?import?SVC
from?sklearn.externals?import?joblib
from?sklearn.model_selection?import?GridSearchCV
train_path?=?“./feature/“
test_path??=?“./test_feature/“
model_path?=?“./model/“
#?將txt文件中的特征轉化成向量
def?txtToVector(filename?N):
returnVec?=?np.zeros((1N))
fr?=?open(filename)
lineStr?=?fr.readline()
lineStr?=?lineStr.split(“?“)
for?i?in?range(N):
returnVec[0?i]?=?int(lineStr[i])
return?returnVec
#?訓練SVM
def?train_SVM(N):
svc?=?SVC()
parameters?=?{‘kernel‘:(‘linear‘?‘rbf‘)
??????????????‘C‘:[1?3?5?7?9?11?13?15?17?19]
??????????????‘gamma‘:[0.00001?0.0001?0.001?0.1?1?10?100?1000]}#預設置一些參數值
hwLabels?=?[]#存放類別標簽
trainingFileList?=?listdir(train_path)
m?=?len(trainingFileList)
trainingMat?=?np.zeros((mN))
for?i?in?range(m):
fileNameStr?=?trainingFileList[i]
classNumber?=?int(fileNameStr.split(‘_‘)[0])
hwLabels.append(classNumber)
trainingMat[i:]?=?txtToVector(train_path+fileNameStr?N)#將訓練集改為矩陣格式
clf?=?GridSearchCV(svc?parameters?cv=5?n_jobs=8)#網格搜索法,設置5-折交叉驗證
clf.fit(trainingMat?hwLabels)
print(clf.return_train_score)
print(clf.best_params_)?#打印出最好的結果
best_model?=?clf.best_estimator_
print(“SVM?Model?saved“)
save_path?=?model_path?+?“svm_train_model.m“
joblib.dump(best_modelsave_path)#保存最好的模型
#?測試SVM
def?test_SVM(clfN):
testFileList?=?listdir(train_path)
errorCount?=?0#記錄錯誤個數
mTest?=?len(testFileList)
for?i?in?range(mTest):
fileNameStr?=?testFileList[i]
classNum?=?int(fileNameStr.split(‘_‘)[0])
vectorTest?=?txtToVector(train_path+fileNameStrN)
valTest?=?clf.predict(vectorTest)
#print(“分類返回結果為%d\t真實結果為%d“?%?(valTest?classNum))
print(“file:“?fileNameStr“classNum:“?classNum?“Test:“?clf.predict(vectorTest))
if?valTest?!=?classNum:
errorCount?+=?1
print(“總共錯了%d個數據\n錯誤率為%f%%“?%?(errorCount?errorCount/mTest?*?100))
#?載入模型并進行測試
def?test_fd(fd_test):
clf?=?joblib.load(model_path?+?“svm_train_model.m“)
test_svm?=?clf.predict(fd_test)
return?test_svm
if?__name__==“__main__“:
train_SVM(99)
clf?=?joblib.load(model_path?+?“svm_train_model.m“)
test_SVM(clf99)
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2020-02-10?04:37??final\
?????文件???????10244??2020-02-12?09:08??final\.DS_Store
?????文件?????????120??2020-02-12?09:08??__MACOSX\final\._.DS_Store
?????文件?????????801??2020-02-12?09:10??final\picture.py
?????文件?????????220??2020-02-12?09:10??__MACOSX\final\._picture.py
?????目錄???????????0??2020-02-01?08:54??final\images\
?????文件?????????187??2020-02-01?08:54??__MACOSX\final\._images
?????目錄???????????0??2020-02-11?09:12??final\dataset\
?????文件????????2446??2020-02-12?08:47??final\classify.py
?????文件?????????276??2020-02-12?08:47??__MACOSX\final\._classify.py
?????文件????????1524??2020-02-12?09:16??final\extractFeature.py
?????文件?????????220??2020-02-12?09:16??__MACOSX\final\._extractFeature.py
?????目錄???????????0??2020-02-12?09:06??final\test_image\
?????文件?????????187??2020-02-12?09:06??__MACOSX\final\._test_image
?????目錄???????????0??2020-02-01?14:06??final\__pycache__\
?????文件????????1297??2020-02-12?07:21??final\dataset.py
?????文件?????????220??2020-02-12?07:21??__MACOSX\final\._dataset.py
?????目錄???????????0??2020-02-10?04:37??final\model\
?????目錄???????????0??2020-02-01?08:53??final\feature\
?????文件????????5187??2020-02-12?09:17??final\myGUI.py
?????文件?????????220??2020-02-12?09:17??__MACOSX\final\._myGUI.py
?????目錄???????????0??2020-02-01?08:53??final\test_feature\
?????文件???????26585??2020-02-01?10:01??final\images\2_249.png
?????文件?????????287??2020-02-01?10:01??__MACOSX\final\images\._2_249.png
?????文件???????32309??2020-02-01?13:18??final\images\2_261.png
?????文件?????????287??2020-02-01?13:18??__MACOSX\final\images\._2_261.png
?????文件???????24292??2020-02-01?13:18??final\images\2_275.png
?????文件?????????187??2020-02-01?13:18??__MACOSX\final\images\._2_275.png
?????文件???????11489??2020-01-31?14:49??final\images\1_64.png
?????文件?????????287??2020-01-31?14:49??__MACOSX\final\images\._1_64.png
?????文件???????31853??2020-02-01?13:18??final\images\1_349.png
............此處省略7311個文件信息
評論
共有 條評論