0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

圖像分類與物件檢測兩種應用的數(shù)據(jù)格式

NVIDIA英偉達企業(yè)解決方案 ? 來源:NVIDIA英偉達企業(yè)解決方案 ? 作者:NVIDIA英偉達企業(yè)解 ? 2022-04-09 08:24 ? 次閱讀

前面的系列文章里提過,TAO 工具將模型訓練的絕大部分技術難題都進行抽象化處理,大幅度減輕開發(fā)人員的負擔,唯獨數(shù)據(jù)集的收集與整理仍須由人工自行處理,這幾乎是留給操作人員的最后工作了。

大部分關于數(shù)據(jù)集的問題就是標注格式的轉換,包括 Pascal VOC、OpenImages、COCO 這些影響力較大的數(shù)據(jù)集,個別使用 .xml、.csv、.json 等不同的文件格式,包括標注欄位的內(nèi)容與順序也都不盡相同,這通常是困擾使用者的第一個門檻。

好在這些格式之間的轉換,只需要一些簡單的 Python 小工具就能完成,雖然繁瑣但也沒有什么技術難度。

在https://docs.nvidia.com/tao/tao-toolkit/text/data_annotation_format.html里,提供 TAO 工具針對不同應用類型所支持的格式,簡單整理如下:

圖像分類:目錄結構格式

物件檢測:KITTI 與 COCO 格式

實例分割:COCO 格式

語義分割:UNet 格式

體態(tài)識別:COCO 格式

其他:自定義格式

這里只將使用率較高的圖像分類與物件檢測兩種應用的數(shù)據(jù)格式進行說明,其他應用的數(shù)據(jù)格式請自行參照前面提供的說明鏈接。

1、圖像分類的“目錄結構”格式:

這是以“圖像”為單位的分類應用,每張圖片只會有一個分類屬性,因此格式相對簡單,只要將圖片根據(jù)目錄結構的規(guī)則進行分類就可以。

圖像分類與物件檢測兩種應用的數(shù)據(jù)格式

為了配合模型訓練的工作,我們需要將數(shù)據(jù)集切割成 “train”、“val”、“test” 三大類,分別作為訓練、校驗與測試用途。

在每個數(shù)據(jù)集下面再延伸出“分類屬性”子目錄,例如做早期用于識別 0~9 手寫數(shù)字的 MNIST 數(shù)據(jù)集,就得在 train/val/test 下面各添加 “0”~“9” 共 10 個子目錄,合計是 2 層 33 個目錄結構。

圖像分類與物件檢測兩種應用的數(shù)據(jù)格式

如果是使用 ILSVRC 競賽的 1000 分類 ImageNet 數(shù)據(jù)的話,就得根據(jù)這 1000 個分類在三個目錄下創(chuàng)建 1000 個分類屬性子目錄,例如 dog、cat、person 等等,雖然很繁瑣但也不復雜,對模型訓練工具而言,圖像文件名稱是無所謂的。

數(shù)據(jù)來源通常是兩大類,第一種是自行從網(wǎng)上收集與手動拍攝,第二種是從現(xiàn)成數(shù)據(jù)集進行提取,包括 ImageNet、Pascal VOC、COCO、OpenImages 這些知名的通用數(shù)據(jù)集,都有非常豐富的資源。

但現(xiàn)在的最大問題是,如何從這些數(shù)據(jù)集中提取所需要的圖像,并根據(jù)“目錄結構”存放成 TAO 所支持的格式?

這個部分需要使用者自行研究所需要的數(shù)據(jù)集的結構,撰寫簡單的提取工具。例如 TAO 提供的 classification 圖像分類模型訓練范例項目中,使用 Pascal VOC 2012 數(shù)據(jù)集來進行圖像分類的模型訓練,但是這個數(shù)據(jù)集使用下圖左的路徑分布方式,與 TAO 所支持的“目錄結構”格式并不相同,那么該如何處理?

圖像分類與物件檢測兩種應用的數(shù)據(jù)格式

