videoflow/videoflow
Python framework that facilitates the quick development of complex video analysis applications and other series-processing based applications in a multiprocessing environment.
해결하는 문제
Videoflow는 분산 비디오 및 스트림 처리 파이프라인을 구축하기 위한 프레임워크입니다. 개발자는 한 번만 처리 그래프(방향성 비순환 그래프)를 정의하고, 코드를 변경하지 않고 로컬에서 개발용으로 실행하거나, Kubernetes에서 프로덕션 스케일링용으로 실행할 수 있습니다.
작동 방식
- 그래프 기반 아키텍처: 사용자는 파이프라인을 프로듀서, 프로세서, 컨슈머의 집합으로 설명합니다.
- 분산 실행: 그래프 내 각 노드는 로컬에서는 서브프로세스, Kubernetes에서는 포드로 독립된 워커로 실행되며, NATS JetStream 메시지 브로커를 통해 통신합니다.
- 노드 간 통신: 각 노드는 출력을 특정 브로커 주제에 게시하고 부모 노드의 입력에 구독하여, 팬아웃 및 다중 부모 조인과 같은 복잡한 토폴로지가 가능합니다.
- 배포: 프레임워크는 GPU 스케줄링, 헬스 프로브, 오토스케일링을 포함한 Kubernetes 매니페스트로 그래프를 컴파일하는 작업을 처리합니다.
대상 사용자
- 고처리량 비디오 처리 애플리케이션을 개발하는 개발자.
- 컴퓨터 비전 모델(객체 탐지, 추적, 자세 추정)을 분산 환경에 배포해야 하는 ML 엔지니어.
- 로컬 프로토타이핑에서 Kubernetes 기반 프로덕션 스케일링으로 원활하게 전환해야 하는 팀.
주요 특징
- 하이브리드 실행: 코드 변경 없이 동일한 파이프라인을 로컬 또는 Kubernetes에서 실행 가능.
- 언어 독립성: 컨테이너 이미지로 배포되는 한, 어떤 언어로 작성된 컴포넌트도 지원.
- GPU 통합: GPU 스케줄링을 내장 지원하며, NVIDIA 디바이스 플러그인 및 공유 GPU 접근을 위한 타임슬라이싱도 처리.
- 사전 구축된 컴포넌트: 세그멘테이션 및 객체 탐지와 같은 일반적인 비전 작업용 즉시 사용 가능한 노드를 제공.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트