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

YOLOv5-第Y2周:訓(xùn)練自己的數(shù)據(jù)集

這篇具有很好參考價(jià)值的文章主要介紹了YOLOv5-第Y2周:訓(xùn)練自己的數(shù)據(jù)集。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

YOLOv5-第Y2周:訓(xùn)練自己的數(shù)據(jù)集

一、前言

  • ?? 本文為??365天深度學(xué)習(xí)訓(xùn)練營(yíng) 中的學(xué)習(xí)記錄博客
  • ?? 原作者:K同學(xué)啊

二、我的環(huán)境

  • 電腦系統(tǒng):Windows 10
  • 語言環(huán)境:Python 3.8.5
  • 編譯器:colab在線編譯
  • 深度學(xué)習(xí)環(huán)境:PyTorch

三、準(zhǔn)備數(shù)據(jù)集

文件夾目錄結(jié)構(gòu):

??主目錄:
paper_ data (創(chuàng)建個(gè)文件夾,將數(shù)據(jù)放到這里)
Annotations (放置我們的.xm文件)
images (放置圖片文件)
ImageSets:
Main (會(huì)在該文件夾內(nèi)自動(dòng)生成train.txt、 val.txt、 test.txt和trainval.txt四個(gè)文件,
存放訓(xùn)練集、驗(yàn)證集、測(cè)試集圖片的名字)

YOLOv5-第Y2周:訓(xùn)練自己的數(shù)據(jù)集,YOLO

四、運(yùn)行 split_train_val.py 文件

ImageSets文件夾下面有個(gè)Main子文件夾,其下面存放了 train.txt、val.txt、test.txt和 trainval.txt四個(gè)文件,它們是通過split_train_val.py文件來生成的。

# -*- coding: utf-8 -*-
"""
Created on Fri Jul 14 19:08:01 2023

@author: admin
"""

import os
import random
import argparse

parser = argparse.ArgumentParser()

#xml文件的地址,根據(jù)自己的數(shù)據(jù)進(jìn)行修改,xml一班存放在Annotation下
parser.add_argument('--xml_path', default = 'C:\YOLOv5\yolov5-master\paper_data\Annotations', type = str, help = 'input xml label path')

#數(shù)據(jù)集的劃分,地址選擇自己數(shù)據(jù)下的ImageSets/Main
parser.add_argument('--txt_path', default = 'C:\YOLOv5\yolov5-master\paper_data\ImageSets/Main', type = str, help = 'output txt label path')

opt = parser.parse_args()

trainval_percent = 0.9
train_percent = 8 / 9
xmlfilepath = opt.xml_path
txtsavepath = opt.txt_path
total_xml = os.listdir(xmlfilepath)
if not os.path.exists(txtsavepath):
    os.makedirs(txtsavepath)
    
num = len(total_xml)
list_index = range(num)
tv = int(num * train_percent)
tr = int(tv * train_percent)
trainval = random.sample(list_index, tv)
train = random.sample(trainval, tr)

file_trainval = open(txtsavepath + '/trainval.txt', 'w')
file_test = open(txtsavepath + '/test.txt', 'w')
file_train = open(txtsavepath + '/train.txt', 'w')
file_val = open(txtsavepath + '/val.txt', 'w')

for i in list_index:
    name = total_xml[i][:-4] + '\n'
    if i in trainval:
        file_trainval.write(name)
        if i in train:
            file_train.write(name)
        else:
            file_val.write(name)
    else:
        file_test.write(name)
        
file_trainval.close()
file_train.close()
file_val.close()
file_test.close()

運(yùn)行 split_train_val.py 文件后你將得至train.txt、val.txt、test.txt 和 trainval.txt 四 個(gè)文件,結(jié)果如下:
YOLOv5-第Y2周:訓(xùn)練自己的數(shù)據(jù)集,YOLO

五、生成 train.txt、test.txt、val.txt 文件

編寫voc_label.py文件

# -*- coding: utf-8 -*-
import xml.etree.ElementTree as ET
import os
from os import getcwd

