有幾個嘗試使用SIMD指令來優化HOG描述符的計算:OpenCV,Dlib和Simd。它們都使用標代碼導致幅度增加HOG直方圖:使用SIMD進行HOG優化
float histogram[height/8][width/8][18];
float ky[height], kx[width];
int idx[size];
float val[size];
for(size_t i = 0; i < size; ++i)
{
histogram[y/8][x/8][idx[i]] += val[i]*ky[y]*kx[x];
histogram[y/8][x/8 + 1][idx[i]] += val[i]*ky[y]*kx[x + 1];
histogram[y/8 + 1][x/8][idx[i]] += val[i]*ky[y + 1]*kx[x];
histogram[y/8 + 1][x/8 + 1][idx[i]] += val[i]*ky[y + 1]*kx[x + 1];
}
那裏size
價值取決於從執行,但一般的意義是一樣的。
我知道histogram calculation with using of SIMD的問題沒有一個簡單而有效的解決方案。但在這種情況下,我們有小的直方圖(18)。它可以幫助進行SIMD優化嗎?
您可能會發現[本文](http://ieeexplore.ieee.org/document/4429976/)有用 – Martin