CNN如何識別一幅圖像中的物體


讓我們對卷積神經網絡如何工作形成更好直觀感受。我們先看下人怎樣識別圖片,然后再看 CNNs 如何用一個近似的方法來識別圖片。

比如說,我們想把下面這張圖片識別為金毛巡回犬。

 

一個需要被識別為金毛巡回犬的圖片

 

人類是怎么做的呢?

一種做法是我們識別狗的特定部位,例如鼻子,眼睛,毛發。我們把圖片分成小片,識別小片,然后把這些結合在一起,得到一個狗的概念。

這種情況下,我們可以把圖片分成下列組合:

  • 一個鼻子
  • 兩只眼睛
  • 金色毛發

如下圖所示:

 

狗的眼睛

 

狗的鼻子

 

狗的毛發

 

再進一步

再進一步來說,我們如何確定鼻子在哪呢?一個金毛巡回犬的鼻子可以看出是一個橢圓形,有兩個黑洞在里面。因此,一種辨別巡回犬鼻子的方法是把它分割更小的區域,尋找黑洞(鼻孔)和橢圓的曲線。如下所示:

 

一個可以用來確定鼻子的曲線

 

用來分類狗鼻子的鼻孔

 

廣義上來說,這就是 CNN 的學習方式。它學習識別基本的直線,曲線,然后是形狀,點塊,然后是圖片中更復雜的物體。最終 CNN 分類器把這些大的,復雜的物體綜合起來識別圖片。

在我們的例子中,層級關系是:

  • 簡單的形狀,如橢圓,暗色圓圈
  • 復雜的物體(簡單形狀的組合),例如眼睛,鼻子,毛發
  • 狗的整體(復雜物體的組合)

有了深度學習,我們不需要設定 CNN 來識別特定的特征。相反,CNN 通過正向和反向傳播,自己學習識別上述物體。

盡管我們從來沒有讓 CNN 尋找特定的特征信息,但是它識別圖片的能力卻好的驚人!

 

對狗圖片每一層 CNN 可能識別物體的示意圖

 

CNN 可能有幾層網絡,每個層可能捕獲對象抽象層次中的不同級別。第一層是抽象層次的最底級,CNN 一般把圖片中的較小的部分識別成簡單的形狀,例如水平、豎直的直線,簡單的色塊。下一層將會上升到更高的抽象層次,一般會識別更復雜的概念,例如形狀(線的組合),以此類推直至最終識別整個物體,例如狗。

再次強調,CNN 是自主學習。我們不需要告訴 CNN 去尋找任何直線、曲線、鼻子、毛發等等。CNN 從訓練集中學習並發現金毛巡回犬值得尋找的特征。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM