1. 程式人生 > >圖片分類-python

圖片分類-python

目的:做一個簡易的圖片分類。
使用到的演算法:hog、surf+svm
圖片集cifar-10、cifar-100stl-10、自制圖片集
這裡寫圖片描述
分類完整程式碼連結

使用說明
1.cifar-10、cifar-100和stl-10直接解壓
2.自制圖片集資料夾結構:
├─homemade
│ ├─標籤1
│ ├─標籤2
│ ├─標籤3
│ ├─標籤4
│ ├─標籤5
│ └─標籤6
每個“標籤N”裡面是儲存的屬於該標籤的圖片,圖片名為“標籤名+數字”
自制圖片全是百度爬取自己篩選的
3.依賴庫
檔案說明
categoriesGUI.py:gui介面
categoriesGUI.spec:用於Pyinstaller生成exe
config.py:讀取配置引數
modelTrain.py:模型訓練
picCategories.py:圖片集分類,利用的是modelTrain.py訓練儲存的模型
config/config.cfg:配置引數,部分引數和python中演算法的引數相對應

結果總結
1.hog是利用梯度變換提取特徵,並且缺少旋轉和尺度不變性。
2.surf是SIFT角點檢測演算法的改進版,速度提升比較大。
3.相同圖片集,對比hog+LinearSVC和surf+LinearSVC,hog效果要好一些(這裡不知道為什麼)
4.不同圖片集,各類別中的圖片數量越多,hog識別效果越好
5.還可以優化部分分別是:
a.surf讀取圖片改為讀取每一張圖片就進行surf特徵提取,在釋放掉圖片記憶體,這樣可以減小記憶體。
b.模型訓練採取的是LinearSVC,採取其他的效果應該要好些。
c.在surf+LinearSVC中使用的是MiniBatchKMeans,速度比kmeans快,效果差距不大
d.自己調引數,這裡可以提高一些識別率。
6.surf由於提取特徵大小不同,所以採用了詞袋的方法。