色彩直方圖匹配
色彩直方圖匹配(color histogram matching)藉由比較影像的色彩分布來辨識或檢索影像,忽略顏色在哪裡,只保留每種顏色有多少。直覺是:成熟的番茄不論確切形狀或位置大多是紅色,森林場景以綠色與棕色為主,某品牌的包裝有其標誌性的色盤。因此你用一個色彩直方圖摘要一張影像——統計有多少像素落入每個顏色桶——並在兩張影像的直方圖相似時判定它們相似。這就是 Swain 與 Ballard 的色彩索引(color indexing,1991),是最早可行的以內容為基礎的影像檢索方法之一。
精確地說,你選一個色彩空間(常用色相-飽和度-明度,或像 CIELab 這類感知均勻的空間,而非原始 RGB,使比較更符合人類感知、對光照也更穩健),把每個通道量化成少數幾個格子,並把像素計入所得的 3D 直方圖,通常正規化使其總和為一(成為對影像大小不變的分布)。接著用一種相似度或距離量測來比較兩個直方圖。經典的是直方圖交集(histogram intersection):對每個格子取兩者計數中較小者並加總,這巧妙地量測兩張影像共有多少顏色,且對背景像素與部分遮擋穩健。其他常見量測有卡方距離、Bhattacharyya 係數,以及推土機距離(earth mover's distance,它不像逐格量測,會考量相鄰格子是相近顏色)。
一個強大的搭配技術是直方圖反投影(histogram back-projection):給定一個目標物件的色彩直方圖,你把新影像的每個像素,換成從直方圖讀出的「它的顏色屬於目標」的機率。這產生一張似然圖,點亮符合目標顏色的區域——這是簡單的以顏色為基礎的物件定位之根本,也是 CamShift/mean-shift 追蹤器內部的引擎。色彩直方圖快速、天生對旋轉、平移與適度的尺度與姿態變化不變,且不需訓練。它的弱點正是它的假設:它捨棄所有空間結構(一顆紅球與散落的紅色彩紙看起來相同),且除非小心正規化,否則對光照顏色與白平衡敏感。它至今仍在檢索、追蹤以及作為便宜的前置過濾上有用,並曾是詞袋流程的一塊積木;現代系統則改為比較學得的深度嵌入(CLIP、影像檢索網路),這些捕捉的是內容,而非僅僅是顏色。
要追蹤一顆紅球,先從第一幀建立它的色相直方圖,再把該直方圖反投影到每個新幀以得到機率圖,然後跑 mean-shift 追隨峰值。即使球旋轉、縮放,追蹤器仍鎖定,因為它依據的是色彩分布,而非形狀。