国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

目標檢測數(shù)據(jù)集格式轉(zhuǎn)換:將labelme格式轉(zhuǎn)為YOLO以及VOC格式

這篇具有很好參考價值的文章主要介紹了目標檢測數(shù)據(jù)集格式轉(zhuǎn)換:將labelme格式轉(zhuǎn)為YOLO以及VOC格式。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

一個目標檢測項目需要自己找圖片標注數(shù)據(jù)進行訓(xùn)練,訓(xùn)練需要YOLO格式,但數(shù)據(jù)增廣需要VOC格式,該文記錄如何將labelme標注的數(shù)據(jù)格式轉(zhuǎn)為YOLO格式,再從YOLO格式轉(zhuǎn)為VOC格式,只作為自己用的記錄,如果你剛好也需要這么干,或者需要文中提到的某一種轉(zhuǎn)換,也可以參考一下。文中有些代碼是參考其他地方的,時間長已經(jīng)記不清了,如有侵權(quán)請聯(lián)系更改。
注意:路徑不要有中文,標簽也用相應(yīng)的英文


第一步:將圖片和標簽分為兩個單獨的文件夾

手動完成即可,標簽的文件夾最好加個json后綴,因為后面會有其他格式的標簽文件。
目標檢測數(shù)據(jù)集格式轉(zhuǎn)換:將labelme格式轉(zhuǎn)為YOLO以及VOC格式

第二步:將jpeg、png等格式都改為jpg格式

因為搜集的圖片什么格式都有,為了方便訓(xùn)練,統(tǒng)一為jpg格式。

代碼如下:

# trans_others_to_jpg.py

import os
import cv2 as cv
 
image_path = 'D:/DeskTop/Datasets/clothes/images/'    #設(shè)置圖片讀取路徑
save_path = 'D:/DeskTop/Datasets/clothes/images_jpg/'    #設(shè)置圖片保存路徑,新建文件夾,不然其他格式會依然存在
 
if not os.path.exists(save_path):    #判斷路徑是否正確,并打開
    os.makedirs(save_path)
 
image_file = os.listdir(image_path)
# print(image_file)
for image in image_file:
    # print(image)
    if image.split('.')[-1] in ['bmp', 'jpg', 'jpeg', 'png', 'JPG', 'PNG']:
        str = image.rsplit(".", 1)    #從右側(cè)判斷是否有符號“.”,并對image的名稱做一次分割。如112345.jpeg分割后的str為["112345","jpeg"]
        # print(str)
        output_img_name = str[0] + ".jpg"    #取列表中的第一個字符串與“.jpg”放在一起。
        # print(output_img_name)
        dir = os.path.join(image_path, image)
        # print("dir:",dir)
        src = cv.imread(dir)
        # print(src)
        cv.imwrite(save_path + output_img_name, src)
print('FINISHED')

第三步:重命名圖片和標簽

將文件和對應(yīng)的標簽重命名為從六位數(shù)的名字,從000001開始,注意:圖片和標簽都需要進行重命名

代碼如下:

# rename.py

import os

path = "D:/DeskTop/Datasets/clothes/label_json/"    # json標簽文件的保存路徑
filelist = os.listdir(path)  
count=1
for file in filelist:		
    print(file)
for file in filelist:   
    Olddir=os.path.join(path,file)  
    if os.path.isdir(Olddir):  
        continue
    filename=os.path.splitext(file)[0]   
    filetype=os.path.splitext(file)[1]  
    Newdir=os.path.join(path,str(count).zfill(6)+filetype)     # zfill(6):表示命名為6位數(shù)
    os.rename(Olddir,Newdir)
    
    count+=1

第四步:修改json中的imagePath

因為上一步只改變了名字,標簽內(nèi)的imagePath并沒有跟著變,所以還要改一下,和圖片對應(yīng)起來,其實這一步不做也沒事,因為YOLO格式就是根據(jù)標簽文件名讀取圖片路徑的,為了以后可能需要json的標簽,還是改一下最好。

代碼如下:

# change_json_imagePath.py

import json
import os
import re
 
path = 'D:/DeskTop/Datasets/clothes/label_json/'  # json文件路徑
dirs = os.listdir(path)
 