我們必須對這個數(shù)據(jù)集的相關資源有進一步了解。在 VOC 數(shù)據(jù)集的 ImageSets/Main 里存放 63個.txt 文件,刨去 train.txt、trainval.txt 與 val.txt 三個文件,其余 60 個分屬于數(shù)據(jù)集的 20 個圖像類別的三種用途,例如 xxx_trainval.txt、xxx_train.txt、xxx_val.txt,其中前者的內(nèi)容是后面兩個文件的合并。

在 classification.ipynb 腳本中提供兩段數(shù)據(jù)格式轉換的 Python 代碼(請自行查閱),在 “A.Split the dataset into train/val/test” 的環(huán)節(jié),執(zhí)行以下處理:

(1) 將存放在上圖左邊 “JPEGImages” 里面的圖像文件,借助 xxx_trainval.txt 分類列表的協(xié)助,復制到上圖右方的 “formated” 下的 20 個分類子目錄; (2) 從 “formated” 的每一類圖像數(shù)據(jù),分別切割出 train/val/test 三大分類,放到 “split” 目錄下,作為后面轉換成 tfrecords 的數(shù)據(jù)源。

經(jīng)過兩次轉換處理后,在這里的數(shù)據(jù)內(nèi)容就該有 3 份相同的圖像數(shù)據(jù),只不過使用不同的路徑結構去存放而已。如果不想浪費存儲空間的話,可以將 VOCdeckit 與 formatted 兩個目錄刪除,只需要保留 split 目錄的結構就足夠。

至于其他數(shù)據(jù)的轉換,也需要使用者對該數(shù)據(jù)集有充分的了解,畢竟學習數(shù)據(jù)轉換的精力要遠遠低于自行收集的時間,絕對是劃算的。

2、物件檢測的 KITTI 格式:

絕大部分通用數(shù)據(jù)集為了提高普及度,都提供多種應用類別的標注 (annotations) 內(nèi)容,其中 “物件位置 (location)” 是最基本的數(shù)據(jù),其他還有與人體相關的骨骼結構標注、語義分割的材質標注、場景描述的標注等等,每種數(shù)據(jù)集都有其側重點,因此內(nèi)容種類與格式也都不盡相同,這是大伙要使用數(shù)據(jù)集的第一個門檻。

物件檢測是比圖像分類更進一步的深度學習應用,要在一張圖像中找出符合條件的物件,數(shù)量沒有限定,就看訓練出來的模型具備哪些分類功能。

每個數(shù)據(jù)集的差異,就是將所包含的圖像,都進行不同功能與不同細膩度的標注內(nèi)容,這些動輒數(shù)萬張到上千萬張的圖像、分類數(shù)量從20到數(shù)千的不同數(shù)據(jù)集,也都使用不同的文件格式去儲存這些標注內(nèi)容,有些是圖像文件與標注文件一一對應,有些則是將上千萬張的標注內(nèi)容全部存在一個巨大的標注文件里。

例如 COCO 數(shù)據(jù)集將數(shù)百萬張的標注存放在上百兆的 .json 文件里、 OpenImages 數(shù)據(jù)集上千萬張的標注存放在 1.3GB 的 .csv 文件中,而 Pascal VOC 與 ImageNet 的標注文件則提供一對一對應的 .txt 與 .xml 格式,莫衷一是。

事實上對應物件檢測的應用,我們只需要標注文件中最基本的元素,包括“類別”與“位置”這兩組共 5 個欄位數(shù)據(jù)就可以。類別部分有的數(shù)據(jù)集直接使用“類別名”,有的數(shù)據(jù)集只提供“類別編號”,然后再到類別文件中尋找對應;位置信息部分,有些提供“左上角”與“右下角”坐標位置,有些使用“起點坐標”與“長寬”來表示,都是一組 4 個浮點值。

因此,要從龐大的數(shù)據(jù)集中,提取我們所需要的類別與位置標注,就必須對個別標注結構進行研究,才能得到我們想要的結果,這個步驟是跳不過去的。網(wǎng)上雖然有很多標注格式轉換的功能,但是通用性受限制,還是需要進行局部修改。

現(xiàn)在來看看 TAO 工具在物件檢測模型訓練所支持KITTI格式內(nèi)容,主要欄位如下:

圖像分類與物件檢測兩種應用的數(shù)據(jù)格式

