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