ROBOFLOW – 使用 python 进行训练和测试

roboflow 是一个用于注释图像以用于对象检测 ai 的平台。

我将这个平台用于 c2smr c2smr.fr,我的海上救援计算机视觉协会。

在本文中,我将向您展示如何使用这个平台并使用 python 训练您的模型。

您可以在我的github上找到更多示例代码:https://github.com/c2smr/detector

i – 数据集

要创建数据集,请访问 https://app.roboflow.com/ 并开始注释您的图像,如下图所示。

立即学习“Python免费学习笔记(深入)”;

在这个例子中,我绕道所有游泳者来预测他们在未来图像中的位置。
为了获得良好的结果,请裁剪所有游泳者并将边界框放置在对象后面以正确包围它。

ROBOFLOW - 使用 python 进行训练和测试

您已经可以使用公共 roboflow 数据集,为此检查 https://universe.roboflow.com/

二、培训

在训练阶段,你可以直接使用 roboflow,但是到了第三次你就需要付费了,这就是为什么我向你展示如何使用你的笔记本电脑进行操作。

第一步是导入数据集。为此,您可以导入 roboflow 库。

pip install roboflow

创建模型需要使用yolo算法,可以通过ultralytics库导入该算法。

pip install ultralytics

在我的脚本中,我使用以下命令:

py train.py api-key project-workspace project-name project-version nb-epoch size_model

您必须获得:

访问密钥工作空间roboflow 项目名称项目数据集版本训练模型的纪元数神经网络大小

最初,脚本下载 yolov8-obb​​.pt,默认的 yolo 权重和训练前数据,以方便训练。

import sysimport osimport randomfrom roboflow import roboflowfrom ultralytics import yoloimport yamlimport timeclass main:    rf: roboflow    project: object    dataset: object    model: object    results: object    model_size: str    def __init__(self):        self.model_size = sys.argv[6]        self.import_dataset()        self.train()    def import_dataset(self):        self.rf = roboflow(api_key=sys.argv[1])        self.project = self.rf.workspace(sys.argv[2]).project(sys.argv[3])        self.dataset = self.project.version(sys.argv[4]).download("yolov8-obb")        with open(f'{self.dataset.location}/data.yaml', 'r') as file:            data = yaml.safe_load(file)        data['path'] = self.dataset.location        with open(f'{self.dataset.location}/data.yaml', 'w') as file:            yaml.dump(data, file, sort_keys=false)    def train(self):        list_of_models = ["n", "s", "m", "l", "x"]        if self.model_size != "all" and self.model_size in list_of_models:            self.model = yolo(f"yolov8{self.model_size}-obb.pt")            self.results = self.model.train(data=f"{self.dataset.location}/"                                                 f"yolov8-obb.yaml",                                            epochs=int(sys.argv[5]), imgsz=640)        elif self.model_size == "all":            for model_size in list_of_models:                self.model = yolo(f"yolov8{model_size}.pt")                self.results = self.model.train(data=f"{self.dataset.location}"                                                     f"/yolov8-obb.yaml",                                                epochs=int(sys.argv[5]),                                                imgsz=640)        else:            print("invalid model size")if __name__ == '__main__':    main()

三、显示

训练完模型后,得到文件best.py和last.py,它们对应的是权重。

使用ultralytics库,您还可以导入yolo并加载您的体重,然后加载您的测试视频。
在此示例中,我使用跟踪功能来获取每个游泳者的 id。

import cv2from ultralytics import yoloimport sysdef main():    cap = cv2.videocapture(sys.argv[1])    model = yolo(sys.argv[2])    while true:        ret, frame = cap.read()        results = model.track(frame, persist=true)        res_plotted = results[0].plot()        cv2.imshow("frame", res_plotted)        if cv2.waitkey(1) == 27:            break    cap.release()    cv2.destroyallwindows()if __name__ == "__main__":    main()

为了分析预测,可以获取模型json如下。

 results = model.track(frame, persist=True) results_json = json.loads(results[0].tojson())

以上就是ROBOFLOW – 使用 python 进行训练和测试的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1349446.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月13日 12:52:53
下一篇 2025年12月11日 04:05:06