num_flag = 0
for file in dirs:  # 循環(huán)讀取路徑下的文件并篩選輸出
    if os.path.splitext(file)[1] == ".json":  # 篩選Json文件
        num_flag = num_flag + 1
        print("path = ", file)                            # 此處file為json文件名,之前修改為與圖片jpg同名
        # print(os.path.join(path,file))
        with open(os.path.join(path, file), 'r') as load_f: # 若有中文,可將r改為rb
            load_dict = json.load(load_f)                   # 用json.load()函數(shù)讀取文件句柄,可以直接讀取到這個文件中的所有內(nèi)容,并且讀取的結(jié)果返回為python的dict對象
        n = len(load_dict)  # 獲取字典load_dict中l(wèi)ist值
        print('n = ', n)
        print("imagePath = ", load_dict['imagePath'])                # 此處因為我的json文件要修改的imagePath, 沒有那么多彎彎繞, 直接在頂層, 所以一層[]即可, 如果你們的不是這種結(jié)構(gòu), 需自行修改
 
 
        filename = file[:-5]                            # 去掉拓展名5位  .json
        print("filename = ", filename)
        load_dict['imagePath'] = filename + '.jpg'       # 存到當前路徑下, 如果有其它存儲要求, 自行修改即可
        print("new imagePath = ", load_dict['imagePath'])
 
        with open(os.path.join(path, file), 'w') as dump_f:
            json.dump(load_dict, dump_f)
 
if (num_flag == 0):
    print('所選文件夾不存在json文件,請重新確認要選擇的文件夾')
else:
    print('共{}個json文件'.format(num_flag))

第五步:將labelme格式轉(zhuǎn)為YOLO格式

將labelme的json格式轉(zhuǎn)為YOLO的txt格式,同樣保存txt標簽的文件夾最好也加個后綴,方便和json區(qū)分,注意把代碼第12行改為自己數(shù)據(jù)集的類別,從0開始

代碼如下:

# trans_labelme_to_yolo.py

import cv2
import os
import json
import shutil
import numpy as np
from pathlib import Path
from glob import glob
 
id2cls = {0: 'clothing'}
cls2id = {'clothing': 0}
 
#支持中文路徑
def cv_imread(filePath):
    cv_img=cv2.imdecode(np.fromfile(filePath,dtype=np.uint8),flags=cv2.IMREAD_COLOR)
    return cv_img
 
def labelme2yolo_single(img_path,label_file):
    anno= json.load(open(label_file, "r", encoding="utf-8"))
    shapes = anno['shapes']
    w0, h0 = anno['imageWidth'], anno['imageHeight']
    image_path = os.path.basename(img_path + anno['imagePath'])
    labels = []
    for s in shapes:
        pts = s['points']
        x1, y1 = pts[0]
        x2, y2 = pts[1]
        x = (x1 + x2) / 2 / w0 
        y = (y1 + y2) / 2 / h0
        w  = abs(x2 - x1) / w0
        h  = abs(y2 - y1) / h0
        cid = cls2id[s['label']]        
        labels.append([cid, x, y, w, h])
    return np.array(labels), image_path
 
def labelme2yolo(img_path,labelme_label_dir, save_dir='res/'):
    labelme_label_dir = str(Path(labelme_label_dir)) + '/'
    save_dir = str(Path(save_dir))
    yolo_label_dir = save_dir + '/'
    """ yolo_image_dir = save_dir + 'images/'
    if not os.path.exists(yolo_image_dir):
        os.makedirs(yolo_image_dir) """
    if not os.path.exists(yolo_label_dir):
        os.makedirs(yolo_label_dir)
 
    json_files = glob(labelme_label_dir + '*.json')
    for ijf, jf in enumerate(json_files):
        print(ijf+1, '/', len(json_files), jf)
        filename = os.path.basename(jf).rsplit('.', 1)[0]
        labels, image_path = labelme2yolo_single(img_path,jf)
        if len(labels) > 0:
            np.savetxt(yolo_label_dir + filename + '.txt', labels)
            # shutil.copy(labelme_label_dir + image_path, yolo_image_dir + image_path)
    print('Completed!')
    
if __name__ == '__main__':
    img_path = 'D:/DeskTop/Datasets/clothes/images/'    # 數(shù)據(jù)集圖片的路徑
    json_dir = 'D:/DeskTop/Datasets/clothes/label_json/'    # json標簽的路徑
    save_dir = 'D:/DeskTop/Datasets/clothes/label_txt/'     # 保存的txt標簽的路徑
    labelme2yolo(img_path,json_dir, save_dir)

