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

使用Yolov5訓(xùn)練自己的模型

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

本文主要介紹如何運(yùn)用開源Yolov5模型,結(jié)合自己的數(shù)據(jù),訓(xùn)練其他目標(biāo)檢測(cè)模型。

基礎(chǔ)準(zhǔn)備工作:

  1. anaconda
  2. 適用Yolov5的虛擬環(huán)境
  3. git上下載Yolov5并調(diào)通測(cè)試代碼https://github.com/ultralytics/yolov5https://github.com/ultralytics/yolov5

本次用的環(huán)境:

  • python==3.7
  • pytorch==1.7.1
  • torchvision==0.8.2
  • torchaudio==0.7.0
  • cudatoolkit==10.2

環(huán)境配置好后運(yùn)行測(cè)試代碼:

import torch


# GPU
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")

# Model
model = torch.hub.load('D:/work/git-example/yolov5-master', 'yolov5s', source='local')  # or yolov5m, yolov5l, yolov5x, custom
model = model.to(device)
# Images
img = './data/images/zidane.jpg'  # or file, Path, PIL, OpenCV, numpy, list

# Inference
results = model(img)

# Results
results.print()  # or .show(), .save(), .crop(), .pandas(), etc.

其中torch.hub.load通過source='local'來(lái)判斷是在本地還是在git上加載yolov5s.pt模型,為了避免網(wǎng)速問題,可以提前下載yolov5s.pt模型,放在本地yolov5-master文件夾下,然后制定source為local進(jìn)行模型加載。

result.print()可以將模型中識(shí)別出的目標(biāo)物類別進(jìn)行輸出,如果要獲取到這個(gè)變量,需要修改models/common.py文件中Detections/display()方法,將類別return一下就可以獲取了。

環(huán)境配好后再說(shuō)訓(xùn)練自己的模型:

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

對(duì)圖片進(jìn)行打標(biāo)工作,這里使用labelimg,直接使用python的pip安裝即可

pip install labelimg

安裝成功后在終端中輸入labelimg啟動(dòng)打標(biāo)工具。

使用Yolov5訓(xùn)練自己的模型

Yolo有自己要求的數(shù)據(jù)標(biāo)注格式,但是我們打標(biāo)的時(shí)候一般采取VOC格式,這樣方便數(shù)據(jù)可以給其他模型使用,VOC到y(tǒng)olo格式需要經(jīng)過一些轉(zhuǎn)換。

voc格式如下所示,是一個(gè)xml文件

<annotation>
	<folder>train</folder>
	<filename>暴露垃圾_2.jpg</filename>
	<path>D:\work\git-example\yolov5-master\YOLO_rubbish\images\train\暴露垃圾_2.jpg</path>
	<source>
		<database>Unknown</database>
	</source>
	<size>
		<width>650</width>
		<height>867</height>
		<depth>3</depth>
	</size>
	<segmented>0</segmented>
	<object>
		<name>rubbish</name>
		<pose>Unspecified</pose>
		<truncated>0</truncated>
		<difficult>0</difficult>
		<bndbox>
			<xmin>235</xmin>
			<ymin>410</ymin>
			<xmax>408</xmax>
			<ymax>631</ymax>
		</bndbox>
	</object>
</annotation>

?yolo格式如下所示,分別對(duì)應(yīng)xmin xmax ymin ymax坐標(biāo)值

0 0.503846 0.603806 0.287692 0.261822

采用如下代碼對(duì)voc格式的標(biāo)注進(jìn)行轉(zhuǎn)換

import xml.etree.ElementTree as ET
import os
from os import listdir, getcwd

sets = ['train', 'test', 'val']

classes = ["rubbish"]


