欢迎访问 生活随笔!

ag凯发k8国际

当前位置: ag凯发k8国际 > 人工智能 > 目标检测 >内容正文

目标检测

深度学习和目标检测系列教程 16-ag凯发k8国际

发布时间:2024/10/8 目标检测 0 豆豆
ag凯发k8国际 收集整理的这篇文章主要介绍了 深度学习和目标检测系列教程 16-300:通过全球小麦数据集训练第一个yolov5模型 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

@author:runsen

之前的检测系统重新利用分类器或定位器来执行检测,将模型应用于多个位置和比例的图像。

yolo 使用了一种完全不同的方法。它将单个神经网络应用于完整图像。该网络将图像划分为多个区域并预测每个区域的边界框和概率。这些边界框由预测概率加权。

yolo 模型与基于分类器的系统相比有几个优点。它在测试时查看整个图像,因此它的预测是由图像中的全局上下文提供的。比 r-cnn 快 1000 倍以上,比 fast r-cnn 快 100 倍。

理论部分已经足够了,让我们来看看 yolov5 的自定义数据集实现,并了解如何实现到小麦检测挑战中。

该存储库代表 ultralytics 对未来对象检测方法的开源研究。所有代码和模型均由 ultralytics 创建。

  • https://github.com/ultralytics/yolov5/wiki/train-custom-data
!git clone https://github.com/ultralytics/yolov5.git !mv yolov5/* ./

所有必需的依赖项都保存在 requirements.txt 文件中以安装所有然后运行一次

安装pycocoapi,pip install "git https://github.com/cocodataset/cocoapi.git#subdirectory=pythonapi"出错,改为gitee


下面脚本将train.csv读取随便分配图片到convertor文件夹中
我们创建一个文件夹转换器,所有文件都以给定的格式存储在该转换器文件夹中。

  • 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()

训练脚本

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

测试脚本

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

总结

以上是ag凯发k8国际为你收集整理的深度学习和目标检测系列教程 16-300:通过全球小麦数据集训练第一个yolov5模型的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图