Ⅰ 如何將opencv里的HOG演算法提取出來做成dll
首先去opencv的安裝路徑下moles\objdetect目錄中找到hog的頭文件和源代碼,然後把裡面用到的相關的類,函數等也找出來,單獨寫成.h和.cpp文件,最後放到工程裡面編譯生成dll。不過這個工作量應該相當大,我嘗試過把haar檢測單獨提取出來,但是沒成功,裡面的各種類的相互關系太復雜了。
Ⅱ 圖像識別演算法都有哪些
圖像識別,是指利用計算機對圖像進行處理、分析和理解,以識別各種不同模式的目標和對像的技術。一般工業使用中,採用工業相機拍攝圖片,然後再利用軟體根據圖片灰階差做進一步識別處理,圖像識別軟體國外代表的有康耐視等,國內代表的有圖智能等。另外在地理學中指將遙感圖像進行分類的技術。
Ⅲ 圖像的特徵提取都有哪些演算法
圖像的經典特徵提取方法:
1 HOG(histogram of Oriented Gradient,方向梯度直方圖)
2 SIFT(Scale-invariant features transform,尺度不變特徵變換)
3 SURF(Speeded Up Robust Features,加速穩健特徵,對sift的改進)
4 DOG(Difference of Gaussian,高斯函數差分)
5 LBP(Local Binary Pattern,局部二值模式)
6 HAAR(haar-like ,haar類特徵,注意haar是個人名,haar這個人提出了一個用作濾波器的小波,為這個濾波器命名為haar濾波器,後來有人把這個濾波器用到了圖像上,就是圖像的haar特徵)
圖像的一般提取特徵方法:
1 灰度直方圖,顏色直方圖
2 均值,方差
3 信號處理類的方法:灰度共生矩陣,Tamura紋理特徵,自回歸紋理特徵,小波變換。
4 傅里葉形狀描述符,小波描述符等,
Ⅳ HOG演算法什麼意思
特徵梯度直方圖演算法,現在非常流行的一種行人檢測的演算法,一般配合LBP和SVM分類器效果很好。你要想具體了解可以去WIKI 或者 navneet的網站看看專業解釋。
不過HOG函數已經集成在了OPENCV庫裡面,因此其實沒有必要非要搞懂這個演算法。。。
Ⅳ 圖像hog特徵 最邊上像素點怎麼計算
這個問題我問過老師了,if((pImg = cvLoadImage( "路徑文件",0)) != 0 )
Ⅵ 如何將hog 特徵進行svm matlab
(1)准備訓練樣本集合;包括正樣本集和負樣本集;根據機器學習的基礎知識我們知道,要利用機器學習演算法進行樣本訓練,從而得到一個性能優良的分類器,訓練樣本應該是無限多的,而且訓練樣本應該覆蓋實際應用過程中可能發生的各種情況。(很多朋友,用10來個正樣本,10來
個負樣本進行訓練,之後,就進行測試,發現效果沒有想像中的那麼好,就開始發牢騷,抱怨。。。對於這些人,我只能抱歉的說,對於機器學習、模式識別的認
識,你還處於沒有入門的階段);實際應用過程中,訓練樣本不可能無限多,但無論如何,三五千個正樣本,三五千個負樣本,應該不是什麼難事吧?(如果連這個
都做不到,建議你別搞機器學習,模式識別了;訓練素材都沒有,怎麼讓機器學習到足夠的信息呢?)
(2)收集到足夠的訓練樣本之後,你需要手動裁剪樣本。例如,你想用Hog+SVM來對商業步行街的監控畫面中進行行人檢測,那麼,你就應該用收集到的訓練樣本集合,手動裁剪畫面中的行人(可以寫個簡單程序,只需要滑鼠框選一下,就將框選區域保存下來)。
(3)裁剪得到訓練樣本之後,將所有正樣本放在一個文件夾中;將所有負樣本放在另一個文件夾中;並將所有訓練樣本縮放到同樣的尺寸大小。OpenCV自帶的例子在訓練時,就是將樣本縮放為64*128進行訓練的;
(4)提取所有正樣本的Hog特徵;
(5)提取所有負樣本的Hog特徵;
(6)對所有正負樣本賦予樣本標簽;例如,所有正樣本標記為1,所有負樣本標記為0;
(7)將正負樣本的Hog特徵,正負樣本的標簽,都輸入到SVM中進行訓練;Dalal在論文中考慮到速度問題,建議採用線性SVM進行訓練。這里,不妨也採用線性SVM;
(8)SVM訓練之後,將結果保存為文本文件。
(9)線性SVM進行訓練之後得到的文本文件裡面,有一個數組,叫做support vector,還有一個數組,叫做alpha,有一個浮點數,叫做rho;將alpha矩陣同support vector相乘,注意,alpha*supportVector,將得到一個列向量。之後,再該列向量的最後添加一個元素rho。如此,變得到了一個分類器,利用該分類器,直接替換opencv中行人檢測默認的那個分類器(cv::HOGDescriptor::setSVMDetector()),就可以利用你的訓練樣本訓練出來的分類器進行行人檢測了。
Ⅶ opencv 2.4.9 hog svm 在哪個 庫
OpenCV的全稱是:Open Source Computer Vision Library。OpenCV是一個基於(開源)發行的跨平台計算機視覺庫,可以運行在Linux、Windows和Mac OS操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了Python、Ruby、MATLAB等語言的介面,實現了圖像處理和計算機視覺方面的很多通用演算法。
現本教程,是在windows平台下使用visual studio2013和opencv2.4.9配置一個開發環境。
工具/原料
opencv2.4.9地址:https://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.4.9/opencv-2.4.9.exe/download
vs2013請自行網路
方法/步驟
安裝opencv2.4.9,解壓,請務必記住自己解壓的路徑。宜家以我自己的路徑為例D:\Program Files
配置環境變數
1、系統變數 Path:添加D:\Program Files\opencv\build\x86\vc12\bin
2、用戶變數:添加opencv變數,值D:\Program Files\opencv\build,添加PATH變數(有就不需要添加,但是值需要添加)值D:\Program Files\opencv\build\x86\vc12\bin
說明:不管你系統是32位還是64位,路徑目錄均選擇X86,因為編譯都是使用32位編譯;如果選用X64,則程序運行時候會出錯。
新建visual C項目
新建 visual C++項目,如下圖所示,項目選項注意:如下圖。
工程目錄的配置(Debug)
找到屬性管理器,如果找不到,請安裝下圖方法找到。雙擊Debug|Win32打開如下窗口,
設置如下:(下圖紅框項為設置項)
1、包含目錄:(VC++目錄)
D:\Program Files\opencv\build\include
D:\Program Files\opencv\build\include\opencv
D:\Program Files\opencv\build\include\opencv2
2、庫目錄:(VC++目錄)D:\Program Files\opencv\build\x86\vc12\lib
3、連接器->輸入->附加依賴項:
opencv_ml249d.lib
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_imgproc249d.lib
opencv_legacy249d.lib
opencv_objdetect249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_nonfree249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_videostab249d.lib
其實以上都是D:\Program Files\opencv\build\x86\vc12\lib下所有的lib文件,你會發現,有的後面帶上d,有的沒有d,這是因為Debug的就有d,Release則沒有d。
Ⅷ 深度學習比sift,spin image,HoG,RIFT,GLOH,Textons等傳統特徵提取好在哪
深度學習,提取特徵需要大的圖像庫(目前一般都百萬級了)。
傳統方法,提取特徵一幅圖像就可以。