# YOLOv8测试(1)
创始人
2024-06-01 20:33:45
0

YOLOv8测试(1)

  • 1. 训练最简流程
    • 1.1 安装包
    • 1.2 训练demo
    • 1.3 验证
  • 参考文献资料

鉴于网络上的太多教程,都太过繁琐了。其实之前也用过YOLOv2 v3版本,但很久没用,找了一圈教程多少有坑,想想还是自己整理一版吧。花了几天时间仔细看了看,发现还是官网的教程靠谱并且简洁,整理了一个最简快速流程,帮助想要使用目标检测算法的爱好者快速上手项目。


1. 训练最简流程

对于多数用户来说,都是面向边缘端的项目,实际上,日常监测任务也不要求特别高的训练精度,为了能够快速训练,这里选择Github中提到的YOLOv8n模型。

1.1 安装包

pip install ultralytics

在这里插入图片描述

1.2 训练demo

官方给的demo似乎对于Pycharm用户会有小报错,使用那个网页版的jupyter notebook似乎不会,应该就是线程的问题

  • 官方代码
from ultralytics import YOLO# Load a model
model = YOLO("yolov8n.yaml")  # build a new model from scratch
model = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)# Use the model
results = model.train(data="coco128.yaml", epochs=3)  # train the model
  • 修改的,增加了main函数就行
from ultralytics import YOLO# Load a model
def main():model = YOLO("yolov8n.yaml")  # build a new model from scratchmodel = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)# model.train(data="coco128.yaml", epochs=5)if __name__ == '__main__':main()

1.3 验证

  • 完整代码
from ultralytics import YOLO# Load a model
def main():model = YOLO("yolov8n.yaml")  # build a new model from scratchmodel = YOLO("yolov8n.pt")  # load a pretrained model (recommended for training)# model.train(data="coco128.yaml", epochs=5)results = model.val()  # evaluate model performance on the validation setif __name__ == '__main__':main()
  • 日志
Image sizes 640 train, 640 val
Using 8 dataloader workers
Logging results to runs\detect\train9
Starting training for 5 epochs...Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size1/5      5.85G      1.213      1.429      1.258        215        640: 100%|██████████| 8/8 [00:05<00:00,  1.58it/s]Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:36<00:00,  9.12s/it]all        128        929      0.668       0.54      0.624      0.461Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size2/5      6.87G      1.156      1.327      1.243        163        640: 100%|██████████| 8/8 [00:04<00:00,  1.64it/s]Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:35<00:00,  8.91s/it]all        128        929      0.667      0.589      0.651      0.487Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size...
  • 预测结果
    返回的信息也挺全面的,包括Boxes 原始图像 尺寸之类的
results:[{ '_keys': . at 0x0000023FA2FC0350>,'boxes': ultralytics.yolo.engine.results.Boxes
type:  torch.Tensor
shape: torch.Size([6, 6])
dtype: torch.float32
tensor([[2.40000e+01, 2.26000e+02, 8.02000e+02, 7.58000e+02, 8.75480e-01, 5.00000e+00],[4.80000e+01, 3.97000e+02, 2.46000e+02, 9.06000e+02, 8.74487e-01, 0.00000e+00],[6.70000e+02, 3.79000e+02, 8.10000e+02, 8.77000e+02, 8.53311e-01, 0.00000e+00],[2.19000e+02, 4.06000e+02, 3.44000e+02, 8.59000e+02, 8.16101e-01, 0.00000e+00],[0.00000e+00, 2.54000e+02, 3.20000e+01, 3.25000e+02, 4.91605e-01, 1.10000e+01],[0.00000e+00, 5.50000e+02, 6.40000e+01, 8.76000e+02, 3.76493e-01, 0.00000e+00]], device='cuda:0'),'masks': None,'names': { 0: 'person',1: 'bicycle',...79: 'toothbrush'},'orig_img': array([[[122, 148, 172],[120, 146, 170],[125, 153, 177],...,...,[ 99,  89,  95],[ 96,  86,  92],[102,  92,  98]]], dtype=uint8),'orig_shape': (1080, 810),'path': '..\\bus.jpg','probs': None,'speed': {'inference': 30.916452407836914, 'postprocess': 2.992391586303711, 'preprocess': 3.988981246948242}}]
  • 可视化结果
    在这里插入图片描述

小结:

  1. 避免多线程导致的程序报错

