Roboflow预训练模型本地部署

Roboflow不得不说是一个让人非常惊艳的视觉平台,最近在做乒乓球检查,在上面可以搜索到很多相关例子,包含数据集和预训练好的模型。嗯,果然是具备构建和部署计算机视觉模型所需的一切。

在网站上搜索table tennis,有很多相关项目和数据集,如图找到一个乒乓球的数据集,包含4714张标注图片,并且包含预训练好的模型,模型使用的是 Roboflow 2.0 Object Detection(Fast)。

用树莓派5拍了一张包含乒乓球的图片,上传测试一下:

 拍的比较昏暗,也算小目标了,居然成功检测出来了:

于是想着赶紧本地部署测一下,如下是具体步骤:

1、安装 roboflow inference

Roboflow Inferenceicon-default.png?t=N7T8https://inference.roboflow.com/

先看roboflow inference,是一种在最先进的计算机视觉模型上运行推理的工具。它可以在各种设备和环境上部署,无需机器学习的先验知识。Roboflow推理支持目标检测、分类、实例分割模型以及基础模型。

Roboflow inference使用Onnxruntime作为其核心推理引擎。Onnxruntime提供了一系列不同的执行提供程序,可以优化不同目标设备上的推理。

因为笔记本电脑带GPU,所以安装如下:

conda create --name roboflow python=3.10
conda activate roboflow
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple inference-gpu

如果还没安装onnxruntime-gpu,这里会自动安装onnxruntime-gpu,一定得注意 onnxruntime-gpu 与cuda的对应关系:

NVIDIA - CUDA | onnxruntime

由于我的电脑是cuda12.1的版本,安装后需要升级onnxruntime-gpu 到 1.17版本,升级命令如下:

pip install --upgrade onnxruntime-gpu --extra-index-url https://aiinfra.pkgs.visualstudio.com/PublicPackages/_packaging/onnxruntime-cuda-12/pypi/simple/
2、申请API KEY

Authentication | Roboflow Docs

需要注册 Roboflow,并创建dashboard,在 settings 里面,工作目录下可以找到你的 API KEY

3、使用roboflow平台上预训练好的模型进行推理

使用roboflow inference,您可以运行Roboflow Universe上提供的50000多个模型中的任何一个。Run a Fine-Tuned Model - Roboflow Inferenceicon-default.png?t=N7T8https://inference.roboflow.com/quickstart/explore_models/#run-a-model-on-universe

我所需要推理的乒乓球检查模型是 tt2-cyt9i/1

所以具体代码如下:

# import a utility function for loading Roboflow models
from inference import get_model
# import supervision to visualize our results
import supervision as sv
# import cv2 to helo load our image
import cv2

# define the image url to use for inference
image_file = "ping_pong.jpg"
image = cv2.imread(image_file)

# load a pre-trained yolov8n model
model = get_model(model_id="tt2-cyt9i/1", api_key="填入你申请的API KEY")

# run inference on our chosen image, image can be a url, a numpy array, a PIL image, etc.
results = model.infer(image)

# load the results into the supervision Detections api
detections = sv.Detections.from_inference(results[0].dict(by_alias=True, exclude_none=True))

# create supervision annotators
bounding_box_annotator = sv.BoundingBoxAnnotator()
label_annotator = sv.LabelAnnotator()

# annotate the image with our inference results
annotated_image = bounding_box_annotator.annotate(
    scene=image, detections=detections)
annotated_image = label_annotator.annotate(
    scene=annotated_image, detections=detections)

# display the image
sv.plot_image(annotated_image)

会使用 matplotlib 展示出检查结果: 

4、常见问题

很遗憾如果你不会科学上网的话,会连不上Roboflow API。

最后使用NVIDIA老黄最喜欢的 perplexity ai 做个Roboflow介绍Perplexityicon-default.png?t=N7T8https://www.perplexity.ai/

        Roboflow是一个为开发者提供的工具和平台,旨在帮助他们构建自己的计算机视觉应用。它提供了一整套端到端的解决方案,包括图像收集、标注、创建数据集、模型训练和部署应用。Roboflow的目标是使计算机视觉成为每个开发者工具箱中的必备工具,并为尽可能多的开发者提供支持。Roboflow的主要功能包括:

  • 数据收集与管理:帮助用户收集和管理用于训练自定义YOLOv8模型的数据。
  • 数据标注:提供工具和服务,快速标注数据集,包括使用基于SAM的标签助手,以更快的速度对图像进行标注。
  • 数据预处理和扩充:通过预处理和扩充数据,提高模型的稳健性。
  • 模型训练与评估:支持模型训练过程,并提供模型评估工具,如混淆矩阵和交互式矢量分析图,帮助用户找到改进模型的机会。
  • 模型部署:支持模型部署,允许用户测试模型并查找部署指南,包括实时测试和使用训练好的模型作为标注助手。

        Roboflow使用WebML和TensorFlow.js作为其核心技术,提供了一种快速而便捷的方式,让开发者在网页浏览器中运行他们的计算机视觉模型。这使得无论开发者的技能水平或经验如何,都能够利用Roboflow构建计算机视觉应用。

        迄今为止,已经有超过10万名开发者使用Roboflow构建了各种各样的应用,包括许多知名企业。Roboflow的使用案例涵盖了从药房管理系统到游戏应用等多个领域。

        总之,Roboflow为构建和部署计算机视觉模型提供了全面的工具和服务,从数据收集、标注到模型训练和部署,为开发者提供了一站式的解决方案。

  • 20
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Roboflow提供了使用Yolov5进行训练的教程。Yolov5是一个流行的目标检测算法,具有快速、准确的特点。在使用Roboflow进行训练之前,我们需要准备一些数据。首先,我们需要收集和标注一组包含我们感兴趣对象的图像数据集。然后,将数据集上传到Roboflow上。 在Roboflow上,我们可以选择使用我们自己的标注工具或者使用其内置的标注工具来标注我们的数据集,以提供准确的目标检测边界框信息。完成标注后,我们可以进行数据集的预处理。Roboflow可以自动为我们的图像应用常见的预处理操作,如缩放、裁剪、翻转等。这可以帮助我们提高数据集的多样性和训练的鲁棒性。 接下来,我们需要配置训练参数。Roboflow提供了一个直观的界面,可以让我们选择训练的模型架构、图像尺寸、批大小、学习率等参数。选择适当的参数可以提高我们模型的性能。在设置好参数后,我们可以开始训练我们的模型。 Roboflow使用预训练的Yolov5模型作为基础,并使用我们的数据集进行微调。训练过程中,Roboflow会在后台自动进行迭代,不断优化模型以提高检测的准确性。 训练完成后,我们可以下载我们训练得到的模型,并在我们的应用程序中部署它。我们可以通过Roboflow提供的API或者导出的代码来集成模型。这样,我们就可以利用我们训练得到的模型进行目标检测了! 总之,Roboflow提供了一个便捷的界面和工具,帮助我们使用Yolov5进行目标检测模型的训练。通过Roboflow,我们可以快速构建和训练一个准确的目标检测模型,使我们的应用程序更加智能和高效。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值