1. 程式人生 > >python實現用SIFT+K-MEANS+SVM圖片分類

python實現用SIFT+K-MEANS+SVM圖片分類

用python實現圖片分類過程

1. 按圖片類別抽取訓練集中所有圖片的SIFT特徵;

2. 將每一類圖片的SIFT特徵聚類為K類,構成該類的visual vocabulary(其size為K);

3. 對於訓練集中的每一張圖片,統計vocabulary中K個word的“詞頻”,得到相應的直方圖;

4. 將直方圖作為樣本向量即可構建SVM的訓練資料和測試資料;

執行的環境:

windows7+python 2.7.9+opencv 2.4.9+numpy

***************************************************小白知識補給站********************************************************************

Python是一種通用語言。它被解釋執行,是動態型別語言,非常適合互動工作和快速實現原型,並且足夠強大可以寫大型應用。

Numpy是一個定義了數值陣列、矩陣型別和它們的基本運算的語言擴充套件(是Python的一個工具包)。

pip是一個安裝和管理Python包的工具,是easy_install的一個替代品。可以用pip安裝numpy等工具,非常方便!

***************************************************************************************************************************************

環境搭建:

安裝了python後,安裝pip:在Python的官網上去下載,下載地址是:https://pypi.python.org/pypi/pip#downloads 

下載完成之後,解壓到一個資料夾,用CMD控制檯進入解壓目錄,輸入:

python setup.py install
然後需要新增環境變數,我們在PATH最後新增:
C:\Python27\Scripts;
安裝好pip後,就可以用pip安裝numpy了:在cmd中輸入pip install numpy 
可能大家會遇到一個問題,明明電腦上裝好了opencv,為什麼import cv2會出錯?
因為我們還需要在python下安裝
opencv,步驟很簡單:
將”\opencv\build\python\2.7\x64”或”\opencv\build\python\2.7\x86”(根據python版本)資料夾中找到cv2.pyd”,
複製到Python安裝檔案的”C:\Python27\Lib\site-packages”資料夾中。
執行的程式碼用例是網上下載的一個資源:http://www.ithao123.cn/content-8721974.html

相關推薦

python實現SIFT+K-MEANS+SVM圖片分類

用python實現圖片分類過程: 1. 按圖片類別抽取訓練集中所有圖片的SIFT特徵; 2. 將每一類圖片的SIFT特徵聚類為K類,構成該類的visual vocabulary(其size為K); 3. 對於訓練集中的每一張圖片,統計vocabulary中K個word的“

【機器學習七】利用K-means壓縮圖片

在學習機器的過程中,發現了K-means的一種應用,遂那這個例子,練練手,增加對K-means的理解。  # -- encoding:utf-8 -- """ Create by yexm on 2018/11/24 """ # coding:utf-8 import matplot

Python實現"佇列實現棧"的一種方法

使用佇列實現棧的下列操作: push(x) -- 元素 x 入棧 pop() -- 移除棧頂元素 top() -- 獲取棧頂元素 empty() -- 返回棧是否為空 Example: MyStack stack = new MyStack(); stack.p

SVM全系列:從原理到python實現(一):SVM原理

前言 本文開始主要介紹一下SVM的分類原理以及SVM的數學匯出和SVM在Python上的實現。借鑑了許多文章,會在後面一一指出,如果有什麼不對的希望能指正。 一、 SVM簡介 首先看到SVM是在斯坦福的機器學習課程上,SVM是作為分類器在logisticregr

C#實現簡單的K-means聚類演算法

namespace K_means{    public class Kmeans    {        double[,] inPut;//資料        int k;//類別數        int Num;//檔案數        int sub;//特徵值數  

python機器學習:K-means聚類演算法

為了更好構建關於機器學習的整體架構,多快好省的學好機器學習,計劃提綱挈領的總結一遍,從演算法的執行流程、虛擬碼流程構建、python程式碼實現、呼叫sklearn機器學習庫相關函式實現功能等方面論述,以便以後自己複習和備查,下面先從k-means演算法開始。 一

【機器學習演算法-python實現】KNN-k近鄰演算法的實現(附原始碼)

