有人一周內(nèi)清理了PASCAL數(shù)據(jù)集中的17120張圖像,將mAP提高了13%
有研究稱,他們使用一種技術(shù)在一周內(nèi)清理了 PASCAL VOC 2012 數(shù)據(jù)集中的 17120 張圖像,并發(fā)現(xiàn) PASCAL 中 6.5% 的圖像有不同的錯(cuò)誤(缺失標(biāo)簽、類標(biāo)簽錯(cuò)誤等)。他們?cè)趧?chuàng)紀(jì)錄的時(shí)間內(nèi)修復(fù)了這些錯(cuò)誤,并將模型的性能提高了 13% 的 mAP。
通常情況下,模型性能較差可能是由于訓(xùn)練數(shù)據(jù)質(zhì)量不高引起的。即使在 2022 年,由于數(shù)據(jù)是公司最重要的資產(chǎn)之一,開發(fā)人員也經(jīng)常因數(shù)據(jù)質(zhì)量低劣而感到工作棘手。本文中,總部位于德國柏林的面向視覺 AI 從業(yè)者的下一代注釋工具提供商 Hasty,希望通過更快、更高效地清理數(shù)據(jù)來簡化和降低視覺 AI 解決方案開發(fā)的風(fēng)險(xiǎn)。
他們開發(fā)了 AI Consensus Scoring (AI CS) 功能,它是 Hasty 生態(tài)系統(tǒng)的一部分(Hasty 是該公司開發(fā)的一個(gè)端到端的 AI 平臺(tái),可讓 ML 工程師和領(lǐng)域?qū)<腋斓亟桓队?jì)算機(jī)視覺模型,從而縮短變革性產(chǎn)品和服務(wù)的上市時(shí)間),該功能使得手動(dòng)共識(shí)評(píng)分(consensus scoring)成為過去,其將 AI 集成到質(zhì)量控制流程中,使其更快、更便宜,并且隨著用戶添加的數(shù)據(jù)越多,性能擴(kuò)展越好。
本文中,研究者將利用 AI CS 功能來改進(jìn)、更新和升級(jí)最流行的目標(biāo)檢測基準(zhǔn)數(shù)據(jù)集 PASCAL VOC 2012 。
我們先來簡單介紹一下 PASCAL,它是一個(gè)著名的學(xué)術(shù)數(shù)據(jù)集,可用于目標(biāo)檢測和語義分割等視覺 AI 任務(wù)的基準(zhǔn)模型。PASCAL 已有十多年的歷史,現(xiàn)在還一直被廣泛使用,近 4 年就有 160 篇論文使用它。
PASCAL 在過去十年中沒有改變,世界各地的團(tuán)隊(duì)在科研中都保持該數(shù)據(jù)集的「原樣」進(jìn)行科研。但是,該數(shù)據(jù)集是很久以前注釋的,當(dāng)時(shí)算法還沒有今天準(zhǔn)確,注釋要求也沒有那么嚴(yán)格,會(huì)出現(xiàn)很多錯(cuò)誤。例如下圖所示:盡管馬是在前景并且可見,但沒有馬的標(biāo)簽,這些質(zhì)量問題在 PASCAL 中很常見。
如果讓人工來處理 PASCAL 數(shù)據(jù)集,成本高昂且非常耗時(shí),該研究使用 AI 進(jìn)行質(zhì)量控制并提高 PASCAL 的質(zhì)量,他們的目的是如果數(shù)據(jù)質(zhì)量足夠好,模型性能會(huì)不會(huì)隨之提高,為了執(zhí)行這個(gè)測試,他們?cè)O(shè)置了一個(gè)包含以下步驟的實(shí)驗(yàn):
- 在 Hasty 平臺(tái)上使用 AI Consensus Scoring 功能清洗 PASCAL VOC 2012;
- 使用 Faster R-CNN 架構(gòu)在原始的 PASCAL 訓(xùn)練集上訓(xùn)練自定義模型;
- 使用相同的 Faster R-CNN 架構(gòu)和參數(shù),在清理后的 PASCAL 訓(xùn)練集上準(zhǔn)備一個(gè)自定義模型;
- 實(shí)驗(yàn)之后,得出結(jié)論。
下面為實(shí)驗(yàn)過程,以第一人稱進(jìn)行編譯整理, 看看他們是如何做到的以及結(jié)果如何?
清洗 PASCAL VOC 2012
我們的首要任務(wù)是改進(jìn)數(shù)據(jù)集。我們從 Kaggle 獲得數(shù)據(jù)集,將其上傳到 Hasty 平臺(tái),導(dǎo)入注釋,并安排兩次 AI CS 運(yùn)行。對(duì)于那些不熟悉我們 AI CS 功能的人,該功能支持類、目標(biāo)檢測和實(shí)例分割審查,因此它會(huì)檢查注釋的類標(biāo)簽、邊界框、多邊形和掩碼。在進(jìn)行審查時(shí),AI CS 會(huì)尋找額外或缺失的標(biāo)簽、偽影、錯(cuò)誤類別的注釋,以及形狀不精確的邊界框或?qū)嵗?/span>
PASCAL VOC 2012 包含 17.120 張圖像和 20 個(gè)不同類別的約 37.700 個(gè)標(biāo)簽。我們已經(jīng)針對(duì) 28.900 (OD) 和 1.320 (Class) 潛在錯(cuò)誤任務(wù)運(yùn)行了目標(biāo)檢測和類別審查。
AI CS 可以讓你發(fā)現(xiàn)潛在問題。然后,你可以專注于修復(fù)錯(cuò)誤,而無需花幾天或幾周的時(shí)間來查錯(cuò)。
我們要檢查這些潛在錯(cuò)誤并解決它們,最重要的是,我們希望修改后的注釋比原始注釋器更準(zhǔn)確。具體包括:
- 當(dāng) AI CS 檢測到潛在錯(cuò)誤時(shí),我們嘗試修復(fù)每張圖像上所有可能出現(xiàn)的這些錯(cuò)誤;
- 我們沒有打算注釋每個(gè)可能的目標(biāo),如果注釋遺漏了一個(gè)目標(biāo),并且在前景中或在沒有縮放的情況下肉眼可見,我們就注釋它;
- 我們?cè)噲D讓邊界框像像素一樣完美;
- 我們還對(duì)部分(數(shù)據(jù)集類目標(biāo)未注釋部分)進(jìn)行了注釋,因?yàn)樵紨?shù)據(jù)集具有它們的特性。
有了上述目標(biāo),我們首先檢查了現(xiàn)有注釋類標(biāo)簽的類審查運(yùn)行,試圖找出潛在的錯(cuò)誤。超過 60% 的 AI CS 建議非常有用,因?yàn)樗鼈冇兄谧R(shí)別原始數(shù)據(jù)集不明顯的問題。例如,注釋器將沙發(fā)和椅子混淆。我們通過重新標(biāo)記整個(gè)數(shù)據(jù)集的 500 多個(gè)標(biāo)簽來解決這個(gè)問題。
原始注釋示例。圖中有兩張沙發(fā)和兩把扶手椅。兩把扶手椅中的一張標(biāo)注為沙發(fā),而另一把則標(biāo)注為椅子。
修改后的標(biāo)注,扶手椅是椅子,沙發(fā)是沙發(fā)。
在分析 OD 和 Class 審查時(shí),我們發(fā)現(xiàn) PASCAL 最突出的問題不是錯(cuò)誤分類注釋、奇怪的邊界框或額外的標(biāo)簽。它最大的問題是缺少許多潛在的注釋。我們很難估計(jì)確切的數(shù)字,但我們覺得有數(shù)千個(gè)未標(biāo)記的目標(biāo)應(yīng)該被標(biāo)記。
OD 審查通過數(shù)據(jù)集,尋找額外或缺失的標(biāo)簽和錯(cuò)誤形狀的邊界框。并非所有缺失的注釋都被 AI CS 突出顯示,但我們已盡最大努力改進(jìn) AI CS 預(yù)測的至少有一個(gè)缺失標(biāo)簽的所有圖片。結(jié)果,OD 審查幫助我們?cè)?1.140 張圖像中找到了 6.600 個(gè)缺失注釋。
我們花了大約 80 個(gè)小時(shí)來審查所有建議并清理數(shù)據(jù)集,這是一個(gè)了不起的結(jié)果。
在原始 PASCAL 上訓(xùn)練自定義模型
如上所述,我們決定設(shè)置兩組實(shí)驗(yàn),訓(xùn)練兩個(gè)模型,一個(gè)在初始的 PASCAL 上,另一個(gè)在經(jīng)過清理的 PASCAL 版本上。為了進(jìn)行神經(jīng)網(wǎng)絡(luò)訓(xùn)練,我們使用了 Hasty 另一個(gè)功能:Model Playground,這是一個(gè)無需編碼的解決方案,允許你在簡化的 UI 中構(gòu)建 AI 模型,同時(shí)保持對(duì)架構(gòu)和每個(gè)關(guān)鍵神經(jīng)網(wǎng)絡(luò)參數(shù)的控制。
在整個(gè)工作過程中,我們對(duì)模型進(jìn)行了多次迭代,試圖為任務(wù)找到最佳超參數(shù)。最后,我們選擇了:
- 以 ResNet101 FPN 為骨干的更快的 R-CNN 架構(gòu);
- 采用 R101-FPN COCO 權(quán)值進(jìn)行模型初始化;
- 模糊,水平翻轉(zhuǎn),隨機(jī)剪切,旋轉(zhuǎn)和顏色抖動(dòng)作為增強(qiáng);
- AdamW 為求解器,ReduceLROnPlateau 為調(diào)度器;
- 就像在其他 OD 任務(wù)中一樣,使用了損失組合(RPN Bounding Box 損失、RPN 分類損失、最終 Bounding Box 回歸損失和最終分類損失);
- 作為指標(biāo),我們有 COCO mAP,幸運(yùn)的是,它直接在 Model Playground 中實(shí)現(xiàn)。
大約一天半的時(shí)間來訓(xùn)練。假設(shè)架構(gòu)的深度、網(wǎng)絡(luò)正在處理的圖像數(shù)量、計(jì)劃的訓(xùn)練迭代次數(shù)(10.000)以及 COCO mAP 在 5.000 張圖片中每 50 次迭代計(jì)算的事實(shí),它并沒有花費(fèi)太長時(shí)間。以下是模型取得的結(jié)果:
原始模型訓(xùn)練迭代的平均損失。
跨原始模型驗(yàn)證迭代的 COCO mAP 圖。
使用這種架構(gòu)實(shí)現(xiàn)的最終 COCO mAP 結(jié)果是驗(yàn)證時(shí)的 0.42 mAP。在原始 PASCAL 上訓(xùn)練的模型的性能不如最先進(jìn)的架構(gòu)。盡管如此,考慮到我們?cè)跇?gòu)建模型上花費(fèi)的時(shí)間和精力很少(經(jīng)歷了 3 次迭代,每次花費(fèi) 1 小時(shí)),這仍然是一個(gè)不錯(cuò)的結(jié)果。無論如何,這樣的結(jié)果會(huì)讓我們的實(shí)驗(yàn)更有趣。讓我們看看是否可以在不調(diào)整模型參數(shù)的情況下,通過改進(jìn)數(shù)據(jù)來獲得所需的指標(biāo)值。
在更新的 PASCAL 上訓(xùn)練的自定義模型
在這里,我們采用相同的圖像進(jìn)行訓(xùn)練和驗(yàn)證,以訓(xùn)練以下模型作為基線。唯一的區(qū)別是拆分中的數(shù)據(jù)更好(添加了更多標(biāo)簽并修復(fù)了一些標(biāo)簽)。
不幸的是,原始數(shù)據(jù)集并沒有在其訓(xùn)練 / 測試集拆分中包含 17120 個(gè)圖像中的每一個(gè),有些圖片被遺漏了。因此盡管在原始數(shù)據(jù)集中添加了 6600 個(gè)標(biāo)簽,但在訓(xùn)練 / 測試拆分中,我們只得到了大約 3000 個(gè)新標(biāo)簽和大約 190 個(gè)修復(fù)標(biāo)簽。
盡管如此,我們繼續(xù)使用 PASCAL VOC 2012 改進(jìn)后的訓(xùn)練 / 測試拆分來訓(xùn)練和驗(yàn)證模型,看看效果如何。
更新模型的訓(xùn)練迭代中的 AverageLoss 圖。
更新模型的驗(yàn)證迭代中的 COCO mAP 圖。
直接比較
正如我們所見,新模型的性能優(yōu)于原始模型。與之前模型的 0.42 值相比,它在驗(yàn)證時(shí)達(dá)到了 0.49 COCO mAP。這樣看很明顯實(shí)驗(yàn)是成功的。
結(jié)果在 45-55 COCO mAP 之內(nèi),這意味著更新后的模型比原始模型效果更好,并提供了所需的度量值。是時(shí)候得出一些結(jié)論并討論我們剛剛目睹的情況了。
結(jié)論
本文展示了以數(shù)據(jù)為中心的 AI 開發(fā)概念。我們的思路是通過提升數(shù)據(jù)以獲得更好的模型,進(jìn)而也獲得了想要的結(jié)果。如今,當(dāng)模型開始接近性能的上限時(shí),通過調(diào)整模型將關(guān)鍵指標(biāo)的結(jié)果提高 1-2% 以上可能是具有挑戰(zhàn)性且成本高昂的事。但是,你不應(yīng)該忽略構(gòu)建機(jī)器學(xué)習(xí)并不僅僅是模型和參數(shù),還有兩個(gè)關(guān)鍵組成部分——算法和數(shù)據(jù)。
在該研究中,我們并沒有試圖擊敗任何 SOTA 或獲得比此前研究更好的結(jié)果。我們希望通過實(shí)驗(yàn)結(jié)果展示:花費(fèi)時(shí)間改進(jìn)數(shù)據(jù)有利于模型性能。希望通過添加 3000 個(gè)缺失標(biāo)簽使 COCO mAP 增加 13% 的案例足夠令人信服。
通過清理數(shù)據(jù)和向圖像添加更多標(biāo)簽可以獲得的結(jié)果很難預(yù)測。效果很大程度上取決于你的任務(wù)、NN 參數(shù)和許多其他因素。即使在本文的例子中,我們也不能確定多 3000 個(gè)標(biāo)簽會(huì)是能帶來額外 13% mAP 的。盡管如此,結(jié)果不言自明。雖然有時(shí)很難確定通過獲得更好的數(shù)據(jù)來改進(jìn)模型指標(biāo)的上限,這是值得嘗試的方向。