
Savant框架10分钟快速上手Nvidia高性能计算机视觉开发【免费下载链接】SavantPython Computer Vision Video Analytics Framework With Batteries Included项目地址: https://gitcode.com/gh_mirrors/sa/Savant想要快速构建高性能的计算机视觉应用吗 Savant框架为你提供终极解决方案作为一款基于Nvidia DeepStream的高性能Python计算机视觉框架Savant让开发者能够在10分钟内搭建起专业级的视频分析应用。无论是边缘计算设备还是数据中心服务器Savant都能发挥Nvidia硬件的最大性能潜力。为什么选择Savant框架✨Savant是一个开源的、高级的Python/C/Rust框架专门用于在Nvidia硬件上构建实时流式计算机视觉AI应用。它提供了一套完整的电池让你能够快速开发动态、容错的推理管道充分利用Nvidia在数据中心和边缘加速器上的最佳实践。Savant框架的核心优势 极致性能- 基于Nvidia DeepStream SDKSavant能够实现毫秒级的实时视频分析即使是重量级的分割模型也能在Savant上实时运行。 跨平台支持- 支持Nvidia Jetson边缘设备Orin Nano/NX/AGX和数据中心GPUTuring、Ampere、Ada、Hopper、Blackwell代码只需编写一次即可在多种硬件上运行。 完整功能套件- 从目标检测、分类、分割到跟踪Savant提供了构建真实世界应用所需的一切功能模块。快速入门指南10分钟搭建你的第一个应用 环境准备首先确保你的系统满足以下要求Nvidia GPU支持Turing、Ampere、Ada、Hopper或Blackwell架构Docker和Docker Compose基本的Python知识第一步克隆项目并准备环境git clone https://gitcode.com/gh_mirrors/sa/Savant cd Savant git lfs pull ./utils/check-environment-compatible第二步运行示例应用Savant提供了丰富的示例应用让我们从一个人体检测和面部模糊的示例开始cd samples/peoplenet_detector # 如果你使用的是x86架构 docker compose -f docker-compose.x86.yml up # 如果你使用的是Jetson设备 docker compose -f docker-compose.l4t.yml up第三步查看运行效果应用启动后你可以通过以下方式查看结果在RTSP播放器中打开rtsp://127.0.0.1:554/stream/city-traffic或者在浏览器中访问http://127.0.0.1:888/stream/city-traffic/Savant框架的核心架构 ️模块化设计Savant采用模块化设计每个处理单元都是一个独立的模块。模块配置文件使用YAML格式非常直观易懂# 模块名称 name: peoplenet_detector # 基础参数 parameters: frame: width: 1280 height: 720 # 管道定义 pipeline: elements: - element: nvinferdetector name: peoplenet model: remote: url: s3://savant-data/models/peoplenet/peoplenet_deployable_quantized_onnx_v2.6.3.zip强大的适配器系统Savant提供了丰富的适配器支持多种数据源和输出格式视频文件适配器- 支持本地视频文件和视频URLRTSP流适配器- 支持实时视频流处理摄像头适配器- 支持USB/CSI摄像头和工业相机Kafka-Redis适配器- 支持消息队列集成Savant框架的独特功能 ✨GPU加速的OpenCV CUDA支持Savant集成了OpenCV CUDA绑定允许在DeepStream的GPU帧上执行各种图像处理操作包括模糊、裁剪、叠加图形元素等所有操作都在GPU内存中完成避免了CPU和GPU之间的数据传输开销。# 示例在GPU上进行面部模糊处理 def blur_faces(frame, faces): for face in faces: x1, y1, x2, y2 face.bbox roi frame[y1:y2, x1:x2] blurred cv2.GaussianBlur(roi, (51, 51), 0) frame[y1:y2, x1:x2] blurred return frame动态参数注入高级ML管道可能需要从外部环境获取信息。Savant框架支持通过以下方式动态配置管道每帧元数据中传递的帧属性Etcd属性监控和即时应用通过用户定义函数接收的第三方属性并行处理能力Savant支持处理并行化帮助最大化利用可用资源。尽管Python代码本身不是并行的但开发者可以利用GIL释放机制通过NumPy、Numba或C/Rust自定义原生代码实现所需的并行化。实战示例构建一个完整的视频分析应用 项目结构典型的Savant项目结构如下my_savant_project/ ├── module.yml # 主配置文件 ├── overlay.py # 自定义绘制函数 ├── analytics.py # 自定义分析逻辑 ├── docker-compose.x86.yml # x86部署配置 └── docker-compose.l4t.yml # Jetson部署配置配置文件详解让我们看看一个简单的模块配置文件name: my_detector parameters: frame: width: 1920 height: 1080 batch_size: 4 pipeline: elements: - element: nvinferdetector name: object_detector model: local: model_file: models/yolov8.onnx input: layer_name: images object_min_width: 0 object_min_height: 0自定义处理逻辑你可以在Python中轻松添加自定义处理逻辑# overlay.py import cv2 import numpy as np class Overlay: def __init__(self, **kwargs): self.overlay_height kwargs.get(overlay_height, 180) def __call__(self, frame, objects, frame_meta): # 在帧上绘制检测结果 for obj in objects: if obj.label person: x1, y1, x2, y2 obj.bbox cv2.rectangle(frame, (x1, y1), (x2, y2), (0, 255, 0), 2) return frame性能优化技巧 ⚡1. 合理设置批处理大小根据你的硬件配置调整批处理大小parameters: batch_size: 4 # 对于Tesla V100 # batch_size: 1 # 对于Jetson Orin Nano2. 利用GPU内存优化Savant支持在GPU内存中直接处理数据避免CPU-GPU数据传输使用OpenCV CUDA进行图像处理利用CuPy进行GPU加速的数值计算通过PyTorch直接处理GPU张量3. 监控和调优Savant集成了OpenTelemetry和Prometheus支持可以实时监控管道性能# 查看性能指标 curl http://localhost:9090/metrics常见应用场景 智能安防监控Savant非常适合构建智能安防系统支持实时人员检测和跟踪面部识别和模糊处理异常行为检测多摄像头融合分析工业视觉检测在工业领域Savant可以用于产品质量检测生产线监控缺陷识别实时质量控制交通流量分析交通管理部门可以利用Savant进行车辆检测和计数车牌识别交通违规检测拥堵分析进阶功能探索 开发服务器Savant提供了开发服务器工具支持动态重新加载更改的代码而无需重启管道大大加快了开发和调试速度。客户端SDK我们提供基于Python的SDK用于与Savant管道交互注入和接收数据。它支持与第三方服务的简单集成并与OpenTelemetry集成提供对管道跟踪和日志的程序化访问。非线性和智能存档Savant提供了一个特殊的服务来记录、回放和重新流式传输视频具有REST控制的Replay服务。总结 Savant框架为计算机视觉开发者提供了一个强大而灵活的工具集让你能够快速构建高性能的视频分析应用。无论是边缘设备还是数据中心Savant都能帮助你充分发挥Nvidia硬件的潜力。关键优势总结✅ 10分钟快速上手✅ 极致性能优化✅ 跨平台兼容✅ 丰富的功能模块✅ 完善的生态系统现在就开始你的Savant之旅吧只需简单的几步你就能构建出专业级的计算机视觉应用。官方文档docs/source/index.rstAI功能源码plugins/ai/示例项目samples/peoplenet_detector/【免费下载链接】SavantPython Computer Vision Video Analytics Framework With Batteries Included项目地址: https://gitcode.com/gh_mirrors/sa/Savant创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考