#computer-vision #image-processing #vision #video #machine-learning #image

bin+lib pipeless-ai

一款开源计算机视觉框架,可在几分钟内构建和部署应用程序

26 个稳定版本

1.11.0 2024 年 2 月 23 日
1.10.0 2024 年 2 月 20 日
1.8.0 2024 年 1 月 31 日
1.5.0 2023 年 12 月 20 日
1.2.0 2023 年 11 月 29 日

#100机器学习 类别中

Download history 12/week @ 2024-04-02 105/week @ 2024-07-02 24/week @ 2024-07-09

每月 129 次下载

Apache-2.0

235KB
4.5K SLoC

Pipeless

轻松创建、部署和运行计算机视觉应用程序。



Loading video...



Pipeless 是一个开源框架,只需几分钟即可完成计算机视觉应用程序的开发和部署。这包括代码并行化、多媒体管道、内存管理、模型推理、多流管理等等。 Pipeless 允许您在几分钟内而不是几周/几个月内将应用程序部署到实际应用中。

Pipeless 受现代无服务器技术的启发。您提供一些函数,而 Pipeless 则负责为新视频帧执行它们以及所有相关操作。

使用 Pipeless,您创建我们称为“阶段”的自包含盒子。每个阶段都是一个执行特定任务的微管道。然后,您可以根据流动态组合阶段,允许您使用不同的管道处理每个流,而无需更改您的代码或重新启动程序。要创建一个阶段,您只需提供一个预处理函数、一个模型和一个后处理函数。

您可以在支持的推理运行时中加载 行业标准模型,例如 YOLO,或 自定义模型,只需提供 URL 即可。Pipeless 包含一些最受欢迎的推理运行时,例如 ONNX 运行时,让您能够开箱即用地在 CPU 或 GPU 上以高性能运行推理。

您可以将您的 Pipeless 和应用程序部署到边缘和物联网设备或云中。有多种部署工具,包括容器镜像。

以下是 Pipeless 包含的 非详尽 相关功能列表

  • 多流支持:同时处理多个流。
  • 动态流配置:通过 CLI 或 REST API(即将推出更多适配器)实时添加、编辑和删除流。
  • 多语言支持:您可以使用多种语言编写钩子,包括 Python。
  • 动态处理步骤:您可以为流处理添加任意数量的步骤,甚至可以按每个流动态修改这些步骤。
  • 内置重启策略:无需担心连接错误、摄像头故障等问题。您可以为每个流轻松指定处理这些情况的重启策略。
  • 高度并行化:无需担心多线程和/或多进程,Pipeless 会为您处理这些问题。
  • 支持多种推理运行时:提供模型并选择支持的一种推理运行时,即可在 CPU 或 GPU 上立即运行。我们支持 CUDATensorRTOpenVINOCoreML 等,更多功能即将推出。
  • 定义良好的项目结构和高度可重用的代码:Pipeless 使用文件系统结构来加载处理阶段和钩子,帮助您将代码组织成高度可重用的模块。每个阶段都是一个目录,每个钩子都定义在自己的文件中。

现在开始吧!

加入我们的 社区 并为让计算机视觉开发者生活更轻松做出贡献!

要求 ☝️

  • Python。预构建的二进制文件链接到 Linux amd64 的 Python 3.10,Linux arm64 的 Python 3.8,以及 macOS 的 Python 3.12。如果您有不同的 Python 版本,请向安装脚本提供 --build 标志以从源代码构建,这样 Pipeless 就会链接到您的安装版本(或更新您的版本并使用预构建的二进制文件,这更简单)。
  • Gstreamer 1.20.3。使用 gst-launch-1.0 --gst-version 进行验证。安装说明 这里

安装 🛠️

curl https://raw.githubusercontent.com/pipeless-ai/pipeless/main/install.sh | bash

有关更多信息以及安装选项,请 点击这里

使用 docker

您可以选择使用 docker 而不是本地安装,这样可以节省安装依赖项的时间

docker run miguelaeh/pipeless --help

要使用 CUDA

docker run miguelaeh/pipeless:latest-cuda --help

要使用 TensorRT,请使用

docker run miguelaeh/pipeless:latest-tensorrt --help

完整的容器文档 点击这里

入门 🚀

初始化项目

pipeless init my_project --template scaffold
cd my_project

启动 Pipeless

pipeless start --stages-dir .

提供流

pipeless add stream --input-uri "https://pipeless-public.s3.eu-west-3.amazonaws.com/cats.mp4" --output-uri "screen" --frame-path "my-stage"

生成的代码是一个空模板,用于搭建阶段,所以它将不会做任何事情。请访问 示例 以完成该阶段。

您还可以使用交互式 shell 创建项目

Loading video...

查看完整的 入门指南 或深入了解 完整文档

示例 🌟

您可以在 examples 目录下找到一些示例。只需将那些文件夹复制到您的项目中即可。

完整示例列表和分步指南 点击这里

基准 📈

我们在多个不同的设备上部署了 Pipeless,以便您可以对其性能有一个大致的了解。在文档的 基准测试部分 找到结果。

重要变更

重要变更表明了不同版本之间的重要变化。请查看 完整变更列表

贡献 🤝

感谢您对贡献的兴趣!我们欢迎并鼓励贡献。虽然我们正在创建详细的贡献指南,但以下是一些入门步骤:

  1. 复制此存储库。
  2. 创建一个新分支:git checkout -b feature-branch
  3. 进行修改并提交: git commit -m '添加新功能'
  4. 将您的更改推送到您的分支: git push origin feature-branch
  5. 打开GitHub 拉取请求,描述您的更改。

我们感谢您为使本项目更好而提供的帮助!

请注意,对于重大更改或新功能,最好先在问题中讨论它们,以便我们协调工作。

许可证 📄

本项目遵循Apache License 2.0 许可。

Apache License 2.0 摘要

Apache License 2.0 是一种许可宽松的开源许可,允许您为个人或商业目的使用、修改和分发此软件。它附带某些义务,包括向原始作者提供归因和将原始许可文本包含在您的分发中。

有关完整许可文本,请参阅Apache License 2.0

依赖项

~37–58MB
~1M SLoC