其標注文件是 .txt 純文字格式,在文件內(nèi)的表達方式如下:

圖像分類與物件檢測兩種應用的數(shù)據(jù)格式

熟悉物件檢測應用的人,可能會覺得這個 KITTI 標注格式中,有一半以上的欄位是用不上的,為何英偉達卻十分偏好這個格式呢?

如果將視野放大到自動駕駛與 3D 應用領域的話,就能理解英偉達選擇這個格式的理由,因為 KITTI 數(shù)據(jù)集是由德國卡爾斯魯厄理工學院和豐田美國技術研究院聯(lián)合創(chuàng)辦,是目前國際上最大的自動駕駛場景下的計算機視覺算法評測數(shù)據(jù)集。

在物件檢測應用中只需要用到“類名”與“邊界框坐標”這兩部分,如果從其他數(shù)據(jù)集提取數(shù)據(jù)時只要找出這 5 個數(shù)據(jù),如果坐標格式為“起點坐標+長寬”的格式,也能簡單轉換成“起點坐標+重點坐標”形式,寫入對應的 KITTI 標注文件中,其他欄位的內(nèi)容 “補 0” 就可以,所以整個轉換過程還不是太麻煩。

在 TAO 的視覺項目中的 face-mask-detection/data_utils 里,提供大約 4 轉換成 KITTI 格式的工具,能提供大家作為參考。

只要能將不同數(shù)據(jù)集之間的格式轉換弄通,就能非常高效的從龐大的數(shù)據(jù)集資源中,輕松獲取我們所需要的類別數(shù)據(jù),進一步訓練出自己專屬的模型,因此這個過程對使用深度學習的工程師是很重要的基本工作。

原文標題:NVIDIA Jetson Nano 2GB 系列文章(58):視覺類的數(shù)據(jù)格式

文章出處:【微信公眾號:NVIDIA英偉達企業(yè)解決方案】歡迎添加關注!文章轉載請注明出處。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • NVIDIA
    +關注

    關注

    14

    文章

    4986

    瀏覽量

    103046
  • 檢測
    +關注

    關注

    5

    文章

    4488

    瀏覽量

    91470
  • 數(shù)據(jù)格式

    關注

    0

    文章

    30

    瀏覽量

    8893

原文標題:NVIDIA Jetson Nano 2GB 系列文章(58):?視覺類的數(shù)據(jù)格式

