HOG特徴から抽出されたヒストグラムのMatlab分析



Matlab Analysis Histograms Extracted From Hog Features



使用する matlab 自分の extractHOGFeatures() 関数抽出 特性、 256 * 256 の場合 cell_size = 8block_size = 2

その場合、機能の数は次のとおりです。 9 * block_size ^ 2 *(256 / 8-1)^ 2 = 34596、 描画コードは次のとおりです。



img = imread('fire.jpg')% replace the path to run, it is recommended that the image size is greater than 256*256, otherwise remove the next line of code img = img(1:256,1:256) %img = imrotate(img,122) imshow(img) [feature,vision] = extractHOGFeatures(double(img),'CellSize',[8 8],'BlockSize',[2 2]) f = feature figure imshow(img) hold on plot(vision)

次に、コマンドを使用してヒストグラムを描画します。 ヒストグラム ドロー 特徴。コマンドウィンドウで 入る ヒストグラム(特徴):

元の画像から描画された特徴ヒストグラム



今、関数を使用します 回転() 、画像を任意の角度で回転させます( 15 45 90135180 )。実行し、描画を続行します 特徴 ヒストグラム:

img = imread('fire.jpg') img = img(1:256,1:256) img1 = imrotate(img,15) img2 = imrotate(img,45) img3 = imrotate(img,90) img4 = imrotate(img,135) img5 = imrotate(img,180) [feature1,vision1] = extractHOGFeatures(double(img),'CellSize',[8 8],'BlockSize',[2 2]) subplot(231) histogram(feature1) title('Original image') [feature2,vision2] = extractHOGFeatures(double(img1),'CellSize',[8 8],'BlockSize',[2 2]) subplot(232) histogram(feature2) title('Rotate 15°') [feature3,vision3] = extractHOGFeatures(double(img2),'CellSize',[8 8],'BlockSize',[2 2]) subplot(233) histogram(feature3) title('Rotate 45°') [feature4,vision4] = extractHOGFeatures(double(img3),'CellSize',[8 8],'BlockSize',[2 2]) subplot(234) histogram(feature4) title('Rotate 90°') [feature5,vision5] = extractHOGFeatures(double(img4),'CellSize',[8 8],'BlockSize',[2 2]) subplot(235) histogram(feature5) title('Rotate 135°') [feature6,vision6] = extractHOGFeatures(double(img5),'CellSize',[8 8],'BlockSize',[2 2]) subplot(236) histogram(feature6) title('Rotate 180°')

ヒストグラム

上の写真からわかるように、回転後 特徴の傾向は基本的に同じですが、振幅が変化し、エンベロープの傾向は依然として存在します。これは、HOG機能が回転に対する優れた堅牢性を維持できることを示しています。