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 在 机器学习 类别中
每月 129 次下载
235KB
4.5K SLoC
Pipeless
轻松创建、部署和运行计算机视觉应用程序。
Pipeless 是一个开源框架,只需几分钟即可完成计算机视觉应用程序的开发和部署。这包括代码并行化、多媒体管道、内存管理、模型推理、多流管理等等。 Pipeless 允许您在几分钟内而不是几周/几个月内将应用程序部署到实际应用中。
Pipeless 受现代无服务器技术的启发。您提供一些函数,而 Pipeless 则负责为新视频帧执行它们以及所有相关操作。
使用 Pipeless,您创建我们称为“阶段”的自包含盒子。每个阶段都是一个执行特定任务的微管道。然后,您可以根据流动态组合阶段,允许您使用不同的管道处理每个流,而无需更改您的代码或重新启动程序。要创建一个阶段,您只需提供一个预处理函数、一个模型和一个后处理函数。
您可以在支持的推理运行时中加载 行业标准模型,例如 YOLO,或 自定义模型,只需提供 URL 即可。Pipeless 包含一些最受欢迎的推理运行时,例如 ONNX 运行时,让您能够开箱即用地在 CPU 或 GPU 上以高性能运行推理。
您可以将您的 Pipeless 和应用程序部署到边缘和物联网设备或云中。有多种部署工具,包括容器镜像。
以下是 Pipeless 包含的 非详尽 相关功能列表
- 多流支持:同时处理多个流。
- 动态流配置:通过 CLI 或 REST API(即将推出更多适配器)实时添加、编辑和删除流。
- 多语言支持:您可以使用多种语言编写钩子,包括 Python。
- 动态处理步骤:您可以为流处理添加任意数量的步骤,甚至可以按每个流动态修改这些步骤。
- 内置重启策略:无需担心连接错误、摄像头故障等问题。您可以为每个流轻松指定处理这些情况的重启策略。
- 高度并行化:无需担心多线程和/或多进程,Pipeless 会为您处理这些问题。
- 支持多种推理运行时:提供模型并选择支持的一种推理运行时,即可在 CPU 或 GPU 上立即运行。我们支持 CUDA、TensorRT、OpenVINO、CoreML 等,更多功能即将推出。
- 定义良好的项目结构和高度可重用的代码: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 创建项目
示例 🌟
您可以在 examples
目录下找到一些示例。只需将那些文件夹复制到您的项目中即可。
完整示例列表和分步指南 点击这里。
基准 📈
我们在多个不同的设备上部署了 Pipeless,以便您可以对其性能有一个大致的了解。在文档的 基准测试部分 找到结果。
重要变更
重要变更表明了不同版本之间的重要变化。请查看 完整变更列表。
贡献 🤝
感谢您对贡献的兴趣!我们欢迎并鼓励贡献。虽然我们正在创建详细的贡献指南,但以下是一些入门步骤:
- 复制此存储库。
- 创建一个新分支:
git checkout -b feature-branch
。 - 进行修改并提交:
git commit -m '添加新功能'
。 - 将您的更改推送到您的分支:
git push origin feature-branch
。 - 打开GitHub 拉取请求,描述您的更改。
我们感谢您为使本项目更好而提供的帮助!
请注意,对于重大更改或新功能,最好先在问题中讨论它们,以便我们协调工作。
许可证 📄
本项目遵循Apache License 2.0 许可。
Apache License 2.0 摘要
Apache License 2.0 是一种许可宽松的开源许可,允许您为个人或商业目的使用、修改和分发此软件。它附带某些义务,包括向原始作者提供归因和将原始许可文本包含在您的分发中。
有关完整许可文本,请参阅Apache License 2.0。
依赖项
~37–58MB
~1M SLoC