文章出處:【微信號:NVIDIA-Enterprise,微信公眾號:NVIDIA英偉達企業(yè)解決方案】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ads1158讀取數(shù)據(jù),得到的數(shù)據(jù)格式是什么樣的?。?/a>

    = SPDR; return data; } 想請教一下,其他兩種數(shù)據(jù),得到的數(shù)據(jù)格式是什么樣的???
    發(fā)表于 12-24 08:28

    API接口有哪些常見的安全問題

    和XML是主流的數(shù)據(jù)格式,幾乎所有API接口都支持這兩種數(shù)據(jù)格式。 JSON是一輕量級的數(shù)據(jù)交換格式,最大的特點就是具有良好的可讀性和便于快速編寫的特性,可在不同平臺之間進行
    的頭像 發(fā)表于 12-15 09:54 ?133次閱讀
    API接口有哪些常見的安全問題

    FP8數(shù)據(jù)格式在大型模型訓練中的應用

    本文主要介紹了 FP8 數(shù)據(jù)格式在大型模型訓練中的應用、挑戰(zhàn)及最佳實踐,展示了 FP8 在提升訓練速度和效率方面的潛力和實際效果。
    的頭像 發(fā)表于 11-19 14:54 ?285次閱讀
    FP8<b class='flag-5'>數(shù)據(jù)格式</b>在大型模型訓練中的應用

    EPS格式圖像的最佳使用場景

    EPS(Encapsulated PostScript)是一廣泛使用的矢量圖形文件格式,最初由Adobe公司開發(fā)。它以其高兼容性、可縮放性和高質量的圖像輸出而受到設計師和出版業(yè)的青睞。 1. 專業(yè)
    的頭像 發(fā)表于 11-19 10:33 ?339次閱讀

    ADC3561轉換成什么數(shù)據(jù)格式便于高速實時通過WIFI發(fā)送?

    5MHz的16位采樣率,LVDS格式數(shù)據(jù)輸出,使用串口轉WIFI模塊受限于串口波特率無法實現(xiàn)實時發(fā)送,請問轉換成什么數(shù)據(jù)格式便于高速實時通過WIFI發(fā)送
    發(fā)表于 11-18 08:06

    請問AIC3106怎么設置成單聲道32位數(shù)據(jù)格式?

    AIC3106 怎樣設置成單聲道 32位數(shù)據(jù)格式?
    發(fā)表于 11-04 08:17

    SRC4192能否支持輸入TDM格式音頻數(shù)據(jù),輸出I2S,進行數(shù)據(jù)格式轉換?

    SRC4192這款芯片能否支持輸入TDM格式音頻數(shù)據(jù),輸出I2S,進行數(shù)據(jù)格式轉換。在我看TI這款芯片的datasheet時候管腳描述如下: 我理解是可以TDM輸入的,可是后面關于輸入輸出
    發(fā)表于 10-25 11:41

    噪聲傳導的兩種模式

    噪聲傳導有兩種模式,一為差模傳導,一為共模傳導。
    的頭像 發(fā)表于 10-15 11:33 ?294次閱讀
    噪聲傳導的<b class='flag-5'>兩種</b>模式

    請問TLV320AIC3268的ADC轉換后的數(shù)據(jù)格式是什么樣的?

    我在使用TLV320AIC3268,但是不知道ADC轉換后的數(shù)據(jù)格式是什么樣的?比如是二進制補碼嗎?轉后的數(shù)據(jù)與輸入的模擬信號的電壓值有什么關系?
    發(fā)表于 10-14 07:48

    態(tài)勢數(shù)據(jù)有哪些格式

    智慧華盛恒輝態(tài)勢數(shù)據(jù)格式可以因應用場景和數(shù)據(jù)來源的不同而有所差異。以下是一些常見的態(tài)勢數(shù)據(jù)格式,并進行了分點表示和歸納: 智慧華盛恒輝態(tài)勢數(shù)據(jù)
    的頭像 發(fā)表于 06-24 17:44 ?310次閱讀

    態(tài)勢數(shù)據(jù)有哪些格式和內(nèi)容呢

    智慧華盛恒輝態(tài)勢數(shù)據(jù)格式和內(nèi)容可以根據(jù)其應用領域和具體需求而有所不同。以下是關于態(tài)勢數(shù)據(jù)格式和內(nèi)容的清晰歸納: 智慧華盛恒輝數(shù)據(jù)格式 XML: 定義:一
    的頭像 發(fā)表于 06-11 16:57 ?506次閱讀

    請問CAN數(shù)據(jù)域的數(shù)據(jù)格式該如何定義?以什么標準定義?

    最近需要實現(xiàn)上位機與下位機的CAN通訊,現(xiàn)在雙方苦于不知該如何定義數(shù)據(jù)格式,尤其是傳輸浮點數(shù)據(jù)~~ 起初經(jīng)過討論直接根據(jù)個人主觀意愿定義了雙方的數(shù)據(jù)協(xié)議,,,其后,boss要求采用標準進行定義
    發(fā)表于 05-09 07:20

    請問TouchGFX支不支持rgb-16bit數(shù)據(jù)格式

    請教下,TouchGFX 支不支持 rgb-16bit 數(shù)據(jù)格式 ?
    發(fā)表于 04-23 06:05

    如何實現(xiàn)PIL和OpenCV之間圖像數(shù)據(jù)的轉換呢?

    PIL圖像數(shù)據(jù)格式轉換成OpenCV圖像數(shù)據(jù)格式
    的頭像 發(fā)表于 02-25 13:43 ?1216次閱讀

    視覺檢測設備的分類

    視覺檢測設備是一利用攝像頭、傳感器、光源和圖像處理算法等技術組成的設備,用于檢測、識別、分析和判斷圖像或視頻中目標物體的特征、屬性、狀態(tài)或
    的頭像 發(fā)表于 02-21 09:41 ?1380次閱讀
    視覺<b class='flag-5'>檢測</b>設備的<b class='flag-5'>分類</b>