相关推荐

  • 数据工程终极指南

    数据工程是设计和构建大规模收集、存储和分析数据的系统的实践。这是一个广泛的领域,几乎在每个行业都有应用。本文旨在提供有关如何成为一名数据工程师的分步指南。大多数数据工程师都拥有计算机科学或相关领域的学士学位背景,教授云计算、编码技能和数据库设计等基础知识。要成为一名数据工程师,首先应该专注于培养数据…

    2025年12月13日
    000
  • python+scrapy爬虫教程

    Scrapy 是一款强大的 Python 爬虫框架,用于抓取网站数据,包括结构化和非结构化数据。其安装步骤包括:1. pip install scrapy;2. 创建项目:scrapy startproject myproject;3. 创建爬虫:在 myproject/spiders 文件夹下创建…

    2025年12月13日
    000
  • 爬虫python教程迅雷下载

    要使用 Python 爬虫下载迅雷资源,需要:1. 安装库;2. 获取资源链接;3. 解析页面内容;4. 提取下载链接;5. 下载资源。具体步骤如下:1. 安装必要的库;2. 从迅雷网站获取资源链接;3. 使用 BeautifulSoup 解析页面内容;4. 使用正则表达式从 HTML 元素中提取迅…

    2025年12月13日
    000
  • python下载进度条怎么写代码

    Python 中进度条是使用 tqdm 库实现的,可用于在执行耗时操作时显示任务进度。通过安装 tqdm 并使用以下步骤创建进度条:创建一个代表任务的 range 对象(total)。使用 with tqdm(total=total) as progress_bar 创建一个进度条。遍历范围并调用 …

    2025年12月13日
    000
  • 机器学习中的标签编码

    标签编码是机器学习中最常用的技术之一。它用于将分类数据转换为数字形式。因此,数据可以拟合到模型中。 让我们了解为什么我们使用标签编码。想象一下,数据包含字符串 形式的基本列。但是,您无法将这些数据放入模型中,因为建模仅适用于数值数据,我们该怎么办?这是一种挽救生命的技术,当我们准备好数据进行拟合时,…

    2025年12月13日
    000
  • 推荐:《Python实践实验室》课程

    您是否希望提高 python 编程技能并应对现实世界的挑战? labex 提供的 python 实践实验室课程就是您的最佳选择。这门综合课程旨在指导您完成一系列实践项目,使您成为一名熟练的 python 程序员。 深入 Python 的深处 通过本课程,您将有机会探索各种 Python 编程概念和技…

    2025年12月13日
    000
  • Ansible 入门 – 初学者指南:日复一日的 DevOps 工具系列

    欢迎来到“50 天 50 个 devops 工具”系列的第 30 天!今天,我们将探索 ansible,它是 devops 工具包中最重要的工具之一。本博客将向您介绍 ansible 的基础知识,分解其关键组件并向您展示如何从简单的示例开始。我们会让事情简单明了,使其成为初学者的完美起点。 什么是 …

    2025年12月13日
    000
  • 使用 EventBridge 和 Lambda 进行自动故障排除和 ITSM 系统

    介绍 : 各位,在 it 运营中,监视服务器指标(例如 cpu/内存和磁盘或文件系统的利用率)是一项非常通用的任务,但如果任何指标被触发为关键指标,则需要专门人员通过以下方式执行一些基本故障排除:登录服务器并找出使用的最初原因,如果该人收到多个相同的警报,导致无聊且根本没有生产力,则他必须多次执行该…

    2025年12月13日 好文分享
    000
  • 苹果系统python爬虫教程

    使用 Python 在苹果系统上构建爬虫的步骤:安装 Python 3 和 pip。安装爬虫库 requests 和 BeautifulSoup。使用 requests 库获取网页内容。使用 BeautifulSoup 库解析 HTML。遍历并提取数据。将数据保存到文件中。示例爬虫可提取 Stack…

    2025年12月13日
    000
  • 释放 Claude AI:用于经济实惠且灵活的 AI 集成的非官方 API

    Anthropic 开发的 Claude AI 以其令人印象深刻的能力在 AI 社区中掀起波澜。然而,官方 API 对于许多开发人员和小型企业来说可能过于昂贵。这就是我们的非官方 Claude AI API 的用武之地,它提供了一个更实惠、更灵活的解决方案,用于将 Claude 的力量集成到您的项目…

    2025年12月13日
    000
  • 利用 Python 实现自动化:用代码简化日常任务

    介绍 Python 已成为从 Web 开发到数据科学等各种应用程序的首选语言。 Python 真正大放异彩的领域之一是自动化。无论您是想自动执行日常任务、简化工作流程,还是创建功能强大的脚本来节省时间和精力,Python 的简单性和多功能性都使其成为完成这项工作的完美工具。 为什么 Python 是…

    2025年12月13日
    000
  • 可视化项目

    我目前正在开发 TanaMobility,这是一个使用 Dash 和 Python 开发的交互式平台。该项目旨在通过利用地理空间数据对马达加斯加塔那那利佛的交通流进行建模和可视化,以更好地了解人口流动和交通动态。我非常感谢社区的反馈,以帮助改进这个平台并使可视化更加富有洞察力。欢迎您的帮助和建议。您…

    2025年12月13日
    000
  • 如何使用预先导入的包启动 python 或 ipython

    每次执行 python 或 ipython 时,都必须编写“import os”或其他常用包,这个脚本将启动 python 并导入这些包 #!/usr/bin/env bash# ————————————————————…

    2025年12月13日
    000
  • 在 Pandas 中使用 DataFrame

    天哪!? 今天我带着一个新笔记本回来了,它演示了在 Jupyter 中处理数据的方法。 源文件 我从下载了数据集Kaggle 是一个查找真实世界数据并与其他数据爱好者联系的平台。在那里您会发现令人难以置信的数据集和项目集合,您还可以参加比赛。 工作的简短证据 返回数据框的简明摘要后,我执行了数据清理…

    2025年12月13日
    000
  • 使用 Pandas 进行 JIRA 分析

    问题 很难说 atlassian jira 是最受欢迎的问题跟踪器和项目管理解决方案之一。你可以喜欢它,也可以讨厌它,但如果你被某家公司聘用为软件工程师,那么很有可能会遇到 jira。 如果您正在从事的项目非常活跃,可能会有数千个各种类型的 jira 问题。如果您领导着一个工程师团队,您可能会对分析…

    2025年12月13日 好文分享
    000
  • API 设计的艺术:使用 Nodejs 创建有效的 RESTful API

    在 Web 开发的动态世界中,可扩展且高效的应用程序必须建立在 API 设计的坚实基础上。随着对 RESTful API 的需求不断增加,Node.js 现已成为构建高性能、事件驱动的 API 来服务大量并发请求的强大力量。以下部分实际上深入研究了使用 Node.js 进行有效 API 设计的原则,…

    2025年12月13日
    000
  • python精美进度条 python制作精美进度条详细教程

    使用tqdm库可以轻松制作精美进度条。步骤如下:安装tqdm库:pip install tqdm导入tqdm库,使用tqdm.tqdm(序列)创建进度条自定义进度条:使用tqdm.tqdm(iterable, unit=”, desc=”, leave=False, &#82…

    2025年12月13日
    000
  • python终端进度条 python终端显示进度条百分比

    在 Python 终端显示进度条有三种方式:tqdm 库:安装 pip install tqdm,循环任务时更新进度条。富文本进度条:安装 pip install rich,提供更多自定义选项。自制进度条:编写简单代码,打印完成百分比进度条。 如何在 Python 终端显示进度条 显示进度条是向用户…

    2025年12月13日
    000
  • Python控制台显示动态进度条

    Python 控制台中实现动态进度条的方法:tqdm 包:使用 tqdm 库创建和定制进度条。ProgressBar2 包:支持高级功能,例如多进程并行处理。自定义实现:使用 Python 内置函数实现简单的进度条。 Python 控制台中显示动态进度条 简介 在 Python 脚本中显示动态进度条…

    2025年12月13日
    000
  • 让python实现控制台进度条

    创建 Python 进度条有三种方法:1. 使用进度条库(tqdm、progress); 2. 使用 sys.stdout; 3. 使用进度条小部件(GUI框架)。 如何使用 Python 实现控制台进度条 进度条是一种可视化工具,可以显示一个任务的进展情况。在 Python 中,有几种方法可以创建…

    2025年12月13日
    000

发表回复

登录后才能评论
关注微信