我想要計算視頻的密集特徵軌跡,如https://hal.inria.fr/hal-00725627/document。我想使用OpenCV的生豬的描述是這樣的:OpenCV豬功能解釋
winSize = (32,32)
blockSize = (32,32)
blockStride = (2,2)
cellSize = (2,2)
nbins = 9
hog = cv2.HOGDescriptor(winSize,blockSize,blockStride,cellSize,nbins)
hist = hog.compute(img)
然而,這返回大小的一個非常大的特徵向量:(160563456,1)。
什麼是窗口? (winSize) 什麼是塊? 什麼是細胞? 該文檔對解釋每個參數是什麼並不是特別有幫助。
從http://www.learnopencv.com/histogram-of-oriented-gradients/ 我看到要計算HOG,我們爲圖像修補程序的每個單元創建一個直方圖,然後在該修補程序上進行歸一化。
我想要的是4個9bin直方圖我的圖像的每一個(32,32),膏藥,它應當從這個補丁(16,16)的細胞的直方圖來計算。所以我期望一個最終的大小爲40716的宏(480,640)圖像。
(((32 * 32)/(16 * 16))* 9)*(((480-16 * 640-16)/(32 * 32)* 4))= 40716
( (PatchSize /細胞大小)* numBins)* numPatches = hogSize
我還看到有人在做這樣的東西:
winStride = (8,8)
padding = (8,8)
locations = ((10,20),)
hist = hog.compute(image,winStride,padding,locations)
不過,我不明白的位置參數做,因爲我也不是什麼希望僅在一個位置計算HOG特徵,但是需要計算我的圖像的所有(32,32)塊。
文檔和鏈接的文檔解釋窗口,塊和細胞。你爲什麼問這是什麼?這些解釋不清楚的是什麼? – Piglet