3.1 目标定位-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
| 2.12 總結(jié) | 回到目錄 | 3.2 特征點檢測 |
目標定位 (Object Localization)
大家好,歡迎回來,這一周我們學(xué)習(xí)的主要內(nèi)容是對象檢測,它是計算機視覺領(lǐng)域中一個新興的應(yīng)用方向,相比前兩年,它的性能越來越好。在構(gòu)建對象檢測之前,我們先了解一下對象定位,首先我們看看它的定義。
圖片分類任務(wù)我們已經(jīng)熟悉了,就是算法遍歷圖片,判斷其中的對象是不是汽車,這就是圖片分類。這節(jié)課我們要學(xué)習(xí)構(gòu)建神經(jīng)網(wǎng)絡(luò)的另一個問題,即定位分類問題。這意味著,我們不僅要用算法判斷圖片中是不是一輛汽車,還要在圖片中標記出它的位置,用邊框或紅色方框把汽車圈起來,這就是定位分類問題。其中“定位”的意思是判斷汽車在圖片中的具體位置。這周后面幾天,我們再講講當(dāng)圖片中有多個對象時,應(yīng)該如何檢測它們,并確定出位置。比如,你正在做一個自動駕駛程序,程序不但要檢測其它車輛,還要檢測其它對象,如行人、摩托車等等,稍后我們再詳細講。
本周我們要研究的分類定位問題,通常只有一個較大的對象位于圖片中間位置,我們要對它進行識別和定位。而在對象檢測問題中,圖片可以含有多個對象,甚至單張圖片中會有多個不同分類的對象。因此,圖片分類的思路可以幫助學(xué)習(xí)分類定位,而對象定位的思路又有助于學(xué)習(xí)對象檢測,我們先從分類和定位開始講起。
圖片分類問題你已經(jīng)并不陌生了,例如,輸入一張圖片到多層卷積神經(jīng)網(wǎng)絡(luò)。這就是卷積神經(jīng)網(wǎng)絡(luò),它會輸出一個特征向量,并反饋給softmax單元來預(yù)測圖片類型。
如果你正在構(gòu)建汽車自動駕駛系統(tǒng),那么對象可能包括以下幾類:行人、汽車、摩托車和背景,這意味著圖片中不含有前三種對象,也就是說圖片中沒有行人、汽車和摩托車,輸出結(jié)果會是背景對象,這四個分類就是softmax函數(shù)可能輸出的結(jié)果。
這就是標準的分類過程,如果你還想定位圖片中汽車的位置,該怎么做呢?我們可以讓神經(jīng)網(wǎng)絡(luò)多輸出幾個單元,輸出一個邊界框。具體說就是讓神經(jīng)網(wǎng)絡(luò)再多輸出4個數(shù)字,標記為 bx,by,bhb_x,b_y,b_hbx?,by?,bh? 和 bwb_wbw? ,這四個數(shù)字是被檢測對象的邊界框的參數(shù)化表示。
我們先來約定本周課程將使用的符號表示,圖片左上角的坐標為(0,0),右下角標記為(1,1)。要確定邊界框的具體位置,需要指定紅色方框的中心點,這個點表示為(bx,byb_x,b_ybx?,by?),邊界框的高度為 bhb_hbh? ,寬度為 bwb_wbw? 。因此訓(xùn)練集不僅包含神經(jīng)網(wǎng)絡(luò)要預(yù)測的對象分類標簽,還要包含表示邊界框的這四個數(shù)字,接著采用監(jiān)督學(xué)習(xí)算法,輸出一個分類標簽,還有四個參數(shù)值,從而給出檢測對象的邊框位置。此例中, bxb_xbx? 的理想值是0.5,因為它表示汽車位于圖片水平方向的中間位置;byb_yby? 大約是0.7,表示汽車位于距離圖片底部 310\frac3{10}103? 的位置; bhb_hbh? 約為0.3,因為紅色方框的高度是圖片高度的0.3倍; bwb_wbw? 約為0.4,紅色方框的寬度是圖片寬度的0.4倍。
下面我再具體講講如何為監(jiān)督學(xué)習(xí)任務(wù)定義目標標簽 yyy 。
請注意,這有四個分類,神經(jīng)網(wǎng)絡(luò)輸出的是這四個數(shù)字和一個分類標簽,或分類標簽出現(xiàn)的概率。目標標簽 yyy 的定義如下:y=[pcbxbybhbwc1c2c3]y=\left[\begin{matrix} p_c\\b_x\\b_y\\b_h\\b_w\\c_1\\c_2\\c_3 \end{matrix}\right]y=?????????????pc?bx?by?bh?bw?c1?c2?c3???????????????
它是一個向量,第一個組件 pcp_cpc? 表示是否含有對象,如果對象屬于前三類(行人、汽車、摩托車),則 pc=1p_c=1pc?=1 ,如果是背景,則圖片中沒有要檢測的對象,則 pc=0p_c=0pc?=0 。我們可以這樣理解 pcp_cpc? ,它表示被檢測對象屬于某一分類的概率,背景分類除外。
如果檢測到對象,就輸出被檢測對象的邊界框參數(shù) bx、by、bhb_x、b_y、b_hbx?、by?、bh? 和 bwb_wbw? 。最后,如果存在某個對象,那么 pc=1p_c=1pc?=1 ,同時輸出 c1、c2c_1、c_2c1?、c2? 和 c3c_3c3? ,表示該對象屬于1-3類中的哪一類,是行人,汽車還是摩托車。鑒于我們所要處理的問題,我們假設(shè)圖片中只含有一個對象,所以針對這個分類定位問題,圖片最多只會出現(xiàn)其中一個對象。
我們再看幾個樣本,假如這是一張訓(xùn)練集圖片,標記為 xxx ,即上圖的汽車圖片。而在 yyy 當(dāng)中,第一個元素 pc=1p_c=1pc?=1 ,因為圖中有一輛車, bx、by、bhb_x、b_y、b_hbx?、by?、bh? 和 bwb_wbw? 會指明邊界框的位置,所以標簽訓(xùn)練集需要標簽的邊界框。圖片中是一輛車,所以結(jié)果屬于分類2,因為定位目標不是行人或摩托車,而是汽車,所以 c1=0,c2=1,c3=0,c1、c2c_1=0,c_2=1,c_3=0,c_1、c_2c1?=0,c2?=1,c3?=0,c1?、c2? 和 c3c_3c3? 中最多只有一個等于1。
這是圖片中只有一個檢測對象的情況,如果圖片中沒有檢測對象呢?如果訓(xùn)練樣本是這樣一張圖片呢?
這種情況下, pc=0,yp_c=0,ypc?=0,y 的其它參數(shù)將變得毫無意義,這里我全部寫成問號,表示“毫無意義”的參數(shù),因為圖片中不存在檢測對象,所以不用考慮網(wǎng)絡(luò)輸出中邊界框的大小,也不用考慮圖片中的對象是屬于 c1、c2c_1、c_2c1?、c2? 和 c3c_3c3? 中的哪一類。針對給定的被標記的訓(xùn)練樣本,不論圖片中是否含有定位對象,構(gòu)建輸入圖片 xxx 和分類標簽 yyy 的具體過程都是如此。這些數(shù)據(jù)最終定義了訓(xùn)練集。
最后,我們介紹一下神經(jīng)網(wǎng)絡(luò)的損失函數(shù),其參數(shù)為類別 yyy 和網(wǎng)絡(luò)輸出 y^\hat{y}y^? ,如果采用平方誤差策略,則 L(y^,y)=(y^1?y1)2+(y^2?y2)2+?+(y^8?y8)2L(\hat{y},y)=(\hat{y}_1-y_1)^2+(\hat{y}_2-y_2)^2+\cdots+(\hat{y}_8-y_8)^2L(y^?,y)=(y^?1??y1?)2+(y^?2??y2?)2+?+(y^?8??y8?)2 ,損失值等于每個元素相應(yīng)差值的平方和。
如果圖片中存在定位對象,那么 y1=1y_1=1y1?=1 ,所以 y1=pcy_1=p_cy1?=pc? ,同樣地,如果圖片中存在定位對象, pc=1p_c=1pc?=1 ,損失值就是不同元素的平方和。
另一種情況是, y1=0y_1=0y1?=0 ,也就是 pc=0p_c=0pc?=0 ,損失值是 (y^1?y1)2(\hat{y}_1-y_1)^2(y^?1??y1?)2 ,因為對于這種情況,我們不用考慮其它元素,只需要關(guān)注神經(jīng)網(wǎng)絡(luò)輸出 pcp_cpc? 的準確度。
回顧一下,當(dāng) y1=1y_1=1y1?=1 時,也就是這種情況(編號1),平方誤差策略可以減少這8個元素預(yù)測值和實際輸出結(jié)果之間差值的平方。如果 y1=0y_1=0y1?=0 , yyy 矩陣中的后7個元素都不用考慮(編號2),只需要考慮神經(jīng)網(wǎng)絡(luò)評估 y1y_1y1? (即 pcp_cpc? )的準確度。
為了讓大家了解對象定位的細節(jié),這里我用平方誤差簡化了描述過程。實際應(yīng)用中,你可以不對 c1、c2、c3c_1、c_2、c_3c1?、c2?、c3? 和softmax激活函數(shù)應(yīng)用對數(shù)損失函數(shù),并輸出其中一個元素值,通常做法是對邊界框坐標應(yīng)用平方差或類似方法,對 pcp_cpc? 應(yīng)用邏輯回歸函數(shù),甚至采用平方預(yù)測誤差也是可以的。
以上就是利用神經(jīng)網(wǎng)絡(luò)解決對象分類和定位問題的詳細過程,結(jié)果證明,利用神經(jīng)網(wǎng)絡(luò)輸出批量實數(shù)來識別圖片中的對象是個非常有用的算法。下節(jié)課,我想和大家分享另一種思路,就是把神經(jīng)網(wǎng)絡(luò)輸出的實數(shù)集作為一個回歸任務(wù),這個思想也被應(yīng)用于計算機視覺的其它領(lǐng)域,也是非常有效的,所以下節(jié)課見。
課程板書
| 2.12 總結(jié) | 回到目錄 | 3.2 特征點檢測 |
總結(jié)
以上是生活随笔為你收集整理的3.1 目标定位-深度学习第四课《卷积神经网络》-Stanford吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.12 总结-深度学习第四课《卷积神经
- 下一篇: 3.2 目标点检测-深度学习第四课《卷积