2022-04-25 16:46:51 索煒達電子 1307
文件編號:A358
文件大?。?/strong>6.7M
開發(fā)環(huán)境:Python3.9、OpenCV4.5、PyCharm2020
猿創(chuàng)承諾:該項目親測正常運行,提供部署視頻,需遠程調(diào)試部署需另外收費,確保正常使用,不能正常使用全額退款。
簡要概述:hog_svm.py是用于訓練的,通過提取圖片的hog特征,然后通過SVM進行訓練得到model,最后通過model進行預測,將結(jié)果寫入result.txt文件之中。
注意事項:
1.你的圖片長寬可以不相等,設置好image_height和image_width即可。
如果圖片大小不相等,可以使用change_size.py,把所有圖片大小resize成一樣的。
2.你圖片對應的標簽必須是這樣的:
001.jpg 1
003.jpg 2
前面是圖片名稱,后面是對應的類別(類別用數(shù)字表示),中間要用空格隔開,每個標簽占一行。
你要準備兩個文件,一個是訓練用的,一個是測試用的。
訓練樣本標簽和預測的都是一樣的格式
大家可以看實例.(image文件夾)
3.你的訓練和測試的圖片可以放在同一個文件夾下面,也可以不同,設置好train_image_path和test_image_path即可。
4.你要根據(jù)你圖片的大小,對這行代碼進行一些調(diào)整,這個調(diào)整需要你先了解hog的知識:
fd = hog(gray, orientations=18, pixels_per_cell=[8,8], cells_per_block=[4,4], visualise=False, transform_sqrt=True)
這是我為128x128大小圖片設置的提取hog特征的參數(shù),你需要適當改變一些,到時候的效果也不同。
orientations我是選9或18,即梯度方向的個數(shù)
一般來說,圖片越大,pixels_per_cell 和cells_per_block里面的值可以相應變大。
5.如果你要進行多次,建議你把文件位置的參數(shù)寫死
#訓練集圖片的位置
train_image_path = '/home/icelee/Downloads/dataset/small_shixun/'
#測試集圖片的位置
test_image_path = '/home/icelee/Downloads/dataset/small_shixun/'
#訓練集標簽的位置
train_label_path = '/home/icelee/Downloads/dataset/mydata.txt'
#測試集標簽的位置
test_label_path = '/home/icelee/Downloads/dataset/test.txt'
#圖片大小
image_height = 128
image_width = 128
6.你需要安裝sk-learn庫,hog,PIL庫等??赡苓€有一些零碎的庫,大家用pip安裝就好。
7.實驗都是彩色圖片,如果你的圖片是純黑白的,很有可能需要改一下代碼,看一下代碼注釋即可
采用這個測試cifar-10,準確率有50%多一點點(亂猜的準確率是10%),所以效果還是可以的,雖然比不上深度學習。
按需寫作:
演示視頻:
點擊查看:系統(tǒng)演示視頻
運行效果:
可能出現(xiàn)的錯誤
ValueError: Expected 2D array, got 1D array instead: array=[]. Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
出現(xiàn)上面的錯誤說明沒有正常讀取到圖片,所以請檢查圖片寬高是不是和設置的size一樣,路徑是否正確。更改之后運行程序時,請選擇重新獲取特征。
遠程協(xié)助:
溫馨提示:索煒達.猿創(chuàng)官方提供收費遠程協(xié)助,確保您項目運行成功。
點擊查看:遠程協(xié)助相關(guān)事項
我們提供完整項目文件清單如下:
文件目錄
├ 1.項目源碼
├ 2.運行截圖
└ 3.演示視頻