<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          計算機視覺之圖像二值化

          共 4034字,需瀏覽 9分鐘

           ·

          2021-03-25 10:22


          點擊上方藍色字體,關(guān)注我們


          傳統(tǒng)的機器視覺通常包括兩個步驟——預(yù)處理和物體檢測。而溝通二者的橋梁則是圖像分割(Image Segmentation[1]。圖像分割通過簡化或改變圖像的表示形式,使得圖像更易于分析。


          舉個例子,食品加工廠新進了一批肉雞,想通過視覺檢測其美味程度。機器在預(yù)處理優(yōu)化完圖像之后,要先把圖像中的雞肉和背景分開,并對感興趣的區(qū)域單獨進行分析,才能做出快速準確的判斷。


          食品加工廠的視覺處理

          然而,圖像分割對愚蠢的AI來說并不容易。聰明的人類一眼就能看出下圖中哪些東西能吃、哪些不能吃。但計算機要把這些東西分開卻得花費一番功夫。

          原圖

          圖像分割結(jié)果

          最簡單的圖像分割方法是二值化(Binarization)。二值圖像每個像素只有兩種取值:要么純黑,要么純白。


          彩色圖、灰度圖、二值圖對比

          由于二值圖像數(shù)據(jù)足夠簡單,許多視覺算法都依賴二值圖像。通過二值圖像,能更好地分析物體的形狀和輪廓。二值圖像也常常用作原始圖像的掩模(又稱遮罩、蒙版,Mask)它就像一張部分鏤空的紙,把我們不感興趣的區(qū)域遮掉。進行二值化有多種方式,其中最常用的就是采用閾值法(Thresholding進行二值化。


          在計算機視覺里,一般用矩陣來表示圖像。也就是說,無論你的圖片看上去多么好吃,對計算機來說都不過是個矩陣而已。


          在這個矩陣里,每一個像素就是矩陣中的一個元素。在三通道的彩色圖像中,這個元素是由三個數(shù)字組成的元組。


          彩色三通道圖像

          而對于單通道的灰度圖像來說,這個元素就是一個數(shù)字。這個數(shù)字代表了圖像在這個點的亮度,數(shù)字越大像素點也就越亮,在常見的八位單通道色彩空間中,0代表全黑,255代表全白。


          單通道的灰度圖

          閾值法是指選取一個數(shù)字,大于它就視為全白,小于它就視為全黑。就像教室里的燈管開關(guān),我們輕輕地推動它,如果突然間超過了某個閾值,燈就啪的一聲亮了。

          根據(jù)閾值選取方式的不同,可以分為全局閾值和局部閾值。


          全局閾值

          Global Method


          全局閾值,指的是對整個圖像中的每一個像素都選用相同的閾值。我們可以在Photoshop圖像-調(diào)整-閾值里體驗這一操作:


          Photoshop里的閾值

          可以看到閾值色階從1255的移動過程中,圖像變黑的區(qū)域越來越多。當閾值數(shù)字在某個特定范圍內(nèi)的時候,紅米腸的輪廓清晰可辨。


          正確的二值化使紅米腸輪廓清晰可辨

          在生產(chǎn)線環(huán)境下,光照是已知的,常常會設(shè)定一個固定的數(shù)字來作為全局閾值。但是在室外或者機器人比賽中,光照條件往往更加復(fù)雜*。


          RoboMaster賽場的絢麗燈光

          *此圖采用了夸張手法,RoboMaster是個很正規(guī)的比賽,絕對不會在比賽的時候這么難為大家的。

          同樣是奧利奧冰激凌,在白天和晚上,攝像頭看到的畫面可能不太一樣,常數(shù)閾值無法同時適應(yīng)這兩種情況。


          明暗不同的畫面

          對于畫面比較暗的晚上,我們需要一個比較低的閾值,比如說設(shè)定閾值為50,它在晚上能很清楚地把黑白兩種顏色分開,但是到了白天就是一片白(左邊);如果我們把閾值設(shè)置得比較高,比如說172,在白天能順利分割,但在晚上就是一片黑(右邊)。我們需要能夠適應(yīng)復(fù)雜環(huán)境的算法。


          左邊閾值=50,右邊閾值=172

          其實,稍作分析我們可以發(fā)現(xiàn),這張圖像中的顏色差異還是比較明顯的,只有深淺兩種顏色。因此,無論是在白天還是黑夜,它的色階直方圖都應(yīng)該是兩個明顯的波峰,分別代表深色和淺色的區(qū)域。只是色階直方圖在白天會整體向右偏移,而在夜晚整體向左偏移。


          圖像的色階直方圖

          如果選擇兩個波峰之間的波谷作為閾值,就能輕松地把這兩類像素分開。但是圖像的直方圖往往是不連續(xù)的,有非常多尖峰和抖動,要找到準確的極值點十分困難。


          日本工程師大津展之為這個波谷找到了一個合適的數(shù)學(xué)表達,并于1979年發(fā)表[2]。這個二值化方法稱為大津算法(Otsu’s method。大津算法類似于一維Fisher判別分析的離散化模擬。通過窮舉法找到一個閾值數(shù)字,把這些像素切成兩類,使得這兩類像素的亮度的類內(nèi)方差最小。類內(nèi)方差指的是兩類像素的方差的加權(quán)和,這里權(quán)指的是這類像素點數(shù)量占整個圖像像素點數(shù)量的比值。


          也許你的畫面不會只有兩坨差異較大的顏色,比如這款雪糕的就有三個尖峰。

          三色雪糕(取雪糕部位的直方圖)

          這時候,只需對大津算法稍加擴展也可以完成。對大津算法的多級推廣成為多大津算法(multi Otsu method[3]


          局部閾值*

          Local Method

          *又稱自適應(yīng)閾值,Adaptive Thresholding


          比賽中常常會有聚光燈照在一個特定區(qū)域,產(chǎn)生局部受光、局部不受光的畫面。


          局部受光的圖像

          對于局部受光的圖像進行全局閾值,可能會出現(xiàn)“無論設(shè)置什么閾值參數(shù),都無法滿足全圖要求”的尷尬。比如上面這幅圖像,直接進行全局閾值時,左上半邊的壽司全都顯露出來時,右下半邊還是一片黑色。


          局部受光圖像的全局閾值處理

          這個時候我們就要用到局部閾值來處理了。其實,人的眼睛也是自帶了這一步操作的。我們判定一個東西顏色深淺,往往會受到物體周邊的顏色影響,這也就是為什么黑人的牙齒看上去更白。


          局部閾值法假定圖像在一定區(qū)域內(nèi)受到的光照比較接近。它用一個滑窗掃描圖像,并取滑窗中心點亮度與滑窗內(nèi)其他區(qū)域(稱為鄰域, neighborhood area的亮度進行比較。如果中心點亮度高于鄰域亮度*,則將中心點標記為白色,否則標記為黑色。


          局部閾值的滑窗

          *這里提到的是局部閾值的基本方法,對于實際使用中常見的其他局部閾值方法,請參閱Chow-Kaneko自適應(yīng)閾值法 [4]

          局部閾值的應(yīng)用非常廣泛,特別是對白紙黑字的處理非常有效。光學(xué)字符識別(OCR)和二維碼掃描的算法中,很多都用了局部閾值操作。


          比如下面這張二維碼就是一張典型的局部受光圖像:


          掃掃看,局部受光的二維碼

          如果對這張圖片采用全局閾值(例如下圖采用大津算法進行分割),是無論如何都無法正確分割的。


          全局方法不能處理局部受光圖像

          而采用局部閾值方法就能很好地分割圖像。從圖片里可以明顯觀察到,局部閾值方法對于一大片干凈區(qū)域的細節(jié)比較敏感,所以紙面上多出了很多我們原本注意不到的斑點。


          局部方法分割二維碼

          ◆◆◆

          實際運用中,我們要根據(jù)需求選擇不同的二值化方法,沒有哪個方法是絕對完美的。


          例如,在識別敵方機器人時,由于裝甲片燈條是自發(fā)光物體,受環(huán)境光影響較小,為了提高程序運行效率,我們采用固定數(shù)字作為全局閾值:


          基地自動反擊

          在能量機關(guān)的識別中,由于能量機關(guān)只有黑白兩種顏色,我們采用了大津算法及其多種變體:


          大能量機關(guān)各區(qū)域的二值圖

          而在空中機器人讀取基地區(qū)二維碼的時候又用到了局部閾值方法:


          空中機器人識別基地

          今天所講的內(nèi)容只是圖像分割的冰山一角,作為視覺領(lǐng)域最古老的問題之一,時至今日仍有非常多圖像分割的新算法被提出。


          除了基于閾值的圖像分割方法外,常用的分割方法還可以基于邊緣(如Yanowitz-Bruckstein自適應(yīng)閾值方法[5]、區(qū)域(如區(qū)域生長算法[6]等,它們在衛(wèi)星圖像處理、交通控制系統(tǒng)、工業(yè)生產(chǎn)監(jiān)控、醫(yī)療影像等領(lǐng)域發(fā)揮著巨大的作用。


          腦部組織圖像分割

          本文所述閾值方法的OpenCV實現(xiàn),請訪問:

          https://docs.opencv.org/master/d7/d1b/group__imgproc__misc.html

          參考文獻

          [1] Spirkovska, L. (1993). A summary of image segmentation techniques.

          [2] Nobuyuki Otsu (1979). "A threshold selection method from gray-level histograms". IEEE Trans. Sys., Man., Cyber9 (1):62–66.

          [3] Ping-Sung Liao and Tse-Sheng Chen and Pau-Choo Chung (2001). "A Fast Algorithm for Multilevel Thresholding". J. Inf. Sci. Eng17 (5):713–727.

          [4] Chow,C.K.; and Kaneko, T.: Boundary Detection of Radiographic Images by a Thresholding Method. Frontiers of Pattern Recognition, S. Watanabe, ed.,Academic Press, New York, 1972, pp. 61-82.

          [5] Yanowitz, S. D., & Bruckstein, A. M. (1988, November). A new method for image segmentation. In Pattern Recognition, 1988., 9th International Conference on (pp. 270-275). IEEE.

          [6] Richardson H W. Regional growth theory[M]. Macmillan,1973.


          聲明:部分內(nèi)容來源于網(wǎng)絡(luò),僅供讀者學(xué)術(shù)交流之目的,文章版權(quán)歸原作者所有。如有不妥,請聯(lián)系刪除。


          往期推薦



          點擊閱讀原文,更精彩~
          瀏覽 133
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产成人免费在线 | 天堂男人资源网 | 特黄色一级免费视频 | 九色视频在线观看 | 看尻屄视频 |