為了實現提取圖片中某一物體信息,有比較好的圖像分割演算法嗎?

如圖片中的一件上衣,一條褲子,什麼樣的圖像分割演算法會方便提取這些指定物體的信息呢?


我個人對圖像處理比較感興趣,對這個問題略微了解了一下。我來說兩句,權當拋磚引玉吧。

-----------------------分割線-----------------------------------

圖像的邊緣提取演算法要分兩種情況討論。也就是兩種圖像的形式。一種是黑白圖,另外一種是彩色圖。

黑白圖圖像分割採用的演算法大多數為灰度閾值演算法。事實上,對於黑白圖而言,我們人眼分辨邊緣也是採用類似的方法。(感覺如果沒有灰度變化,應該沒有人會覺得有邊緣吧)。所以這個是在黑白圖像中用的做多也是最有效的方法。另外,可以採用直接進行一次開運算一次閉運算後可以得到粗略的邊緣。但是計算還是挺複雜的。

對於彩色圖片的邊緣提取演算法那就複雜了。而且這方面研究比較熱門,相關論文很多,可以參考一下。總體來說彩色有RGB三個分量,所以再考慮演算法的時候要同時考慮這三個分量。其實,個人感覺演算法雖然多,但是說到底方法還是一個:提取連續的相同顏色作為邊界。(靈感同樣來自人眼(?? . ??))。雖然原理簡單,但是做起來一點都不簡單。那是因為彩色圖像雜訊不是一般多。這也是圖像處理困難所在。(我個人認為現在大部分圖像處理論文都是在討論如何降低雜訊)。所以一般有下面三個步驟。

1.降低雜訊

降低圖像雜訊的演算法那就不是一般多了。例如最常用的卡爾曼濾波就不少變種。關於這方面可以參考信號與系統的書籍以及相關論文,這裡不再贅述。(因為這都可以寫書了→_→)

2.相同顏色的邊緣提取

關於這方面論文也是很多,我就我說說身邊人使用的方法吧。我們有一個老師在做項目的時候用的方法是模糊化處理方法。那就是,拿一個RGB表,從中人工識別所要的顏色。計算機記錄RGB範圍,在RGB向量空間中畫出一個立方體,以後凡是落入這個立方體的都算作這種顏色。結果證明使用這種方式可以較大程度上減小雜訊帶來的影響。但是這種方法對光線高度敏感,光亮度一變,不好意思,重新來過。而且這種方法畫出來的立方體不小,其中包含不少明顯不是這種顏色的RGB值(因為RGB任何一個分量和顏色直接不是線性關係)。再加上這個對人工的工作精確度要求不小,勞動強度不小。所以不太推薦。我們有些大牛引入機器學習的k臨近演算法,結果如何我沒有太了解。

3.插值

有的時候雜訊太厲害,使得有些點明顯大幅偏離應有的RGB值。使得邊緣不連續。這樣,可以引入插值演算法使得邊緣成為封閉的邊緣。常用的有H插值演算法、多項式插值演算法等等。關於這方面論文也是很多,可以加以參考。

以上三個步驟做完以後,基本上就差不多了。如果還是不行,要麼是某個方面效果不好,要麼是雜訊太大。如果是後者,我只能說少年放棄這個圖片吧(正如12306新的圖像驗證碼就是採用強雜訊干擾圖像識別)。

--------------------------------廢話分割線-------------------

個人感覺,圖像處理兩大難點,一是雜訊,這不是一般的煩,二是實時性。如果不可以在一定的時間內給出我要的結果,我要你幹嘛?理論上來說,沒有實時性,什麼問題都可以解決。

結果用手機打的,手機不好排版,排版不好,不要見怪。

如果覺得有道理請不要吝嗇你們的贊╮(╯▽╰)╭,如有不同意見,歡迎私信提出。大家一起學習,一起進步。謝謝!


看你問題到底有多具體了

如果你的問題很具體,目標很確定,那不涉及圖像識別的圖像處理技術可能就行

如果找的目標相對具體點,有相對固定的樣子,且要的標註框級結果,那滑動窗加分類器等目標檢索演算法可以解決

如果你是要找出衣服和褲子,且衣服和褲子長得可以不太一樣(顏色紋理等),且要像素級的切分,那你問的是圖像中相當前沿的一個問題fasion parsing,是圖像分割(image segmentation)的一類,簡單點說,這個問題可能沒你想的那麼容易


要是想要提取的圖像部分和周圍有圖像有明顯的區分的話,先進行彩色分層(默認彩色圖像)處理,然後進行提取,已有的優秀提取演算法很多啦。。。。。。(要提取特殊區域的圖像,灰度分層or彩色分層)。

-------------------------------------------

正在學習cv cp dip,小渣渣一枚,輕拍,摸摸大(~ ̄▽ ̄~)


推薦閱讀:

主方法求解遞歸式
數值的整數次方
鏈表中倒數第k個節點
包含min函數的棧
用2個棧模擬一個隊列

TAG:演算法 | 圖像識別 | 演算法設計 |