1
| 本文作者: AI研習(xí)社-譯站 | 2018-04-12 12:07 |
雷鋒網(wǎng)按:本文為雷鋒字幕組編譯的技術(shù)博客,原標(biāo)題Releasing “Supervisely Person” dataset for teaching machines to segment humans,作者為Supervise.ly。
翻譯 | 郭乃嶠 汪寧 張虎 整理 | 凡江 吳璇
我們非常自豪地在這里宣布,Supervisely人像數(shù)據(jù)集正式發(fā)布。它是公開(kāi)的并且免費(fèi),僅出于學(xué)術(shù)的目的。

要讓AI全民共享, 我們不僅需要開(kāi)源,還要一場(chǎng)強(qiáng)有力的“開(kāi)放數(shù)據(jù)”運(yùn)動(dòng)。——吳恩達(dá)
我們當(dāng)然同意他的看法,并讓我們擴(kuò)展一下這個(gè)想法。對(duì)于語(yǔ)義分割的人物,有很多深層神經(jīng)網(wǎng)絡(luò)的研究。但是,大多數(shù)情況下,收集數(shù)據(jù)要比開(kāi)發(fā)和應(yīng)用算法去運(yùn)行數(shù)據(jù)更困難和昂貴。
這就是為什么我們需要專(zhuān)門(mén)設(shè)計(jì)的平臺(tái),這個(gè)平臺(tái)可以覆蓋全部的機(jī)器學(xué)習(xí)的工作流,從開(kāi)發(fā)訓(xùn)練數(shù)據(jù)集到訓(xùn)練和部署神經(jīng)網(wǎng)絡(luò)。

幾個(gè)例子來(lái)自"Supervisely人像數(shù)據(jù)集"
我們認(rèn)為,我們的工作將會(huì)幫助開(kāi)發(fā)者、研究者和商人們。為了更快地創(chuàng)建大型訓(xùn)練數(shù)據(jù)集,我們的工作不僅可以看作一個(gè)公開(kāi)的數(shù)據(jù)集,而且可以被視為一套創(chuàng)新的方法和工具。
接下來(lái),我們將介紹關(guān)于如何從頭建立這個(gè)數(shù)據(jù)集,讓我來(lái)展示一些有趣的事實(shí):
數(shù)據(jù)集由5711張圖片組成,有6884個(gè)高質(zhì)量的標(biāo)注的人體實(shí)例。
下面的所有步驟在Supervisely內(nèi)部完成的,沒(méi)有任何編碼。
更重要的是,這些步驟是被我內(nèi)部的注釋器執(zhí)行的,沒(méi)有任何機(jī)器學(xué)習(xí)專(zhuān)業(yè)知識(shí)。數(shù)據(jù)科學(xué)家僅僅只是控制和管理這過(guò)程。
注釋組由兩名成員組成并且這整個(gè)過(guò)程只花了4天。
Supervisely 是包含數(shù)據(jù)科學(xué)的智慧機(jī)器學(xué)習(xí)平臺(tái)。它允許數(shù)據(jù)科學(xué)家專(zhuān)注于真正的創(chuàng)新,并將日常工作留給其他人(是的,訓(xùn)練眾所周知的神經(jīng)網(wǎng)絡(luò)架構(gòu)也是一項(xiàng)常規(guī)工作)。
要解決的問(wèn)題
在許多真實(shí)世界的應(yīng)用中,人像檢測(cè)是分析人類(lèi)圖像中的關(guān)鍵任務(wù),在動(dòng)作識(shí)別、自動(dòng)駕駛汽車(chē)、視頻監(jiān)控、移動(dòng)應(yīng)用等方面均有使用。
我們?cè)贒eepSystems公司進(jìn)行了內(nèi)部研究,這讓我們意識(shí)到人體檢測(cè)任務(wù)缺乏數(shù)據(jù)。你會(huì)問(wèn)我們:那COCO、Pascal、Mapillary 等公共數(shù)據(jù)集呢?為了回答這個(gè)問(wèn)題,我會(huì)更好地向你展示幾個(gè)例子:
幾個(gè)來(lái)自COCO數(shù)據(jù)集的人類(lèi)標(biāo)注示例
大多數(shù)公共數(shù)據(jù)集中人體檢測(cè)數(shù)據(jù)的質(zhì)量不符合我們的要求,我們必須創(chuàng)建自己的數(shù)據(jù)集,并提供高質(zhì)量的注釋?zhuān)視?huì)告訴你我們是如何做到的。
步驟0:將公共數(shù)據(jù)集上傳和準(zhǔn)備,作為初始點(diǎn)來(lái)訓(xùn)練初始神經(jīng)網(wǎng)絡(luò)
將公共數(shù)據(jù)集上傳到系統(tǒng):PascalVoc,Mapillary。我們的“導(dǎo)入”模塊支持大多數(shù)公共數(shù)據(jù)集,并將它們轉(zhuǎn)換為統(tǒng)一的基于json-based的格式,稱(chēng)為Supervisely格式 :)
我們執(zhí)行DTL(“數(shù)據(jù)轉(zhuǎn)換語(yǔ)言”)查詢(xún)以執(zhí)行一些操作:合并數(shù)據(jù)集 - >跳過(guò)沒(méi)有人物的圖像 - >從圖像裁剪每個(gè)人 - >按寬度和高度過(guò)濾它們 - >分割為訓(xùn)練/測(cè)試集。