第六步:將YOLO格式轉(zhuǎn)為xml格式

因為數(shù)據(jù)增廣需要xml格式,所以再進行一次轉(zhuǎn)換,注意把代碼第十四行改為自己數(shù)據(jù)集的類別

代碼如下:

# trans_YOLOtxt_to_VOCxml.py

import xml.dom.minidom
import glob
from PIL import Image
from math import ceil
import shutil
import os
 
yolo_file = 'D:/DeskTop/Datasets/clothes/label_txt2/'# yolo格式下的存放txt標注文件的文件夾
turn_xml_file = 'D:/DeskTop/Datasets/clothes/label_xml/'# 轉(zhuǎn)換后儲存xml的文件夾地址
img_file = 'D:/DeskTop/Datasets/clothes/images/'# 存放圖片的文件夾
 
labels = ['clothes']    #這里要改為自己的類別
src_img_dir = img_file
src_txt_dir = yolo_file
src_xml_dir = turn_xml_file #轉(zhuǎn)換后儲存xml的文件夾地址
 
img_Lists = glob.glob(src_img_dir + '/*.jpg')
img_basenames = []
for item in img_Lists:
    img_basenames.append(os.path.basename(item))#os.path.basename返回path最后的文件名
 
img_names = []
for item in img_basenames:
    temp1, temp2 = os.path.splitext(item) #os.path.splitext(“文件路徑”)    分離文件名與擴展名
    img_names.append(temp1)
 
total_num = len(img_names) #統(tǒng)計當前總共要轉(zhuǎn)換的圖片標注數(shù)量
count = 0 #技術(shù)變量
for img in img_names: #這里的img是不加后綴的圖片名稱,如:'GF3_SAY_FSI_002732_E122.3_N29.9_20170215_L1A_HH_L10002188179__1__4320___10368'
    count +=1
    if count % 1000 == 0:
        print("當前轉(zhuǎn)換進度{}/{}".format(count,total_num))
    im = Image.open((src_img_dir + img + '.jpg'))
    width, height = im.size
 
    #打開yolo格式下的txt文件
    gt = open(src_txt_dir + img + '.txt').read().splitlines()
    if gt:
        # 將主干部分寫入xml文件中
        xml_file = src_xml_dir + img + '.xml'
        xml_file = open((src_xml_dir + img + '.xml'), 'w')
        xml_file.write('<annotation>\n')
        xml_file.write('    <folder>VOC2007</folder>\n')
        xml_file.write('    <filename>' + str(img) + '.jpg' + '</filename>\n')
        xml_file.write('    <size>\n')
        xml_file.write('        <width>' + str(width) + '</width>\n')
        xml_file.write('        <height>' + str(height) + '</height>\n')
        xml_file.write('        <depth>3</depth>\n')
        xml_file.write('    </size>\n')
 
        # write the region of image on xml file
        for img_each_label in gt:
            spt = img_each_label.split(' ')  # 這里如果txt里面是以逗號‘,’隔開的,那么就改為spt = img_each_label.split(',')。
            xml_file.write('    <object>\n')
            xml_file.write('        <name>' + str(labels[int(float(spt[0]))]) + '</name>\n')
            xml_file.write('        <pose>Unspecified</pose>\n')
            xml_file.write('        <truncated>0</truncated>\n')
            xml_file.write('        <difficult>0</difficult>\n')
            xml_file.write('        <bndbox>\n')
 
            center_x = round(float(spt[1].strip()) * width)
            center_y = round(float(spt[2].strip()) * height)
            bbox_width = round(float(spt[3].strip()) * width)
            bbox_height = round(float(spt[4].strip()) * height)
            xmin = str(int(center_x - bbox_width / 2))
            ymin = str(int(center_y - bbox_height / 2))
            xmax = str(int(center_x + bbox_width / 2))
            ymax = str(int(center_y + bbox_height / 2))
 
            xml_file.write('            <xmin>' + xmin + '</xmin>\n')
            xml_file.write('            <ymin>' + ymin + '</ymin>\n')
            xml_file.write('            <xmax>' + xmax + '</xmax>\n')
            xml_file.write('            <ymax>' + ymax + '</ymax>\n')
            xml_file.write('        </bndbox>\n')
            xml_file.write('    </object>\n')
 
        xml_file.write('</annotation>')
    else:
        # 將主干部分寫入xml文件中
        xml_file = open((src_xml_dir + '/' + img + '.xml'), 'w')
        xml_file.write('<annotation>\n')
        xml_file.write('    <folder>VOC2007</folder>\n')
        xml_file.write('    <filename>' + str(img) + '.jpg' + '</filename>\n')
        xml_file.write('    <size>\n')
        xml_file.write('        <width>' + str(width) + '</width>\n')
        xml_file.write('        <height>' + str(height) + '</height>\n')
        xml_file.write('        <depth>3</depth>\n')
        xml_file.write('    </size>\n')
        xml_file.write('</annotation>')

