![]() |
OpenCV 4.12.0
開源計算機視覺
|
HOG(定向梯度直方圖)描述符和物件檢測器的實現。更多...
#include <opencv2/objdetect.hpp>
公共型別 | |
| 列舉 | { DEFAULT_NLEVELS = 64 } |
| 列舉 | 描述符儲存格式 { 按列描述符格式 , 按行描述符格式 } |
| 列舉 | 直方圖歸一化型別 { L2Hys = 0 } |
公共成員函式 | |
| HOGDescriptor () | |
| 使用預設引數建立 HOG 描述符和檢測器。 | |
| HOGDescriptor (const HOGDescriptor &d) | |
| HOGDescriptor (const String &filename) | |
| HOGDescriptor (Size _winSize, Size _blockSize, Size _blockStride, Size _cellSize, int _nbins, int _derivAperture=1, double _winSigma=-1, HOGDescriptor::HistogramNormType _histogramNormType=HOGDescriptor::L2Hys, double _L2HysThreshold=0.2, bool _gammaCorrection=false, int _nlevels=HOGDescriptor::DEFAULT_NLEVELS, bool _signedGradient=false) | |
| virtual | ~HOGDescriptor () |
| 預設解構函式。 | |
| bool | checkDetectorSize () const |
| 檢查檢測器大小是否等於描述符大小。 | |
| virtual void | compute (InputArray img, std::vector< float > &descriptors, Size winStride=Size(), Size padding=Size(), const std::vector< Point > &locations=std::vector< Point >()) const |
| 計算給定影像的 HOG 描述符。 | |
| virtual void | computeGradient (InputArray img, InputOutputArray grad, InputOutputArray angleOfs, Size paddingTL=Size(), Size paddingBR=Size()) const |
| 計算梯度和量化梯度方向。 | |
| virtual void | copyTo (HOGDescriptor &c) const |
| 克隆 HOGDescriptor | |
| virtual void | detect (InputArray img, std::vector< Point > &foundLocations, double hitThreshold=0, Size winStride=Size(), Size padding=Size(), const std::vector< Point > &searchLocations=std::vector< Point >()) const |
| 執行無多尺度視窗的物件檢測。 | |
| virtual void | detect (InputArray img, std::vector< Point > &foundLocations, std::vector< double > &weights, double hitThreshold=0, Size winStride=Size(), Size padding=Size(), const std::vector< Point > &searchLocations=std::vector< Point >()) const |
| 執行無多尺度視窗的物件檢測。 | |
| virtual void | detectMultiScale (InputArray img, std::vector< Rect > &foundLocations, double hitThreshold=0, Size winStride=Size(), Size padding=Size(), double scale=1.05, double groupThreshold=2.0, bool useMeanshiftGrouping=false) const |
| 檢測輸入影像中不同大小的物件。檢測到的物件以矩形列表的形式返回。 | |
| virtual void | detectMultiScale (InputArray img, std::vector< Rect > &foundLocations, std::vector< double > &foundWeights, double hitThreshold=0, Size winStride=Size(), Size padding=Size(), double scale=1.05, double groupThreshold=2.0, bool useMeanshiftGrouping=false) const |
| 檢測輸入影像中不同大小的物件。檢測到的物件以矩形列表的形式返回。 | |
| virtual void | detectMultiScaleROI (InputArray img, std::vector< cv::Rect > &foundLocations, std::vector< DetectionROI > &locations, double hitThreshold=0, int groupThreshold=0) const |
| 評估指定的 ROI,併為多個尺度中的每個位置返回置信度值。 | |
| virtual void | detectROI (InputArray img, const std::vector< cv::Point > &locations, std::vector< cv::Point > &foundLocations, std::vector< double > &confidences, double hitThreshold=0, cv::Size winStride=Size(), cv::Size padding=Size()) const |
| 評估指定的 ROI,併為每個位置返回置信度值。 | |
| size_t | getDescriptorSize () const |
| 返回分類所需的係數數量。 | |
| double | getWinSigma () const |
| 返回 winSigma 值。 | |
| void | groupRectangles (std::vector< cv::Rect > &rectList, std::vector< double > &weights, int groupThreshold, double eps) const |
| 對物件候選矩形進行分組。 | |
| virtual bool | load (const String &filename, const String &objname=String()) |
| 從檔案中載入 HOGDescriptor 引數和線性 SVM 分類器的係數 | |
| virtual bool | read (FileNode &fn) |
| 從檔案節點讀取 HOGDescriptor 引數和線性 SVM 分類器的係數。 | |
| virtual void | save (const String &filename, const String &objname=String()) const |
| 將 HOGDescriptor 引數和線性 SVM 分類器的係數儲存到檔案中 | |
| virtual void | setSVMDetector (InputArray svmdetector) |
| 設定線性 SVM 分類器的係數。 | |
| virtual void | write (FileStorage &fs, const String &objname) const |
| 將 HOGDescriptor 引數和線性 SVM 分類器的係數儲存到檔案儲存中。 | |
靜態公共成員函式 | |
| static std::vector< float > | getDaimlerPeopleDetector () |
| 返回用於行人檢測(48x96 視窗)訓練的分類器係數。 | |
| static std::vector< float > | getDefaultPeopleDetector () |
| 返回用於行人檢測(64x128 視窗)訓練的分類器係數。 | |
公共屬性 | |
| Size | blockSize |
| 畫素塊大小。與單元格大小對齊。預設值為 Size(16,16)。 | |
| Size | blockStride |
| 塊步幅。它必須是單元格大小的倍數。預設值為 Size(8,8)。 | |
| Size | cellSize |
| 單元格大小。預設值為 Size(8,8)。 | |
| int | derivAperture |
| 未註明 | |
| float | free_coef |
| 未註明 | |
| bool | gammaCorrection |
| 指定是否需要伽馬校正預處理的標誌。 | |
| HOGDescriptor::HistogramNormType | histogramNormType |
| histogramNormType | |
| double | L2HysThreshold |
| L2-Hys 歸一化方法收縮。 | |
| int | nbins |
| 用於計算梯度直方圖的 bin 數量。預設值為 9。 | |
| int | nlevels |
| 檢測視窗增加的最大數量。預設值為 64。 | |
| UMat | oclSvmDetector |
| 啟用 OpenCL 時使用的線性 SVM 分類器係數 | |
| bool | signedGradient |
| 指示是否使用有符號梯度。 | |
| std::vector< float > | svmDetector |
| 線性 SVM 分類器係數。 | |
| double | winSigma |
| 高斯平滑視窗引數。 | |
| Size | winSize |
| 檢測視窗大小。與塊大小和塊步幅對齊。預設值為 Size(64,128)。 | |
HOG(定向梯度直方圖)描述符和物件檢測器的實現。
Navneet Dalal 和 Bill Triggs [65] 引入的 HOG 描述符演算法。
有用連結
https://hal.inria.fr/inria-00548512/document/
https://zh.wikipedia.org/wiki/方向梯度直方圖
https://software.intel.com/en-us/ipp-dev-reference-histogram-of-oriented-gradients-hog-descriptor
http://www.learnopencv.com/histogram-of-oriented-gradients
http://www.learnopencv.com/handwritten-digits-classification-an-opencv-c-python-tutorial
|
inline |
使用預設引數建立 HOG 描述符和檢測器。
等同於 HOGDescriptor(Size(64,128), Size(16,16), Size(8,8), Size(8,8), 9 )
|
inline |
這是一個過載成員函式,為方便起見而提供。它與上述函式的區別僅在於其接受的引數。
| _winSize | 設定 winSize 為給定值。 |
| _blockSize | 設定 blockSize 為給定值。 |
| _blockStride | 設定 blockStride 為給定值。 |
| _cellSize | 設定 cellSize 為給定值。 |
| _nbins | 設定 nbins 為給定值。 |
| _derivAperture | 設定 derivAperture 為給定值。 |
| _winSigma | 設定 winSigma 為給定值。 |
| _histogramNormType | 設定 histogramNormType 為給定值。 |
| _L2HysThreshold | 設定 L2HysThreshold 為給定值。 |
| _gammaCorrection | 設定 gammaCorrection 為給定值。 |
| _nlevels | 設定 nlevels 為給定值。 |
| _signedGradient | 設定 signedGradient 為給定值。 |
|
inline |
這是一個過載成員函式,為方便起見而提供。它與上述函式的區別僅在於其接受的引數。
建立 HOG 描述符和檢測器,並從檔案中載入 HOGDescriptor 引數和線性 SVM 分類器的係數。
| filename | 包含 HOGDescriptor 屬性和線性 SVM 分類器係數的檔名。 |
|
inline |
|
inlinevirtual |
預設解構函式。
| bool cv::HOGDescriptor::checkDetectorSize | ( | ) | const |
檢查檢測器大小是否等於描述符大小。
|
virtual |
計算給定影像的 HOG 描述符。
| img | CV_8U 型別的矩陣,包含將計算 HOG 特徵的影像。 |
| descriptors | CV_32F 型別的矩陣 |
| winStride | 視窗步長。它必須是塊步長的倍數。 |
| padding | 填充 |
| locations | 點向量 |
|
virtual |
計算梯度和量化梯度方向。
| img | 矩陣包含要計算的影像 |
| grad | CV_32FC2 型別的矩陣,包含計算出的梯度 |
| angleOfs | CV_8UC2 型別的矩陣,包含量化梯度方向 |
| paddingTL | 左上角填充 |
| paddingBR | 右下角填充 |
|
virtual |
| c | 克隆的 HOGDescriptor |
|
virtual |
執行無多尺度視窗的物件檢測。
| img | CV_8U 或 CV_8UC3 型別的矩陣,包含檢測到物件的影像。 |
| foundLocations | 點向量,其中每個點包含檢測到的物件邊界的左上角點。 |
| hitThreshold | 特徵與 SVM 分類平面之間距離的閾值。通常為 0,應在檢測器係數中指定(作為最後一個自由係數)。但如果省略自由係數(允許),您可以在此處手動指定。 |
| winStride | 視窗步長。它必須是塊步長的倍數。 |
| padding | 填充 |
| searchLocations | 包含要搜尋的位置的點向量。 |
|
virtual |
執行無多尺度視窗的物件檢測。
| img | CV_8U 或 CV_8UC3 型別的矩陣,包含檢測到物件的影像。 |
| foundLocations | 點向量,其中每個點包含檢測到的物件邊界的左上角點。 |
| weights | 將包含每個檢測到的物件的置信度值的向量。 |
| hitThreshold | 特徵與 SVM 分類平面之間距離的閾值。通常為 0,應在檢測器係數中指定(作為最後一個自由係數)。但如果省略自由係數(允許),您可以在此處手動指定。 |
| winStride | 視窗步長。它必須是塊步長的倍數。 |
| padding | 填充 |
| searchLocations | 點向量,包含要評估的請求位置集。 |
|
virtual |
檢測輸入影像中不同大小的物件。檢測到的物件以矩形列表的形式返回。
| img | CV_8U 或 CV_8UC3 型別的矩陣,包含檢測到物件的影像。 |
| foundLocations | 矩形向量,每個矩形包含檢測到的物件。 |
| hitThreshold | 特徵與 SVM 分類平面之間距離的閾值。通常為 0,應在檢測器係數中指定(作為最後一個自由係數)。但如果省略自由係數(允許),您可以在此處手動指定。 |
| winStride | 視窗步長。它必須是塊步長的倍數。 |
| padding | 填充 |
| scale | 檢測視窗增加的係數。 |
| groupThreshold | 調節相似度閾值的係數。檢測到時,某些物件可能被許多矩形覆蓋。0 表示不執行分組。 |
| useMeanshiftGrouping | 指示分組演算法 |
|
virtual |
檢測輸入影像中不同大小的物件。檢測到的物件以矩形列表的形式返回。
| img | CV_8U 或 CV_8UC3 型別的矩陣,包含檢測到物件的影像。 |
| foundLocations | 矩形向量,每個矩形包含檢測到的物件。 |
| foundWeights | 將包含每個檢測到的物件的置信度值的向量。 |
| hitThreshold | 特徵與 SVM 分類平面之間距離的閾值。通常為 0,應在檢測器係數中指定(作為最後一個自由係數)。但如果省略自由係數(允許),您可以在此處手動指定。 |
| winStride | 視窗步長。它必須是塊步長的倍數。 |
| padding | 填充 |
| scale | 檢測視窗增加的係數。 |
| groupThreshold | 調節相似度閾值的係數。檢測到時,某些物件可能被許多矩形覆蓋。0 表示不執行分組。 |
| useMeanshiftGrouping | 指示分組演算法 |
|
virtual |
評估指定的 ROI,併為多個尺度中的每個位置返回置信度值。
| img | CV_8U 或 CV_8UC3 型別的矩陣,包含檢測到物件的影像。 |
| foundLocations | 矩形向量,每個矩形包含檢測到的物件。 |
| locations | DetectionROI 的向量 |
| hitThreshold | 特徵與 SVM 分類平面之間距離的閾值。通常為 0,應在檢測器係數中指定(作為最後一個自由係數)。但如果省略自由係數(允許),您可以在此處手動指定。 |
| groupThreshold | 矩形最小可能數量減 1。該閾值用於矩形組以保留它。 |
|
virtual |
評估指定的 ROI,併為每個位置返回置信度值。
| img | CV_8U 或 CV_8UC3 型別的矩陣,包含檢測到物件的影像。 |
| locations | 點向量 |
| foundLocations | 點向量,其中每個點是檢測到的物件的左上角點。 |
| confidences | confidences |
| hitThreshold | 特徵與 SVM 分類平面之間距離的閾值。通常為 0,應在檢測器係數中指定(作為最後一個自由係數)。但如果省略自由係數(允許),您可以在此處手動指定 |
| winStride | winStride |
| padding | padding |
|
static |
返回用於行人檢測(48x96 視窗)訓練的分類器係數。
|
static |
返回用於行人檢測(64x128 視窗)訓練的分類器係數。
| size_t cv::HOGDescriptor::getDescriptorSize | ( | ) | const |
返回分類所需的係數數量。
| double cv::HOGDescriptor::getWinSigma | ( | ) | const |
返回 winSigma 值。
| void cv::HOGDescriptor::groupRectangles | ( | std::vector< cv::Rect > & | rectList, |
| std::vector< double > & | weights, | ||
| int | groupThreshold, | ||
| double | eps ) const |
對物件候選矩形進行分組。
| rectList | 輸入/輸出矩形向量。輸出向量包含保留和分組的矩形。(Python 列表不會就地修改。) |
| weights | 輸入/輸出矩形權重向量。輸出向量包含保留和分組的矩形權重。(Python 列表不會就地修改。) |
| groupThreshold | 矩形最小可能數量減 1。該閾值用於矩形組以保留它。 |
| eps | 合併矩形組時矩形邊之間的相對差異。 |
|
virtual |
從檔案中載入 HOGDescriptor 引數和線性 SVM 分類器的係數
| filename | 要讀取的檔名。 |
| objname | 要讀取的節點的可選名稱(如果為空,將使用第一個頂級節點)。 |
|
virtual |
從檔案節點讀取 HOGDescriptor 引數和線性 SVM 分類器的係數。
| fn | 檔案節點 |
|
virtual |
設定線性 SVM 分類器的係數。
| svmdetector | 線性 SVM 分類器係數。 |
|
virtual |
將 HOGDescriptor 引數和線性 SVM 分類器的係數儲存到檔案儲存中。
| fs | 檔案儲存 |
| objname | 物件名稱 |
| Size cv::HOGDescriptor::blockSize |
畫素塊大小。與單元格大小對齊。預設值為 Size(16,16)。
| int cv::HOGDescriptor::derivAperture |
未註明
| float cv::HOGDescriptor::free_coef |
未註明
| bool cv::HOGDescriptor::gammaCorrection |
指定是否需要伽馬校正預處理的標誌。
| HOGDescriptor::HistogramNormType cv::HOGDescriptor::histogramNormType |
histogramNormType
| double cv::HOGDescriptor::L2HysThreshold |
L2-Hys 歸一化方法收縮。
| int cv::HOGDescriptor::nbins |
用於計算梯度直方圖的 bin 數量。預設值為 9。
| int cv::HOGDescriptor::nlevels |
檢測視窗增加的最大數量。預設值為 64。
| UMat cv::HOGDescriptor::oclSvmDetector |
啟用 OpenCL 時使用的線性 SVM 分類器係數
| bool cv::HOGDescriptor::signedGradient |
指示是否使用有符號梯度。
| std::vector<float> cv::HOGDescriptor::svmDetector |
線性 SVM 分類器係數。
| double cv::HOGDescriptor::winSigma |
高斯平滑視窗引數。
| Size cv::HOGDescriptor::winSize |
檢測視窗大小。與塊大小和塊步幅對齊。預設值為 Size(64,128)。