合并,裁剪和過(guò)濾公共數(shù)據(jù)集后的原始數(shù)據(jù)
似乎有很多公開(kāi)可用的數(shù)據(jù),但我們?cè)谇懊嫣岬竭^(guò),存在一些隱藏的問(wèn)題:注釋質(zhì)量低,分辨率低等等。
因此,我們構(gòu)建了第一個(gè)訓(xùn)練數(shù)據(jù)集。
步驟1:訓(xùn)練神經(jīng)網(wǎng)絡(luò)
我們將對(duì) UNet-like 架構(gòu)進(jìn)行稍微定制

Unet_v2架構(gòu)
損失= 二進(jìn)制損失熵+(1 -隨機(jī)數(shù))。
該網(wǎng)絡(luò)訓(xùn)練速度快,它非常準(zhǔn)確,易于實(shí)施和定制。它允許我們進(jìn)行大量的實(shí)驗(yàn)。Supervisely可以分布在集群中的多個(gè)節(jié)點(diǎn)上。
因此我們可以同時(shí)訓(xùn)練幾個(gè)神經(jīng)網(wǎng)絡(luò)。同樣所有的神經(jīng)網(wǎng)絡(luò)都支持我們平臺(tái)上的多GPU訓(xùn)練。每個(gè)訓(xùn)練試驗(yàn)的輸入分辨率為256 * 256,且都不超過(guò)15分鐘。

步驟2:準(zhǔn)備數(shù)據(jù)進(jìn)行注釋
我們沒(méi)有收集未標(biāo)記的圖像,所以我們決定從網(wǎng)上下載它。我們?cè)?a target="_blank" rel=nofollow>github上實(shí)現(xiàn)了這個(gè)項(xiàng)目,從而可以從優(yōu)秀的照片庫(kù)中下載數(shù)據(jù) ,由Pexels完成(感謝他,這真的很酷的工作)。
因此,我們下載了大約15k的圖片,其中包含與我們的任務(wù)相關(guān)的標(biāo)簽,并將其上傳到Supervisely并通過(guò)DTL查詢(xún)執(zhí)行調(diào)整大小操作,因?yàn)樗鼈兙哂谐叻直媛省?/p>
步驟3:將神經(jīng)網(wǎng)絡(luò)應(yīng)用于未標(biāo)記的圖像
過(guò)去的架構(gòu)不支持實(shí)例分段。 因此我們沒(méi)有使用Mask-RCNN,因?yàn)榭拷矬w邊緣的分割質(zhì)量很低。
這就是為什么我們決定做兩步計(jì)劃:應(yīng)用Faster-RCNN(基于NasNet)來(lái)檢測(cè)圖像上的所有人,然后為每個(gè)人定界框應(yīng)用分割網(wǎng)絡(luò)來(lái)分割支配對(duì)象。 這種方法保證我們既模擬實(shí)例分割又準(zhǔn)確地分割對(duì)象邊緣。
應(yīng)用模型和手動(dòng)修正檢測(cè)的3分鐘視頻
我們嘗試了不同的分辨率:我們傳遞給NN的分辨率越高,它產(chǎn)生的結(jié)果就越好。 我們并不關(guān)心總推理時(shí)間,因?yàn)镾upervisely支持分布在多臺(tái)機(jī)器上的推理。 對(duì)于自動(dòng)預(yù)標(biāo)注任務(wù)來(lái)說(shuō),這已經(jīng)足夠了。
步驟4:手動(dòng)驗(yàn)證和糾錯(cuò)
所有推斷結(jié)果都會(huì)實(shí)時(shí)顯示在儀表板中。 我們的操作員預(yù)覽所有結(jié)果并使用幾個(gè)標(biāo)簽標(biāo)記圖像:不良預(yù)測(cè)、預(yù)測(cè)糾正、良好預(yù)測(cè)。 這個(gè)過(guò)程是快速的,因?yàn)樗麄冃枰苌俚逆I盤(pán)快捷鍵“下一個(gè)圖像”和“分配標(biāo)簽圖像”。

