本文经AI新媒体量子比特(公众号ID:QbitAI)授权转载,转载请联系出处。很快——经典目标检测模型YOLO第八版发布。这次有很多升级,包括命令行界面、PythonAPI、backbone结构等,准确率比YOLOv5高很多(速度还没有官宣)。以下是网友实测。几个不同尺度的变体在目标检测、实例分割和图像分类三项任务中实现了最大33.21%的提升。不知道YOLOv8发布后v5版本还要“走”多久?哦,我们还发现有人用它在自定义数据集上完成了一波训练,效果是这样的。这样的精准和稳定,让网友们赞叹了一波。怎么玩?我们还移动了教程。在开始自定义数据集上训练YOLOv8的正式教程之前,我们先来了解一下这个新版本。它的生产公司是Ultralytics,也就是发布YOLOv5的公司。本次升级主要包括:人性化的API(命令行+Python)更快更准(由于官方论文尚未发表,目前还无法获得与SOTA模型的具体对比数据),支持目标检测,instancesegmentation和imageclassification三个任务可以扩展到之前所有版本的新骨干网络(CSP结构保持不变,但是C2f模块取代了C3模块,每个stage的block数量改为[3,6,6,3],etc.)NewAnchor-Freehead的新损失函数主要关注第一个。首先,YOLOv8的开发者脱离了标准YOLO工程的设计,将train.py、detect.py、val.py和export.py这四个脚本分开。在短期内,这种变化可能会引起混淆,因为它自YOLOv3以来就没有变化;但事实证明,这种看似简单易懂的模型在实时处理和追踪场景下部署起来确实麻烦。所以我改用更灵活的新设计,让YOLOv8可以通过终端独立使用。其次,新增的CLI可以让你对各种任务和版本进行更方便的模型训练、验证或推理。终端中的操作方法和我们熟悉的脚本非常相似,比如使用CLI检测给定图像中的物体,就像这样:yolotask=detect\mode=predict\model=yolov8n.pt\cnotallow=0.25\source='https://media.roboflow.com/notebooks/examples/dog.jpeg'最后,UltralyticsYOLO这次配备了Pythonic模型和训练界面,让我们可以在自定义的环境中使用YOLO模型6行代码的Python脚本,运行方式是这样的:fromultralyticsimportYOLOmodel=YOLO('yolov8n.pt')model.predict(source='https://media.roboflow.com/notebooks/examples/dog.jpeg',cnotallow=0.25)是不是很简单,不用像以前那样改一堆。然后,我们将正式开始教程部分——在自定义数据集上训练YOLOv8。1.首先,安装我们新的YOLOv8,“pip”或“gitclone”。>pipinstallultralytics(推荐)或>gitclonehttps://github.com/ultralytics/ultralytics>cdultralytics>pipinstall-eultralytics2,然后开始构建自定义数据集。为了让这个过程不那么痛苦和耗时,我们可以使用Roboflow工具(本教程也是由它提供的)。操作步骤如下:(1)创建账号,新建项目,项目类型选择“ObjectDetection”。(2)上传图片将数据集导入到项目中。如果你没有准备好的数据集,你可以使用他们的官方数据集(从RoboflowUniverse下载)。如果您的图片已被标记,系统会自动读取;如果没有,您现在可以使用它提供的这个非常快速的标记工具来标记。(3)然后就可以生成数据集了。可以勾选“Preprocessing”和“DataEnhancement”这两个选项,让你的模型更加健壮。(4)现在我们有了自己托管的数据集,导出后可以直接加载到电脑上进行训练。记得从RoboflowUniverse下载数据集的时候选择“YOLOv5PyTorch”格式,然后在弹出的窗口中看到一段代码,简单修改一下各个参数即可。fromroboflowimportRoboflowrf=Roboflow(api_key='YOUR_API_KEY')project=rf.workspace('WORKSPACE').project('PROJECT')dataset=project.version(1).download('yolov8')3.开始训练使用以下命令将数据集下载片段(snippet)粘贴到您的YOLOv8Colab笔记本中以开始训练。yolotask=detect\mode=train\model=yolov8s.pt\data={dataset.location}/data.yaml\epochs=100\imgsz=640根据数据集大小和训练方法,这个过程会持续几分钟或小时。以下是上述足球数据集的训练结果:(1)返回的混淆矩阵;(2)跟踪的关键指标;(3)批量推理验证实例。是不是太糟了?4.使用测试集验证模型,训练完成后开始验证。创建数据集时分为三部分,其中一部分作为测试集:yolotask=detect\mode=val\model={HOME}/runs/detect/train/weights/best.pt\data={dataset.location}/data.yaml评估结果如下:5.使用自定义模型预测命令如下:yolotask=detect\mode=predict\model={HOME}/runs/detect/train/weights/best.pt\cnotallow=0.25\source={dataset.location}/test/images结果示例:.6.最后一步:导出和上传权重现在我们在项目的“/runs/detect/train/weights/best.pt”文件夹中有一组可用于托管API端点的训练权重。当然你也可以使用Roboflowpip包中的Deploy()函数上传到RoboflowDeploy,这样就可以分享给其他人了。单击Roboflow仪表板侧栏中的“部署”以查看可用选项,然后能够直接在浏览器中测试您的模型。要与他人共享,只需发送一个URL。测试素材可以直接使用你测试集中的图片,也可以上传新的图片或视频,或者粘贴一个YouTube链接直接使用相机。遍!不麻烦吗?赶快测试一下YOLOv8的真功夫吧~你需要的链接都在下面,玩得开心!YOLOv8官方仓库:https://github.com/ultralytics/ultralytics教程文本:https://blog.roboflow。com/how-to-train-yolov8-on-a-custom-dataset/
