HC(Histogram-based Contrast) 基於直方圖對比度的顯著性
來源於: 2011, Global contrast based salient region detection, ChengSaliencyCVPR2011.pdf (mmcheng.net)
詳見作者主頁: Global contrast based salient region detection – 程明明個人主頁 (mmcheng.net)
顯著性定義
影像中畫素的顯著性值可以它和影像中其它畫素的對比度來定義, 具體公式為:
其中, \(c_l\) 為畫素 \(I_k\) 的顏色, n為影像中所有顏色的總數, \(f_j\) 為 \(c_j\) 在影像I中出現的概率, \(D(c_l, c_j)\) 為顏色在Lab空間的距離.
使用上述公式就可以計算每個畫素的顯著性, 從而可以得到影像中目標的顯著性.
但上述公式存在一個問題: 對於RGB顏色空間, 8bit資料的顏色總數為 \(255^3=16581375\), 這樣會使得公式計算量大.
具體實現
優化加速
為了解決計算量大的問題, 作者對顏色進行了量化來減少計算量, 如將顏色量化到12個不同的值(在RGB顏色空間量化), 這樣顏色總數為 \(12^3=1728\). 同時丟棄部分頻率較小的顏色, 用相近的顏色代替(在Lab顏色空間計算距離).
最後, 對量化後的影像直方圖進行操作, 避免對整幅影像進行處理, 從而提高效率.
顏色空間平滑
量化後雖然提高了效率, 但會帶來負面影響, 因為相似的顏色會被量化為不同值, 這樣相似的顏色會得到不同的顯著性值. 為解決這個問題, 作者使用了顏色空間平滑, 對計算出來的顯著性值進行平滑: 每個顏色的顯著性值被替換為相似顏色的顯著性值的加權平均, 具體公式為:
其中, \(T=\sum^{m}_{i=1}D(c,c_i)\) 為顏色 c 和它最相似的 m 個顏色的距離之和.
實現效果
處理過程及效果如下所示:
從上可以看到, 基本實現了文章中的效果, 但與文章給出的效果還是有些出入的.
關鍵引數
演算法中主要有3個引數: 量化引數, 平滑引數, 保留顏色比例, 下面分別說明.
量化引數
量化引數: 將每個顏色通道進行量化, 從而減少顏色數量, 量化引數為Q, 則量化後顏色的總數為 \(Q^3+Q^2+Q+1\), 對於量化引數, 有如下性質:
- Q越大, 量化後顏色數量越多, 演算法執行越慢;
- Q越小, 量化後顏色數量越少, 演算法執行越快;
- Q越大, 得到的顯著性影像層次越豐富(如下圖所示中的樹葉), 但如果Q太大, 如下圖中Q>64時, 目標顯著性與背景的顯著性區別不大(如下圖所示中的人與天空), 則不能突出目標;
- Q越小, 得到的顯著性影像越簡單, 但如果Q太小, 如下圖中Q<12時, 量化後顏色太少, 目標與背景顏色顯著性區別不大, 不能突出目標;
- 對下圖中測試影像, Q的取值在[12,32]較合適;
圖中, 第一行分別為原始影像, 顏色量化後影像, 顯著性影像, 第二行為對應的顏色顯著性.
平滑引數
平滑引數: 取值[0, 1], 為比例控制引數R, 控制用於顏色平滑的數量(保留的顏色數量*R), 用於消除顏色量化帶來的負面影響(相似顏色量化成不同的值得到不同的顯著性), 對於平滑控制引數, 有如下性質:
- R越大, 目標和背景的顏色顯著性越均勻, 目標和背景越容易區分, 但R>0.5時, 目標和背景的顏色顯著性越來越接近, 顯著性影像中, 目標與背景越難區分, 如下圖中所示;
- R越小, 顏色顯著性越分散, 目標的顯著性越分散(可能會被劃分為多個目標);
- 對於下圖中測試影像, R<0.5比較合適;
圖中, 第一行分別為原始影像, 顏色量化後影像, 顯著性影像, 第二行為對應的顏色顯著性.
保留顏色比例引數
保留顏色比例: 取值[0,1], 為保留顏色比例引數C, 用於控制保留下來的顏色數量(量化後實際出現的顏色數量*C), 用於消除顏色噪聲帶來的影響, 對於保留顏色比例引數, 有如下性質:
- C越大, 保留顏色越多, 目標顯著性越完整;
- C越小, 保留顏色越少, 目標顏色保留的越少, 目標顯著性越低;
- 對於下圖中測試影像, C=0.95比較合適;
圖中, 第一行分別為原始影像, 顏色量化後影像, 顯著性影像, 第二行為對應的顏色顯著性.
核心原理說明
對於文章中的顯著性, 根據定義及公式可知, 有2個核心要素:
- 一是目標顏色出現的數量, 因而目標不能太大, 太大了就會成為背景, 如下圖所示, 目標也不能太小, 否則就不是目標;
- 二是目標顏色與其他顏色區別要大, 否則就不會被當成目標, 顯著性則會很低, 如下圖所示;