 下載地址 kNN演算法及例項原始碼實現#coding=utf-8 ''' Created on Sep 16, 2010 kNN: k Nearest Neighbors Input: inX: vector to compare to existing dataset (1xN)

python實現戶登陸(sqlite數據庫存儲戶信息)

自動 入學 添加 sqlite數據庫 lec 輸入密碼 獲取 where char python實現用戶登陸(sqlite數據庫存儲用戶信息) 目錄 創建數據庫 數據庫管理 簡單登陸 有些地方還未完善。 創建數據庫 import sqlite3 #建一個

python實現將目錄下的所有圖片resize

實現功能        將目錄下的所有圖片重新resize程式碼實現import os import cv2 for filename in os.listdir(r"/home/jing/mnist

Python 實現 KNN(K-近鄰)算法

動作 bsp operator sort 關於 png 如果 std labels 一、概述   KNN(K-最近鄰)算法是相對比較簡單的機器學習算法之一,它主要用於對事物進行分類。用比較官方的話來說就是:給定一個訓練數據集,對新的輸入實例,在訓練數據集中找到與該實

使用yield生成器,Python實現戶對戶輸入信息的監聽和過濾

所有 file line adl 語句 pytho open UNC 函數 # -*- coding:utf-8 -*-‘‘‘‘‘‘‘‘‘生成器是一次生成一個值的特殊類型函數。可以將其視為可恢復函數。調用該函數將返回一個可用於生成連續 x 值的生成【Generator】,簡

機器學習實戰——python實現簡單的樸素貝葉斯分類

基礎公式 貝葉斯定理:P(A|B) = P(B|A)*P(A)/P(B) 假設B1,B2…Bn彼此獨立,則有:P(B1xB2x…xBn|A) = P(B1|A)xP(B2|A)x…xP(Bn|A) 資料(虛構) A1 A2 A3 A4 A5 B

python實現貝葉斯推斷——垃圾郵件分類

理論 前期準備 資料來源 資料來源於《機器學習實戰》中的第四章樸素貝葉斯分類器的實驗資料。資料書上只提供了50條資料(25條正常郵件,25條垃圾郵件),感覺資料量偏小,以後打算使用scikit-learn提供的iris資料。 資料準備 和很

機器學習筆記:python中使用sklearn中的svm進行分類demo,並輸入分類概率

from sklearn import svm# 使用svm分類demo# sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, gamma='auto', coef0=0.0, shrinking=True, probability=

SVM演算法 K-meanspython實現

arg argument of the maximum/minimum arg max f(x): 當f(x)取最大值時,x的取值 arg min f(x):當f(x)取最小值時,x的取值     s.t.是subject to (such that)的縮

k-means+python︱scikit-learn中的KMeans聚類實現( + MiniBatchKMeans)

CP lan sina QQ mmx 機制 意義 預測 內容 之前一直用R,現在開始學python之後就來嘗試用Python來實現Kmeans。 之前用R來實現kmeans的博客:筆記︱多種常見聚類模型以及分群質量評估(聚類註意事項、使用技巧) 聚類分析在客戶

python實現K均值演算法

import numpy as np x = np.random.randint(1,60,[30,1]) y = np.zeros(20) k = 3 #1選取資料空間中的K個物件作為初始中心,每個物件代表一個聚類中心; def initcen(x,k): return x[:k]

Python實現Flickr照片文字資料下載入庫及圖片儲存

語言採用Python,資料庫採用MySQL進行文字資料(照片id,所有者,文字標籤,位置座標,圖片連結)入庫,圖片存放在資料夾。 爬蟲流程: 程式碼如下: #!/usr/bin/python # -*- coding: UTF-8 -*- import req

pythontcp實現區域網內檔案傳輸(文字,圖片,視訊)

功能: 可以利用python建立的TCP客戶端從我們自己搭建的TCP伺服器上下載檔案. 實現需求: 安裝socket模組 簡單瞭解sokcet模組用法 伺服器程式碼如下: import socket def file_deal(file_name):     # 定義

K-means演算法及python sklearn實現

目錄 前言 例項推演  K值的確定 輪廓係數 K-means演算法 前言 根據訓練樣本是否包含標籤資訊,機器學習可以分為監督學習和無監督學習。聚類演算法是典型的無監督學習,其訓練樣本中只包含樣本特徵,不包含樣本的標