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

YOLOv5-7.0-seg+YOLOv8-seg自定義數(shù)據(jù)集訓練

這篇具有很好參考價值的文章主要介紹了YOLOv5-7.0-seg+YOLOv8-seg自定義數(shù)據(jù)集訓練。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

YOLOv5?

下載源碼 ? https://github.com/ultralytics/yolov5.git
參考鏈接? ?yolov5-實例分割 1.如何使用yolov5實現(xiàn)實例分割,并訓練自己的數(shù)據(jù)集_嗶哩嗶哩_bilibili

  • 目錄:

- datasets
? ? - JPEImages #存放圖片和標注后的json文件以及轉(zhuǎn)換后的txt文件
? ? - classes-4 #存放切分好的數(shù)據(jù)集
? ? ? ? - images
? ? ? ? - labels
? ? labelme2seg.py
? ? split_dataset.py
? ? visual_coco128.py
- segment
? ? train.py
? ? predict.py

  • (1)-Labelme標注圖片,生成json文件

    (52條消息) Labelme 安裝以及使用_期待686的博客-CSDN博客
  • (2)-labelme2seg.py ? #講json文件轉(zhuǎn)換成yolo可以識別的txt文件

? ? ? ? 修改類別 classes = ['clothing',…]
? ? ? ? 圖片和json文件路徑 base_path = 'JPEGImages'?

?
import os
import cv2
import json
import numpy as np

# classes = ['clothing','face_shield','boot']
# classes = ['clothing','face_shield','boot','clothing_f']
classes = ['boot_f','clothing','face_shield','clothing_f']
base_path = '22'
path_list = [i.split('.')[0] for i in os.listdir(base_path)]
for path in path_list:
    image = cv2.imread(f'{base_path}/{path}.jpg')
    h,w,c = image.shape
    try:
        with open(f'{base_path}/{path}.json') as f:
            masks = json.load(f)['shapes']
        with open(f'{base_path}/{path}.txt','w+') as f:
            for idx,mask_data in enumerate(masks):
                mask_label = mask_data['label']
                mask = np.array([np.array(i) for i in mask_data['points']],dtype=np.float)
                mask[:,0] /= w
                mask[:,1] /= h
                mask = mask.reshape((-1))
                if idx != 0:
                    f.write('\n')
                f.write(f'{classes.index(mask_label)} {" ".join(list(map(lambda x:f"{x:.6f}",mask)))}')
    except FileNotFoundError as f:
        print(f)

?
  • (3)-split_dataset.py ? #切分數(shù)據(jù)集(需要shutil.copy()盡量絕對路徑以防出錯)

? ? ? ? 圖片和txt文件路徑 base_path = r'F:\wzy\AI\yolov5-master-23-1-6\datasets\JPEGImages';保存路徑dataset_path = r'F:\wzy\AI\yolov5-master-23-1-6\datasets\classes-4'

import os
import shutil
import random
import numpy as np

base_path = r'F:\wzy\AI\yolov5-master-23-1-6\datasets\22'
dataset_path = r'F:\wzy\AI\yolov5-master-23-1-6\datasets\classes-4-2'
val_size,test_size = 0.1,0.2

os.makedirs(dataset_path,exist_ok=True)
os.makedirs(f'{dataset_path}/images',exist_ok=True)
os.makedirs(f'{dataset_path}/images/train',exist_ok=True)
os.makedirs(f'{dataset_path}/images/val',exist_ok=True)
os.makedirs(f'{dataset_path}/images/test',exist_ok=True)
os.makedirs(f'{dataset_path}/labels/train',exist_ok=True)
os.makedirs(f'{dataset_path}/labels/val',exist_ok=True)
os.makedirs(f'{dataset_path}/labels/test',exist_ok=True)

path_list = np.array([i.split('.')[0] for i in os.listdir(base_path) if 'txt' in i])
random.shuffle(path_list)
train_id = path_list[:int(len(path_list) * (1 - val_size - test_size))]
val_id = path_list[int(len(path_list) * (1 - val_size - test_size)):int(len(path_list) * (1 - test_size))]
test_id = path_list[int(len(path_list) * (1 - test_size)):]
print(train_id,val_id,test_id)

for i in train_id:
    shutil.copy(f'{base_path}/{i}.jpg', f'./classes-4-2/images/train/{i}.jpg')
    shutil.copy(f'{base_path}/{i}.txt', f'./classes-4-2/labels/train/{i}.txt')