def convert(size, box):
    dw = 1. / size[0]
    dh = 1. / size[1]
    x = (box[0] + box[1]) / 2.0
    y = (box[2] + box[3]) / 2.0
    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):
    try:
        in_file = open('./YOLO_rubbish/labels/%s.xml' % (image_id), 'r', encoding='utf-8')
    except:
        return
    out_file = open('./YOLO_rubbish/labels-yolo2/%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))
        bb = convert((w, h), b)
        out_file.write(str(cls_id) + " " + " ".join([str(a) for a in bb]) + '\n')

每一個(gè)voc對(duì)應(yīng)的xml文件調(diào)用convert_annotation方法即可完成對(duì)應(yīng)yolo的轉(zhuǎn)換。

代碼準(zhǔn)備

標(biāo)注工作完成后,就是對(duì)代碼進(jìn)行修改以適應(yīng)自己數(shù)據(jù)的步驟了,新建數(shù)據(jù)文件夾,文件夾結(jié)構(gòu)如下所示:

使用Yolov5訓(xùn)練自己的模型

images中放訓(xùn)練圖片,labels中放對(duì)應(yīng)的標(biāo)注數(shù)據(jù)(labels文件夾名字不可變,且要放在和images同級(jí)的地方,程序會(huì)自動(dòng)去找,名字變了就找不到了。。。。要改這個(gè)地方就要改源碼,還是遵照這個(gè)默認(rèn)的規(guī)則吧。。。)

新建數(shù)據(jù)路徑y(tǒng)aml配置文件,我這里在./data下建了一個(gè)rubbish_data.yaml文件

# YOLOv5 ?? by Ultralytics, GPL-3.0 license
# COCO 2017 dataset http://cocodataset.org by Microsoft
# Example usage: python train.py --data coco.yaml
# parent
# ├── yolov5
# └── datasets
#     └── coco  ← downloads here


# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
#path: D:/work/git-example/yolov5-master/YOLO_rubbish  # dataset root dir
train: ./YOLO_rubbish/images/train  # train images (relative to 'path') 118287 images
val: ./YOLO_rubbish/images/val  # val images (relative to 'path') 5000 images
test: ./YOLO_rubbish/images/test  # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794

# Classes
nc: 1  # number of classes
names: ['rubbish']  # class names

其中nc表示檢測(cè)類別種數(shù),names表示類別名稱,train/val/test表示訓(xùn)練數(shù)據(jù)圖片所在的路徑(上面images下的路徑)

新建yaml配置文件,在./models下建了個(gè)rubbish.yaml文件,文件內(nèi)容復(fù)制yolo5s.yaml就行,主要修改其中的nc值

使用Yolov5訓(xùn)練自己的模型

訓(xùn)練

一切準(zhǔn)備就緒,運(yùn)行下面腳本開始訓(xùn)練

>python train.py --data rubbish_data.yaml --cfg rubbish.yaml --weights yolov5s.pt --epoch 100 --batch-size 16 --device 0

?yaml文件路徑均是上面新建的路徑,device為0表示使用的是GPU

訓(xùn)練會(huì)出現(xiàn)很多信息,大概不報(bào)錯(cuò)就行

使用Yolov5訓(xùn)練自己的模型

?最后結(jié)果在這個(gè)文件夾下

使用Yolov5訓(xùn)練自己的模型

模型應(yīng)用

在./runs/train/exp中得到的模型結(jié)果包含信息很多,我們最后訓(xùn)練出的模型為weights下面的best.pt文件,直接加載這個(gè)模型文件即可用自己訓(xùn)練的模型對(duì)圖片完成目標(biāo)檢測(cè)工作。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-448664.html

python detect.py --weights ./runs/train/exp/weights/best.pt --source ./YOLO_rubbish/dblj_0.jpg --device 0

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

本文來(lái)自互聯(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)文章

  • 【colab】谷歌colab免費(fèi)服務(wù)器訓(xùn)練自己的模型,本文以yolov5為例介紹流程

    【colab】谷歌colab免費(fèi)服務(wù)器訓(xùn)練自己的模型,本文以yolov5為例介紹流程

    目錄 一.前言 二.準(zhǔn)備工作 1.注冊(cè)Google drive(谷歌云盤) Google Driver官網(wǎng):https://drive.google.com/drive/ Colab官網(wǎng):https://colab.research.google.com/ 2.上傳項(xiàng)目文件 3.安裝Colaboratory 4.colab相關(guān)操作和命令 5.項(xiàng)目相關(guān)操作? 三.異常處理 ????????本文介紹了在谷歌開放平臺(tái)Google colab上租用免

    2023年04月08日
    瀏覽(23)
  • 手把手教你如何使用YOLOV5訓(xùn)練自己的數(shù)據(jù)集

    手把手教你如何使用YOLOV5訓(xùn)練自己的數(shù)據(jù)集

    YOLOV5是目前最火熱的目標(biāo)檢測(cè)算法之一。YOLOV5為一階段檢測(cè)算法因此它的速度非常之快??梢栽趶?fù)雜場(chǎng)景中達(dá)到60禎的實(shí)時(shí)檢測(cè)頻率。 接下來(lái)本文將詳細(xì)的講述如何使用YOLOV5去訓(xùn)練自己的數(shù)據(jù)集 YOLOV5中使用了Tensorboard和Wandb來(lái)可視化訓(xùn)練,其中Wandb配置可以看這篇文章: Wand

    2024年02月05日
    瀏覽(96)
  • YOLOv5入門實(shí)踐(5)——從零開始,手把手教你訓(xùn)練自己的目標(biāo)檢測(cè)模型(包含pyqt5界面)

    YOLOv5入門實(shí)踐(5)——從零開始,手把手教你訓(xùn)練自己的目標(biāo)檢測(cè)模型(包含pyqt5界面)

    ? 通過前幾篇文章,相信大家已經(jīng)學(xué)會(huì)訓(xùn)練自己的數(shù)據(jù)集了。本篇是YOLOv5入門實(shí)踐系列的最后一篇,也是一篇總結(jié),我們?cè)賮?lái)一起按著 配置環(huán)境--標(biāo)注數(shù)據(jù)集--劃分?jǐn)?shù)據(jù)集--訓(xùn)練模型--測(cè)試模型--推理模型 的步驟,從零開始,一起實(shí)現(xiàn)自己的目標(biāo)檢測(cè)模型吧! 前期回顧: YOLO

    2023年04月26日
    瀏覽(32)
  • YOLOv5目標(biāo)檢測(cè):ubuntu1804從零開始使用YOLOv5訓(xùn)練自己的數(shù)據(jù)集(親測(cè)有效,一步一步來(lái)一定行)

    YOLOv5目標(biāo)檢測(cè):ubuntu1804從零開始使用YOLOv5訓(xùn)練自己的數(shù)據(jù)集(親測(cè)有效,一步一步來(lái)一定行)

    (1)首先需要安裝Anaconda,這個(gè)網(wǎng)上教程太多了,下載最新版本就行,在這里就不在贅述了。 (2)安裝Pytorch 1. 首先創(chuàng)建python3.6以上版本的conda環(huán)境,在這里我用的是python3.8,環(huán)境名稱為mypytorch 2. 激活創(chuàng)建好的conda環(huán)境 3.在PyTorch官網(wǎng)上選擇指定版本安裝Pytorch Install PyTorch: h

    2024年02月19日
    瀏覽(93)
  • 【yolov5 安裝教程】(入門篇)避免踩雷保姆級(jí)教程 在m1芯片下 使用yolov5本地訓(xùn)練自己的數(shù)據(jù)集 ——mac m1

    【yolov5 安裝教程】(入門篇)避免踩雷保姆級(jí)教程 在m1芯片下 使用yolov5本地訓(xùn)練自己的數(shù)據(jù)集 ——mac m1

    ??????? 目錄 一、簡(jiǎn)介 配置 環(huán)境準(zhǔn)備 二、環(huán)境配置 1.安裝anaconda 2.安裝TensorFlow 3.安裝pytorch 4.pyqt5安裝 ?5.安裝labelimg 6.下載yolov5 7.pycharm安裝 三、使用labelimg標(biāo)記圖片 1.準(zhǔn)備工作 2.標(biāo)記圖片 四、 劃分?jǐn)?shù)據(jù)集以及配置文件修改 1. 劃分訓(xùn)練集、驗(yàn)證集、測(cè)試集 2.XML格式轉(zhuǎn)

    2024年02月05日
    瀏覽(27)
  • 【零基礎(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ù)集

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

    1.YOLOv5為開源代碼,直接從github上下載,首先打開github官網(wǎng),下載。 下載使用pycharm打開,有圖中這些文件,? ?其中 data:主要是存放一些超參數(shù)的配置文件(這些文件(yaml文件)是用來(lái)配置訓(xùn)練集和測(cè)試集還有驗(yàn)證集的路徑的,其中還包括目標(biāo)檢測(cè)的種類數(shù)和種類的名稱)

    2024年02月07日
    瀏覽(846)
  • 配置使用云服務(wù)器訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型——在阿里GPU服務(wù)器訓(xùn)練yolov5模型

    配置使用云服務(wù)器訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型——在阿里GPU服務(wù)器訓(xùn)練yolov5模型

    對(duì)于沒有GPU訓(xùn)練機(jī)的人來(lái)講,使用云服務(wù)器訓(xùn)練自己的模型應(yīng)該最最優(yōu)選擇,只是在訓(xùn)練的時(shí)候開個(gè)按時(shí)計(jì)費(fèi)的服務(wù)器,訓(xùn)練完成后保存環(huán)境鏡像之后,可以完全停掉服務(wù)器,期間不產(chǎn)生任何費(fèi)用,下次再訓(xùn)練時(shí),啟動(dòng)環(huán)境就可以,很容易保護(hù)好自己的訓(xùn)練環(huán)境不受污染。

    2024年02月06日
    瀏覽(53)
  • 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)
  • 【YOLO】yolov5訓(xùn)練自己的數(shù)據(jù)集

    【YOLO】yolov5訓(xùn)練自己的數(shù)據(jù)集

    【Python】樸實(shí)無(wú)華的yolov5環(huán)境配置(一) ??上面前期教程中,大致介紹了yolov5開發(fā)環(huán)境的配置方法和yolov5項(xiàng)目的基本結(jié)構(gòu),下一步就是基于yolov5預(yù)訓(xùn)練模型來(lái)訓(xùn)練自己的數(shù)據(jù)集,這對(duì)于只是想要使用yolov5這個(gè)工具的人,還是想要深入研究yolov5類似的目標(biāo)識(shí)別算法的人,都是

    2024年02月11日
    瀏覽(93)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包