怎样做网站推广,望野翻译,做电影网站程序哪个好,西安网站建设l西安搜推宝网络文章目录 1.收集数据集1.1 使用开源已标记数据集1.2 爬取网络图像1.3 自己拍摄数据集1.4 使用数据增强生成数据集1.5 使用算法合成图像 2.标注数据集2.1确认标注格式2.2 开始标注 3.划分数据集4.配置训练环境4.1获取代码4.2安装环境 5.训练模型5.1新建一个数据集yaml文件5.2预测… 文章目录 1.收集数据集1.1 使用开源已标记数据集1.2 爬取网络图像1.3 自己拍摄数据集1.4 使用数据增强生成数据集1.5 使用算法合成图像 2.标注数据集2.1确认标注格式2.2 开始标注 3.划分数据集4.配置训练环境4.1获取代码4.2安装环境 5.训练模型5.1新建一个数据集yaml文件5.2预测模型5.3训练模型 6.验证模型7.导出模型 1.收集数据集 
随着深度学习技术在计算机视觉领域的广泛应用行人检测和车辆检测等任务已成为热门研究领域。然而实际应用中可用的预训练模型可能并不适用于所有应用场景。 例如虽然预先训练的模型可以检测出行人但它无法区分“好人”和“坏人”因为它没有接受相关的训练。因此我们需要为自定义检测模型提供足够数量的带有标注信息的图像数据来训练模型以区分“好人”和“坏人” 
1.1 使用开源已标记数据集 
使用开源数据集是收集数据的最简便方式之一。例如ImageNet 是一个大型图像数据库包含超过 1400 万张图像可用于深度学习模型的训练。此外像 COCO 、PASCAL VOC 这样的数据集也经常用于目标检测模型的训练和评估。但是这些数据库中的图像通常来自不同的领域和应用场景因此可能无法完全满足特定研究的需求。  
1.2 爬取网络图像 
另一种选择是通过网络搜索图像并手动选择要下载的图像。然而由于需要收集大量数据因此此方法的效率较低。需要注意的是网络上的图像可能受到版权保护。在使用这些图像之前务必检查图像的版权信息。 或者您可以编写一个程序来爬取网络并下载所需的图像。但是这需要对数据进行清洗。以确保数据质量。同样需要注意检查每个图像的版权信息。  
1.3 自己拍摄数据集 
对于一些特定的应用场景如自动驾驶和安防监控等需要收集特定场景下的数据这时候就需要进行自主拍摄。可以在实际场景中拍摄图像或视频并对其进行标注以获得适用于特定场景的高质量数据集。  
1.4 使用数据增强生成数据集 
我们知道深度学习模型需要大量的数据。当我们只有一个小数据集时可能不足以训练一个好的模型。在这种情况下我们可以使用数据增强来生成更多训练数据。 常见的增强方式就是几何变换类似翻转、裁剪、旋转和平移这些。  
1.5 使用算法合成图像 
最后一种获取目标检测数据集的方法是使用合成图像。合成图像是通过使用图像处理软件(例如 Photoshop)在图像中添加对象、更改背景或合成多个图像以创建新的图像。这种方法可以提供一些特殊情况或无法通过其他方式获得的图像但是合成图像通常无法完全代替真实场景的数据可能会对模型的准确性产生一定的影响 或者我们可以使用生成对抗网络 (GAN )来生成数据集,  值得注意的是收集训练数据集只是我们训练自定义检测模型的第一步。。。接下来我们要个绍如何标注数据集。当然这一步是假设你的图片已经准备完成。 本次案例使用我个人的 月饼数据集 
链接: https://pan.baidu.com/s/1-DwTH6roNDSqW4NyqoA3BQ?pwd25rt 提取码: 25rt 2.标注数据集 
为什么要标注数据集?标注好的数据集有什么作用呢?答:为了让计算机学会正确地识别物体我们需要提供大量的标注数据集这些数集包含了图像或视频中物体的位置和类别信标注数据集的作用在干它可以帮助计算机学习到如何识别不同种类的物体并且能够正确地定位它们的位置。通过标注数据集我们可以让计算机逐渐学会如何识别和分类不同种类的物体例如人、车、动物等等。这些数据集可以被用来训练深度学习模型让模型学会如何识别新的图像或视频中的物体。 举个简单例子:比如说我们想要让计算机自动识别图像中的猫和狗。为了让计算机学会如何识别这两个物体我们需要提供一些图像样本并在这些样本上标注猫和狗的位置。如果我们没有标注数据集计算机就无法学习到如何识别猫和狗。即使我们给计算机提供了大量的图像它也无法准确地区分这两个物体。但是如果我们有了标注数据集计算机就可以通过学习这些数据来理解猫和狗之间的差异并且可以在新的图像中准确地识别它们。 (当然这个例子指的是监督学习) 
2.1确认标注格式 
YOLOv8 所用数据集格式与 YOLOv5 YOLOv7 相同采用格式如下 
object-class-id x y width height常用的标注工具有很多比如LabeLImg 、LabeUMe 、VIA等但是这些工具都需要安装使用我这里给大家介绍一款在线标注数据集的工具 Make Sense打开即用非常的便捷在标注之前我们来看一下一般情况下遵循的标注规则: 1.目标框必须框住整个目标物体不能有遗漏和重叠。 2.目标框应该与目标物体尽可能接近但不能与目标物体重合 3.目标框的宽度和高度应该为正数不能为零或负数。 4.如果一张图片中有多个目标物体每个目标物体应该用一个独立的目标框进行标注不允许多个目标共用一个框. 5.如果目标物体的形状不规则可以使用多个框进行标注但必须框住整个目标物体。 6.目标框的坐标必须在数据集中统一。 
2.2 开始标注 
确认好标注格式后我们就可以开始标注了进入网页后点击 Get started 开始使用。  首先点击 Drop images 然后 ctrlA 选中整个数据集里面的图片。  随后添加标签信息有几类就添加几个因为我这里只检测月饼一类所以只添加一个标签 Moon Cake. 随后就进入了漫长的标注环节这里大家一定要认真标注不然对最终模型的影响还是很大的。  标注完成后我们点击 Action - Export Annotation 导出 yolo 格式的标签文件。  导出之后的标签文件就是这个样子的我们可以随机抽查几个看看有没有问题。  
3.划分数据集 
也就是说我们现在导出后的图片和标签是这个样子的: 
Moon_Cake├─images└─all└─labels└─all但是 YOLO8 所需要的数据集路径的格式是下面这样子的(YOLOv8 支持不止这一种格式)我们接下来要通过脚本来来划分一下数据集。 
├── yolov8_dataset└── train└── images (folder including all training images)└── labels (folder including all training labels)└── test└── images (folder including all testing images)└── labels (folder including all testing labels)└── valid└── images (folder including all testing images)└── labels (folder including all testing labels) 
具体其实只要修改路径就行了代码我都做了注释。 
import os
import random
import shutildef copy_files(src_dir, dst_dir, filenames, extension):os.makedirs(dst_dir, exist_okTrue)missing_files  0for filename in filenames:src_path  os.path.join(src_dir, filename  extension)dst_path  os.path.join(dst_dir, filename  extension)# Check if the file exists before copyingif os.path.exists(src_path):shutil.copy(src_path, dst_path)else:print(fWarning: File not found for {filename})missing_files  1return missing_filesdef split_and_copy_dataset(image_dir, label_dir, output_dir, train_ratio0.7, valid_ratio0.15, test_ratio0.15):# 获取所有图像文件的文件名不包括文件扩展名image_filenames  [os.path.splitext(f)[0] for f in os.listdir(image_dir)]# 随机打乱文件名列表random.shuffle(image_filenames)# 计算训练集、验证集和测试集的数量total_count  len(image_filenames)train_count  int(total_count * train_ratio)valid_count  int(total_count * valid_ratio)test_count  total_count - train_count - valid_count# 定义输出文件夹路径train_image_dir  os.path.join(output_dir, train, images)train_label_dir  os.path.join(output_dir, train, labels)valid_image_dir  os.path.join(output_dir, valid, images)valid_label_dir  os.path.join(output_dir, valid, labels)test_image_dir  os.path.join(output_dir, test, images)test_label_dir  os.path.join(output_dir, test, labels)# 复制图像和标签文件到对应的文件夹train_missing_files  copy_files(image_dir, train_image_dir, image_filenames[:train_count], .jpg)train_missing_files  copy_files(label_dir, train_label_dir, image_filenames[:train_count], .txt)valid_missing_files  copy_files(image_dir, valid_image_dir, image_filenames[train_count:train_count  valid_count], .jpg)valid_missing_files  copy_files(label_dir, valid_label_dir, image_filenames[train_count:train_count  valid_count], .txt)test_missing_files  copy_files(image_dir, test_image_dir, image_filenames[train_count  valid_count:], .jpg)test_missing_files  copy_files(label_dir, test_label_dir, image_filenames[train_count  valid_count:], .txt)# Print the count of each datasetprint(fTrain dataset count: {train_count}, Missing files: {train_missing_files})print(fValidation dataset count: {valid_count}, Missing files: {valid_missing_files})print(fTest dataset count: {test_count}, Missing files: {test_missing_files})# 使用例子
image_dir  datasets/coco128/images/train2017
label_dir  datasets/coco128/labels/train2017
output_dir  ./my_datasetsplit_and_copy_dataset(image_dir, label_dir, output_dir)运行完脚本后我们的数据集就会划分成这个格式了现在数据准备工作就彻底完成了接下来我们开始着手训练模型。  
4.配置训练环境 
4.1获取代码 
git clone https://github.com/ultralytics/ultralytics针对网络不好的同学我这里上传了一份: 
链接: https://pan.baidu.com/s/1crFGhcmvik-sZJfXY3ixkw?pwdxma5 提取码: xma5 4.2安装环境 
cd ultralytics
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple5.训练模型 
5.1新建一个数据集yaml文件 
这个是我新建的里面写绝对路径 (主要是怕出错) 
# moncake
train: D:\Pycharm_Projects\ultralytics\ultralytics\datasets\mooncake\train  # train images (relative to path) 128 images
val: D:\Pycharm_Projects\ultralytics\ultralytics\datasets\mooncake\valid # val images (relative to path) 128 images
test: D:\Pycharm_Projects\ultralytics\ultralytics\datasets\mooncake\test # test images (optional)# Classes
names:0: MoonCake这个是自带的里面写相对路径和我们的写法不同但是都可以使用据我所只还有很多种数据集读取方式: 
# coco128
path: ../datasets/coco128  # dataset root dir
train: images/train2017  # train images (relative to path) 128 images
val: images/train2017  # val images (relative to path) 128 images
test:  # test images (optional)# Classes
names:0: person1: bicycle2: car79: toothbrush相应的数据集位置就在这里我们可以和 coco128 对比一下这两种划分格式都可以的这里一定要注意路径问题! 
5.2预测模型 
python 指令推理方式 
from ultralytics import YOLO# Load a model
model  YOLO(yolov8n.pt)  # load an official model
model  YOLO(path/to/best.pt)  # load a custom model# Predict with the model
results  model(https://ultralytics.com/images/bus.jpg)  # predict on an image终端中直接键入以下指令就可以实现对图进行推理了推理后如果不指定文件夹就会默认保存到 runs/detect/predict下。 
yolo taskdetect modepredict modelyolov8n.pt sourcedata/images device0 saveTrue就这张图来说v8 确实比v5 牛左上角的标志都检测出来了但是阳台上的自行车还是没检测出来。 YOLOv8 关于模型的各种参数其实都写到了一起在ultralytics/yolo/cfg/default.yaml这些指令我们就可以实现各种我们所需的操作。   
5.3训练模型 
模型训练阶段的原理和预测步骤一致都可以直接通过命令行搞定关于这部分参数依然在ultralytics/yolo/cfg/default,yanl中但我们要训练自己的数据集时记得在 data 参数后指定我们自己的数据集 yamL 文件路径哦。 以下提供两种指令分别对应了不同的需求。(这里有一点值得注意我直接写 dataMoonCake.yal 是报错的! 这个涉及到一个坑的问题没遇到的同学暂且忽略) python指令训练方式 
from ultralytics import YOLO# Load a model
model  YOLO(yolov8n.yaml)  # build a new model from YAML
model  YOLO(yolov8n.pt)  # load a pretrained model (recommended for training)
model  YOLO(yolov8n.yaml).load(yolov8n.pt)  # build from YAML and transfer weights# Train the model
model.train(datacoco128.yaml, epochs100, imgsz640)在训练过程中(训练结束后也可以看》我们可以通过 Tensorboard实时查看模型的训练进度只需要在终端中键入如下的指令这个在我们每次训练时候都会有提示: 
tensorboard --logdir runs\detect\train2训练结束后我们可以查看得到的一些指标数据   我这里展示一张 PR 曲线图。 
6.验证模型 
验证模型同样是简单命令行即可实现如果没有修改中的 ultralytics/yolo/cfg/default,yamL 默认值同样别忘了指定自己数据集的 yaml 即 dataultralytics/datasets/MoonCake.yaml python 指令验证方式 
from ultralytics import YOLO# Load a model
model  YOLO(yolov8n.pt)  # load an official model
model  YOLO(path/to/best.pt)  # load a custom model# Validate the model
metrics  model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map    # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps   # a list contains map50-95 of each category同样的我们验证完后依然可以得到一个文件夹:  我们可以看一下检测效果:  7.导出模型 
python指令方式导出 
from ultralytics import YOLO# Load a model
model  YOLO(yolov8n.pt)  # load an official model
model  YOLO(path/to/best.pt)  # load a custom trained# Export the model
model.export(formatonnx)导出有关的具体参数如下:   
注: TorchScript是PVTorch的模型导出工具。INT8(8位整数量化)是一种量化方法可将神经网络参数表示为8位整数以降低存储和计算
成本。ONNX(Open NeuralNetwork Exchange) 是一种跨平台、开放式的机器学习框架。TensorRT是一种用于加速深度学习推理的高性能
引擎。CoreML是苹果公司推出的机器学习框架。Keras是一种流行的深度学习框架。至此使用 YOLOv8 训练自己的目标检测数据集七大步完结撒花!!! 文章转载自: http://www.morning.nyqxy.cn.gov.cn.nyqxy.cn http://www.morning.fnfxp.cn.gov.cn.fnfxp.cn http://www.morning.ryjl.cn.gov.cn.ryjl.cn http://www.morning.ttdbr.cn.gov.cn.ttdbr.cn http://www.morning.uycvv.cn.gov.cn.uycvv.cn http://www.morning.yjprj.cn.gov.cn.yjprj.cn http://www.morning.fwrr.cn.gov.cn.fwrr.cn http://www.morning.lqjpb.cn.gov.cn.lqjpb.cn http://www.morning.krkwp.cn.gov.cn.krkwp.cn http://www.morning.alwpc.cn.gov.cn.alwpc.cn http://www.morning.xkgyh.cn.gov.cn.xkgyh.cn http://www.morning.hxpff.cn.gov.cn.hxpff.cn http://www.morning.frzdt.cn.gov.cn.frzdt.cn http://www.morning.kysport1102.cn.gov.cn.kysport1102.cn http://www.morning.c7495.cn.gov.cn.c7495.cn http://www.morning.nmrtb.cn.gov.cn.nmrtb.cn http://www.morning.jwxmn.cn.gov.cn.jwxmn.cn http://www.morning.qblcm.cn.gov.cn.qblcm.cn http://www.morning.dbrpl.cn.gov.cn.dbrpl.cn http://www.morning.mlyq.cn.gov.cn.mlyq.cn http://www.morning.lsnnq.cn.gov.cn.lsnnq.cn http://www.morning.tqygx.cn.gov.cn.tqygx.cn http://www.morning.cklld.cn.gov.cn.cklld.cn http://www.morning.xrpwk.cn.gov.cn.xrpwk.cn http://www.morning.mkydt.cn.gov.cn.mkydt.cn http://www.morning.ktmbp.cn.gov.cn.ktmbp.cn http://www.morning.sbrjj.cn.gov.cn.sbrjj.cn http://www.morning.krhkb.cn.gov.cn.krhkb.cn http://www.morning.lxfqc.cn.gov.cn.lxfqc.cn http://www.morning.lfcfn.cn.gov.cn.lfcfn.cn http://www.morning.rjjys.cn.gov.cn.rjjys.cn http://www.morning.rjqtq.cn.gov.cn.rjqtq.cn http://www.morning.yxyyp.cn.gov.cn.yxyyp.cn http://www.morning.zydr.cn.gov.cn.zydr.cn http://www.morning.rzysq.cn.gov.cn.rzysq.cn http://www.morning.ffdyy.cn.gov.cn.ffdyy.cn http://www.morning.i-bins.com.gov.cn.i-bins.com http://www.morning.zdxinxi.com.gov.cn.zdxinxi.com http://www.morning.bzjpn.cn.gov.cn.bzjpn.cn http://www.morning.wmdqc.com.gov.cn.wmdqc.com http://www.morning.drytb.cn.gov.cn.drytb.cn http://www.morning.dmhs.cn.gov.cn.dmhs.cn http://www.morning.mbfj.cn.gov.cn.mbfj.cn http://www.morning.zrks.cn.gov.cn.zrks.cn http://www.morning.cbpkr.cn.gov.cn.cbpkr.cn http://www.morning.rgksz.cn.gov.cn.rgksz.cn http://www.morning.qnrpj.cn.gov.cn.qnrpj.cn http://www.morning.qjsxf.cn.gov.cn.qjsxf.cn http://www.morning.tpnx.cn.gov.cn.tpnx.cn http://www.morning.lpmdy.cn.gov.cn.lpmdy.cn http://www.morning.hkpn.cn.gov.cn.hkpn.cn http://www.morning.tnqk.cn.gov.cn.tnqk.cn http://www.morning.tjpmf.cn.gov.cn.tjpmf.cn http://www.morning.phzrq.cn.gov.cn.phzrq.cn http://www.morning.bfycr.cn.gov.cn.bfycr.cn http://www.morning.gnmhy.cn.gov.cn.gnmhy.cn http://www.morning.rchsr.cn.gov.cn.rchsr.cn http://www.morning.gmmyn.cn.gov.cn.gmmyn.cn http://www.morning.qsy37.cn.gov.cn.qsy37.cn http://www.morning.gqjqf.cn.gov.cn.gqjqf.cn http://www.morning.wnjsp.cn.gov.cn.wnjsp.cn http://www.morning.drytb.cn.gov.cn.drytb.cn http://www.morning.pmlgr.cn.gov.cn.pmlgr.cn http://www.morning.ghssm.cn.gov.cn.ghssm.cn http://www.morning.jkftn.cn.gov.cn.jkftn.cn http://www.morning.redhoma.com.gov.cn.redhoma.com http://www.morning.wxrbl.cn.gov.cn.wxrbl.cn http://www.morning.brbmf.cn.gov.cn.brbmf.cn http://www.morning.nqlnd.cn.gov.cn.nqlnd.cn http://www.morning.ppzgr.cn.gov.cn.ppzgr.cn http://www.morning.prprz.cn.gov.cn.prprz.cn http://www.morning.kmlmf.cn.gov.cn.kmlmf.cn http://www.morning.prprj.cn.gov.cn.prprj.cn http://www.morning.txhls.cn.gov.cn.txhls.cn http://www.morning.bplqh.cn.gov.cn.bplqh.cn http://www.morning.rnqbn.cn.gov.cn.rnqbn.cn http://www.morning.ns3nt8.cn.gov.cn.ns3nt8.cn http://www.morning.dfojgo.cn.gov.cn.dfojgo.cn http://www.morning.fndmk.cn.gov.cn.fndmk.cn http://www.morning.lbcbq.cn.gov.cn.lbcbq.cn