在大家的演算法工作中,會訓練各種各樣的模型。導致大家模型實際應用效果不夠好的原因有很多,一些常見的原因主要是模型結構不合理 、損失函式不合理 、超引數設定不合理,但除了這些原因,我想最核心的一個原因是資料的質量本身。
相信每一個自動駕駛行業的開發者對此都是會深有體會的,Lyft 團隊在CVPR的presentation上就發出了“High quality labeled data is the key”的感慨。這也是本篇文章想要著重強調的主題。
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/3f925d5b4ebbfda51029a0dc6432aa4443fd91deb1913d5388143cc737a5cead.png)
下面透過一個實驗來讓大家直觀感受一下“標註質量對模型訓練效能的影響”
實驗主題:不同質量標註對模型效能影響的對比實驗
實驗框架:
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/71c95b5210efe905b438a55673efef3fe8c48ec61cc9f53aa6168901fbfe6e2b.jpg)
圖中左側是訓練的過程,右側是測試的過程
訓練的部分邏輯:
首先是將KITTI資料集的圖片搭配原生Original label可以得到一個Original KITTI dataset,相應地再將圖片搭配Graviti label可以得到一個Graviti KITTI dataset;然後分別使用這兩個資料集各自訓練一個2D目標檢測的模型,這裡使用的是經典的faster-rcnn模型,得到的模型分別叫做Original model和Graviti model。
測試部分的邏輯:
使用了兩個標註比較精準的第三方資料集;Waymo和Cityscape---來對兩個模型分別進行測試。
資料處理:
先介紹一下本實驗使用到的訓練集和測試集:
(1)Waymo 資料集是由Waymo公司的自動駕駛汽車採集的多感測器自動駕駛資料集 它的相機資料是連續採集的,其中一百個場景提供了2D框標註。
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/61e8e4ac684d6e43be0ca04c61df219bd928c3f6a70491c2aff517304ecd7c05.jpg)
(2)KITTI 資料集,是由卡爾斯魯厄理工學院和豐田工業大學芝加哥分校聯合釋出的一個用於自動駕駛場景的視覺演算法測評資料集。它包括“2D框標註和3D點雲資料”以及其他的子資料集,在實驗中主要使用KITTI的2D框標註資料。
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/9d0c82b89a6769d1f7c028ae1076c70ae4f89e7a4a408ba94d01edc54d74990d.jpg)
(3)CItyscape 資料集是由Citydcape團隊釋出的一個致力於城市街景的語義理解的資料集 ,它覆蓋了德國50個城市的街景資訊 ,資料集中提供了五千張精標的“語義分割和例項分割綜合標註”。
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/eb0df3fd08be5e5bce962ca5f826169ef7564a67f1e334a3aec67ef99cbd181e.jpg)
下面我們來看一下具體的結果
(1)這是Waymo的測試集的2D框標註視覺化結果,我們可以看到它的標註框是非常貼合目標的。
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/5ef6fd28bf3a79e4e3c91ccac1a1065db0514515d94473c1fe0d98c307af133c.jpg)
(2)這是訓練集 KITTI object2D 的一個訓練sample ,那麼和前一張圖相同,紅色的框是KITTI資料集原生的label,藍色的框是Graviti的標註,可以看到所有的藍框都要比紅框的標註更為準確.
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/3f05db8f820a1725556757056d2685e892d6b5c9d31a82d59852b5a12c939292.jpg)
(3)下圖是Cityscape 的一個sample,在實驗中我們需要將例項的畫素資訊轉換成2D框資訊 ,如圖中白框所示
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/e5182b76dc5b95fb9a4063946d4c6df0610fef3a0356f4fe3d25ffdcc42a35dc.jpg)
實驗結果:
這是兩個模型在Waymo資料集上的測試結果 ,圖中有三種顏色的框。其中紅色是 GroundTruth的預測結果 ,藍色是Graviti model 的預測結果,綠色是 Original model的預測結果:
從圖中我們可以直觀的看出,標註這兩輛白車的藍框比綠框更接近紅色的Groundtruth
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/6addc810f233a9e5474707e2e7450e94acf07691153595bc38f1192db696b3d7.jpg)
這是兩個模型cityscape上的測試結果,同樣紅色框是Groudtruth,藍色框是Graviti model的預測結果,綠色的是Original model 的預測結果,以圖中右側第二輛車為例,就是這輛銀白色的SUV 。大家可以看到車頭處的藍框比紅框更偏內,綠框比紅框更為偏外。
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/11f1493a9ddbf6b84a14af05f1f3fd0e38dd949bd10e696725de9da1562a8e5f.jpg)
前邊是視覺化的測試結果,下面藉助PR曲線從定量分析的角度來看一下實驗的結果 :
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/97e1d61286a58a4dd60e8ace7e41bf8fe2fb95efd58656c432deaf0189a29844.jpg)
簡單介紹一下 PR曲線的含義 :
PR曲線的縱座標是準確率precision,橫座標就是召回率recall。這兩個指標結合可以較為全面的評價一個模型的預測質量。
準確率指的是“預測的2D框中有多少是正確的有效的2D框”當然對於“正確”的定義是一個柔性的概念,比如說 :“我可以認為只要預測框和Groundtruth的IoU大於0.5 ,那他就是一個正確的預測。”召回率指的是“所有Groundtruth對應的目標——有所少被正確的預測到了”。如果大家不清楚這個圖表的細節 ,那麼可以先這樣認為 :越偏右上的曲線對應的模型的質量越好。
在這個圖表中:紅線曲線是Graviti model在不同資料集上的PR曲線, 綠色曲線是Original model 在不同資料集上的PR曲線。
如果橫著看這四副圖表 :上邊兩幅是我們的IoU判真閾值——設定為 0.5 時的PR曲線結果,下邊兩幅是IoU判真閾值設定為 0.75 時的PR曲線結果。
以左上圖為例:紅色曲線比綠色綠色更偏右上 ——這也意味著 :Graviti model的測試效能要比Original model的測試效能要好。
如果我們豎著看的話,左邊是Cityscape資料集上的測試結果 ,右邊是Waymo資料集上的測試結果。
以Cityscape資料集為例:當IoU閾值從 0.5 調整到 0.75 之後,也就是當要求提高之後,兩條曲線都往左下角偏移了。
這個很好理解類似於——老師的判卷難度提高了,那自然所有考生的分數都會有一定程度的降低, 但是我們可以觀察到,紅色曲線和綠色曲線之間的的gap拉大了,這說明:當我提高我的IoU閾值時,Graviti model的得分下降程度要遠小於 Original model 的下降程度 。
從Waymo這兩張圖, 也是可以得到類似的結論。
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/3aa2278c089a12ec353fe7814fc8d877c5af4e0a2999789b945ebaedd5919f4f.png)
綜上無論是從視覺化的效果還是PR曲線,我們可以得到比較一致的實驗結論,結論有兩點,如下:
第一點 :標註質量會直接影響模型質量
好的標註會訓練出更好的效果!
第二點:標註越精準,預測的結果越接近真值
當IoU判真閾值設定的更高時,模型依然可以得到更好的表現!
再簡單總結一下這個實驗中遇到的問題:
1.不同的資料集之間的格式的統一的問題
在眾多著名的公開資料集當中,它們的標註格式幾乎沒有完全相同的兩個。
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/5d808d22d8b5256f4034d26b8dd1f8c480f194bfed6148a3e73fa88552ee673c.jpg)
實驗中用到的資料集格式也是非常的多樣,比如
Waymo的2D框標註呢首先它是TFrecord格式,2D框顯示的是xywh的資訊;
KITTI資料集的2D框標註是txt格式 ,2D框顯示的是XYXY的資訊;
Cityscape的2D框標註需要先手動從語義分割轉到2D框的標註。
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/f24b8543fcf549e0db7132e0b63c8fc4df1b0f22a9c596868592a14c936656e4.jpg)
當然這也是一個行業發展的初期一個正常現象 ,就像兩千年左右曾經市面上出現的各種各樣的手機充電介面一樣的,我們Graviti 致力於能夠找到一種general的資料標註格式 ,以求能夠把大家從繁忙的複雜的資料處理中解放出來,而能夠更多focus在我們演算法工作過程中。
2.篩選sample
資料集格式統一之後我們還需要篩選具體要用到哪些sample,比如說我們前面提到的Waymo資料集,它是連續採集的資料,但是我們沒有必要把所有連續的影像都選做測試集。
所以在這個實驗中只是間隔的抽取了一部分影像作為我們的測試集,比如圖中3幅較為接近的場景,我們只抽取其中一幅作為測試集,所以篩選sample這一步也會花費大量時間 。
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/c2b830a56eb9a0a7472d4f7b48863bd92d7b5aa592075bfcb4d96115ce7b379b.jpg)
3.類別統一問題
在這個實驗中用到了Waymo,KITTI ,Cityscape 三個公開資料集和Graviti KITTI 標註集。
下面的表中列出了 4個資料集之間的label的分類細節,從這個圖中我們可以看到 :不論是label的種類,還是label的數量,還有label的劃分標準都不盡相同。比如Waymo的VEHICLE類別會包括KITTI的van和tram類別, Cityscape中的bus這一類也並並不完全等同於KITTI的van這一類。
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/7c4432a3d4ecbae075d3db8b31af7e2ca862d18b14b9cc916761e054a274b7ed.png)
(4)國外的資料集下載
相信大家都深有感觸的一點是,很多國外的資料集下載,是需要特殊的工具才能下載, 而且網速非常感人,針對演算法工程師對公開資料集使用上的一些痛點,我們也即將在8月下旬上線公開資料集的功能。會提供公開資料集索引,國內站點的下載,並且我們也會提供資料集的標註和標註的視覺化,便於大家快速理解資料集標註的視覺化,
![【深度】監督學習—從好的label開始](https://i.iter01.com/images/65353eeb4d8ba2dab5f4cfe39504cd0e67f1beebb086685014827f090e92c5ea.jpg)