sets = ['train', 'val', 'test']
classes = ["pineapple"]   # 改成自己的類別
abs_path = os.getcwd()
print(abs_path)

def convert(size, box):
    dw = 1. / (size[0])
    dh = 1. / (size[1])
    x = (box[0] + box[1]) / 2.0 - 1
    y = (box[2] + box[3]) / 2.0 - 1
    w = box[1] - box[0]
    h = box[3] - box[2]
    x = x * dw
    w = w * dw
    y = y * dh
    h = h * dh
    return x, y, w, h

def convert_annotation(image_id):
    in_file = open('./annotations/%s.xml' % (image_id), encoding='UTF-8')
    out_file = open('./labels/%s.txt' % (image_id), 'w')
    tree = ET.parse(in_file)
    root = tree.getroot()
    size = root.find('size')
    w = int(size.find('width').text)
    h = int(size.find('height').text)
    for obj in root.iter('object'):
        difficult = obj.find('difficult').text
        cls = obj.find('name').text
        if cls not in classes or int(difficult) == 1:
            continue
        cls_id = classes.index(cls)
        xmlbox = obj.find('bndbox')
        b = (float(xmlbox.find('xmin').text), float(xmlbox.find('xmax').text), float(xmlbox.find('ymin').text),
             float(xmlbox.find('ymax').text))
        b1, b2, b3, b4 = b
        # 標(biāo)注越界修正
        if b2 > w:
            b2 = w
        if b4 > h:
            b4 = h
        b = (b1, b2, b3, b4)
        bb = convert((w, h), b)
        out_file.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n')

wd = getcwd()
for image_set in sets:
    if not os.path.exists('./labels/'):
        os.makedirs('./labels/')
    image_ids = open('./ImageSets/Main/%s.txt' % (image_set)).read().strip().split()
    list_file = open('./%s.txt' % (image_set), 'w')
    for image_id in image_ids:
        list_file.write(abs_path + '/images/%s.png\n' % (image_id)) # 注意你的圖片格式,如果是.jpg記得修改
        convert_annotation(image_id)
    list_file.close()

運(yùn)行voc_label.py文件,你將會(huì)得到train.txt、test.txt、val.txt三個(gè)文件。

YOLOv5-第Y2周:訓(xùn)練自己的數(shù)據(jù)集,YOLO

六、創(chuàng)建ab.yaml文件

YOLOv5-第Y2周:訓(xùn)練自己的數(shù)據(jù)集,YOLO ab.yaml文件內(nèi)容如下:
YOLOv5-第Y2周:訓(xùn)練自己的數(shù)據(jù)集,YOLO

七、開始使用自己的數(shù)據(jù)集訓(xùn)練

python train.py --img 900 --batch 2 --epoch 5 --data paper_data/ab.yaml --cfg models/yolov5s.yaml --weights yolov5s.pt

YOLOv5-第Y2周:訓(xùn)練自己的數(shù)據(jù)集,YOLO

文件報(bào)錯(cuò),這里還不知道是什么原因。后續(xù)查找修改Bug

八、總結(jié)

通過Y1和Y2的學(xué)習(xí),學(xué)會(huì)了yolov5的環(huán)境配置以及用自己的數(shù)據(jù)集訓(xùn)練模型。接下來就是查閱資料,解決Bug。文章來源地址http://www.zghlxwxcb.cn/news/detail-807501.html

