前言
成產品及系統(tǒng)平臺的現(xiàn)場演示,編寫技術應用服務方案等,編寫投標類方案文件及標書的制作;
通常,當我們看到一張圖片時,會在圖片中聚焦一個焦點。這個可能是一個人,一座建筑物甚至是一個桶。其他沒有聚焦區(qū)域雖然很清晰,但是卻由于顏色單調或者紋理較為平滑而很少引起關注。當遇到此類圖象時,我們希望從圖像中分割感興趣的對象。下面給出了顯著圖像的示例,本文探討了此類顯著圖像的分割方法,也稱為顯著性的圖像分割。
顯著圖像的示例。桶(左)和人(右)是感興趣的對象
這中分割方式最開始起源于希望能夠自主尋找圖像中的Trimap。Trimap是圖像掩碼(mask),當與掩碼算法配合使用時,可用于分割圖像,同時能夠提示前景和背景之間的細節(jié)。Trimap通常包含定義前景的白色區(qū)域,定義背景的黑色區(qū)域以及代表不確定區(qū)域的灰色區(qū)域。具體形式如下圖所示。
Trimap示例
大部分摳圖算法問題在于,他們希望Trimap由用戶提供,這是一項非常耗時的任務。這里面介紹兩個試圖解決自主trimap生成問題的相關論文,這兩篇論文在文末給出。在第一篇論文中使用了一種相當簡單且易于實現(xiàn)的方法。不幸的是,他們的方法并不是完全自主的,因為它要求用戶為Grabcut算法提供一個矩形區(qū)域。第二篇論文中,使用顯著性方法預測感興趣的區(qū)域。但是,它們的顯著性方法非常復雜,將三種不同的顯著性算法的結果結合在一起。這三種算法中有一種利用卷積神經(jīng)網(wǎng)絡,為了易于實現(xiàn),應該盡量避免這種技術。
如果忽略需要人為給出矩形區(qū)域,第一篇論文中能夠產生較好的分割結果。通過第二篇論文的原理去自動給出一個Grabcut算法的矩形區(qū)域,那么將完美的解決自主分割的問題。
方法
對于大多數(shù)形式的圖像分割,目標都是將圖像二值化為感興趣的區(qū)域。這個本文介紹方法的目標也是這樣的。首先,大致確定感興趣的對象在哪里。將高斯模糊應用于圖像,之后在模糊圖像中生成平均15像素大小的超像素。超像素算法旨在根據(jù)像素區(qū)域中值的顏色和距離來分解圖像。具體來說,使用了簡單的線性迭代聚類(SLIC)算法。具體形式如下圖所示。
一個桶和一個人的超像素劃分結果
超像素將圖像分解為大致相同的區(qū)域。這樣的一個優(yōu)點是,超像素允許區(qū)域的泛化。我們可以假設超像素內的大多數(shù)像素具有相似的屬性。
在確定圖像中的超像素的同時,計算圖像的顯著性圖。使用了兩種不同的顯著性技術。第一種方法使用OpenCV內置的方法,即所謂的細顆粒顯著性。第二種方法涉及獲取細顆粒顯著性圖像的平均值,然后從圖像的高斯模糊版本中減去平均值,然后是新圖像的絕對值。
下方的圖像均突出顯示了感興趣的區(qū)域。細顆粒顯著性產生的圖像較為柔和。此外,細顆粒顯著性圖像主要勾勒出突出圖像的邊界。而另一種方法雖然也捕獲了突出圖像的內部,但是與細顆粒方法相比,該方法會產生更多的噪音。之后需要對噪聲進行去除。
第一種顯著性結果
第二種顯著性結果
為了將圖像二值化,對從彩色圖像生成的每個超級像素進行迭代。如果顯著圖像內該超像素區(qū)域的中值像素值大于閾值T1,則整個超像素將被二值化為白色。否則,整個超像素將保留為黑色。T1由用戶選擇,一般情況下,將T1設置為顯著圖像中最大像素值的25%-30%。
在對圖像進行二值化之后,基于所使用的顯著性技術對圖像進行擴張。在第一種方法中,將圖像放大為平均超像素尺寸的兩倍。在第二種方法中沒有進行擴大,因為圖像中存在的較大噪聲使擴張風險增大。處理的結果在下面給出。
最后一步操作取決于使用的是哪種顯著性。在這兩種方法的結果中,都提取最大的白色像素區(qū)域。通過查找圖像中的輪廓并選擇面積最大的輪廓來執(zhí)行此操作,之后將邊界框擬合到所選區(qū)域。
根據(jù)一般性結果,第一種顯著性方法通常會導致區(qū)域碎片化。生成邊界框后,將落入該框的不屬于最大區(qū)域的所有其他白色區(qū)域添加到該框?虻倪吔缭黾拥桨ㄟ@些區(qū)域。第二種顯著性方法不需要這樣做。通常,最大獲取的區(qū)域會超出期望的數(shù)量。
最后一步是將最終找到的邊界框提供給Grabcut算法。Grabcut是用于分割圖像的常用方法,該方法會將絕對是背景和前景的內容分開。這里面我們直接使用OpenCV的內置Grabcut函數(shù)。處理的結果如下所示。
結果
兩種顯著性計算方法對于結果會有一些影響。第一種顯著性方法更加適用于含有噪聲的圖像中,在含有噪聲的圖像中不會像第二種顯著性方法造成分割結果的溢出。,但是如果圖像太長或有卷須,則這些部分通常會與圖像的其余部分斷開連接。
下面是這兩種方法分割更多圖像的示例結果。