0
本文作者: AI研習(xí)社-譯站 | 2019-04-22 10:08 |
本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 :
Saliency Based Image Segmentation
作者 | Tim Chin
翻譯 | GAOLILI
校對 | Pita 審核 | 醬番梨 整理 | 立魚王
原文鏈接:
https://towardsdatascience.com/saliency-based-image-segmentation-473b4cb31774
通常我們看到一幅圖像的時(shí)候,我們都會關(guān)注于圖像中的某一點(diǎn)上。這有可能是一個(gè)人,一個(gè)建筑物或者甚至是一個(gè)水桶。圖像的清晰部分幾乎沒有什么意義,這些部分在圖像中通常的特點(diǎn)是缺少關(guān)注點(diǎn)、顏色單調(diào)和紋理平滑。當(dāng)這樣一類圖像出現(xiàn)的時(shí)候,它們是從圖像剩余部分分割出感興趣目標(biāo)的理想圖像。這篇文章就探索了這類顯著性圖像的分割。
顯著性圖像的例子。左邊的水桶和右邊的人就是感興趣的目標(biāo)。
這個(gè)項(xiàng)目最初來源于對于發(fā)掘一個(gè)自動生成圖像三分圖方法的興趣。當(dāng)和摳圖算法相結(jié)合的時(shí)候三分圖就是圖像的掩膜。這個(gè)摳圖算法用于關(guān)注前景和背景細(xì)節(jié)的圖像分割。正常情況下一個(gè)三分圖包含了前景的白色部分、背景的黑色部分和不確定的灰色區(qū)域。
三分圖的例子(來源于參考文獻(xiàn)[2])
大多數(shù)摳圖算法的問題就是它們希望由用戶提供三分圖,這是一個(gè)耗時(shí)的工作。這里有兩篇我參考的主要的論文,他們嘗試去自動生成三分圖[1][2]。在第一篇論文里,Hsieh等人使用了一個(gè) 相當(dāng)直接和易完成的方法。但不幸的是他們的方法并不是完全自動的,因?yàn)樗枰脩艚oGrabcut算法提供一個(gè)矩形區(qū)域。Gupta等人而是使用顯著性方法去預(yù)測感興趣的區(qū)域。然而他們的顯著性方法非常復(fù)雜,結(jié)合了三種顯著性算法的結(jié)果。其中一種算法使用了卷積神經(jīng)網(wǎng)絡(luò),這是一種我希望為了簡單實(shí)現(xiàn)而避免使用的技術(shù)。
除了需要用戶提供信息之外,Hsieh's等人的算法產(chǎn)生的結(jié)果是非常合理的。我想如果我能夠使Grabcut部分自動化,那么他們算法的其余部分就會解決最初始的那個(gè)問題。我是從Gupta等人提供的方法那里得到的去創(chuàng)造這樣一個(gè)自動方法的靈感。
很多的圖像分割方法的目標(biāo)就是將圖像二值化為感興趣的區(qū)域。這個(gè)項(xiàng)目的目標(biāo)是不一樣的。首先,我想大致的找出感興趣區(qū)域。將高斯模糊濾波器應(yīng)用于圖像。從模糊圖像中生成平均15個(gè)像素大小的超像素。超像素算法旨在基于像素區(qū)域中的值的顏色和距離來打破圖像。具體來說,用了簡單線性迭代聚類算法(SLIC)。
水桶和人的超像素圖
超像素將圖像分為幾乎一樣大小的區(qū)域。這樣做的好處之一就是超像素允許區(qū)域的泛化。我們可以假設(shè)超像素里的大部分像素有著相似的屬性。
與確定圖像中的超像素并行地,計(jì)算圖像的顯著圖使用了兩種不同的顯著性方法。第一種方法使用了內(nèi)置的OpenCV方法,叫細(xì)粒度顯著性。第二種方法涉及獲取細(xì)粒度顯著圖像的平均值并從圖像的高斯模糊圖中減去它,就得到了新圖像的絕對值。
這兩種方法的不同之處在于結(jié)果的侵略性。下面的兩張圖象高亮了感興趣區(qū)域。細(xì)粒度顯著性方法產(chǎn)生的圖像相對柔和一些。另外,細(xì)粒度顯著性圖像主要勾勒出顯著圖像的邊界,盡管另一種方法也捕獲了顯著圖的內(nèi)部。與細(xì)粒度方法相比積極的方法確實(shí)產(chǎn)生了更多的噪聲。消除噪聲是這個(gè)過程的下一步。
使用細(xì)粒度方法產(chǎn)生的水桶和人的顯著性圖
使用積極顯著性產(chǎn)生的水桶和人的顯著性圖
以下的技術(shù)是從Gupta等人的論文中挖掘出來的。為了對圖像進(jìn)行二值化,通過迭代從彩色圖像生成每個(gè)超像素。如果顯著性圖像超像素區(qū)域的中間像素值大于閾值T1,那么這整個(gè)超像素就二值化為白色。否則整個(gè)超像素就是黑色。T1由用戶選擇。在參考文獻(xiàn)[2]中,T1被設(shè)置為顯著性圖像中最大像素值的30%,但是在該項(xiàng)目中使用的是25%。
在二值化圖像之后,擴(kuò)張圖像基于使用哪種顯著性技術(shù)。在細(xì)粒度顯著方法中,圖像被擴(kuò)大為超像素平均值的兩倍大小。Aggressive顯著性方法沒有擴(kuò)張圖像。圖像中出現(xiàn)的噪聲越大,任何擴(kuò)張都有風(fēng)險(xiǎn)。
細(xì)粒度顯著性方法(左)和二值化Aggressive顯著性方法擴(kuò)張后的水桶圖像
最后一步又取決于使用哪種顯著性方法。在這兩種方法中,都提取了白色像素最大的區(qū)域。在OpenCV中,這個(gè)操作可以通過尋找圖像中的輪廓并選擇具有最大面積的輪廓來實(shí)現(xiàn)。對選擇出來的區(qū)域會匹配一個(gè)包圍框。
據(jù)觀察,細(xì)粒度顯著性方法常常會生成碎片區(qū)域。在包圍框生成后,其他任何落在包圍框里的不屬于最大區(qū)域的白色部分都會被添加到包圍框里。包圍框的邊界會增大來包圍這些區(qū)域。Aggressive顯著性方法并不需要這樣做。通常最大區(qū)域的包含量超過了預(yù)期。
最后一步是將最終找到的包圍框輸入到Grabcut算法中。Grubcut是分割圖像的常用方法。包圍框給了Grabcut函數(shù)什么會被算法最終分割為背景和前景。在包含Grubcut應(yīng)用程序的大多數(shù)軟件包中,用戶編輯矩形區(qū)域可以為算法產(chǎn)生更好的結(jié)果提供更多的信息。在這個(gè)項(xiàng)目中,使用了OpenCV內(nèi)置的Grubcut功能。
在桶的實(shí)驗(yàn)中,兩種方法都產(chǎn)生了相同的結(jié)果
此過程在[1]開始的地方結(jié)束。在將來我計(jì)劃繼續(xù)開發(fā)這種自動tripmap生成器。
在這兩種方法中,Aggressive顯著性圖似乎為大多數(shù)圖像產(chǎn)生了精確的掩模。細(xì)粒度顯著性方法產(chǎn)生的圖像中的顯著性目標(biāo)更為“笨重”。如果圖像很長或有卷須,則這些部分通常會與圖像的其余部分?jǐn)嚅_連接。然而,由于其保守的性質(zhì),當(dāng)圖像特別嘈雜時(shí),細(xì)粒度方法更好。掩模不一定能夠捕獲整個(gè)圖像,但它并沒有像Aggressive方法那樣頻繁地溢出。
兩種方法的樣本結(jié)果
還要必要指出,對于[1]中開發(fā)的算法,欠發(fā)達(dá)的掩模并不壞。由于最終目標(biāo)是開發(fā)tripmap圖像,因此掩模將由灰色區(qū)域填充。該灰色區(qū)域?qū)⒂兄趨^(qū)分前景和背景。
對于任何的每周的讀者來說,使用C++學(xué)習(xí)OpenCV并實(shí)現(xiàn)這個(gè)算法是非常耗時(shí)的。對于時(shí)延感到很抱歉,但希望將來這個(gè)項(xiàng)目會繼續(xù)并有更多的內(nèi)容!雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
Github 代碼地址:
https://github.com/TimChinenov/GraspPicture
[1] C. Hsieh and M. Lee, “Automatic trimap generation for digital image matting,” 2013 Asia-Pacific Signal and Information Processing Association Annual Summit and Conference, Kaohsiung, 2013, pp. 1–5.
[2] Gupta, Vikas & Raman, Shanmuganathan. (2017). Automatic Trimap Generation for Image Matting.
想要繼續(xù)查看該篇文章相關(guān)鏈接和參考文獻(xiàn)?
點(diǎn)擊【基于顯著性的圖像分割】即可訪問:
https://ai.yanxishe.com/page/TextTranslation/1549
AI研習(xí)社今日推薦:Python中文書籍大集合
100本Python中文電子書,6份源代碼,Python從入門到出家,一條龍服務(wù)。
包含Python基礎(chǔ)、進(jìn)階、爬蟲、算法實(shí)現(xiàn)、深度學(xué)習(xí)、TensorFlow、NLP等等
友情提示:文件大小為2.89GB,慎用流量下載,可以先收藏喲~~!
點(diǎn)擊鏈接即可獲?。?a target="_blank" rel=nofollow>https://ai.yanxishe.com/page/resourceDetail/676
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。