我們?nèi)绾螛?biāo)記圖像:左 - 不良預(yù)測(cè),中 - 預(yù)測(cè)需要輕度手動(dòng)校正,右 - 好預(yù)測(cè)。
標(biāo)記為“不良預(yù)測(cè)”的圖像被跳過(guò)。 進(jìn)一步的工作繼續(xù)是處理我們需要糾正的圖像。
如何校正神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)
手動(dòng)校正所需的時(shí)間比從頭開(kāi)始的注釋少得多。
步驟5:將結(jié)果添加到訓(xùn)練數(shù)據(jù)集并轉(zhuǎn)到第1步
完成!
一些提示:
當(dāng)我們應(yīng)用僅對(duì)公共數(shù)據(jù)進(jìn)行訓(xùn)練的NN時(shí),“合適”圖像(標(biāo)記為“良好預(yù)測(cè)”和“預(yù)測(cè)正確”)的百分比約為20%。
經(jīng)過(guò)樹(shù)型快速迭代后,這個(gè)數(shù)字增加到70%。我們總共完成了6次迭代,最終的NN變得相當(dāng)準(zhǔn)確:-)
在訓(xùn)練之前,我們?cè)谖矬w邊緣添加了小波段以平滑鋸齒狀邊緣并執(zhí)行多種增強(qiáng):翻轉(zhuǎn),隨機(jī)裁剪,隨機(jī)角度旋轉(zhuǎn)和顏色轉(zhuǎn)換。正如您所看到的,即使您需要在圖像上注釋多個(gè)對(duì)象類(lèi),這種方法也適用于許多計(jì)算機(jī)視覺(jué)任務(wù)。
獎(jiǎng)勵(lì)
這個(gè)數(shù)據(jù)集幫助我們改進(jìn)AI支持的注釋工具 - 定制化的用它來(lái)檢測(cè)人類(lèi)。 在我們的最新版本中,我們添加了在系統(tǒng)內(nèi)部訓(xùn)練NN的能力。 以下是基于類(lèi)別的工具與其定制版本的比較。 它是可用的,你可以試試你的數(shù)據(jù)。
如何訪(fǎng)問(wèn)數(shù)據(jù)集
注冊(cè)Supervisely,進(jìn)入“Import” tab -> “Datasets library”。 點(diǎn)擊“Supervisely Person”數(shù)據(jù)集,為新項(xiàng)目編寫(xiě)名稱(chēng)。 然后點(diǎn)擊“three dots”按鈕 - >“下載為json格式” - >“Start”按鈕。 就這樣, 總下載時(shí)間可能需要15分鐘(~ 7 GB)。

如何下載結(jié)果
結(jié)論
看看沒(méi)有任何ML背景的人如何完成所有這些步驟是非常有趣的。 我們作為深度學(xué)習(xí)專(zhuān)家節(jié)省了大量時(shí)間,我們的注釋團(tuán)隊(duì)在注釋速度和質(zhì)量方面變得更加高效。
我們希望,Supervisely平臺(tái)將幫助每個(gè)深度學(xué)習(xí)團(tuán)隊(duì)更快更輕松地制作AI產(chǎn)品。
讓我列出我們?cè)谶@項(xiàng)工作中使用的最有價(jià)值的Supervisely功能:
1. “Import”模塊可以上傳所有公共數(shù)據(jù)集
2. “Data Transformation Language”來(lái)操作,合并和增強(qiáng)數(shù)據(jù)集
3.“ NN”模塊使用Faster-RCNN和UnetV2
3. “Statistics”模塊自動(dòng)從我們擁有的數(shù)據(jù)中獲得有用的見(jiàn)解
4. “Annotation”就像Photoshop一樣用于訓(xùn)練數(shù)據(jù)“協(xié)作”功能,允許將工作人員與注釋團(tuán)隊(duì)相結(jié)合,為他們分配任務(wù)并控制整個(gè)過(guò)程。
雷鋒網(wǎng)相關(guān)推薦 雷鋒網(wǎng)
不知道如何開(kāi)始機(jī)器學(xué)習(xí)?這有份初學(xué)者指南!
雷鋒字幕組正在招募中
掃描下方二維碼
備注“雷鋒字幕組+姓名”加入我們吧

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。