到了這里,關(guān)于YOLOv5-第Y2周:訓(xùn)練自己的數(shù)據(jù)集的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【零基礎(chǔ)玩轉(zhuǎn)yolov5】yolov5訓(xùn)練自己的數(shù)據(jù)集(CPU訓(xùn)練+GPU訓(xùn)練)

    【零基礎(chǔ)玩轉(zhuǎn)yolov5】yolov5訓(xùn)練自己的數(shù)據(jù)集(CPU訓(xùn)練+GPU訓(xùn)練)

    ?博主也是最近開始玩yolov5的,甚至也是最近開始使用python的,很多東西都沒有接觸過,因此訓(xùn)練自己的數(shù)據(jù)集花了不少時(shí)間,所以想寫篇博客記錄一下,希望同樣是零基礎(chǔ)的小伙伴們可以更加輕松的上手。同時(shí)大家如果發(fā)現(xiàn)了錯(cuò)誤和理解偏差,歡迎指正。 參考資料: Yolo

    2024年02月06日
    瀏覽(31)
  • yolov5訓(xùn)練自己的數(shù)據(jù)集問題排除

    D:ProgramDataAnaconda3envsyolov5python.exe D:/yxt/yolov5-master/train.py Traceback (most recent call last): ? File \\\"D:ProgramDataAnaconda3envsyolov5libsite-packagesgit__init__.py\\\", line 140, in module ? ? refresh() ? File \\\"D:ProgramDataAnaconda3envsyolov5libsite-packagesgit__init__.py\\\", line 127, in refresh ? ? if not Git.refresh(p

    2024年04月11日
    瀏覽(96)
  • yolov5-7.0訓(xùn)練自己的VOC數(shù)據(jù)集

    yolov5-7.0訓(xùn)練自己的VOC數(shù)據(jù)集

    這個(gè)筆記可能只適用于7.0版本的,寫這個(gè)筆記主要是給工作室伙伴參考的,大佬請(qǐng)繞行 有錯(cuò)誤之處歡迎指出 yolov5的GitHub倉(cāng)庫(kù)地址:Release v7.0 - YOLOv5 SOTA Realtime Instance Segmentation · ultralytics/yolov5 (github.com) 需要下載源碼和預(yù)訓(xùn)練模型 將源碼解壓,在其文件夾里面新建一個(gè)weights文

    2024年02月12日
    瀏覽(86)
  • YOLOv5訓(xùn)練自己的數(shù)據(jù)集實(shí)現(xiàn)視頻的識(shí)別

    YOLOv5訓(xùn)練自己的數(shù)據(jù)集實(shí)現(xiàn)視頻的識(shí)別

    寫在前面 我本來是使用這個(gè)模型進(jìn)行手寫簽名的定位,但是因?yàn)楸荣惖闹鬓k方原因,數(shù)據(jù)不允許公開,所以我使用動(dòng)物世界的一段開頭視屏來制作我的數(shù)據(jù)集。這整個(gè)模型跑通的過程中,我參考了很多不錯(cuò)的博客,寫這篇博客的原因是記錄一下我的所見所感。我的模型是在

    2024年02月02日
    瀏覽(95)
  • YOLOv5如何訓(xùn)練自己的數(shù)據(jù)集(生活垃圾數(shù)據(jù)集為例)

    YOLOv5如何訓(xùn)練自己的數(shù)據(jù)集(生活垃圾數(shù)據(jù)集為例)

    本文主要介紹如何利用YOLOv5訓(xùn)練自己的數(shù)據(jù)集 以生活垃圾數(shù)據(jù)集為例子 生活垃圾數(shù)據(jù)集(YOLO版) 點(diǎn)擊這里直接下載本文生活垃圾數(shù)據(jù)集 生活垃圾數(shù)據(jù)集組成: YOLO數(shù)據(jù)有三個(gè)要點(diǎn) images,存放圖片 labes,對(duì)應(yīng)Images圖片的標(biāo)簽 data_txt, 劃分images圖片的數(shù)據(jù)集,形成三個(gè)txt 文件

    2024年02月07日
    瀏覽(91)
  • 通過AutoDL使用yolov5.7訓(xùn)練自己的數(shù)據(jù)集

    通過AutoDL使用yolov5.7訓(xùn)練自己的數(shù)據(jù)集

    AutoDL 選擇基礎(chǔ)鏡像 創(chuàng)建之后 點(diǎn)擊 開機(jī) ,也可在更多里面選擇無卡模式開機(jī)(此模式不能訓(xùn)練,但是可以上傳文件且更便宜)。開機(jī)之后,上傳代碼可通過xshell工具或者可以通過快捷工具JupyterLab。我兩種方法都來演示一遍。yolov5代碼 復(fù)制登錄指令 回車后會(huì)要求輸入密碼,

    2024年02月05日
    瀏覽(89)
  • AI學(xué)習(xí)筆記四:yolov5訓(xùn)練自己的數(shù)據(jù)集

    AI學(xué)習(xí)筆記四:yolov5訓(xùn)練自己的數(shù)據(jù)集

    若該文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明原文出處。 一般情況下,大部分人的電腦都是沒有cpu的,cpu也是可以訓(xùn)練的,但花費(fèi)的時(shí)間太長(zhǎng),實(shí)際200張圖片,使用CPU訓(xùn)練300輪花了3天,本章記錄使用云服務(wù)器來訓(xùn)練自己的數(shù)據(jù)集。 使用的云服務(wù)器是AutoDL,一直在使用,性價(jià)比還是比較高的

    2024年02月15日
    瀏覽(76)
  • YOLOv5訓(xùn)練自己的數(shù)據(jù)集(含數(shù)據(jù)采集、數(shù)據(jù)標(biāo)注、數(shù)據(jù)預(yù)處理、借助colab訓(xùn)練)

    YOLOv5訓(xùn)練自己的數(shù)據(jù)集(含數(shù)據(jù)采集、數(shù)據(jù)標(biāo)注、數(shù)據(jù)預(yù)處理、借助colab訓(xùn)練)

    YOLOv5 github:GitHub - ultralytics/yolov5: YOLOv5 ?? in PyTorch ONNX CoreML TFLite 先從github下載源碼到本地,用pycharm打開工程 ? 本次采集數(shù)據(jù)采用的方式是錄取視頻,然后用python截取視頻幀當(dāng)做圖片,這是處理代碼: ? 可以使用labelimg工具、make sense(Make Sense)在線標(biāo)注,注意數(shù)據(jù)集需要與

    2024年02月05日
    瀏覽(97)
  • Yolov5 + Deepsort 重新訓(xùn)練自己的數(shù)據(jù)(保姆級(jí)超詳細(xì))

    Yolov5 + Deepsort 重新訓(xùn)練自己的數(shù)據(jù)(保姆級(jí)超詳細(xì))

    從下面github庫(kù)中拿代碼: https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch https://github.com/mikel-brostrom/Yolov5_DeepSort_Pytorch GitHub - Sharpiless/Yolov5-Deepsort: 最新版本yolov5+deepsort目標(biāo)檢測(cè)和追蹤,能夠顯示目標(biāo)類別,支持5.0版本可訓(xùn)練自己數(shù)據(jù)集 最新版本yolov5+deepsort目標(biāo)檢測(cè)和追蹤,能夠

    2024年01月19日
    瀏覽(94)
  • 【Yolov5+Deepsort】訓(xùn)練自己的數(shù)據(jù)集(1)| 目標(biāo)檢測(cè)&追蹤 | 軌跡繪制

    【Yolov5+Deepsort】訓(xùn)練自己的數(shù)據(jù)集(1)| 目標(biāo)檢測(cè)&追蹤 | 軌跡繪制

    ??前言: 本篇是關(guān)于 如何使用YoloV5+Deepsort訓(xùn)練自己的數(shù)據(jù)集 ,從而實(shí)現(xiàn)目標(biāo)檢測(cè)與目標(biāo)追蹤,并繪制出物體的運(yùn)動(dòng)軌跡。本章講解的為第一個(gè)內(nèi)容:簡(jiǎn)單介紹YoloV5+Deepsort中所用到的 目標(biāo)檢測(cè),追蹤及sortDeppsort算法。 本文中用到的數(shù)據(jù)集均為自采,實(shí)驗(yàn)動(dòng)物為斑馬魚。 文尾

    2024年02月14日
    瀏覽(99)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包