图像处理理论(四)——HOG, Haar, ISP
http://antkillerfarm.github.io
HOG
Histogram of oriented gradients是一種用于物體檢測的算子。
HOG的計算步驟,如上圖所示:
1.首先將圖像均勻的分為若干個區域。這樣的區域一般叫做Bin或Cell。
2.計算一個Cell中每個像素的梯度值。
3.將梯度值分為若干個區間,統計一個Cell中落在該區間的像素的個數,以得到直方圖。
將整幅圖所有Cell的HOG交給SVM或者AdaBoost之類的分類器,以獲得待識別物體的HOG特征。
參考:
https://mp.weixin.qq.com/s/1l1OU81-BDlvyLZo6eM-4g
方向梯度直方圖
https://buptldy.github.io/2016/03/31/2016-03-31-HOG%20Note/
《Histograms of Oriented Gradients for Human Detection》Note
Haar
Haar特征本身并不復雜,就是用圖中黑色矩形區域內所有像素值的和減去白色矩形區域內所有像素值的和,得到的值稱為Haar特征值。
同樣的,將整幅圖所有Cell的Haar特征值交給SVM或者AdaBoost之類的分類器,就得到了待識別物體的Haar特征。
從上面的描述可以看出:早期的算子主要從信號處理的角度出發,而HOG和Haar開始考慮使用統計學方法提取有效特征。這也是90年代后期,統計學被引入CV界的直接結果。
Alfréd Haar,1885~1933,匈牙利數學家。哥廷根大學博士,導師是David Hilbert。Franz Joseph University教授。
Franz Joseph University是一所現在已經不存在的大學,有“小哥廷根”的稱號,因為這里的數學系有大量的哥廷根大學畢業生執教。大學所在地Kolozsvár,在二戰前后,一會兒歸羅馬尼亞,一會歸匈牙利。當1945年,羅馬尼亞最終接管該地之后,將學校的校舍分給了一所羅馬尼亞大學,而將學校教師遷往別處,另建了一所大學。
吐槽一下,羅馬尼亞主動投靠元首,卻弄的割地予人,實在是太諷刺了。
PS:記得10年前在學校讀書的時候,CV還從屬于信號處理專業。但以今日的角度來看,恐怕從屬于CS專業,似乎更合適一點。從招聘信息看,現在的CV工作,已經很少提及信號處理的能力了。
參考:
http://www.cnblogs.com/ello/archive/2012/04/28/2475419.html
淺析人臉檢測之Haar分類器方法
https://mp.weixin.qq.com/s/g-F-D5PC75BjbaRBmifnZw
人臉Haar特征與快速計算神器:積分圖
ISP
ISP(Image Signal Processor),圖像信號處理器,是運用在相機或者具備拍攝功能設備上的一種芯片。在相機成像的整個環節中,它負責接收感光元件(Sensor)的原始信號數據,可以理解為整個相機拍照、錄像的第一步處理流程,對圖像質量起著非常重要的作用。
ISP的一般流程如下所示:
下文以如下示例圖片的處理流程為例,對整個流程做一個簡單的概述。
圖像sensor
相機的圖像sensor,一般可分為兩種,如下圖所示:
Foveon X3:Foveon公司的這種sensor(上圖左側)擁有三個感光層,可在不同的深度擷取RGB色光。
Foveon X3雖然色彩不失真,但制作工藝比較復雜,目前只用在少數(10款左右)高端相機中。
Bayer Array:絕大多數相機使用的是上圖右側所示的sensor。這種sensor由兩層材料組成。下層是感光層,上層是濾光片。上層中RGB三色濾光片的排列方式被稱為Bayer Array。
Bryce E. Bayer,1929~2012,美國科學家。 University of Rochester碩士。Kodak公司研究員。
一個Bayer Array的最小單元包含4個像素點(兩個綠色濾光片+一個紅色濾光片+1個藍色濾光片)。兩個綠色點呈對角分布,紅色點和藍色點占據剩余的空間。
綠色位于可見光頻譜的中段,也是最常見的顏色,所以采樣要多一些。
除了Bayer Array之外,還有Fuji Array(主要用于Fuji相機):
RAW Data
圖像sensor數字采樣的結果,就是所謂的RAW Data。
RAW Data的取值范圍取決于sensor的處理器位寬。比如12bit的范圍就是0~4095。
考慮到噪點(由熱/電噪聲產生的光點)的存在,一般會給取值范圍設一個>0的下限以過濾噪點,這就是Black Level。這里令Black Level=128,則取值范圍為128~4095。
由于實際場景的光強度范圍通常只占所有光強可見范圍的很小一段,因此,RAW Data直接看起來就像是一塊幾乎純色的圖片。
比如下圖所示的RAW Data,由于取值主要集中于低值區間,因此看起來就是黑乎乎的一片,什么也看不出來。
Black Level Compensation
為了增加圖片的對比度,我們可將該取值范圍映射到整個區間。這里一般采用線性變換。
這個過程被稱為Black Level Compensation。效果如上圖所示,我們開始可以看清一些東西了。
Green Balance
由于Bayer Array的關系,每個點的光強都只是實際光強的一部分。由于接收的綠光較多,通常以綠光光強為基準,對紅藍光強進行修正。這個過程就是Green Balance。
理論上綠光強度應是紅藍光強的兩倍,但由于各相機濾光片的性能不同,實際參數略有差異。比如上圖相機的RGB修正參數為:[2.648438, 1.000000, 1.484375]
修正效果如下圖所示:
Bad Pixel Correction
sensor上可能有壞點存在(如上圖中的白點),可以用中值濾波去除之。(參見《圖像處理理論(二)》)
Black Level Compensation、Green Balance和Bad Pixel Correction,一般統稱為Raw Data Process。這些功能現在通常由圖像sensor直接提供,一般不在ISP的處理范疇。
Demosaic
由于RAW Data中的每個像素點只包含一種顏色,因此若要還原成彩色圖片,就需要想辦法補齊每個像素點缺失的色彩值。這個過程叫做Demosaic。
Demosaic的算法一般如下圖所示:
簡單來說就是各種插值算法。
Demosaic處理后的圖片才是真正的彩色圖片,如下圖所示:
AWB(Auto White Balance) & Color Correction
白平衡的基本原理是在任意環境下,把白色物體還原成白色物體,也就是通過找到圖像中的白塊,然后調整R/G/B的比例。
AWB算法通常包括的步驟如下:
(1)色溫統計:根據圖像統計出色溫;
(2)計算通道增益:計算出R和B通道的增益;
(3)進行偏色的矯正:根據給出的增益,算出偏色圖像的矯正。
由于色溫這個東西并不好測量,學界提出的各種模型也各有其局限,因此業界通常采用如下的簡易算法實現AWB:
K=Raver+Gaver+Baver3K=Raver+Gaver+Baver3
Kr=K/RaverKr=K/Raver
Kg=K/GaverKg=K/Gaver
Kb=K/BaverKb=K/Baver
Rnew=R?KrRnew=R?Kr
Gnew=G?KgGnew=G?Kg
Bnew=B?KbBnew=B?Kb
由于人類眼睛可見光的頻譜響應度和半導體傳感器頻譜響應度之間存在差別,還有透鏡等的影響,得到的RGB值顏色會存在偏差,因此必須對顏色進行校正。
經過AWB和Color Correction后的效果如下所示:
Gamma Correction
人眼對外界光源的感光值與輸入光強不是呈線性關系的,而是呈指數型關系的。在低照度下,人眼更容易分辨出亮度的變化,隨著照度的增加,人眼不易分辨出亮度的變化。而攝像機感光與輸入光強呈線性關系。如下圖所示:
為方便人眼辨識圖像,需要將攝像機采集的圖像進行gamma校正。修正后的效果如下:
參考:
http://blog.163.com/hong.lg0518@126/blog/static/18907460200972711556304/
伽馬校正(Gamma Correction)
http://www.cnblogs.com/pzxbc/archive/2011/12/26/2302572.html
Gamma矯正(Gamma correction)
http://blog.csdn.net/lichengyu/article/details/8457425
Gamma校正及其OpenCV實現
Denoise & Sharpness
Denoise是指去除噪聲,一般使用低通濾波器即可。
Sharpness是對圖像邊緣進行銳化。
Denoise & Sharpness或者后續更復雜的處理,都屬于圖像增強的范疇了。這里功能的多少主要取決于ISP的性能,并不是每個ISP都有。
參考:
http://www.cnblogs.com/agllero/p/4489689.html
Image Signal Processor
http://blog.csdn.net/yapingmcu/article/details/9215747
camera isp(Image Signal Processor)
http://blog.csdn.net/weijory/article/details/53306545
ISP算法概述
http://www.cnblogs.com/whw19818/
一個ISP的blog
https://github.com/codeauroraforum/gtec-demo-framework/tree/master/DemoApps/OpenVX/SoftISP
一個基于OpenVX的ISP軟實現。
總結
以上是生活随笔為你收集整理的图像处理理论(四)——HOG, Haar, ISP的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习(十九)——FCN, SegNe
- 下一篇: 深度学习(二十)——Ultra Deep