第七步:可視化

驗證標簽轉(zhuǎn)換后知否正確,用xml標簽進行可視化,多測試幾張圖片,找一些目標多的圖片驗證標簽的正確性

代碼如下:

# visualization_xml_OD.py

from lxml import etree
import cv2 as cv
import matplotlib.pyplot as plt
from copy import deepcopy
import numpy as np


def parse_xml_to_dict(xml):
    """
    將xml文件解析成字典形式,參考tensorflow的recursive_parse_xml_to_dict
    Args:
        xml: xml tree obtained by parsing XML file contents using lxml.etree

    Returns:
        Python dictionary holding XML contents.
    """

    if len(xml) == 0:  # 遍歷到底層,直接返回tag對應(yīng)的信息
        return {xml.tag: xml.text}

    result = {}
    for child in xml:
        child_result = parse_xml_to_dict(child)  # 遞歸遍歷標簽信息
        if child.tag != 'object':
            result[child.tag] = child_result[child.tag]
        else:
            if child.tag not in result:  # 因為object可能有多個,所以需要放入列表里
                result[child.tag] = []
            result[child.tag].append(child_result[child.tag])
    return {xml.tag: result}


def get_xml_info(xml_path):
    with open(xml_path) as fid:
        xml_str = fid.read()
    xml = etree.fromstring(xml_str)
    data = parse_xml_to_dict(xml)["annotation"]
    bboxes = []
    for index, obj in enumerate(data["object"]):
        # 獲取每個object的box信息
        xmin = int(obj["bndbox"]["xmin"])
        xmax = int(obj["bndbox"]["xmax"])
        ymin = int(obj["bndbox"]["ymin"])
        ymax = int(obj["bndbox"]["ymax"])
        # bbox = np.array([xmin, ymin, xmax, ymax])
        bbox = [xmin, ymin, xmax, ymax]
        bboxes.append(bbox)
    return bboxes


img_path = "D:/DeskTop/Datasets/clothes/images/000056.jpg"    # 需要可是化的圖片
xml_path = "D:/DeskTop/Datasets/clothes/label_xml/000056.xml"     # 圖片對應(yīng)的標簽
img = cv.imread(img_path)

bboxes = np.array(get_xml_info(xml_path))
for box in bboxes:
    pt1 = (box[0], box[1])
    pt2 = (box[2], box[3])
    cv.rectangle(img, pt1, pt2, (0, 0, 255), 4)



plt.figure(1)
plt.imshow(img[:, :, ::-1], cmap='gray')
plt.show()

最終結(jié)果

目標檢測數(shù)據(jù)集格式轉(zhuǎn)換:將labelme格式轉(zhuǎn)為YOLO以及VOC格式
最終的處理結(jié)果包含四個文件夾,數(shù)據(jù)集圖片以及三種類型的標簽

至此,從labelme格式轉(zhuǎn)為YOLO和VOC格式的任務(wù)就完成了。


下面是將txt標簽中的科學計數(shù)法表示轉(zhuǎn)為float的代碼,有需要的或是強迫癥患者可以參考一下。
代碼如下:
先將txt中的’+‘替換為’-’

# change_txt_'+'_to_'-'.py

import os
def trans(input_dir, output_dir, word, splitword):
        for root, dirs, files in os.walk(input_dir):
           for item in files:
               if os.path.splitext(item)[1] == ".txt":
                   f = open(input_dir+item, "r", encoding='UTF-8')
                   content = f.read()
                   content = content.replace(word, splitword)
                   with open(os.path.join(output_dir, item), 'w', encoding='UTF-8') as fval:
                           fval.write(content)
                   f.close()
                
                
if __name__ == '__main__':
   # 老文件夾
   input_dir = "D:\DeskTop\Datasets\clothes\label_txt/"
   # 新文件夾
   output_dir = "D:\DeskTop\Datasets\clothes\label_txt/"
   # 要刪除的字符
   word='+'
   # 要替換成的字符
   splitword = "-"
   trans(input_dir, output_dir, word, splitword)

再將科學計數(shù)法轉(zhuǎn)為float文章來源地址http://www.zghlxwxcb.cn/news/detail-473988.html

# !usr/bin env python
# -*- coding: utf-8 -*-
 
 
import re
import math
import os
 
 
def ConvertELogStrToValue(eLogStr):
    """
    convert string of natural logarithm base of E to value
    return (convertOK, convertedValue)
    eg:
    input:  -1.1694737e-03
    output: -0.001169
    input:  8.9455025e-04
    output: 0.000895
    """
 
    (convertOK, convertedValue) = (False, 0.0)
    foundEPower = re.search("(?P<coefficientPart>-?\d+\.\d+)e(?P<ePowerPart>-\d+)", eLogStr, re.I)
    #print "foundEPower=",foundEPower
    if(foundEPower):
        coefficientPart = foundEPower.group("coefficientPart")
        ePowerPart = foundEPower.group("ePowerPart")
        #print "coefficientPart=%s,ePower=%s"%(coefficientPart, ePower)
        coefficientValue = float(coefficientPart)
        ePowerValue = float(ePowerPart)
        #print "coefficientValue=%f,ePowerValue=%f"%(coefficientValue, ePowerValue)
        #math.e= 2.71828182846
        # wholeOrigValue = coefficientValue * math.pow(math.e, ePowerValue)
        wholeOrigValue = coefficientValue * math.pow(10, ePowerValue)
 
        #print "wholeOrigValue=",wholeOrigValue;
 
        (convertOK, convertedValue) = (True, wholeOrigValue)
    else:
        (convertOK, convertedValue) = (False, 0.0)
 
    return (convertOK, convertedValue)
 
def parseIntEValue(intEValuesStr):
    # print "intEValuesStr=", intEValuesStr
    intEStrList = re.findall("-?\d+\.\d+e-\d+", intEValuesStr)
    # intEStrList = intEValuesStr.split(' ')
    # print "intEStrList=", intEStrList
    for eachIntEStr in intEStrList:
        # intValue = int(eachIntEStr)
        # print "intValue=",intValue
        (convertOK, convertedValue) = ConvertELogStrToValue(eachIntEStr)
        #print "convertOK=%s,convertedValue=%f"%(convertOK, convertedValue)
        print("eachIntEStr=%s,\tconvertedValue=%f" % (eachIntEStr, convertedValue))
        trans(txt_path,txt_path,eachIntEStr,convertedValue)

def trans(input_dir, output_dir, word, splitword):
         for root, dirs, files in os.walk(input_dir):
            for item in files:
                if os.path.splitext(item)[1] == ".txt":
                    f = open(input_dir+item, "r", encoding='UTF-8')
                    content = f.read()
                    content = content.replace(str(word), str(splitword))
                    with open(os.path.join(output_dir, item), 'w', encoding='UTF-8') as fval:
                            fval.write(content)
                    f.close()
   
 
# intEValuesStr= 2.1690427e-005 -1.1694737e-003 -6.1193734e-004
# 8.9455025e-004 -8.6277081e-004 -7.2735757e-004
# intEStrList= ['2.1690427e-005', '-1.1694737e-003', '-6.1193734e-004', '8.9455025e-004', '-8.6277081e-004', '-7.2735757e-004']
# eachIntEStr=2.1690427e-005,     convertedValue=0.014615
# eachIntEStr=-1.1694737e-003,    convertedValue=-0.058225
# eachIntEStr=-6.1193734e-004,    convertedValue=-0.112080
# eachIntEStr=8.9455025e-004,     convertedValue=0.163843
# eachIntEStr=-8.6277081e-004,    convertedValue=-0.158022
# eachIntEStr=-7.2735757e-004,    convertedValue=-0.133220
 
