深度學習中的Heatmap視覺化
阿新 • • 發佈:2019-01-11
深度學習中的Heatmap視覺化
注:本部落格提到的Heatmap指在目標檢測、人臉檢測或關鍵點檢測等任務中經常出現的熱力圖,圖上某點的值為[0,1]區間內的小數,通常表示此處有目標(或者人臉)的概率。
實際研究中Heatmap可能是某個網路得到的任意一個概率分佈圖,這裡我們就以一個概率值滿足二維高斯分佈的Heatmap作為例子。
製作Heatmap
使用cv2.getGaussianKernel(size,sigma)可以生成一個一維的高斯核kernel,
二維的高斯核可以用kernel與kenel的轉置求矩陣積得到。
import numpy as np
import cv2
kernel=cv2.getGaussianKernel(256,50)
kernel=kernel*kernel.T
#scales all the values and make the center vaule of kernel to be 1.0
kernel=kernel/np.max(kernel)
Heatmap視覺化
注意將矩陣的dtype轉為uint8,不然opencv將無法顯示圖片。
cv2.applyColorMap()函式依據第二個引數可以將灰度圖轉化為不同風格的RGB圖,這裡我們選擇cv2.COLORMAP_HOT。
heatmap=kernel*255
heatmap=heatmap.astype(np.uint8)
heatmap=cv2.applyColorMap(heatmap, cv2.COLORMAP_HOT)
cv2.imshow('heatmap',heatmap)
cv2.waitKey(0)
效果: