<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

一個工具搞定標注數據格式轉換

SDNLAB ? 來源:SDNLAB ? 2023-06-13 17:00 ? 次閱讀

前言:

通常情況下,新模型發布后,其對應的 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)

  • TF Detection API(bboxes,masks)

  • 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│ ├── …我們可以隨機打開一張圖片驗證:d55afbb6-09c4-11ee-962d-dac502259ad0.png| 圖片數據示例 第一步我們可先先使用 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 標簽文件的文件名來判斷該數據集的用途,例如檢測或者分割,所以我們一定要將示例中 部分的名字改為 “instances”,接下來我們再使用 detect 方法檢測下修改后的數據集類型: $ datum detect './meter_det_coco'輸出:Detected format: coco可以看到 Datumaro 已經將其識別為標準的 COCO 格式類型。最后我們就可以調用之前提到的命令一鍵完成對數據集從 COCO 到 Ultralytics 標準的轉換:$ datum convert -if coco -i '/home/ethan/intel/data/meter_det_coco' -f yolo_ultralytics -o '/home/ethan/intel/data/meter_det_yolo' -- --save-mediaP.S: --save-media 自動將圖片文件復制到新的數據集目錄下轉換后的數據集目錄如下:├── meter_det_yolo│ ├── data.yaml│ ├── images│ │ ├── train│ │ └── val│ ├── labels│ │ ├── train│ │ └── val│ ├── train.txt│ └── val.txt└── table.jpg有了這樣一個 Ultralytics 標準數據集后,我們就可以直接將其對應的路徑放到 YOLOv8 倉庫中的配置文件中,然后開啟訓練腳本進行模型創建。model.train(data='data.yaml', epochs=100, imgsz=640)

總 結

Datumaro 是一個非常強大的標注數據管理工具,幫助開發者在各種數據標準間輕松實現格式的互相轉換,并實現對這些數據集的有效管理和改造,大大提升了既有數據集的復用性,完成對新模型效果進行快速驗證。



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

    關注

    1

    文章

    268

    瀏覽量

    19491
  • 數據集
    +關注

    關注

    4

    文章

    1182

    瀏覽量

    24441

原文標題:一個工具搞定標注數據格式轉換

文章出處:【微信號:SDNLAB,微信公眾號:SDNLAB】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    【中級】labview每日教【11.21】TDMS數據格式

    1.各種數據格式之間華山論劍2.深入淺出帶你了解TDMS數據格式的用法[hide] [/hide]
    發表于 11-21 09:38

    數據格式如何修改

    向大神求助,想問下單片機和計算機通信,數據格式怎么改,是在上位機部分改嗎?想實現用單片機按鍵控制計數器,將數值發給計算機,然后上位機編寫的窗口上能顯示十進制數現在能夠實現的是,發送數據0x01,接收顯示的是81,發送
    發表于 12-24 22:58

    標準測試數據格式STDF你了解多少

    STDF (標準測試數據格式) 是我們半導體測試行業的最主要的數據格式,包含了summary信息和所有測試項的測試結果。泰瑞達的Image測試機上都自帶了很多stdf工具,讓你可以讀取和分析stdf
    發表于 06-18 10:41

    常用的3D模型格式轉換工具

    。 3DTransVidia是款功能強大的三維CAD模型數據格式轉換與模型錯誤修復軟件,可以針對幾乎所有格式的三維模型進行數據格式間的
    發表于 08-08 16:56

    JSON 數據格式

    JavaScript 中處理 JSON 數據不需要任何特殊的 API 或工具包。將 JSON 數據賦值給變量例如,可以創建新的 Jav
    發表于 03-30 14:48

    數據格式不同,如何在轉換求均值

    在圖1中,可讀取wav格式的文件,亦可播放,在后續的求均值中便會出錯,是否因為數據格式不對?或者是wav格式的文件用不用先用MATLAB轉成txt的數據然后再求,如果是那樣的話還能播放
    發表于 03-10 10:19

    求助,這個數據格式怎么解讀出來

    這是觸摸板芯片發來的數據格式。當觸摸板有數據的時候INT腳會拉低,來通知MCU來讀取數據,數據格式如下:我現在要怎么讀???接到mcu的引腳有sda,scl,int三
    發表于 09-05 14:55

    標準數據格式實用程序

    標準數據格式實用程序
    發表于 01-23 17:02

    串口的數據格式

    文章目錄.前言二.串口數據的發送與接收三.串口波特率四.串口的數據格式(1)起始位(2)數據位(1)奇偶檢驗位(1)停止位五.物理接口的形式六.TTL、RS232、RS485電平標準
    發表于 08-06 07:28

    如何使用串口產生9位數據格式?

    在UA_LCR寄存器的SPE位、EPE位及PBE位,并且寫入一個字節到UA_THR寄存器,串口就會傳送9位數據格式。
    發表于 06-15 10:17

    數據格式,計算機中數據格式詳細介紹

    數據格式,計算機中數據格式詳細介紹    計算機中常用的數據表示格式有兩種,一是定點格式,二是浮點格式
    發表于 04-13 11:36 ?3396次閱讀

    新型數據格式轉換的FPGA實現

    提出了一種數據格式轉換方法。使用VHDL語言,采用流水線處理方式將ASCII碼所表示的一定范圍內的實數轉換為單精度浮點數。
    發表于 11-18 15:39 ?765次閱讀
    新型<b class='flag-5'>數據格式</b><b class='flag-5'>轉換</b>的FPGA實現

    gps數據格式含義說明

    本內容介紹了gps數據格式的含義,給出了GPS輸出的是NMEA-0183的數據格式,GPS固定數據輸出語句($GPGGA)
    發表于 12-19 14:57 ?1.2w次閱讀

    串口通訊的基本概念、數據格式

    本文介紹了串口通訊的基本概念、數據格式、通訊方式、典型的串口通訊標準等內容。
    的頭像 發表于 04-23 11:13 ?4800次閱讀
    串口通訊的基本概念、<b class='flag-5'>數據格式</b>

    一個工具搞定標注數據格式轉換

    訓練后的部署效果,因此如果有一個工具幫助我們非常便捷地進行訓練數據的管理與格式轉換,將大大提升模型訓練的生產效率。
    的頭像 發表于 05-26 10:28 ?507次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>