if __name__ == "__main__":
    txt_path = "D:\DeskTop\Datasets\clothes\label_txt/"
    output_dir = "D:\DeskTop\Datasets\clothes\label_txt/"
    # data_path = "D:/DeskTop/000001.txt"
    for root, dirs, files in os.walk(txt_path):
        for item in files:
            if os.path.splitext(item)[1] == ".txt":
                with open(txt_path + item, 'r') as f:
                    for line in f.readlines():
                        linestr = line.strip()
                        # print linestr
                        parseIntEValue(linestr)

到了這里,關(guān)于目標檢測數(shù)據(jù)集格式轉(zhuǎn)換:將labelme格式轉(zhuǎn)為YOLO以及VOC格式的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • VOC/YOLO/COCO數(shù)據(jù)集格式轉(zhuǎn)換及LabelImg/Labelme/精靈標注助手Colabeler標注工具介紹

    VOC/YOLO/COCO數(shù)據(jù)集格式轉(zhuǎn)換及LabelImg/Labelme/精靈標注助手Colabeler標注工具介紹

    數(shù)據(jù)集格式:VOC(xml)、YOLO(txt)、COCO(json) 本文主要對 Label格式 ,以及 LabelImg、Labelme、精靈標注助手Colabeler 這常用的三種數(shù)據(jù)標注軟件進行介紹。 LabelImg是目標檢測數(shù)據(jù)標注工具,可以標注標注兩種格式: VOC標簽格式,標注的標簽存儲在xml文件 YOLO標簽格式,標注的標簽存儲在

    2023年04月22日
    瀏覽(29)
  • [數(shù)據(jù)集][目標檢測]昆蟲檢測數(shù)據(jù)集VOC+YOLO格式1873張7類別

    數(shù)據(jù)集格式:Pascal VOC格式+YOLO格式(不包含分割路徑的txt文件,僅僅包含jpg圖片以及對應(yīng)的VOC格式xml文件和yolo格式txt文件) 圖片數(shù)量(jpg文件個數(shù)):1873 標注數(shù)量(xml文件個數(shù)):1873 標注數(shù)量(txt文件個數(shù)):1873 標注類別數(shù):7 標注類別名稱:[\\\"Boerner\\\",\\\"Leconte\\\",\\\"Linnaeus\\\",\\\"acuminatus\\\",\\\"arma

    2024年03月19日
    瀏覽(36)
  • [數(shù)據(jù)集][目標檢測]牛羊檢測數(shù)據(jù)集VOC+YOLO格式3393張2類別

    數(shù)據(jù)集格式:Pascal VOC格式+YOLO格式(不包含分割路徑的txt文件,僅僅包含jpg圖片以及對應(yīng)的VOC格式xml文件和yolo格式txt文件) 圖片數(shù)量(jpg文件個數(shù)):3393 標注數(shù)量(xml文件個數(shù)):3393 標注數(shù)量(txt文件個數(shù)):3393 標注類別數(shù):2 標注類別名稱:[\\\"cow\\\",\\\"sheep\\\"] 每個類別標注的框數(shù): cow

    2024年03月19日
    瀏覽(25)
  • 道路坑洞數(shù)據(jù)集(坑洞目標檢測)VOC+YOLO格式650張

    道路坑洞數(shù)據(jù)集(坑洞目標檢測)VOC+YOLO格式650張

    ? ? 路面坑洞的形成原因是由于設(shè)計、施工、養(yǎng)護處理不當、控制不適和受氣候、環(huán)境、地質(zhì)、水文等自然因素影響,以及車輛的運行和車輛超載運行導(dǎo)致路面破損,出現(xiàn)坑洞的現(xiàn)象。 路面坑洞的分類: (1)路面混凝土板中坑洞:位于砼板表面,形狀小、深度淺多為不規(guī)則

    2024年02月04日
    瀏覽(16)
  • 目標檢測任務(wù)中常用的數(shù)據(jù)集格式(voc、coco、yolo)

    目標檢測任務(wù)中常用的數(shù)據(jù)集格式(voc、coco、yolo)

    VOC數(shù)據(jù)集(Annotation的格式是xmI) Pascal VOC數(shù)據(jù)集是目標檢測的常用的大規(guī)模數(shù)據(jù)集之一,從05年到12年都會舉辦比賽,比賽任務(wù)task: 分類Classification 目標檢測Object Detection 語義分割Class Segmentation 實例分割Object Segmentation Action Classification(專注于人體動作的一種分類) Person Layout(

    2024年02月14日
    瀏覽(28)
  • [數(shù)據(jù)集][目標檢測]茶葉病害數(shù)據(jù)集VOC+YOLO格式883張8類別

    數(shù)據(jù)集格式:Pascal VOC格式+YOLO格式(不包含分割路徑的txt文件,僅僅包含jpg圖片以及對應(yīng)的VOC格式xml文件和yolo格式txt文件) 圖片數(shù)量(jpg文件個數(shù)):883 標注數(shù)量(xml文件個數(shù)):883 標注數(shù)量(txt文件個數(shù)):883 標注類別數(shù):8 標注類別名稱:[\\\"algalleaf\\\",\\\"Anthracnose\\\",\\\"birdeyespot\\\",\\\"brownblight

    2024年01月16日
    瀏覽(27)
  • 100種目標檢測數(shù)據(jù)集【voc格式y(tǒng)olo格式j(luò)son格式coco格式】+YOLO系列算法源碼及訓(xùn)練好的模型

    100種目標檢測數(shù)據(jù)集【voc格式y(tǒng)olo格式j(luò)son格式coco格式】+YOLO系列算法源碼及訓(xùn)練好的模型

    提示:本文介紹并分享了應(yīng)用于 各行業(yè) 、 各領(lǐng)域 非常有用的 目標檢測數(shù)據(jù)集 (感謝您的關(guān)注+三連, 數(shù)據(jù)集持續(xù)更新中… ),其中絕大部分數(shù)據(jù)集作者 已應(yīng)用于各種實際落地項目 ,數(shù)據(jù)集 整體質(zhì)量好 , 標注精確 ,數(shù)據(jù)的 多樣性充分 , 訓(xùn)練 模型擬合較好 ,具有較高

    2023年04月09日
    瀏覽(26)
  • YOLO目標檢測——VOC2007數(shù)據(jù)集+已標注VOC格式標簽下載分享

    YOLO目標檢測——VOC2007數(shù)據(jù)集+已標注VOC格式標簽下載分享

    VOC2007數(shù)據(jù)集是一個經(jīng)典的目標檢測數(shù)據(jù)集,該數(shù)據(jù)集包含了20個常見的目標類別,涵蓋了人、動物、交通工具等多個領(lǐng)域,共同11220圖片。使用lableimg標注軟件標注,標注框質(zhì)量高,標簽格式為VOC格式(即xml標簽),可以直接用于YOLO系列的目標檢測。 數(shù)據(jù)集點擊下載 :YOLO目

    2024年02月09日
    瀏覽(32)
  • YOLO目標檢測——無人機航拍行人檢測數(shù)據(jù)集下載分享【含對應(yīng)voc、coc和yolo三種格式標簽】

    YOLO目標檢測——無人機航拍行人檢測數(shù)據(jù)集下載分享【含對應(yīng)voc、coc和yolo三種格式標簽】

    實際項目應(yīng)用 :智能交通管理、城市安防監(jiān)控、公共安全救援等領(lǐng)域 數(shù)據(jù)集說明 :無人機航拍行人檢測數(shù)據(jù)集,真實場景的高質(zhì)量圖片數(shù)據(jù),數(shù)據(jù)場景豐富 標簽說明 :使用lableimg標注軟件標注,標注框質(zhì)量高,含voc(xml)、coco(json)和yolo(txt)三種格式標簽,分別存放在不同文件

    2024年01月18日
    瀏覽(178)
  • YOLO目標檢測——棉花病蟲害數(shù)據(jù)集+已標注txt格式標簽下載分享

    YOLO目標檢測——棉花病蟲害數(shù)據(jù)集+已標注txt格式標簽下載分享

    實際項目應(yīng)用 :棉花病蟲害防治 數(shù)據(jù)集說明 :棉花病蟲害檢測數(shù)據(jù)集,真實場景的高質(zhì)量圖片數(shù)據(jù),數(shù)據(jù)場景豐富 標簽說明 :使用lableimg標注軟件標注,標注框質(zhì)量高,含voc(xml)、coco(json)和yolo(txt)三種格式標簽,分別存放在不同文件夾下,可以直接用于YOLO系列的目標檢測

    2024年02月09日
    瀏覽(55)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包