日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > 目标检测 >内容正文

目标检测

深度学习和目标检测系列教程 16-300:通过全球小麦数据集训练第一个yolov5模型

發(fā)布時(shí)間:2024/10/8 目标检测 140 豆豆
生活随笔 收集整理的這篇文章主要介紹了 深度学习和目标检测系列教程 16-300:通过全球小麦数据集训练第一个yolov5模型 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

@Author:Runsen

之前的檢測(cè)系統(tǒng)重新利用分類器或定位器來執(zhí)行檢測(cè),將模型應(yīng)用于多個(gè)位置和比例的圖像。

Yolo 使用了一種完全不同的方法。它將單個(gè)神經(jīng)網(wǎng)絡(luò)應(yīng)用于完整圖像。該網(wǎng)絡(luò)將圖像劃分為多個(gè)區(qū)域并預(yù)測(cè)每個(gè)區(qū)域的邊界框和概率。這些邊界框由預(yù)測(cè)概率加權(quán)。

YOLO 模型與基于分類器的系統(tǒng)相比有幾個(gè)優(yōu)點(diǎn)。它在測(cè)試時(shí)查看整個(gè)圖像,因此它的預(yù)測(cè)是由圖像中的全局上下文提供的。比 R-CNN 快 1000 倍以上,比 Fast R-CNN 快 100 倍。

理論部分已經(jīng)足夠了,讓我們來看看 YOLOv5 的自定義數(shù)據(jù)集實(shí)現(xiàn),并了解如何實(shí)現(xiàn)到小麥檢測(cè)挑戰(zhàn)中。

該存儲(chǔ)庫(kù)代表 Ultralytics 對(duì)未來對(duì)象檢測(cè)方法的開源研究。所有代碼和模型均由 Ultralytics 創(chuàng)建。

  • https://github.com/ultralytics/yolov5/wiki/Train-Custom-Data
!git clone https://github.com/ultralytics/yolov5.git !mv yolov5/* ./

所有必需的依賴項(xiàng)都保存在 requirements.txt 文件中以安裝所有然后運(yùn)行一次

安裝pycocoapi,pip install "git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI"出錯(cuò),改為GItee


下面腳本將train.csv讀取隨便分配圖片到convertor文件夾中
我們創(chuàng)建一個(gè)文件夾轉(zhuǎn)換器,所有文件都以給定的格式存儲(chǔ)在該轉(zhuǎn)換器文件夾中。

  • converter(main directory)
    • val2017
      • labels (contains all the box dimensions)
      • images (contains images)
    • train2017
      • labels
      • images
import os import pandas as pd import numpy as np def convertTrainLabel():df = pd.read_csv('train.csv')bboxs = np.stack(df['bbox'].apply(lambda x: np.fromstring(x[1:-1], sep=',')))for i, column in enumerate(['x', 'y', 'w', 'h']):df[column] = bboxs[:, i]df.drop(columns=['bbox'], inplace=True)df['x_center'] = df['x'] + df['w'] / 2df['y_center'] = df['y'] + df['h'] / 2df['classes'] = 0from tqdm.auto import tqdmimport shutil as shdf = df[['image_id', 'x', 'y', 'w', 'h', 'x_center', 'y_center', 'classes']]index = list(set(df.image_id))source = 'train'if True:for fold in [0]:val_index = index[len(index) * fold // 5:len(index) * (fold + 1) // 5]for name, mini in tqdm(df.groupby('image_id')):if name in val_index:path2save = 'val2017/'else:path2save = 'train2017/'if not os.path.exists('convertor/fold{}/labels/'.format(fold) + path2save):os.makedirs('convertor/fold{}/labels/'.format(fold) + path2save)with open('convertor/fold{}/labels/'.format(fold) + path2save + name + ".txt", 'w+') as f:row = mini[['classes', 'x_center', 'y_center', 'w', 'h']].astype(float).valuesrow = row / 1024row = row.astype(str)for j in range(len(row)):text = ' '.join(row[j])f.write(text)f.write("\n")if not os.path.exists('convertor/fold{}/images/{}'.format(fold, path2save)):os.makedirs('convertor/fold{}/images/{}'.format(fold, path2save))sh.copy("global-wheat-detection/{}/{}.jpg".format(source, name),'convertor/fold{}/images/{}/{}.jpg'.format(fold, path2save, name)) convertTrainLabel()

訓(xùn)練腳本

python train.py --img 512 --batch 4 --epochs 10 --data data/wheet0.yaml --cfg data/yolov5x.yaml --name yolov5x_fold0

測(cè)試腳本

python ./detect.py --weights ./weights/last_yolov5x_fold0.pt --img 512 --conf 0.4 --source ./convertor/fold0/images/val2017

鏈接:https://pan.baidu.com/s/1cApWw5uPVLZk0kFIGrzVVA
提取碼:e39k

總結(jié)

以上是生活随笔為你收集整理的深度学习和目标检测系列教程 16-300:通过全球小麦数据集训练第一个yolov5模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。