错误:This probably means that you are not using fork to start your
child processes and you have forgotten to use the proper idiom
in the main module:

        if __name__ == '__main__':freeze_support()...The "freeze_support()" line can be omitted if the programis not going to be frozen to produce an executable.
  1. 训练注意关闭KX上网工具,否则模型文件可能下载失败
    错误:requests.exceptions.ProxyError: HTTPSConnectionPool(host=‘pypi.org’, port=443): Max retries exceeded with url: /pypi/ultralytics/json (Caused by ProxyError(‘Cannot connect to proxy.’, FileNotFoundError(2, ‘No such file or directory’)))
  2. opencv包报错:具体可参考这篇【2】
    The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Cocoa support.

参考文献资料

【1】YOLOv8官方Github
【2】https://stackoverflow.com/questions/74035760/opencv-waitkey-throws-assertion-rebuild-the-library-with-windows-gtk-2-x-or

相关内容

热门资讯

安卓系统把视频设为铃声,如何将... 你有没有想过,手机里的视频竟然能变成铃声?是的,你没听错,安卓系统竟然有这样的神奇功能!今天,就让我...
边锋杭麻圈安卓系统,边锋科技引... 你有没有听说过边锋杭麻圈安卓系统?这可是最近在游戏圈里火得一塌糊涂的存在哦!想象你正坐在家里,手握着...
ios系统能转移到安卓系统,轻... 你有没有想过,有一天你的手机从iOS系统跳转到安卓系统,会是怎样的体验呢?这可不是天方夜谭,随着科技...
安卓系统网络连接查看,安卓系统... 你有没有遇到过这种情况:手机里装了各种APP,可就是不知道哪个在偷偷消耗着你的流量?别急,今天就来教...
什么安卓系统优化的好,打造流畅... 你有没有发现,手机用久了,就像人一样,会变得有些“臃肿”呢?尤其是安卓系统,有时候感觉就像一个老态龙...
手机安卓系统ios系统怎么安装... 你有没有发现,现在手机里的软件真是五花八门,让人眼花缭乱?无论是安卓系统还是iOS系统,都能轻松安装...
按音量键报警安卓系统,安卓系统... 你有没有遇到过这种情况:手机突然发出刺耳的警报声,吓得你心跳加速,还以为发生了什么大事?别担心,今天...
安卓系统改win版系统怎么安装... 你有没有想过,把你的安卓手机换成Windows系统的电脑呢?想象那流畅的触控体验和强大的办公功能,是...
安卓系统如何备份到苹果,轻松实... 你是不是也有过这样的烦恼:手机里的照片、联系人、应用数据等等,突然间就消失得无影无踪?别担心,今天就...
修改安卓系统参数设置,安卓系统... 你有没有发现,你的安卓手机有时候就像一个不听话的小孩子,总是按照自己的节奏来,让你有点头疼?别急,今...
安卓手机gps定位系统,畅享智... 你有没有发现,现在不管走到哪里,手机都能帮你找到路?这都得归功于安卓手机的GPS定位系统。想象你站在...
华为不能安卓系统升级,探索创新... 你知道吗?最近有个大新闻在科技圈里炸开了锅,那就是华为的新款手机竟然不能升级安卓系统了!这可真是让人...
汽车加装安卓系统卡住,探究原因... 你有没有遇到过这样的尴尬情况:汽车加装了安卓系统,结果屏幕突然卡住了,就像被施了魔法一样,怎么也动弹...
电量壁纸安卓系统下载,打造个性... 手机电量告急,是不是又得赶紧找充电宝了?别急,今天就来给你安利一款超实用的电量壁纸,让你的安卓手机瞬...
iPhonex里面是安卓系统,... 你有没有想过,那个我们每天都离不开的iPhone,里面竟然可能是安卓系统?是的,你没听错,就是那个以...
ios系统比安卓系统好在哪里,... 你有没有想过,为什么有些人对iOS系统情有独钟,而有些人却对安卓系统爱不释手呢?今天,就让我带你从多...
安卓系统跟踪设置大小,跟踪设置... 你知道吗?现在智能手机几乎成了我们生活的必需品,而安卓系统作为全球最受欢迎的操作系统之一,它的跟踪设...
在线迎新系统下载安卓,轻松开启... 你有没有想过,开学季的到来,就像一场盛大的狂欢,而在这个狂欢中,有一个小助手,它默默地守护着你的入学...
安卓系统怎么申请微信号,一键申... 你有没有想过,在安卓手机上申请一个微信账号,竟然也能变得如此简单?没错,就是那个我们每天离不开的社交...
安卓手机系统里怎么清理,轻松优... 手机里的东西越来越多,是不是感觉安卓手机系统越来越慢了呢?别急,今天就来教你怎么清理安卓手机系统,让...