前言:
通常情況下,新模型發(fā)布后,其對(duì)應(yīng)的 github 倉庫中都會(huì)有提供自定數(shù)據(jù)集訓(xùn)練的任務(wù)腳本,開發(fā)者可以基于自己的數(shù)據(jù)集,快速實(shí)現(xiàn)對(duì)該模型結(jié)構(gòu)的訓(xùn)練與驗(yàn)證。但往往這些訓(xùn)練腳本僅支持部分的數(shù)據(jù)集格式,例如 YOLOv8 的官方倉庫,就是需要開發(fā)者的數(shù)據(jù)集格式滿足 Ultralytics 標(biāo)準(zhǔn),或是手動(dòng)編寫腳本進(jìn)行,將原本的數(shù)據(jù)集格式轉(zhuǎn)化為 Ultralytics 格式,但這部分工作其實(shí)并不影響模型訓(xùn)練后的部署效果,因此如果有一個(gè)工具幫助我們非常便捷地進(jìn)行訓(xùn)練數(shù)據(jù)的管理與格式轉(zhuǎn)換,將大大提升模型訓(xùn)練的生產(chǎn)效率。
Datumaro 套件介紹
項(xiàng)目地址:https://github.com/openvinotoolkit/datumaro Datumaro 是一個(gè)支持 Python 和命令行調(diào)用兩種調(diào)用方式的標(biāo)注數(shù)據(jù)管理工具。它可以支持以下功能: >標(biāo)注數(shù)據(jù)格式雙向轉(zhuǎn)換可以適用于分類,分割,檢測(cè),關(guān)鍵點(diǎn)檢測(cè),文本定位,文本識(shí)別、重識(shí)別以及點(diǎn)云任務(wù)的數(shù)據(jù)處理,支持以下標(biāo)注數(shù)據(jù)格式的互相轉(zhuǎn)換:-
CIFAR-10/100(classification)
-
Cityscapes
-
COCO(image_info,instances,person_keypoints,captions,labels,panoptic,stuff)
-
CVAT
-
ImageNet
-
Kitti(segmentation,detection,3D raw/velodyne points)
-
LabelMe
-
LFW(classification,person re-identification,landmarks)
-
MNIST(classification)
-
Open Images
-
PASCAL VOC(classification,detection,segmentation,action_classification,person_layout)
-
YOLO(bboxes)
-
多個(gè)數(shù)據(jù)集合并
-
數(shù)據(jù)集標(biāo)簽過濾,例如刪除特定標(biāo)簽的圖片
-
修改數(shù)據(jù)集標(biāo)簽
-
數(shù)據(jù)集分割,例如訓(xùn)練集、驗(yàn)證集與測(cè)試集
-
數(shù)據(jù)集采樣,例如基于 Entropy 的方法篩選合適的訓(xùn)練集樣本
Datumaro 套件實(shí)踐
Datumaro 是支持命令行調(diào)用的模式,因此我們可以非常方便地使用 1 行命令完成 2 種不同格式數(shù)據(jù)的轉(zhuǎn)換,下面我將基于命令行模式,演示一下 Datumaro 處理標(biāo)注數(shù)據(jù)格式轉(zhuǎn)化時(shí)的基本方法。 ·Datumaro 安裝與基本使用方法Datumaro 支持基于 PyPI 的安裝方式,如果想在第一時(shí)間體驗(yàn)最新的功能也可以基于 github倉庫直接安裝# From PyPI:$pipinstalldatumaro[default]$pipinstall'git+https://github.com/openvinotoolkit/datumaro[default]'Datumaro 的命令行調(diào)用方法非常簡單,如果你已經(jīng)有了一組標(biāo)準(zhǔn)格式的數(shù)據(jù)集,只需要在命令行中定于原始數(shù)據(jù)格式和路徑,以及轉(zhuǎn)換后的數(shù)據(jù)格式及路徑即可:$datumconvert-ifvoc-i-fcoco-o·YOLOv8目標(biāo)檢測(cè)數(shù)據(jù)集實(shí)戰(zhàn)正好最近在準(zhǔn)備表計(jì)識(shí)別的項(xiàng)目,這里借用一下飛槳提供的表計(jì)檢測(cè)數(shù)據(jù)集,目標(biāo)是使用 YOLOv8 模型構(gòu)建表盤目標(biāo)檢測(cè)任務(wù)。 數(shù)據(jù)集下載地址:https://bj.bcebos.com/paddlex/examples/meter_reader/datasets/meter_det.tar.gz 下載數(shù)據(jù)集后可以看到文件目錄結(jié)構(gòu)如下:├── meter_det│ ├── annotations│ ├── instance_train.json│ └── instance_test.json│ ├── test│ └── train其實(shí)中 train 和 test 目錄下分別保存了圖片格式的訓(xùn)練數(shù)據(jù)和驗(yàn)證數(shù)據(jù):├── test│ ├── 20190822_105.jpg│ ├── 20190822_110.jpg│ ├── 20190822_123.jpg│ ├── 20190822_124.jpg│ ├── 20190822_127.jpg│ ├── …我們可以隨機(jī)打開一張圖片驗(yàn)證:| 圖片數(shù)據(jù)示例 第一步我們可先先使用 datum 命令自動(dòng)識(shí)別一下該數(shù)據(jù)集的格式:$datum detect './meter_det' 輸出:Detected format: image_dir可以看到由于該數(shù)據(jù)集并沒有符合某類標(biāo)準(zhǔn)的格式規(guī)范,因此 Datumaro 將其判斷為普通的圖片文件夾。這里我可以手動(dòng)查詢幾種數(shù)據(jù)集的標(biāo)準(zhǔn)格式,找到和原始數(shù)據(jù)集最相似的一種,然后進(jìn)行手動(dòng)修改。通過對(duì)于 Datumaro 支持的幾種數(shù)據(jù)格式標(biāo)準(zhǔn)進(jìn)行查詢https://openvinotoolkit.github.io/datumaro/latest/docs/data-formats/supported_formats.html,我們發(fā)現(xiàn)原始數(shù)據(jù)的格式和COCO最為類似: └─ Dataset/├── dataset_meta.json # a list of custom labels (optional)├── images/│ ├── train/│ │ ├──│ │ ├──│ │ └── ...│ └── val/│ ├──│ ├──│ └── ...└── annotations/├── _.json└── ... 所以我們手動(dòng)對(duì)原始目錄進(jìn)行略微改造,增加一個(gè)images目錄用于單獨(dú)存放圖片數(shù)據(jù),改造結(jié)果如下:├── meter_det_coco│ ├── annotations│ ├── instances_train.json│ └── instances_val.json│ └── images├── train└── val這里有個(gè)容易被忽略的點(diǎn),因?yàn)?Datumaro 會(huì)根據(jù) .json 標(biāo)簽文件的文件名來判斷該數(shù)據(jù)集的用途,例如檢測(cè)或者分割,所以我們一定要將示例中總 結(jié)
Datumaro 是一個(gè)非常強(qiáng)大的標(biāo)注數(shù)據(jù)管理工具,幫助開發(fā)者在各種數(shù)據(jù)標(biāo)準(zhǔn)間輕松實(shí)現(xiàn)格式的互相轉(zhuǎn)換,并實(shí)現(xiàn)對(duì)這些數(shù)據(jù)集的有效管理和改造,大大提升了既有數(shù)據(jù)集的復(fù)用性,完成對(duì)新模型效果進(jìn)行快速驗(yàn)證。
-
數(shù)據(jù)管理
+關(guān)注
關(guān)注
1文章
294瀏覽量
19610 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1208瀏覽量
24689
原文標(biāo)題:一個(gè)工具搞定標(biāo)注數(shù)據(jù)格式轉(zhuǎn)換
文章出處:【微信號(hào):SDNLAB,微信公眾號(hào):SDNLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論