for i in val_id:
    shutil.copy(f'{base_path}/{i}.jpg', f'./classes-4-2/images/val/{i}.jpg')
    shutil.copy(f'{base_path}/{i}.txt', f'./classes-4-2/labels/val/{i}.txt')
for i in test_id:
    shutil.copy(f'{base_path}/{i}.jpg', f'./classes-4-2/images/test/{i}.jpg')
    shutil.copy(f'{base_path}/{i}.txt', f'./classes-4-2/labels/test/{i}.txt')
  • (4)-visual_coco128.py ? #驗證數(shù)據(jù)集是否正確

? ? ? ? 圖片路徑 img_base_path = 'classes-4/images/train';txt類別路徑lab_base_path = 'classes-4/labels/train'

import os
import cv2
import numpy as np

img_base_path = 'classes-4-2/images/train'
lab_base_path = 'classes-4-2/labels/train'

label_path_list = [i.split('.')[0] for i in os.listdir(img_base_path)]
for path in label_path_list:
    image = cv2.imread(f'{img_base_path}/{path}.jpg')
    h,w,c = image.shape
    label = np.zeros((h,w),dtype=np.uint8)
    with open(f'{lab_base_path}/{path}.txt') as f:
        mask = np.array(list(map(lambda x:np.array(x.strip().split()),f.readlines())))
    for i in mask:
        i = np.array(i,dtype=np.float32)[1:].reshape((-1,2))
        i[:,0] *= w
        i[:,1] *= h
        label = cv2.fillPoly(label,[np.array(i,dtype=np.int32)],color=255)
    image = cv2.bitwise_and(image,image,mask=label)
    cv2.imshow('Pic',image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
  • (5)-config_me.yaml ? #訓練的參數(shù):路徑/類別(順序和labelme2seg.py的classes一樣)…
train: F:\wzy\AI\yolov5-master-23-1-6\datasets\classes-4-2\images\train  # train images (relative to 'path') 128 images
val: F:\wzy\AI\yolov5-master-23-1-6\datasets\classes-4-2\images\val  # val images (relative to 'path') 128 images
test:  # test images (optional)

names:
  0: boot_f
  1: clothing
  2: face_shield
  3: clothing_f
  • (6)-train.py ? #訓練模型

? ? ? ? run'''python train.py --weights ../weights/yolov5s-seg.pt --cfg ../models/segment/yolov5s-seg.yaml --data ../data/config_me.yaml --epochs 100 --batch-size 16 --device 0'''

  • (7)-predict.py ? #調(diào)用模型

? ? ? ? run '''python predict.py --weights ../runs/train-seg/expm-e100-bs8-epochs-1/weights/best.pt --source ../datasets/images/test --data ../data/config_me.yaml'''


YOLOv8

數(shù)據(jù)處理承接至上文步驟(1)~(5)

  • 下載安裝包ultralytics可以直接在終端使用yolo命令:

pip install ultralytics

  • 訓練:

yolo task=segment mode=train model="weights/yolov8n-seg.pt" data="data/config_me.yaml" epochs=100 batch=16 device=0

  • 測試:

yolo task=segment mode=predict model="runs/segment/train4/weights/best.pt" source="input"

python3.7版本? cuda11.1? torch1.8.0? ?安裝包? requirements.txt

absl-py==1.3.0
antlr4-python3-runtime==4.9.3
attr==0.3.2
attrs @ file:///F:/su/Programs/conda/envs/cv/Tools/attrs-22.2.0-py3-none-any.whl
backcall==0.2.0
cachetools==5.2.1
certifi @ file:///C:/b/abs_85o_6fm0se/croot/certifi_1671487778835/work/certifi
charset-normalizer==2.1.1
cloudpickle==2.2.0
colorama==0.4.6
cycler==0.11.0
Cython==0.29.32
decorator==5.1.1
exceptiongroup==1.1.0
fairscale==0.4.6
filelock==3.9.0
fonttools==4.38.0
fvcore==0.1.5.post20221221
gitdb @ file:///F:/su/Programs/conda/envs/cv/Tools/gitdb-4.0.10-py3-none-any.whl
GitPython @ file:///F:/su/Programs/conda/envs/cv/Tools/GitPython-3.1.30-py3-none-any.whl
google-auth==2.15.0
google-auth-oauthlib==0.4.6
grpcio==1.51.1
huggingface-hub==0.11.1
hydra-core==1.3.1
idna==3.4
importlib-metadata==6.0.0
importlib-resources==5.10.2
iniconfig==2.0.0
iopath==0.1.10
ipython==7.34.0
jedi==0.18.2
kiwisolver==1.4.4
Markdown==3.4.1
MarkupSafe==2.1.1
matplotlib==3.5.3
matplotlib-inline==0.1.6
numpy==1.21.6
oauthlib==3.2.2
omegaconf==2.3.0
opencv-python @ file:///D:/ana/envs/wzy/Lib/site-packages/opencv_python-4.5.5-cp37-cp37m-win_amd64.whl
packaging==22.0
pandas==1.3.5
parso==0.8.3
pickleshare==0.7.5
Pillow==9.4.0
pluggy==1.0.0
portalocker==2.6.0
prompt-toolkit==3.0.36
protobuf==3.20.3
psutil==5.9.4
pyasn1==0.4.8
pyasn1-modules==0.2.8
pycocotools-windows @ file:///D:/ana/Tools/pycocotools/pycocotools_windows-2.0.0.1-cp37-cp37m-win_amd64.whl
Pygments==2.14.0
pyparsing==3.0.9
pytest==7.2.0
python-dateutil==2.8.2
pytz @ file:///F:/su/Programs/conda/envs/cv/Tools/pytz-2022.7-py2.py3-none-any.whl
pywin32==305
PyYAML==6.0
requests==2.28.1
requests-oauthlib==1.3.1
rsa==4.9
scipy==1.7.3
seaborn==0.12.2
six==1.16.0
smmap @ file:///F:/su/Programs/conda/envs/cv/Tools/smmap-5.0.0-py3-none-any.whl
tabulate==0.9.0
tensorboard==2.11.0
tensorboard-data-server==0.6.1
tensorboard-plugin-wit==1.8.1
termcolor==2.1.1
thop==0.1.1.post2209072238
timm==0.6.12
tomli==2.0.1
torch @ file:///D:/ana/envs/wzy/Tools/torch-1.8.0%2Bcu111-cp37-cp37m-win_amd64.whl
torchvision @ file:///D:/ana/envs/wzy/Tools/torchvision-0.9.0%2Bcu111-cp37-cp37m-win_amd64.whl
tqdm==4.64.1
traitlets==5.8.0
typing_extensions==4.4.0
ultralytics @ file:///F:/su/Programs/conda/envs/cv/Tools/ultralytics-8.0.5-py3-none-any.whl
urllib3==1.26.13
wcwidth==0.2.5
Werkzeug==2.2.2
wincertstore==0.2
yacs==0.1.8
zipp==3.11.0文章來源地址http://www.zghlxwxcb.cn/news/detail-429975.html

到了這里,關于YOLOv5-7.0-seg+YOLOv8-seg自定義數(shù)據(jù)集訓練的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • YOLOv5-7.0訓練中文標簽的數(shù)據(jù)集

    YOLOv5-7.0訓練中文標簽的數(shù)據(jù)集

    鏈接:https://pan.baidu.com/s/1KSROxTwyYnNoNxI5Tk13Dg? 提取碼:8888 (1)將metric.py中: 將 改為:? ? Windows11: ?Ubuntu20.04:? (2)將general.py中: 將 改為:? Windows11: ? ?Ubuntu20.04:? ? ? ? (3)將plots.py 中: 在頭文件處加上: Windows11: ? ?Ubuntu20.04:? ?? 在plots.py找到class? Annotator: ?? 將 改

    2024年02月02日
    瀏覽(25)
  • yolov5-7.0訓練自己的VOC數(shù)據(jù)集

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

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

    2024年02月12日
    瀏覽(86)
  • yolov5-7.0簡單訓練教程

    yolov5-7.0簡單訓練教程

    yolov5-7.0簡單訓練教程。 可以自己去git上下載,沒有梯子的點這里去百度網(wǎng)盤下載資源 點擊下載資源包:objectdetection_script-master 將下載到的腳本目錄中的yolo文件夾內(nèi)的文件復制到y(tǒng)olov5-7.0的根目錄下。 Annotations:存放VOC格式的標注的XML文件 JPEGImages:存放數(shù)據(jù)集里的圖片,圖片

    2024年02月02日
    瀏覽(27)
  • YOLOv8訓練自定義數(shù)據(jù)集(超詳細)

    YOLOv8訓練自定義數(shù)據(jù)集(超詳細)

    借鑒 YOLOv8訓練自己的數(shù)據(jù)集(超詳細)_AI追隨者的博客-CSDN博客 安裝 requirements.txt 下載:https://raw.githubusercontent.com/ultralytics/ultralytics/main/requirements.txt 然后在你 目錄下執(zhí)行 pip install -r requirements.txt 它的 requirements 主要是以下 包,用下面代碼檢查下自己還缺哪些,補上就好。 安裝

    2023年04月16日
    瀏覽(32)
  • 基于 YOLOv8 的自定義數(shù)據(jù)集訓練

    基于 YOLOv8 的自定義數(shù)據(jù)集訓練

    圖1.1:YOLOv8初始測試 YOLOv8??于 2023年1月10日由Ultralytics發(fā)布。它在計算機視覺方面提供了進展,帶來了對我們感知、分析和理解視覺世界的巨大創(chuàng)新。它將為各個領域帶來前所未有的可能性。 在速度、準確性和架構(gòu)方面進行了相當大的改進。它是從頭開始實現(xiàn)的,沒有使用任

    2024年02月11日
    瀏覽(24)
  • Yolov8_使用自定義數(shù)據(jù)集訓練模型1

    Yolov8_使用自定義數(shù)據(jù)集訓練模型1

    前面幾篇文章介紹了如何搭建Yolov8環(huán)境、使用默認的模型訓練和推理圖片及視頻的效果、并使用GPU版本的torch加速推理、導出.engine格式的模型進一步利用GPU加速,本篇介紹如何自定義數(shù)據(jù)集,這樣就可以訓練出識別特定物體的模型。 《Yolov8_使用自定義數(shù)據(jù)集訓練模型1》——

    2024年01月19日
    瀏覽(25)
  • YOLOv8目標檢測:自定義數(shù)據(jù)集訓練與評估

    摘要:在本教程中,我們將詳細介紹如何使用自定義數(shù)據(jù)集訓練YOLOv8模型,并用Python代碼評估模型性能。 正文: 一、準備自定義數(shù)據(jù)集 為了訓練YOLOv8模型,我們需要一個標注好的自定義數(shù)據(jù)集。數(shù)據(jù)集應包含圖像文件和對應的標注文件,標注文件中包含目標類別和邊界框信

    2024年02月06日
    瀏覽(28)
  • 在自定義數(shù)據(jù)集上訓練 YOLOv8 進行目標檢測

    在自定義數(shù)據(jù)集上訓練 YOLOv8 進行目標檢測

    這是目標檢測中令人驚嘆的 AI 模型之一。在這種情況下,您無需克隆存儲庫、設置要求并配置模型,就像在 YOLOv5 及其之前的版本中所做的那樣。 在 YOLOv8 中,不需要執(zhí)行這些手動任務。您只需安裝 Ultralytics 即可,我將向您展示如何通過一個簡單的命令安裝它。 這是一個提

    2024年02月01日
    瀏覽(20)
  • 【yolov8】從0開始搭建部署YOLOv8,環(huán)境安裝+推理+自定義數(shù)據(jù)集搭建與訓練,一小時掌握

    bilibili詳細視頻教程 github鏈接:https://github.com/ultralytics/ultralytics git拉取項目: git clone https://github.com/ultralytics/ultralytics.git 首先查看pytorch支持的最高版本 PyTorch https://pytorch.org/ 然后查看N卡系統(tǒng)支持最高的版本 然后權(quán)衡下載支持最高版本的CUDA和cuDNN CUDA工具包 https://developer.n

    2024年01月17日
    瀏覽(28)
  • 【YOLO】YOLOv8實操:環(huán)境配置/自定義數(shù)據(jù)集準備/模型訓練/預測

    【YOLO】YOLOv8實操:環(huán)境配置/自定義數(shù)據(jù)集準備/模型訓練/預測

    源碼鏈接:https://github.com/ultralytics/ultralytics yolov8和yolov5是同一作者,相比yolov5,yolov8的集成性更好了,更加面向用戶了 YOLO命令行界面(command line interface, CLI) 方便在各種任務和版本上訓練、驗證或推斷模型。CLI不需要定制或代碼,可以使用yolo命令從終端運行所有任務。 如果

    2023年04月24日
    瀏覽(22)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領取紅包

二維碼2

領紅包